WPC Smart Wishlist for WooCommerce - Version 3.0.0

Version Description

  • Added: Multiple wishlist (Premium Version)
  • Updated: Optimized the code
Download this release

Release Info

Developer wpclever
Plugin Icon 128x128 WPC Smart Wishlist for WooCommerce
Version 3.0.0
Comparing to
See all releases

Version 3.0.0

Files changed (65) hide show
  1. assets/css/backend.css +151 -0
  2. assets/css/dashboard.css +226 -0
  3. assets/css/frontend.css +670 -0
  4. assets/css/notice.css +54 -0
  5. assets/images/curve.svg +4 -0
  6. assets/images/heart_add.svg +7 -0
  7. assets/images/heart_duplicate.svg +6 -0
  8. assets/images/heart_error.svg +7 -0
  9. assets/images/heart_remove.svg +7 -0
  10. assets/images/wpc-bg.png +0 -0
  11. assets/images/wpc-icon.png +0 -0
  12. assets/images/wpc-icon.svg +1 -0
  13. assets/images/wpc-store.png +0 -0
  14. assets/js/backend.js +70 -0
  15. assets/js/frontend.js +662 -0
  16. assets/kit/css/backend.css +79 -0
  17. assets/kit/images/woo-added-to-cart-notification.png +0 -0
  18. assets/kit/images/woo-bought-together.png +0 -0
  19. assets/kit/images/woo-fly-cart.png +0 -0
  20. assets/kit/images/woo-product-bundle.png +0 -0
  21. assets/kit/images/woo-product-timer.png +0 -0
  22. assets/kit/images/woo-smart-compare.png +0 -0
  23. assets/kit/images/woo-smart-quick-view.png +0 -0
  24. assets/kit/images/woo-smart-wishlist.png +0 -0
  25. assets/kit/images/wpc-ajax-add-to-cart.png +0 -0
  26. assets/kit/images/wpc-composite-products.png +0 -0
  27. assets/kit/images/wpc-countdown-timer.png +0 -0
  28. assets/kit/images/wpc-force-sells.png +0 -0
  29. assets/kit/images/wpc-grouped-product.png +0 -0
  30. assets/kit/images/wpc-name-your-price.png +0 -0
  31. assets/kit/images/wpc-product-quantity.png +0 -0
  32. assets/kit/images/wpc-product-table.png +0 -0
  33. assets/kit/images/wpc-product-tabs.png +0 -0
  34. assets/kit/images/wpc-variations-radio-buttons.png +0 -0
  35. assets/kit/js/backend.js +16 -0
  36. assets/libs/feather/feather.css +10 -0
  37. assets/libs/feather/fonts/feather.eot +0 -0
  38. assets/libs/feather/fonts/feather.svg +250 -0
  39. assets/libs/feather/fonts/feather.ttf +0 -0
  40. assets/libs/feather/fonts/feather.woff +0 -0
  41. assets/libs/perfect-scrollbar/css/custom-theme.css +145 -0
  42. assets/libs/perfect-scrollbar/css/perfect-scrollbar.css +113 -0
  43. assets/libs/perfect-scrollbar/css/perfect-scrollbar.min.css +2 -0
  44. assets/libs/perfect-scrollbar/js/perfect-scrollbar.jquery.js +1579 -0
  45. assets/libs/perfect-scrollbar/js/perfect-scrollbar.jquery.min.js +2 -0
  46. assets/libs/perfect-scrollbar/js/perfect-scrollbar.js +1552 -0
  47. assets/libs/perfect-scrollbar/js/perfect-scrollbar.min.js +2 -0
  48. includes/wpc-dashboard.php +16 -0
  49. includes/wpc-kit.php +367 -0
  50. includes/wpc-menu.php +99 -0
  51. includes/wpc-notice.php +94 -0
  52. index.php +2 -0
  53. languages/woo-smart-wishlist-es_ES.mo +0 -0
  54. languages/woo-smart-wishlist-es_ES.po +443 -0
  55. languages/woo-smart-wishlist-fa_IR.mo +0 -0
  56. languages/woo-smart-wishlist-fa_IR.po +509 -0
  57. languages/woo-smart-wishlist-it_IT.mo +0 -0
  58. languages/woo-smart-wishlist-it_IT.po +492 -0
  59. languages/woo-smart-wishlist-ru_RU.mo +0 -0
  60. languages/woo-smart-wishlist-ru_RU.po +389 -0
  61. languages/woo-smart-wishlist-uk.mo +0 -0
  62. languages/woo-smart-wishlist-uk.po +393 -0
  63. languages/woo-smart-wishlist.pot +705 -0
  64. readme.txt +440 -0
  65. wpc-smart-wishlist.php +2113 -0
assets/css/backend.css ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .woosw-quickview-items {
2
+ max-height: 460px;
3
+ overflow-y: auto;
4
+ }
5
+
6
+ .woosw-quickview-item {
7
+ display: flex;
8
+ align-items: center;
9
+ padding: 10px 0;
10
+ }
11
+
12
+ .woosw-quickview-items .woosw-quickview-item:nth-child(2n+1) {
13
+ background-color: #f6f7f7;
14
+ }
15
+
16
+ .woosw-quickview-item > div {
17
+ padding-left: 10px;
18
+ padding-right: 10px;
19
+ }
20
+
21
+ .woosw-quickview-item-image {
22
+ width: 80px;
23
+ flex: 0 0 80px;
24
+ text-align: center;
25
+ }
26
+
27
+ .woosw-quickview-item-image img {
28
+ width: 100%;
29
+ height: auto;
30
+ display: block;
31
+ }
32
+
33
+ .woosw-quickview-item-info {
34
+ flex-grow: 1;
35
+ }
36
+
37
+ .woosw-quickview-item-title {
38
+ font-size: 14px;
39
+ font-weight: 600;
40
+ }
41
+
42
+ .woosw-quickview-item-title a {
43
+ text-decoration: none;
44
+ }
45
+
46
+ .woosw-quickview-item-data {
47
+ font-size: 13px;
48
+ color: #999999;
49
+ }
50
+
51
+ .woosw-quickview-item-data, .woosw-quickview-item-data a {
52
+ font-size: 13px;
53
+ }
54
+
55
+ .woosw-quickview-item-links {
56
+ display: none;
57
+ }
58
+
59
+ .woosw-quickview-item:hover .woosw-quickview-item-links {
60
+ display: inline-block;
61
+ }
62
+
63
+ /* WPC Dialog */
64
+
65
+ .ui-dialog.wpc-dialog {
66
+ position: absolute;
67
+ top: 0;
68
+ left: 0;
69
+ z-index: 100102;
70
+ background-color: #fff;
71
+ border: 1px solid #dfdfdf;
72
+ border-radius: 0;
73
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .1);
74
+ box-shadow: 0 5px 10px rgba(0, 0, 0, .1);
75
+ color: #3c434a;
76
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
77
+ font-size: 13px;
78
+ line-height: 1.4em;
79
+ }
80
+
81
+ .ui-dialog.wpc-dialog .ui-dialog-titlebar {
82
+ background: #fcfcfc;
83
+ border-width: 0 0 1px 0;
84
+ border-style: solid;
85
+ border-color: #dfdfdf;
86
+ border-radius: 0;
87
+ height: 36px;
88
+ font-size: 16px;
89
+ font-weight: 600;
90
+ line-height: 36px;
91
+ padding: 0 36px 0 16px
92
+ }
93
+
94
+ .ui-dialog.wpc-dialog .ui-dialog-titlebar .ui-dialog-title {
95
+ font-size: 16px;
96
+ font-weight: 600;
97
+ width: 100%;
98
+ height: 36px;
99
+ line-height: 36px;
100
+ margin: 0;
101
+ padding: 0;
102
+ overflow: hidden;
103
+ text-overflow: ellipsis;
104
+ }
105
+
106
+ .ui-dialog.wpc-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close {
107
+ background: 0 0;
108
+ border: none;
109
+ -webkit-box-shadow: none;
110
+ box-shadow: none;
111
+ color: #666;
112
+ cursor: pointer;
113
+ display: block;
114
+ padding: 0;
115
+ margin: 0;
116
+ position: absolute;
117
+ top: 0;
118
+ right: 0;
119
+ width: 36px;
120
+ height: 36px;
121
+ line-height: 36px;
122
+ text-align: center;
123
+ outline: none;
124
+ overflow: hidden;
125
+ font-size: 0;
126
+ }
127
+
128
+ .ui-dialog.wpc-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close:before {
129
+ font: 400 20px/1 dashicons;
130
+ vertical-align: top;
131
+ speak: none;
132
+ -webkit-font-smoothing: antialiased;
133
+ -moz-osx-font-smoothing: grayscale;
134
+ line-height: 36px;
135
+ width: 36px;
136
+ height: 36px;
137
+ content: '\f158';
138
+ }
139
+
140
+ .ui-dialog.wpc-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close:hover {
141
+ color: #00a0d2;
142
+ }
143
+
144
+ .ui-dialog.wpc-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close span {
145
+ display: none;
146
+ }
147
+
148
+ .ui-dialog.wpc-dialog .ui-dialog-content {
149
+ padding: 16px;
150
+ overflow: auto;
151
+ }
assets/css/dashboard.css ADDED
@@ -0,0 +1,226 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Menu */
2
+
3
+ .toplevel_page_wpclever .wp-menu-image img {
4
+ width: 30px !important;
5
+ padding-top: 2px !important;
6
+ }
7
+
8
+ /* Dashboard Widget */
9
+
10
+ #wpclever_dashboard_widget .inside {
11
+ padding: 0;
12
+ margin: 0;
13
+ max-height: 365px;
14
+ display: inline-block;
15
+ width: 100%;
16
+ overflow-y: auto;
17
+ }
18
+
19
+ #wpclever_dashboard_widget.closed .inside {
20
+ display: none;
21
+ }
22
+
23
+ #wpclever_dashboard_widget .item {
24
+ border-bottom: 1px solid #eee;
25
+ margin: 0;
26
+ padding: 10px 12px;
27
+ display: block;
28
+ }
29
+
30
+ #wpclever_dashboard_widget .item:hover {
31
+ background-color: #fafafa;
32
+ }
33
+
34
+ #wpclever_dashboard_widget .item:last-child {
35
+ border-bottom: none;
36
+ }
37
+
38
+ #wpclever_dashboard_widget .item a {
39
+ display: inline-block;
40
+ width: 100%;
41
+ color: #23282d;
42
+ outline: none;
43
+ box-shadow: none;
44
+ text-decoration: none;
45
+ }
46
+
47
+ #wpclever_dashboard_widget .item img {
48
+ width: 40px;
49
+ height: 40px;
50
+ float: left;
51
+ margin-right: 10px;
52
+ border-radius: 2px;
53
+ }
54
+
55
+ #wpclever_dashboard_widget .item .num {
56
+ width: 40px;
57
+ height: 40px;
58
+ float: left;
59
+ margin-right: 10px;
60
+ border-radius: 20px;
61
+ background-color: #b05d93;
62
+ text-align: center;
63
+ line-height: 40px;
64
+ color: #ffffff;
65
+ }
66
+
67
+ #wpclever_dashboard_widget .item .info {
68
+ opacity: .5;
69
+ }
70
+
71
+ /* Welcome Page */
72
+
73
+ .wpclever_welcome_page {
74
+ background-image: url('../images/wpc-bg.png');
75
+ background-position: center;
76
+ background-repeat: no-repeat;
77
+ }
78
+
79
+ .wpclever_welcome_page .card {
80
+ border-color: #eee;
81
+ }
82
+
83
+ .wpclever_welcome_page img {
84
+ max-width: 100%;
85
+ height: auto;
86
+ }
87
+
88
+ /* Settings Page */
89
+
90
+ .wpclever_settings_page img {
91
+ max-width: 100%;
92
+ height: auto;
93
+ }
94
+
95
+ .wpclever_settings_page .wpclever_settings_page_desc a {
96
+ outline: none;
97
+ box-shadow: none;
98
+ }
99
+
100
+ .wpclever_settings_page .wpclever_settings_page_nav .nav-tab-wrapper {
101
+ border-color: #eee;
102
+ }
103
+
104
+ .wpclever_settings_page .wpclever_settings_page_nav .nav-tab-wrapper a {
105
+ margin-left: 0;
106
+ margin-right: 7px;
107
+ padding: 10px 20px;
108
+ outline: none;
109
+ box-shadow: none;
110
+ border-color: #eee;
111
+ }
112
+
113
+ .wpclever_settings_page .wpclever_settings_page_nav .nav-tab-wrapper a.nav-tab-active, .wpclever_settings_page .wpclever_settings_page_nav .nav-tab-wrapper a:hover {
114
+ background-color: #fafafa;
115
+ border-color: #fafafa;
116
+ }
117
+
118
+ .wpclever_settings_page .wpclever_settings_page_content {
119
+ border-width: 0 1px 1px 1px;
120
+ border-style: solid;
121
+ border-color: #eee;
122
+ background-color: #fff;
123
+ display: inline-block;
124
+ width: 100%;
125
+ margin: 0;
126
+ }
127
+
128
+ .wpclever_settings_page .wpclever_settings_page_content table tr.heading th, .wpclever_settings_page .wpclever_settings_page_content table tr.heading td, .wpclever_settings_page .wpclever_settings_page_content table tr.submit th {
129
+ background-color: #fafafa;
130
+ padding: 15px 20px;
131
+ margin: 0;
132
+ }
133
+
134
+ .wpclever_settings_page .wpclever_settings_page_content table tr.heading {
135
+ border-bottom: 1px dashed #eee;
136
+ border-left: 4px solid #23282d;
137
+ }
138
+
139
+ .wpclever_settings_page .wpclever_settings_page_content table {
140
+ margin: 0;
141
+ }
142
+
143
+ .wpclever_settings_page .wpclever_settings_page_content .wpclever_settings_page_content_text {
144
+ padding: 20px;
145
+ }
146
+
147
+ .wpclever_settings_page .wpclever_settings_page_content .wpclever_settings_page_content_text p {
148
+ margin-top: 0;
149
+ margin-bottom: 15px;
150
+ }
151
+
152
+ .wpclever_settings_page .wpclever_settings_page_content .wpclever_settings_page_content_text p:last-child {
153
+ margin-bottom: 0;
154
+ }
155
+
156
+ .wpclever_settings_page .wpclever_settings_page_content table tr th, .wpclever_settings_page .wpclever_settings_page_content table tr td {
157
+ padding: 15px 20px;
158
+ border-bottom: 1px dashed #eee;
159
+ }
160
+
161
+ .wpclever_plugins .item {
162
+ border-bottom: 1px solid #eee;
163
+ margin: 0;
164
+ padding: 10px 0;
165
+ display: inline-block;
166
+ width: 100%;
167
+ }
168
+
169
+ .wpclever_plugins .item:hover {
170
+ background-color: #fafafa;
171
+ }
172
+
173
+ .wpclever_plugins .item:last-child {
174
+ border-bottom: none;
175
+ }
176
+
177
+ .wpclever_plugins .item a {
178
+ display: inline-block;
179
+ width: 100%;
180
+ color: #23282d;
181
+ text-decoration: none;
182
+ outline: none;
183
+ box-shadow: none;
184
+ }
185
+
186
+ .wpclever_plugins .item img {
187
+ width: 40px;
188
+ height: 40px;
189
+ float: left;
190
+ margin-right: 10px;
191
+ border-radius: 2px;
192
+ }
193
+
194
+ .wpclever_plugins .item .num {
195
+ width: 40px;
196
+ height: 40px;
197
+ float: left;
198
+ margin-right: 10px;
199
+ border-radius: 20px;
200
+ background-color: #b05d93;
201
+ text-align: center;
202
+ line-height: 40px;
203
+ color: #ffffff;
204
+ }
205
+
206
+ .wpclever_plugins .item .info {
207
+ opacity: .5;
208
+ }
209
+
210
+ /* RTL */
211
+
212
+ body.rtl .wpclever_plugins .item .num {
213
+ float: right;
214
+ margin-right: 0;
215
+ margin-left: 10px;
216
+ }
217
+
218
+ body.rtl .wpclever_settings_page .wpclever_settings_page_nav .nav-tab-wrapper a {
219
+ margin-right: 0;
220
+ margin-left: 7px;
221
+ }
222
+
223
+ body.rtl .wpclever_settings_page .wpclever_settings_page_content table tr.heading {
224
+ border-left: none;
225
+ border-right: 4px solid #23282d;
226
+ }
assets/css/frontend.css ADDED
@@ -0,0 +1,670 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @keyframes wpc-spinner {
2
+ to {
3
+ transform: rotate(360deg);
4
+ }
5
+ }
6
+
7
+ @-webkit-keyframes wpc-spinner {
8
+ to {
9
+ -webkit-transform: rotate(360deg);
10
+ }
11
+ }
12
+
13
+ @keyframes woosw-spinner {
14
+ to {
15
+ transform: rotate(360deg);
16
+ }
17
+ }
18
+
19
+ @-webkit-keyframes woosw-spinner {
20
+ to {
21
+ -webkit-transform: rotate(360deg);
22
+ }
23
+ }
24
+
25
+ .woosw-btn.woosw-added:before {
26
+ content: '\2713';
27
+ margin-right: 5px;
28
+ }
29
+
30
+ .woosw-btn.woosw-adding:after {
31
+ content: '...' !important;
32
+ display: inline-block !important;
33
+ }
34
+
35
+ .woosw-view-wishlist {
36
+ font-weight: 700;
37
+ cursor: pointer;
38
+ }
39
+
40
+ .woosw-popup {
41
+ position: fixed;
42
+ top: 0;
43
+ left: 0;
44
+ width: 100%;
45
+ height: 100%;
46
+ z-index: 99999989;
47
+ background: rgba(0, 0, 0, 0.7);
48
+ opacity: 0;
49
+ font-size: 14px;
50
+ visibility: hidden;
51
+ -webkit-transition: opacity 0.3s;
52
+ transition: opacity 0.3s;
53
+ box-sizing: border-box;
54
+ }
55
+
56
+ .woosw-popup * {
57
+ box-sizing: border-box;
58
+ }
59
+
60
+ .woosw-popup table {
61
+ margin: 0;
62
+ }
63
+
64
+ .woosw-popup .woosw-popup-content-mid:before {
65
+ content: '';
66
+ width: 100%;
67
+ height: 100%;
68
+ display: block;
69
+ position: absolute;
70
+ top: 0;
71
+ left: 0;
72
+ z-index: 7;
73
+ background-color: rgba(255, 255, 255, 0.7);
74
+ opacity: 0;
75
+ visibility: hidden;
76
+ }
77
+
78
+ .woosw-popup .woosw-popup-content-mid:after {
79
+ width: 32px;
80
+ height: 32px;
81
+ display: block;
82
+ margin-top: -16px;
83
+ margin-left: -16px;
84
+ content: '';
85
+ background-image: url("../images/curve.svg");
86
+ background-repeat: no-repeat;
87
+ background-position: center;
88
+ position: absolute;
89
+ top: 50%;
90
+ left: 50%;
91
+ z-index: 8;
92
+ -webkit-animation: woosw-spinner 1s linear infinite;
93
+ -moz-animation: woosw-spinner 1s linear infinite;
94
+ -ms-animation: woosw-spinner 1s linear infinite;
95
+ -o-animation: woosw-spinner 1s linear infinite;
96
+ animation: woosw-spinner 1s linear infinite;
97
+ opacity: 0;
98
+ visibility: hidden;
99
+ }
100
+
101
+ .woosw-popup.woosw-loading .woosw-popup-content {
102
+ pointer-events: none;
103
+ }
104
+
105
+ .woosw-popup.woosw-loading .woosw-popup-content-mid:before, .woosw-popup.woosw-loading .woosw-popup-content-mid:after {
106
+ opacity: 1;
107
+ visibility: visible;
108
+ }
109
+
110
+ .woosw-popup .woosw-popup-inner {
111
+ display: block;
112
+ width: 100%;
113
+ height: 100%;
114
+ position: relative;
115
+ }
116
+
117
+ .woosw-popup .woosw-popup-inner .woosw-popup-content {
118
+ width: 90%;
119
+ max-width: 480px;
120
+ height: auto;
121
+ max-height: 90%;
122
+ position: absolute;
123
+ top: 40%;
124
+ left: 50%;
125
+ transform: translate3d(-50%, -50%, 0);
126
+ -webkit-transform: translate3d(-50%, -50%, 0);
127
+ padding: 0;
128
+ display: flex;
129
+ flex-direction: column;
130
+ -webkit-transition: all 0.5s;
131
+ -moz-transition: all 0.5s;
132
+ -ms-transition: all 0.5s;
133
+ -o-transition: all 0.5s;
134
+ transition: all 0.5s;
135
+ border-radius: 4px;
136
+ overflow: hidden;
137
+ }
138
+
139
+ #woosw_manage .woosw-popup-inner .woosw-popup-content {
140
+ top: 60%;
141
+ }
142
+
143
+ .woosw-popup.woosw-show {
144
+ opacity: 1;
145
+ visibility: visible;
146
+ }
147
+
148
+ .woosw-popup.woosw-show .woosw-popup-inner .woosw-popup-content {
149
+ top: 50% !important;
150
+ }
151
+
152
+ .woosw-popup .woosw-popup-inner .woosw-popup-content > div {
153
+ align-self: stretch;
154
+ }
155
+
156
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-top {
157
+ flex: 0 0 auto;
158
+ height: 48px;
159
+ line-height: 48px;
160
+ padding: 0 60px 0 20px;
161
+ margin: 0;
162
+ position: relative;
163
+ color: #fff;
164
+ font-weight: 700;
165
+ background-color: #222;
166
+ }
167
+
168
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-top .woosw-count-wrapper:before {
169
+ content: '(';
170
+ }
171
+
172
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-top .woosw-count-wrapper:after {
173
+ content: ')';
174
+ }
175
+
176
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-top .woosw-manage, .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-top .woosw-empty {
177
+ color: #fff;
178
+ margin-left: 5px;
179
+ font-weight: 400;
180
+ text-decoration: underline;
181
+ cursor: pointer;
182
+ }
183
+
184
+ #woosw_manage .woosw-popup-content-mid {
185
+ padding: 10px 0;
186
+ }
187
+
188
+ .woosw-new-wishlist {
189
+ display: flex;
190
+ align-items: center;
191
+ }
192
+
193
+ #woosw_wishlist_name {
194
+ flex-grow: 1;
195
+ }
196
+
197
+ .woosw-new-wishlist input {
198
+ border-radius: 4px !important;
199
+ height: 40px !important;
200
+ line-height: 38px !important;
201
+ padding: 0 10px !important;
202
+ margin: 0;
203
+ }
204
+
205
+ .woosw-new-wishlist input[type="button"] {
206
+ margin-left: 10px;
207
+ }
208
+
209
+ .woosw-disable {
210
+ opacity: .5;
211
+ pointer-events: none;
212
+ }
213
+
214
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-top .woosw-popup-close {
215
+ display: inline-block;
216
+ height: 48px;
217
+ line-height: 48px;
218
+ position: absolute;
219
+ top: 0;
220
+ right: 0;
221
+ cursor: pointer;
222
+ text-transform: none;
223
+ color: #999999;
224
+ font-weight: 400;
225
+ }
226
+
227
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-top .woosw-popup-close:after {
228
+ display: inline-block;
229
+ float: right;
230
+ width: 48px;
231
+ height: 48px;
232
+ line-height: 48px;
233
+ text-align: center;
234
+ content: '\e9ea';
235
+ font-size: 20px;
236
+ font-family: 'feather';
237
+ speak: none;
238
+ font-style: normal;
239
+ font-weight: normal;
240
+ font-variant: normal;
241
+ text-transform: none;
242
+ -webkit-font-smoothing: antialiased;
243
+ -moz-osx-font-smoothing: grayscale;
244
+ }
245
+
246
+ body.rtl .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-top {
247
+ padding: 0 20px 0 60px;
248
+ }
249
+
250
+ body.rtl .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-top .woosw-popup-close {
251
+ right: auto;
252
+ left: 0;
253
+ }
254
+
255
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid {
256
+ display: block;
257
+ position: relative;
258
+ min-height: 80px;
259
+ flex: 1 1 auto;
260
+ padding: 0;
261
+ margin: 0;
262
+ background-color: #fff;
263
+ overflow-x: hidden;
264
+ overflow-y: auto;
265
+ }
266
+
267
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid .woosw-popup-content-mid-massage {
268
+ display: block;
269
+ padding: 20px;
270
+ height: 40px;
271
+ line-height: 40px;
272
+ text-align: center;
273
+ }
274
+
275
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid .woosw-popup-content-mid-message {
276
+ display: block;
277
+ padding: 20px 40px 40px 40px;
278
+ font-size: 20px;
279
+ text-align: center;
280
+ }
281
+
282
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid .woosw-popup-content-mid-message img {
283
+ display: block;
284
+ width: 60%;
285
+ height: auto;
286
+ margin: 0 auto;
287
+ opacity: .6;
288
+ }
289
+
290
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items {
291
+ margin: 0;
292
+ padding: 0;
293
+ }
294
+
295
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items tr td {
296
+ vertical-align: middle;
297
+ padding: 10px;
298
+ }
299
+
300
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items tr td:first-child {
301
+ padding-left: 20px;
302
+ }
303
+
304
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items tr td:last-child {
305
+ padding-right: 20px;
306
+ }
307
+
308
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items tr:nth-child(2n) td {
309
+ background-color: rgba(0, 0, 0, 0.03);
310
+ }
311
+
312
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items tr:hover td {
313
+ background-color: rgba(0, 0, 0, 0.05);
314
+ }
315
+
316
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items .woosw-item .woosw-item--remove {
317
+ vertical-align: middle;
318
+ width: 16px;
319
+ }
320
+
321
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items .woosw-item .woosw-item--remove span {
322
+ display: inline-block;
323
+ width: 16px;
324
+ height: 16px;
325
+ line-height: 16px;
326
+ text-align: center;
327
+ cursor: pointer;
328
+ }
329
+
330
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items .woosw-item .woosw-item--remove span:before {
331
+ display: inline-block;
332
+ content: '\e9ea';
333
+ font-size: 16px;
334
+ font-family: 'feather';
335
+ speak: none;
336
+ font-style: normal;
337
+ font-weight: normal;
338
+ font-variant: normal;
339
+ text-transform: none;
340
+ -webkit-font-smoothing: antialiased;
341
+ -moz-osx-font-smoothing: grayscale;
342
+ }
343
+
344
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items .woosw-item .woosw-item--remove span.woosw-removing:before {
345
+ animation: woosw-spinner 1s linear infinite;
346
+ -webkit-animation: woosw-spinner 1s linear infinite;
347
+ }
348
+
349
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items .woosw-item .woosw-item--remove span:hover:before {
350
+ color: #cc6055;
351
+ }
352
+
353
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items .woosw-item .woosw-item--image {
354
+ width: 100px;
355
+ }
356
+
357
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items .woosw-item .woosw-item--image img {
358
+ width: 80px;
359
+ height: auto;
360
+ border-radius: 2px;
361
+ border: none;
362
+ padding: 0;
363
+ margin: 0;
364
+ box-shadow: none;
365
+ }
366
+
367
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items .woosw-item .woosw-item--name, .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items .woosw-item .woosw-item--name a {
368
+ font-weight: 700;
369
+ }
370
+
371
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items .woosw-item .woosw-item--add p, .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-mid table.woosw-items .woosw-item .woosw-item--add .add_to_cart_inline {
372
+ border: none;
373
+ padding: 0;
374
+ margin: 0;
375
+ }
376
+
377
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-bot {
378
+ flex: 0 0 auto;
379
+ height: 48px;
380
+ line-height: 48px;
381
+ padding: 0 20px;
382
+ position: relative;
383
+ color: #fff;
384
+ font-size: 14px;
385
+ text-transform: uppercase;
386
+ background-color: #222;
387
+ overflow: hidden;
388
+ }
389
+
390
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-bot .woosw-popup-content-bot-inner {
391
+ display: flex;
392
+ flex-wrap: wrap;
393
+ flex-direction: row;
394
+ justify-content: space-between;
395
+ align-items: center;
396
+ width: 100%;
397
+ }
398
+
399
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-bot .woosw-popup-content-bot-inner a, .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-bot .woosw-popup-content-bot-inner span {
400
+ color: #fff;
401
+ text-decoration: underline;
402
+ outline: none;
403
+ cursor: pointer;
404
+ }
405
+
406
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-bot .woosw-popup-content-bot-inner a:hover {
407
+ color: #5fbd74;
408
+ }
409
+
410
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-bot .woosw-notice {
411
+ display: block;
412
+ text-align: center;
413
+ width: 100%;
414
+ height: 48px;
415
+ line-height: 48px;
416
+ padding: 0 20px;
417
+ color: #fff;
418
+ font-size: 14px;
419
+ font-weight: 400;
420
+ background-color: #5fbd74;
421
+ position: absolute;
422
+ top: 50px;
423
+ left: 0;
424
+ -webkit-transition: all 0.5s;
425
+ -moz-transition: all 0.5s;
426
+ -ms-transition: all 0.5s;
427
+ -o-transition: all 0.5s;
428
+ transition: all 0.5s;
429
+ }
430
+
431
+ .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-bot .woosw-notice.woosw-notice-show {
432
+ top: 0;
433
+ }
434
+
435
+ .woosw-popup.woosw-message .woosw-popup-inner .woosw-popup-content {
436
+ max-width: 320px;
437
+ background-color: #ffffff;
438
+ }
439
+
440
+ .woosw-popup.woosw-message .woosw-popup-inner .woosw-popup-content .woosw-popup-content-top {
441
+ color: #222;
442
+ background-color: transparent;
443
+ }
444
+
445
+ .woosw-popup.woosw-message .woosw-popup-inner .woosw-popup-content .woosw-popup-content-top .woosw-popup-close:after {
446
+ color: #222;
447
+ }
448
+
449
+ .woosw-popup.woosw-message .woosw-popup-inner .woosw-popup-content .woosw-popup-content-bot {
450
+ display: none;
451
+ }
452
+
453
+ .woosw-popup.woosw-message .woosw-popup-content-mid-message {
454
+ display: block;
455
+ padding: 20px 40px 40px 40px;
456
+ font-size: 20px;
457
+ text-align: center;
458
+ }
459
+
460
+ .woosw-popup.woosw-message .woosw-popup-content-mid-message img {
461
+ display: block;
462
+ width: 60%;
463
+ height: auto;
464
+ margin: 0 auto;
465
+ opacity: .6;
466
+ }
467
+
468
+ .woosw-items .woosw-item .woosw-item--note {
469
+ padding-left: 10px;
470
+ border-left: 2px solid #222;
471
+ font-style: italic;
472
+ font-size: 14px;
473
+ cursor: pointer;
474
+ }
475
+
476
+ .woosw-items .woosw-item .woosw-item--note-add {
477
+ width: 100%;
478
+ position: relative;
479
+ }
480
+
481
+ .woosw-items .woosw-item .woosw-item--note-add input {
482
+ height: 40px !important;
483
+ line-height: 38px !important;
484
+ padding: 0 10px !important;
485
+ border-radius: 4px !important;
486
+ }
487
+
488
+ .woosw-items .woosw-item .woosw-item--note-add input[type="text"] {
489
+ width: 100%;
490
+ }
491
+
492
+ .woosw-items .woosw-item .woosw-item--note-add input[type="button"] {
493
+ position: absolute;
494
+ top: 0;
495
+ right: 0;
496
+ }
497
+
498
+ body.rtl .woosw-items .woosw-item .woosw-item--note {
499
+ border-left: none;
500
+ border-right: 2px solid #222;
501
+ padding-left: 0;
502
+ padding-right: 10px;
503
+ }
504
+
505
+ .woosw-list table.woosw-items {
506
+ margin: 0;
507
+ padding: 0;
508
+ }
509
+
510
+ .woosw-list table.woosw-items tr td {
511
+ vertical-align: middle;
512
+ padding: 10px;
513
+ }
514
+
515
+ .woosw-list table.woosw-items tr:nth-child(2n) td {
516
+ background-color: rgba(0, 0, 0, 0.03);
517
+ }
518
+
519
+ .woosw-list table.woosw-items tr:hover td {
520
+ background-color: rgba(0, 0, 0, 0.05);
521
+ }
522
+
523
+ .woosw-list table.woosw-items .woosw-item .woosw-item--remove {
524
+ vertical-align: middle;
525
+ width: 16px;
526
+ }
527
+
528
+ .woosw-list table.woosw-items .woosw-item .woosw-item--remove span {
529
+ display: inline-block;
530
+ width: 16px;
531
+ height: 16px;
532
+ line-height: 16px;
533
+ text-align: center;
534
+ cursor: pointer;
535
+ }
536
+
537
+ .woosw-list table.woosw-items .woosw-item .woosw-item--remove span:before {
538
+ display: inline-block;
539
+ content: '\e9ea';
540
+ font-size: 16px;
541
+ font-family: 'feather';
542
+ speak: none;
543
+ font-style: normal;
544
+ font-weight: normal;
545
+ font-variant: normal;
546
+ text-transform: none;
547
+ -webkit-font-smoothing: antialiased;
548
+ -moz-osx-font-smoothing: grayscale;
549
+ }
550
+
551
+ .woosw-list table.woosw-items .woosw-item .woosw-item--remove span.woosw-removing:before {
552
+ animation: woosw-spinner 1s linear infinite;
553
+ -webkit-animation: woosw-spinner 1s linear infinite;
554
+ }
555
+
556
+ .woosw-list table.woosw-items .woosw-item .woosw-item--remove span:hover:before {
557
+ color: #cc6055;
558
+ }
559
+
560
+ .woosw-list table.woosw-items .woosw-item .woosw-item--image {
561
+ width: 100px;
562
+ }
563
+
564
+ .woosw-list table.woosw-items .woosw-item .woosw-item--image img {
565
+ width: 80px;
566
+ height: auto;
567
+ border-radius: 2px;
568
+ border: none;
569
+ padding: 0;
570
+ margin: 0;
571
+ box-shadow: none;
572
+ }
573
+
574
+ .woosw-list table.woosw-items .woosw-item .woosw-item--name a {
575
+ font-weight: 700;
576
+ }
577
+
578
+ .woosw-list table.woosw-items .woosw-item .woosw-item--add p, .woosw-list table.woosw-items .woosw-item .woosw-item--add .add_to_cart_inline {
579
+ border: none;
580
+ padding: 0;
581
+ margin: 0;
582
+ }
583
+
584
+ .woosw-list .woosw-actions {
585
+ display: flex;
586
+ align-items: center;
587
+ justify-content: space-between;
588
+ margin-top: 30px;
589
+ }
590
+
591
+ .woosw-list .woosw-copy {
592
+ display: flex;
593
+ align-items: center;
594
+ }
595
+
596
+ .woosw-list .woosw-copy .woosw-copy-url {
597
+ margin-left: 10px;
598
+ margin-right: 0;
599
+ }
600
+
601
+ body.rtl .woosw-list .woosw-copy .woosw-copy-url {
602
+ margin-left: 0;
603
+ margin-right: 10px;
604
+ }
605
+
606
+ .woosw-list .woosw-share .woosw-share-label, .woosw-list .woosw-share a {
607
+ display: inline-block;
608
+ margin-left: 0;
609
+ margin-right: 10px;
610
+ text-decoration: none !important;
611
+ font-style: normal !important;
612
+ }
613
+
614
+ body.rtl .woosw-list .woosw-share .woosw-share-label, body.rtl .woosw-list .woosw-share a {
615
+ margin-right: 0;
616
+ margin-left: 10px;
617
+ }
618
+
619
+ .woosw-menu-item .woosw-menu-item-inner {
620
+ position: relative;
621
+ }
622
+
623
+ .woosw-menu-item .woosw-menu-item-inner:after {
624
+ content: attr(data-count);
625
+ display: block;
626
+ background-color: #e94b35;
627
+ color: #fff;
628
+ font-size: 10px;
629
+ font-weight: 400;
630
+ width: 16px;
631
+ height: 16px;
632
+ line-height: 16px;
633
+ text-align: center;
634
+ border-radius: 8px;
635
+ position: absolute;
636
+ top: -10px;
637
+ right: -10px;
638
+ }
639
+
640
+ .woosw-icon {
641
+ font-family: 'feather';
642
+ font-style: normal !important;
643
+ }
644
+
645
+ .woosw-share-facebook .woosw-icon:before {
646
+ content: '\e955';
647
+ }
648
+
649
+ .woosw-share-twitter .woosw-icon:before {
650
+ content: '\e9d2';
651
+ }
652
+
653
+ .woosw-share-pinterest .woosw-icon:before {
654
+ content: '\e9bf';
655
+ }
656
+
657
+ .woosw-share-instagram .woosw-icon:before {
658
+ content: '\e96c';
659
+ }
660
+
661
+ .woosw-share-mail .woosw-icon:before {
662
+ content: '\e913';
663
+ }
664
+
665
+ @media only screen and (max-width: 860px) {
666
+ .woosw-list .woosw-actions {
667
+ flex-direction: column;
668
+ align-items: flex-start;
669
+ }
670
+ }
assets/css/notice.css ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Notice */
2
+
3
+ .wpclever-notice {
4
+ padding: 12px !important;
5
+ display: flex;
6
+ align-items: center;
7
+ }
8
+
9
+ .wpclever-notice .wpclever-notice-thumbnail {
10
+ text-align: center;
11
+ position: relative;
12
+ display: block;
13
+ margin-right: 10px;
14
+ width: 20%;
15
+ flex: 0 0 20%;
16
+ }
17
+
18
+ .wpclever-notice .wpclever-notice-thumbnail a {
19
+ display: block;
20
+ outline: none;
21
+ text-decoration: none;
22
+ box-shadow: none;
23
+ }
24
+
25
+ .wpclever-notice .wpclever-notice-thumbnail img {
26
+ width: 100%;
27
+ height: auto;
28
+ display: inline-block;
29
+ }
30
+
31
+ .wpclever-notice .wpclever-notice-ul {
32
+ margin-bottom: 0;
33
+ }
34
+
35
+ .wpclever-notice .wpclever-notice-ul li {
36
+ display: inline-block;
37
+ margin-right: 10px;
38
+ margin-bottom: 0;
39
+ }
40
+
41
+ .wpclever-notice .wpclever-notice-ul li a {
42
+ text-decoration: none;
43
+ outline: none;
44
+ box-shadow: none;
45
+ }
46
+
47
+ .wpclever-notice .wpclever-notice-text h3 {
48
+ margin: 0 0 10px 0;
49
+ font-weight: 700;
50
+ }
51
+
52
+ .wpclever-notice .wpclever-notice-text p {
53
+ font-size: 14px;
54
+ }
assets/images/curve.svg ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ <svg enable-background="new 0 0 32 32" height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="m16 6.001v2.999c0 .369.203.708.527.883.147.078.311.118.473.118.193 0 .387-.057.555-.168l6-4.001c.278-.186.445-.497.445-.831 0-.335-.167-.646-.445-.832l-6-4c-.307-.206-.703-.225-1.025-.05-.327.174-.53.513-.53.882v3c-6.617 0-12 5.383-12 12 0 .552.448 1 1 1s1-.448 1-1c0-5.515 4.486-10 10-10zm2-3.132 3.197 2.132-3.197 2.131zm9 12.132c-.552 0-1 .447-1 1 0 5.516-4.486 10-10 10v-3.001c0-.369-.203-.707-.528-.882s-.72-.155-1.026.05l-6 4c-.279.186-.446.498-.446.832s.167.646.445.832l6 4c.168.111.361.168.555.168.162 0 .324-.039.472-.118.325-.174.528-.513.528-.882v-3c6.617 0 12-5.383 12-11.999 0-.553-.448-1-1-1zm-13 14.13-3.197-2.131 3.197-2.131z"
3
+ fill="#222"/>
4
+ </svg>
assets/images/heart_add.svg ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg enable-background="new 0 0 511.999 511.999" version="1.1" viewBox="0 0 512 512" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="m139.49 84.829c-11.584 0-22.844 2.643-33.471 7.858-26.787 13.146-45.144 41.241-46.768 71.571-1.23 23.017 4.533 41.91 19.891 65.216 4.312 6.545 19.011 24.124 29.122 34.835 2.991 3.166 7.018 4.765 11.055 4.765 3.744 0 7.495-1.374 10.432-4.148 6.104-5.764 6.379-15.384 0.617-21.488-10.082-10.681-23.045-26.451-25.84-30.692-11.748-17.828-15.791-30.529-14.919-46.866 1.046-19.511 12.745-37.529 29.804-45.903 6.422-3.151 13.175-4.748 20.076-4.748 8.393 0 15.2-6.807 15.2-15.2s-6.806-15.2-15.199-15.2z"/>
4
+ <path d="m151.17 268.27h-0.015c-8.393 0-15.192 6.807-15.192 15.2s6.813 15.2 15.208 15.2 15.2-6.807 15.2-15.2c-1e-3 -8.393-6.806-15.2-15.201-15.2z"/>
5
+ <path d="m457.6 292.42c10.783-11.759 19.041-21.967 24.621-30.45 15.042-22.887 31.996-55.035 29.54-100.88-1.93-36.061-17.197-69.922-42.993-95.348-26.182-25.807-60.369-40.017-96.26-40.017-52.689 0-95.815 40.323-116.24 63.478-19.841-23.297-62.001-63.478-116.78-63.478-35.89 0-70.075 14.212-96.254 40.017-25.796 25.427-41.065 59.288-42.994 95.35-1.914 35.849 7.202 66.965 29.555 100.89 20.052 30.426 72.272 78.539 110.89 110.5 23.966 19.828 46.567 36.866 65.363 49.271 30.497 20.128 42.835 22.709 50.174 22.709 6.335 0 16.263-1.888 37.596-14.624 18.588 33.609 54.396 56.426 95.444 56.426 60.104 0 109-48.897 109-109-1e-3 -34.249-15.893-64.842-40.675-84.84zm-177.31 85.606c0.012 1.683 0.05 3.361 0.137 5.025 0.03 0.558 0.09 1.111 0.128 1.671 0.094 1.388 0.195 2.774 0.341 4.148 0.058 0.543 0.141 1.082 0.207 1.623 0.17 1.397 0.351 2.789 0.575 4.169 0.082 0.506 0.182 1.008 0.271 1.512 0.249 1.418 0.517 2.829 0.821 4.227 0.037 0.172 0.061 0.342 0.097 0.508-19 11.868-25.69 13.034-26.627 13.143-7.924-0.793-41.186-19.345-97.584-66.172-47.334-39.3-88.916-80.544-103.47-102.62-18.546-28.146-26.127-53.603-24.585-82.539 3.146-58.774 51.996-106.59 108.89-106.59 59.07 0 103.43 65.348 103.85 65.99 2.773 4.175 7.431 6.709 12.444 6.784 5.027 0.065 9.745-2.335 12.64-6.427 0.47-0.664 47.599-66.347 104.07-66.347 56.901 0 105.75 47.816 108.9 106.59 1.567 29.262-5.787 53.95-24.585 82.55-5.323 8.091-14.204 18.783-25.93 31.239-0.877-0.362-1.769-0.681-2.655-1.02-0.632-0.242-1.259-0.497-1.895-0.728-0.755-0.274-1.52-0.518-2.282-0.775-0.983-0.331-1.965-0.667-2.961-0.974-0.471-0.143-0.947-0.266-1.42-0.404-1.274-0.371-2.551-0.734-3.844-1.06-0.26-0.064-0.523-0.117-0.783-0.179-1.484-0.362-2.973-0.704-4.478-1.003-0.158-0.032-0.318-0.055-0.477-0.087-1.584-0.307-3.175-0.59-4.783-0.828-0.211-0.032-0.424-0.05-0.637-0.081-1.538-0.22-3.083-0.419-4.641-0.573-0.532-0.053-1.069-0.078-1.602-0.122-1.239-0.103-2.478-0.216-3.729-0.277-1.807-0.091-3.619-0.138-5.431-0.138-5.635 0-11.171 0.429-16.577 1.259-52.265 8.009-92.425 53.273-92.425 107.74-1e-3 0.258 0.019 0.513 0.02 0.769zm108.98 77.836c-34.763 0-64.307-22.694-74.649-54.036-0.213-0.645-0.423-1.289-0.617-1.936-0.131-0.435-0.251-0.875-0.374-1.313-0.198-0.701-0.4-1.401-0.578-2.107-0.039-0.158-0.071-0.322-0.111-0.482-0.356-1.449-0.663-2.906-0.935-4.372-0.114-0.614-0.231-1.228-0.331-1.847-0.087-0.538-0.16-1.076-0.234-1.614-0.097-0.696-0.188-1.394-0.268-2.096-0.055-0.486-0.105-0.974-0.151-1.462-0.076-0.822-0.138-1.648-0.188-2.476-0.024-0.382-0.053-0.763-0.071-1.146-0.058-1.233-0.094-2.467-0.094-3.712 0-37.923 26.995-69.659 62.779-77 5.112-1.049 10.403-1.601 15.82-1.601 1.532 0 3.061 0.055 4.587 0.144 0.4 0.024 0.795 0.062 1.195 0.093 1.16 0.085 2.318 0.19 3.472 0.327 0.404 0.047 0.807 0.1 1.21 0.155 1.207 0.161 2.409 0.351 3.605 0.568 0.307 0.056 0.617 0.106 0.923 0.166 2.991 0.579 5.945 1.333 8.845 2.253 0.448 0.143 0.889 0.301 1.333 0.453 0.914 0.307 1.821 0.631 2.722 0.973 0.638 0.243 1.274 0.492 1.905 0.752 0.652 0.267 1.297 0.549 1.941 0.834 0.751 0.333 1.503 0.661 2.242 1.015 0.234 0.112 0.464 0.239 0.696 0.353 25.995 12.835 43.925 39.616 43.925 70.516 2e-3 43.338-35.258 78.598-78.599 78.598z"/>
6
+ <path d="m434.98 346.45c-6.241-5.61-15.855-5.098-21.466 1.148l-30.972 34.469-19.652-11.792c-7.197-4.32-16.536-1.987-20.854 5.215-4.318 7.197-1.985 16.535 5.215 20.854l30.4 18.24c2.432 1.459 5.133 2.166 7.813 2.166 4.2 0 8.343-1.737 11.313-5.04l39.35-43.793c5.611-6.246 5.097-15.857-1.147-21.467z"/>
7
+ </svg>
assets/images/heart_duplicate.svg ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg enable-background="new 0 0 512.001 512.001" version="1.1" viewBox="0 0 512 512" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="m115.91 103.56c-9.765 0-19.254 2.227-28.202 6.62-22.854 11.219-37.911 34.253-39.295 60.118-1.027 19.258 3.772 35.033 16.568 54.455 3.382 5.131 10.782 13.893 19.795 23.439 2.826 2.993 6.634 4.503 10.45 4.503 3.539 0 7.085-1.3 9.861-3.921 5.77-5.448 6.03-14.542 0.583-20.313-8.752-9.271-14.692-16.486-16.692-19.521-9.34-14.173-12.555-24.231-11.868-37.109 0.815-15.245 9.946-29.319 23.26-35.854 4.973-2.441 10.202-3.68 15.539-3.68 7.936 0 14.368-6.433 14.368-14.368 1e-3 -7.937-6.431-14.369-14.367-14.369z"/>
4
+ <path d="m125.45 253.42h-0.014c-7.936 0-14.361 6.433-14.361 14.368 0 7.936 6.44 14.368 14.376 14.368s14.368-6.433 14.368-14.368c-1e-3 -7.935-6.435-14.368-14.369-14.368z"/>
5
+ <path d="m511.84 271.18c-1.292-24.151-11.518-46.828-28.792-63.853-16.685-16.445-38.229-25.856-61.008-26.763 0.182-4.25 0.17-8.542-0.062-12.857-1.604-29.945-14.282-58.064-35.704-79.177-21.755-21.443-50.17-33.253-80.008-33.253-42.534 0-77.473 31.5-94.931 50.86-16.991-19.475-51.228-50.86-95.425-50.86-29.836 0-58.25 11.809-80.005 33.253-21.418 21.114-34.096 49.232-35.7 79.18-1.586 29.731 5.959 55.514 24.465 83.599 16.499 25.036 59.322 64.506 90.978 90.698 19.63 16.242 38.154 30.204 53.567 40.377 25.349 16.729 35.795 18.874 42.062 18.874 5.428 0 13.933-1.569 32.147-12.483 8.201 7.421 16.514 14.584 24.258 20.992 15.4 12.743 29.947 23.705 42.065 31.703 20.359 13.436 28.892 15.248 34.556 15.248 13.374 0 39.145-15.765 76.597-46.857 25.86-21.469 58.184-51.544 71.349-71.564 9.982-15.186 21.229-36.539 19.591-67.117zm-300.56 101.3c-6.964-1.172-34.101-16.659-79.156-54.145-38.222-31.8-71.763-65.093-83.461-82.843-15.107-22.928-21.018-42.742-19.764-66.252 2.514-46.996 41.548-85.229 87.01-85.229 47.186 0 82.877 52.528 83.218 53.037 2.619 3.947 7.023 6.341 11.761 6.411 4.747 0.04 9.212-2.206 11.949-6.072 0.378-0.535 38.325-53.377 83.428-53.377 45.465 0 84.5 38.234 87.015 85.231 0.29 5.423 0.181 10.64-0.339 15.772-1.283 0.454-2.55 0.937-3.805 1.444-0.068 0.027-0.134 0.056-0.201 0.083-1.187 0.484-2.358 0.99-3.516 1.517-0.066 0.03-0.132 0.059-0.197 0.089-2.437 1.116-4.809 2.326-7.115 3.606-0.042 0.023-0.085 0.046-0.126 0.07-14.093 7.852-25.648 18.361-33.598 26.803-0.312-0.342-0.638-0.69-0.961-1.037-0.139-0.149-0.272-0.295-0.412-0.445-0.264-0.283-0.542-0.57-0.815-0.856-0.211-0.221-0.417-0.441-0.632-0.665-0.207-0.216-0.425-0.435-0.638-0.652-0.293-0.3-0.581-0.598-0.881-0.901-0.128-0.129-0.263-0.26-0.391-0.389-0.394-0.394-0.786-0.787-1.193-1.185-0.214-0.21-0.438-0.422-0.657-0.634-0.33-0.319-0.657-0.638-0.994-0.958-0.134-0.128-0.274-0.256-0.409-0.384-11.776-11.1-28.323-23.064-48.327-27.872-0.135-0.033-0.273-0.059-0.409-0.091-1.796-0.422-3.617-0.792-5.466-1.092-0.381-0.062-0.769-0.108-1.151-0.164-0.618-0.091-1.233-0.188-1.858-0.264-0.139-0.017-0.283-0.027-0.422-0.043-0.872-0.102-1.746-0.197-2.629-0.27-0.319-0.026-0.644-0.037-0.966-0.06-1.739-0.121-3.493-0.197-5.273-0.197-24.113 0-47.067 9.536-64.634 26.852-17.272 17.027-27.497 39.703-28.79 63.855-0.414 7.747 0.03 14.945 1.07 21.599 0.593 3.796 1.4 7.395 2.333 10.841 0.97 3.572 2.092 6.953 3.323 10.151 0.325 0.842 0.652 1.675 0.99 2.493 1.178 2.849 2.428 5.538 3.717 8.077 0.884 1.74 1.777 3.425 2.68 5.022 0.04 0.07 0.079 0.147 0.119 0.217 1.818 3.2 3.644 6.108 5.371 8.729 0.388 0.589 0.795 1.187 1.216 1.79 0.207 0.297 0.428 0.603 0.644 0.905 0.213 0.297 0.42 0.593 0.639 0.894 0.312 0.43 0.639 0.866 0.967 1.303 0.121 0.161 0.239 0.32 0.361 0.483 0.412 0.545 0.839 1.096 1.273 1.652 0.026 0.032 0.05 0.063 0.075 0.096 5.426 6.934 12.501 14.683 20.416 22.656-6.553 3.469-9.546 4.236-10.389 4.399zm256.96-49.975c-8.952 13.613-34.445 39.074-63.438 63.359-33.322 27.912-54.244 40.298-60.461 41.999-6.222-1.754-27.201-14.235-60.701-42.206-15.466-12.914-29.911-26.115-41.39-37.67-0.072-0.072-0.142-0.144-0.213-0.216-1.598-1.611-3.132-3.185-4.608-4.727-0.483-0.504-0.966-1.009-1.435-1.506-0.22-0.233-0.435-0.463-0.652-0.693-0.589-0.628-1.171-1.25-1.736-1.862-0.098-0.106-0.197-0.213-0.295-0.318-4.349-4.721-7.96-8.97-10.677-12.577-0.091-0.119-0.178-0.239-0.267-0.358-0.335-0.448-0.652-0.884-0.957-1.312-0.095-0.132-0.194-0.269-0.286-0.399-0.371-0.526-0.723-1.039-1.047-1.53-11.386-17.279-15.843-32.168-14.903-49.781 1.875-35.017 30.911-63.504 64.729-63.504 35.083 0 62.043 39.595 62.293 39.966 0.655 0.986 1.421 1.875 2.276 2.655 0.292 0.266 0.606 0.5 0.917 0.74 0.145 0.112 0.279 0.24 0.428 0.346 1.368 0.974 2.902 1.695 4.53 2.144 0.046 0.013 0.091 0.033 0.136 0.045 0.379 0.101 0.769 0.164 1.157 0.233 0.185 0.033 0.365 0.085 0.553 0.111 0.262 0.036 0.532 0.039 0.796 0.062 0.319 0.026 0.636 0.069 0.96 0.073h3e-3 1e-3c7e-3 0 0.016-1e-3 0.023-1e-3 4.75 0.065 9.187-2.204 11.923-6.058 3e-3 -4e-3 0.029-0.039 0.042-0.057 0.013-0.019 0.026-0.036 0.05-0.07 0.03-0.042 0.083-0.112 0.128-0.174 0.034-0.047 0.068-0.091 0.111-0.149 0.065-0.086 0.148-0.197 0.23-0.307 0.045-0.059 0.088-0.116 0.136-0.181 0.106-0.141 0.23-0.302 0.361-0.473 0.042-0.053 0.083-0.108 0.126-0.164 0.152-0.197 0.319-0.411 0.499-0.641 0.034-0.043 0.07-0.089 0.105-0.134 0.204-0.259 0.421-0.533 0.658-0.828 0.01-0.013 0.02-0.026 0.03-0.037 6.765-8.418 26.651-30.816 50.494-36.019 0.142-0.032 0.274-0.088 0.415-0.124 2.99-0.616 6.041-0.961 9.131-0.961 33.82 0 62.859 28.488 64.733 63.506 0.94 17.578-3.518 32.47-14.908 49.798z"/>
6
+ </svg>
assets/images/heart_error.svg ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg enable-background="new 0 0 512.001 512.001" version="1.1" viewBox="0 0 512 512" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="m511.76 181.79c-1.925-35.964-17.153-69.735-42.881-95.093-26.105-25.731-60.188-39.9-95.972-39.9-53.129 0-96.55 41.179-116.65 64.164-19.518-23.13-61.927-64.164-117.17-64.164-35.78 0-69.863 14.171-95.967 39.9-25.724 25.359-40.953 59.131-42.877 95.095-1.911 35.774 7.193 66.832 29.513 100.7 20.068 30.449 72.394 78.655 111.1 110.68 39.713 32.858 91.964 72.026 115.37 72.026 23.764 0 75.828-39.084 115.32-71.871 38.413-31.893 90.458-80.06 110.71-110.85 15.025-22.854 31.952-54.951 29.5-100.69zm-53.504 84.909c-14.878 22.623-56.752 64.344-104.2 103.82-56.938 47.373-90.252 65.6-97.748 65.961-7.613-0.457-41.011-18.87-98.222-66.332-47.716-39.584-89.647-81.162-104.34-103.46-18.722-28.411-26.374-54.121-24.814-83.363 3.182-59.441 52.596-107.8 110.16-107.8 59.764 0 104.52 65.965 104.96 66.615 2.62 3.948 7.024 6.342 11.762 6.411 0.07 1e-3 0.142 1e-3 0.213 1e-3 4.657 0 9.037-2.267 11.732-6.076 0.474-0.669 48.022-66.951 105.16-66.951 57.562 0 106.98 48.358 110.16 107.8 1.585 29.567-5.836 54.502-24.815 83.374z"/>
4
+ <path d="m139.09 106.1c-11.491 0-22.658 2.623-33.193 7.794-26.597 13.055-44.823 40.952-46.433 71.071-1.222 22.889 4.519 41.693 19.814 64.905 4.305 6.533 19.005 24.115 29.128 34.836 2.827 2.992 6.632 4.503 10.448 4.503 3.538 0 7.083-1.3 9.859-3.92 5.769-5.447 6.029-14.539 0.583-20.306-10.15-10.755-23.208-26.643-26.029-30.923-11.904-18.067-16.001-30.958-15.115-47.564 1.064-19.894 12.999-38.27 30.406-46.813 6.56-3.221 13.47-4.854 20.533-4.854 7.932 0 14.365-6.431 14.365-14.365s-6.434-14.364-14.366-14.364z"/>
5
+ <path d="m150.8 290.17h-0.014c-7.932 0-14.358 6.431-14.358 14.365s6.438 14.365 14.372 14.365 14.365-6.431 14.365-14.365-6.431-14.365-14.365-14.365z"/>
6
+ <path d="m418.62 209.44 25.255-25.255c1.052-1.052 1.906-2.227 2.564-3.478 1.096-2.084 1.643-4.383 1.643-6.681 1e-3 -3.679-1.401-7.355-4.206-10.16l-41.745-41.745c-2.695-2.693-6.348-4.207-10.157-4.207-0.477 0-0.95 0.023-1.419 0.07-3.288 0.326-6.38 1.78-8.738 4.137l-25.256 25.256-25.255-25.255c-2.695-2.693-6.348-4.208-10.157-4.208s-7.463 1.514-10.157 4.208l-41.745 41.745c-2.805 2.805-4.207 6.481-4.207 10.157 0 2.298 0.547 4.595 1.643 6.681 0.658 1.251 1.513 2.425 2.564 3.478l25.255 25.255-25.255 25.255c-0.34 0.34-0.662 0.698-0.964 1.067-0.217 0.264-0.409 0.54-0.605 0.816-0.075 0.106-0.159 0.207-0.231 0.315-0.236 0.353-0.448 0.717-0.649 1.085-0.022 0.04-0.047 0.078-0.069 0.116-0.203 0.381-0.384 0.77-0.55 1.165-0.014 0.034-0.033 0.069-0.047 0.103-0.157 0.379-0.29 0.766-0.414 1.155-0.017 0.057-0.042 0.112-0.059 0.169-0.112 0.369-0.2 0.743-0.281 1.119-0.019 0.083-0.045 0.164-0.06 0.249-0.073 0.368-0.122 0.738-0.165 1.109-0.011 0.095-0.032 0.188-0.042 0.284-0.09 0.935-0.09 1.878 0 2.813 9e-3 0.089 0.027 0.174 0.037 0.263 0.045 0.379 0.095 0.757 0.169 1.13 0.014 0.075 0.039 0.148 0.055 0.221 0.083 0.385 0.174 0.767 0.287 1.145 0.014 0.047 0.033 0.092 0.047 0.138 0.125 0.401 0.264 0.797 0.425 1.188 9e-3 0.022 0.02 0.042 0.029 0.062 0.171 0.409 0.359 0.812 0.57 1.207 0.01 0.019 0.023 0.037 0.033 0.057 0.21 0.389 0.435 0.771 0.685 1.145 0.047 0.07 0.103 0.136 0.151 0.207 0.217 0.315 0.44 0.626 0.685 0.925 0.302 0.369 0.622 0.724 0.961 1.064l41.745 41.743c0.351 0.35 0.715 0.679 1.092 0.987 5.268 4.295 12.867 4.295 18.133 0 0.376-0.307 0.741-0.635 1.092-0.987l25.255-25.255 25.255 25.255c2.805 2.805 6.481 4.207 10.157 4.207s7.352-1.402 10.157-4.207l41.745-41.743c5.609-5.609 5.609-14.705 0-20.315l-25.256-25.255zm-97.47-56.845 15.098 15.099-21.428 21.428-15.098-15.098 21.428-21.429zm70.825 113.68-15.098-15.098 21.428-21.428 15.098 15.098-21.428 21.428zm-3.826-67.001-67 67.001-21.428-21.428 92.254-92.255 21.428 21.428-25.254 25.254z"/>
7
+ </svg>
assets/images/heart_remove.svg ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg enable-background="new 0 0 512 512" version="1.1" viewBox="0 0 512 512" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="m139.5 84.828c-11.584 0-22.846 2.643-33.471 7.858-26.787 13.148-45.144 41.241-46.768 71.571-1.228 23.018 4.534 41.91 19.889 65.216 4.311 6.542 19.009 24.123 29.125 34.836 2.99 3.166 7.018 4.765 11.055 4.765 3.744 0 7.495-1.374 10.432-4.148 6.104-5.764 6.379-15.384 0.617-21.488-10.087-10.684-23.049-26.451-25.843-30.692-11.747-17.828-15.79-30.531-14.917-46.866 1.044-19.511 12.742-37.528 29.804-45.903 6.421-3.151 13.174-4.749 20.076-4.749 8.395 0 15.2-6.807 15.2-15.2s-6.804-15.2-15.199-15.2z"/>
4
+ <path d="m151.17 268.26h-0.015c-8.395 0-15.193 6.807-15.193 15.2s6.813 15.2 15.208 15.2 15.2-6.807 15.2-15.2-6.805-15.2-15.2-15.2z"/>
5
+ <path d="m457.6 292.43c10.783-11.763 19.041-21.972 24.62-30.452 15.044-22.888 31.998-55.036 29.54-100.88-1.929-36.061-17.197-69.922-42.993-95.349-26.182-25.805-60.367-40.016-96.261-40.016-52.688 0-95.814 40.323-116.23 63.477-19.839-23.294-61.998-63.477-116.78-63.477-35.89 0-70.076 14.212-96.255 40.017-25.796 25.426-41.064 59.288-42.995 95.35-1.912 35.851 7.203 66.967 29.557 100.89 20.052 30.426 72.27 78.539 110.89 110.5 23.964 19.829 46.567 36.866 65.363 49.271 30.497 20.128 42.834 22.709 50.172 22.709 6.335 0 16.263-1.888 37.594-14.622 18.588 33.609 54.397 56.426 95.444 56.426 60.104 0 109-48.899 109-109 3e-3 -34.248-15.89-64.842-40.673-84.839zm-177.17 90.66c0.024 0.467 0.076 0.929 0.106 1.394 0.097 1.482 0.207 2.961 0.363 4.426 0.052 0.488 0.128 0.973 0.185 1.459 0.175 1.453 0.365 2.9 0.597 4.335 0.076 0.468 0.169 0.932 0.251 1.398 0.255 1.458 0.531 2.906 0.842 4.343 0.034 0.16 0.056 0.318 0.091 0.474-19 11.867-25.691 13.033-26.628 13.142-7.922-0.793-41.185-19.345-97.585-66.172-47.335-39.301-88.916-80.544-103.47-102.62-18.546-28.145-26.126-53.602-24.583-82.541 3.145-58.773 51.995-106.59 108.89-106.59 59.071 0 103.43 65.348 103.86 65.988 2.773 4.177 7.431 6.709 12.444 6.784 4.966 0.065 9.746-2.335 12.64-6.427 0.47-0.664 47.599-66.345 104.07-66.345 56.903 0 105.75 47.815 108.9 106.59 1.569 29.26-5.785 53.948-24.586 82.552-5.319 8.088-14.2 18.78-25.927 31.239-0.851-0.35-1.718-0.661-2.578-0.99-0.664-0.255-1.322-0.523-1.993-0.765-0.725-0.261-1.459-0.496-2.189-0.742-1.014-0.344-2.026-0.69-3.052-1.005-0.439-0.134-0.885-0.248-1.325-0.377-1.304-0.38-2.613-0.752-3.937-1.085-0.226-0.056-0.456-0.102-0.682-0.158-1.514-0.369-3.037-0.719-4.575-1.024-0.126-0.026-0.252-0.043-0.378-0.068-1.616-0.315-3.239-0.602-4.879-0.845-0.181-0.027-0.365-0.044-0.546-0.07-1.567-0.223-3.139-0.427-4.726-0.584-0.517-0.052-1.037-0.074-1.553-0.119-1.254-0.105-2.508-0.217-3.774-0.28-1.807-0.091-3.619-0.138-5.431-0.138-60.104 0-109 48.897-109 109 1e-3 1.955 0.059 3.896 0.161 5.824zm108.84 72.782c-34.728 0-64.246-22.647-74.616-53.941-0.229-0.693-0.454-1.386-0.664-2.084-0.111-0.366-0.21-0.739-0.316-1.108-0.682-2.4-1.246-4.826-1.696-7.272-0.1-0.549-0.207-1.097-0.295-1.649-0.093-0.576-0.172-1.154-0.251-1.733-0.09-0.652-0.176-1.304-0.251-1.961-0.059-0.524-0.114-1.047-0.163-1.572-0.071-0.772-0.129-1.547-0.178-2.324-0.027-0.429-0.059-0.856-0.079-1.286-0.056-1.219-0.093-2.44-0.093-3.672 0-43.342 35.26-78.601 78.601-78.601 1.532 0 3.061 0.055 4.586 0.144 0.401 0.024 0.798 0.062 1.198 0.093 1.158 0.085 2.315 0.19 3.467 0.327 0.407 0.047 0.812 0.1 1.218 0.157 1.202 0.16 2.402 0.35 3.593 0.565 0.312 0.056 0.625 0.108 0.935 0.167 2.988 0.581 5.939 1.333 8.836 2.251 0.455 0.146 0.903 0.306 1.353 0.459 0.906 0.306 1.806 0.626 2.7 0.965 0.643 0.245 1.283 0.497 1.918 0.758 0.648 0.264 1.287 0.546 1.927 0.828 0.752 0.334 1.509 0.663 2.25 1.018 0.234 0.112 0.461 0.237 0.695 0.351 25.997 12.835 43.928 39.616 43.928 70.518 0 43.341-35.263 78.602-78.603 78.602z"/>
6
+ <path d="m410.77 377.27 17.62-17.621c5.936-5.936 5.936-15.56 0-21.496-5.937-5.934-15.559-5.934-21.497 0l-17.62 17.621-17.62-17.621c-5.937-5.934-15.559-5.934-21.497 0-5.936 5.936-5.936 15.56 0 21.497l17.62 17.621-17.62 17.62c-5.936 5.936-5.936 15.56 0 21.497 2.969 2.967 6.858 4.452 10.748 4.452s7.779-1.485 10.748-4.452l17.62-17.62 17.62 17.62c2.969 2.967 6.858 4.452 10.748 4.452s7.779-1.485 10.748-4.452c5.936-5.936 5.936-15.56 0-21.497l-17.618-17.621z"/>
7
+ </svg>
assets/images/wpc-bg.png ADDED
Binary file
assets/images/wpc-icon.png ADDED
Binary file
assets/images/wpc-icon.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><defs><style>.cls-1{fill:#fff;}</style></defs><title>White-Symbol</title><path class="cls-1" d="M485,159.63c0,10.8,4.8,17,13.46,17.45l1,0a14.6,14.6,0,0,0,10.18-3.84,16.27,16.27,0,0,0,4.93-11.77c.56-27.68.58-56.13.08-84.54a16.48,16.48,0,0,0-4.9-11.85,14.9,14.9,0,0,0-11-4C490,61.43,485,67.73,485,78.42q0,14,0,27.93v23.79Q485,144.89,485,159.63Z"/><path class="cls-1" d="M513.53,394.66v32h18.26c11.52,0,18.25-6.88,18.25-15.86v-.3c0-10.32-7.18-15.86-18.7-15.86Z"/><path class="cls-1" d="M685.14,316C635.43,231.68,544.28,192.34,449.2,214.2,295.42,249.55,232.77,442.33,336.79,562.77c31.36,36.32,58.74,73.44,64,122.84,1.21,11.33,8.14,14.72,18.94,11.66,14.36-4.08,28.76-8,43.25-11.6,36.45-9,73-17.77,113.31-27.56a1.35,1.35,0,0,1,1.46,2c-6.18,9.38-13.65,8.58-19.36,10-48.8,12.35-97.74,24.19-146.68,36-9.62,2.34-17.71,7-15,17.77,2.4,9.68,11.38,11.08,20.33,8.79Q502.25,711,587.44,689.07c7.5-1.93,13.29-5.39,14-14.14,3.36-43.42,27-75.68,55.6-106.49C721.78,498.58,732.43,396.26,685.14,316ZM344,330.94a180.55,180.55,0,0,1,312.67.43c4.36,7.52-3.56,16.25-11.43,12.55l-.29-.13a9.11,9.11,0,0,1-4-3.67,162.57,162.57,0,0,0-281.25-.39,9,9,0,0,1-4,3.67l-.29.14C347.49,347.19,339.61,338.45,344,330.94Zm229.39,79.13v.3c0,24.24-18.85,36.81-42.34,36.81H513.53V468a11.52,11.52,0,0,1-23,0v-82.6A11.43,11.43,0,0,1,502,373.86h31.27C558.27,373.86,573.38,388.67,573.38,410.07ZM319.61,388.52a14.87,14.87,0,0,1-.9-4.34c0-6.43,5.39-11.22,11.82-11.22a11.62,11.62,0,0,1,11.22,8.23l20.8,64.19,20.95-63.59c1.8-5.39,5.84-9.13,11.67-9.13H397c5.83,0,9.87,3.59,11.67,9.13l20.95,63.59,20.8-64.19A11.52,11.52,0,0,1,461.46,373,11.12,11.12,0,0,1,472.83,384a15.86,15.86,0,0,1-.9,4.48l-29.32,82.3c-2.1,5.84-6.44,9.43-12,9.43h-2.4c-5.53,0-9.72-3.44-11.82-9.43l-20.65-60-20.65,60c-2.09,6-6.28,9.43-11.82,9.43h-2.39c-5.54,0-9.88-3.59-12-9.43ZM658.77,516a180.57,180.57,0,0,1-316.9.44c-4.18-7.58,3.72-16.15,11.54-12.43l.29.14a9,9,0,0,1,4.06,3.82,162.57,162.57,0,0,0,285.11-.4,9.13,9.13,0,0,1,4-3.83l.28-.13C655,499.88,662.93,508.42,658.77,516Zm18-48.79c-9.43,8.23-20.5,13.17-37.26,13.17-30.82,0-53.72-23.79-53.72-53.87v-.3c0-29.78,22.45-54.17,54.62-54.17,15.71,0,26.33,4.19,35,10.63a11.51,11.51,0,0,1,4.49,9.13A11.24,11.24,0,0,1,668.55,403a12.09,12.09,0,0,1-6.89-2.25c-6.43-4.78-13.16-7.48-21.39-7.48-17.66,0-30.38,14.67-30.38,32.62v.3c0,18,12.42,32.92,30.38,32.92,9.72,0,16.16-3,22.74-8.23a10.67,10.67,0,1,1,13.77,16.31Z"/><path class="cls-1" d="M581.78,785.79c-57.34,14.64-114.63,29.46-172,44-7.93,2-13.53,5.18-12,14.53s8.37,10.6,16.09,10.4H414a25,25,0,0,0,3.24-.41Q503.42,833,589.54,811.51c8.45-2.11,14.58-7.66,12.3-16.69C599.31,784.81,590.71,783.51,581.78,785.79Z"/><path class="cls-1" d="M583.81,724.72Q496,746.14,408.42,768.17c-7.21,1.8-11.67,6.14-10.66,14.34,1.05,8.45,7.08,10.32,14.13,10.92h.19a18.8,18.8,0,0,0,3.21-.25Q503,771.42,590.63,749.49c7.61-1.91,13.26-7,11.48-15.64C600,723.86,591.83,722.76,583.81,724.72Z"/><path class="cls-1" d="M803.13,638c-21.46-18.42-45.23-38.51-74.79-63.24a31,31,0,0,0-7.08-4.08l-.69-.32a8.91,8.91,0,0,0-5.44-.69c-5.36,1-9.06,4-11.64,9.35-5.1,10.57,3.14,17.68,7.1,21.1,22.63,19.51,46.24,39.52,72.2,61.17,4.89,4.08,9.72,6.13,14.17,6.13a14.68,14.68,0,0,0,11-5.14c2.94-3.19,4.33-6.6,4.13-10.13C811.8,647.58,808.88,643,803.13,638Z"/><path class="cls-1" d="M542.34,857.29c-26.87,21-54.38,21.7-83,3.45-6.76-4.3-15.3-6.65-20.22,2.56-4.47,8.34.63,15.15,7.29,19.81,15.26,10.69,32.19,17,52.17,17.35,21.37-.74,40.84-9.18,58.22-22.93,6.6-5.22,8.44-11.91,3.08-18.79C555,852.45,548.53,852.44,542.34,857.29Z"/><path class="cls-1" d="M279.56,571.47c-5.34-3.1-10.73-2.93-14.78.49-29.13,24.54-53.53,45.24-77.93,66.53-4.48,3.9-5.33,10.65-2.07,16.42a14.74,14.74,0,0,0,9.23,7.54,14.49,14.49,0,0,0,3.75.48,18.35,18.35,0,0,0,5.77-1,17.06,17.06,0,0,0,5.58-2.84c22.57-18.88,46.73-39.22,70.56-60,3.85-3.36,5.63-9.39,6.34-12.68C287.39,580.11,285,574.66,279.56,571.47Z"/><path class="cls-1" d="M869.8,382.83a15.89,15.89,0,0,0-11.46-4.7c-32.84-.44-63.21-.41-92.83.09a16.07,16.07,0,0,0-11.58,4.62,15.23,15.23,0,0,0-3.82,11.36c.45,11.53,9.23,14,16.57,14h.15c10.11,0,20.4,0,30.34,0H812v-.24l11.88,0c11.19,0,22.76.08,34.14-.11,9.32-.16,15.54-5.5,15.86-13.61A15.48,15.48,0,0,0,869.8,382.83Z"/><path class="cls-1" d="M682.59,252.67c6.7,0,12.67-5,15.24-7.15,16.63-13.91,33.34-28.28,49.51-42.17l9.89-8.49c5.37-4.62,8.22-9.6,8.48-14.82v-.21c-.33-6.08-2.81-10.23-7.79-13.05-8.38-4.76-15-.65-20.37,4-17.95,15.55-37,32.23-60,52.51-5.66,5-15.12,13.35-6,23.83C675.19,251.23,679,252.67,682.59,252.67Z"/><path class="cls-1" d="M185.52,408.12V408c3.68,0,7.36,0,11,0,10.43,0,21.21.09,31.81-.12a18.51,18.51,0,0,0,10.93-3.54,13,13,0,0,0,5.16-10,15.48,15.48,0,0,0-4.08-11.48A15.69,15.69,0,0,0,229,378.12c-32.68-.39-61.5-.29-88.13.33-4.62.1-8.46,1.69-11.09,4.59s-3.92,7.09-3.57,12c.62,8.61,5.89,13,15.67,13.08,5.71,0,11.48.05,17.2.05h26.44Z"/><path class="cls-1" d="M237.09,197.15c17.81,15.58,35.62,30.65,56.88,48.48,5.48,4.6,10.67,6.9,15.34,6.9,4.19,0,7.95-1.85,11.1-5.57,8.82-10.39-1.57-19.57-6.57-24-14.8-13.08-30-26.23-44.65-38.95l-12.93-11.22c-3.14-2.72-6.62-5.39-11.48-5.54a14.4,14.4,0,0,0-14.13,8.33C227.2,183,229.43,190.45,237.09,197.15Z"/></svg>
assets/images/wpc-store.png ADDED
Binary file
assets/js/backend.js ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ (function($) {
4
+ $(function() {
5
+ if ($('.woosw_color_picker').length > 0) {
6
+ $('.woosw_color_picker').wpColorPicker();
7
+ }
8
+ });
9
+
10
+ $(document).on('click touch', '.woosw_action', function(e) {
11
+ var pid = $(this).attr('data-pid');
12
+ var key = $(this).attr('data-key');
13
+
14
+ if ($('#woosw_popup').length < 1) {
15
+ $('body').append('<div id=\'woosw_popup\'></div>');
16
+ }
17
+
18
+ $('#woosw_popup').html('Loading...');
19
+
20
+ if (key && key != '') {
21
+ $('#woosw_popup').
22
+ dialog({
23
+ minWidth: 460,
24
+ title: 'Wishlist #' + key,
25
+ modal: true,
26
+ dialogClass: 'wpc-dialog',
27
+ open: function() {
28
+ $('.ui-widget-overlay').bind('click', function() {
29
+ $('#woosw_popup').dialog('close');
30
+ });
31
+ },
32
+ });
33
+
34
+ var data = {
35
+ action: 'wishlist_quickview',
36
+ key: key,
37
+ };
38
+
39
+ $.post(ajaxurl, data, function(response) {
40
+ $('#woosw_popup').html(response);
41
+ });
42
+ }
43
+
44
+ if (pid && pid != '') {
45
+ $('#woosw_popup').
46
+ dialog({
47
+ minWidth: 460,
48
+ title: 'Product ID #' + pid,
49
+ modal: true,
50
+ dialogClass: 'wpc-dialog',
51
+ open: function() {
52
+ $('.ui-widget-overlay').bind('click', function() {
53
+ $('#woosw_popup').dialog('close');
54
+ });
55
+ },
56
+ });
57
+
58
+ var data = {
59
+ action: 'wishlist_quickview',
60
+ pid: pid,
61
+ };
62
+
63
+ $.post(ajaxurl, data, function(response) {
64
+ $('#woosw_popup').html(response);
65
+ });
66
+ }
67
+
68
+ e.preventDefault();
69
+ });
70
+ })(jQuery);
assets/js/frontend.js ADDED
@@ -0,0 +1,662 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ (function($) {
4
+ $(function() {
5
+ if (woosw_get_cookie('woosw_key') == '') {
6
+ woosw_set_cookie('woosw_key', woosw_get_key(), 7);
7
+ }
8
+
9
+ if ($('.woosw-custom-menu-item').length) {
10
+ // load the count when having a custom menu item
11
+ woosw_load_count();
12
+ }
13
+ });
14
+
15
+ // woovr
16
+ $(document).on('woovr_selected', function(e, selected, variations) {
17
+ var id = selected.attr('data-id');
18
+ var pid = selected.attr('data-pid');
19
+
20
+ if (id > 0) {
21
+ $('.woosw-btn-' + pid).attr('data-id', id).
22
+ removeClass('woosw-btn-added woosw-added');
23
+ } else {
24
+ $('.woosw-btn-' + pid).attr('data-id', pid).
25
+ removeClass('woosw-btn-added woosw-added');
26
+ }
27
+ });
28
+
29
+ // found variation
30
+ $(document).on('found_variation', function(e, t) {
31
+ var product_id = $(e['target']).attr('data-product_id');
32
+
33
+ $('.woosw-btn-' + product_id).attr('data-id', t.variation_id).
34
+ removeClass('woosw-btn-added woosw-added');
35
+ });
36
+
37
+ // reset data
38
+ $(document).on('reset_data', function(e) {
39
+ var product_id = $(e['target']).attr('data-product_id');
40
+
41
+ $('.woosw-btn-' + product_id).attr('data-id', product_id).
42
+ removeClass('woosw-btn-added woosw-added');
43
+ });
44
+
45
+ // quick view
46
+ $(document).
47
+ on('click touch',
48
+ '#woosw_wishlist .woosq-link, #woosw_wishlist .woosq-btn',
49
+ function(e) {
50
+ woosw_wishlist_hide();
51
+ e.preventDefault();
52
+ });
53
+
54
+ // add to wishlist
55
+ $(document).on('click touch', '.woosw-btn', function(e) {
56
+ var $this = $(this);
57
+ var id = $this.attr('data-id');
58
+ var pid = $this.attr('data-pid');
59
+ var product_id = $this.attr('data-product_id');
60
+
61
+ if (typeof pid !== typeof undefined && pid !== false) {
62
+ id = pid;
63
+ }
64
+
65
+ if (typeof product_id !== typeof undefined && product_id !== false) {
66
+ id = product_id;
67
+ }
68
+
69
+ var data = {
70
+ action: 'wishlist_add', product_id: id,
71
+ };
72
+
73
+ if ($this.hasClass('woosw-added')) {
74
+ if (woosw_vars.button_action_added === 'page') {
75
+ // open wishlist page
76
+ window.location.href = woosw_vars.wishlist_url;
77
+ } else {
78
+ // open wishlist popup
79
+ if ($('#woosw_wishlist').hasClass('woosw-loaded')) {
80
+ woosw_wishlist_show();
81
+ } else {
82
+ woosw_wishlist_load();
83
+ }
84
+ }
85
+ } else {
86
+ $this.addClass('woosw-adding');
87
+
88
+ $.post(woosw_vars.ajax_url, data, function(response) {
89
+ $this.removeClass('woosw-adding');
90
+ response = JSON.parse(response);
91
+
92
+ if (woosw_vars.button_action === 'list') {
93
+ $('#woosw_wishlist').removeClass('woosw-message');
94
+
95
+ if (response['content'] != null) {
96
+ $('#woosw_wishlist').
97
+ html(response['content']).
98
+ addClass('woosw-loaded');
99
+ }
100
+
101
+ if (response['notice'] != null) {
102
+ woosw_notice(response['notice']);
103
+ }
104
+
105
+ woosw_perfect_scrollbar();
106
+ woosw_wishlist_show();
107
+ } else if (woosw_vars.button_action === 'message') {
108
+ $('#woosw_wishlist').addClass('woosw-message');
109
+
110
+ var message = '<div class="woosw-popup-inner"><div class="woosw-popup-content"><div class="woosw-popup-content-top"><span class="woosw-popup-close"></span></div><div class="woosw-popup-content-mid"><div class="woosw-popup-content-mid-message">';
111
+
112
+ if (response['image'] != null) {
113
+ message += '<img src="' + response['image'] + '"/>';
114
+ }
115
+
116
+ if (response['notice'] != null) {
117
+ message += '<span>' + response['notice'] + '</span>';
118
+ }
119
+
120
+ message += '</div></div></div></div>';
121
+
122
+ $('#woosw_wishlist').html(message).removeClass('woosw-loaded');
123
+
124
+ woosw_wishlist_show();
125
+ } else if (woosw_vars.button_action === 'no') {
126
+ // add to wishlist solely
127
+ $('#woosw_wishlist').removeClass('woosw-loaded');
128
+ }
129
+
130
+ if (response['count'] != null) {
131
+ woosw_change_count(response['count']);
132
+ }
133
+
134
+ if (response['status'] === 1) {
135
+ $this.addClass('woosw-added').html(woosw_vars.button_text_added);
136
+ }
137
+
138
+ $(document.body).trigger('woosw_add', [id]);
139
+ });
140
+ }
141
+
142
+ e.preventDefault();
143
+ });
144
+
145
+ // remove from wishlist
146
+ $(document).
147
+ on('click touch', '.woosw-item--remove span', function(e) {
148
+ var $this = $(this);
149
+ var key = $this.closest('.woosw-popup-inner').data('key');
150
+ var $this_item = $this.closest('.woosw-item');
151
+ var product_id = $this_item.attr('data-id');
152
+ var data = {
153
+ action: 'wishlist_remove', product_id: product_id, key: key,
154
+ };
155
+
156
+ $this.addClass('woosw-removing');
157
+
158
+ $.post(woosw_vars.ajax_url, data, function(response) {
159
+ $this.removeClass('woosw-removing');
160
+ $this_item.remove();
161
+ response = JSON.parse(response);
162
+
163
+ if (response['status'] === 1) {
164
+ $('.woosw-btn-' + product_id).
165
+ removeClass('woosw-added').
166
+ html(woosw_vars.button_text);
167
+ }
168
+
169
+ if (response['content'] != null) {
170
+ $('#woosw_wishlist').
171
+ html(response['content']).
172
+ addClass('woosw-loaded');
173
+ }
174
+
175
+ if (response['notice'] != null) {
176
+ woosw_notice(response['notice']);
177
+ }
178
+
179
+ if (response['count'] != null) {
180
+ woosw_change_count(response['count']);
181
+ }
182
+
183
+ $(document.body).trigger('woosw_remove', [product_id]);
184
+ });
185
+
186
+ e.preventDefault();
187
+ });
188
+
189
+ // empty wishlist
190
+ $(document).on('click touch', '.woosw-empty', function(e) {
191
+ var $this = $(this);
192
+
193
+ if (confirm(woosw_vars.empty_confirm)) {
194
+ woosw_popup_loading();
195
+
196
+ var key = $this.closest('.woosw-popup-inner').data('key');
197
+ var data = {
198
+ action: 'wishlist_empty', key: key,
199
+ };
200
+
201
+ $.post(woosw_vars.ajax_url, data, function(response) {
202
+ response = JSON.parse(response);
203
+
204
+ if (response['status'] === 1) {
205
+ $('.woosw-btn').
206
+ removeClass('woosw-added').
207
+ html(woosw_vars.button_text);
208
+ }
209
+
210
+ if (response['content'] != null) {
211
+ $('#woosw_wishlist').
212
+ html(response['content']).
213
+ addClass('woosw-loaded');
214
+ }
215
+
216
+ if (response['notice'] != null) {
217
+ woosw_notice(response['notice']);
218
+ }
219
+
220
+ if (response['count'] != null) {
221
+ woosw_change_count(response['count']);
222
+ }
223
+
224
+ woosw_popup_loaded();
225
+ });
226
+ }
227
+
228
+ $(document.body).trigger('woosw_empty', [key]);
229
+
230
+ e.preventDefault();
231
+ });
232
+
233
+ // click on area
234
+ $(document).on('click touch', '.woosw-popup', function(e) {
235
+ var woosw_content = $('.woosw-popup-content');
236
+
237
+ if ($(e.target).closest(woosw_content).length == 0) {
238
+ woosw_wishlist_hide();
239
+ woosw_manage_hide();
240
+ }
241
+ });
242
+
243
+ // continue
244
+ $(document).on('click touch', '.woosw-continue', function(e) {
245
+ var url = $(this).attr('data-url');
246
+ woosw_wishlist_hide();
247
+
248
+ if (url !== '') {
249
+ window.location.href = url;
250
+ }
251
+
252
+ e.preventDefault();
253
+ });
254
+
255
+ // close
256
+ $(document).
257
+ on('click touch', '#woosw_wishlist .woosw-popup-close', function(e) {
258
+ woosw_wishlist_hide();
259
+ e.preventDefault();
260
+ });
261
+
262
+ // manage close
263
+ $(document).
264
+ on('click touch', '#woosw_manage .woosw-popup-close', function(e) {
265
+ woosw_manage_hide();
266
+ e.preventDefault();
267
+ });
268
+
269
+ // manage wishlists
270
+ $(document).on('click touch', '.woosw-manage', function(e) {
271
+ e.preventDefault();
272
+ woosw_popup_loading();
273
+
274
+ var data = {
275
+ action: 'manage_wishlists',
276
+ };
277
+
278
+ $.post(woosw_vars.ajax_url, data, function(response) {
279
+ woosw_wishlist_hide();
280
+ $('#woosw_manage').html(response);
281
+ woosw_manage_show();
282
+ woosw_popup_loaded();
283
+ });
284
+ });
285
+
286
+ // add wishlist
287
+ $(document).on('click touch', '#woosw_add_wishlist', function(e) {
288
+ e.preventDefault();
289
+ woosw_popup_loading();
290
+
291
+ var name = $('#woosw_wishlist_name').val();
292
+ var data = {
293
+ action: 'add_wishlist', name: name,
294
+ };
295
+
296
+ $.post(woosw_vars.ajax_url, data, function(response) {
297
+ $('#woosw_manage').html(response);
298
+ $('#woosw_wishlist').removeClass('woosw-loaded');
299
+ woosw_popup_loaded();
300
+ });
301
+ });
302
+
303
+ // set default
304
+ $(document).on('click touch', '.woosw-set-default', function(e) {
305
+ e.preventDefault();
306
+ woosw_popup_loading();
307
+
308
+ var key = $(this).data('key');
309
+ var data = {
310
+ action: 'set_default', key: key,
311
+ };
312
+
313
+ $.post(woosw_vars.ajax_url, data, function(response) {
314
+ response = JSON.parse(response);
315
+
316
+ if (response['count'] != null) {
317
+ woosw_change_count(response['count']);
318
+ }
319
+
320
+ $('.woosw-btn').removeClass('woosw-added').html(woosw_vars.button_text);
321
+
322
+ if ((response['products'] != null) && response['products'].length) {
323
+ response['products'].forEach((product_id) => {
324
+ $('.woosw-btn-' + product_id).
325
+ addClass('woosw-added').
326
+ html(woosw_vars.button_text_added);
327
+ });
328
+ }
329
+
330
+ $('#woosw_manage').html(response['content']);
331
+ $('#woosw_wishlist').removeClass('woosw-loaded');
332
+ woosw_popup_loaded();
333
+ });
334
+ });
335
+
336
+ // delete wishlist
337
+ $(document).on('click touch', '.woosw-delete-wishlist', function(e) {
338
+ e.preventDefault();
339
+
340
+ if (confirm(woosw_vars.delete_confirm)) {
341
+ woosw_popup_loading();
342
+
343
+ var key = $(this).data('key');
344
+ var data = {
345
+ action: 'delete_wishlist', key: key,
346
+ };
347
+
348
+ $.post(woosw_vars.ajax_url, data, function(response) {
349
+ $('#woosw_manage').html(response);
350
+ $('#woosw_wishlist').removeClass('woosw-loaded');
351
+ woosw_popup_loaded();
352
+ });
353
+ }
354
+ });
355
+
356
+ // view wishlist
357
+ $(document).on('click touch', '.woosw-view-wishlist', function(e) {
358
+ e.preventDefault();
359
+ woosw_popup_loading();
360
+
361
+ var key = $(this).data('key');
362
+ var data = {
363
+ action: 'view_wishlist', key: key,
364
+ };
365
+
366
+ $.post(woosw_vars.ajax_url, data, function(response) {
367
+ woosw_manage_hide();
368
+ $('#woosw_wishlist').removeClass('woosw-loaded').html(response);
369
+ woosw_wishlist_show();
370
+ woosw_popup_loaded();
371
+ });
372
+ });
373
+
374
+ // menu item
375
+ $(document).on('click touch', '.woosw-menu-item a', function(e) {
376
+ e.preventDefault();
377
+
378
+ if (woosw_vars.menu_action === 'open_popup') {
379
+ if ($('#woosw_wishlist').hasClass('woosw-loaded')) {
380
+ woosw_wishlist_show();
381
+ } else {
382
+ woosw_wishlist_load();
383
+ }
384
+ }
385
+ });
386
+
387
+ // copy link
388
+ $(document).
389
+ on('click touch', '#woosw_copy_url, #woosw_copy_btn', function(e) {
390
+ e.preventDefault();
391
+
392
+ woosw_copy_to_clipboard('#woosw_copy_url');
393
+ });
394
+
395
+ // add note
396
+ $(document).on('click touch', '.woosw-item--note', function() {
397
+ if ($(this).
398
+ closest('.woosw-item').
399
+ find('.woosw-item--note-add').length) {
400
+ $(this).
401
+ closest('.woosw-item').
402
+ find('.woosw-item--note-add').
403
+ show();
404
+ $(this).hide();
405
+ }
406
+ });
407
+
408
+ $(document).on('click touch', '.woosw_add_note', function(e) {
409
+ e.preventDefault();
410
+ woosw_popup_loading();
411
+
412
+ var $this = $(this);
413
+ var key = $this.closest('.woosw-popup-inner').data('key');
414
+ var product_id = $this.closest('.woosw-item').attr('data-id');
415
+ var note = $this.closest('.woosw-item').
416
+ find('input[type="text"]').
417
+ val();
418
+ var data = {
419
+ action: 'add_note',
420
+ woosw_key: key,
421
+ product_id: product_id,
422
+ note: woosw_html_entities(note),
423
+ };
424
+
425
+ $.post(woosw_vars.ajax_url, data, function(response) {
426
+ $this.closest('.woosw-item').
427
+ find('.woosw-item--note').
428
+ html(response).show();
429
+ $this.closest('.woosw-item').
430
+ find('.woosw-item--note-add').hide();
431
+ woosw_popup_loaded();
432
+ });
433
+ });
434
+
435
+ function woosw_wishlist_load() {
436
+ var data = {
437
+ action: 'wishlist_load',
438
+ };
439
+
440
+ $.post(woosw_vars.ajax_url, data, function(response) {
441
+ $('#woosw_wishlist').removeClass('woosw-message');
442
+ response = JSON.parse(response);
443
+
444
+ if (response['content'] != null) {
445
+ $('#woosw_wishlist').html(response['content']);
446
+ }
447
+
448
+ if (response['count'] != null) {
449
+ woosw_change_count(response['count']);
450
+ }
451
+
452
+ if (response['notice'] != null) {
453
+ woosw_notice(response['notice']);
454
+ }
455
+
456
+ $('#woosw_wishlist').addClass('woosw-loaded');
457
+
458
+ woosw_perfect_scrollbar();
459
+ woosw_wishlist_show();
460
+ });
461
+ }
462
+
463
+ function woosw_load_count() {
464
+ var data = {
465
+ action: 'wishlist_load_count',
466
+ };
467
+
468
+ $.post(woosw_vars.ajax_url, data, function(response) {
469
+ response = JSON.parse(response);
470
+
471
+ if (response['count'] != null) {
472
+ var count = response['count'];
473
+
474
+ woosw_change_count(count);
475
+ $(document.body).trigger('woosw_load_count', [count]);
476
+ }
477
+ });
478
+ }
479
+
480
+ function woosw_wishlist_show() {
481
+ $('#woosw_wishlist').addClass('woosw-show');
482
+
483
+ if ($('#woosw_wishlist').hasClass('woosw-message')) {
484
+ // timer
485
+ var woosw_counter = 6;
486
+ var woosw_interval = setInterval(function() {
487
+ woosw_counter--;
488
+ $('.woosw-popup-close').html('Close in ' + woosw_counter + 's');
489
+
490
+ if (woosw_counter === 0) {
491
+ woosw_wishlist_hide();
492
+ $('.woosw-popup-close').html('');
493
+ clearInterval(woosw_interval);
494
+ }
495
+ }, 1000);
496
+ }
497
+
498
+ $(document.body).trigger('woosw_wishlist_show');
499
+ }
500
+
501
+ function woosw_wishlist_hide() {
502
+ $('#woosw_wishlist').removeClass('woosw-show');
503
+ $(document.body).trigger('woosw_wishlist_hide');
504
+ }
505
+
506
+ function woosw_manage_show() {
507
+ $('#woosw_manage').addClass('woosw-show');
508
+ $(document.body).trigger('woosw_manage_show');
509
+ }
510
+
511
+ function woosw_manage_hide() {
512
+ $('#woosw_manage').removeClass('woosw-show');
513
+ $(document.body).trigger('woosw_manage_hide');
514
+ }
515
+
516
+ function woosw_popup_loading() {
517
+ $('.woosw-popup').addClass('woosw-loading');
518
+ }
519
+
520
+ function woosw_popup_loaded() {
521
+ $('.woosw-popup').removeClass('woosw-loading');
522
+ }
523
+
524
+ function woosw_change_count(count) {
525
+ $('#woosw_wishlist .woosw-count').html(count);
526
+
527
+ if (parseInt(count) > 0) {
528
+ $('.woosw-empty').show();
529
+ } else {
530
+ $('.woosw-empty').hide();
531
+ }
532
+
533
+ if ($('.woosw-menu-item .woosw-menu-item-inner').length) {
534
+ $('.woosw-menu-item .woosw-menu-item-inner').attr('data-count', count);
535
+ } else {
536
+ $('.woosw-menu-item a').
537
+ html('<span class="woosw-menu-item-inner" data-count="' + count +
538
+ '"><i class="woosw-icon"></i><span>' + woosw_vars.menu_text +
539
+ '</span></span>');
540
+ }
541
+
542
+ $(document.body).trigger('woosw_change_count', [count]);
543
+ }
544
+
545
+ function woosw_notice(notice) {
546
+ $('.woosw-notice').html(notice);
547
+ woosw_notice_show();
548
+ setTimeout(function() {
549
+ woosw_notice_hide();
550
+ }, 3000);
551
+ }
552
+
553
+ function woosw_notice_show() {
554
+ $('#woosw_wishlist .woosw-notice').addClass('woosw-notice-show');
555
+ }
556
+
557
+ function woosw_notice_hide() {
558
+ $('#woosw_wishlist .woosw-notice').removeClass('woosw-notice-show');
559
+ }
560
+
561
+ function woosw_perfect_scrollbar() {
562
+ if (woosw_vars.perfect_scrollbar === 'yes') {
563
+ jQuery('#woosw_wishlist .woosw-popup-content-mid').
564
+ perfectScrollbar({theme: 'wpc'});
565
+ }
566
+ }
567
+
568
+ function woosw_copy_url() {
569
+ var wooswURL = document.getElementById('woosw_copy_url');
570
+ wooswURL.select();
571
+ document.execCommand('copy');
572
+ alert(woosw_vars.copied_text + ' ' + wooswURL.value);
573
+ }
574
+
575
+ function woosw_copy_to_clipboard(el) {
576
+ // resolve the element
577
+ el = (typeof el === 'string') ? document.querySelector(el) : el;
578
+
579
+ // handle iOS as a special case
580
+ if (navigator.userAgent.match(/ipad|ipod|iphone/i)) {
581
+ // save current contentEditable/readOnly status
582
+ var editable = el.contentEditable;
583
+ var readOnly = el.readOnly;
584
+
585
+ // convert to editable with readonly to stop iOS keyboard opening
586
+ el.contentEditable = true;
587
+ el.readOnly = true;
588
+
589
+ // create a selectable range
590
+ var range = document.createRange();
591
+ range.selectNodeContents(el);
592
+
593
+ // select the range
594
+ var selection = window.getSelection();
595
+ selection.removeAllRanges();
596
+ selection.addRange(range);
597
+ el.setSelectionRange(0, 999999);
598
+
599
+ // restore contentEditable/readOnly to original state
600
+ el.contentEditable = editable;
601
+ el.readOnly = readOnly;
602
+ } else {
603
+ el.select();
604
+ }
605
+
606
+ // execute copy command
607
+ document.execCommand('copy');
608
+
609
+ // alert
610
+ alert(woosw_vars.copied_text + ' ' + el.value);
611
+ }
612
+
613
+ function woosw_html_entities(str) {
614
+ return String(str).
615
+ replace(/&/g, '&amp;').
616
+ replace(/</g, '&lt;').
617
+ replace(/>/g, '&gt;').
618
+ replace(/"/g, '&quot;');
619
+ }
620
+
621
+ function woosw_get_key() {
622
+ var result = [];
623
+ var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
624
+ var charactersLength = characters.length;
625
+
626
+ for (var i = 0; i < 6; i++) {
627
+ result.push(
628
+ characters.charAt(Math.floor(Math.random() * charactersLength)));
629
+ }
630
+
631
+ return result.join('');
632
+ }
633
+
634
+ function woosw_set_cookie(cname, cvalue, exdays) {
635
+ var d = new Date();
636
+
637
+ d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
638
+
639
+ var expires = 'expires=' + d.toUTCString();
640
+
641
+ document.cookie = cname + '=' + cvalue + '; ' + expires + '; path=/';
642
+ }
643
+
644
+ function woosw_get_cookie(cname) {
645
+ var name = cname + '=';
646
+ var ca = document.cookie.split(';');
647
+
648
+ for (var i = 0; i < ca.length; i++) {
649
+ var c = ca[i];
650
+
651
+ while (c.charAt(0) == ' ') {
652
+ c = c.substring(1);
653
+ }
654
+
655
+ if (c.indexOf(name) == 0) {
656
+ return decodeURIComponent(c.substring(name.length, c.length));
657
+ }
658
+ }
659
+
660
+ return '';
661
+ }
662
+ })(jQuery);
assets/kit/css/backend.css ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wpclever_settings_page .plugin-card-bottom.premium {
2
+ color: #999;
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: space-between;
6
+ }
7
+
8
+ .wpclever_settings_page .plugin-card-bottom.premium strong {
9
+ color: #b05d93;
10
+ }
11
+
12
+ .wpclever_settings_page .plugin-card-bottom.premium a.activate-now,
13
+ .wpclever_settings_page .plugin-card-bottom.premium a.deactivate-now {
14
+ border-color: #b05d93;
15
+ }
16
+
17
+ .wpclever_settings_page .plugin-card-bottom.premium a.deactivate-now {
18
+ background-color: #b05d93;
19
+ color: #b05d93;
20
+ }
21
+
22
+ .wpclever_settings_page a.activate-now,
23
+ .wpclever_settings_page a.deactivate-now {
24
+ position: relative;
25
+ display: inline-block;
26
+ border-radius: 12px;
27
+ box-sizing: border-box;
28
+ padding: 2px;
29
+ width: 40px;
30
+ height: 24px;
31
+ min-height: 24px;
32
+ background: #ddd;
33
+ vertical-align: middle;
34
+ outline: 0;
35
+ cursor: pointer;
36
+ transition: all .4s ease;
37
+ box-shadow: none;
38
+ color: #ddd;
39
+ font-size: 12px;
40
+ text-align: right;
41
+ margin-left: 5px;
42
+ text-indent: 100px;
43
+ overflow: hidden;
44
+ }
45
+
46
+ .wpclever_settings_page a.deactivate-now {
47
+ background-color: #0073aa;
48
+ color: #0073aa;
49
+ }
50
+
51
+ .wpclever_settings_page a.activate-now:before, .wpclever_settings_page a.activate-now:after,
52
+ .wpclever_settings_page a.deactivate-now:before, .wpclever_settings_page a.deactivate-now:after {
53
+ position: absolute;
54
+ display: block;
55
+ content: "";
56
+ width: 20px;
57
+ height: 20px;
58
+ top: 1px;
59
+ transition: all .4s ease;
60
+ }
61
+
62
+ .wpclever_settings_page a.deactivate-now:after {
63
+ right: 1px;
64
+ left: auto;
65
+ border-radius: 50%;
66
+ background: #fff;
67
+ transition: all .2s ease
68
+ }
69
+
70
+ .wpclever_settings_page a.activate-now:after {
71
+ left: 1px;
72
+ border-radius: 50%;
73
+ background: #fff;
74
+ transition: all .2s ease;
75
+ }
76
+
77
+ .wpckit-install-now.updating-message {
78
+ pointer-events: none;
79
+ }
assets/kit/images/woo-added-to-cart-notification.png ADDED
Binary file
assets/kit/images/woo-bought-together.png ADDED
Binary file
assets/kit/images/woo-fly-cart.png ADDED
Binary file
assets/kit/images/woo-product-bundle.png ADDED
Binary file
assets/kit/images/woo-product-timer.png ADDED
Binary file
assets/kit/images/woo-smart-compare.png ADDED
Binary file
assets/kit/images/woo-smart-quick-view.png ADDED
Binary file
assets/kit/images/woo-smart-wishlist.png ADDED
Binary file
assets/kit/images/wpc-ajax-add-to-cart.png ADDED
Binary file
assets/kit/images/wpc-composite-products.png ADDED
Binary file
assets/kit/images/wpc-countdown-timer.png ADDED
Binary file
assets/kit/images/wpc-force-sells.png ADDED
Binary file
assets/kit/images/wpc-grouped-product.png ADDED
Binary file
assets/kit/images/wpc-name-your-price.png ADDED
Binary file
assets/kit/images/wpc-product-quantity.png ADDED
Binary file
assets/kit/images/wpc-product-table.png ADDED
Binary file
assets/kit/images/wpc-product-tabs.png ADDED
Binary file
assets/kit/images/wpc-variations-radio-buttons.png ADDED
Binary file
assets/kit/js/backend.js ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ jQuery(document).ready(function($) {
4
+ $('body').on('click', '.wpckit-install-now', function(e) {
5
+ var _this = $(this);
6
+ var _href = _this.attr('href');
7
+
8
+ _this.addClass('updating-message').html('Installing...');
9
+
10
+ $.get(_href, function(data) {
11
+ location.reload();
12
+ });
13
+
14
+ e.preventDefault();
15
+ });
16
+ });
assets/libs/feather/feather.css ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ @font-face {
2
+ font-family: 'feather';
3
+ src: url('fonts/feather.eot');
4
+ src: url('fonts/feather.eot#iefix') format('embedded-opentype'),
5
+ url('fonts/feather.ttf') format('truetype'),
6
+ url('fonts/feather.woff') format('woff'),
7
+ url('fonts/feather.svg#feather') format('svg');
8
+ font-weight: normal;
9
+ font-style: normal;
10
+ }
assets/libs/feather/fonts/feather.eot ADDED
Binary file
assets/libs/feather/fonts/feather.svg ADDED
@@ -0,0 +1,250 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by IcoMoon</metadata>
5
+ <defs>
6
+ <font id="feather" horiz-adv-x="1024">
7
+ <font-face units-per-em="1024" ascent="960" descent="-64" />
8
+ <missing-glyph horiz-adv-x="1024" />
9
+ <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
+ <glyph unicode="&#xe900;" glyph-name="activity" d="M938.667 469.334h-170.667c-17.067 0-34.133-12.8-38.4-29.867l-89.6-260.267-217.6 644.267c-4.267 17.067-21.333 29.867-38.4 29.867s-34.133-12.8-38.4-29.867l-119.467-354.133h-140.8c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h170.667c17.067 0 34.133 12.8 38.4 29.867l89.6 260.267 217.6-648.533c4.267-17.067 21.333-29.867 38.4-29.867s34.133 12.8 38.4 29.867l119.467 354.133h140.8c25.6 0 42.667 17.067 42.667 42.667s-17.067 46.933-42.667 46.933z" />
11
+ <glyph unicode="&#xe901;" glyph-name="airplay" d="M853.333 853.334h-682.667c-72.533 0-128-55.467-128-128v-426.667c0-72.533 55.467-128 128-128h42.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-42.667c-25.6 0-42.667 17.067-42.667 42.667v426.667c0 25.6 17.067 42.667 42.667 42.667h682.667c25.6 0 42.667-17.067 42.667-42.667v-426.667c0-25.6-17.067-42.667-42.667-42.667h-42.667c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h42.667c72.533 0 128 55.467 128 128v426.667c0 72.533-55.467 128-128 128zM546.133 324.267c-17.067 21.333-51.2 21.333-64 0l-213.333-256c-8.533-12.8-12.8-29.867-4.267-46.933 4.267-12.8 17.067-21.333 34.133-21.333h426.667c17.067 0 29.867 8.533 38.4 25.6s4.267 34.133-4.267 46.933l-213.333 251.733zM388.267 85.334l123.733 145.067 123.733-145.067h-247.467z" />
12
+ <glyph unicode="&#xe902;" glyph-name="alert-circle" d="M512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM512 42.667c-213.333 0-384 170.667-384 384s170.667 384 384 384c213.333 0 384-170.667 384-384s-170.667-384-384-384zM512 640c-25.6 0-42.667-17.067-42.667-42.667v-170.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v170.667c0 25.6-17.067 42.667-42.667 42.667zM482.133 285.867c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 21.333 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0z" />
13
+ <glyph unicode="&#xe903;" glyph-name="alert-octagon" d="M968.533 631.467l-251.733 251.733c-4.267 8.533-17.067 12.8-29.867 12.8h-349.867c-12.8 0-25.6-4.267-29.867-12.8l-251.733-251.733c-8.533-4.267-12.8-17.067-12.8-29.867v-354.133c0-12.8 4.267-21.333 12.8-29.867l251.733-251.733c4.267-4.267 17.067-8.533 29.867-8.533h354.133c12.8 0 21.333 4.267 29.867 12.8l251.733 251.733c8.533 8.533 12.8 17.067 12.8 29.867v349.867c-4.267 12.8-8.533 25.6-17.067 29.867zM896 268.8l-226.133-226.133h-315.733l-226.133 226.133v315.733l226.133 226.133h320l221.867-226.133v-315.733zM512 640c-25.6 0-42.667-17.067-42.667-42.667v-170.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v170.667c0 25.6-17.067 42.667-42.667 42.667zM482.133 285.867c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 21.333 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0z" />
14
+ <glyph unicode="&#xe904;" glyph-name="alert-triangle" d="M981.333 192l-358.4 605.867c-17.067 29.867-46.933 51.2-81.067 59.733s-68.267 4.267-98.133-12.8c-17.067-8.533-34.133-25.6-42.667-42.667 0 0 0 0 0 0l-358.4-610.133c-34.133-59.733-12.8-140.8 46.933-174.933 17.067-12.8 38.4-17.067 59.733-17.067h725.333c34.133 0 68.267 12.8 89.6 38.4 25.6 25.6 38.4 55.467 38.4 89.6-4.267 21.333-8.533 46.933-21.333 64zM904.533 98.134c-8.533-8.533-21.333-12.8-29.867-12.8h-725.333c-8.533 0-12.8 0-21.333 4.267-21.333 12.8-25.6 38.4-17.067 59.733l362.667 601.6c4.267 4.267 8.533 12.8 12.8 12.8 21.333 12.8 46.933 4.267 59.733-12.8l362.667-601.6c4.267-4.267 4.267-12.8 4.267-21.333 4.267-12.8-4.267-21.333-8.533-29.867zM512 597.334c-25.6 0-42.667-17.067-42.667-42.667v-170.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v170.667c0 25.6-17.067 42.667-42.667 42.667zM482.133 243.2c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 21.333 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0z" />
15
+ <glyph unicode="&#xe905;" glyph-name="align-center" d="M256 554.667c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h512c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-512zM128 640h768c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667zM896 384h-768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h768c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM768 213.334h-512c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h512c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
16
+ <glyph unicode="&#xe906;" glyph-name="align-justify" d="M896 554.667h-768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h768c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM128 640h768c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667zM896 384h-768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h768c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM896 213.334h-768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h768c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
17
+ <glyph unicode="&#xe907;" glyph-name="align-left" d="M128 469.334h597.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-597.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667zM128 640h768c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667zM896 384h-768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h768c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM725.333 213.334h-597.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h597.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
18
+ <glyph unicode="&#xe908;" glyph-name="align-right" d="M896 554.667h-597.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h597.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM128 640h768c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667zM896 384h-768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h768c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM896 213.334h-597.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h597.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
19
+ <glyph unicode="&#xe909;" glyph-name="anchor" d="M938.667 469.334h-128c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h81.067c-21.333-179.2-162.133-320-337.067-337.067v512c72.533 17.067 128 85.333 128 166.4 0 93.867-76.8 170.667-170.667 170.667s-170.667-76.8-170.667-170.667c0-81.067 55.467-145.067 128-166.4v-516.267c-179.2 21.333-320 162.133-337.067 337.067h81.067c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-128c-25.6 0-42.667-17.067-42.667-42.667 0-260.267 209.067-469.333 469.333-469.333s469.333 209.067 469.333 469.333c0 29.867-17.067 46.933-42.667 46.933zM426.667 725.334c0 46.933 38.4 85.333 85.333 85.333s85.333-38.4 85.333-85.333-38.4-85.333-85.333-85.333c-46.933 0-85.333 38.4-85.333 85.333z" />
20
+ <glyph unicode="&#xe90a;" glyph-name="aperture" d="M891.733 153.6c55.467 76.8 89.6 170.667 89.6 273.067 0 64-12.8 128-38.4 183.467 0 0 0 4.267 0 4.267-64 149.333-204.8 256-375.467 277.333 0 0-4.267 0-4.267 0-17.067 4.267-34.133 4.267-51.2 4.267-153.6 0-290.133-72.533-375.467-187.733 0-4.267-4.267-4.267-4.267-8.533-55.467-76.8-89.6-170.667-89.6-273.067 0-64 12.8-128 38.4-187.733 0 0 0-4.267 0-4.267 64-145.067 204.8-256 371.2-277.333 0 0 4.267 0 4.267 0 17.067 0 34.133-4.267 51.2-4.267 153.6 0 290.133 72.533 375.467 187.733 4.267 4.267 8.533 8.533 8.533 12.8zM584.533 298.667h-149.333l-72.533 128 72.533 128h149.333l72.533-128-72.533-128zM128 426.667c0 59.733 12.8 119.467 38.4 170.667l170.667-298.667h-187.733c-12.8 38.4-21.333 81.067-21.333 128zM682.667 554.667h187.733c12.8-38.4 21.333-81.067 21.333-128 0-59.733-12.8-119.467-38.4-170.667l-170.667 298.667zM832 640h-345.6l93.867 162.133c106.667-17.067 196.267-76.8 251.733-162.133zM486.4 810.667l-170.667-298.667-93.867 162.133c64 76.8 157.867 128 264.533 136.533zM192 213.334h345.6l-93.867-162.133c-106.667 17.067-196.267 76.8-251.733 162.133zM537.6 42.667l170.667 298.667 93.867-162.133c-64-76.8-157.867-128-264.533-136.533z" />
21
+ <glyph unicode="&#xe90b;" glyph-name="arrow-down" d="M797.867 371.2c-17.067 17.067-42.667 17.067-59.733 0l-183.467-183.467v580.267c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-580.267l-183.467 183.467c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l256-256c4.267-4.267 8.533-8.533 12.8-8.533 4.267-4.267 12.8-4.267 17.067-4.267s12.8 0 17.067 4.267c4.267 4.267 8.533 4.267 12.8 8.533l256 256c17.067 17.067 17.067 42.667 0 59.733z" />
22
+ <glyph unicode="&#xe90c;" glyph-name="arrow-down-left" d="M797.867 712.534c-17.067 17.067-42.667 17.067-59.733 0l-439.467-439.467v281.6c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-384c0-4.267 0-12.8 4.267-17.067 4.267-8.533 12.8-17.067 21.333-21.333 4.267-4.267 12.8-4.267 17.067-4.267h384c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-281.6l439.467 439.467c17.067 17.067 17.067 42.667 0 59.733z" />
23
+ <glyph unicode="&#xe90d;" glyph-name="arrow-down-right" d="M810.667 554.667c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-281.6l-439.467 439.467c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l439.467-439.467h-281.6c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h384c4.267 0 12.8 0 17.067 4.267 8.533 4.267 17.067 12.8 21.333 21.333 4.267 4.267 4.267 12.8 4.267 17.067v384z" />
24
+ <glyph unicode="&#xe90e;" glyph-name="arrow-left" d="M853.333 469.334h-580.267l183.467 183.467c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-256-256c-4.267-4.267-8.533-8.533-8.533-12.8-4.267-8.533-4.267-21.333 0-34.133 4.267-4.267 4.267-8.533 8.533-12.8l256-256c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-183.467 183.467h580.267c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
25
+ <glyph unicode="&#xe90f;" glyph-name="arrow-right" d="M891.733 409.6c4.267 8.533 4.267 21.333 0 34.133-4.267 4.267-4.267 8.533-8.533 12.8l-256 256c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l183.467-183.467h-580.267c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h580.267l-183.467-183.467c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l256 256c4.267 4.267 8.533 8.533 8.533 12.8z" />
26
+ <glyph unicode="&#xe910;" glyph-name="arrow-up" d="M797.867 541.867l-256 256c-4.267 4.267-8.533 8.533-12.8 8.533-8.533 4.267-21.333 4.267-34.133 0-4.267-4.267-8.533-4.267-12.8-8.533l-256-256c-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0l183.467 183.467v-580.267c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v580.267l183.467-183.467c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733z" />
27
+ <glyph unicode="&#xe911;" glyph-name="arrow-up-left" d="M797.867 200.534l-439.467 439.467h281.6c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-384c-4.267 0-12.8 0-17.067-4.267-8.533-4.267-17.067-12.8-21.333-21.333-4.267-4.267-4.267-12.8-4.267-17.067v-384c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v281.6l439.467-439.467c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733z" />
28
+ <glyph unicode="&#xe912;" glyph-name="arrow-up-right" d="M806.4 699.734c-4.267 8.533-12.8 17.067-21.333 21.333-4.267 4.267-12.8 4.267-17.067 4.267h-384c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h281.6l-439.467-439.467c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l439.467 439.467v-281.6c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v384c0 4.267 0 12.8-4.267 17.067z" />
29
+ <glyph unicode="&#xe913;" glyph-name="at-sign" d="M512 896c-123.733 0-243.2-46.933-332.8-136.533s-136.533-209.067-136.533-332.8c0-260.267 209.067-469.333 469.333-469.333 102.4 0 204.8 34.133 285.867 98.133 17.067 12.8 21.333 42.667 8.533 59.733s-42.667 21.333-59.733 8.533c-68.267-51.2-149.333-81.067-234.667-81.067-213.333 0-384 170.667-384 384 0 102.4 38.4 200.533 110.933 273.067s170.667 110.933 273.067 110.933c213.333 0 384-170.667 384-384v-42.667c0-46.933-38.4-85.333-85.333-85.333s-85.333 38.4-85.333 85.333v42.667c0 119.467-93.867 213.333-213.333 213.333s-213.333-93.867-213.333-213.333 93.867-213.333 213.333-213.333c64 0 119.467 29.867 157.867 72.533 29.867-42.667 81.067-72.533 140.8-72.533 93.867 0 170.667 76.8 170.667 170.667v42.667c0 260.267-209.067 469.333-469.333 469.333zM512 298.667c-72.533 0-128 55.467-128 128s55.467 128 128 128 128-55.467 128-128-55.467-128-128-128z" />
30
+ <glyph unicode="&#xe914;" glyph-name="award" d="M853.333 597.334c0 187.733-153.6 341.333-341.333 341.333s-341.333-153.6-341.333-341.333c0-110.933 51.2-209.067 132.267-268.8l-46.933-366.933c-4.267-17.067 4.267-34.133 17.067-42.667s29.867-8.533 46.933 0l192 115.2 192-115.2c4.267-4.267 12.8-4.267 21.333-4.267s17.067 4.267 21.333 8.533 21.333 25.6 17.067 42.667l-46.933 362.667c85.333 59.733 136.533 157.867 136.533 268.8zM256 597.334c0 140.8 115.2 256 256 256s256-115.2 256-256-115.2-256-256-256-256 115.2-256 256zM669.867 38.4l-136.533 81.067c-12.8 8.533-29.867 8.533-42.667 0l-136.533-81.067 29.867 243.2c38.4-17.067 81.067-25.6 128-25.6s89.6 8.533 128 25.6l29.867-243.2z" />
31
+ <glyph unicode="&#xe915;" glyph-name="bar-chart" d="M938.667 853.334h-170.667c-25.6 0-42.667-17.067-42.667-42.667v-768c0-25.6 17.067-42.667 42.667-42.667h170.667c25.6 0 42.667 17.067 42.667 42.667v768c0 25.6-17.067 42.667-42.667 42.667zM896 85.334h-85.333v682.667h85.333v-682.667zM597.333 640h-170.667c-25.6 0-42.667-17.067-42.667-42.667v-554.667c0-25.6 17.067-42.667 42.667-42.667h170.667c25.6 0 42.667 17.067 42.667 42.667v554.667c0 25.6-17.067 42.667-42.667 42.667zM554.667 85.334h-85.333v469.333h85.333v-469.333zM256 426.667h-170.667c-25.6 0-42.667-17.067-42.667-42.667v-341.333c0-25.6 17.067-42.667 42.667-42.667h170.667c25.6 0 42.667 17.067 42.667 42.667v341.333c0 25.6-17.067 42.667-42.667 42.667zM213.333 85.334h-85.333v256h85.333v-256z" />
32
+ <glyph unicode="&#xe916;" glyph-name="bar-chart-2" d="M597.333 853.334h-170.667c-25.6 0-42.667-17.067-42.667-42.667v-768c0-25.6 17.067-42.667 42.667-42.667h170.667c25.6 0 42.667 17.067 42.667 42.667v768c0 25.6-17.067 42.667-42.667 42.667zM554.667 85.334h-85.333v682.667h85.333v-682.667zM938.667 640h-170.667c-25.6 0-42.667-17.067-42.667-42.667v-554.667c0-25.6 17.067-42.667 42.667-42.667h170.667c25.6 0 42.667 17.067 42.667 42.667v554.667c0 25.6-17.067 42.667-42.667 42.667zM896 85.334h-85.333v469.333h85.333v-469.333zM256 426.667h-170.667c-25.6 0-42.667-17.067-42.667-42.667v-341.333c0-25.6 17.067-42.667 42.667-42.667h170.667c25.6 0 42.667 17.067 42.667 42.667v341.333c0 25.6-17.067 42.667-42.667 42.667zM213.333 85.334h-85.333v256h85.333v-256z" />
33
+ <glyph unicode="&#xe917;" glyph-name="battery" d="M725.333 725.334h-597.333c-72.533 0-128-55.467-128-128v-341.333c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v341.333c0 72.533-55.467 128-128 128zM768 256c0-25.6-17.067-42.667-42.667-42.667h-597.333c-25.6 0-42.667 17.067-42.667 42.667v341.333c0 25.6 17.067 42.667 42.667 42.667h597.333c25.6 0 42.667-17.067 42.667-42.667v-341.333zM981.333 512c-25.6 0-42.667-17.067-42.667-42.667v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 25.6-17.067 42.667-42.667 42.667z" />
34
+ <glyph unicode="&#xe918;" glyph-name="battery-charging" d="M725.333 725.334h-85.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h85.333c25.6 0 42.667-17.067 42.667-42.667v-341.333c0-25.6-17.067-42.667-42.667-42.667h-136.533c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h136.533c72.533 0 128 55.467 128 128v341.333c0 72.533-55.467 128-128 128zM213.333 213.334h-85.333c-25.6 0-42.667 17.067-42.667 42.667v341.333c0 25.6 17.067 42.667 42.667 42.667h136.533c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-136.533c-72.533 0-128-55.467-128-128v-341.333c0-72.533 55.467-128 128-128h85.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM981.333 512c-25.6 0-42.667-17.067-42.667-42.667v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 25.6-17.067 42.667-42.667 42.667zM593.067 448c-8.533 12.8-21.333 21.333-38.4 21.333h-174.933l128 187.733c12.8 21.333 8.533 46.933-12.8 59.733s-46.933 8.533-59.733-12.8l-170.667-256c-8.533-12.8-8.533-29.867 0-42.667 4.267-12.8 17.067-21.333 34.133-21.333h174.933l-128-187.733c-12.8-21.333-8.533-46.933 12.8-59.733 8.533-4.267 17.067-8.533 25.6-8.533 12.8 0 25.6 8.533 34.133 17.067l170.667 256c8.533 17.067 12.8 29.867 4.267 46.933z" />
35
+ <glyph unicode="&#xe919;" glyph-name="bell" d="M938.667 256c-46.933 0-85.333 38.4-85.333 85.333v213.333c0 187.733-153.6 341.333-341.333 341.333s-341.333-153.6-341.333-341.333v-213.333c0-46.933-38.4-85.333-85.333-85.333-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h853.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM234.667 256c12.8 25.6 21.333 55.467 21.333 85.333v213.333c0 140.8 115.2 256 256 256s256-115.2 256-256v-213.333c0-29.867 8.533-59.733 21.333-85.333h-554.667zM605.867 81.067c-21.333 12.8-46.933 4.267-59.733-17.067s-38.4-25.6-59.733-17.067c-8.533 4.267-12.8 8.533-17.067 17.067-12.8 21.333-38.4 25.6-59.733 17.067-21.333-12.8-25.6-38.4-17.067-59.733 12.8-21.333 25.6-34.133 46.933-46.933s42.667-17.067 64-17.067c42.667 0 85.333 21.333 110.933 64 21.333 21.333 12.8 46.933-8.533 59.733z" />
36
+ <glyph unicode="&#xe91a;" glyph-name="bell-off" d="M605.867 81.067c-21.333 12.8-46.933 4.267-59.733-17.067s-38.4-25.6-59.733-17.067c-8.533 4.267-12.8 8.533-17.067 17.067-12.8 21.333-38.4 25.6-59.733 17.067-21.333-12.8-25.6-38.4-17.067-59.733 12.8-21.333 25.6-34.133 46.933-46.933s42.667-17.067 64-17.067c42.667 0 85.333 21.333 110.933 64 21.333 21.333 12.8 46.933-8.533 59.733zM388.267 776.534c123.733 68.267 277.333 25.6 349.867-98.133 17.067-34.133 29.867-81.067 29.867-123.733v-170.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v170.667c0 59.733-17.067 115.2-42.667 166.4-93.867 162.133-302.933 221.867-465.067 128-21.333-8.533-29.867-34.133-17.067-55.467s38.4-25.6 59.733-17.067zM1011.2-12.8l-256 256c0 0 0 0 0 0l-682.667 682.667c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l183.467-183.467c-17.067-42.667-25.6-85.333-25.6-128v-213.333c0-46.933-38.4-85.333-85.333-85.333-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h622.933l243.2-243.2c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733zM234.667 256c12.8 25.6 21.333 55.467 21.333 85.333v213.333c0 21.333 4.267 42.667 8.533 59.733l358.4-358.4h-388.267z" />
37
+ <glyph unicode="&#xe91b;" glyph-name="bluetooth" d="M571.733 426.667l204.8 204.8c17.067 17.067 17.067 42.667 0 59.733l-234.667 234.667c-12.8 12.8-29.867 17.067-46.933 8.533-17.067-4.267-25.6-21.333-25.6-38.4v-366.933l-162.133 162.133c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l204.8-204.8-204.8-204.8c-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0l162.133 162.133v-366.933c0-17.067 8.533-34.133 25.6-38.4 4.267-4.267 12.8-4.267 17.067-4.267 12.8 0 21.333 4.267 29.867 12.8l234.667 234.667c17.067 17.067 17.067 42.667 0 59.733l-204.8 204.8zM554.667 793.6l132.267-132.267-132.267-132.267v264.533zM554.667 59.734v264.533l132.267-132.267-132.267-132.267z" />
38
+ <glyph unicode="&#xe91c;" glyph-name="bold" d="M742.4 443.734c42.667 38.4 68.267 93.867 68.267 153.6 0 119.467-93.867 213.333-213.333 213.333h-341.333c-25.6 0-42.667-17.067-42.667-42.667v-682.667c0-25.6 17.067-42.667 42.667-42.667h384c119.467 0 213.333 93.867 213.333 213.333 0 81.067-46.933 149.333-110.933 187.733zM298.667 725.334h298.667c72.533 0 128-55.467 128-128s-55.467-128-128-128h-298.667v256zM640 128h-341.333v256h341.333c72.533 0 128-55.467 128-128s-55.467-128-128-128z" />
39
+ <glyph unicode="&#xe91d;" glyph-name="book" d="M853.333 896h-576c-81.067 0-149.333-68.267-149.333-149.333v-640c0-81.067 68.267-149.333 149.333-149.333h576c25.6 0 42.667 17.067 42.667 42.667v853.333c0 25.6-17.067 42.667-42.667 42.667zM277.333 810.667h533.333v-554.667h-533.333c-21.333 0-42.667-4.267-64-17.067v507.733c0 34.133 29.867 64 64 64zM277.333 42.667c-34.133 0-64 29.867-64 64s29.867 64 64 64h533.333v-128h-533.333z" />
40
+ <glyph unicode="&#xe91e;" glyph-name="bookmark" d="M725.333 853.334h-426.667c-72.533 0-128-55.467-128-128v-682.667c0-17.067 8.533-29.867 21.333-38.4s29.867-4.267 42.667 4.267l273.067 196.267 273.067-196.267c8.533-4.267 17.067-8.533 25.6-8.533s12.8 0 21.333 4.267c12.8 8.533 21.333 21.333 21.333 38.4v682.667c4.267 72.533-51.2 128-123.733 128zM768 123.734l-230.4 166.4c-8.533 4.267-17.067 8.533-25.6 8.533s-17.067-4.267-25.6-8.533l-230.4-166.4v601.6c0 25.6 17.067 42.667 42.667 42.667h426.667c25.6 0 42.667-17.067 42.667-42.667v-601.6z" />
41
+ <glyph unicode="&#xe91f;" glyph-name="box" d="M908.8 742.4l-341.333 170.667c0 0 0 0 0 0-34.133 17.067-76.8 17.067-115.2 0l-341.333-170.667c-42.667-21.333-68.267-64-68.267-110.933v-405.333c0-46.933 25.6-93.867 72.533-115.2l341.333-170.667c17.067-8.533 38.4-12.8 55.467-12.8 21.333 0 38.4 4.267 55.467 12.8l341.333 170.667c42.667 21.333 72.533 64 72.533 115.2v405.333c0 46.933-25.6 89.6-72.533 110.933zM494.933 840.534c4.267 4.267 12.8 4.267 17.067 4.267 8.533 0 12.8 0 17.067-4.267l315.733-157.867-332.8-166.4-332.8 166.4 315.733 157.867zM149.333 183.467c-12.8 8.533-21.333 25.6-21.333 38.4v392.533l341.333-170.667v-418.133l-320 157.867zM870.4 183.467l-315.733-157.867v418.133l341.333 170.667v-392.533c0-17.067-8.533-29.867-25.6-38.4z" />
42
+ <glyph unicode="&#xe920;" glyph-name="briefcase" d="M853.333 682.667h-128v42.667c0 72.533-55.467 128-128 128h-170.667c-72.533 0-128-55.467-128-128v-42.667h-128c-72.533 0-128-55.467-128-128v-426.667c0-72.533 55.467-128 128-128h682.667c72.533 0 128 55.467 128 128v426.667c0 72.533-55.467 128-128 128zM384 725.334c0 25.6 17.067 42.667 42.667 42.667h170.667c25.6 0 42.667-17.067 42.667-42.667v-42.667h-256v42.667zM640 597.334v-512h-256v512h256zM128 128v426.667c0 25.6 17.067 42.667 42.667 42.667h128v-512h-128c-25.6 0-42.667 17.067-42.667 42.667zM896 128c0-25.6-17.067-42.667-42.667-42.667h-128v512h128c25.6 0 42.667-17.067 42.667-42.667v-426.667z" />
43
+ <glyph unicode="&#xe921;" glyph-name="calendar" d="M810.667 810.667h-85.333v42.667c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-42.667h-256v42.667c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-42.667h-85.333c-72.533 0-128-55.467-128-128v-597.333c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v597.333c0 72.533-55.467 128-128 128zM213.333 725.334h85.333v-42.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v42.667h256v-42.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v42.667h85.333c25.6 0 42.667-17.067 42.667-42.667v-128h-682.667v128c0 25.6 17.067 42.667 42.667 42.667zM810.667 42.667h-597.333c-25.6 0-42.667 17.067-42.667 42.667v384h682.667v-384c0-25.6-17.067-42.667-42.667-42.667z" />
44
+ <glyph unicode="&#xe922;" glyph-name="camera" d="M896 725.334h-149.333l-72.533 110.933c-8.533 8.533-21.333 17.067-34.133 17.067h-256c-12.8 0-25.6-8.533-34.133-17.067l-72.533-110.933h-149.333c-72.533 0-128-55.467-128-128v-469.333c0-72.533 55.467-128 128-128h768c72.533 0 128 55.467 128 128v469.333c0 72.533-55.467 128-128 128zM938.667 128c0-25.6-17.067-42.667-42.667-42.667h-768c-25.6 0-42.667 17.067-42.667 42.667v469.333c0 25.6 17.067 42.667 42.667 42.667h170.667c12.8 0 25.6 8.533 34.133 17.067l72.533 110.933h209.067l72.533-110.933c12.8-8.533 25.6-17.067 38.4-17.067h170.667c25.6 0 42.667-17.067 42.667-42.667v-469.333zM512 597.334c-119.467 0-213.333-93.867-213.333-213.333s93.867-213.333 213.333-213.333 213.333 93.867 213.333 213.333-93.867 213.333-213.333 213.333zM512 256c-72.533 0-128 55.467-128 128s55.467 128 128 128 128-55.467 128-128-55.467-128-128-128z" />
45
+ <glyph unicode="&#xe923;" glyph-name="camera-off" d="M925.867 72.534c0 0 0 0 0 0l-640 640c0 0 0 0 0 0l-213.333 213.333c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l140.8-140.8h-25.6c-72.533 0-128-55.467-128-128v-469.333c0-72.533 55.467-128 128-128h750.933l72.533-72.533c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-85.333 85.333zM405.333 456.534c4.267 4.267 4.267 4.267 8.533 8.533l179.2-179.2c-17.067-12.8-38.4-25.6-59.733-29.867-34.133-4.267-68.267 0-93.867 21.333-29.867 21.333-46.933 46.933-55.467 81.067-4.267 34.133 4.267 68.267 21.333 98.133zM128 85.334c-25.6 0-42.667 17.067-42.667 42.667v469.333c0 25.6 17.067 42.667 42.667 42.667h110.933l115.2-115.2c-8.533-8.533-12.8-12.8-17.067-21.333-34.133-46.933-42.667-102.4-34.133-157.867s42.667-106.667 89.6-136.533c34.133-25.6 76.8-38.4 119.467-38.4 12.8 0 25.6 0 38.4 4.267 38.4 8.533 72.533 25.6 102.4 51.2l140.8-140.8h-665.6zM896 725.334h-149.333l-72.533 110.933c-8.533 8.533-21.333 17.067-34.133 17.067h-256c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h234.667l72.533-110.933c8.533-8.533 21.333-17.067 34.133-17.067h170.667c25.6 0 42.667-17.067 42.667-42.667v-396.8c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v396.8c0 72.533-55.467 128-128 128z" />
46
+ <glyph unicode="&#xe924;" glyph-name="cast" d="M89.6 465.067c-21.333 4.267-42.667-12.8-46.933-38.4-4.267-21.333 12.8-42.667 38.4-46.933 157.867-17.067 281.6-140.8 302.933-302.933 0-17.067 17.067-34.133 38.4-34.133 0 0 4.267 0 4.267 0 21.333 4.267 38.4 25.6 38.4 46.933-21.333 200.533-174.933 354.133-375.467 375.467zM93.867 294.4c-21.333 4.267-46.933-12.8-51.2-34.133s8.533-46.933 34.133-51.2c68.267-12.8 119.467-64 132.267-132.267 4.267-21.333 21.333-34.133 42.667-34.133 4.267 0 4.267 0 8.533 0 21.333 4.267 38.4 25.6 34.133 51.2-21.333 102.4-98.133 179.2-200.533 200.533zM853.333 810.667h-682.667c-72.533 0-128-55.467-128-128v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 25.6 17.067 42.667 42.667 42.667h682.667c25.6 0 42.667-17.067 42.667-42.667v-512c0-25.6-17.067-42.667-42.667-42.667h-256c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h256c72.533 0 128 55.467 128 128v512c0 72.533-55.467 128-128 128zM55.467 115.2c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 17.067 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0z" />
47
+ <glyph unicode="&#xe925;" glyph-name="check" d="M883.2 712.534c-17.067 17.067-42.667 17.067-59.733 0l-439.467-439.467-183.467 183.467c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l213.333-213.333c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l469.333 469.333c17.067 17.067 17.067 42.667 0 59.733z" />
48
+ <glyph unicode="&#xe926;" glyph-name="check-circle" d="M938.667 507.734c-25.6 0-42.667-17.067-42.667-42.667v-38.4c0-213.333-170.667-384-384-384 0 0 0 0 0 0-213.333 0-384 170.667-384 384s170.667 384 384 384c0 0 0 0 0 0 55.467 0 106.667-12.8 157.867-34.133 21.333-8.533 46.933 0 55.467 21.333s0 46.933-21.333 55.467c-59.733 25.6-123.733 42.667-192 42.667 0 0 0 0 0 0-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333c0 0 0 0 0 0 260.267 0 469.333 209.067 469.333 469.333v38.4c0 25.6-17.067 42.667-42.667 42.667zM1011.2 840.534c-17.067 17.067-42.667 17.067-59.733 0l-439.467-439.467-98.133 98.133c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l128-128c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l469.333 469.333c17.067 17.067 17.067 42.667 0 59.733z" />
49
+ <glyph unicode="&#xe927;" glyph-name="check-square" d="M1011.2 840.534c-17.067 17.067-42.667 17.067-59.733 0l-439.467-439.467-98.133 98.133c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l128-128c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l469.333 469.333c17.067 17.067 17.067 42.667 0 59.733zM896 469.334c-25.6 0-42.667-17.067-42.667-42.667v-298.667c0-25.6-17.067-42.667-42.667-42.667h-597.333c-25.6 0-42.667 17.067-42.667 42.667v597.333c0 25.6 17.067 42.667 42.667 42.667h469.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-469.333c-72.533 0-128-55.467-128-128v-597.333c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v298.667c0 25.6-17.067 42.667-42.667 42.667z" />
50
+ <glyph unicode="&#xe928;" glyph-name="chevron-down" d="M797.867 584.534c-17.067 17.067-42.667 17.067-59.733 0l-226.133-226.133-226.133 226.133c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l256-256c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l256 256c17.067 17.067 17.067 42.667 0 59.733z" />
51
+ <glyph unicode="&#xe929;" glyph-name="chevron-left" d="M443.733 426.667l226.133 226.133c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-256-256c-17.067-17.067-17.067-42.667 0-59.733l256-256c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-226.133 226.133z" />
52
+ <glyph unicode="&#xe92a;" glyph-name="chevron-right" d="M669.867 456.534l-256 256c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l226.133-226.133-226.133-226.133c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l256 256c17.067 17.067 17.067 42.667 0 59.733z" />
53
+ <glyph unicode="&#xe92b;" glyph-name="chevron-up" d="M797.867 328.534l-256 256c-17.067 17.067-42.667 17.067-59.733 0l-256-256c-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0l226.133 226.133 226.133-226.133c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733z" />
54
+ <glyph unicode="&#xe92c;" glyph-name="chevrons-down" d="M695.467 413.867l-183.467-183.467-183.467 183.467c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l213.333-213.333c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l213.333 213.333c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0zM482.133 439.467c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l213.333 213.333c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-183.467-183.467-183.467 183.467c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l213.333-213.333z" />
55
+ <glyph unicode="&#xe92d;" glyph-name="chevrons-left" d="M315.733 426.667l183.467 183.467c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-213.333-213.333c-17.067-17.067-17.067-42.667 0-59.733l213.333-213.333c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-183.467 183.467zM614.4 426.667l183.467 183.467c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-213.333-213.333c-17.067-17.067-17.067-42.667 0-59.733l213.333-213.333c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-183.467 183.467z" />
56
+ <glyph unicode="&#xe92e;" glyph-name="chevrons-right" d="M797.867 456.534l-213.333 213.333c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l183.467-183.467-183.467-183.467c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l213.333 213.333c17.067 17.067 17.067 42.667 0 59.733zM499.2 456.534l-213.333 213.333c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l183.467-183.467-183.467-183.467c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l213.333 213.333c17.067 17.067 17.067 42.667 0 59.733z" />
57
+ <glyph unicode="&#xe92f;" glyph-name="chevrons-up" d="M328.533 439.467l183.467 183.467 183.467-183.467c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-213.333 213.333c-17.067 17.067-42.667 17.067-59.733 0l-213.333-213.333c-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0zM541.867 413.867c-17.067 17.067-42.667 17.067-59.733 0l-213.333-213.333c-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0l183.467 183.467 183.467-183.467c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-213.333 213.333z" />
58
+ <glyph unicode="&#xe930;" glyph-name="chrome" d="M942.933 610.134c0 4.267 0 4.267 0 0-76.8 170.667-238.933 285.867-430.933 285.867-153.6 0-290.133-72.533-375.467-187.733 0-4.267-4.267-4.267-4.267-8.533-55.467-76.8-89.6-170.667-89.6-273.067 0-238.933 179.2-435.2 409.6-465.067 0 0 4.267 0 4.267 0 17.067 0 34.133-4.267 51.2-4.267 260.267 0 469.333 209.067 469.333 469.333 4.267 64-8.533 128-34.133 183.467zM512 810.667c132.267 0 251.733-68.267 320-170.667h-320c-89.6 0-162.133-55.467-196.267-128l-93.867 162.133c68.267 85.333 174.933 136.533 290.133 136.533zM640 426.667c0-72.533-55.467-128-128-128s-128 55.467-128 128 55.467 128 128 128 128-55.467 128-128zM128 426.667c0 59.733 12.8 119.467 38.4 170.667l157.867-277.333c0 0 0-4.267 4.267-4.267 38.4-59.733 106.667-102.4 183.467-102.4 8.533 0 17.067 0 25.6 4.267l-98.133-166.4c-174.933 29.867-311.467 187.733-311.467 375.467zM537.6 42.667l157.867 277.333c0 0 0 4.267 0 4.267 17.067 29.867 25.6 64 25.6 102.4 0 46.933-17.067 93.867-42.667 128h192c12.8-38.4 21.333-81.067 21.333-128 4.267-204.8-153.6-371.2-354.133-384z" />
59
+ <glyph unicode="&#xe931;" glyph-name="circle" d="M512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM512 42.667c-213.333 0-384 170.667-384 384s170.667 384 384 384c213.333 0 384-170.667 384-384s-170.667-384-384-384z" />
60
+ <glyph unicode="&#xe932;" glyph-name="clipboard" d="M768 810.667h-42.667c0 46.933-38.4 85.333-85.333 85.333h-256c-46.933 0-85.333-38.4-85.333-85.333h-42.667c-72.533 0-128-55.467-128-128v-597.333c0-72.533 55.467-128 128-128h512c72.533 0 128 55.467 128 128v597.333c0 72.533-55.467 128-128 128zM384 810.667h256v-85.333h-256v42.667c0 0 0 0 0 0s0 0 0 0v42.667zM810.667 85.334c0-25.6-17.067-42.667-42.667-42.667h-512c-25.6 0-42.667 17.067-42.667 42.667v597.333c0 25.6 17.067 42.667 42.667 42.667h42.667c0-46.933 38.4-85.333 85.333-85.333h256c46.933 0 85.333 38.4 85.333 85.333h42.667c25.6 0 42.667-17.067 42.667-42.667v-597.333z" />
61
+ <glyph unicode="&#xe933;" glyph-name="clock" d="M512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM512 42.667c-213.333 0-384 170.667-384 384s170.667 384 384 384c213.333 0 384-170.667 384-384s-170.667-384-384-384zM554.667 443.734v238.933c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-256c0-12.8 4.267-21.333 12.8-29.867l128-128c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-115.2 115.2z" />
62
+ <glyph unicode="&#xe934;" glyph-name="cloud" d="M768 554.667h-21.333c-29.867 85.333-89.6 157.867-166.4 204.8-89.6 51.2-192 68.267-290.133 42.667-102.4-29.867-183.467-93.867-238.933-179.2-51.2-89.6-68.267-192-42.667-290.133 42.667-170.667 196.267-290.133 371.2-290.133 0 0 0 0 0 0h384c140.8 0 256 115.2 256 256s-110.933 256-251.733 256zM768 128h-384c0 0 0 0 0 0-136.533 0-256 93.867-290.133 221.867-21.333 81.067-8.533 157.867 34.133 230.4s106.667 119.467 183.467 136.533c21.333 4.267 46.933 8.533 72.533 8.533 132.267 0 256-89.6 290.133-226.133 4.267-17.067 21.333-34.133 42.667-34.133h51.2c93.867 0 170.667-76.8 170.667-170.667 0-89.6-76.8-166.4-170.667-166.4z" />
63
+ <glyph unicode="&#xe935;" glyph-name="cloud-drizzle" d="M341.333 170.667c-25.6 0-42.667-17.067-42.667-42.667v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 25.6-17.067 42.667-42.667 42.667zM341.333 426.667c-25.6 0-42.667-17.067-42.667-42.667v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 25.6-17.067 42.667-42.667 42.667zM682.667 170.667c-25.6 0-42.667-17.067-42.667-42.667v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 25.6-17.067 42.667-42.667 42.667zM682.667 426.667c-25.6 0-42.667-17.067-42.667-42.667v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 25.6-17.067 42.667-42.667 42.667zM512 85.334c-25.6 0-42.667-17.067-42.667-42.667v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 25.6-17.067 42.667-42.667 42.667zM512 341.334c-25.6 0-42.667-17.067-42.667-42.667v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 25.6-17.067 42.667-42.667 42.667zM1002.667 529.067c-42.667 93.867-132.267 153.6-234.667 153.6h-21.333c-64 187.733-264.533 294.4-456.533 243.2-209.067-51.2-332.8-260.267-277.333-469.333 21.333-81.067 68.267-153.6 132.267-204.8 17.067-12.8 46.933-12.8 59.733 8.533 12.8 17.067 12.8 46.933-8.533 59.733-51.2 38.4-85.333 98.133-102.4 157.867-42.667 157.867 55.467 324.267 213.333 362.667 157.867 42.667 324.267-55.467 362.667-213.333 4.267-17.067 21.333-34.133 42.667-34.133h55.467c68.267 0 128-38.4 157.867-102.4 17.067-42.667 21.333-89.6 4.267-132.267s-46.933-76.8-89.6-93.867c-21.333-8.533-29.867-34.133-21.333-55.467 8.533-17.067 21.333-25.6 38.4-25.6 4.267 0 12.8 0 17.067 4.267 64 25.6 110.933 76.8 136.533 140.8 21.333 68.267 17.067 136.533-8.533 200.533z" />
64
+ <glyph unicode="&#xe936;" glyph-name="cloud-lightning" d="M1019.733 477.867c-25.6 119.467-132.267 204.8-251.733 204.8 0 0 0 0 0 0h-21.333c-64 187.733-264.533 294.4-456.533 243.2-102.4-25.6-183.467-89.6-238.933-174.933-51.2-89.6-68.267-192-42.667-290.133 25.6-102.4 93.867-187.733 187.733-238.933 21.333-12.8 46.933-8.533 59.733 12.8s4.267 46.933-17.067 59.733c-72.533 38.4-123.733 106.667-145.067 187.733-21.333 76.8-8.533 153.6 34.133 226.133 38.4 68.267 106.667 119.467 183.467 136.533 157.867 42.667 324.267-55.467 362.667-213.333 4.267-17.067 21.333-34.133 42.667-34.133h51.2c0 0 0 0 0 0 81.067 0 149.333-55.467 166.4-136.533 17.067-93.867-42.667-183.467-132.267-200.533-21.333-4.267-38.4-25.6-34.133-51.2 4.267-21.333 21.333-34.133 42.667-34.133 4.267 0 4.267 0 8.533 0 136.533 29.867 226.133 166.4 200.533 302.933zM640 256h-174.933l128 187.733c12.8 21.333 8.533 46.933-12.8 59.733s-46.933 8.533-59.733-12.8l-170.667-256c-8.533-12.8-8.533-29.867 0-42.667 4.267-12.8 17.067-21.333 34.133-21.333h174.933l-128-187.733c-12.8-21.333-8.533-46.933 12.8-59.733 8.533-4.267 17.067-8.533 25.6-8.533 12.8 0 25.6 8.533 34.133 17.067l170.667 256c8.533 12.8 8.533 29.867 0 42.667s-17.067 25.6-34.133 25.6z" />
65
+ <glyph unicode="&#xe937;" glyph-name="cloud-off" d="M409.6 725.334c128-12.8 230.4-102.4 264.533-221.867 4.267-17.067 21.333-34.133 42.667-34.133h51.2c0 0 0 0 0 0 21.333 0 46.933-4.267 68.267-12.8 85.333-38.4 128-136.533 89.6-221.867-8.533-21.333 0-46.933 21.333-55.467 4.267-4.267 12.8-4.267 17.067-4.267 17.067 0 34.133 8.533 38.4 25.6 55.467 128-4.267 281.6-136.533 337.067-29.867 8.533-64 17.067-98.133 17.067h-21.333c-51.2 140.8-179.2 243.2-328.533 256-25.6 0-42.667-17.067-46.933-38.4-4.267-25.6 17.067-42.667 38.4-46.933zM72.533 925.867c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l132.267-132.267c-64-51.2-110.933-119.467-136.533-200.533-29.867-98.133-17.067-200.533 34.133-290.133 68.267-123.733 196.267-200.533 337.067-200.533 0 0 4.267 0 4.267 0h384c21.333 0 38.4 4.267 59.733 8.533l123.733-123.733c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-938.667 938.667zM384 128c-110.933-4.267-213.333 55.467-264.533 153.6-38.4 68.267-46.933 149.333-25.6 226.133 17.067 68.267 59.733 123.733 115.2 162.133l541.867-541.867h-366.933z" />
66
+ <glyph unicode="&#xe938;" glyph-name="cloud-rain" d="M682.667 426.667c-25.6 0-42.667-17.067-42.667-42.667v-341.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v341.333c0 25.6-17.067 42.667-42.667 42.667zM341.333 426.667c-25.6 0-42.667-17.067-42.667-42.667v-341.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v341.333c0 25.6-17.067 42.667-42.667 42.667zM512 341.334c-25.6 0-42.667-17.067-42.667-42.667v-341.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v341.333c0 25.6-17.067 42.667-42.667 42.667zM1002.667 529.067c-42.667 93.867-132.267 153.6-234.667 153.6h-21.333c-64 187.733-264.533 294.4-456.533 243.2-209.067-51.2-332.8-260.267-277.333-469.333 21.333-81.067 68.267-153.6 132.267-204.8 17.067-12.8 46.933-12.8 59.733 8.533 12.8 17.067 12.8 46.933-8.533 59.733-51.2 38.4-85.333 98.133-102.4 157.867-42.667 157.867 55.467 324.267 213.333 362.667 157.867 42.667 324.267-55.467 362.667-213.333 4.267-17.067 21.333-34.133 42.667-34.133h55.467c68.267 0 128-38.4 157.867-102.4 17.067-42.667 21.333-89.6 4.267-132.267s-46.933-76.8-89.6-93.867c-21.333-8.533-29.867-34.133-21.333-55.467 8.533-17.067 21.333-25.6 38.4-25.6 4.267 0 12.8 0 17.067 4.267 64 25.6 110.933 76.8 136.533 140.8 21.333 68.267 17.067 136.533-8.533 200.533z" />
67
+ <glyph unicode="&#xe939;" glyph-name="cloud-snow" d="M1002.667 486.4c-42.667 93.867-132.267 153.6-234.667 153.6h-21.333c-64 187.733-264.533 294.4-456.533 243.2-209.067-51.2-332.8-260.267-277.333-469.333 21.333-81.067 68.267-153.6 132.267-204.8 17.067-12.8 46.933-12.8 59.733 8.533 12.8 17.067 12.8 46.933-8.533 59.733-51.2 38.4-85.333 98.133-102.4 157.867-42.667 157.867 55.467 324.267 213.333 362.667 157.867 42.667 324.267-55.467 362.667-213.333 4.267-17.067 21.333-34.133 42.667-34.133h55.467c68.267 0 128-38.4 157.867-102.4 17.067-42.667 21.333-89.6 4.267-132.267s-46.933-76.8-89.6-93.867c-21.333-8.533-29.867-34.133-21.333-55.467 8.533-17.067 21.333-25.6 38.4-25.6 4.267 0 12.8 0 17.067 4.267 64 25.6 110.933 76.8 136.533 140.8 21.333 68.267 17.067 136.533-8.533 200.533zM311.467 285.867c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 17.067 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0zM311.467 115.2c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 17.067 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0zM482.133 200.534c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 21.333 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0zM482.133 29.867c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 21.333 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0zM652.8 285.867c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 21.333 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0zM652.8 115.2c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 21.333 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0z" />
68
+ <glyph unicode="&#xe93a;" glyph-name="codepen" d="M981.333 268.8c0 4.267 0 4.267 0 8.533v298.667c0 4.267 0 4.267 0 8.533 0 0 0 0 0 4.267s-4.267 8.533-4.267 12.8c0 0 0 0 0 0s0 0 0 0c-4.267 4.267-4.267 8.533-8.533 8.533v0c0 0 0 0 0 0l-426.667 277.333c0 0-4.267 0-4.267 0s-4.267 0-4.267 0c-8.533 4.267-21.333 4.267-29.867 0 0 0-4.267 0-4.267 0s-4.267 0-4.267 0l-426.667-277.333c-8.533 0-12.8-4.267-17.067-8.533 0 0 0 0 0 0s0 0 0 0c-4.267-8.533-4.267-12.8-8.533-17.067 0 0 0 0 0-4.267s0-4.267 0-8.533v-298.667c0-4.267 0-4.267 0-8.533 0 0 0 0 0-4.267s4.267-8.533 4.267-12.8c0 0 0 0 0 0s0 0 0 0c4.267-4.267 4.267-8.533 8.533-8.533l426.667-277.333c0 0 4.267 0 4.267 0s4.267 0 4.267 0 8.533-4.267 12.8-4.267 8.533 0 12.8 4.267c0 0 4.267 0 4.267 0s4.267 0 4.267 0l426.667 277.333c4.267 4.267 8.533 8.533 12.8 8.533 0 0 0 0 0 0s0 0 0 0c12.8 12.8 12.8 17.067 17.067 21.333 0 0 0 0 0 0zM128 494.934l98.133-68.267-98.133-68.267v136.533zM512 328.534l-140.8 98.133 140.8 98.133 140.8-98.133-140.8-98.133zM554.667 597.334v179.2l307.2-200.533-136.533-98.133-170.667 119.467zM469.333 597.334l-170.667-119.467-136.533 98.133 307.2 200.533v-179.2zM298.667 375.467l170.667-119.467v-174.933l-307.2 200.533 136.533 93.867zM554.667 256l170.667 119.467 136.533-93.867-307.2-204.8v179.2zM797.867 426.667l98.133 68.267v-136.533l-98.133 68.267z" />
69
+ <glyph unicode="&#xe93b;" glyph-name="command" d="M768 341.334h-85.333v170.667h85.333c93.867 0 170.667 76.8 170.667 170.667s-76.8 170.667-170.667 170.667-170.667-76.8-170.667-170.667v-85.333h-170.667v85.333c0 93.867-76.8 170.667-170.667 170.667s-170.667-76.8-170.667-170.667 76.8-170.667 170.667-170.667h85.333v-170.667h-85.333c-93.867 0-170.667-76.8-170.667-170.667s76.8-170.667 170.667-170.667 170.667 76.8 170.667 170.667v85.333h170.667v-85.333c0-93.867 76.8-170.667 170.667-170.667s170.667 76.8 170.667 170.667-76.8 170.667-170.667 170.667zM682.667 682.667c0 46.933 38.4 85.333 85.333 85.333s85.333-38.4 85.333-85.333-38.4-85.333-85.333-85.333h-85.333v85.333zM341.333 170.667c0-46.933-38.4-85.333-85.333-85.333s-85.333 38.4-85.333 85.333 38.4 85.333 85.333 85.333h85.333v-85.333zM341.333 597.334h-85.333c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333v-85.333zM597.333 341.334h-170.667v170.667h170.667v-170.667zM768 85.334c-46.933 0-85.333 38.4-85.333 85.333v85.333h85.333c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333z" />
70
+ <glyph unicode="&#xe93c;" glyph-name="compass" d="M512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM512 42.667c-213.333 0-384 170.667-384 384s170.667 384 384 384c213.333 0 384-170.667 384-384s-170.667-384-384-384zM678.4 648.534l-268.8-89.6c-12.8-4.267-25.6-17.067-29.867-29.867l-89.6-273.067c-4.267-17.067 0-34.133 8.533-42.667s17.067-12.8 29.867-12.8c4.267 0 8.533 0 12.8 4.267l273.067 89.6c12.8 4.267 21.333 12.8 25.6 25.6l89.6 273.067c4.267 17.067 0 34.133-8.533 42.667-8.533 12.8-25.6 17.067-42.667 12.8zM567.467 371.2l-170.667-55.467 55.467 170.667 170.667 55.467-55.467-170.667z" />
71
+ <glyph unicode="&#xe93d;" glyph-name="copy" d="M853.333 597.334h-384c-72.533 0-128-55.467-128-128v-384c0-72.533 55.467-128 128-128h384c72.533 0 128 55.467 128 128v384c0 72.533-55.467 128-128 128zM896 85.334c0-25.6-17.067-42.667-42.667-42.667h-384c-25.6 0-42.667 17.067-42.667 42.667v384c0 25.6 17.067 42.667 42.667 42.667h384c25.6 0 42.667-17.067 42.667-42.667v-384zM213.333 341.334h-42.667c-25.6 0-42.667 17.067-42.667 42.667v384c0 25.6 17.067 42.667 42.667 42.667h384c25.6 0 42.667-17.067 42.667-42.667v-42.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v42.667c0 72.533-55.467 128-128 128h-384c-72.533 0-128-55.467-128-128v-384c0-72.533 55.467-128 128-128h42.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
72
+ <glyph unicode="&#xe93e;" glyph-name="corner-down-left" d="M853.333 810.667c-25.6 0-42.667-17.067-42.667-42.667v-298.667c0-72.533-55.467-128-128-128h-409.6l140.8 140.8c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-213.333-213.333c-4.267-4.267-8.533-8.533-8.533-12.8-4.267-8.533-4.267-21.333 0-34.133 4.267-4.267 4.267-8.533 8.533-12.8l213.333-213.333c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-140.8 140.8h409.6c119.467 0 213.333 93.867 213.333 213.333v298.667c0 25.6-17.067 42.667-42.667 42.667z" />
73
+ <glyph unicode="&#xe93f;" glyph-name="corner-down-right" d="M891.733 281.6c4.267 8.533 4.267 21.333 0 34.133-4.267 4.267-4.267 8.533-8.533 12.8l-213.333 213.333c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l140.8-140.8h-409.6c-72.533 0-128 55.467-128 128v298.667c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-298.667c0-119.467 93.867-213.333 213.333-213.333h409.6l-140.8-140.8c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l213.333 213.333c4.267 4.267 8.533 8.533 8.533 12.8z" />
74
+ <glyph unicode="&#xe940;" glyph-name="corner-left-down" d="M853.333 810.667h-298.667c-119.467 0-213.333-93.867-213.333-213.333v-409.6l-140.8 140.8c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l213.333-213.333c4.267-4.267 8.533-8.533 12.8-8.533 4.267-4.267 12.8-4.267 17.067-4.267s12.8 0 17.067 4.267c4.267 4.267 8.533 4.267 12.8 8.533l213.333 213.333c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-140.8-140.8v409.6c0 72.533 55.467 128 128 128h298.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
75
+ <glyph unicode="&#xe941;" glyph-name="corner-left-up" d="M853.333 128h-298.667c-72.533 0-128 55.467-128 128v409.6l140.8-140.8c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-213.333 213.333c-4.267 4.267-8.533 8.533-12.8 8.533-12.8 4.267-21.333 4.267-34.133 0-4.267 0-8.533-4.267-12.8-8.533l-213.333-213.333c-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0l140.8 140.8v-409.6c0-119.467 93.867-213.333 213.333-213.333h298.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
76
+ <glyph unicode="&#xe942;" glyph-name="corner-right-down" d="M883.2 328.534c-17.067 17.067-42.667 17.067-59.733 0l-140.8-140.8v409.6c0 119.467-93.867 213.333-213.333 213.333h-298.667c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h298.667c72.533 0 128-55.467 128-128v-409.6l-140.8 140.8c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l213.333-213.333c4.267-4.267 8.533-8.533 12.8-8.533 4.267-4.267 12.8-4.267 17.067-4.267s12.8 0 17.067 4.267c4.267 4.267 8.533 4.267 12.8 8.533l213.333 213.333c17.067 17.067 17.067 42.667 0 59.733z" />
77
+ <glyph unicode="&#xe943;" glyph-name="corner-right-up" d="M883.2 584.534l-213.333 213.333c-4.267 4.267-8.533 8.533-12.8 8.533-8.533 4.267-21.333 4.267-34.133 0-4.267-4.267-8.533-4.267-12.8-8.533l-213.333-213.333c-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0l140.8 140.8v-409.6c0-72.533-55.467-128-128-128h-298.667c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h298.667c119.467 0 213.333 93.867 213.333 213.333v409.6l140.8-140.8c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733z" />
78
+ <glyph unicode="&#xe944;" glyph-name="corner-up-left" d="M682.667 597.334h-409.6l140.8 140.8c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-213.333-213.333c-4.267-4.267-8.533-8.533-8.533-12.8-4.267-12.8-4.267-21.333 0-34.133 4.267-4.267 4.267-8.533 8.533-12.8l213.333-213.333c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-140.8 140.8h409.6c72.533 0 128-55.467 128-128v-298.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v298.667c0 119.467-93.867 213.333-213.333 213.333z" />
79
+ <glyph unicode="&#xe945;" glyph-name="corner-up-right" d="M891.733 537.6c4.267 8.533 4.267 21.333 0 34.133-4.267 4.267-4.267 8.533-8.533 12.8l-213.333 213.333c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l140.8-140.8h-409.6c-119.467 0-213.333-93.867-213.333-213.333v-298.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v298.667c0 72.533 55.467 128 128 128h409.6l-140.8-140.8c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l213.333 213.333c4.267 4.267 8.533 8.533 8.533 12.8z" />
80
+ <glyph unicode="&#xe946;" glyph-name="cpu" d="M640 597.334h-256c-25.6 0-42.667-17.067-42.667-42.667v-256c0-25.6 17.067-42.667 42.667-42.667h256c25.6 0 42.667 17.067 42.667 42.667v256c0 25.6-17.067 42.667-42.667 42.667zM597.333 341.334h-170.667v170.667h170.667v-170.667zM981.333 384h-85.333v128h85.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-85.333v85.333c0 72.533-55.467 128-128 128h-85.333v85.333c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-85.333h-170.667v85.333c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-85.333h-85.333c-72.533 0-128-55.467-128-128v-85.333h-85.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h85.333v-128h-85.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h85.333v-128c0-72.533 55.467-128 128-128h85.333v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333h170.667v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333h85.333c72.533 0 128 55.467 128 128v128h85.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM810.667 170.667c0-25.6-17.067-42.667-42.667-42.667h-512c-25.6 0-42.667 17.067-42.667 42.667v512c0 25.6 17.067 42.667 42.667 42.667h512c25.6 0 42.667-17.067 42.667-42.667v-512z" />
81
+ <glyph unicode="&#xe947;" glyph-name="credit-card" d="M896 810.667h-768c-72.533 0-128-55.467-128-128v-512c0-72.533 55.467-128 128-128h768c72.533 0 128 55.467 128 128v512c0 72.533-55.467 128-128 128zM128 725.334h768c25.6 0 42.667-17.067 42.667-42.667v-128h-853.333v128c0 25.6 17.067 42.667 42.667 42.667zM896 128h-768c-25.6 0-42.667 17.067-42.667 42.667v298.667h853.333v-298.667c0-25.6-17.067-42.667-42.667-42.667z" />
82
+ <glyph unicode="&#xe948;" glyph-name="crop" d="M981.333 213.334h-170.667v384c0 72.533-55.467 128-128 128l-379.733-4.267v174.933c0 25.6-17.067 42.667-42.667 42.667 0 0 0 0 0 0-21.333 0-42.667-17.067-42.667-42.667v-174.933h-174.933c-25.6 0-42.667-21.333-42.667-42.667s21.333-42.667 42.667-42.667c0 0 0 0 0 0h174.933l-4.267-379.733c0-72.533 55.467-128 128-128h384v-170.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v170.667h170.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM341.333 213.334c-25.6 0-42.667 17.067-42.667 42.667l4.267 379.733 379.733 4.267c25.6 0 42.667-17.067 42.667-42.667v-384h-384z" />
83
+ <glyph unicode="&#xe949;" glyph-name="crosshair" d="M512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM554.667 46.934v123.733c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-123.733c-179.2 21.333-320 162.133-337.067 337.067h123.733c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-123.733c17.067 179.2 157.867 320 337.067 337.067v-123.733c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v123.733c179.2-21.333 320-162.133 337.067-337.067h-123.733c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h123.733c-17.067-179.2-157.867-320-337.067-337.067z" />
84
+ <glyph unicode="&#xe94a;" glyph-name="delete" d="M896 810.667h-554.667c-12.8 0-25.6-4.267-34.133-12.8l-298.667-341.333c-12.8-17.067-12.8-38.4 0-55.467l298.667-341.333c8.533-12.8 21.333-17.067 34.133-17.067h554.667c72.533 0 128 55.467 128 128v512c0 72.533-55.467 128-128 128zM938.667 170.667c0-25.6-17.067-42.667-42.667-42.667h-533.333l-260.267 298.667 260.267 298.667h533.333c25.6 0 42.667-17.067 42.667-42.667v-512zM797.867 584.534c-17.067 17.067-42.667 17.067-59.733 0l-98.133-98.133-98.133 98.133c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l98.133-98.133-98.133-98.133c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l98.133 98.133 98.133-98.133c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-98.133 98.133 98.133 98.133c17.067 17.067 17.067 42.667 0 59.733z" />
85
+ <glyph unicode="&#xe94b;" glyph-name="disc" d="M512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM512 42.667c-213.333 0-384 170.667-384 384s170.667 384 384 384c213.333 0 384-170.667 384-384s-170.667-384-384-384zM512 597.334c-93.867 0-170.667-76.8-170.667-170.667s76.8-170.667 170.667-170.667c93.867 0 170.667 76.8 170.667 170.667s-76.8 170.667-170.667 170.667zM512 341.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333z" />
86
+ <glyph unicode="&#xe94c;" glyph-name="download" d="M896 256c-25.6 0-42.667-17.067-42.667-42.667v-128c0-25.6-17.067-42.667-42.667-42.667h-597.333c-25.6 0-42.667 17.067-42.667 42.667v128c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-128c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v128c0 25.6-17.067 42.667-42.667 42.667zM482.133 226.134c4.267-4.267 8.533-8.533 12.8-8.533 4.267-4.267 12.8-4.267 17.067-4.267s12.8 0 17.067 4.267c4.267 4.267 8.533 4.267 12.8 8.533l170.667 170.667c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-98.133-98.133v494.933c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-494.933l-98.133 98.133c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l170.667-170.667z" />
87
+ <glyph unicode="&#xe94d;" glyph-name="download-cloud" d="M652.8 243.2l-98.133-98.133v281.6c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-281.6l-98.133 98.133c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l170.667-170.667c4.267-4.267 8.533-8.533 12.8-8.533 4.267-4.267 12.8-4.267 17.067-4.267s12.8 0 17.067 4.267c4.267 4.267 8.533 4.267 12.8 8.533l170.667 170.667c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0zM977.067 490.667c-46.933 64-123.733 106.667-209.067 106.667 0 0 0 0 0 0h-21.333c-64 187.733-264.533 294.4-456.533 243.2-102.4-25.6-183.467-85.333-238.933-174.933-51.2-89.6-68.267-192-42.667-290.133 17.067-59.733 42.667-115.2 85.333-157.867 17.067-17.067 42.667-21.333 59.733-4.267s21.333 42.667 4.267 59.733c-29.867 34.133-55.467 76.8-64 123.733-21.333 76.8-8.533 157.867 34.133 226.133s106.667 119.467 183.467 136.533c157.867 42.667 324.267-55.467 362.667-213.333 4.267-17.067 21.333-34.133 42.667-34.133h51.2c0 0 0 0 0 0 55.467 0 106.667-25.6 140.8-72.533 25.6-38.4 38.4-81.067 29.867-128s-34.133-85.333-68.267-110.933c-21.333-12.8-25.6-38.4-8.533-59.733 8.533-12.8 21.333-17.067 34.133-17.067 8.533 0 17.067 4.267 25.6 8.533 55.467 38.4 93.867 98.133 106.667 166.4s-12.8 132.267-51.2 192z" />
88
+ <glyph unicode="&#xe94e;" glyph-name="droplet" d="M785.067 614.4l-243.2 238.933c-8.533 8.533-17.067 12.8-29.867 12.8v0c-12.8 0-21.333-4.267-29.867-12.8l-238.933-238.933c0 0 0 0 0 0-76.8-72.533-115.2-170.667-115.2-273.067s38.4-200.533 110.933-273.067c72.533-72.533 170.667-110.933 273.067-110.933 0 0 0 0 0 0 102.4 0 200.533 38.4 273.067 110.933 149.333 149.333 149.333 392.533 0 546.133zM725.333 128c-59.733-55.467-132.267-85.333-213.333-85.333 0 0 0 0 0 0-81.067 0-153.6 29.867-209.067 85.333-59.733 59.733-89.6 132.267-89.6 213.333s29.867 153.6 85.333 209.067c0 0 0 0 0 0l209.067 213.333 213.333-213.333c119.467-115.2 119.467-302.933 4.267-422.4z" />
89
+ <glyph unicode="&#xe94f;" glyph-name="edit" d="M853.333 354.134c-25.6 0-42.667-17.067-42.667-42.667v-226.133c0-25.6-17.067-42.667-42.667-42.667h-597.333c-25.6 0-42.667 17.067-42.667 42.667v597.333c0 25.6 17.067 42.667 42.667 42.667h226.133c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-226.133c-72.533 0-128-55.467-128-128v-597.333c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v226.133c0 25.6-17.067 42.667-42.667 42.667zM968.533 712.534l-170.667 170.667c-17.067 17.067-42.667 17.067-59.733 0l-426.667-426.667c-8.533-8.533-12.8-17.067-12.8-29.867v-170.667c0-25.6 17.067-42.667 42.667-42.667h170.667c12.8 0 21.333 4.267 29.867 12.8l426.667 426.667c17.067 17.067 17.067 42.667 0 59.733zM494.933 298.667h-110.933v110.933l384 384 110.933-110.933-384-384z" />
90
+ <glyph unicode="&#xe950;" glyph-name="edit-2" d="M925.867 627.2l-213.333 213.333c-17.067 17.067-42.667 17.067-59.733 0l-554.667-554.667c-8.533-8.533-12.8-17.067-12.8-29.867v-213.333c0-25.6 17.067-42.667 42.667-42.667h213.333c12.8 0 21.333 4.267 29.867 12.8l554.667 554.667c17.067 17.067 17.067 42.667 0 59.733zM324.267 85.334h-153.6v153.6l512 512 153.6-153.6-512-512z" />
91
+ <glyph unicode="&#xe951;" glyph-name="edit-3" d="M128 170.667h170.667c12.8 0 21.333 4.267 29.867 12.8l469.333 469.333c17.067 17.067 17.067 42.667 0 59.733l-170.667 170.667c-17.067 17.067-42.667 17.067-59.733 0l-469.333-469.333c-8.533-8.533-12.8-17.067-12.8-29.867v-170.667c0-25.6 17.067-42.667 42.667-42.667zM170.667 366.934l426.667 426.667 110.933-110.933-426.667-426.667h-110.933v110.933zM896 42.667h-768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h768c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
92
+ <glyph unicode="&#xe952;" glyph-name="external-link" d="M768 426.667c-25.6 0-42.667-17.067-42.667-42.667v-256c0-25.6-17.067-42.667-42.667-42.667h-469.333c-25.6 0-42.667 17.067-42.667 42.667v469.333c0 25.6 17.067 42.667 42.667 42.667h256c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-256c-72.533 0-128-55.467-128-128v-469.333c0-72.533 55.467-128 128-128h469.333c72.533 0 128 55.467 128 128v256c0 25.6-17.067 42.667-42.667 42.667zM934.4 827.734c-4.267 8.533-12.8 17.067-21.333 21.333-4.267 4.267-12.8 4.267-17.067 4.267h-256c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h153.6l-396.8-396.8c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l396.8 396.8v-153.6c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v256c0 4.267 0 12.8-4.267 17.067z" />
93
+ <glyph unicode="&#xe953;" glyph-name="eye" d="M1019.733 443.734c-8.533 17.067-187.733 366.933-507.733 366.933s-499.2-349.867-507.733-366.933c-4.267-12.8-4.267-25.6 0-38.4 8.533-12.8 187.733-362.667 507.733-362.667s499.2 349.867 507.733 366.933c4.267 8.533 4.267 25.6 0 34.133zM512 128c-230.4 0-379.733 230.4-422.4 298.667 38.4 68.267 192 298.667 422.4 298.667s379.733-230.4 422.4-298.667c-42.667-68.267-192-298.667-422.4-298.667zM512 597.334c-93.867 0-170.667-76.8-170.667-170.667s76.8-170.667 170.667-170.667c93.867 0 170.667 76.8 170.667 170.667s-76.8 170.667-170.667 170.667zM512 341.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333z" />
94
+ <glyph unicode="&#xe954;" glyph-name="eye-off" d="M430.933 716.8c25.6 4.267 55.467 8.533 81.067 8.533 230.4 0 379.733-230.4 422.4-298.667-21.333-38.4-46.933-76.8-76.8-106.667-17.067-17.067-12.8-46.933 4.267-59.733 8.533-8.533 17.067-8.533 25.6-8.533 12.8 0 25.6 4.267 34.133 17.067 38.4 42.667 68.267 93.867 98.133 145.067 8.533 12.8 8.533 25.6 0 38.4-8.533 8.533-187.733 358.4-507.733 358.4-34.133 0-68.267-4.267-98.133-12.8-25.6-4.267-38.4-25.6-34.133-51.2 8.533-21.333 29.867-34.133 51.2-29.867zM1011.2-12.8l-938.667 938.667c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l183.467-183.467c-76.8-68.267-140.8-145.067-192-234.667-8.533-12.8-8.533-25.6 0-38.4 8.533-17.067 187.733-366.933 507.733-366.933 89.6 0 174.933 25.6 247.467 76.8l192-192c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733zM426.667 452.267l106.667-106.667c-8.533-4.267-17.067-4.267-25.6-4.267-21.333 0-42.667 8.533-59.733 21.333-17.067 17.067-25.6 38.4-25.6 59.733 0 8.533 4.267 17.067 4.267 29.867zM512 128c-230.4 0-379.733 230.4-422.4 298.667 42.667 76.8 98.133 140.8 166.4 196.267l106.667-110.933c-17.067-29.867-25.6-64-25.6-98.133 0-46.933 21.333-89.6 55.467-119.467 29.867-29.867 72.533-46.933 115.2-46.933 0 0 4.267 0 4.267 0 29.867 0 59.733 12.8 85.333 25.6l98.133-98.133c-55.467-29.867-119.467-46.933-183.467-46.933z" />
95
+ <glyph unicode="&#xe955;" glyph-name="facebook" d="M768 640c25.6 0 42.667 17.067 42.667 42.667v170.667c0 25.6-17.067 42.667-42.667 42.667h-128c-140.8 0-256-115.2-256-256v-85.333h-85.333c-25.6 0-42.667-17.067-42.667-42.667v-170.667c0-25.6 17.067-42.667 42.667-42.667h85.333v-298.667c0-25.6 17.067-42.667 42.667-42.667h170.667c25.6 0 42.667 17.067 42.667 42.667v298.667h85.333c21.333 0 38.4 12.8 42.667 34.133l42.667 170.667c4.267 12.8 0 25.6-8.533 38.4s-21.333 12.8-34.133 12.8h-128v85.333h128zM597.333 469.334h115.2l-21.333-85.333h-93.867c-25.6 0-42.667-17.067-42.667-42.667v-298.667h-85.333v298.667c0 25.6-17.067 42.667-42.667 42.667h-85.333v85.333h85.333c25.6 0 42.667 17.067 42.667 42.667v128c0 93.867 76.8 170.667 170.667 170.667h85.333v-85.333h-85.333c-46.933 0-85.333-38.4-85.333-85.333v-128c0-25.6 17.067-42.667 42.667-42.667z" />
96
+ <glyph unicode="&#xe956;" glyph-name="fast-forward" d="M964.267 460.8l-384 298.667c-12.8 8.533-29.867 12.8-46.933 4.267-12.8-8.533-21.333-21.333-21.333-38.4v-597.333c0-17.067 8.533-29.867 25.6-38.4 4.267-4.267 12.8-4.267 17.067-4.267 8.533 0 17.067 4.267 25.6 8.533l384 298.667c8.533 8.533 17.067 21.333 17.067 34.133s-4.267 25.6-17.067 34.133zM597.333 213.334v426.667l273.067-213.333-273.067-213.333zM110.933 759.467c-12.8 8.533-29.867 12.8-42.667 4.267-17.067-8.533-25.6-21.333-25.6-38.4v-597.333c0-17.067 8.533-29.867 25.6-38.4 4.267-4.267 12.8-4.267 17.067-4.267 8.533 0 17.067 4.267 25.6 8.533l384 298.667c8.533 8.533 17.067 21.333 17.067 34.133s-4.267 25.6-17.067 34.133l-384 298.667zM128 213.334v426.667l273.067-213.333-273.067-213.333z" />
97
+ <glyph unicode="&#xe957;" glyph-name="feather" d="M891.733 810.667c-115.2 115.2-307.2 115.2-422.4 0l-285.867-290.133c-8.533-8.533-12.8-17.067-12.8-29.867v-345.6l-115.2-115.2c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l115.2 115.2h345.6c12.8 0 21.333 4.267 29.867 12.8l285.867 290.133c119.467 115.2 119.467 302.933 0 422.4zM558.933 170.667h-243.2l85.333 85.333h243.2l-85.333-85.333zM832 448c0 0 0 0 0 0l-102.4-106.667c0 0 0 0-4.267 0h-238.933l226.133 226.133c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-298.667-298.667c0 0 0 0 0 0l-98.133-98.133v243.2l277.333 277.333c85.333 85.333 217.6 85.333 302.933 0 81.067-85.333 81.067-221.867-4.267-302.933z" />
98
+ <glyph unicode="&#xe958;" glyph-name="file" d="M891.733 571.734c-4.267 4.267-4.267 8.533-8.533 12.8l-298.667 298.667c-4.267 4.267-8.533 8.533-12.8 8.533-4.267 4.267-12.8 4.267-17.067 4.267h-298.667c-72.533 0-128-55.467-128-128v-682.667c0-72.533 55.467-128 128-128h512c72.533 0 128 55.467 128 128v469.333c0 4.267 0 12.8-4.267 17.067zM597.333 750.934l153.6-153.6h-153.6v153.6zM768 42.667h-512c-25.6 0-42.667 17.067-42.667 42.667v682.667c0 25.6 17.067 42.667 42.667 42.667h256v-256c0-25.6 17.067-42.667 42.667-42.667h256v-426.667c0-25.6-17.067-42.667-42.667-42.667z" />
99
+ <glyph unicode="&#xe959;" glyph-name="file-minus" d="M891.733 614.4c-4.267 4.267-4.267 8.533-8.533 12.8l-256 256c-4.267 4.267-8.533 8.533-12.8 8.533-4.267 4.267-12.8 4.267-17.067 4.267h-341.333c-72.533 0-128-55.467-128-128v-682.667c0-72.533 55.467-128 128-128h512c72.533 0 128 55.467 128 128v512c0 4.267 0 12.8-4.267 17.067zM640 750.934l110.933-110.933h-110.933v110.933zM768 42.667h-512c-25.6 0-42.667 17.067-42.667 42.667v682.667c0 25.6 17.067 42.667 42.667 42.667h298.667v-213.333c0-25.6 17.067-42.667 42.667-42.667h213.333v-469.333c0-25.6-17.067-42.667-42.667-42.667zM640 341.334h-256c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h256c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
100
+ <glyph unicode="&#xe95a;" glyph-name="file-plus" d="M891.733 614.4c-4.267 4.267-4.267 8.533-8.533 12.8l-256 256c-4.267 4.267-8.533 8.533-12.8 8.533-4.267 4.267-12.8 4.267-17.067 4.267h-341.333c-72.533 0-128-55.467-128-128v-682.667c0-72.533 55.467-128 128-128h512c72.533 0 128 55.467 128 128v512c0 4.267 0 12.8-4.267 17.067zM640 750.934l110.933-110.933h-110.933v110.933zM768 42.667h-512c-25.6 0-42.667 17.067-42.667 42.667v682.667c0 25.6 17.067 42.667 42.667 42.667h298.667v-213.333c0-25.6 17.067-42.667 42.667-42.667h213.333v-469.333c0-25.6-17.067-42.667-42.667-42.667zM640 341.334h-85.333v85.333c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-85.333h-85.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h85.333v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333h85.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
101
+ <glyph unicode="&#xe95b;" glyph-name="file-text" d="M891.733 614.4c-4.267 4.267-4.267 8.533-8.533 12.8l-256 256c-4.267 4.267-8.533 8.533-12.8 8.533-4.267 4.267-12.8 4.267-17.067 4.267h-341.333c-72.533 0-128-55.467-128-128v-682.667c0-72.533 55.467-128 128-128h512c72.533 0 128 55.467 128 128v512c0 4.267 0 12.8-4.267 17.067zM640 750.934l110.933-110.933h-110.933v110.933zM768 42.667h-512c-25.6 0-42.667 17.067-42.667 42.667v682.667c0 25.6 17.067 42.667 42.667 42.667h298.667v-213.333c0-25.6 17.067-42.667 42.667-42.667h213.333v-469.333c0-25.6-17.067-42.667-42.667-42.667zM682.667 426.667h-341.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h341.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM682.667 256h-341.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h341.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM341.333 512h85.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-85.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667z" />
102
+ <glyph unicode="&#xe95c;" glyph-name="film" d="M844.8 896h-665.6c-76.8 0-136.533-59.733-136.533-136.533v-665.6c0-76.8 59.733-136.533 136.533-136.533h665.6c76.8 0 136.533 59.733 136.533 136.533v665.6c0 76.8-59.733 136.533-136.533 136.533zM768 597.334h128v-128h-128v128zM682.667 469.334h-341.333v341.333h341.333v-341.333zM256 469.334h-128v128h128v-128zM128 384h128v-128h-128v128zM341.333 384h341.333v-341.333h-341.333v341.333zM768 384h128v-128h-128v128zM896 759.467v-76.8h-128v128h76.8c29.867 0 51.2-21.333 51.2-51.2zM179.2 810.667h76.8v-128h-128v76.8c0 29.867 21.333 51.2 51.2 51.2zM128 93.867v76.8h128v-128h-76.8c-29.867 0-51.2 21.333-51.2 51.2zM844.8 42.667h-76.8v128h128v-76.8c0-29.867-21.333-51.2-51.2-51.2z" />
103
+ <glyph unicode="&#xe95d;" glyph-name="filter" d="M977.067 827.734c-8.533 17.067-21.333 25.6-38.4 25.6h-853.333c-17.067 0-29.867-8.533-38.4-25.6-8.533-12.8-4.267-29.867 4.267-42.667l332.8-392.533v-264.533c0-17.067 8.533-29.867 25.6-38.4l170.667-85.333c4.267-4.267 8.533-4.267 17.067-4.267s17.067 0 21.333 4.267c12.8 8.533 21.333 21.333 21.333 38.4v349.867l332.8 392.533c8.533 12.8 12.8 29.867 4.267 42.667zM563.2 435.2c-4.267-8.533-8.533-17.067-8.533-29.867v-294.4l-85.333 42.667v251.733c0 8.533-4.267 21.333-8.533 25.6l-281.6 337.067h669.867l-285.867-332.8z" />
104
+ <glyph unicode="&#xe95e;" glyph-name="flag" d="M870.4 849.067c-17.067 8.533-34.133 4.267-46.933-8.533 0 0-38.4-29.867-140.8-29.867-55.467 0-102.4 21.333-153.6 38.4-55.467 25.6-115.2 46.933-187.733 46.933-136.533 0-192-46.933-200.533-55.467s-12.8-17.067-12.8-29.867v-810.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v277.333c17.067 8.533 59.733 21.333 128 21.333 55.467 0 102.4-21.333 153.6-38.4 55.467-21.333 115.2-46.933 187.733-46.933 136.533 0 192 46.933 200.533 55.467s12.8 17.067 12.8 29.867v512c0 17.067-8.533 29.867-25.6 38.4zM810.667 320c-17.067-8.533-59.733-21.333-128-21.333-55.467 0-102.4 21.333-153.6 38.4-55.467 25.6-115.2 46.933-187.733 46.933-55.467 0-98.133-8.533-128-17.067v422.4c17.067 8.533 59.733 21.333 128 21.333 55.467 0 102.4-21.333 153.6-38.4 55.467-25.6 115.2-46.933 187.733-46.933 55.467 0 98.133 8.533 128 17.067v-422.4z" />
105
+ <glyph unicode="&#xe95f;" glyph-name="folder" d="M853.333 725.334h-362.667l-72.533 110.933c-8.533 8.533-21.333 17.067-34.133 17.067h-213.333c-72.533 0-128-55.467-128-128v-597.333c0-72.533 55.467-128 128-128h682.667c72.533 0 128 55.467 128 128v469.333c0 72.533-55.467 128-128 128zM896 128c0-25.6-17.067-42.667-42.667-42.667h-682.667c-25.6 0-42.667 17.067-42.667 42.667v597.333c0 25.6 17.067 42.667 42.667 42.667h192l72.533-110.933c8.533-8.533 21.333-17.067 34.133-17.067h384c25.6 0 42.667-17.067 42.667-42.667v-469.333z" />
106
+ <glyph unicode="&#xe960;" glyph-name="github" d="M960 576c0 64-21.333 119.467-59.733 170.667 12.8 55.467 8.533 115.2-12.8 166.4-4.267 12.8-12.8 21.333-25.6 25.6-17.067 4.267-72.533 12.8-187.733-59.733-93.867 21.333-192 21.333-281.6 0-115.2 72.533-170.667 64-187.733 59.733-12.8-4.267-21.333-12.8-25.6-25.6-25.6-55.467-29.867-110.933-12.8-166.4-38.4-51.2-59.733-110.933-59.733-170.667 0-230.4 128-302.933 247.467-328.533-8.533-29.867-12.8-55.467-12.8-81.067v-4.267c-89.6-17.067-119.467 17.067-153.6 64-21.333 29.867-46.933 64-93.867 72.533-21.333 4.267-46.933-8.533-51.2-29.867s8.533-46.933 29.867-51.2c12.8-4.267 29.867-21.333 46.933-42.667 38.4-51.2 93.867-119.467 221.867-102.4v-72.533c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v123.733c0 0 0 4.267 0 4.267v38.4c0 29.867 8.533 55.467 29.867 76.8 12.8 12.8 17.067 29.867 8.533 42.667-4.267 17.067-17.067 25.6-34.133 29.867-123.733 17.067-238.933 55.467-238.933 256 0 51.2 17.067 93.867 51.2 132.267 12.8 12.8 12.8 29.867 8.533 42.667-12.8 38.4-12.8 72.533-4.267 106.667 21.333-4.267 59.733-17.067 110.933-55.467 12.8-8.533 25.6-8.533 38.4-4.267 89.6 25.6 187.733 25.6 277.333 0 12.8-4.267 25.6 0 34.133 4.267 55.467 38.4 93.867 51.2 110.933 55.467 8.533-34.133 8.533-68.267-4.267-102.4-4.267-17.067-4.267-34.133 8.533-42.667 34.133-34.133 51.2-81.067 51.2-132.267 0-200.533-115.2-243.2-238.933-256-17.067 0-29.867-12.8-34.133-29.867s0-34.133 8.533-42.667c21.333-21.333 29.867-51.2 29.867-81.067v-166.4c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v162.133c4.267 29.867 0 55.467-12.8 81.067 102.4 21.333 247.467 89.6 247.467 332.8z" />
107
+ <glyph unicode="&#xe961;" glyph-name="gitlab" d="M1019.733 379.734l-157.867 477.867c-4.267 8.533-8.533 17.067-17.067 25.6-21.333 21.333-59.733 21.333-81.067 0-8.533-4.267-12.8-12.8-17.067-25.6l-93.867-290.133h-281.6l-93.867 290.133c-4.267 8.533-8.533 17.067-17.067 25.6-21.333 21.333-59.733 21.333-81.067 0-8.533-4.267-12.8-12.8-17.067-25.6l-157.867-477.867c-12.8-34.133 0-68.267 29.867-89.6l452.267-328.533c8.533-4.267 17.067-8.533 25.6-8.533s17.067 4.267 25.6 8.533l452.267 328.533c29.867 17.067 42.667 55.467 29.867 89.6zM512 46.934l-426.667 307.2 132.267 405.333 81.067-247.467c4.267-17.067 21.333-29.867 42.667-29.867h341.333c17.067 0 34.133 12.8 42.667 29.867l81.067 247.467 81.067-247.467 51.2-153.6-426.667-311.467z" />
108
+ <glyph unicode="&#xe962;" glyph-name="globe" d="M512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM891.733 469.334h-170.667c-8.533 119.467-46.933 230.4-115.2 328.533 153.6-38.4 268.8-170.667 285.867-328.533zM388.267 384h251.733c-12.8-115.2-55.467-226.133-123.733-315.733-76.8 89.6-119.467 200.533-128 315.733zM388.267 469.334c12.8 115.2 55.467 226.133 123.733 315.733 72.533-93.867 115.2-204.8 123.733-315.733h-247.467zM413.867 797.867c-64-98.133-102.4-209.067-110.933-328.533h-170.667c17.067 157.867 132.267 290.133 281.6 328.533zM132.267 384h170.667c8.533-119.467 46.933-230.4 115.2-328.533-153.6 38.4-268.8 170.667-285.867 328.533zM610.133 55.467c64 98.133 102.4 209.067 115.2 328.533h170.667c-21.333-157.867-136.533-290.133-285.867-328.533z" />
109
+ <glyph unicode="&#xe963;" glyph-name="grid" d="M426.667 853.334h-298.667c-25.6 0-42.667-17.067-42.667-42.667v-298.667c0-25.6 17.067-42.667 42.667-42.667h298.667c25.6 0 42.667 17.067 42.667 42.667v298.667c0 25.6-17.067 42.667-42.667 42.667zM384 554.667h-213.333v213.333h213.333v-213.333zM896 853.334h-298.667c-25.6 0-42.667-17.067-42.667-42.667v-298.667c0-25.6 17.067-42.667 42.667-42.667h298.667c25.6 0 42.667 17.067 42.667 42.667v298.667c0 25.6-17.067 42.667-42.667 42.667zM853.333 554.667h-213.333v213.333h213.333v-213.333zM896 384h-298.667c-25.6 0-42.667-17.067-42.667-42.667v-298.667c0-25.6 17.067-42.667 42.667-42.667h298.667c25.6 0 42.667 17.067 42.667 42.667v298.667c0 25.6-17.067 42.667-42.667 42.667zM853.333 85.334h-213.333v213.333h213.333v-213.333zM426.667 384h-298.667c-25.6 0-42.667-17.067-42.667-42.667v-298.667c0-25.6 17.067-42.667 42.667-42.667h298.667c25.6 0 42.667 17.067 42.667 42.667v298.667c0 25.6-17.067 42.667-42.667 42.667zM384 85.334h-213.333v213.333h213.333v-213.333z" />
110
+ <glyph unicode="&#xe964;" glyph-name="hash" d="M853.333 341.334h-179.2l17.067 170.667h162.133c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-149.333l21.333 209.067c4.267 21.333-12.8 42.667-38.4 46.933-21.333 4.267-42.667-12.8-46.933-38.4l-25.6-217.6h-170.667l25.6 209.067c4.267 21.333-12.8 42.667-38.4 46.933-21.333 4.267-42.667-12.8-46.933-38.4l-25.6-217.6h-187.733c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h179.2l-17.067-170.667h-162.133c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h149.333l-21.333-209.067c-4.267-21.333 12.8-42.667 38.4-46.933 0 0 4.267 0 4.267 0 21.333 0 38.4 17.067 42.667 38.4l25.6 217.6h170.667l-25.6-209.067c-4.267-21.333 12.8-42.667 38.4-46.933 0 0 4.267 0 4.267 0 21.333 0 38.4 17.067 42.667 38.4l25.6 217.6h187.733c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM418.133 341.334l17.067 170.667h170.667l-17.067-170.667h-170.667z" />
111
+ <glyph unicode="&#xe965;" glyph-name="headphones" d="M512 853.334c-234.667 0-426.667-192-426.667-426.667v-298.667c0-72.533 55.467-128 128-128h42.667c72.533 0 128 55.467 128 128v128c0 72.533-55.467 128-128 128h-85.333v42.667c0 187.733 153.6 341.333 341.333 341.333s341.333-153.6 341.333-341.333v-42.667h-85.333c-72.533 0-128-55.467-128-128v-128c0-72.533 55.467-128 128-128h42.667c72.533 0 128 55.467 128 128v298.667c0 234.667-192 426.667-426.667 426.667zM256 298.667c25.6 0 42.667-17.067 42.667-42.667v-128c0-25.6-17.067-42.667-42.667-42.667h-42.667c-25.6 0-42.667 17.067-42.667 42.667v170.667h85.333zM853.333 128c0-25.6-17.067-42.667-42.667-42.667h-42.667c-25.6 0-42.667 17.067-42.667 42.667v128c0 25.6 17.067 42.667 42.667 42.667h85.333v-170.667z" />
112
+ <glyph unicode="&#xe966;" glyph-name="heart" d="M917.333 772.267v0c-51.2 51.2-119.467 81.067-192 81.067v0c-72.533 0-145.067-29.867-196.267-81.067 0 0 0 0 0 0l-17.067-17.067-17.067 17.067c-51.2 51.2-119.467 81.067-196.267 81.067-72.533 0-140.8-29.867-192-81.067s-85.333-123.733-85.333-196.267 29.867-145.067 81.067-196.267l375.467-375.467c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l375.467 375.467c115.2 106.667 115.2 285.867 4.267 392.533zM857.6 439.467l-345.6-345.6-345.6 345.6c-76.8 76.8-76.8 196.267 0 273.067 34.133 38.4 85.333 55.467 132.267 55.467 51.2 0 98.133-17.067 136.533-55.467l46.933-46.933c17.067-17.067 42.667-17.067 59.733 0l42.667 46.933c0 0 0 0 0 0 38.4 34.133 85.333 55.467 140.8 55.467 0 0 0 0 0 0 51.2 0 98.133-21.333 136.533-55.467v0c34.133-38.4 55.467-85.333 55.467-136.533s-21.333-98.133-59.733-136.533z" />
113
+ <glyph unicode="&#xe967;" glyph-name="help-circle" d="M563.2 674.134c-89.6 29.867-187.733-17.067-217.6-102.4-4.267-25.6 4.267-51.2 29.867-55.467 21.333-8.533 46.933 4.267 55.467 25.6 17.067 42.667 64 68.267 110.933 51.2 34.133-12.8 55.467-42.667 55.467-81.067 0-42.667-72.533-76.8-98.133-89.6-21.333-8.533-34.133-29.867-25.6-55.467 4.267-17.067 21.333-29.867 38.4-29.867 4.267 0 8.533 0 12.8 4.267 17.067 4.267 157.867 55.467 157.867 166.4-4.267 76.8-51.2 140.8-119.467 166.4zM512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM512 42.667c-213.333 0-384 170.667-384 384s170.667 384 384 384c213.333 0 384-170.667 384-384s-170.667-384-384-384zM482.133 243.2c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 21.333 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0z" />
114
+ <glyph unicode="&#xe968;" glyph-name="home" d="M921.6 588.8l-384 298.667c-17.067 12.8-38.4 12.8-51.2 0l-384-298.667c-12.8-8.533-17.067-21.333-17.067-34.133v-469.333c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v469.333c0 12.8-4.267 25.6-17.067 34.133zM597.333 42.667h-170.667v341.333h170.667v-341.333zM853.333 85.334c0-25.6-17.067-42.667-42.667-42.667h-128v384c0 25.6-17.067 42.667-42.667 42.667h-256c-25.6 0-42.667-17.067-42.667-42.667v-384h-128c-25.6 0-42.667 17.067-42.667 42.667v448l341.333 264.533 341.333-264.533v-448z" />
115
+ <glyph unicode="&#xe969;" glyph-name="image" d="M810.667 853.334h-597.333c-72.533 0-128-55.467-128-128v-597.333c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v597.333c0 72.533-55.467 128-128 128zM170.667 725.334c0 25.6 17.067 42.667 42.667 42.667h597.333c25.6 0 42.667-17.067 42.667-42.667v-324.267l-140.8 140.8c-17.067 17.067-42.667 17.067-59.733 0l-452.267-452.267c-17.067 4.267-29.867 21.333-29.867 38.4v597.333zM810.667 85.334h-494.933l366.933 366.933 170.667-170.667v-153.6c0-25.6-17.067-42.667-42.667-42.667zM362.667 469.334c59.733 0 106.667 46.933 106.667 106.667s-46.933 106.667-106.667 106.667-106.667-46.933-106.667-106.667 46.933-106.667 106.667-106.667zM362.667 597.334c12.8 0 21.333-8.533 21.333-21.333s-8.533-21.333-21.333-21.333-21.333 8.533-21.333 21.333 8.533 21.333 21.333 21.333z" />
116
+ <glyph unicode="&#xe96a;" glyph-name="inbox" d="M977.067 401.067c0 0 0 0 0 0l-149.333 332.8c-17.067 46.933-64 76.8-115.2 76.8 0 0 0 0 0 0h-401.067c0 0 0 0 0 0-51.2 0-98.133-29.867-115.2-76.8l-149.333-332.8c0 0 0 0 0 0-4.267-4.267-4.267-12.8-4.267-17.067v-213.333c0-72.533 55.467-128 128-128h682.667c72.533 0 128 55.467 128 128v213.333c0 4.267 0 12.8-4.267 17.067zM273.067 699.734c0 0 0 0 0 0 4.267 17.067 21.333 25.6 38.4 25.6v0h401.067c17.067 0 34.133-8.533 38.4-25.6l119.467-273.067h-187.733c-12.8 0-25.6-8.533-34.133-17.067l-72.533-110.933h-123.733l-72.533 110.933c-12.8 8.533-25.6 17.067-38.4 17.067h-192l123.733 273.067zM853.333 128h-682.667c-25.6 0-42.667 17.067-42.667 42.667v170.667h192l72.533-110.933c8.533-8.533 21.333-17.067 34.133-17.067h170.667c12.8 0 25.6 8.533 34.133 17.067l72.533 110.933h192v-170.667c0-25.6-17.067-42.667-42.667-42.667z" />
117
+ <glyph unicode="&#xe96b;" glyph-name="info" d="M512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM512 42.667c-213.333 0-384 170.667-384 384s170.667 384 384 384c213.333 0 384-170.667 384-384s-170.667-384-384-384zM512 469.334c-25.6 0-42.667-17.067-42.667-42.667v-170.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v170.667c0 25.6-17.067 42.667-42.667 42.667zM482.133 627.2c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 17.067 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0z" />
118
+ <glyph unicode="&#xe96c;" glyph-name="instagram" d="M725.333 896h-426.667c-140.8 0-256-115.2-256-256v-426.667c0-140.8 115.2-256 256-256h426.667c140.8 0 256 115.2 256 256v426.667c0 140.8-115.2 256-256 256zM896 213.334c0-93.867-76.8-170.667-170.667-170.667h-426.667c-93.867 0-170.667 76.8-170.667 170.667v426.667c0 93.867 76.8 170.667 170.667 170.667h426.667c93.867 0 170.667-76.8 170.667-170.667v-426.667zM546.133 640c-21.333 4.267-42.667 4.267-64 0-115.2-17.067-196.267-128-179.2-243.2 8.533-55.467 38.4-106.667 85.333-140.8 38.4-25.6 81.067-42.667 128-42.667 8.533 0 21.333 0 29.867 4.267 55.467 8.533 106.667 38.4 140.8 85.333s46.933 102.4 38.4 157.867c-12.8 93.867-85.333 166.4-179.2 179.2zM618.667 354.134c-21.333-25.6-51.2-46.933-85.333-51.2-68.267-8.533-136.533 38.4-145.067 106.667-12.8 68.267 38.4 136.533 106.667 145.067 4.267 0 12.8 0 17.067 0s12.8 0 17.067 0c55.467-8.533 98.133-51.2 106.667-106.667 8.533-34.133 0-68.267-17.067-93.867zM716.8 691.2c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 21.333-12.8 29.867-12.8 12.8 0 21.333 4.267 29.867 12.8s12.8 21.333 12.8 29.867c0 12.8-4.267 21.333-12.8 29.867-17.067 17.067-42.667 17.067-59.733 0z" />
119
+ <glyph unicode="&#xe96d;" glyph-name="italic" d="M810.667 810.667h-384c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h153.6l-226.133-597.333h-140.8c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h384c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-153.6l221.867 597.333h145.067c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
120
+ <glyph unicode="&#xe96e;" glyph-name="layers" d="M68.267 601.6l426.667-213.333c4.267-4.267 8.533-4.267 17.067-4.267s12.8 0 17.067 4.267l426.667 213.333c17.067 8.533 25.6 21.333 25.6 38.4s-8.533 29.867-25.6 38.4l-426.667 213.333c-12.8 4.267-25.6 4.267-38.4 0l-426.667-213.333c-12.8-8.533-21.333-21.333-21.333-38.4s8.533-29.867 25.6-38.4zM512 806.4l332.8-166.4-332.8-166.4-332.8 166.4 332.8 166.4zM921.6 251.734l-409.6-204.8-409.6 204.8c-21.333 8.533-46.933 0-55.467-17.067s0-46.933 17.067-55.467l426.667-213.333c8.533-8.533 12.8-8.533 21.333-8.533s12.8 0 17.067 4.267l426.667 213.333c21.333 8.533 29.867 34.133 17.067 55.467-8.533 21.333-34.133 29.867-51.2 21.333zM921.6 465.067l-409.6-204.8-409.6 204.8c-21.333 8.533-46.933 0-55.467-17.067-8.533-21.333 0-46.933 17.067-55.467l426.667-213.333c8.533-8.533 12.8-8.533 21.333-8.533s12.8 0 17.067 4.267l426.667 213.333c21.333 8.533 29.867 34.133 17.067 55.467-8.533 21.333-34.133 29.867-51.2 21.333z" />
121
+ <glyph unicode="&#xe96f;" glyph-name="layout" d="M810.667 853.334h-597.333c-72.533 0-128-55.467-128-128v-597.333c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v597.333c0 72.533-55.467 128-128 128zM213.333 768h597.333c25.6 0 42.667-17.067 42.667-42.667v-128h-682.667v128c0 25.6 17.067 42.667 42.667 42.667zM170.667 128v384h170.667v-426.667h-128c-25.6 0-42.667 17.067-42.667 42.667zM810.667 85.334h-384v426.667h426.667v-384c0-25.6-17.067-42.667-42.667-42.667z" />
122
+ <glyph unicode="&#xe970;" glyph-name="life-buoy" d="M844.8 93.867c85.333 85.333 136.533 200.533 136.533 332.8 0 128-51.2 247.467-136.533 332.8 0 0 0 0 0 0s0 0 0 0c-85.333 85.333-204.8 136.533-332.8 136.533s-247.467-51.2-332.8-136.533c0 0 0 0 0 0s0 0 0 0c-85.333-85.333-136.533-204.8-136.533-332.8s51.2-247.467 136.533-332.8c0 0 0 0 0 0s0 0 0 0c85.333-85.333 200.533-136.533 332.8-136.533 128 0 247.467 51.2 332.8 136.533 0 0 0 0 0 0s0 0 0 0zM810.667 187.734l-123.733 123.733c25.6 29.867 38.4 72.533 38.4 115.2s-12.8 85.333-34.133 119.467l119.467 119.467c51.2-64 85.333-149.333 85.333-238.933s-29.867-174.933-85.333-238.933zM384 426.667c0 72.533 55.467 128 128 128s128-55.467 128-128-55.467-128-128-128-128 55.467-128 128zM750.933 725.334l-123.733-123.733c-29.867 25.6-72.533 38.4-115.2 38.4s-85.333-12.8-119.467-34.133l-119.467 119.467c64 55.467 149.333 85.333 238.933 85.333s174.933-29.867 238.933-85.333zM213.333 665.6l123.733-123.733c-25.6-29.867-38.4-72.533-38.4-115.2s12.8-85.333 34.133-119.467l-119.467-119.467c-51.2 64-85.333 149.333-85.333 238.933s29.867 174.933 85.333 238.933zM273.067 128l123.733 123.733c29.867-25.6 72.533-38.4 115.2-38.4s85.333 12.8 119.467 34.133l123.733-123.733c-64-51.2-149.333-85.333-238.933-85.333-93.867 4.267-179.2 34.133-243.2 89.6z" />
123
+ <glyph unicode="&#xe971;" glyph-name="link" d="M900.267 819.2c-98.133 98.133-256 98.133-354.133 0l-76.8-72.533c-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0l72.533 72.533c68.267 64 170.667 64 238.933 0s68.267-174.933 4.267-238.933l-128-128c-4.267-4.267-12.8-12.8-17.067-17.067-76.8-55.467-183.467-42.667-238.933 34.133-12.8 17.067-42.667 21.333-59.733 8.533s-21.333-42.667-8.533-59.733c51.2-68.267 128-102.4 204.8-102.4 51.2 0 106.667 17.067 153.6 51.2 8.533 8.533 17.067 17.067 29.867 25.6l128 128c98.133 98.133 93.867 264.533-8.533 358.4zM490.667 166.4l-72.533-72.533c-68.267-64-170.667-64-238.933 0s-68.267 174.933-4.267 238.933l128 128c4.267 4.267 12.8 12.8 17.067 17.067 38.4 25.6 81.067 38.4 128 34.133 46.933-8.533 85.333-29.867 110.933-68.267 12.8-17.067 42.667-21.333 59.733-8.533s21.333 42.667 8.533 59.733c-42.667 55.467-102.4 89.6-166.4 98.133-64 12.8-132.267-4.267-187.733-46.933-8.533-8.533-17.067-17.067-25.6-25.6l-128-128c-98.133-102.4-93.867-264.533 4.267-362.667 51.2-46.933 115.2-72.533 179.2-72.533s128 25.6 179.2 72.533l72.533 72.533c17.067 17.067 17.067 42.667 0 59.733s-46.933 21.333-64 4.267z" />
124
+ <glyph unicode="&#xe972;" glyph-name="link-2" d="M768 682.667h-128c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h128c93.867 0 170.667-76.8 170.667-170.667s-76.8-170.667-170.667-170.667h-128c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h128c140.8 0 256 115.2 256 256s-115.2 256-256 256zM384 256h-128c-93.867 0-170.667 76.8-170.667 170.667s76.8 170.667 170.667 170.667h128c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-128c-140.8 0-256-115.2-256-256s115.2-256 256-256h128c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM298.667 426.667c0-25.6 17.067-42.667 42.667-42.667h341.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-341.333c-25.6 0-42.667-17.067-42.667-42.667z" />
125
+ <glyph unicode="&#xe973;" glyph-name="list" d="M341.333 640h554.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-554.667c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667zM896 469.334h-554.667c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h554.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM896 213.334h-554.667c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h554.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM98.133 712.534c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 17.067 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0zM98.133 456.534c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 17.067 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0zM98.133 200.534c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 17.067 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0z" />
126
+ <glyph unicode="&#xe974;" glyph-name="loader" d="M512 896c-25.6 0-42.667-17.067-42.667-42.667v-170.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v170.667c0 25.6-17.067 42.667-42.667 42.667zM512 213.334c-25.6 0-42.667-17.067-42.667-42.667v-170.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v170.667c0 25.6-17.067 42.667-42.667 42.667zM238.933 759.467c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l119.467-119.467c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-119.467 119.467zM721.067 277.334c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l119.467-119.467c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-119.467 119.467zM298.667 426.667c0 25.6-17.067 42.667-42.667 42.667h-170.667c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h170.667c25.6 0 42.667 17.067 42.667 42.667zM938.667 469.334h-170.667c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h170.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM302.933 277.334l-119.467-119.467c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l119.467 119.467c17.067 17.067 17.067 42.667 0 59.733s-46.933 17.067-59.733 0zM691.2 563.2c12.8 0 21.333 4.267 29.867 12.8l119.467 119.467c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-119.467-119.467c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8z" />
127
+ <glyph unicode="&#xe975;" glyph-name="lock" d="M810.667 512h-42.667v128c0 140.8-115.2 256-256 256s-256-115.2-256-256v-128h-42.667c-72.533 0-128-55.467-128-128v-298.667c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v298.667c0 72.533-55.467 128-128 128zM341.333 640c0 93.867 76.8 170.667 170.667 170.667s170.667-76.8 170.667-170.667v-128h-341.333v128zM853.333 85.334c0-25.6-17.067-42.667-42.667-42.667h-597.333c-25.6 0-42.667 17.067-42.667 42.667v298.667c0 25.6 17.067 42.667 42.667 42.667h597.333c25.6 0 42.667-17.067 42.667-42.667v-298.667z" />
128
+ <glyph unicode="&#xe976;" glyph-name="log-in" d="M810.667 896h-213.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h213.333c25.6 0 42.667-17.067 42.667-42.667v-682.667c0-25.6-17.067-42.667-42.667-42.667h-213.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h213.333c72.533 0 128 55.467 128 128v682.667c0 72.533-55.467 128-128 128zM678.4 409.6c4.267 8.533 4.267 21.333 0 34.133-4.267 4.267-4.267 8.533-8.533 12.8l-170.667 170.667c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l98.133-98.133h-409.6c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h409.6l-98.133-98.133c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l170.667 170.667c4.267 4.267 8.533 8.533 8.533 12.8z" />
129
+ <glyph unicode="&#xe977;" glyph-name="log-out" d="M426.667 42.667h-213.333c-25.6 0-42.667 17.067-42.667 42.667v682.667c0 25.6 17.067 42.667 42.667 42.667h213.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-213.333c-72.533 0-128-55.467-128-128v-682.667c0-72.533 55.467-128 128-128h213.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM934.4 409.6c4.267 8.533 4.267 21.333 0 34.133-4.267 4.267-4.267 8.533-8.533 12.8l-170.667 170.667c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l98.133-98.133h-409.6c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h409.6l-98.133-98.133c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l170.667 170.667c4.267 4.267 8.533 8.533 8.533 12.8z" />
130
+ <glyph unicode="&#xe978;" glyph-name="mail" d="M853.333 810.667h-682.667c-72.533 0-128-55.467-128-128v-512c0-72.533 55.467-128 128-128h682.667c72.533 0 128 55.467 128 128v512c0 72.533-55.467 128-128 128zM170.667 725.334h682.667c17.067 0 29.867-8.533 38.4-25.6l-379.733-264.533-379.733 264.533c8.533 17.067 21.333 25.6 38.4 25.6zM853.333 128h-682.667c-25.6 0-42.667 17.067-42.667 42.667v430.933l358.4-251.733c8.533-4.267 17.067-8.533 25.6-8.533s17.067 4.267 25.6 8.533l358.4 251.733v-430.933c0-25.6-17.067-42.667-42.667-42.667z" />
131
+ <glyph unicode="&#xe979;" glyph-name="map" d="M1002.667 891.734c-12.8 8.533-29.867 8.533-42.667 0l-277.333-162.133-324.267 162.133c0 0 0 0 0 0s0 0-4.267 0c-4.267 4.267-8.533 4.267-12.8 4.267 0 0 0 0 0 0s0 0 0 0c-4.267 0-8.533 0-17.067-4.267 0 0 0 0-4.267 0 0 0-4.267 0-4.267 0l-298.667-170.667c-8.533-8.533-17.067-21.333-17.067-38.4v-682.667c0-17.067 8.533-29.867 21.333-38.4s29.867-8.533 42.667 0l277.333 162.133 320-162.133c0 0 0 0 0 0 8.533-4.267 12.8-4.267 21.333-4.267 4.267 0 8.533 0 12.8 4.267 0 0 4.267 0 4.267 0s0 0 4.267 0l298.667 170.667c12.8 8.533 21.333 21.333 21.333 38.4v682.667c0 17.067-8.533 29.867-21.333 38.4zM384 785.067l256-128v-588.8l-256 128v588.8zM85.333 657.067l213.333 123.733v-584.533l-213.333-123.733v584.533zM938.667 196.267l-213.333-123.733v584.533l213.333 123.733v-584.533z" />
132
+ <glyph unicode="&#xe97a;" glyph-name="map-pin" d="M512 938.667c-234.667 0-426.667-192-426.667-426.667 0-315.733 388.267-580.267 401.067-588.8 8.533-4.267 17.067-8.533 25.6-8.533s17.067 4.267 25.6 8.533c12.8 8.533 401.067 273.067 401.067 588.8 0 234.667-192 426.667-426.667 426.667zM512 8.534c-81.067 59.733-341.333 273.067-341.333 503.467 0 187.733 153.6 341.333 341.333 341.333s341.333-153.6 341.333-341.333c0-230.4-260.267-443.733-341.333-503.467zM512 682.667c-93.867 0-170.667-76.8-170.667-170.667s76.8-170.667 170.667-170.667c93.867 0 170.667 76.8 170.667 170.667s-76.8 170.667-170.667 170.667zM512 426.667c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333z" />
133
+ <glyph unicode="&#xe97b;" glyph-name="maximize" d="M341.333 85.334h-128c-25.6 0-42.667 17.067-42.667 42.667v128c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-128c0-72.533 55.467-128 128-128h128c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM341.333 853.334h-128c-72.533 0-128-55.467-128-128v-128c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v128c0 25.6 17.067 42.667 42.667 42.667h128c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM810.667 853.334h-128c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h128c25.6 0 42.667-17.067 42.667-42.667v-128c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v128c0 72.533-55.467 128-128 128zM896 298.667c-25.6 0-42.667-17.067-42.667-42.667v-128c0-25.6-17.067-42.667-42.667-42.667h-128c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h128c72.533 0 128 55.467 128 128v128c0 25.6-17.067 42.667-42.667 42.667z" />
134
+ <glyph unicode="&#xe97c;" glyph-name="maximize-2" d="M934.4 827.734c-4.267 8.533-12.8 17.067-21.333 21.333-4.267 4.267-12.8 4.267-17.067 4.267h-256c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h153.6l-226.133-226.133c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l226.133 226.133v-153.6c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v256c0 4.267 0 12.8-4.267 17.067zM396.8 371.2l-226.133-226.133v153.6c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-256c0-4.267 0-12.8 4.267-17.067 4.267-8.533 12.8-17.067 21.333-21.333 4.267-4.267 12.8-4.267 17.067-4.267h256c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-153.6l226.133 226.133c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0z" />
135
+ <glyph unicode="&#xe97d;" glyph-name="menu" d="M896 469.334h-768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h768c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM128 640h768c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667zM896 213.334h-768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h768c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
136
+ <glyph unicode="&#xe97e;" glyph-name="message-circle" d="M938.667 473.6c-12.8 204.8-174.933 371.2-384 379.733h-21.333c0 0 0 0 0 0-64 0-123.733-12.8-179.2-42.667-140.8-68.267-226.133-209.067-226.133-362.667 0-55.467 12.8-115.2 34.133-166.4l-76.8-226.133c-4.267-17.067 0-34.133 8.533-42.667 12.8-8.533 21.333-12.8 34.133-12.8 4.267 0 8.533 0 12.8 4.267l226.133 76.8c51.2-21.333 106.667-34.133 166.4-34.133 153.6 0 294.4 85.333 362.667 221.867 29.867 55.467 42.667 119.467 42.667 183.467v21.333zM853.333 448c0 0 0 0 0 0 0-51.2-12.8-98.133-34.133-145.067-55.467-110.933-162.133-174.933-285.867-174.933-51.2 0-98.133 12.8-140.8 34.133-8.533 4.267-21.333 4.267-34.133 4.267l-162.133-55.467 55.467 162.133c4.267 12.8 4.267 21.333-4.267 34.133-21.333 42.667-34.133 93.867-34.133 140.8 0 123.733 68.267 230.4 179.2 285.867 42.667 21.333 93.867 34.133 140.8 34.133 0 0 0 0 0 0h17.067c162.133-8.533 290.133-136.533 302.933-298.667v-21.333z" />
137
+ <glyph unicode="&#xe97f;" glyph-name="message-square" d="M810.667 853.334h-597.333c-72.533 0-128-55.467-128-128v-682.667c0-17.067 8.533-34.133 25.6-38.4 4.267-4.267 12.8-4.267 17.067-4.267 12.8 0 21.333 4.267 29.867 12.8l157.867 157.867h494.933c72.533 0 128 55.467 128 128v426.667c0 72.533-55.467 128-128 128zM853.333 298.667c0-25.6-17.067-42.667-42.667-42.667h-512c-12.8 0-21.333-4.267-29.867-12.8l-98.133-98.133v580.267c0 25.6 17.067 42.667 42.667 42.667h597.333c25.6 0 42.667-17.067 42.667-42.667v-426.667z" />
138
+ <glyph unicode="&#xe980;" glyph-name="mic" d="M512 256c93.867 0 170.667 76.8 170.667 170.667v341.333c0 93.867-76.8 170.667-170.667 170.667s-170.667-76.8-170.667-170.667v-341.333c0-93.867 76.8-170.667 170.667-170.667zM426.667 768c0 46.933 38.4 85.333 85.333 85.333s85.333-38.4 85.333-85.333v-341.333c0-46.933-38.4-85.333-85.333-85.333s-85.333 38.4-85.333 85.333v341.333zM810.667 554.667c-25.6 0-42.667-17.067-42.667-42.667v-85.333c0-140.8-115.2-256-256-256s-256 115.2-256 256v85.333c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-85.333c0-174.933 132.267-315.733 298.667-337.067v-89.6h-128c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h341.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-128v89.6c166.4 21.333 298.667 166.4 298.667 337.067v85.333c0 25.6-17.067 42.667-42.667 42.667z" />
139
+ <glyph unicode="&#xe981;" glyph-name="mic-off" d="M1011.2-12.8l-251.733 251.733c0 4.267-4.267 4.267-4.267 8.533 0 0-4.267 4.267-4.267 4.267l-337.067 332.8c0 0 0 0 0 0l-341.333 341.333c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l328.533-328.533v-110.933c0-46.933 17.067-89.6 51.2-119.467 29.867-34.133 72.533-51.2 119.467-51.2 0 0 0 0 0 0 29.867 0 59.733 8.533 85.333 25.6l64-64c-42.667-29.867-89.6-46.933-140.8-46.933-4.267 0-4.267 0-8.533 0s-4.267 0-8.533 0c-64 0-123.733 25.6-170.667 72.533-51.2 46.933-76.8 115.2-76.8 183.467v85.333c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-85.333c0-93.867 38.4-183.467 102.4-247.467 55.467-55.467 123.733-85.333 196.267-93.867v-85.333h-128c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h341.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-128v85.333c59.733 8.533 119.467 29.867 166.4 68.267l230.4-230.4c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 21.333 17.067 46.933 0 64zM512 341.334c0 0 0 0 0 0-21.333 0-42.667 8.533-59.733 25.6s-25.6 38.4-25.6 59.733v25.6l106.667-106.667c-8.533-4.267-12.8-4.267-21.333-4.267zM379.733 750.934c21.333-4.267 42.667 12.8 46.933 34.133 8.533 38.4 42.667 68.267 85.333 68.267 0 0 0 0 0 0 21.333 0 42.667-8.533 59.733-25.6s25.6-38.4 25.6-59.733v-226.133c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v226.133c0 46.933-17.067 89.6-51.2 119.467-29.867 34.133-72.533 51.2-119.467 51.2 0 0 0 0 0 0-81.067 0-149.333-55.467-166.4-136.533-4.267-21.333 8.533-46.933 34.133-51.2zM797.867 332.8c4.267 0 4.267 0 8.533 0 21.333 0 38.4 12.8 42.667 34.133s4.267 38.4 4.267 59.733v85.333c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-85.333c0-17.067 0-29.867-4.267-46.933-4.267-21.333 12.8-42.667 34.133-46.933z" />
140
+ <glyph unicode="&#xe982;" glyph-name="minimize" d="M768 554.667h128c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-128c-25.6 0-42.667 17.067-42.667 42.667v128c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-128c0-72.533 55.467-128 128-128zM256 298.667h-128c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h128c25.6 0 42.667-17.067 42.667-42.667v-128c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v128c0 72.533-55.467 128-128 128zM896 298.667h-128c-72.533 0-128-55.467-128-128v-128c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v128c0 25.6 17.067 42.667 42.667 42.667h128c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM341.333 853.334c-25.6 0-42.667-17.067-42.667-42.667v-128c0-25.6-17.067-42.667-42.667-42.667h-128c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h128c72.533 0 128 55.467 128 128v128c0 25.6-17.067 42.667-42.667 42.667z" />
141
+ <glyph unicode="&#xe983;" glyph-name="minimize-2" d="M443.733 379.734c-4.267 4.267-12.8 4.267-17.067 4.267h-256c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h153.6l-226.133-226.133c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l226.133 226.133v-153.6c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v256c0 4.267 0 12.8-4.267 17.067-4.267 8.533-12.8 17.067-21.333 21.333zM925.867 840.534c-17.067 17.067-42.667 17.067-59.733 0l-226.133-226.133v153.6c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-256c0-4.267 0-12.8 4.267-17.067 4.267-8.533 12.8-17.067 21.333-21.333 4.267-4.267 12.8-4.267 17.067-4.267h256c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-153.6l226.133 226.133c17.067 17.067 17.067 42.667 0 59.733z" />
142
+ <glyph unicode="&#xe984;" glyph-name="minus" d="M810.667 469.334h-597.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h597.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
143
+ <glyph unicode="&#xe985;" glyph-name="minus-circle" d="M512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM512 42.667c-213.333 0-384 170.667-384 384s170.667 384 384 384c213.333 0 384-170.667 384-384s-170.667-384-384-384zM682.667 469.334h-341.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h341.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
144
+ <glyph unicode="&#xe986;" glyph-name="minus-square" d="M810.667 853.334h-597.333c-72.533 0-128-55.467-128-128v-597.333c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v597.333c0 72.533-55.467 128-128 128zM853.333 128c0-25.6-17.067-42.667-42.667-42.667h-597.333c-25.6 0-42.667 17.067-42.667 42.667v597.333c0 25.6 17.067 42.667 42.667 42.667h597.333c25.6 0 42.667-17.067 42.667-42.667v-597.333zM682.667 469.334h-341.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h341.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
145
+ <glyph unicode="&#xe987;" glyph-name="monitor" d="M853.333 853.334h-682.667c-72.533 0-128-55.467-128-128v-426.667c0-72.533 55.467-128 128-128h298.667v-85.333h-128c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h341.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-128v85.333h298.667c72.533 0 128 55.467 128 128v426.667c0 72.533-55.467 128-128 128zM896 298.667c0-25.6-17.067-42.667-42.667-42.667h-682.667c-25.6 0-42.667 17.067-42.667 42.667v426.667c0 25.6 17.067 42.667 42.667 42.667h682.667c25.6 0 42.667-17.067 42.667-42.667v-426.667z" />
146
+ <glyph unicode="&#xe988;" glyph-name="moon" d="M917.333 430.934c-12.8 8.533-34.133 8.533-46.933-4.267-89.6-68.267-213.333-68.267-302.933 0-115.2 85.333-140.8 243.2-55.467 358.4 8.533 12.8 12.8 29.867 4.267 46.933-8.533 12.8-25.6 21.333-42.667 21.333-204.8-17.067-366.933-179.2-384-384-21.333-234.667 149.333-443.733 384-465.067 12.8 0 25.6 0 38.4 0 98.133 0 196.267 34.133 273.067 98.133 89.6 72.533 140.8 174.933 153.6 290.133 0 12.8-8.533 29.867-21.333 38.4zM733.867 166.4c-68.267-59.733-157.867-85.333-247.467-76.8-187.733 17.067-324.267 183.467-307.2 371.2 12.8 132.267 102.4 247.467 221.867 290.133-51.2-136.533-4.267-298.667 119.467-392.533 93.867-68.267 213.333-85.333 320-46.933-25.6-55.467-59.733-106.667-106.667-145.067z" />
147
+ <glyph unicode="&#xe989;" glyph-name="more-horizontal" d="M512 554.667c-72.533 0-128-55.467-128-128s55.467-128 128-128 128 55.467 128 128-55.467 128-128 128zM512 384c-25.6 0-42.667 17.067-42.667 42.667s17.067 42.667 42.667 42.667 42.667-17.067 42.667-42.667-17.067-42.667-42.667-42.667zM853.333 554.667c-72.533 0-128-55.467-128-128s55.467-128 128-128 128 55.467 128 128-55.467 128-128 128zM853.333 384c-25.6 0-42.667 17.067-42.667 42.667s17.067 42.667 42.667 42.667 42.667-17.067 42.667-42.667-17.067-42.667-42.667-42.667zM170.667 554.667c-72.533 0-128-55.467-128-128s55.467-128 128-128 128 55.467 128 128-55.467 128-128 128zM170.667 384c-25.6 0-42.667 17.067-42.667 42.667s17.067 42.667 42.667 42.667 42.667-17.067 42.667-42.667-17.067-42.667-42.667-42.667z" />
148
+ <glyph unicode="&#xe98a;" glyph-name="more-vertical" d="M512 554.667c-72.533 0-128-55.467-128-128s55.467-128 128-128 128 55.467 128 128-55.467 128-128 128zM512 384c-25.6 0-42.667 17.067-42.667 42.667s17.067 42.667 42.667 42.667 42.667-17.067 42.667-42.667-17.067-42.667-42.667-42.667zM512 640c72.533 0 128 55.467 128 128s-55.467 128-128 128-128-55.467-128-128 55.467-128 128-128zM512 810.667c25.6 0 42.667-17.067 42.667-42.667s-17.067-42.667-42.667-42.667-42.667 17.067-42.667 42.667 17.067 42.667 42.667 42.667zM512 213.334c-72.533 0-128-55.467-128-128s55.467-128 128-128 128 55.467 128 128-55.467 128-128 128zM512 42.667c-25.6 0-42.667 17.067-42.667 42.667s17.067 42.667 42.667 42.667 42.667-17.067 42.667-42.667-17.067-42.667-42.667-42.667z" />
149
+ <glyph unicode="&#xe98b;" glyph-name="move" d="M977.067 409.6c4.267 8.533 4.267 21.333 0 34.133-4.267 4.267-4.267 8.533-8.533 12.8l-128 128c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l55.467-55.467h-281.6v281.6l55.467-55.467c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-128 128c-4.267 4.267-8.533 8.533-12.8 8.533-8.533 4.267-21.333 4.267-34.133 0-4.267-4.267-8.533-4.267-12.8-8.533l-128-128c-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0l55.467 55.467v-281.6h-281.6l55.467 55.467c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-128-128c-4.267-4.267-8.533-8.533-8.533-12.8-4.267-8.533-4.267-21.333 0-34.133 4.267-4.267 4.267-8.533 8.533-12.8l128-128c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-55.467 55.467h281.6v-281.6l-55.467 55.467c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l128-128c4.267-4.267 8.533-8.533 12.8-8.533 4.267-4.267 12.8-4.267 17.067-4.267s12.8 0 17.067 4.267c4.267 4.267 8.533 4.267 12.8 8.533l128 128c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-55.467-55.467v281.6h281.6l-55.467-55.467c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l128 128c4.267 4.267 8.533 8.533 8.533 12.8z" />
150
+ <glyph unicode="&#xe98c;" glyph-name="music" d="M921.6 844.8c-8.533 8.533-21.333 8.533-34.133 8.533l-512-85.333c-17.067-4.267-34.133-21.333-34.133-42.667v-469.333h-128c-72.533 0-128-55.467-128-128s55.467-128 128-128h85.333c72.533 0 128 55.467 128 128v563.2l426.667 72.533v-422.4h-128c-72.533 0-128-55.467-128-128s55.467-128 128-128h85.333c72.533 0 128 55.467 128 128v597.333c0 12.8-4.267 25.6-17.067 34.133zM341.333 128c0-25.6-17.067-42.667-42.667-42.667h-85.333c-25.6 0-42.667 17.067-42.667 42.667s17.067 42.667 42.667 42.667h128v-42.667zM853.333 213.334c0-25.6-17.067-42.667-42.667-42.667h-85.333c-25.6 0-42.667 17.067-42.667 42.667s17.067 42.667 42.667 42.667h128v-42.667z" />
151
+ <glyph unicode="&#xe98d;" glyph-name="navigation" d="M968.533 883.2c-12.8 12.8-29.867 17.067-46.933 8.533l-810.667-384c-17.067-8.533-25.6-25.6-25.6-42.667s12.8-34.133 34.133-38.4l315.733-81.067 81.067-315.733c4.267-17.067 21.333-29.867 38.4-34.133 0 0 4.267 0 4.267 0 17.067 0 29.867 8.533 38.4 25.6l384 810.667c4.267 21.333 0 38.4-12.8 51.2zM567.467 170.667l-55.467 221.867c-4.267 17.067-17.067 25.6-29.867 29.867l-226.133 59.733 593.067 281.6-281.6-593.067z" />
152
+ <glyph unicode="&#xe98e;" glyph-name="navigation-2" d="M849.067 55.467l-298.667 810.667c-4.267 17.067-21.333 29.867-38.4 29.867s-34.133-12.8-38.4-29.867l-298.667-810.667c-4.267-17.067 0-34.133 12.8-46.933s34.133-12.8 46.933-4.267l277.333 157.867 277.333-157.867c8.533-4.267 12.8-4.267 21.333-4.267s21.333 4.267 25.6 8.533c17.067 12.8 21.333 34.133 12.8 46.933zM533.333 251.734c-8.533 4.267-12.8 4.267-21.333 4.267s-12.8 0-21.333-4.267l-196.267-110.933 217.6 588.8 217.6-593.067-196.267 115.2z" />
153
+ <glyph unicode="&#xe98f;" glyph-name="octagon" d="M968.533 631.467l-251.733 251.733c-4.267 8.533-17.067 12.8-29.867 12.8h-349.867c-12.8 0-25.6-4.267-29.867-12.8l-251.733-251.733c-8.533-4.267-12.8-17.067-12.8-29.867v-354.133c0-12.8 4.267-21.333 12.8-29.867l251.733-251.733c4.267-4.267 17.067-8.533 29.867-8.533h354.133c12.8 0 21.333 4.267 29.867 12.8l251.733 251.733c8.533 8.533 12.8 17.067 12.8 29.867v349.867c-4.267 12.8-8.533 25.6-17.067 29.867zM896 268.8l-226.133-226.133h-315.733l-226.133 226.133v315.733l226.133 226.133h320l221.867-226.133v-315.733z" />
154
+ <glyph unicode="&#xe990;" glyph-name="package" d="M908.8 742.4l-341.333 170.667c0 0 0 0 0 0-34.133 17.067-76.8 17.067-115.2 0l-341.333-170.667c-42.667-21.333-68.267-64-68.267-110.933v-405.333c0-46.933 25.6-93.867 72.533-115.2l341.333-170.667c17.067-8.533 38.4-12.8 55.467-12.8 21.333 0 38.4 4.267 55.467 12.8l341.333 170.667c42.667 21.333 72.533 64 72.533 115.2v405.333c0 46.933-25.6 89.6-72.533 110.933zM494.933 840.534c4.267 4.267 12.8 4.267 17.067 4.267 8.533 0 12.8 0 17.067-4.267l315.733-157.867-119.467-59.733-332.8 166.4 102.4 51.2zM512 516.267l-332.8 166.4 119.467 59.733 332.8-166.4-119.467-59.733zM149.333 183.467c-12.8 8.533-21.333 25.6-21.333 38.4v392.533l341.333-170.667v-418.133l-320 157.867zM870.4 183.467l-315.733-157.867v418.133l341.333 170.667v-392.533c0-17.067-8.533-29.867-25.6-38.4z" />
155
+ <glyph unicode="&#xe991;" glyph-name="paperclip" d="M942.933 499.2c-17.067 17.067-42.667 17.067-59.733 0l-392.533-392.533c-85.333-85.333-217.6-85.333-302.933 0s-85.333 217.6 0 302.933l392.533 392.533c46.933 46.933 132.267 46.933 179.2 0 51.2-51.2 51.2-132.267 0-179.2l-392.533-392.533c-17.067-17.067-42.667-17.067-59.733 0-4.267 4.267-8.533 12.8-8.533 25.6s4.267 21.333 12.8 29.867l362.667 362.667c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-362.667-362.667c-25.6-21.333-38.4-55.467-38.4-89.6s12.8-68.267 38.4-89.6c51.2-51.2 132.267-51.2 179.2 0l392.533 392.533c85.333 85.333 85.333 217.6 0 302.933-38.4 38.4-93.867 64-149.333 64s-110.933-21.333-149.333-64l-392.533-392.533c-115.2-115.2-115.2-307.2 0-422.4 59.733-59.733 136.533-85.333 213.333-85.333s153.6 29.867 213.333 85.333l392.533 392.533c8.533 12.8 8.533 42.667-8.533 59.733z" />
156
+ <glyph unicode="&#xe992;" glyph-name="pause" d="M426.667 810.667h-170.667c-25.6 0-42.667-17.067-42.667-42.667v-682.667c0-25.6 17.067-42.667 42.667-42.667h170.667c25.6 0 42.667 17.067 42.667 42.667v682.667c0 25.6-17.067 42.667-42.667 42.667zM384 128h-85.333v597.333h85.333v-597.333zM768 810.667h-170.667c-25.6 0-42.667-17.067-42.667-42.667v-682.667c0-25.6 17.067-42.667 42.667-42.667h170.667c25.6 0 42.667 17.067 42.667 42.667v682.667c0 25.6-17.067 42.667-42.667 42.667zM725.333 128h-85.333v597.333h85.333v-597.333z" />
157
+ <glyph unicode="&#xe993;" glyph-name="pause-circle" d="M512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM512 42.667c-213.333 0-384 170.667-384 384s170.667 384 384 384c213.333 0 384-170.667 384-384s-170.667-384-384-384zM426.667 597.334c-25.6 0-42.667-17.067-42.667-42.667v-256c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v256c0 25.6-17.067 42.667-42.667 42.667zM597.333 597.334c-25.6 0-42.667-17.067-42.667-42.667v-256c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v256c0 25.6-17.067 42.667-42.667 42.667z" />
158
+ <glyph unicode="&#xe994;" glyph-name="percent" d="M840.533 755.2c-17.067 17.067-42.667 17.067-59.733 0l-597.333-597.333c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l597.333 597.333c17.067 17.067 17.067 42.667 0 59.733zM277.333 512c81.067 0 149.333 68.267 149.333 149.333s-68.267 149.333-149.333 149.333-149.333-68.267-149.333-149.333 68.267-149.333 149.333-149.333zM277.333 725.334c34.133 0 64-29.867 64-64s-29.867-64-64-64-64 29.867-64 64 29.867 64 64 64zM746.667 341.334c-81.067 0-149.333-68.267-149.333-149.333s68.267-149.333 149.333-149.333 149.333 68.267 149.333 149.333-68.267 149.333-149.333 149.333zM746.667 128c-34.133 0-64 29.867-64 64s29.867 64 64 64 64-29.867 64-64-29.867-64-64-64z" />
159
+ <glyph unicode="&#xe995;" glyph-name="phone" d="M870.4 345.6c-38.4 4.267-76.8 12.8-110.933 25.6-46.933 17.067-98.133 4.267-136.533-29.867l-29.867-29.867c-76.8 51.2-145.067 115.2-196.267 196.267l29.867 29.867c34.133 34.133 46.933 89.6 29.867 136.533-12.8 34.133-21.333 72.533-25.6 110.933-8.533 64-64 110.933-128 110.933 0 0 0 0 0 0h-128c-4.267 0-8.533 0-12.8 0-34.133-4.267-64-21.333-85.333-46.933s-29.867-59.733-29.867-93.867c12.8-136.533 64-273.067 136.533-388.267 68.267-106.667 162.133-200.533 268.8-268.8 115.2-76.8 251.733-123.733 388.267-136.533 4.267 0 8.533 0 12.8 0 0 0 0 0 0 0 34.133 0 68.267 12.8 89.6 38.4s38.4 55.467 38.4 89.6v128c0 64-46.933 119.467-110.933 128zM896 217.6v-128c0-12.8-4.267-21.333-12.8-29.867s-17.067-12.8-34.133-12.8c-123.733 12.8-243.2 55.467-349.867 123.733-98.133 59.733-179.2 145.067-243.2 243.2-68.267 106.667-110.933 226.133-123.733 349.867 0 12.8 4.267 21.333 8.533 29.867 8.533 8.533 21.333 17.067 34.133 17.067h128c0 0 0 0 0 0 21.333 0 38.4-17.067 42.667-38.4 4.267-42.667 17.067-89.6 34.133-128 4.267-17.067 0-34.133-8.533-46.933l-55.467-51.2c-12.8-12.8-17.067-34.133-8.533-51.2 64-115.2 157.867-209.067 273.067-273.067 17.067-8.533 38.4-8.533 51.2 8.533l55.467 55.467c12.8 12.8 29.867 17.067 46.933 8.533 42.667-17.067 85.333-25.6 128-34.133 17.067-4.267 34.133-21.333 34.133-42.667 0 0 0 0 0 0z" />
160
+ <glyph unicode="&#xe996;" glyph-name="phone-call" d="M870.4 345.6c-38.4 4.267-76.8 12.8-110.933 25.6-46.933 17.067-98.133 4.267-136.533-29.867l-29.867-29.867c-76.8 51.2-145.067 115.2-196.267 196.267l29.867 29.867c34.133 34.133 46.933 89.6 29.867 136.533-12.8 34.133-21.333 72.533-25.6 110.933-8.533 64-64 110.933-128 110.933 0 0 0 0 0 0h-128c-4.267 0-8.533 0-12.8 0-34.133-4.267-64-21.333-85.333-46.933s-29.867-59.733-29.867-93.867c12.8-136.533 64-273.067 136.533-388.267 68.267-106.667 162.133-200.533 268.8-268.8 115.2-76.8 251.733-123.733 388.267-136.533 4.267 0 8.533 0 12.8 0 0 0 0 0 0 0 34.133 0 68.267 12.8 89.6 38.4s38.4 55.467 38.4 89.6v128c0 64-46.933 119.467-110.933 128zM896 217.6v-128c0-12.8-4.267-21.333-12.8-29.867s-17.067-12.8-34.133-12.8c-123.733 12.8-243.2 55.467-349.867 123.733-98.133 59.733-179.2 145.067-243.2 243.2-68.267 106.667-110.933 226.133-123.733 349.867 0 12.8 4.267 21.333 8.533 29.867 8.533 8.533 21.333 17.067 34.133 17.067h128c0 0 0 0 0 0 21.333 0 38.4-17.067 42.667-38.4 4.267-42.667 17.067-89.6 34.133-128 4.267-17.067 0-34.133-8.533-46.933l-55.467-51.2c-12.8-12.8-17.067-34.133-8.533-51.2 64-115.2 157.867-209.067 273.067-273.067 17.067-8.533 38.4-8.533 51.2 8.533l55.467 55.467c12.8 12.8 29.867 17.067 46.933 8.533 42.667-17.067 85.333-25.6 128-34.133 17.067-4.267 34.133-21.333 34.133-42.667 0 0 0 0 0 0zM768 550.4c4.267-21.333 21.333-34.133 42.667-34.133 4.267 0 4.267 0 8.533 0 21.333 4.267 38.4 25.6 34.133 51.2-21.333 102.4-98.133 183.467-200.533 200.533-21.333 4.267-46.933-8.533-51.2-34.133s8.533-46.933 34.133-51.2c68.267-12.8 119.467-64 132.267-132.267zM648.533 938.667c-21.333 4.267-42.667-12.8-46.933-38.4-4.267-21.333 12.8-42.667 38.4-46.933 157.867-17.067 281.6-140.8 302.933-302.933 4.267-21.333 21.333-38.4 42.667-38.4 0 0 4.267 0 4.267 0 21.333 4.267 38.4 25.6 38.4 46.933-25.6 200.533-183.467 358.4-379.733 379.733z" />
161
+ <glyph unicode="&#xe997;" glyph-name="phone-forwarded" d="M1019.733 708.267c4.267 8.533 4.267 21.333 0 34.133-4.267 4.267-4.267 8.533-8.533 12.8l-170.667 170.667c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l98.133-98.133h-238.933c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h238.933l-98.133-98.133c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l170.667 170.667c4.267 4.267 8.533 8.533 8.533 12.8zM870.4 345.6c-38.4 4.267-76.8 12.8-110.933 25.6-46.933 17.067-98.133 4.267-136.533-29.867l-29.867-29.867c-76.8 51.2-145.067 115.2-196.267 196.267l29.867 29.867c34.133 34.133 46.933 89.6 29.867 136.533-12.8 34.133-21.333 72.533-25.6 110.933-8.533 64-64 110.933-128 110.933 0 0 0 0 0 0h-128c-4.267 0-8.533 0-12.8 0-34.133-4.267-64-21.333-85.333-46.933s-29.867-59.733-29.867-93.867c12.8-136.533 64-273.067 136.533-388.267 68.267-106.667 162.133-200.533 268.8-268.8 115.2-76.8 251.733-123.733 388.267-136.533 4.267 0 8.533 0 12.8 0 0 0 0 0 0 0 34.133 0 68.267 12.8 89.6 38.4s38.4 55.467 38.4 89.6v128c0 64-46.933 119.467-110.933 128zM896 217.6v-128c0-12.8-4.267-21.333-12.8-29.867s-17.067-12.8-34.133-12.8c-123.733 12.8-243.2 55.467-349.867 123.733-98.133 59.733-179.2 145.067-243.2 243.2-68.267 106.667-110.933 226.133-123.733 349.867 0 12.8 4.267 21.333 8.533 29.867 8.533 8.533 21.333 17.067 34.133 17.067h128c0 0 0 0 0 0 21.333 0 38.4-17.067 42.667-38.4 4.267-42.667 17.067-89.6 34.133-128 4.267-17.067 0-34.133-8.533-46.933l-55.467-51.2c-12.8-12.8-17.067-34.133-8.533-51.2 64-115.2 157.867-209.067 273.067-273.067 17.067-8.533 38.4-8.533 51.2 8.533l55.467 55.467c12.8 12.8 29.867 17.067 46.933 8.533 42.667-17.067 85.333-25.6 128-34.133 17.067-4.267 34.133-21.333 34.133-42.667 0 0 0 0 0 0z" />
162
+ <glyph unicode="&#xe998;" glyph-name="phone-incoming" d="M1011.2 925.867c-17.067 17.067-42.667 17.067-59.733 0l-226.133-226.133v153.6c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-256c0-4.267 0-12.8 4.267-17.067 4.267-8.533 12.8-17.067 21.333-21.333 4.267-4.267 12.8-4.267 17.067-4.267h256c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-153.6l226.133 226.133c17.067 17.067 17.067 42.667 0 59.733zM870.4 345.6c-38.4 4.267-76.8 12.8-110.933 25.6-46.933 17.067-98.133 4.267-136.533-29.867l-29.867-29.867c-76.8 51.2-145.067 115.2-196.267 196.267l29.867 29.867c34.133 34.133 46.933 89.6 29.867 136.533-12.8 34.133-21.333 72.533-25.6 110.933-8.533 64-64 110.933-128 110.933 0 0 0 0 0 0h-128c-4.267 0-8.533 0-12.8 0-34.133-4.267-64-21.333-85.333-46.933s-29.867-59.733-29.867-93.867c12.8-136.533 64-273.067 136.533-388.267 68.267-106.667 162.133-200.533 268.8-268.8 115.2-76.8 251.733-123.733 388.267-136.533 4.267 0 8.533 0 12.8 0 0 0 0 0 0 0 34.133 0 68.267 12.8 89.6 38.4s38.4 55.467 38.4 89.6v128c0 64-46.933 119.467-110.933 128zM896 217.6v-128c0-12.8-4.267-21.333-12.8-29.867s-17.067-12.8-34.133-12.8c-123.733 12.8-243.2 55.467-349.867 123.733-98.133 59.733-179.2 145.067-243.2 243.2-68.267 106.667-110.933 226.133-123.733 349.867 0 12.8 4.267 21.333 8.533 29.867 8.533 8.533 21.333 17.067 34.133 17.067h128c0 0 0 0 0 0 21.333 0 38.4-17.067 42.667-38.4 4.267-42.667 17.067-89.6 34.133-128 4.267-17.067 0-34.133-8.533-46.933l-55.467-51.2c-12.8-12.8-17.067-34.133-8.533-51.2 64-115.2 157.867-209.067 273.067-273.067 17.067-8.533 38.4-8.533 51.2 8.533l55.467 55.467c12.8 12.8 29.867 17.067 46.933 8.533 42.667-17.067 85.333-25.6 128-34.133 17.067-4.267 34.133-21.333 34.133-42.667 0 0 0 0 0 0z" />
163
+ <glyph unicode="&#xe999;" glyph-name="phone-missed" d="M913.067 768l98.133 98.133c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-98.133-98.133-98.133 98.133c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l98.133-98.133-98.133-98.133c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l98.133 98.133 98.133-98.133c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-98.133 98.133zM870.4 345.6c-38.4 4.267-76.8 12.8-110.933 25.6-46.933 17.067-98.133 4.267-136.533-29.867l-29.867-29.867c-76.8 51.2-145.067 115.2-196.267 196.267l29.867 29.867c34.133 34.133 46.933 89.6 29.867 136.533-12.8 34.133-21.333 72.533-25.6 110.933-8.533 64-64 110.933-128 110.933 0 0 0 0 0 0h-128c-4.267 0-8.533 0-12.8 0-34.133-4.267-64-21.333-85.333-46.933s-29.867-59.733-29.867-93.867c12.8-136.533 64-273.067 136.533-388.267 68.267-106.667 162.133-200.533 268.8-268.8 115.2-76.8 251.733-123.733 388.267-136.533 4.267 0 8.533 0 12.8 0 0 0 0 0 0 0 34.133 0 68.267 12.8 89.6 38.4s38.4 55.467 38.4 89.6v128c0 64-46.933 119.467-110.933 128zM896 217.6v-128c0-12.8-4.267-21.333-12.8-29.867s-17.067-12.8-34.133-12.8c-123.733 12.8-243.2 55.467-349.867 123.733-98.133 59.733-179.2 145.067-243.2 243.2-68.267 106.667-110.933 226.133-123.733 349.867 0 12.8 4.267 21.333 8.533 29.867 8.533 8.533 21.333 17.067 34.133 17.067h128c0 0 0 0 0 0 21.333 0 38.4-17.067 42.667-38.4 4.267-42.667 17.067-89.6 34.133-128 4.267-17.067 0-34.133-8.533-46.933l-55.467-51.2c-12.8-12.8-17.067-34.133-8.533-51.2 64-115.2 157.867-209.067 273.067-273.067 17.067-8.533 38.4-8.533 51.2 8.533l55.467 55.467c12.8 12.8 29.867 17.067 46.933 8.533 42.667-17.067 85.333-25.6 128-34.133 17.067-4.267 34.133-21.333 34.133-42.667 0 0 0 0 0 0z" />
164
+ <glyph unicode="&#xe99a;" glyph-name="phone-off" d="M221.867 349.867c8.533 0 17.067 4.267 21.333 8.533 21.333 12.8 25.6 38.4 12.8 59.733-68.267 102.4-110.933 221.867-123.733 345.6 0 12.8 4.267 21.333 8.533 29.867 8.533 8.533 21.333 17.067 34.133 17.067h128c21.333 0 38.4-17.067 42.667-38.4 4.267-42.667 17.067-89.6 34.133-128 4.267-17.067 0-34.133-8.533-46.933l-55.467-51.2c-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0l55.467 55.467c34.133 34.133 46.933 89.6 29.867 136.533-12.8 34.133-21.333 72.533-25.6 110.933-12.8 59.733-68.267 106.667-132.267 106.667 0 0 0 0 0 0h-128c-4.267 0-8.533 0-12.8 0-34.133-4.267-64-21.333-85.333-46.933s-29.867-59.733-29.867-93.867c12.8-136.533 64-273.067 136.533-388.267 8.533-8.533 25.6-17.067 38.4-17.067zM1011.2 925.867c-17.067 17.067-42.667 17.067-59.733 0l-524.8-524.8c0 0 0 0 0 0s0 0 0 0l-413.867-413.867c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l264.533 264.533c38.4-34.133 76.8-64 119.467-89.6 115.2-76.8 251.733-123.733 388.267-136.533 4.267 0 8.533 0 12.8 0 34.133 0 68.267 12.8 89.6 38.4s38.4 55.467 38.4 89.6v128c0 64-46.933 119.467-110.933 128-38.4 4.267-76.8 12.8-110.933 25.6-46.933 17.067-98.133 4.267-136.533-29.867l-29.867-29.867c-25.6 17.067-51.2 38.4-76.8 59.733l490.667 490.667c17.067 17.067 17.067 42.667 0 59.733zM580.267 221.867c17.067-8.533 38.4-8.533 51.2 8.533l55.467 55.467c12.8 12.8 29.867 17.067 46.933 8.533 42.667-17.067 85.333-25.6 128-34.133 21.333-4.267 38.4-21.333 38.4-42.667v-128c0-12.8-4.267-21.333-12.8-29.867s-17.067-12.8-34.133-12.8c-123.733 12.8-243.2 55.467-349.867 123.733-38.4 21.333-72.533 51.2-102.4 81.067l59.733 59.733c34.133-34.133 76.8-64 119.467-89.6z" />
165
+ <glyph unicode="&#xe99b;" glyph-name="phone-outgoing" d="M1019.733 913.067c-4.267 8.533-12.8 17.067-21.333 21.333-4.267 4.267-12.8 4.267-17.067 4.267h-256c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h153.6l-226.133-226.133c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l226.133 226.133v-153.6c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v256c0 4.267 0 12.8-4.267 17.067zM870.4 345.6c-38.4 4.267-76.8 12.8-110.933 25.6-46.933 17.067-98.133 4.267-136.533-29.867l-29.867-29.867c-76.8 51.2-145.067 115.2-196.267 196.267l29.867 29.867c34.133 34.133 46.933 89.6 29.867 136.533-12.8 34.133-21.333 72.533-25.6 110.933-8.533 64-64 110.933-128 110.933 0 0 0 0 0 0h-128c-4.267 0-8.533 0-12.8 0-34.133-4.267-64-21.333-85.333-46.933s-29.867-59.733-29.867-93.867c12.8-136.533 64-273.067 136.533-388.267 68.267-106.667 162.133-200.533 268.8-268.8 115.2-76.8 251.733-123.733 388.267-136.533 4.267 0 8.533 0 12.8 0 0 0 0 0 0 0 34.133 0 68.267 12.8 89.6 38.4s38.4 55.467 38.4 89.6v128c0 64-46.933 119.467-110.933 128zM896 217.6v-128c0-12.8-4.267-21.333-12.8-29.867s-17.067-12.8-34.133-12.8c-123.733 12.8-243.2 55.467-349.867 123.733-98.133 59.733-179.2 145.067-243.2 243.2-68.267 106.667-110.933 226.133-123.733 349.867 0 12.8 4.267 21.333 8.533 29.867 8.533 8.533 21.333 17.067 34.133 17.067h128c0 0 0 0 0 0 21.333 0 38.4-17.067 42.667-38.4 4.267-42.667 17.067-89.6 34.133-128 4.267-17.067 0-34.133-8.533-46.933l-55.467-51.2c-12.8-12.8-17.067-34.133-8.533-51.2 64-115.2 157.867-209.067 273.067-273.067 17.067-8.533 38.4-8.533 51.2 8.533l55.467 55.467c12.8 12.8 29.867 17.067 46.933 8.533 42.667-17.067 85.333-25.6 128-34.133 17.067-4.267 34.133-21.333 34.133-42.667 0 0 0 0 0 0z" />
166
+ <glyph unicode="&#xe99c;" glyph-name="pie-chart" d="M921.6 298.667c-21.333 8.533-46.933 0-55.467-21.333-81.067-196.267-307.2-285.867-503.467-204.8s-285.867 307.2-204.8 503.467c38.4 89.6 110.933 162.133 200.533 200.533 21.333 8.533 29.867 34.133 21.333 55.467s-34.133 34.133-55.467 25.6c-110.933-46.933-196.267-136.533-243.2-247.467-102.4-238.933 12.8-516.267 247.467-614.4 59.733-25.6 123.733-38.4 183.467-38.4 183.467 0 358.4 106.667 430.933 285.867 8.533 21.333 0 46.933-21.333 55.467zM512 896c-25.6 0-42.667-17.067-42.667-42.667v-426.667c0-25.6 17.067-42.667 42.667-42.667h426.667c25.6 0 42.667 17.067 42.667 42.667 0 260.267-209.067 469.333-469.333 469.333zM554.667 469.334v337.067c179.2-21.333 320-162.133 337.067-337.067h-337.067z" />
167
+ <glyph unicode="&#xe99d;" glyph-name="play" d="M832 460.8l-597.333 384c-12.8 8.533-29.867 8.533-42.667 0-12.8-4.267-21.333-17.067-21.333-34.133v-768c0-17.067 8.533-29.867 21.333-38.4 8.533-4.267 12.8-4.267 21.333-4.267s17.067 4.267 21.333 8.533l597.333 384c12.8 8.533 21.333 21.333 21.333 34.133s-8.533 29.867-21.333 34.133zM256 119.467v614.4l477.867-307.2-477.867-307.2z" />
168
+ <glyph unicode="&#xe99e;" glyph-name="play-circle" d="M512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM512 42.667c-213.333 0-384 170.667-384 384s170.667 384 384 384c213.333 0 384-170.667 384-384s-170.667-384-384-384zM708.267 460.8l-256 170.667c-12.8 8.533-29.867 8.533-42.667 0-17.067-4.267-25.6-17.067-25.6-34.133v-341.333c0-17.067 8.533-29.867 21.333-38.4 8.533-4.267 12.8-4.267 21.333-4.267s17.067 4.267 25.6 8.533l256 170.667c12.8 8.533 17.067 21.333 17.067 34.133s-8.533 25.6-17.067 34.133zM469.333 337.067v179.2l136.533-89.6-136.533-89.6z" />
169
+ <glyph unicode="&#xe99f;" glyph-name="plus" d="M810.667 469.334h-256v256c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-256h-256c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h256v-256c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v256h256c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
170
+ <glyph unicode="&#xe9a0;" glyph-name="plus-circle" d="M512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM512 42.667c-213.333 0-384 170.667-384 384s170.667 384 384 384c213.333 0 384-170.667 384-384s-170.667-384-384-384zM682.667 469.334h-128v128c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-128h-128c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h128v-128c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v128h128c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
171
+ <glyph unicode="&#xe9a1;" glyph-name="plus-square" d="M810.667 853.334h-597.333c-72.533 0-128-55.467-128-128v-597.333c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v597.333c0 72.533-55.467 128-128 128zM853.333 128c0-25.6-17.067-42.667-42.667-42.667h-597.333c-25.6 0-42.667 17.067-42.667 42.667v597.333c0 25.6 17.067 42.667 42.667 42.667h597.333c25.6 0 42.667-17.067 42.667-42.667v-597.333zM682.667 469.334h-128v128c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-128h-128c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h128v-128c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v128h128c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
172
+ <glyph unicode="&#xe9a2;" glyph-name="pocket" d="M853.333 853.334h-682.667c-72.533 0-128-55.467-128-128v-256c0-260.267 209.067-469.333 469.333-469.333s469.333 209.067 469.333 469.333v256c0 72.533-55.467 128-128 128zM896 469.334c0-213.333-170.667-384-384-384s-384 170.667-384 384v256c0 25.6 17.067 42.667 42.667 42.667h682.667c25.6 0 42.667-17.067 42.667-42.667v-256zM652.8 541.867l-140.8-140.8-140.8 140.8c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l170.667-170.667c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l170.667 170.667c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0z" />
173
+ <glyph unicode="&#xe9a3;" glyph-name="power" d="M814.933 686.934c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733c132.267-132.267 132.267-349.867 0-482.133s-349.867-132.267-482.133 0c-132.267 132.267-132.267 349.867 0 482.133 17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0c-170.667-166.4-170.667-439.467-4.267-605.867 85.333-81.067 192-123.733 302.933-123.733s217.6 42.667 302.933 123.733c166.4 166.4 166.4 439.467 0 605.867zM512 384c25.6 0 42.667 17.067 42.667 42.667v426.667c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-426.667c0-25.6 17.067-42.667 42.667-42.667z" />
174
+ <glyph unicode="&#xe9a4;" glyph-name="printer" d="M853.333 597.334h-42.667v256c0 25.6-17.067 42.667-42.667 42.667h-512c-25.6 0-42.667-17.067-42.667-42.667v-256h-42.667c-72.533 0-128-55.467-128-128v-213.333c0-72.533 55.467-128 128-128h42.667v-128c0-25.6 17.067-42.667 42.667-42.667h512c25.6 0 42.667 17.067 42.667 42.667v128h42.667c72.533 0 128 55.467 128 128v213.333c0 72.533-55.467 128-128 128zM298.667 810.667h426.667v-213.333h-426.667v213.333zM725.333 42.667h-426.667v256h426.667v-256zM896 256c0-25.6-17.067-42.667-42.667-42.667h-42.667v128c0 25.6-17.067 42.667-42.667 42.667h-512c-25.6 0-42.667-17.067-42.667-42.667v-128h-42.667c-25.6 0-42.667 17.067-42.667 42.667v213.333c0 25.6 17.067 42.667 42.667 42.667h682.667c25.6 0 42.667-17.067 42.667-42.667v-213.333z" />
175
+ <glyph unicode="&#xe9a5;" glyph-name="radio" d="M512 554.667c-72.533 0-128-55.467-128-128s55.467-128 128-128 128 55.467 128 128-55.467 128-128 128zM512 384c-25.6 0-42.667 17.067-42.667 42.667s17.067 42.667 42.667 42.667 42.667-17.067 42.667-42.667-17.067-42.667-42.667-42.667zM298.667 426.667c0 55.467 21.333 110.933 64 149.333 0 0 0 0 0 0 17.067 17.067 12.8 42.667 0 59.733-17.067 17.067-42.667 17.067-59.733 0 0 0 0 0 0 0-115.2-115.2-115.2-307.2 0-422.4 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733-42.667 42.667-64 98.133-64 153.6zM238.933 699.734c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0c-183.467-183.467-183.467-482.133 0-665.6 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733-149.333 149.333-149.333 396.8 0 546.133zM844.8 759.467c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733c149.333-149.333 149.333-392.533 0-541.867-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c183.467 179.2 183.467 477.867 0 661.333zM721.067 635.734c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733c85.333-81.067 85.333-217.6 4.267-298.667-4.267-4.267-8.533-8.533-12.8-12.8-8.533-21.333 0-46.933 17.067-55.467 4.267-4.267 12.8-4.267 17.067-4.267 12.8 0 21.333 4.267 29.867 12.8 123.733 115.2 123.733 302.933 4.267 418.133z" />
176
+ <glyph unicode="&#xe9a6;" glyph-name="refresh-ccw" d="M42.667 469.334h256c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-149.333l119.467 115.2c34.133 34.133 81.067 64 128 81.067 85.333 29.867 179.2 25.6 260.267-12.8s145.067-106.667 174.933-196.267c8.533-21.333 34.133-34.133 55.467-25.6s34.133 34.133 25.6 55.467c-38.4 106.667-115.2 192-217.6 243.2s-217.6 55.467-324.267 17.067c-59.733-25.6-115.2-59.733-157.867-102.4l-128-119.467v157.867c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-256c0 0 0-4.267 0-4.267 0-4.267 0-8.533 0-8.533 0-4.267 4.267-4.267 4.267-8.533 0 0 0-4.267 4.267-4.267 0 0 0 0 0 0 4.267-4.267 8.533-8.533 12.8-8.533 0 0 0 0 0 0 8.533-8.533 17.067-8.533 21.333-8.533zM1024 349.867c0 4.267 0 4.267 0 8.533s-4.267 4.267-4.267 8.533c0 0 0 4.267-4.267 4.267 0 0 0 0 0 0-4.267 4.267-4.267 4.267-8.533 4.267 0 0-4.267 4.267-4.267 4.267s-4.267 0-4.267 0-8.533 0-12.8 4.267c0 0 0 0 0 0h-256c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h149.333l-119.467-115.2c-132.267-132.267-349.867-132.267-482.133 0-34.133 34.133-64 81.067-81.067 128-8.533 21.333-34.133 34.133-55.467 25.6s-34.133-34.133-25.6-55.467c21.333-59.733 55.467-115.2 102.4-157.867 85.333-85.333 192-123.733 302.933-123.733s217.6 42.667 298.667 123.733l128 119.467v-157.867c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v256c-8.533 4.267-8.533 4.267-8.533 8.533z" />
177
+ <glyph unicode="&#xe9a7;" glyph-name="refresh-cw" d="M887.467 337.067c-21.333 8.533-46.933-4.267-55.467-25.6-17.067-46.933-42.667-93.867-81.067-128-59.733-64-149.333-98.133-238.933-98.133 0 0 0 0 0 0-89.6 0-174.933 34.133-243.2 102.4l-119.467 110.933h149.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-256c0 0 0 0 0 0-4.267 0-8.533 0-8.533-4.267 0 0-4.267 0-4.267 0s-4.267 0-4.267-4.267c-4.267 0-8.533-4.267-8.533-8.533 0 0 0 0 0 0s0-4.267-4.267-4.267c0-4.267-4.267-4.267-4.267-8.533s0-4.267 0-8.533c0 0 0-4.267 0-4.267v-256c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v157.867l123.733-119.467c72.533-81.067 179.2-123.733 294.4-123.733 0 0 0 0 0 0 115.2 0 221.867 42.667 302.933 123.733 42.667 42.667 81.067 98.133 102.4 157.867 4.267 25.6-8.533 51.2-29.867 55.467zM1024 507.734c0 0 0 4.267 0 4.267v256c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-157.867l-123.733 119.467c-42.667 42.667-98.133 81.067-157.867 102.4-110.933 34.133-226.133 29.867-328.533-21.333-102.4-46.933-179.2-132.267-217.6-243.2-8.533-21.333 4.267-46.933 25.6-51.2 21.333-8.533 46.933 4.267 55.467 25.6 29.867 85.333 93.867 153.6 174.933 196.267 81.067 38.4 174.933 42.667 260.267 12.8 46.933-17.067 93.867-42.667 128-81.067l119.467-115.2h-149.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h256c4.267 0 12.8 0 17.067 4.267 0 0 0 0 0 0 4.267 4.267 8.533 4.267 12.8 8.533 0 0 0 0 0 0s0 4.267 4.267 4.267c0 4.267 4.267 4.267 4.267 8.533 4.267 4.267 4.267 8.533 4.267 12.8z" />
178
+ <glyph unicode="&#xe9a8;" glyph-name="repeat" d="M128 426.667c25.6 0 42.667 17.067 42.667 42.667v85.333c0 72.533 55.467 128 128 128h494.933l-98.133-98.133c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l170.667 170.667c4.267 4.267 8.533 8.533 8.533 12.8 4.267 8.533 4.267 21.333 0 34.133-4.267 4.267-4.267 8.533-8.533 12.8l-170.667 170.667c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l98.133-98.133h-494.933c-119.467 0-213.333-93.867-213.333-213.333v-85.333c0-25.6 17.067-42.667 42.667-42.667zM896 426.667c-25.6 0-42.667-17.067-42.667-42.667v-85.333c0-72.533-55.467-128-128-128h-494.933l98.133 98.133c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-170.667-170.667c-4.267-4.267-8.533-8.533-8.533-12.8-4.267-8.533-4.267-21.333 0-34.133 4.267-4.267 4.267-8.533 8.533-12.8l170.667-170.667c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-98.133 98.133h494.933c119.467 0 213.333 93.867 213.333 213.333v85.333c0 25.6-17.067 42.667-42.667 42.667z" />
179
+ <glyph unicode="&#xe9a9;" glyph-name="rewind" d="M486.4 763.734c-12.8 8.533-34.133 4.267-46.933-4.267l-384-298.667c-8.533-8.533-12.8-21.333-12.8-34.133s4.267-25.6 17.067-34.133l384-298.667c8.533-4.267 17.067-8.533 25.6-8.533 4.267 0 12.8 0 17.067 4.267 12.8 8.533 25.6 21.333 25.6 38.4v597.333c0 17.067-8.533 29.867-25.6 38.4zM426.667 213.334l-273.067 213.333 273.067 213.333v-426.667zM955.733 763.734c-12.8 8.533-34.133 4.267-46.933-4.267l-384-298.667c-8.533-8.533-12.8-21.333-12.8-34.133s4.267-25.6 17.067-34.133l384-298.667c8.533-4.267 17.067-8.533 25.6-8.533 4.267 0 12.8 0 17.067 4.267 12.8 8.533 25.6 21.333 25.6 38.4v597.333c0 17.067-8.533 29.867-25.6 38.4zM896 213.334l-273.067 213.333 273.067 213.333v-426.667z" />
180
+ <glyph unicode="&#xe9aa;" glyph-name="rotate-ccw" d="M913.067 567.467c-38.4 106.667-115.2 192-217.6 243.2s-217.6 55.467-324.267 17.067c-59.733-21.333-115.2-55.467-157.867-98.133l-128-119.467v157.867c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-256c0 0 0-4.267 0-4.267 0-4.267 0-8.533 0-8.533 0-4.267 4.267-4.267 4.267-8.533 0 0 0-4.267 4.267-4.267 0 0 0 0 0 0 4.267-4.267 4.267-4.267 8.533-4.267 0 0 4.267-4.267 4.267-4.267s4.267 0 4.267 0 8.533 0 8.533 0c0 0 0 0 0 0h256c25.6 0 42.667 17.067 42.667 42.667s-8.533 34.133-34.133 34.133h-149.333l119.467 115.2c34.133 34.133 81.067 64 128 81.067 85.333 29.867 179.2 25.6 260.267-12.8s145.067-106.667 174.933-196.267c29.867-85.333 25.6-179.2-12.8-260.267s-106.667-145.067-196.267-174.933c-179.2-64-371.2 29.867-435.2 209.067-8.533 21.333-34.133 34.133-55.467 25.6s-34.133-34.133-25.6-55.467c64-174.933 230.4-285.867 405.333-285.867 46.933 0 93.867 8.533 140.8 25.6 221.867 76.8 341.333 320 260.267 541.867z" />
181
+ <glyph unicode="&#xe9ab;" glyph-name="rotate-cw" d="M1024 507.734c0 0 0 4.267 0 4.267v256c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-157.867l-123.733 119.467c-42.667 42.667-98.133 81.067-157.867 102.4-226.133 76.8-469.333-42.667-546.133-264.533s38.4-465.067 260.267-546.133c46.933-12.8 93.867-21.333 140.8-21.333 174.933 0 341.333 110.933 401.067 285.867 8.533 21.333-4.267 46.933-25.6 55.467s-46.933-4.267-55.467-25.6c-64-179.2-256-268.8-435.2-209.067-179.2 64-268.8 256-209.067 435.2 64 174.933 260.267 268.8 439.467 204.8 46.933-17.067 93.867-42.667 128-81.067l119.467-110.933h-149.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h256c0 0 0 0 0 0 4.267 0 8.533 0 8.533 4.267 0 0 4.267 0 4.267 0s4.267 4.267 4.267 4.267c4.267 0 8.533 4.267 8.533 8.533 0 0 0 0 0 0s0 4.267 4.267 4.267c0 4.267 4.267 4.267 4.267 8.533 8.533 0 8.533 4.267 8.533 8.533z" />
182
+ <glyph unicode="&#xe9ac;" glyph-name="save" d="M925.867 627.2l-213.333 213.333c-8.533 8.533-17.067 12.8-29.867 12.8h-469.333c-72.533 0-128-55.467-128-128v-597.333c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v469.333c0 12.8-4.267 21.333-12.8 29.867zM682.667 85.334h-341.333v256h341.333v-256zM853.333 128c0-25.6-17.067-42.667-42.667-42.667h-42.667v298.667c0 25.6-17.067 42.667-42.667 42.667h-426.667c-25.6 0-42.667-17.067-42.667-42.667v-298.667h-42.667c-25.6 0-42.667 17.067-42.667 42.667v597.333c0 25.6 17.067 42.667 42.667 42.667h42.667v-170.667c0-25.6 17.067-42.667 42.667-42.667h341.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-298.667v128h324.267l187.733-187.733v-452.267z" />
183
+ <glyph unicode="&#xe9ad;" glyph-name="scissors" d="M883.2 738.134c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-311.467-311.467-110.933 110.933c17.067 25.6 25.6 55.467 25.6 85.333 0 93.867-76.8 170.667-170.667 170.667s-170.667-76.8-170.667-170.667 76.8-170.667 170.667-170.667c29.867 0 59.733 8.533 85.333 25.6l110.933-110.933-110.933-110.933c-25.6 17.067-55.467 25.6-85.333 25.6-93.867 0-170.667-76.8-170.667-170.667s76.8-170.667 170.667-170.667 170.667 76.8 170.667 170.667c0 29.867-8.533 59.733-25.6 85.333l482.133 482.133zM170.667 682.667c0 46.933 38.4 85.333 85.333 85.333s85.333-38.4 85.333-85.333c0-25.6-8.533-42.667-25.6-59.733 0 0 0 0 0 0s0 0 0 0c-17.067-17.067-34.133-25.6-59.733-25.6-46.933 0-85.333 38.4-85.333 85.333zM256 85.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333c25.6 0 42.667-8.533 59.733-25.6 0 0 0 0 0 0s0 0 0 0c17.067-17.067 25.6-34.133 25.6-59.733 0-46.933-38.4-85.333-85.333-85.333zM648.533 349.867c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l234.667-234.667c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-234.667 234.667z" />
184
+ <glyph unicode="&#xe9ae;" glyph-name="search" d="M925.867 72.534l-192 192c46.933 59.733 76.8 140.8 76.8 226.133 0 200.533-162.133 362.667-362.667 362.667s-362.667-162.133-362.667-362.667c0-200.533 162.133-362.667 362.667-362.667 85.333 0 162.133 29.867 226.133 76.8l192-192c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733zM170.667 490.667c0 153.6 123.733 277.333 277.333 277.333s277.333-123.733 277.333-277.333c0-76.8-29.867-145.067-81.067-196.267 0 0 0 0 0 0s0 0 0 0c-51.2-51.2-119.467-81.067-196.267-81.067-153.6 0-277.333 123.733-277.333 277.333z" />
185
+ <glyph unicode="&#xe9af;" glyph-name="server" d="M853.333 896h-682.667c-72.533 0-128-55.467-128-128v-170.667c0-72.533 55.467-128 128-128h682.667c72.533 0 128 55.467 128 128v170.667c0 72.533-55.467 128-128 128zM896 597.334c0-25.6-17.067-42.667-42.667-42.667h-682.667c-25.6 0-42.667 17.067-42.667 42.667v170.667c0 25.6 17.067 42.667 42.667 42.667h682.667c25.6 0 42.667-17.067 42.667-42.667v-170.667zM853.333 384h-682.667c-72.533 0-128-55.467-128-128v-170.667c0-72.533 55.467-128 128-128h682.667c72.533 0 128 55.467 128 128v170.667c0 72.533-55.467 128-128 128zM896 85.334c0-25.6-17.067-42.667-42.667-42.667h-682.667c-25.6 0-42.667 17.067-42.667 42.667v170.667c0 25.6 17.067 42.667 42.667 42.667h682.667c25.6 0 42.667-17.067 42.667-42.667v-170.667zM226.133 712.534c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 17.067 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0zM226.133 200.534c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 17.067 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0z" />
186
+ <glyph unicode="&#xe9b0;" glyph-name="settings" d="M512 597.334c-93.867 0-170.667-76.8-170.667-170.667s76.8-170.667 170.667-170.667c93.867 0 170.667 76.8 170.667 170.667s-76.8 170.667-170.667 170.667zM512 341.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333zM866.133 281.6c4.267 8.533 12.8 17.067 29.867 17.067 72.533 0 128 55.467 128 128s-55.467 128-128 128h-8.533c-8.533 0-17.067 4.267-21.333 12.8l-4.267 8.533c-4.267 8.533-4.267 21.333 8.533 34.133 46.933 46.933 51.2 115.2 12.8 166.4v12.8l-17.067 8.533c-21.333 21.333-51.2 34.133-85.333 34.133 0 0 0 0 0 0-34.133 0-68.267-12.8-93.867-38.4-8.533-8.533-21.333-8.533-29.867-4.267-8.533-4.267-17.067 8.533-17.067 21.333 0 72.533-55.467 128-128 128s-128-55.467-128-128v-8.533c0-8.533-4.267-17.067-12.8-21.333l-8.533-4.267c-8.533-4.267-21.333 0-34.133 8.533-51.2 51.2-132.267 51.2-179.2 0-51.2-51.2-51.2-132.267 4.267-183.467 8.533-8.533 8.533-21.333 4.267-34.133-4.267-8.533-17.067-17.067-29.867-17.067-72.533 0-128-55.467-128-128s55.467-128 128-128h8.533c12.8 0 21.333-8.533 25.6-17.067s4.267-21.333-8.533-34.133c-25.6-25.6-38.4-55.467-38.4-89.6 0-29.867 12.8-59.733 34.133-85.333l4.267-4.267c0 0 0 0 0 0l12.8-12.8c51.2-38.4 119.467-34.133 170.667 12.8 8.533 8.533 21.333 8.533 34.133 4.267s17.067-12.8 17.067-29.867c0-72.533 55.467-128 128-128s128 55.467 128 128v8.533c0 12.8 8.533 21.333 17.067 25.6s21.333 4.267 34.133-8.533c51.2-51.2 132.267-51.2 179.2 0 51.2 51.2 51.2 132.267-4.267 183.467-4.267 12.8-8.533 25.6-4.267 34.133v0zM814.933 187.734c8.533-8.533 12.8-17.067 12.8-29.867s-4.267-21.333-12.8-29.867c-8.533-8.533-17.067-12.8-29.867-12.8 0 0 0 0 0 0-12.8 0-21.333 4.267-34.133 17.067-34.133 34.133-81.067 42.667-123.733 21.333-42.667-17.067-68.267-59.733-68.267-102.4v-8.533c0-25.6-17.067-42.667-42.667-42.667s-42.667 17.067-42.667 42.667v4.267c0 46.933-29.867 85.333-72.533 102.4-12.8 8.533-29.867 8.533-46.933 8.533-29.867 0-59.733-12.8-81.067-34.133-17.067-17.067-38.4-17.067-55.467-4.267l-8.533 17.067h-4.267c-4.267 4.267-4.267 12.8-4.267 17.067 0 12.8 4.267 21.333 17.067 34.133 34.133 34.133 42.667 81.067 21.333 123.733-17.067 42.667-59.733 68.267-102.4 68.267h-8.533c-25.6 0-42.667 17.067-42.667 42.667s17.067 42.667 42.667 42.667h4.267c46.933 0 85.333 29.867 102.4 72.533s8.533 89.6-25.6 128c-17.067 17.067-17.067 42.667 0 59.733s42.667 17.067 64-4.267c29.867-29.867 76.8-38.4 115.2-25.6l12.8 4.267c42.667 17.067 68.267 59.733 68.267 102.4v8.533c0 25.6 17.067 42.667 42.667 42.667s42.667-17.067 42.667-46.933c0-46.933 25.6-85.333 68.267-102.4s89.6-8.533 128 25.6c8.533 8.533 17.067 12.8 29.867 12.8v0c12.8 0 21.333-4.267 29.867-12.8v0c17.067-17.067 17.067-42.667-4.267-64-29.867-29.867-38.4-76.8-25.6-115.2l4.267-12.8c17.067-42.667 59.733-68.267 102.4-68.267h8.533c25.6 0 42.667-17.067 42.667-42.667s-17.067-42.667-46.933-42.667c-46.933 0-85.333-25.6-102.4-68.267-21.333-42.667-8.533-89.6 25.6-128z" />
187
+ <glyph unicode="&#xe9b1;" glyph-name="share" d="M853.333 469.334c-25.6 0-42.667-17.067-42.667-42.667v-341.333c0-25.6-17.067-42.667-42.667-42.667h-512c-25.6 0-42.667 17.067-42.667 42.667v341.333c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-341.333c0-72.533 55.467-128 128-128h512c72.533 0 128 55.467 128 128v341.333c0 25.6-17.067 42.667-42.667 42.667zM371.2 652.8l98.133 98.133v-452.267c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v452.267l98.133-98.133c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-170.667 170.667c-4.267 4.267-8.533 8.533-12.8 8.533-8.533 4.267-21.333 4.267-34.133 0-4.267-4.267-8.533-4.267-12.8-8.533l-170.667-170.667c-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0z" />
188
+ <glyph unicode="&#xe9b2;" glyph-name="share-2" d="M768 298.667c-46.933 0-89.6-21.333-119.467-51.2l-226.133 132.267c0 17.067 4.267 29.867 4.267 46.933s-4.267 29.867-8.533 46.933l226.133 132.267c34.133-29.867 76.8-51.2 123.733-51.2 93.867 0 170.667 76.8 170.667 170.667s-76.8 170.667-170.667 170.667-170.667-76.8-170.667-170.667c0-17.067 4.267-29.867 8.533-46.933l-230.4-132.267c-29.867 29.867-72.533 51.2-119.467 51.2-93.867 0-170.667-76.8-170.667-170.667s76.8-170.667 170.667-170.667c46.933 0 89.6 21.333 119.467 51.2l226.133-132.267c0-17.067-4.267-29.867-4.267-46.933 0-93.867 76.8-170.667 170.667-170.667s170.667 76.8 170.667 170.667-76.8 170.667-170.667 170.667zM768 810.667c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333-85.333 38.4-85.333 85.333 38.4 85.333 85.333 85.333zM256 341.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333c0-46.933-38.4-85.333-85.333-85.333zM768 42.667c-46.933 0-85.333 38.4-85.333 85.333 0 17.067 4.267 29.867 12.8 42.667 0 0 0 0 0 0s0 0 0 0c12.8 25.6 42.667 42.667 72.533 42.667 46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333z" />
189
+ <glyph unicode="&#xe9b3;" glyph-name="shield" d="M861.867 810.667l-341.333 85.333c-8.533 0-12.8 0-21.333 0l-341.333-85.333c-17.067-4.267-29.867-21.333-29.867-42.667v-341.333c0-277.333 349.867-456.533 366.933-465.067 4.267-4.267 8.533-4.267 17.067-4.267s12.8 0 17.067 4.267c17.067 8.533 366.933 187.733 366.933 465.067v341.333c0 21.333-12.8 38.4-34.133 42.667zM810.667 426.667c0-192-230.4-337.067-298.667-379.733-68.267 38.4-298.667 183.467-298.667 379.733v307.2l298.667 76.8 298.667-76.8v-307.2z" />
190
+ <glyph unicode="&#xe9b4;" glyph-name="shopping-cart" d="M341.333 170.667c-72.533 0-128-55.467-128-128s55.467-128 128-128 128 55.467 128 128-55.467 128-128 128zM341.333-0c-25.6 0-42.667 17.067-42.667 42.667s17.067 42.667 42.667 42.667 42.667-17.067 42.667-42.667-17.067-42.667-42.667-42.667zM853.333 170.667c-72.533 0-128-55.467-128-128s55.467-128 128-128 128 55.467 128 128-55.467 128-128 128zM853.333-0c-25.6 0-42.667 17.067-42.667 42.667s17.067 42.667 42.667 42.667 42.667-17.067 42.667-42.667-17.067-42.667-42.667-42.667zM375.467 213.334h452.267c0 0 0 0 4.267 0 59.733 0 115.2 42.667 123.733 102.4l68.267 358.4c4.267 12.8 0 25.6-8.533 34.133-8.533 12.8-21.333 17.067-34.133 17.067h-704l-12.8 102.4c-8.533 64-59.733 110.933-128 110.933h-93.867c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h93.867c21.333 0 38.4-17.067 42.667-38.4l64-490.667c12.8-64 64-110.933 132.267-110.933zM930.133 640l-59.733-307.2c-4.267-21.333-21.333-34.133-42.667-34.133h-456.533c-21.333 0-38.4 17.067-42.667 38.4l-38.4 302.933h640z" />
191
+ <glyph unicode="&#xe9b5;" glyph-name="shuffle" d="M934.4 827.734c-4.267 8.533-12.8 17.067-21.333 21.333-4.267 4.267-12.8 4.267-17.067 4.267h-213.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h110.933l-652.8-652.8c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l652.8 652.8v-110.933c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v213.333c0 4.267 0 12.8-4.267 17.067zM896 298.667c-25.6 0-42.667-17.067-42.667-42.667v-110.933l-183.467 183.467c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l183.467-183.467h-110.933c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h213.333c4.267 0 12.8 0 17.067 4.267 8.533 4.267 17.067 12.8 21.333 21.333 4.267 4.267 4.267 12.8 4.267 17.067v213.333c0 25.6-17.067 42.667-42.667 42.667zM354.133 524.8c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-213.333 213.333c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l213.333-213.333z" />
192
+ <glyph unicode="&#xe9b6;" glyph-name="sidebar" d="M810.667 853.334h-597.333c-72.533 0-128-55.467-128-128v-597.333c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v597.333c0 72.533-55.467 128-128 128zM170.667 128v597.333c0 25.6 17.067 42.667 42.667 42.667h128v-682.667h-128c-25.6 0-42.667 17.067-42.667 42.667zM853.333 128c0-25.6-17.067-42.667-42.667-42.667h-384v682.667h384c25.6 0 42.667-17.067 42.667-42.667v-597.333z" />
193
+ <glyph unicode="&#xe9b7;" glyph-name="skip-back" d="M827.733 806.4c-12.8 8.533-34.133 4.267-46.933-4.267l-426.667-341.333c-8.533-8.533-12.8-21.333-12.8-34.133s4.267-25.6 17.067-34.133l426.667-341.333c8.533-4.267 17.067-8.533 25.6-8.533 4.267 0 12.8 0 17.067 4.267 12.8 8.533 25.6 21.333 25.6 38.4v682.667c0 17.067-8.533 29.867-25.6 38.4zM768 174.934l-315.733 251.733 315.733 251.733v-503.467zM213.333 768c-25.6 0-42.667-17.067-42.667-42.667v-597.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v597.333c0 25.6-17.067 42.667-42.667 42.667z" />
194
+ <glyph unicode="&#xe9b8;" glyph-name="skip-forward" d="M238.933 802.134c-12.8 8.533-29.867 12.8-42.667 4.267-17.067-8.533-25.6-21.333-25.6-38.4v-682.667c0-17.067 8.533-29.867 25.6-38.4 4.267-4.267 12.8-4.267 17.067-4.267 8.533 0 17.067 4.267 25.6 8.533l426.667 341.333c8.533 8.533 17.067 21.333 17.067 34.133s-4.267 25.6-17.067 34.133l-426.667 341.333zM256 174.934v503.467l315.733-251.733-315.733-251.733zM810.667 768c-25.6 0-42.667-17.067-42.667-42.667v-597.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v597.333c0 25.6-17.067 42.667-42.667 42.667z" />
195
+ <glyph unicode="&#xe9b9;" glyph-name="slack" d="M981.333 567.467c-55.467 179.2-119.467 281.6-217.6 332.8-89.6 51.2-213.333 51.2-392.533-4.267-345.6-102.4-435.2-268.8-328.533-610.133 76.8-256 187.733-371.2 379.733-371.2 68.267 0 140.8 12.8 230.4 38.4 341.333 106.667 435.2 273.067 328.533 614.4zM627.2 38.4c-298.667-89.6-413.867-25.6-503.467 273.067-89.6 294.4-25.6 413.867 273.067 503.467 85.333 25.6 153.6 38.4 209.067 38.4 46.933 0 89.6-8.533 123.733-25.6 72.533-38.4 128-128 174.933-281.6v0c85.333-298.667 21.333-418.133-277.333-507.733zM755.2 443.734l-81.067-29.867-42.667 119.467 81.067 29.867c21.333 8.533 34.133 29.867 25.6 55.467-8.533 21.333-29.867 34.133-55.467 25.6l-81.067-29.867-29.867 81.067c-8.533 21.333-29.867 34.133-55.467 25.6-21.333-8.533-34.133-29.867-25.6-55.467l29.867-81.067-119.467-42.667-25.6 85.333c-8.533 21.333-34.133 34.133-55.467 25.6-21.333-4.267-34.133-29.867-25.6-51.2l29.867-81.067-81.067-29.867c-21.333-8.533-34.133-29.867-25.6-55.467 4.267-17.067 21.333-29.867 38.4-29.867 4.267 0 8.533 0 12.8 4.267l81.067 29.867 42.667-119.467-81.067-29.867c-21.333-8.533-34.133-29.867-25.6-55.467 4.267-17.067 21.333-29.867 38.4-29.867 4.267 0 8.533 0 12.8 4.267l81.067 29.867 29.867-81.067c4.267-17.067 21.333-29.867 38.4-29.867 4.267 0 8.533 0 12.8 4.267 21.333 8.533 34.133 29.867 25.6 55.467l-29.867 81.067 119.467 42.667 29.867-81.067c4.267-17.067 21.333-29.867 38.4-29.867 4.267 0 8.533 0 12.8 4.267 21.333 8.533 34.133 29.867 25.6 55.467l-29.867 81.067 81.067 29.867c21.333 8.533 34.133 29.867 25.6 55.467 4.267 12.8-21.333 25.6-42.667 17.067zM473.6 345.6l-42.667 119.467 119.467 42.667 42.667-119.467-119.467-42.667z" />
196
+ <glyph unicode="&#xe9ba;" glyph-name="slash" d="M844.8 93.867c85.333 85.333 136.533 200.533 136.533 332.8 0 260.267-209.067 469.333-469.333 469.333-128 0-247.467-51.2-332.8-136.533 0 0 0 0 0 0s0 0 0 0c-85.333-85.333-136.533-204.8-136.533-332.8 0-260.267 209.067-469.333 469.333-469.333 128 0 247.467 51.2 332.8 136.533 0 0 0 0 0 0s0 0 0 0zM896 426.667c0-89.6-29.867-174.933-85.333-238.933l-537.6 537.6c64 55.467 149.333 85.333 238.933 85.333 213.333 0 384-170.667 384-384zM128 426.667c0 89.6 29.867 174.933 85.333 238.933l537.6-537.6c-64-51.2-149.333-85.333-238.933-85.333-213.333 0-384 170.667-384 384z" />
197
+ <glyph unicode="&#xe9bb;" glyph-name="sliders" d="M170.667 469.334c25.6 0 42.667 17.067 42.667 42.667v298.667c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-298.667c0-25.6 17.067-42.667 42.667-42.667zM512 469.334c-25.6 0-42.667-17.067-42.667-42.667v-384c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v384c0 25.6-17.067 42.667-42.667 42.667zM853.333 384c25.6 0 42.667 17.067 42.667 42.667v384c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-384c0-25.6 17.067-42.667 42.667-42.667zM298.667 384h-256c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h85.333v-256c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v256h85.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM640 640h-85.333v170.667c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-170.667h-85.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h256c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM981.333 298.667h-256c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h85.333v-170.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v170.667h85.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
198
+ <glyph unicode="&#xe9bc;" glyph-name="smartphone" d="M725.333 896h-426.667c-72.533 0-128-55.467-128-128v-682.667c0-72.533 55.467-128 128-128h426.667c72.533 0 128 55.467 128 128v682.667c0 72.533-55.467 128-128 128zM768 85.334c0-25.6-17.067-42.667-42.667-42.667h-426.667c-25.6 0-42.667 17.067-42.667 42.667v682.667c0 25.6 17.067 42.667 42.667 42.667h426.667c25.6 0 42.667-17.067 42.667-42.667v-682.667zM482.133 200.534c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 21.333 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0z" />
199
+ <glyph unicode="&#xe9bd;" glyph-name="speaker" d="M768 896h-512c-72.533 0-128-55.467-128-128v-682.667c0-72.533 55.467-128 128-128h512c72.533 0 128 55.467 128 128v682.667c0 72.533-55.467 128-128 128zM810.667 85.334c0-25.6-17.067-42.667-42.667-42.667h-512c-25.6 0-42.667 17.067-42.667 42.667v682.667c0 25.6 17.067 42.667 42.667 42.667h512c25.6 0 42.667-17.067 42.667-42.667v-682.667zM512 554.667c-119.467 0-213.333-93.867-213.333-213.333s93.867-213.333 213.333-213.333 213.333 93.867 213.333 213.333-93.867 213.333-213.333 213.333zM512 213.334c-72.533 0-128 55.467-128 128s55.467 128 128 128 128-55.467 128-128-55.467-128-128-128zM512 640c12.8 0 21.333 4.267 29.867 12.8s12.8 17.067 12.8 29.867c0 12.8-4.267 21.333-12.8 29.867-17.067 17.067-46.933 17.067-59.733 0-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8z" />
200
+ <glyph unicode="&#xe9be;" glyph-name="square" d="M810.667 853.334h-597.333c-72.533 0-128-55.467-128-128v-597.333c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v597.333c0 72.533-55.467 128-128 128zM853.333 128c0-25.6-17.067-42.667-42.667-42.667h-597.333c-25.6 0-42.667 17.067-42.667 42.667v597.333c0 25.6 17.067 42.667 42.667 42.667h597.333c25.6 0 42.667-17.067 42.667-42.667v-597.333z" />
201
+ <glyph unicode="&#xe9bf;" glyph-name="star" d="M981.333 554.667c-4.267 17.067-17.067 25.6-34.133 29.867l-273.067 38.4-123.733 247.467c-12.8 29.867-64 29.867-76.8 0l-123.733-243.2-268.8-42.667c-17.067 0-29.867-12.8-38.4-29.867-4.267-17.067 0-34.133 12.8-42.667l196.267-192-46.933-273.067c-4.267-17.067 4.267-34.133 17.067-42.667s29.867-12.8 46.933-4.267l243.2 128 243.2-128c8.533 0 12.8 0 21.333 0s17.067 4.267 25.6 8.533c12.8 8.533 21.333 25.6 17.067 42.667l-46.933 273.067 196.267 192c12.8 8.533 17.067 25.6 12.8 38.4zM695.467 366.934c-8.533-12.8-12.8-25.6-12.8-38.4l34.133-209.067-187.733 98.133c-12.8 8.533-25.6 8.533-38.4 0l-187.733-98.133 38.4 209.067c0 12.8-4.267 25.6-12.8 38.4l-153.6 145.067 209.067 29.867c12.8 0 25.6 12.8 34.133 21.333l93.867 192 93.867-187.733c4.267-12.8 17.067-21.333 34.133-21.333l209.067-29.867-153.6-149.333z" />
202
+ <glyph unicode="&#xe9c0;" glyph-name="stop-circle" d="M512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM512 42.667c-213.333 0-384 170.667-384 384s170.667 384 384 384c213.333 0 384-170.667 384-384s-170.667-384-384-384zM640 597.334h-256c-25.6 0-42.667-17.067-42.667-42.667v-256c0-25.6 17.067-42.667 42.667-42.667h256c25.6 0 42.667 17.067 42.667 42.667v256c0 25.6-17.067 42.667-42.667 42.667zM597.333 341.334h-170.667v170.667h170.667v-170.667z" />
203
+ <glyph unicode="&#xe9c1;" glyph-name="sun" d="M512 682.667c-140.8 0-256-115.2-256-256s115.2-256 256-256 256 115.2 256 256-115.2 256-256 256zM512 256c-93.867 0-170.667 76.8-170.667 170.667s76.8 170.667 170.667 170.667c93.867 0 170.667-76.8 170.667-170.667s-76.8-170.667-170.667-170.667zM512 768c25.6 0 42.667 17.067 42.667 42.667v85.333c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-85.333c0-25.6 17.067-42.667 42.667-42.667zM512 85.334c-25.6 0-42.667-17.067-42.667-42.667v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 25.6-17.067 42.667-42.667 42.667zM209.067 669.867c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-59.733 59.733c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l59.733-59.733zM814.933 183.467c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l59.733-59.733c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-59.733 59.733zM170.667 426.667c0 25.6-17.067 42.667-42.667 42.667h-85.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h85.333c25.6 0 42.667 17.067 42.667 42.667zM981.333 469.334h-85.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h85.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM209.067 183.467l-59.733-59.733c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l59.733 59.733c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0zM785.067 657.067c12.8 0 21.333 4.267 29.867 12.8l59.733 59.733c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-59.733-59.733c-17.067-17.067-17.067-42.667 0-59.733 4.267-8.533 17.067-12.8 29.867-12.8z" />
204
+ <glyph unicode="&#xe9c2;" glyph-name="sunrise" d="M512 426.667c-140.8 0-256-115.2-256-256 0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667c0 93.867 76.8 170.667 170.667 170.667s170.667-76.8 170.667-170.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667c0 140.8-115.2 256-256 256zM209.067 413.867c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-59.733 59.733c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l59.733-59.733zM42.667 128h85.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-85.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667zM853.333 170.667c0-25.6 17.067-42.667 42.667-42.667h85.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-85.333c-25.6 0-42.667-17.067-42.667-42.667zM785.067 401.067c12.8 0 21.333 4.267 29.867 12.8l59.733 59.733c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-59.733-59.733c-17.067-17.067-17.067-42.667 0-59.733 4.267-8.533 17.067-12.8 29.867-12.8zM981.333 42.667h-938.667c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h938.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM371.2 652.8l98.133 98.133v-196.267c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v196.267l98.133-98.133c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-170.667 170.667c-4.267 4.267-8.533 8.533-12.8 8.533-8.533 4.267-21.333 4.267-34.133 0-4.267-4.267-8.533-4.267-12.8-8.533l-170.667-170.667c-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0z" />
205
+ <glyph unicode="&#xe9c3;" glyph-name="sunset" d="M512 426.667c-140.8 0-256-115.2-256-256 0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667c0 93.867 76.8 170.667 170.667 170.667s170.667-76.8 170.667-170.667c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667c0 140.8-115.2 256-256 256zM209.067 413.867c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-59.733 59.733c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l59.733-59.733zM42.667 128h85.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-85.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667zM853.333 170.667c0-25.6 17.067-42.667 42.667-42.667h85.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-85.333c-25.6 0-42.667-17.067-42.667-42.667zM785.067 401.067c12.8 0 21.333 4.267 29.867 12.8l59.733 59.733c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-59.733-59.733c-17.067-17.067-17.067-42.667 0-59.733 4.267-8.533 17.067-12.8 29.867-12.8zM981.333 42.667h-938.667c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h938.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM482.133 524.8c4.267-4.267 8.533-8.533 12.8-8.533 4.267-4.267 12.8-4.267 17.067-4.267s12.8 0 17.067 4.267c4.267 4.267 8.533 4.267 12.8 8.533l170.667 170.667c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-98.133-98.133v196.267c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-196.267l-98.133 98.133c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l170.667-170.667z" />
206
+ <glyph unicode="&#xe9c4;" glyph-name="tablet" d="M768 896h-512c-72.533 0-128-55.467-128-128v-682.667c0-72.533 55.467-128 128-128h512c72.533 0 128 55.467 128 128v682.667c0 72.533-55.467 128-128 128zM810.667 85.334c0-25.6-17.067-42.667-42.667-42.667h-512c-25.6 0-42.667 17.067-42.667 42.667v682.667c0 25.6 17.067 42.667 42.667 42.667h512c25.6 0 42.667-17.067 42.667-42.667v-682.667zM482.133 200.534c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 21.333 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0z" />
207
+ <glyph unicode="&#xe9c5;" glyph-name="tag" d="M908.8 516.267l-366.933 366.933c-8.533 8.533-17.067 12.8-29.867 12.8h-426.667c-25.6 0-42.667-17.067-42.667-42.667v-426.667c0-12.8 4.267-21.333 12.8-29.867l366.933-366.933c25.6-25.6 59.733-38.4 89.6-38.4 34.133 0 64 12.8 89.6 38.4l307.2 307.2c0 0 0 0 0 0 51.2 51.2 51.2 128 0 179.2zM849.067 396.8l-307.2-307.2c-17.067-17.067-42.667-17.067-59.733 0l-354.133 354.133v366.933h366.933l354.133-354.133c17.067-17.067 17.067-42.667 0-59.733zM268.8 669.867c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 17.067 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0z" />
208
+ <glyph unicode="&#xe9c6;" glyph-name="target" d="M512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM512 42.667c-213.333 0-384 170.667-384 384s170.667 384 384 384c213.333 0 384-170.667 384-384s-170.667-384-384-384zM512 725.334c-166.4 0-298.667-132.267-298.667-298.667s132.267-298.667 298.667-298.667c166.4 0 298.667 132.267 298.667 298.667s-132.267 298.667-298.667 298.667zM512 213.334c-119.467 0-213.333 93.867-213.333 213.333s93.867 213.333 213.333 213.333 213.333-93.867 213.333-213.333-93.867-213.333-213.333-213.333zM512 554.667c-72.533 0-128-55.467-128-128s55.467-128 128-128 128 55.467 128 128-55.467 128-128 128zM512 384c-25.6 0-42.667 17.067-42.667 42.667s17.067 42.667 42.667 42.667 42.667-17.067 42.667-42.667-17.067-42.667-42.667-42.667z" />
209
+ <glyph unicode="&#xe9c7;" glyph-name="thermometer" d="M686.933 281.6c-12.8 21.333-29.867 34.133-46.933 51.2v456.533c0 81.067-68.267 149.333-149.333 149.333s-149.333-68.267-149.333-149.333v-460.8c-93.867-76.8-115.2-209.067-46.933-311.467 34.133-51.2 89.6-89.6 149.333-98.133 17.067-4.267 29.867-4.267 46.933-4.267 46.933 0 89.6 12.8 128 38.4 110.933 72.533 140.8 217.6 68.267 328.533zM571.733 25.6c-68.267-46.933-162.133-25.6-209.067 42.667-21.333 34.133-29.867 72.533-21.333 110.933s29.867 72.533 64 93.867c12.8 8.533 17.067 21.333 17.067 34.133v482.133c4.267 34.133 34.133 64 68.267 64s64-29.867 64-64v-482.133c0-12.8 8.533-25.6 17.067-34.133 17.067-12.8 29.867-25.6 42.667-42.667 46.933-68.267 25.6-157.867-42.667-204.8z" />
210
+ <glyph unicode="&#xe9c8;" glyph-name="thumbs-down" d="M981.333 772.267c-8.533 72.533-68.267 123.733-140.8 123.733 0 0 0 0-4.267 0h-593.067c-64 0-115.2-46.933-128-106.667l-59.733-384c-8.533-68.267 38.4-136.533 106.667-145.067 8.533 0 12.8 0 21.333 0h200.533v-128c0-93.867 76.8-170.667 170.667-170.667 17.067 0 34.133 8.533 38.4 25.6l157.867 358.4h85.333c72.533 0 132.267 51.2 140.8 123.733 0 0 0 4.267 0 4.267v294.4c4.267 0 4.267 4.267 4.267 4.267zM682.667 392.534l-153.6-345.6c-34.133 12.8-59.733 42.667-59.733 81.067v170.667c0 25.6-17.067 42.667-42.667 42.667h-243.2c0 0-4.267 0-8.533 0-21.333 4.267-38.4 25.6-34.133 46.933l59.733 384c4.267 21.333 21.333 38.4 42.667 38.4h439.467v-418.133zM896 473.6c-4.267-25.6-29.867-46.933-55.467-46.933h-72.533v384h72.533c25.6 4.267 51.2-17.067 55.467-46.933v-290.133z" />
211
+ <glyph unicode="&#xe9c9;" glyph-name="thumbs-up" d="M942.933 546.134c-21.333 25.6-51.2 46.933-85.333 51.2-8.533 0-12.8 0-21.333 0h-196.267v128c0 93.867-76.8 170.667-170.667 170.667-17.067 0-34.133-8.533-38.4-25.6l-157.867-358.4h-102.4c-72.533 0-128-55.467-128-128v-298.667c0-72.533 55.467-128 128-128h610.133c0 0 0 0 0 0 64 0 115.2 46.933 128 106.667l59.733 384c4.267 34.133-4.267 68.267-25.6 98.133zM256 42.667h-85.333c-25.6 0-42.667 17.067-42.667 42.667v298.667c0 25.6 17.067 42.667 42.667 42.667h85.333v-384zM823.467 76.8c-4.267-21.333-21.333-34.133-42.667-34.133 0 0 0 0 0 0h-439.467v418.133l153.6 345.6c34.133-12.8 59.733-42.667 59.733-81.067v-170.667c0-25.6 17.067-42.667 42.667-42.667h243.2c4.267 0 4.267 0 8.533 0 12.8 0 21.333-8.533 29.867-17.067s8.533-21.333 8.533-29.867l-64-388.267z" />
212
+ <glyph unicode="&#xe9ca;" glyph-name="toggle-left" d="M682.667 768h-341.333c-187.733 0-341.333-153.6-341.333-341.333s153.6-341.333 341.333-341.333h341.333c187.733 0 341.333 153.6 341.333 341.333s-153.6 341.333-341.333 341.333zM682.667 170.667h-341.333c-140.8 0-256 115.2-256 256s115.2 256 256 256h341.333c140.8 0 256-115.2 256-256s-115.2-256-256-256zM341.333 597.334c-93.867 0-170.667-76.8-170.667-170.667s76.8-170.667 170.667-170.667 170.667 76.8 170.667 170.667c0 93.867-76.8 170.667-170.667 170.667zM341.333 341.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333c0-46.933-38.4-85.333-85.333-85.333z" />
213
+ <glyph unicode="&#xe9cb;" glyph-name="toggle-right" d="M682.667 768h-341.333c-187.733 0-341.333-153.6-341.333-341.333s153.6-341.333 341.333-341.333h341.333c187.733 0 341.333 153.6 341.333 341.333s-153.6 341.333-341.333 341.333zM682.667 170.667h-341.333c-140.8 0-256 115.2-256 256s115.2 256 256 256h341.333c140.8 0 256-115.2 256-256s-115.2-256-256-256zM682.667 597.334c-93.867 0-170.667-76.8-170.667-170.667s76.8-170.667 170.667-170.667 170.667 76.8 170.667 170.667c0 93.867-76.8 170.667-170.667 170.667zM682.667 341.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333c0-46.933-38.4-85.333-85.333-85.333z" />
214
+ <glyph unicode="&#xe9cc;" glyph-name="trash" d="M896 725.334h-170.667v42.667c0 72.533-55.467 128-128 128h-170.667c-72.533 0-128-55.467-128-128v-42.667h-170.667c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h42.667v-554.667c0-72.533 55.467-128 128-128h426.667c72.533 0 128 55.467 128 128v554.667h42.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM384 768c0 25.6 17.067 42.667 42.667 42.667h170.667c25.6 0 42.667-17.067 42.667-42.667v-42.667h-256v42.667zM768 85.334c0-25.6-17.067-42.667-42.667-42.667h-426.667c-25.6 0-42.667 17.067-42.667 42.667v554.667h512v-554.667z" />
215
+ <glyph unicode="&#xe9cd;" glyph-name="trash-2" d="M896 725.334h-170.667v42.667c0 72.533-55.467 128-128 128h-170.667c-72.533 0-128-55.467-128-128v-42.667h-170.667c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h42.667v-554.667c0-72.533 55.467-128 128-128h426.667c72.533 0 128 55.467 128 128v554.667h42.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM384 768c0 25.6 17.067 42.667 42.667 42.667h170.667c25.6 0 42.667-17.067 42.667-42.667v-42.667h-256v42.667zM768 85.334c0-25.6-17.067-42.667-42.667-42.667h-426.667c-25.6 0-42.667 17.067-42.667 42.667v554.667h512v-554.667zM426.667 512c-25.6 0-42.667-17.067-42.667-42.667v-256c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v256c0 25.6-17.067 42.667-42.667 42.667zM597.333 512c-25.6 0-42.667-17.067-42.667-42.667v-256c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v256c0 25.6-17.067 42.667-42.667 42.667z" />
216
+ <glyph unicode="&#xe9ce;" glyph-name="trending-down" d="M1024 426.667c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-153.6l-332.8 332.8c-17.067 17.067-42.667 17.067-59.733 0l-183.467-183.467-290.133 290.133c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l320-320c17.067-17.067 42.667-17.067 59.733 0l183.467 183.467 302.933-302.933h-153.6c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h256c4.267 0 12.8 0 17.067 4.267 8.533 4.267 17.067 12.8 21.333 21.333 4.267 4.267 4.267 12.8 4.267 17.067v256z" />
217
+ <glyph unicode="&#xe9cf;" glyph-name="trending-up" d="M1019.733 699.734c-4.267 8.533-12.8 17.067-21.333 21.333-4.267 4.267-12.8 4.267-17.067 4.267h-256c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h153.6l-302.933-302.933-183.467 183.467c-17.067 17.067-42.667 17.067-59.733 0l-320-320c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l290.133 290.133 183.467-183.467c17.067-17.067 42.667-17.067 59.733 0l332.8 332.8v-153.6c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v256c0 4.267 0 12.8-4.267 17.067z" />
218
+ <glyph unicode="&#xe9d0;" glyph-name="triangle" d="M981.333 192l-358.4 605.867c-17.067 29.867-46.933 51.2-81.067 59.733s-68.267 4.267-98.133-12.8c-17.067-8.533-34.133-25.6-42.667-42.667 0 0 0 0 0 0l-358.4-610.133c-34.133-59.733-12.8-140.8 46.933-174.933 17.067-12.8 38.4-17.067 59.733-17.067h725.333c34.133 0 68.267 12.8 89.6 38.4 25.6 25.6 38.4 55.467 38.4 89.6-4.267 21.333-8.533 46.933-21.333 64zM904.533 98.134c-8.533-8.533-21.333-12.8-29.867-12.8h-725.333c-8.533 0-12.8 0-21.333 4.267-21.333 12.8-25.6 38.4-17.067 59.733l362.667 601.6c4.267 4.267 8.533 12.8 12.8 12.8 21.333 12.8 46.933 4.267 59.733-12.8l362.667-601.6c4.267-4.267 4.267-12.8 4.267-21.333 4.267-12.8-4.267-21.333-8.533-29.867z" />
219
+ <glyph unicode="&#xe9d1;" glyph-name="tv" d="M853.333 682.667h-238.933l140.8 140.8c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-183.467-183.467-183.467 183.467c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l140.8-140.8h-238.933c-72.533 0-128-55.467-128-128v-469.333c0-72.533 55.467-128 128-128h682.667c72.533 0 128 55.467 128 128v469.333c0 72.533-55.467 128-128 128zM896 85.334c0-25.6-17.067-42.667-42.667-42.667h-682.667c-25.6 0-42.667 17.067-42.667 42.667v469.333c0 25.6 17.067 42.667 42.667 42.667h682.667c25.6 0 42.667-17.067 42.667-42.667v-469.333z" />
220
+ <glyph unicode="&#xe9d2;" glyph-name="twitter" d="M1006.933 844.8c-12.8 8.533-34.133 8.533-46.933 0-29.867-21.333-64-38.4-98.133-51.2-85.333 76.8-217.6 81.067-307.2 4.267-55.467-46.933-85.333-110.933-85.333-179.2-123.733 8.533-234.667 72.533-307.2 174.933-8.533 12.8-21.333 17.067-38.4 17.067s-29.867-12.8-34.133-25.6c-4.267-4.267-46.933-106.667-42.667-230.4 4.267-106.667 46.933-243.2 204.8-341.333-64-29.867-136.533-42.667-209.067-42.667-17.067 0-38.4-12.8-42.667-29.867s4.267-38.4 21.333-46.933c106.667-59.733 221.867-89.6 328.533-89.6s209.067 25.6 302.933 81.067c183.467 102.4 285.867 298.667 285.867 533.333 0 8.533 0 12.8 0 21.333 42.667 46.933 72.533 102.4 85.333 162.133 4.267 17.067-4.267 34.133-17.067 42.667zM861.867 682.667c-8.533-8.533-12.8-25.6-12.8-38.4 4.267-8.533 4.267-17.067 4.267-25.6 0-204.8-89.6-371.2-243.2-460.8-119.467-68.267-260.267-85.333-401.067-51.2 55.467 17.067 106.667 38.4 153.6 72.533 17.067 8.533 21.333 21.333 21.333 38.4s-12.8 29.867-25.6 34.133c-247.467 110.933-238.933 320-213.333 426.667 93.867-93.867 226.133-149.333 366.933-145.067 21.333 0 42.667 21.333 42.667 42.667v42.667c0 42.667 17.067 85.333 51.2 115.2 59.733 55.467 157.867 46.933 209.067-12.8 12.8-12.8 29.867-17.067 42.667-12.8 8.533 4.267 21.333 4.267 29.867 8.533-8.533-12.8-17.067-21.333-25.6-34.133z" />
221
+ <glyph unicode="&#xe9d3;" glyph-name="type" d="M853.333 810.667h-682.667c-25.6 0-42.667-17.067-42.667-42.667v-128c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333h256v-597.333h-85.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h256c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667h-85.333v597.333h256v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v128c0 25.6-17.067 42.667-42.667 42.667z" />
222
+ <glyph unicode="&#xe9d4;" glyph-name="umbrella" d="M465.067 891.734c-247.467-21.333-439.467-217.6-465.067-460.8 0-12.8 4.267-25.6 12.8-34.133 4.267-8.533 17.067-12.8 29.867-12.8h426.667v-256c0-93.867 76.8-170.667 170.667-170.667s170.667 76.8 170.667 170.667c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667c0-46.933-38.4-85.333-85.333-85.333s-85.333 38.4-85.333 85.333v256h426.667c12.8 0 25.6 4.267 29.867 12.8s12.8 21.333 12.8 34.133c-25.6 281.6-277.333 490.667-558.933 460.8zM512 469.334h-418.133c34.133 183.467 187.733 320 375.467 341.333 217.6 21.333 418.133-128 460.8-341.333h-418.133z" />
223
+ <glyph unicode="&#xe9d5;" glyph-name="underline" d="M512 213.334c166.4 0 298.667 132.267 298.667 298.667v298.667c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-298.667c0-119.467-93.867-213.333-213.333-213.333s-213.333 93.867-213.333 213.333v298.667c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-298.667c0-166.4 132.267-298.667 298.667-298.667zM853.333 85.334h-682.667c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h682.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
224
+ <glyph unicode="&#xe9d6;" glyph-name="unlock" d="M810.667 512h-469.333v128c0 46.933 17.067 89.6 51.2 119.467 29.867 34.133 72.533 51.2 119.467 51.2 0 0 0 0 0 0 81.067 0 149.333-55.467 166.4-136.533 4.267-21.333 29.867-38.4 51.2-34.133s38.4 25.6 34.133 51.2c-25.6 119.467-132.267 204.8-251.733 204.8 0 0 0 0 0 0-68.267 0-132.267-25.6-179.2-76.8-51.2-46.933-76.8-110.933-76.8-179.2v-128h-42.667c-72.533 0-128-55.467-128-128v-298.667c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v298.667c0 72.533-55.467 128-128 128zM853.333 85.334c0-25.6-17.067-42.667-42.667-42.667h-597.333c-25.6 0-42.667 17.067-42.667 42.667v298.667c0 25.6 17.067 42.667 42.667 42.667h597.333c25.6 0 42.667-17.067 42.667-42.667v-298.667z" />
225
+ <glyph unicode="&#xe9d7;" glyph-name="upload" d="M896 256c-25.6 0-42.667-17.067-42.667-42.667v-128c0-25.6-17.067-42.667-42.667-42.667h-597.333c-25.6 0-42.667 17.067-42.667 42.667v128c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-128c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v128c0 25.6-17.067 42.667-42.667 42.667zM371.2 652.8l98.133 98.133v-494.933c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v494.933l98.133-98.133c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-170.667 170.667c-4.267 4.267-8.533 8.533-12.8 8.533-8.533 4.267-21.333 4.267-34.133 0-4.267-4.267-8.533-4.267-12.8-8.533l-170.667-170.667c-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0z" />
226
+ <glyph unicode="&#xe9d8;" glyph-name="upload-cloud" d="M994.133 465.067c-46.933 81.067-132.267 132.267-226.133 132.267h-21.333c-64 187.733-264.533 294.4-456.533 243.2-102.4-25.6-183.467-89.6-238.933-174.933s-68.267-192-42.667-290.133c17.067-59.733 42.667-110.933 85.333-157.867 17.067-17.067 42.667-21.333 59.733-4.267s21.333 42.667 4.267 59.733c-29.867 34.133-55.467 76.8-64 123.733-21.333 76.8-8.533 153.6 34.133 226.133 38.4 68.267 106.667 119.467 183.467 136.533 157.867 42.667 324.267-55.467 362.667-213.333 4.267-17.067 21.333-29.867 42.667-29.867h51.2c64 0 119.467-34.133 149.333-89.6 21.333-38.4 25.6-85.333 12.8-128s-42.667-81.067-81.067-102.4c-21.333-12.8-29.867-38.4-17.067-59.733 8.533-12.8 21.333-21.333 38.4-21.333 8.533 0 12.8 0 21.333 4.267 59.733 34.133 102.4 85.333 123.733 153.6 17.067 59.733 8.533 132.267-21.333 192zM541.867 456.534c-4.267 4.267-8.533 8.533-12.8 8.533-8.533 4.267-21.333 4.267-34.133 0-4.267-4.267-8.533-4.267-12.8-8.533l-170.667-170.667c-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0l98.133 98.133v-281.6c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v281.6l98.133-98.133c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-170.667 170.667z" />
227
+ <glyph unicode="&#xe9d9;" glyph-name="user" d="M682.667 341.334h-341.333c-119.467 0-213.333-93.867-213.333-213.333v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 72.533 55.467 128 128 128h341.333c72.533 0 128-55.467 128-128v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 119.467-93.867 213.333-213.333 213.333zM512 426.667c119.467 0 213.333 93.867 213.333 213.333s-93.867 213.333-213.333 213.333-213.333-93.867-213.333-213.333 93.867-213.333 213.333-213.333zM512 768c72.533 0 128-55.467 128-128s-55.467-128-128-128-128 55.467-128 128 55.467 128 128 128z" />
228
+ <glyph unicode="&#xe9da;" glyph-name="user-check" d="M512 341.334h-298.667c-119.467 0-213.333-93.867-213.333-213.333v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 72.533 55.467 128 128 128h298.667c72.533 0 128-55.467 128-128v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 119.467-93.867 213.333-213.333 213.333zM362.667 426.667c119.467 0 213.333 93.867 213.333 213.333s-93.867 213.333-213.333 213.333-213.333-93.867-213.333-213.333 93.867-213.333 213.333-213.333zM362.667 768c72.533 0 128-55.467 128-128s-55.467-128-128-128-128 55.467-128 128 55.467 128 128 128zM1011.2 584.534c-17.067 17.067-42.667 17.067-59.733 0l-140.8-140.8-55.467 55.467c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l85.333-85.333c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l170.667 170.667c17.067 17.067 17.067 42.667 0 59.733z" />
229
+ <glyph unicode="&#xe9db;" glyph-name="user-minus" d="M512 341.334h-298.667c-119.467 0-213.333-93.867-213.333-213.333v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 72.533 55.467 128 128 128h298.667c72.533 0 128-55.467 128-128v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 119.467-93.867 213.333-213.333 213.333zM362.667 426.667c119.467 0 213.333 93.867 213.333 213.333s-93.867 213.333-213.333 213.333-213.333-93.867-213.333-213.333 93.867-213.333 213.333-213.333zM362.667 768c72.533 0 128-55.467 128-128s-55.467-128-128-128-128 55.467-128 128 55.467 128 128 128zM981.333 512h-256c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h256c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
230
+ <glyph unicode="&#xe9dc;" glyph-name="user-plus" d="M512 341.334h-298.667c-119.467 0-213.333-93.867-213.333-213.333v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 72.533 55.467 128 128 128h298.667c72.533 0 128-55.467 128-128v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 119.467-93.867 213.333-213.333 213.333zM362.667 426.667c119.467 0 213.333 93.867 213.333 213.333s-93.867 213.333-213.333 213.333-213.333-93.867-213.333-213.333 93.867-213.333 213.333-213.333zM362.667 768c72.533 0 128-55.467 128-128s-55.467-128-128-128-128 55.467-128 128 55.467 128 128 128zM981.333 512h-85.333v85.333c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-85.333h-85.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h85.333v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333h85.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
231
+ <glyph unicode="&#xe9dd;" glyph-name="user-x" d="M512 341.334h-298.667c-119.467 0-213.333-93.867-213.333-213.333v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 72.533 55.467 128 128 128h298.667c72.533 0 128-55.467 128-128v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 119.467-93.867 213.333-213.333 213.333zM362.667 426.667c119.467 0 213.333 93.867 213.333 213.333s-93.867 213.333-213.333 213.333-213.333-93.867-213.333-213.333 93.867-213.333 213.333-213.333zM362.667 768c72.533 0 128-55.467 128-128s-55.467-128-128-128-128 55.467-128 128 55.467 128 128 128zM934.4 490.667l76.8 76.8c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-76.8-76.8-76.8 76.8c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l76.8-76.8-76.8-76.8c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l76.8 76.8 76.8-76.8c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-76.8 76.8z" />
232
+ <glyph unicode="&#xe9de;" glyph-name="users" d="M554.667 341.334h-341.333c-119.467 0-213.333-93.867-213.333-213.333v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 72.533 55.467 128 128 128h341.333c72.533 0 128-55.467 128-128v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c0 119.467-93.867 213.333-213.333 213.333zM384 426.667c119.467 0 213.333 93.867 213.333 213.333s-93.867 213.333-213.333 213.333-213.333-93.867-213.333-213.333 93.867-213.333 213.333-213.333zM384 768c72.533 0 128-55.467 128-128s-55.467-128-128-128-128 55.467-128 128 55.467 128 128 128zM861.867 332.8c-21.333 4.267-46.933-8.533-51.2-29.867s8.533-46.933 29.867-51.2c55.467-12.8 93.867-64 93.867-123.733v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333c4.267 98.133-59.733 183.467-157.867 204.8zM691.2 844.8c-21.333 8.533-42.667-4.267-51.2-29.867-4.267-21.333 8.533-46.933 29.867-51.2 68.267-17.067 110.933-85.333 93.867-157.867-12.8-46.933-46.933-81.067-93.867-93.867-21.333-4.267-38.4-29.867-29.867-51.2 4.267-21.333 21.333-34.133 42.667-34.133 4.267 0 8.533 0 8.533 0 76.8 21.333 136.533 76.8 153.6 153.6 29.867 119.467-38.4 238.933-153.6 264.533z" />
233
+ <glyph unicode="&#xe9df;" glyph-name="video" d="M1002.667 678.4c-12.8 8.533-29.867 4.267-42.667-4.267l-234.667-166.4v132.267c0 72.533-55.467 128-128 128h-469.333c-72.533 0-128-55.467-128-128v-426.667c0-72.533 55.467-128 128-128h469.333c72.533 0 128 55.467 128 128v132.267l230.4-166.4c8.533-4.267 17.067-8.533 25.6-8.533s12.8 0 21.333 4.267c12.8 8.533 21.333 21.333 21.333 38.4v426.667c0 17.067-8.533 29.867-21.333 38.4zM640 213.334c0-25.6-17.067-42.667-42.667-42.667h-469.333c-25.6 0-42.667 17.067-42.667 42.667v426.667c0 25.6 17.067 42.667 42.667 42.667h469.333c25.6 0 42.667-17.067 42.667-42.667v-426.667zM938.667 294.4l-183.467 132.267 183.467 132.267v-264.533z" />
234
+ <glyph unicode="&#xe9e0;" glyph-name="video-off" d="M1002.667 678.4c-12.8 8.533-29.867 4.267-42.667-4.267l-230.4-162.133-4.267 4.267v123.733c0 72.533-55.467 128-128 128h-140.8c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h140.8c25.6 0 42.667-17.067 42.667-42.667v-140.8c0-12.8 4.267-21.333 12.8-29.867l42.667-42.667c12.8-12.8 38.4-17.067 55.467-4.267l187.733 132.267v-341.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v426.667c0 17.067-8.533 29.867-21.333 38.4zM712.533 285.867c0 0 0 0 0 0l-469.333 469.333c0 0 0 0 0 0l-170.667 170.667c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l98.133-98.133c-64-8.533-110.933-64-110.933-128v-426.667c0-72.533 55.467-128 128-128h469.333c51.2 0 98.133 34.133 119.467 76.8l234.667-234.667c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-298.667 298.667zM640 213.334c0-25.6-17.067-42.667-42.667-42.667h-469.333c-25.6 0-42.667 17.067-42.667 42.667v426.667c0 25.6 17.067 42.667 42.667 42.667h68.267l443.733-443.733v-25.6z" />
235
+ <glyph unicode="&#xe9e1;" glyph-name="voicemail" d="M789.333 682.667c-128 0-234.667-106.667-234.667-234.667 0-55.467 21.333-106.667 55.467-149.333h-196.267c34.133 42.667 55.467 93.867 55.467 149.333 0 128-106.667 234.667-234.667 234.667s-234.667-106.667-234.667-234.667c0-128 106.667-234.667 234.667-234.667h554.667c128 0 234.667 106.667 234.667 234.667s-106.667 234.667-234.667 234.667zM85.333 448c0 81.067 68.267 149.333 149.333 149.333s149.333-68.267 149.333-149.333-68.267-149.333-149.333-149.333-149.333 68.267-149.333 149.333zM789.333 298.667c-81.067 0-149.333 68.267-149.333 149.333s68.267 149.333 149.333 149.333 149.333-68.267 149.333-149.333-68.267-149.333-149.333-149.333z" />
236
+ <glyph unicode="&#xe9e2;" glyph-name="volume" d="M486.4 763.734c-12.8 8.533-34.133 4.267-46.933-4.267l-200.533-162.133h-153.6c-25.6 0-42.667-17.067-42.667-42.667v-256c0-25.6 17.067-42.667 42.667-42.667h153.6l200.533-162.133c8.533-4.267 17.067-8.533 25.6-8.533 4.267 0 12.8 0 17.067 4.267 12.8 8.533 25.6 21.333 25.6 38.4v597.333c4.267 17.067-4.267 29.867-21.333 38.4zM426.667 217.6l-145.067 115.2c-8.533 4.267-17.067 8.533-25.6 8.533h-128v170.667h128c8.533 0 17.067 4.267 25.6 8.533l145.067 115.2v-418.133z" />
237
+ <glyph unicode="&#xe9e3;" glyph-name="volume-1" d="M486.4 763.734c-12.8 8.533-34.133 4.267-46.933-4.267l-200.533-162.133h-153.6c-25.6 0-42.667-17.067-42.667-42.667v-256c0-25.6 17.067-42.667 42.667-42.667h153.6l200.533-162.133c8.533-4.267 17.067-8.533 25.6-8.533 4.267 0 12.8 0 17.067 4.267 12.8 8.533 25.6 21.333 25.6 38.4v597.333c4.267 17.067-4.267 29.867-21.333 38.4zM426.667 217.6l-145.067 115.2c-8.533 4.267-17.067 8.533-25.6 8.533h-128v170.667h128c8.533 0 17.067 4.267 25.6 8.533l145.067 115.2v-418.133zM691.2 605.867c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733c68.267-68.267 68.267-174.933 0-243.2-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c102.4 102.4 102.4 264.533 0 362.667z" />
238
+ <glyph unicode="&#xe9e4;" glyph-name="volume-2" d="M486.4 763.734c-12.8 8.533-34.133 4.267-46.933-4.267l-200.533-162.133h-153.6c-25.6 0-42.667-17.067-42.667-42.667v-256c0-25.6 17.067-42.667 42.667-42.667h153.6l200.533-162.133c8.533-4.267 17.067-8.533 25.6-8.533 4.267 0 12.8 0 17.067 4.267 12.8 8.533 25.6 21.333 25.6 38.4v597.333c4.267 17.067-4.267 29.867-21.333 38.4zM426.667 217.6l-145.067 115.2c-8.533 4.267-17.067 8.533-25.6 8.533h-128v170.667h128c8.533 0 17.067 4.267 25.6 8.533l145.067 115.2v-418.133zM844.8 759.467c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733c149.333-149.333 149.333-392.533 0-541.867-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c183.467 179.2 183.467 477.867 0 661.333zM631.467 605.867c-17.067-17.067-17.067-42.667 0-59.733 68.267-68.267 68.267-174.933 0-243.2-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c98.133 98.133 98.133 260.267 0 362.667-12.8 17.067-42.667 17.067-59.733 0z" />
239
+ <glyph unicode="&#xe9e5;" glyph-name="volume-x" d="M486.4 763.734c-12.8 8.533-34.133 4.267-46.933-4.267l-200.533-162.133h-153.6c-25.6 0-42.667-17.067-42.667-42.667v-256c0-25.6 17.067-42.667 42.667-42.667h153.6l200.533-162.133c8.533-4.267 17.067-8.533 25.6-8.533 4.267 0 12.8 0 17.067 4.267 12.8 8.533 25.6 21.333 25.6 38.4v597.333c4.267 17.067-4.267 29.867-21.333 38.4zM426.667 217.6l-145.067 115.2c-8.533 4.267-17.067 8.533-25.6 8.533h-128v170.667h128c8.533 0 17.067 4.267 25.6 8.533l145.067 115.2v-418.133zM913.067 426.667l98.133 98.133c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-98.133-98.133-98.133 98.133c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l98.133-98.133-98.133-98.133c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8l98.133 98.133 98.133-98.133c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-98.133 98.133z" />
240
+ <glyph unicode="&#xe9e6;" glyph-name="watch" d="M853.333 426.667c0 98.133-42.667 183.467-106.667 247.467l-12.8 149.333c-8.533 64-59.733 115.2-128 115.2 0 0 0 0 0 0h-187.733c-64 0-119.467-51.2-128-115.2l-12.8-149.333c-64-59.733-106.667-149.333-106.667-247.467s42.667-187.733 106.667-247.467l12.8-149.333c8.533-64 64-115.2 128-115.2 0 0 0 0 0 0h183.467c0 0 0 0 0 0 68.267 0 119.467 51.2 128 115.2l12.8 145.067c68.267 64 110.933 153.6 110.933 251.733zM375.467 814.934c0 21.333 21.333 38.4 42.667 38.4h187.733c21.333 0 42.667-17.067 42.667-38.4l8.533-76.8c-46.933 17.067-93.867 29.867-145.067 29.867s-98.133-12.8-140.8-29.867l4.267 76.8zM256 426.667c0 140.8 115.2 256 256 256s256-115.2 256-256-115.2-256-256-256-256 115.2-256 256zM648.533 38.4c0-21.333-21.333-38.4-42.667-38.4 0 0 0 0 0 0h-187.733c0 0 0 0 0 0-21.333 0-38.4 17.067-42.667 38.4l-8.533 76.8c42.667-21.333 89.6-29.867 140.8-29.867s98.133 12.8 140.8 29.867v-76.8zM546.133 332.8c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-51.2 51.2v110.933c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-128c0-12.8 4.267-21.333 12.8-29.867l64-64z" />
241
+ <glyph unicode="&#xe9e7;" glyph-name="wifi" d="M187.733 435.2c-17.067-17.067-21.333-42.667-4.267-59.733 8.533-8.533 21.333-17.067 34.133-17.067 8.533 0 21.333 4.267 25.6 8.533 157.867 132.267 388.267 132.267 546.133 0 17.067-17.067 46.933-12.8 59.733 4.267 17.067 17.067 12.8 46.933-4.267 59.733-192 162.133-469.333 162.133-657.067 4.267zM989.867 588.8c-273.067 238.933-686.933 238.933-960 0-17.067-17.067-21.333-42.667-4.267-59.733 12.8-12.8 21.333-17.067 34.133-17.067 8.533 0 21.333 4.267 29.867 8.533 243.2 213.333 605.867 213.333 844.8 0 17.067-17.067 42.667-12.8 59.733 4.267 17.067 21.333 17.067 46.933-4.267 64zM341.333 285.867c-21.333-12.8-25.6-38.4-8.533-59.733 12.8-17.067 38.4-25.6 59.733-8.533 72.533 51.2 174.933 51.2 247.467 0 8.533-4.267 17.067-8.533 25.6-8.533 12.8 0 25.6 4.267 34.133 17.067 12.8 21.333 8.533 46.933-8.533 59.733-110.933 72.533-247.467 72.533-349.867 0zM482.133 115.2c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 21.333 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0z" />
242
+ <glyph unicode="&#xe9e8;" glyph-name="wifi-off" d="M1011.2-12.8l-721.067 721.067c0 0 0 0 0 0l-217.6 217.6c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l174.933-174.933c-55.467-29.867-106.667-64-153.6-106.667-17.067-17.067-21.333-42.667-4.267-59.733 8.533-8.533 17.067-12.8 29.867-12.8 8.533 0 21.333 4.267 29.867 12.8 46.933 42.667 102.4 76.8 162.133 102.4l98.133-98.133c-59.733-21.333-115.2-51.2-166.4-89.6-17.067-17.067-21.333-42.667-4.267-59.733 8.533-8.533 21.333-17.067 34.133-17.067 8.533 0 21.333 4.267 25.6 8.533 51.2 42.667 115.2 72.533 179.2 89.6l119.467-119.467c-68.267 4.267-140.8-12.8-196.267-55.467-21.333-12.8-25.6-38.4-8.533-59.733 12.8-17.067 38.4-25.6 59.733-8.533 72.533 51.2 174.933 51.2 247.467 0 8.533-4.267 17.067-8.533 25.6-8.533 4.267 0 4.267 0 8.533 0l281.6-281.6c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c12.8 17.067 12.8 42.667-4.267 59.733zM674.133 486.4c-8.533-21.333 0-46.933 21.333-55.467 29.867-17.067 59.733-34.133 89.6-59.733 8.533-8.533 17.067-8.533 25.6-8.533 12.8 0 25.6 4.267 34.133 17.067 17.067 17.067 12.8 46.933-4.267 59.733-34.133 25.6-68.267 51.2-106.667 68.267-21.333 8.533-46.933 0-59.733-21.333zM460.8 682.667c170.667 12.8 345.6-42.667 473.6-157.867 8.533-8.533 17.067-8.533 29.867-8.533s25.6 4.267 34.133 12.8c17.067 17.067 12.8 42.667-4.267 59.733-145.067 128-341.333 196.267-537.6 179.2-25.6 0-42.667-21.333-38.4-46.933 0-25.6 17.067-42.667 42.667-38.4zM482.133 115.2c-8.533-8.533-12.8-17.067-12.8-29.867s4.267-21.333 12.8-29.867c8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8c8.533 8.533 12.8 21.333 12.8 29.867s-4.267 21.333-12.8 29.867c-17.067 17.067-42.667 17.067-59.733 0z" />
243
+ <glyph unicode="&#xe9e9;" glyph-name="wind" d="M85.333 554.667h384c0 0 0 0 0 0 34.133 0 68.267 12.8 89.6 38.4 51.2 51.2 51.2 132.267 0 179.2-21.333 25.6-55.467 38.4-89.6 38.4s-68.267-12.8-89.6-38.4c-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0c8.533 8.533 17.067 12.8 29.867 12.8 0 0 0 0 0 0 12.8 0 21.333-4.267 29.867-12.8 17.067-17.067 17.067-42.667 0-59.733-8.533-8.533-17.067-12.8-29.867-12.8 0 0 0 0 0 0h-384c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667zM597.333 298.667c0 0 0 0 0 0h-512c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h512c0 0 0 0 0 0 12.8 0 21.333-4.267 29.867-12.8s12.8-17.067 12.8-29.867c0-12.8-4.267-21.333-12.8-29.867s-17.067-12.8-29.867-12.8c0 0 0 0 0 0-12.8 0-21.333 4.267-29.867 12.8-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733c25.6-25.6 55.467-38.4 89.6-38.4 0 0 0 0 0 0 34.133 0 64 12.8 89.6 38.4s38.4 55.467 38.4 89.6c0 34.133-12.8 68.267-38.4 89.6-21.333 25.6-55.467 38.4-89.6 38.4zM938.667 640c-59.733 59.733-153.6 59.733-209.067 0-17.067-17.067-17.067-42.667 0-59.733s42.667-17.067 59.733 0c25.6 25.6 64 25.6 89.6 0s25.6-64 0-89.6c-12.8-12.8-29.867-17.067-46.933-17.067h-746.667c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h746.667c38.4 0 76.8 17.067 106.667 42.667 55.467 55.467 55.467 149.333 0 209.067z" />
244
+ <glyph unicode="&#xe9ea;" glyph-name="x" d="M571.733 426.667l226.133 226.133c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-226.133-226.133-226.133 226.133c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l226.133-226.133-226.133-226.133c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l226.133 226.133 226.133-226.133c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-226.133 226.133z" />
245
+ <glyph unicode="&#xe9eb;" glyph-name="x-circle" d="M512 896c-260.267 0-469.333-209.067-469.333-469.333s209.067-469.333 469.333-469.333 469.333 209.067 469.333 469.333-209.067 469.333-469.333 469.333zM512 42.667c-213.333 0-384 170.667-384 384s170.667 384 384 384c213.333 0 384-170.667 384-384s-170.667-384-384-384zM669.867 584.534c-17.067 17.067-42.667 17.067-59.733 0l-98.133-98.133-98.133 98.133c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l98.133-98.133-98.133-98.133c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l98.133 98.133 98.133-98.133c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-98.133 98.133 98.133 98.133c17.067 17.067 17.067 42.667 0 59.733z" />
246
+ <glyph unicode="&#xe9ec;" glyph-name="x-square" d="M810.667 853.334h-597.333c-72.533 0-128-55.467-128-128v-597.333c0-72.533 55.467-128 128-128h597.333c72.533 0 128 55.467 128 128v597.333c0 72.533-55.467 128-128 128zM853.333 128c0-25.6-17.067-42.667-42.667-42.667h-597.333c-25.6 0-42.667 17.067-42.667 42.667v597.333c0 25.6 17.067 42.667 42.667 42.667h597.333c25.6 0 42.667-17.067 42.667-42.667v-597.333zM669.867 584.534c-17.067 17.067-42.667 17.067-59.733 0l-98.133-98.133-98.133 98.133c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l98.133-98.133-98.133-98.133c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l98.133 98.133 98.133-98.133c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-98.133 98.133 98.133 98.133c17.067 17.067 17.067 42.667 0 59.733z" />
247
+ <glyph unicode="&#xe9ed;" glyph-name="zap" d="M934.4 529.067c-8.533 17.067-21.333 25.6-38.4 25.6h-337.067l38.4 294.4c4.267 17.067-8.533 38.4-25.6 42.667-17.067 8.533-38.4 4.267-51.2-12.8l-426.667-512c-8.533-12.8-12.8-29.867-4.267-46.933 8.533-12.8 21.333-21.333 38.4-21.333h337.067l-38.4-294.4c-4.267-17.067 8.533-38.4 25.6-42.667 4.267-4.267 12.8-4.267 17.067-4.267 12.8 0 25.6 4.267 34.133 17.067l426.667 512c8.533 12.8 12.8 29.867 4.267 42.667zM529.067 140.8l25.6 196.267c0 12.8-4.267 25.6-8.533 34.133-8.533 8.533-21.333 12.8-34.133 12.8h-294.4l273.067 328.533-21.333-196.267c0-12.8 4.267-25.6 8.533-34.133 8.533-8.533 21.333-12.8 29.867-12.8h294.4l-273.067-328.533z" />
248
+ <glyph unicode="&#xe9ee;" glyph-name="zoom-in" d="M925.867 72.534l-157.867 157.867c51.2 64 85.333 149.333 85.333 238.933 0 213.333-170.667 384-384 384s-384-170.667-384-384c0-213.333 170.667-384 384-384 89.6 0 174.933 29.867 238.933 85.333l157.867-157.867c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733zM170.667 469.334c0 166.4 132.267 298.667 298.667 298.667s298.667-132.267 298.667-298.667c0-81.067-34.133-157.867-85.333-209.067 0 0 0 0 0 0s0 0 0 0c-55.467-55.467-128-85.333-209.067-85.333-170.667-4.267-302.933 128-302.933 294.4zM597.333 512h-85.333v85.333c0 25.6-17.067 42.667-42.667 42.667s-42.667-17.067-42.667-42.667v-85.333h-85.333c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h85.333v-85.333c0-25.6 17.067-42.667 42.667-42.667s42.667 17.067 42.667 42.667v85.333h85.333c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
249
+ <glyph unicode="&#xe9ef;" glyph-name="zoom-out" d="M925.867 72.534l-157.867 157.867c51.2 64 85.333 149.333 85.333 238.933 0 213.333-170.667 384-384 384s-384-170.667-384-384c0-213.333 170.667-384 384-384 89.6 0 174.933 29.867 238.933 85.333l157.867-157.867c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733zM170.667 469.334c0 166.4 132.267 298.667 298.667 298.667s298.667-132.267 298.667-298.667c0-81.067-34.133-157.867-85.333-209.067 0 0 0 0 0 0s0 0 0 0c-55.467-55.467-128-85.333-209.067-85.333-170.667-4.267-302.933 128-302.933 294.4zM597.333 512h-256c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667h256c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667z" />
250
+ </font></defs></svg>
assets/libs/feather/fonts/feather.ttf ADDED
Binary file
assets/libs/feather/fonts/feather.woff ADDED
Binary file
assets/libs/perfect-scrollbar/css/custom-theme.css ADDED
@@ -0,0 +1,145 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .ps-theme-wpc {
2
+ -ms-touch-action: none;
3
+ touch-action: none;
4
+ overflow: hidden !important;
5
+ -ms-overflow-style: none;
6
+ }
7
+
8
+ @supports (-ms-overflow-style: none) {
9
+ .ps-theme-wpc {
10
+ overflow: auto !important;
11
+ }
12
+ }
13
+
14
+ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
15
+ .ps-theme-wpc {
16
+ overflow: auto !important;
17
+ }
18
+ }
19
+
20
+ .ps-theme-wpc.ps-active-x > .ps-scrollbar-x-rail,
21
+ .ps-theme-wpc.ps-active-y > .ps-scrollbar-y-rail {
22
+ display: block;
23
+ background-color: transparent;
24
+ }
25
+
26
+ .ps-theme-wpc.ps-in-scrolling {
27
+ pointer-events: none;
28
+ }
29
+
30
+ .ps-theme-wpc.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail {
31
+ background-color: rgba(0, 0, 0, .1) !important;
32
+ }
33
+
34
+ .ps-theme-wpc.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x {
35
+ background-color: rgba(0, 0, 0, 1);
36
+ }
37
+
38
+ .ps-theme-wpc.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail {
39
+ background-color: rgba(0, 0, 0, .1) !important;
40
+ }
41
+
42
+ .ps-theme-wpc.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y {
43
+ background-color: rgba(0, 0, 0, 1);
44
+ width: 2px;
45
+ border-radius: 1px;
46
+ }
47
+
48
+ .ps-theme-wpc > .ps-scrollbar-x-rail {
49
+ display: none;
50
+ position: absolute;
51
+ /* please don't change 'position' */
52
+ opacity: 0;
53
+ transition: background-color .2s linear, opacity .2s linear;
54
+ bottom: 0;
55
+ /* there must be 'bottom' for ps-scrollbar-x-rail */
56
+ height: 2px;
57
+ border-radius: 1px;
58
+ }
59
+
60
+ .ps-theme-wpc > .ps-scrollbar-x-rail > .ps-scrollbar-x {
61
+ position: absolute;
62
+ /* please don't change 'position' */
63
+ background-color: rgba(0, 0, 0, 1);
64
+ transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;
65
+ bottom: 0;
66
+ /* there must be 'bottom' for ps-scrollbar-x */
67
+ height: 2px !important;
68
+ border-radius: 1px !important;
69
+ }
70
+
71
+ .ps-theme-wpc > .ps-scrollbar-x-rail:hover > .ps-scrollbar-x, .ps-theme-wpc > .ps-scrollbar-x-rail:active > .ps-scrollbar-x {
72
+ height: 2px;
73
+ border-radius: 1px;
74
+ }
75
+
76
+ .ps-theme-wpc > .ps-scrollbar-y-rail {
77
+ display: none;
78
+ position: absolute;
79
+ /* please don't change 'position' */
80
+ opacity: 0;
81
+ transition: background-color .2s linear, opacity .2s linear;
82
+ right: 0;
83
+ /* there must be 'right' for ps-scrollbar-y-rail */
84
+ width: 2px;
85
+ border-radius: 1px;
86
+ }
87
+
88
+ .ps-theme-wpc > .ps-scrollbar-y-rail > .ps-scrollbar-y {
89
+ position: absolute;
90
+ /* please don't change 'position' */
91
+ background-color: rgba(0, 0, 0, 1);
92
+ /* border-radius: 0; */
93
+ transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;
94
+ right: 0;
95
+ /* there must be 'right' for ps-scrollbar-y */
96
+ width: 2px !important;
97
+ border-radius: 1px !important;
98
+ }
99
+
100
+ .ps-theme-wpc > .ps-scrollbar-y-rail:hover > .ps-scrollbar-y, .ps-theme-wpc > .ps-scrollbar-y-rail:active > .ps-scrollbar-y {
101
+ width: 2px;
102
+ border-radius: 1px;
103
+ }
104
+
105
+ .ps-theme-wpc:hover.ps-in-scrolling {
106
+ pointer-events: none;
107
+ }
108
+
109
+ .ps-theme-wpc:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail {
110
+ background-color: rgba(0, 0, 0, 1);
111
+ }
112
+
113
+ .ps-theme-wpc:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x {
114
+ background-color: rgba(0, 0, 0, 1);
115
+ height: 2px;
116
+ border-radius: 1px;
117
+ }
118
+
119
+ .ps-theme-wpc:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail {
120
+ background-color: rgba(0, 0, 0, 1);
121
+ }
122
+
123
+ .ps-theme-wpc:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y {
124
+ background-color: rgba(0, 0, 0, 1);
125
+ width: 2px;
126
+ border-radius: 1px;
127
+ }
128
+
129
+ .ps-theme-wpc:hover > .ps-scrollbar-x-rail:hover {
130
+ background-color: rgba(0, 0, 0, .1);
131
+ opacity: 1;
132
+ }
133
+
134
+ .ps-theme-wpc:hover > .ps-scrollbar-x-rail:hover > .ps-scrollbar-x {
135
+ background-color: rgba(0, 0, 0, 1);
136
+ }
137
+
138
+ .ps-theme-wpc:hover > .ps-scrollbar-y-rail:hover {
139
+ background-color: rgba(0, 0, 0, .1);
140
+ opacity: 1;
141
+ }
142
+
143
+ .ps-theme-wpc:hover > .ps-scrollbar-y-rail:hover > .ps-scrollbar-y {
144
+ background-color: rgba(0, 0, 0, 1);
145
+ }
assets/libs/perfect-scrollbar/css/perfect-scrollbar.css ADDED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* perfect-scrollbar v0.6.14 */
2
+ .ps-container {
3
+ -ms-touch-action: auto;
4
+ touch-action: auto;
5
+ overflow: hidden !important;
6
+ -ms-overflow-style: none; }
7
+ @supports (-ms-overflow-style: none) {
8
+ .ps-container {
9
+ overflow: auto !important; } }
10
+ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
11
+ .ps-container {
12
+ overflow: auto !important; } }
13
+ .ps-container.ps-active-x > .ps-scrollbar-x-rail,
14
+ .ps-container.ps-active-y > .ps-scrollbar-y-rail {
15
+ display: block;
16
+ background-color: transparent; }
17
+ .ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail {
18
+ background-color: #eee;
19
+ opacity: 0.9; }
20
+ .ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x {
21
+ background-color: #999;
22
+ height: 11px; }
23
+ .ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail {
24
+ background-color: #eee;
25
+ opacity: 0.9; }
26
+ .ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y {
27
+ background-color: #999;
28
+ width: 11px; }
29
+ .ps-container > .ps-scrollbar-x-rail {
30
+ display: none;
31
+ position: absolute;
32
+ /* please don't change 'position' */
33
+ opacity: 0;
34
+ -webkit-transition: background-color .2s linear, opacity .2s linear;
35
+ -o-transition: background-color .2s linear, opacity .2s linear;
36
+ -moz-transition: background-color .2s linear, opacity .2s linear;
37
+ transition: background-color .2s linear, opacity .2s linear;
38
+ bottom: 0px;
39
+ /* there must be 'bottom' for ps-scrollbar-x-rail */
40
+ height: 15px; }
41
+ .ps-container > .ps-scrollbar-x-rail > .ps-scrollbar-x {
42
+ position: absolute;
43
+ /* please don't change 'position' */
44
+ background-color: #aaa;
45
+ -webkit-border-radius: 6px;
46
+ -moz-border-radius: 6px;
47
+ border-radius: 6px;
48
+ -webkit-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;
49
+ transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;
50
+ -o-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;
51
+ -moz-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;
52
+ transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;
53
+ transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;
54
+ bottom: 2px;
55
+ /* there must be 'bottom' for ps-scrollbar-x */
56
+ height: 6px; }
57
+ .ps-container > .ps-scrollbar-x-rail:hover > .ps-scrollbar-x, .ps-container > .ps-scrollbar-x-rail:active > .ps-scrollbar-x {
58
+ height: 11px; }
59
+ .ps-container > .ps-scrollbar-y-rail {
60
+ display: none;
61
+ position: absolute;
62
+ /* please don't change 'position' */
63
+ opacity: 0;
64
+ -webkit-transition: background-color .2s linear, opacity .2s linear;
65
+ -o-transition: background-color .2s linear, opacity .2s linear;
66
+ -moz-transition: background-color .2s linear, opacity .2s linear;
67
+ transition: background-color .2s linear, opacity .2s linear;
68
+ right: 0;
69
+ /* there must be 'right' for ps-scrollbar-y-rail */
70
+ width: 15px; }
71
+ .ps-container > .ps-scrollbar-y-rail > .ps-scrollbar-y {
72
+ position: absolute;
73
+ /* please don't change 'position' */
74
+ background-color: #aaa;
75
+ -webkit-border-radius: 6px;
76
+ -moz-border-radius: 6px;
77
+ border-radius: 6px;
78
+ -webkit-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;
79
+ transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;
80
+ -o-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;
81
+ -moz-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;
82
+ transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;
83
+ transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;
84
+ right: 2px;
85
+ /* there must be 'right' for ps-scrollbar-y */
86
+ width: 6px; }
87
+ .ps-container > .ps-scrollbar-y-rail:hover > .ps-scrollbar-y, .ps-container > .ps-scrollbar-y-rail:active > .ps-scrollbar-y {
88
+ width: 11px; }
89
+ .ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail {
90
+ background-color: #eee;
91
+ opacity: 0.9; }
92
+ .ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x {
93
+ background-color: #999;
94
+ height: 11px; }
95
+ .ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail {
96
+ background-color: #eee;
97
+ opacity: 0.9; }
98
+ .ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y {
99
+ background-color: #999;
100
+ width: 11px; }
101
+ .ps-container:hover > .ps-scrollbar-x-rail,
102
+ .ps-container:hover > .ps-scrollbar-y-rail {
103
+ opacity: 0.6; }
104
+ .ps-container:hover > .ps-scrollbar-x-rail:hover {
105
+ background-color: #eee;
106
+ opacity: 0.9; }
107
+ .ps-container:hover > .ps-scrollbar-x-rail:hover > .ps-scrollbar-x {
108
+ background-color: #999; }
109
+ .ps-container:hover > .ps-scrollbar-y-rail:hover {
110
+ background-color: #eee;
111
+ opacity: 0.9; }
112
+ .ps-container:hover > .ps-scrollbar-y-rail:hover > .ps-scrollbar-y {
113
+ background-color: #999; }
assets/libs/perfect-scrollbar/css/perfect-scrollbar.min.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /* perfect-scrollbar v0.6.14 */
2
+ .ps-container{-ms-touch-action:auto;touch-action:auto;overflow:hidden !important;-ms-overflow-style:none}@supports (-ms-overflow-style: none){.ps-container{overflow:auto !important}}@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none){.ps-container{overflow:auto !important}}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block;background-color:transparent}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999;height:11px}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999;width:11px}.ps-container>.ps-scrollbar-x-rail{display:none;position:absolute;opacity:0;-webkit-transition:background-color .2s linear, opacity .2s linear;-o-transition:background-color .2s linear, opacity .2s linear;-moz-transition:background-color .2s linear, opacity .2s linear;transition:background-color .2s linear, opacity .2s linear;bottom:0px;height:15px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;background-color:#aaa;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;-o-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;-moz-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;bottom:2px;height:6px}.ps-container>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x,.ps-container>.ps-scrollbar-x-rail:active>.ps-scrollbar-x{height:11px}.ps-container>.ps-scrollbar-y-rail{display:none;position:absolute;opacity:0;-webkit-transition:background-color .2s linear, opacity .2s linear;-o-transition:background-color .2s linear, opacity .2s linear;-moz-transition:background-color .2s linear, opacity .2s linear;transition:background-color .2s linear, opacity .2s linear;right:0;width:15px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;background-color:#aaa;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;-o-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;-moz-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;right:2px;width:6px}.ps-container>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y,.ps-container>.ps-scrollbar-y-rail:active>.ps-scrollbar-y{width:11px}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999;height:11px}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999;width:11px}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999}
assets/libs/perfect-scrollbar/js/perfect-scrollbar.jquery.js ADDED
@@ -0,0 +1,1579 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* perfect-scrollbar v0.6.14 */
2
+ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
3
+ 'use strict';
4
+
5
+ var ps = require('../main');
6
+ var psInstances = require('../plugin/instances');
7
+
8
+ function mountJQuery(jQuery) {
9
+ jQuery.fn.perfectScrollbar = function (settingOrCommand) {
10
+ return this.each(function () {
11
+ if (typeof settingOrCommand === 'object' ||
12
+ typeof settingOrCommand === 'undefined') {
13
+ // If it's an object or none, initialize.
14
+ var settings = settingOrCommand;
15
+
16
+ if (!psInstances.get(this)) {
17
+ ps.initialize(this, settings);
18
+ }
19
+ } else {
20
+ // Unless, it may be a command.
21
+ var command = settingOrCommand;
22
+
23
+ if (command === 'update') {
24
+ ps.update(this);
25
+ } else if (command === 'destroy') {
26
+ ps.destroy(this);
27
+ }
28
+ }
29
+ });
30
+ };
31
+ }
32
+
33
+ if (typeof define === 'function' && define.amd) {
34
+ // AMD. Register as an anonymous module.
35
+ define(['jquery'], mountJQuery);
36
+ } else {
37
+ var jq = window.jQuery ? window.jQuery : window.$;
38
+ if (typeof jq !== 'undefined') {
39
+ mountJQuery(jq);
40
+ }
41
+ }
42
+
43
+ module.exports = mountJQuery;
44
+
45
+ },{"../main":7,"../plugin/instances":18}],2:[function(require,module,exports){
46
+ 'use strict';
47
+
48
+ function oldAdd(element, className) {
49
+ var classes = element.className.split(' ');
50
+ if (classes.indexOf(className) < 0) {
51
+ classes.push(className);
52
+ }
53
+ element.className = classes.join(' ');
54
+ }
55
+
56
+ function oldRemove(element, className) {
57
+ var classes = element.className.split(' ');
58
+ var idx = classes.indexOf(className);
59
+ if (idx >= 0) {
60
+ classes.splice(idx, 1);
61
+ }
62
+ element.className = classes.join(' ');
63
+ }
64
+
65
+ exports.add = function (element, className) {
66
+ if (element.classList) {
67
+ element.classList.add(className);
68
+ } else {
69
+ oldAdd(element, className);
70
+ }
71
+ };
72
+
73
+ exports.remove = function (element, className) {
74
+ if (element.classList) {
75
+ element.classList.remove(className);
76
+ } else {
77
+ oldRemove(element, className);
78
+ }
79
+ };
80
+
81
+ exports.list = function (element) {
82
+ if (element.classList) {
83
+ return Array.prototype.slice.apply(element.classList);
84
+ } else {
85
+ return element.className.split(' ');
86
+ }
87
+ };
88
+
89
+ },{}],3:[function(require,module,exports){
90
+ 'use strict';
91
+
92
+ var DOM = {};
93
+
94
+ DOM.e = function (tagName, className) {
95
+ var element = document.createElement(tagName);
96
+ element.className = className;
97
+ return element;
98
+ };
99
+
100
+ DOM.appendTo = function (child, parent) {
101
+ parent.appendChild(child);
102
+ return child;
103
+ };
104
+
105
+ function cssGet(element, styleName) {
106
+ return window.getComputedStyle(element)[styleName];
107
+ }
108
+
109
+ function cssSet(element, styleName, styleValue) {
110
+ if (typeof styleValue === 'number') {
111
+ styleValue = styleValue.toString() + 'px';
112
+ }
113
+ element.style[styleName] = styleValue;
114
+ return element;
115
+ }
116
+
117
+ function cssMultiSet(element, obj) {
118
+ for (var key in obj) {
119
+ var val = obj[key];
120
+ if (typeof val === 'number') {
121
+ val = val.toString() + 'px';
122
+ }
123
+ element.style[key] = val;
124
+ }
125
+ return element;
126
+ }
127
+
128
+ DOM.css = function (element, styleNameOrObject, styleValue) {
129
+ if (typeof styleNameOrObject === 'object') {
130
+ // multiple set with object
131
+ return cssMultiSet(element, styleNameOrObject);
132
+ } else {
133
+ if (typeof styleValue === 'undefined') {
134
+ return cssGet(element, styleNameOrObject);
135
+ } else {
136
+ return cssSet(element, styleNameOrObject, styleValue);
137
+ }
138
+ }
139
+ };
140
+
141
+ DOM.matches = function (element, query) {
142
+ if (typeof element.matches !== 'undefined') {
143
+ return element.matches(query);
144
+ } else {
145
+ if (typeof element.matchesSelector !== 'undefined') {
146
+ return element.matchesSelector(query);
147
+ } else if (typeof element.webkitMatchesSelector !== 'undefined') {
148
+ return element.webkitMatchesSelector(query);
149
+ } else if (typeof element.mozMatchesSelector !== 'undefined') {
150
+ return element.mozMatchesSelector(query);
151
+ } else if (typeof element.msMatchesSelector !== 'undefined') {
152
+ return element.msMatchesSelector(query);
153
+ }
154
+ }
155
+ };
156
+
157
+ DOM.remove = function (element) {
158
+ if (typeof element.remove !== 'undefined') {
159
+ element.remove();
160
+ } else {
161
+ if (element.parentNode) {
162
+ element.parentNode.removeChild(element);
163
+ }
164
+ }
165
+ };
166
+
167
+ DOM.queryChildren = function (element, selector) {
168
+ return Array.prototype.filter.call(element.childNodes, function (child) {
169
+ return DOM.matches(child, selector);
170
+ });
171
+ };
172
+
173
+ module.exports = DOM;
174
+
175
+ },{}],4:[function(require,module,exports){
176
+ 'use strict';
177
+
178
+ var EventElement = function (element) {
179
+ this.element = element;
180
+ this.events = {};
181
+ };
182
+
183
+ EventElement.prototype.bind = function (eventName, handler) {
184
+ if (typeof this.events[eventName] === 'undefined') {
185
+ this.events[eventName] = [];
186
+ }
187
+ this.events[eventName].push(handler);
188
+ this.element.addEventListener(eventName, handler, false);
189
+ };
190
+
191
+ EventElement.prototype.unbind = function (eventName, handler) {
192
+ var isHandlerProvided = (typeof handler !== 'undefined');
193
+ this.events[eventName] = this.events[eventName].filter(function (hdlr) {
194
+ if (isHandlerProvided && hdlr !== handler) {
195
+ return true;
196
+ }
197
+ this.element.removeEventListener(eventName, hdlr, false);
198
+ return false;
199
+ }, this);
200
+ };
201
+
202
+ EventElement.prototype.unbindAll = function () {
203
+ for (var name in this.events) {
204
+ this.unbind(name);
205
+ }
206
+ };
207
+
208
+ var EventManager = function () {
209
+ this.eventElements = [];
210
+ };
211
+
212
+ EventManager.prototype.eventElement = function (element) {
213
+ var ee = this.eventElements.filter(function (eventElement) {
214
+ return eventElement.element === element;
215
+ })[0];
216
+ if (typeof ee === 'undefined') {
217
+ ee = new EventElement(element);
218
+ this.eventElements.push(ee);
219
+ }
220
+ return ee;
221
+ };
222
+
223
+ EventManager.prototype.bind = function (element, eventName, handler) {
224
+ this.eventElement(element).bind(eventName, handler);
225
+ };
226
+
227
+ EventManager.prototype.unbind = function (element, eventName, handler) {
228
+ this.eventElement(element).unbind(eventName, handler);
229
+ };
230
+
231
+ EventManager.prototype.unbindAll = function () {
232
+ for (var i = 0; i < this.eventElements.length; i++) {
233
+ this.eventElements[i].unbindAll();
234
+ }
235
+ };
236
+
237
+ EventManager.prototype.once = function (element, eventName, handler) {
238
+ var ee = this.eventElement(element);
239
+ var onceHandler = function (e) {
240
+ ee.unbind(eventName, onceHandler);
241
+ handler(e);
242
+ };
243
+ ee.bind(eventName, onceHandler);
244
+ };
245
+
246
+ module.exports = EventManager;
247
+
248
+ },{}],5:[function(require,module,exports){
249
+ 'use strict';
250
+
251
+ module.exports = (function () {
252
+ function s4() {
253
+ return Math.floor((1 + Math.random()) * 0x10000)
254
+ .toString(16)
255
+ .substring(1);
256
+ }
257
+ return function () {
258
+ return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
259
+ s4() + '-' + s4() + s4() + s4();
260
+ };
261
+ })();
262
+
263
+ },{}],6:[function(require,module,exports){
264
+ 'use strict';
265
+
266
+ var cls = require('./class');
267
+ var dom = require('./dom');
268
+
269
+ var toInt = exports.toInt = function (x) {
270
+ return parseInt(x, 10) || 0;
271
+ };
272
+
273
+ var clone = exports.clone = function (obj) {
274
+ if (!obj) {
275
+ return null;
276
+ } else if (obj.constructor === Array) {
277
+ return obj.map(clone);
278
+ } else if (typeof obj === 'object') {
279
+ var result = {};
280
+ for (var key in obj) {
281
+ result[key] = clone(obj[key]);
282
+ }
283
+ return result;
284
+ } else {
285
+ return obj;
286
+ }
287
+ };
288
+
289
+ exports.extend = function (original, source) {
290
+ var result = clone(original);
291
+ for (var key in source) {
292
+ result[key] = clone(source[key]);
293
+ }
294
+ return result;
295
+ };
296
+
297
+ exports.isEditable = function (el) {
298
+ return dom.matches(el, "input,[contenteditable]") ||
299
+ dom.matches(el, "select,[contenteditable]") ||
300
+ dom.matches(el, "textarea,[contenteditable]") ||
301
+ dom.matches(el, "button,[contenteditable]");
302
+ };
303
+
304
+ exports.removePsClasses = function (element) {
305
+ var clsList = cls.list(element);
306
+ for (var i = 0; i < clsList.length; i++) {
307
+ var className = clsList[i];
308
+ if (className.indexOf('ps-') === 0) {
309
+ cls.remove(element, className);
310
+ }
311
+ }
312
+ };
313
+
314
+ exports.outerWidth = function (element) {
315
+ return toInt(dom.css(element, 'width')) +
316
+ toInt(dom.css(element, 'paddingLeft')) +
317
+ toInt(dom.css(element, 'paddingRight')) +
318
+ toInt(dom.css(element, 'borderLeftWidth')) +
319
+ toInt(dom.css(element, 'borderRightWidth'));
320
+ };
321
+
322
+ exports.startScrolling = function (element, axis) {
323
+ cls.add(element, 'ps-in-scrolling');
324
+ if (typeof axis !== 'undefined') {
325
+ cls.add(element, 'ps-' + axis);
326
+ } else {
327
+ cls.add(element, 'ps-x');
328
+ cls.add(element, 'ps-y');
329
+ }
330
+ };
331
+
332
+ exports.stopScrolling = function (element, axis) {
333
+ cls.remove(element, 'ps-in-scrolling');
334
+ if (typeof axis !== 'undefined') {
335
+ cls.remove(element, 'ps-' + axis);
336
+ } else {
337
+ cls.remove(element, 'ps-x');
338
+ cls.remove(element, 'ps-y');
339
+ }
340
+ };
341
+
342
+ exports.env = {
343
+ isWebKit: 'WebkitAppearance' in document.documentElement.style,
344
+ supportsTouch: (('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch),
345
+ supportsIePointer: window.navigator.msMaxTouchPoints !== null
346
+ };
347
+
348
+ },{"./class":2,"./dom":3}],7:[function(require,module,exports){
349
+ 'use strict';
350
+
351
+ var destroy = require('./plugin/destroy');
352
+ var initialize = require('./plugin/initialize');
353
+ var update = require('./plugin/update');
354
+
355
+ module.exports = {
356
+ initialize: initialize,
357
+ update: update,
358
+ destroy: destroy
359
+ };
360
+
361
+ },{"./plugin/destroy":9,"./plugin/initialize":17,"./plugin/update":21}],8:[function(require,module,exports){
362
+ 'use strict';
363
+
364
+ module.exports = {
365
+ handlers: ['click-rail', 'drag-scrollbar', 'keyboard', 'wheel', 'touch'],
366
+ maxScrollbarLength: null,
367
+ minScrollbarLength: null,
368
+ scrollXMarginOffset: 0,
369
+ scrollYMarginOffset: 0,
370
+ suppressScrollX: false,
371
+ suppressScrollY: false,
372
+ swipePropagation: true,
373
+ useBothWheelAxes: false,
374
+ wheelPropagation: false,
375
+ wheelSpeed: 1,
376
+ theme: 'default'
377
+ };
378
+
379
+ },{}],9:[function(require,module,exports){
380
+ 'use strict';
381
+
382
+ var _ = require('../lib/helper');
383
+ var dom = require('../lib/dom');
384
+ var instances = require('./instances');
385
+
386
+ module.exports = function (element) {
387
+ var i = instances.get(element);
388
+
389
+ if (!i) {
390
+ return;
391
+ }
392
+
393
+ i.event.unbindAll();
394
+ dom.remove(i.scrollbarX);
395
+ dom.remove(i.scrollbarY);
396
+ dom.remove(i.scrollbarXRail);
397
+ dom.remove(i.scrollbarYRail);
398
+ _.removePsClasses(element);
399
+
400
+ instances.remove(element);
401
+ };
402
+
403
+ },{"../lib/dom":3,"../lib/helper":6,"./instances":18}],10:[function(require,module,exports){
404
+ 'use strict';
405
+
406
+ var instances = require('../instances');
407
+ var updateGeometry = require('../update-geometry');
408
+ var updateScroll = require('../update-scroll');
409
+
410
+ function bindClickRailHandler(element, i) {
411
+ function pageOffset(el) {
412
+ return el.getBoundingClientRect();
413
+ }
414
+ var stopPropagation = function (e) { e.stopPropagation(); };
415
+
416
+ i.event.bind(i.scrollbarY, 'click', stopPropagation);
417
+ i.event.bind(i.scrollbarYRail, 'click', function (e) {
418
+ var positionTop = e.pageY - window.pageYOffset - pageOffset(i.scrollbarYRail).top;
419
+ var direction = positionTop > i.scrollbarYTop ? 1 : -1;
420
+
421
+ updateScroll(element, 'top', element.scrollTop + direction * i.containerHeight);
422
+ updateGeometry(element);
423
+
424
+ e.stopPropagation();
425
+ });
426
+
427
+ i.event.bind(i.scrollbarX, 'click', stopPropagation);
428
+ i.event.bind(i.scrollbarXRail, 'click', function (e) {
429
+ var positionLeft = e.pageX - window.pageXOffset - pageOffset(i.scrollbarXRail).left;
430
+ var direction = positionLeft > i.scrollbarXLeft ? 1 : -1;
431
+
432
+ updateScroll(element, 'left', element.scrollLeft + direction * i.containerWidth);
433
+ updateGeometry(element);
434
+
435
+ e.stopPropagation();
436
+ });
437
+ }
438
+
439
+ module.exports = function (element) {
440
+ var i = instances.get(element);
441
+ bindClickRailHandler(element, i);
442
+ };
443
+
444
+ },{"../instances":18,"../update-geometry":19,"../update-scroll":20}],11:[function(require,module,exports){
445
+ 'use strict';
446
+
447
+ var _ = require('../../lib/helper');
448
+ var dom = require('../../lib/dom');
449
+ var instances = require('../instances');
450
+ var updateGeometry = require('../update-geometry');
451
+ var updateScroll = require('../update-scroll');
452
+
453
+ function bindMouseScrollXHandler(element, i) {
454
+ var currentLeft = null;
455
+ var currentPageX = null;
456
+
457
+ function updateScrollLeft(deltaX) {
458
+ var newLeft = currentLeft + (deltaX * i.railXRatio);
459
+ var maxLeft = Math.max(0, i.scrollbarXRail.getBoundingClientRect().left) + (i.railXRatio * (i.railXWidth - i.scrollbarXWidth));
460
+
461
+ if (newLeft < 0) {
462
+ i.scrollbarXLeft = 0;
463
+ } else if (newLeft > maxLeft) {
464
+ i.scrollbarXLeft = maxLeft;
465
+ } else {
466
+ i.scrollbarXLeft = newLeft;
467
+ }
468
+
469
+ var scrollLeft = _.toInt(i.scrollbarXLeft * (i.contentWidth - i.containerWidth) / (i.containerWidth - (i.railXRatio * i.scrollbarXWidth))) - i.negativeScrollAdjustment;
470
+ updateScroll(element, 'left', scrollLeft);
471
+ }
472
+
473
+ var mouseMoveHandler = function (e) {
474
+ updateScrollLeft(e.pageX - currentPageX);
475
+ updateGeometry(element);
476
+ e.stopPropagation();
477
+ e.preventDefault();
478
+ };
479
+
480
+ var mouseUpHandler = function () {
481
+ _.stopScrolling(element, 'x');
482
+ i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler);
483
+ };
484
+
485
+ i.event.bind(i.scrollbarX, 'mousedown', function (e) {
486
+ currentPageX = e.pageX;
487
+ currentLeft = _.toInt(dom.css(i.scrollbarX, 'left')) * i.railXRatio;
488
+ _.startScrolling(element, 'x');
489
+
490
+ i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);
491
+ i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);
492
+
493
+ e.stopPropagation();
494
+ e.preventDefault();
495
+ });
496
+ }
497
+
498
+ function bindMouseScrollYHandler(element, i) {
499
+ var currentTop = null;
500
+ var currentPageY = null;
501
+
502
+ function updateScrollTop(deltaY) {
503
+ var newTop = currentTop + (deltaY * i.railYRatio);
504
+ var maxTop = Math.max(0, i.scrollbarYRail.getBoundingClientRect().top) + (i.railYRatio * (i.railYHeight - i.scrollbarYHeight));
505
+
506
+ if (newTop < 0) {
507
+ i.scrollbarYTop = 0;
508
+ } else if (newTop > maxTop) {
509
+ i.scrollbarYTop = maxTop;
510
+ } else {
511
+ i.scrollbarYTop = newTop;
512
+ }
513
+
514
+ var scrollTop = _.toInt(i.scrollbarYTop * (i.contentHeight - i.containerHeight) / (i.containerHeight - (i.railYRatio * i.scrollbarYHeight)));
515
+ updateScroll(element, 'top', scrollTop);
516
+ }
517
+
518
+ var mouseMoveHandler = function (e) {
519
+ updateScrollTop(e.pageY - currentPageY);
520
+ updateGeometry(element);
521
+ e.stopPropagation();
522
+ e.preventDefault();
523
+ };
524
+
525
+ var mouseUpHandler = function () {
526
+ _.stopScrolling(element, 'y');
527
+ i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler);
528
+ };
529
+
530
+ i.event.bind(i.scrollbarY, 'mousedown', function (e) {
531
+ currentPageY = e.pageY;
532
+ currentTop = _.toInt(dom.css(i.scrollbarY, 'top')) * i.railYRatio;
533
+ _.startScrolling(element, 'y');
534
+
535
+ i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);
536
+ i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);
537
+
538
+ e.stopPropagation();
539
+ e.preventDefault();
540
+ });
541
+ }
542
+
543
+ module.exports = function (element) {
544
+ var i = instances.get(element);
545
+ bindMouseScrollXHandler(element, i);
546
+ bindMouseScrollYHandler(element, i);
547
+ };
548
+
549
+ },{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],12:[function(require,module,exports){
550
+ 'use strict';
551
+
552
+ var _ = require('../../lib/helper');
553
+ var dom = require('../../lib/dom');
554
+ var instances = require('../instances');
555
+ var updateGeometry = require('../update-geometry');
556
+ var updateScroll = require('../update-scroll');
557
+
558
+ function bindKeyboardHandler(element, i) {
559
+ var hovered = false;
560
+ i.event.bind(element, 'mouseenter', function () {
561
+ hovered = true;
562
+ });
563
+ i.event.bind(element, 'mouseleave', function () {
564
+ hovered = false;
565
+ });
566
+
567
+ var shouldPrevent = false;
568
+ function shouldPreventDefault(deltaX, deltaY) {
569
+ var scrollTop = element.scrollTop;
570
+ if (deltaX === 0) {
571
+ if (!i.scrollbarYActive) {
572
+ return false;
573
+ }
574
+ if ((scrollTop === 0 && deltaY > 0) || (scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0)) {
575
+ return !i.settings.wheelPropagation;
576
+ }
577
+ }
578
+
579
+ var scrollLeft = element.scrollLeft;
580
+ if (deltaY === 0) {
581
+ if (!i.scrollbarXActive) {
582
+ return false;
583
+ }
584
+ if ((scrollLeft === 0 && deltaX < 0) || (scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0)) {
585
+ return !i.settings.wheelPropagation;
586
+ }
587
+ }
588
+ return true;
589
+ }
590
+
591
+ i.event.bind(i.ownerDocument, 'keydown', function (e) {
592
+ if ((e.isDefaultPrevented && e.isDefaultPrevented()) || e.defaultPrevented) {
593
+ return;
594
+ }
595
+
596
+ var focused = dom.matches(i.scrollbarX, ':focus') ||
597
+ dom.matches(i.scrollbarY, ':focus');
598
+
599
+ if (!hovered && !focused) {
600
+ return;
601
+ }
602
+
603
+ var activeElement = document.activeElement ? document.activeElement : i.ownerDocument.activeElement;
604
+ if (activeElement) {
605
+ if (activeElement.tagName === 'IFRAME') {
606
+ activeElement = activeElement.contentDocument.activeElement;
607
+ } else {
608
+ // go deeper if element is a webcomponent
609
+ while (activeElement.shadowRoot) {
610
+ activeElement = activeElement.shadowRoot.activeElement;
611
+ }
612
+ }
613
+ if (_.isEditable(activeElement)) {
614
+ return;
615
+ }
616
+ }
617
+
618
+ var deltaX = 0;
619
+ var deltaY = 0;
620
+
621
+ switch (e.which) {
622
+ case 37: // left
623
+ if (e.metaKey) {
624
+ deltaX = -i.contentWidth;
625
+ } else if (e.altKey) {
626
+ deltaX = -i.containerWidth;
627
+ } else {
628
+ deltaX = -30;
629
+ }
630
+ break;
631
+ case 38: // up
632
+ if (e.metaKey) {
633
+ deltaY = i.contentHeight;
634
+ } else if (e.altKey) {
635
+ deltaY = i.containerHeight;
636
+ } else {
637
+ deltaY = 30;
638
+ }
639
+ break;
640
+ case 39: // right
641
+ if (e.metaKey) {
642
+ deltaX = i.contentWidth;
643
+ } else if (e.altKey) {
644
+ deltaX = i.containerWidth;
645
+ } else {
646
+ deltaX = 30;
647
+ }
648
+ break;
649
+ case 40: // down
650
+ if (e.metaKey) {
651
+ deltaY = -i.contentHeight;
652
+ } else if (e.altKey) {
653
+ deltaY = -i.containerHeight;
654
+ } else {
655
+ deltaY = -30;
656
+ }
657
+ break;
658
+ case 33: // page up
659
+ deltaY = 90;
660
+ break;
661
+ case 32: // space bar
662
+ if (e.shiftKey) {
663
+ deltaY = 90;
664
+ } else {
665
+ deltaY = -90;
666
+ }
667
+ break;
668
+ case 34: // page down
669
+ deltaY = -90;
670
+ break;
671
+ case 35: // end
672
+ if (e.ctrlKey) {
673
+ deltaY = -i.contentHeight;
674
+ } else {
675
+ deltaY = -i.containerHeight;
676
+ }
677
+ break;
678
+ case 36: // home
679
+ if (e.ctrlKey) {
680
+ deltaY = element.scrollTop;
681
+ } else {
682
+ deltaY = i.containerHeight;
683
+ }
684
+ break;
685
+ default:
686
+ return;
687
+ }
688
+
689
+ updateScroll(element, 'top', element.scrollTop - deltaY);
690
+ updateScroll(element, 'left', element.scrollLeft + deltaX);
691
+ updateGeometry(element);
692
+
693
+ shouldPrevent = shouldPreventDefault(deltaX, deltaY);
694
+ if (shouldPrevent) {
695
+ e.preventDefault();
696
+ }
697
+ });
698
+ }
699
+
700
+ module.exports = function (element) {
701
+ var i = instances.get(element);
702
+ bindKeyboardHandler(element, i);
703
+ };
704
+
705
+ },{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],13:[function(require,module,exports){
706
+ 'use strict';
707
+
708
+ var instances = require('../instances');
709
+ var updateGeometry = require('../update-geometry');
710
+ var updateScroll = require('../update-scroll');
711
+
712
+ function bindMouseWheelHandler(element, i) {
713
+ var shouldPrevent = false;
714
+
715
+ function shouldPreventDefault(deltaX, deltaY) {
716
+ var scrollTop = element.scrollTop;
717
+ if (deltaX === 0) {
718
+ if (!i.scrollbarYActive) {
719
+ return false;
720
+ }
721
+ if ((scrollTop === 0 && deltaY > 0) || (scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0)) {
722
+ return !i.settings.wheelPropagation;
723
+ }
724
+ }
725
+
726
+ var scrollLeft = element.scrollLeft;
727
+ if (deltaY === 0) {
728
+ if (!i.scrollbarXActive) {
729
+ return false;
730
+ }
731
+ if ((scrollLeft === 0 && deltaX < 0) || (scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0)) {
732
+ return !i.settings.wheelPropagation;
733
+ }
734
+ }
735
+ return true;
736
+ }
737
+
738
+ function getDeltaFromEvent(e) {
739
+ var deltaX = e.deltaX;
740
+ var deltaY = -1 * e.deltaY;
741
+
742
+ if (typeof deltaX === "undefined" || typeof deltaY === "undefined") {
743
+ // OS X Safari
744
+ deltaX = -1 * e.wheelDeltaX / 6;
745
+ deltaY = e.wheelDeltaY / 6;
746
+ }
747
+
748
+ if (e.deltaMode && e.deltaMode === 1) {
749
+ // Firefox in deltaMode 1: Line scrolling
750
+ deltaX *= 10;
751
+ deltaY *= 10;
752
+ }
753
+
754
+ if (deltaX !== deltaX && deltaY !== deltaY/* NaN checks */) {
755
+ // IE in some mouse drivers
756
+ deltaX = 0;
757
+ deltaY = e.wheelDelta;
758
+ }
759
+
760
+ if (e.shiftKey) {
761
+ // reverse axis with shift key
762
+ return [-deltaY, -deltaX];
763
+ }
764
+ return [deltaX, deltaY];
765
+ }
766
+
767
+ function shouldBeConsumedByChild(deltaX, deltaY) {
768
+ var child = element.querySelector('textarea:hover, select[multiple]:hover, .ps-child:hover');
769
+ if (child) {
770
+ if (!window.getComputedStyle(child).overflow.match(/(scroll|auto)/)) {
771
+ // if not scrollable
772
+ return false;
773
+ }
774
+
775
+ var maxScrollTop = child.scrollHeight - child.clientHeight;
776
+ if (maxScrollTop > 0) {
777
+ if (!(child.scrollTop === 0 && deltaY > 0) && !(child.scrollTop === maxScrollTop && deltaY < 0)) {
778
+ return true;
779
+ }
780
+ }
781
+ var maxScrollLeft = child.scrollLeft - child.clientWidth;
782
+ if (maxScrollLeft > 0) {
783
+ if (!(child.scrollLeft === 0 && deltaX < 0) && !(child.scrollLeft === maxScrollLeft && deltaX > 0)) {
784
+ return true;
785
+ }
786
+ }
787
+ }
788
+ return false;
789
+ }
790
+
791
+ function mousewheelHandler(e) {
792
+ var delta = getDeltaFromEvent(e);
793
+
794
+ var deltaX = delta[0];
795
+ var deltaY = delta[1];
796
+
797
+ if (shouldBeConsumedByChild(deltaX, deltaY)) {
798
+ return;
799
+ }
800
+
801
+ shouldPrevent = false;
802
+ if (!i.settings.useBothWheelAxes) {
803
+ // deltaX will only be used for horizontal scrolling and deltaY will
804
+ // only be used for vertical scrolling - this is the default
805
+ updateScroll(element, 'top', element.scrollTop - (deltaY * i.settings.wheelSpeed));
806
+ updateScroll(element, 'left', element.scrollLeft + (deltaX * i.settings.wheelSpeed));
807
+ } else if (i.scrollbarYActive && !i.scrollbarXActive) {
808
+ // only vertical scrollbar is active and useBothWheelAxes option is
809
+ // active, so let's scroll vertical bar using both mouse wheel axes
810
+ if (deltaY) {
811
+ updateScroll(element, 'top', element.scrollTop - (deltaY * i.settings.wheelSpeed));
812
+ } else {
813
+ updateScroll(element, 'top', element.scrollTop + (deltaX * i.settings.wheelSpeed));
814
+ }
815
+ shouldPrevent = true;
816
+ } else if (i.scrollbarXActive && !i.scrollbarYActive) {
817
+ // useBothWheelAxes and only horizontal bar is active, so use both
818
+ // wheel axes for horizontal bar
819
+ if (deltaX) {
820
+ updateScroll(element, 'left', element.scrollLeft + (deltaX * i.settings.wheelSpeed));
821
+ } else {
822
+ updateScroll(element, 'left', element.scrollLeft - (deltaY * i.settings.wheelSpeed));
823
+ }
824
+ shouldPrevent = true;
825
+ }
826
+
827
+ updateGeometry(element);
828
+
829
+ shouldPrevent = (shouldPrevent || shouldPreventDefault(deltaX, deltaY));
830
+ if (shouldPrevent) {
831
+ e.stopPropagation();
832
+ e.preventDefault();
833
+ }
834
+ }
835
+
836
+ if (typeof window.onwheel !== "undefined") {
837
+ i.event.bind(element, 'wheel', mousewheelHandler);
838
+ } else if (typeof window.onmousewheel !== "undefined") {
839
+ i.event.bind(element, 'mousewheel', mousewheelHandler);
840
+ }
841
+ }
842
+
843
+ module.exports = function (element) {
844
+ var i = instances.get(element);
845
+ bindMouseWheelHandler(element, i);
846
+ };
847
+
848
+ },{"../instances":18,"../update-geometry":19,"../update-scroll":20}],14:[function(require,module,exports){
849
+ 'use strict';
850
+
851
+ var instances = require('../instances');
852
+ var updateGeometry = require('../update-geometry');
853
+
854
+ function bindNativeScrollHandler(element, i) {
855
+ i.event.bind(element, 'scroll', function () {
856
+ updateGeometry(element);
857
+ });
858
+ }
859
+
860
+ module.exports = function (element) {
861
+ var i = instances.get(element);
862
+ bindNativeScrollHandler(element, i);
863
+ };
864
+
865
+ },{"../instances":18,"../update-geometry":19}],15:[function(require,module,exports){
866
+ 'use strict';
867
+
868
+ var _ = require('../../lib/helper');
869
+ var instances = require('../instances');
870
+ var updateGeometry = require('../update-geometry');
871
+ var updateScroll = require('../update-scroll');
872
+
873
+ function bindSelectionHandler(element, i) {
874
+ function getRangeNode() {
875
+ var selection = window.getSelection ? window.getSelection() :
876
+ document.getSelection ? document.getSelection() : '';
877
+ if (selection.toString().length === 0) {
878
+ return null;
879
+ } else {
880
+ return selection.getRangeAt(0).commonAncestorContainer;
881
+ }
882
+ }
883
+
884
+ var scrollingLoop = null;
885
+ var scrollDiff = {top: 0, left: 0};
886
+ function startScrolling() {
887
+ if (!scrollingLoop) {
888
+ scrollingLoop = setInterval(function () {
889
+ if (!instances.get(element)) {
890
+ clearInterval(scrollingLoop);
891
+ return;
892
+ }
893
+
894
+ updateScroll(element, 'top', element.scrollTop + scrollDiff.top);
895
+ updateScroll(element, 'left', element.scrollLeft + scrollDiff.left);
896
+ updateGeometry(element);
897
+ }, 50); // every .1 sec
898
+ }
899
+ }
900
+ function stopScrolling() {
901
+ if (scrollingLoop) {
902
+ clearInterval(scrollingLoop);
903
+ scrollingLoop = null;
904
+ }
905
+ _.stopScrolling(element);
906
+ }
907
+
908
+ var isSelected = false;
909
+ i.event.bind(i.ownerDocument, 'selectionchange', function () {
910
+ if (element.contains(getRangeNode())) {
911
+ isSelected = true;
912
+ } else {
913
+ isSelected = false;
914
+ stopScrolling();
915
+ }
916
+ });
917
+ i.event.bind(window, 'mouseup', function () {
918
+ if (isSelected) {
919
+ isSelected = false;
920
+ stopScrolling();
921
+ }
922
+ });
923
+ i.event.bind(window, 'keyup', function () {
924
+ if (isSelected) {
925
+ isSelected = false;
926
+ stopScrolling();
927
+ }
928
+ });
929
+
930
+ i.event.bind(window, 'mousemove', function (e) {
931
+ if (isSelected) {
932
+ var mousePosition = {x: e.pageX, y: e.pageY};
933
+ var containerGeometry = {
934
+ left: element.offsetLeft,
935
+ right: element.offsetLeft + element.offsetWidth,
936
+ top: element.offsetTop,
937
+ bottom: element.offsetTop + element.offsetHeight
938
+ };
939
+
940
+ if (mousePosition.x < containerGeometry.left + 3) {
941
+ scrollDiff.left = -5;
942
+ _.startScrolling(element, 'x');
943
+ } else if (mousePosition.x > containerGeometry.right - 3) {
944
+ scrollDiff.left = 5;
945
+ _.startScrolling(element, 'x');
946
+ } else {
947
+ scrollDiff.left = 0;
948
+ }
949
+
950
+ if (mousePosition.y < containerGeometry.top + 3) {
951
+ if (containerGeometry.top + 3 - mousePosition.y < 5) {
952
+ scrollDiff.top = -5;
953
+ } else {
954
+ scrollDiff.top = -20;
955
+ }
956
+ _.startScrolling(element, 'y');
957
+ } else if (mousePosition.y > containerGeometry.bottom - 3) {
958
+ if (mousePosition.y - containerGeometry.bottom + 3 < 5) {
959
+ scrollDiff.top = 5;
960
+ } else {
961
+ scrollDiff.top = 20;
962
+ }
963
+ _.startScrolling(element, 'y');
964
+ } else {
965
+ scrollDiff.top = 0;
966
+ }
967
+
968
+ if (scrollDiff.top === 0 && scrollDiff.left === 0) {
969
+ stopScrolling();
970
+ } else {
971
+ startScrolling();
972
+ }
973
+ }
974
+ });
975
+ }
976
+
977
+ module.exports = function (element) {
978
+ var i = instances.get(element);
979
+ bindSelectionHandler(element, i);
980
+ };
981
+
982
+ },{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],16:[function(require,module,exports){
983
+ 'use strict';
984
+
985
+ var _ = require('../../lib/helper');
986
+ var instances = require('../instances');
987
+ var updateGeometry = require('../update-geometry');
988
+ var updateScroll = require('../update-scroll');
989
+
990
+ function bindTouchHandler(element, i, supportsTouch, supportsIePointer) {
991
+ function shouldPreventDefault(deltaX, deltaY) {
992
+ var scrollTop = element.scrollTop;
993
+ var scrollLeft = element.scrollLeft;
994
+ var magnitudeX = Math.abs(deltaX);
995
+ var magnitudeY = Math.abs(deltaY);
996
+
997
+ if (magnitudeY > magnitudeX) {
998
+ // user is perhaps trying to swipe up/down the page
999
+
1000
+ if (((deltaY < 0) && (scrollTop === i.contentHeight - i.containerHeight)) ||
1001
+ ((deltaY > 0) && (scrollTop === 0))) {
1002
+ return !i.settings.swipePropagation;
1003
+ }
1004
+ } else if (magnitudeX > magnitudeY) {
1005
+ // user is perhaps trying to swipe left/right across the page
1006
+
1007
+ if (((deltaX < 0) && (scrollLeft === i.contentWidth - i.containerWidth)) ||
1008
+ ((deltaX > 0) && (scrollLeft === 0))) {
1009
+ return !i.settings.swipePropagation;
1010
+ }
1011
+ }
1012
+
1013
+ return true;
1014
+ }
1015
+
1016
+ function applyTouchMove(differenceX, differenceY) {
1017
+ updateScroll(element, 'top', element.scrollTop - differenceY);
1018
+ updateScroll(element, 'left', element.scrollLeft - differenceX);
1019
+
1020
+ updateGeometry(element);
1021
+ }
1022
+
1023
+ var startOffset = {};
1024
+ var startTime = 0;
1025
+ var speed = {};
1026
+ var easingLoop = null;
1027
+ var inGlobalTouch = false;
1028
+ var inLocalTouch = false;
1029
+
1030
+ function globalTouchStart() {
1031
+ inGlobalTouch = true;
1032
+ }
1033
+ function globalTouchEnd() {
1034
+ inGlobalTouch = false;
1035
+ }
1036
+
1037
+ function getTouch(e) {
1038
+ if (e.targetTouches) {
1039
+ return e.targetTouches[0];
1040
+ } else {
1041
+ // Maybe IE pointer
1042
+ return e;
1043
+ }
1044
+ }
1045
+ function shouldHandle(e) {
1046
+ if (e.targetTouches && e.targetTouches.length === 1) {
1047
+ return true;
1048
+ }
1049
+ if (e.pointerType && e.pointerType !== 'mouse' && e.pointerType !== e.MSPOINTER_TYPE_MOUSE) {
1050
+ return true;
1051
+ }
1052
+ return false;
1053
+ }
1054
+ function touchStart(e) {
1055
+ if (shouldHandle(e)) {
1056
+ inLocalTouch = true;
1057
+
1058
+ var touch = getTouch(e);
1059
+
1060
+ startOffset.pageX = touch.pageX;
1061
+ startOffset.pageY = touch.pageY;
1062
+
1063
+ startTime = (new Date()).getTime();
1064
+
1065
+ if (easingLoop !== null) {
1066
+ clearInterval(easingLoop);
1067
+ }
1068
+
1069
+ e.stopPropagation();
1070
+ }
1071
+ }
1072
+ function touchMove(e) {
1073
+ if (!inLocalTouch && i.settings.swipePropagation) {
1074
+ touchStart(e);
1075
+ }
1076
+ if (!inGlobalTouch && inLocalTouch && shouldHandle(e)) {
1077
+ var touch = getTouch(e);
1078
+
1079
+ var currentOffset = {pageX: touch.pageX, pageY: touch.pageY};
1080
+
1081
+ var differenceX = currentOffset.pageX - startOffset.pageX;
1082
+ var differenceY = currentOffset.pageY - startOffset.pageY;
1083
+
1084
+ applyTouchMove(differenceX, differenceY);
1085
+ startOffset = currentOffset;
1086
+
1087
+ var currentTime = (new Date()).getTime();
1088
+
1089
+ var timeGap = currentTime - startTime;
1090
+ if (timeGap > 0) {
1091
+ speed.x = differenceX / timeGap;
1092
+ speed.y = differenceY / timeGap;
1093
+ startTime = currentTime;
1094
+ }
1095
+
1096
+ if (shouldPreventDefault(differenceX, differenceY)) {
1097
+ e.stopPropagation();
1098
+ e.preventDefault();
1099
+ }
1100
+ }
1101
+ }
1102
+ function touchEnd() {
1103
+ if (!inGlobalTouch && inLocalTouch) {
1104
+ inLocalTouch = false;
1105
+
1106
+ clearInterval(easingLoop);
1107
+ easingLoop = setInterval(function () {
1108
+ if (!instances.get(element)) {
1109
+ clearInterval(easingLoop);
1110
+ return;
1111
+ }
1112
+
1113
+ if (!speed.x && !speed.y) {
1114
+ clearInterval(easingLoop);
1115
+ return;
1116
+ }
1117
+
1118
+ if (Math.abs(speed.x) < 0.01 && Math.abs(speed.y) < 0.01) {
1119
+ clearInterval(easingLoop);
1120
+ return;
1121
+ }
1122
+
1123
+ applyTouchMove(speed.x * 30, speed.y * 30);
1124
+
1125
+ speed.x *= 0.8;
1126
+ speed.y *= 0.8;
1127
+ }, 10);
1128
+ }
1129
+ }
1130
+
1131
+ if (supportsTouch) {
1132
+ i.event.bind(window, 'touchstart', globalTouchStart);
1133
+ i.event.bind(window, 'touchend', globalTouchEnd);
1134
+ i.event.bind(element, 'touchstart', touchStart);
1135
+ i.event.bind(element, 'touchmove', touchMove);
1136
+ i.event.bind(element, 'touchend', touchEnd);
1137
+ }
1138
+
1139
+ if (supportsIePointer) {
1140
+ if (window.PointerEvent) {
1141
+ i.event.bind(window, 'pointerdown', globalTouchStart);
1142
+ i.event.bind(window, 'pointerup', globalTouchEnd);
1143
+ i.event.bind(element, 'pointerdown', touchStart);
1144
+ i.event.bind(element, 'pointermove', touchMove);
1145
+ i.event.bind(element, 'pointerup', touchEnd);
1146
+ } else if (window.MSPointerEvent) {
1147
+ i.event.bind(window, 'MSPointerDown', globalTouchStart);
1148
+ i.event.bind(window, 'MSPointerUp', globalTouchEnd);
1149
+ i.event.bind(element, 'MSPointerDown', touchStart);
1150
+ i.event.bind(element, 'MSPointerMove', touchMove);
1151
+ i.event.bind(element, 'MSPointerUp', touchEnd);
1152
+ }
1153
+ }
1154
+ }
1155
+
1156
+ module.exports = function (element) {
1157
+ if (!_.env.supportsTouch && !_.env.supportsIePointer) {
1158
+ return;
1159
+ }
1160
+
1161
+ var i = instances.get(element);
1162
+ bindTouchHandler(element, i, _.env.supportsTouch, _.env.supportsIePointer);
1163
+ };
1164
+
1165
+ },{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],17:[function(require,module,exports){
1166
+ 'use strict';
1167
+
1168
+ var _ = require('../lib/helper');
1169
+ var cls = require('../lib/class');
1170
+ var instances = require('./instances');
1171
+ var updateGeometry = require('./update-geometry');
1172
+
1173
+ // Handlers
1174
+ var handlers = {
1175
+ 'click-rail': require('./handler/click-rail'),
1176
+ 'drag-scrollbar': require('./handler/drag-scrollbar'),
1177
+ 'keyboard': require('./handler/keyboard'),
1178
+ 'wheel': require('./handler/mouse-wheel'),
1179
+ 'touch': require('./handler/touch'),
1180
+ 'selection': require('./handler/selection')
1181
+ };
1182
+ var nativeScrollHandler = require('./handler/native-scroll');
1183
+
1184
+ module.exports = function (element, userSettings) {
1185
+ userSettings = typeof userSettings === 'object' ? userSettings : {};
1186
+
1187
+ cls.add(element, 'ps-container');
1188
+
1189
+ // Create a plugin instance.
1190
+ var i = instances.add(element);
1191
+
1192
+ i.settings = _.extend(i.settings, userSettings);
1193
+ cls.add(element, 'ps-theme-' + i.settings.theme);
1194
+
1195
+ i.settings.handlers.forEach(function (handlerName) {
1196
+ handlers[handlerName](element);
1197
+ });
1198
+
1199
+ nativeScrollHandler(element);
1200
+
1201
+ updateGeometry(element);
1202
+ };
1203
+
1204
+ },{"../lib/class":2,"../lib/helper":6,"./handler/click-rail":10,"./handler/drag-scrollbar":11,"./handler/keyboard":12,"./handler/mouse-wheel":13,"./handler/native-scroll":14,"./handler/selection":15,"./handler/touch":16,"./instances":18,"./update-geometry":19}],18:[function(require,module,exports){
1205
+ 'use strict';
1206
+
1207
+ var _ = require('../lib/helper');
1208
+ var cls = require('../lib/class');
1209
+ var defaultSettings = require('./default-setting');
1210
+ var dom = require('../lib/dom');
1211
+ var EventManager = require('../lib/event-manager');
1212
+ var guid = require('../lib/guid');
1213
+
1214
+ var instances = {};
1215
+
1216
+ function Instance(element) {
1217
+ var i = this;
1218
+
1219
+ i.settings = _.clone(defaultSettings);
1220
+ i.containerWidth = null;
1221
+ i.containerHeight = null;
1222
+ i.contentWidth = null;
1223
+ i.contentHeight = null;
1224
+
1225
+ i.isRtl = dom.css(element, 'direction') === "rtl";
1226
+ i.isNegativeScroll = (function () {
1227
+ var originalScrollLeft = element.scrollLeft;
1228
+ var result = null;
1229
+ element.scrollLeft = -1;
1230
+ result = element.scrollLeft < 0;
1231
+ element.scrollLeft = originalScrollLeft;
1232
+ return result;
1233
+ })();
1234
+ i.negativeScrollAdjustment = i.isNegativeScroll ? element.scrollWidth - element.clientWidth : 0;
1235
+ i.event = new EventManager();
1236
+ i.ownerDocument = element.ownerDocument || document;
1237
+
1238
+ function focus() {
1239
+ cls.add(element, 'ps-focus');
1240
+ }
1241
+
1242
+ function blur() {
1243
+ cls.remove(element, 'ps-focus');
1244
+ }
1245
+
1246
+ i.scrollbarXRail = dom.appendTo(dom.e('div', 'ps-scrollbar-x-rail'), element);
1247
+ i.scrollbarX = dom.appendTo(dom.e('div', 'ps-scrollbar-x'), i.scrollbarXRail);
1248
+ i.scrollbarX.setAttribute('tabindex', 0);
1249
+ i.event.bind(i.scrollbarX, 'focus', focus);
1250
+ i.event.bind(i.scrollbarX, 'blur', blur);
1251
+ i.scrollbarXActive = null;
1252
+ i.scrollbarXWidth = null;
1253
+ i.scrollbarXLeft = null;
1254
+ i.scrollbarXBottom = _.toInt(dom.css(i.scrollbarXRail, 'bottom'));
1255
+ i.isScrollbarXUsingBottom = i.scrollbarXBottom === i.scrollbarXBottom; // !isNaN
1256
+ i.scrollbarXTop = i.isScrollbarXUsingBottom ? null : _.toInt(dom.css(i.scrollbarXRail, 'top'));
1257
+ i.railBorderXWidth = _.toInt(dom.css(i.scrollbarXRail, 'borderLeftWidth')) + _.toInt(dom.css(i.scrollbarXRail, 'borderRightWidth'));
1258
+ // Set rail to display:block to calculate margins
1259
+ dom.css(i.scrollbarXRail, 'display', 'block');
1260
+ i.railXMarginWidth = _.toInt(dom.css(i.scrollbarXRail, 'marginLeft')) + _.toInt(dom.css(i.scrollbarXRail, 'marginRight'));
1261
+ dom.css(i.scrollbarXRail, 'display', '');
1262
+ i.railXWidth = null;
1263
+ i.railXRatio = null;
1264
+
1265
+ i.scrollbarYRail = dom.appendTo(dom.e('div', 'ps-scrollbar-y-rail'), element);
1266
+ i.scrollbarY = dom.appendTo(dom.e('div', 'ps-scrollbar-y'), i.scrollbarYRail);
1267
+ i.scrollbarY.setAttribute('tabindex', 0);
1268
+ i.event.bind(i.scrollbarY, 'focus', focus);
1269
+ i.event.bind(i.scrollbarY, 'blur', blur);
1270
+ i.scrollbarYActive = null;
1271
+ i.scrollbarYHeight = null;
1272
+ i.scrollbarYTop = null;
1273
+ i.scrollbarYRight = _.toInt(dom.css(i.scrollbarYRail, 'right'));
1274
+ i.isScrollbarYUsingRight = i.scrollbarYRight === i.scrollbarYRight; // !isNaN
1275
+ i.scrollbarYLeft = i.isScrollbarYUsingRight ? null : _.toInt(dom.css(i.scrollbarYRail, 'left'));
1276
+ i.scrollbarYOuterWidth = i.isRtl ? _.outerWidth(i.scrollbarY) : null;
1277
+ i.railBorderYWidth = _.toInt(dom.css(i.scrollbarYRail, 'borderTopWidth')) + _.toInt(dom.css(i.scrollbarYRail, 'borderBottomWidth'));
1278
+ dom.css(i.scrollbarYRail, 'display', 'block');
1279
+ i.railYMarginHeight = _.toInt(dom.css(i.scrollbarYRail, 'marginTop')) + _.toInt(dom.css(i.scrollbarYRail, 'marginBottom'));
1280
+ dom.css(i.scrollbarYRail, 'display', '');
1281
+ i.railYHeight = null;
1282
+ i.railYRatio = null;
1283
+ }
1284
+
1285
+ function getId(element) {
1286
+ return element.getAttribute('data-ps-id');
1287
+ }
1288
+
1289
+ function setId(element, id) {
1290
+ element.setAttribute('data-ps-id', id);
1291
+ }
1292
+
1293
+ function removeId(element) {
1294
+ element.removeAttribute('data-ps-id');
1295
+ }
1296
+
1297
+ exports.add = function (element) {
1298
+ var newId = guid();
1299
+ setId(element, newId);
1300
+ instances[newId] = new Instance(element);
1301
+ return instances[newId];
1302
+ };
1303
+
1304
+ exports.remove = function (element) {
1305
+ delete instances[getId(element)];
1306
+ removeId(element);
1307
+ };
1308
+
1309
+ exports.get = function (element) {
1310
+ return instances[getId(element)];
1311
+ };
1312
+
1313
+ },{"../lib/class":2,"../lib/dom":3,"../lib/event-manager":4,"../lib/guid":5,"../lib/helper":6,"./default-setting":8}],19:[function(require,module,exports){
1314
+ 'use strict';
1315
+
1316
+ var _ = require('../lib/helper');
1317
+ var cls = require('../lib/class');
1318
+ var dom = require('../lib/dom');
1319
+ var instances = require('./instances');
1320
+ var updateScroll = require('./update-scroll');
1321
+
1322
+ function getThumbSize(i, thumbSize) {
1323
+ if (i.settings.minScrollbarLength) {
1324
+ thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength);
1325
+ }
1326
+ if (i.settings.maxScrollbarLength) {
1327
+ thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength);
1328
+ }
1329
+ return thumbSize;
1330
+ }
1331
+
1332
+ function updateCss(element, i) {
1333
+ var xRailOffset = {width: i.railXWidth};
1334
+ if (i.isRtl) {
1335
+ xRailOffset.left = i.negativeScrollAdjustment + element.scrollLeft + i.containerWidth - i.contentWidth;
1336
+ } else {
1337
+ xRailOffset.left = element.scrollLeft;
1338
+ }
1339
+ if (i.isScrollbarXUsingBottom) {
1340
+ xRailOffset.bottom = i.scrollbarXBottom - element.scrollTop;
1341
+ } else {
1342
+ xRailOffset.top = i.scrollbarXTop + element.scrollTop;
1343
+ }
1344
+ dom.css(i.scrollbarXRail, xRailOffset);
1345
+
1346
+ var yRailOffset = {top: element.scrollTop, height: i.railYHeight};
1347
+ if (i.isScrollbarYUsingRight) {
1348
+ if (i.isRtl) {
1349
+ yRailOffset.right = i.contentWidth - (i.negativeScrollAdjustment + element.scrollLeft) - i.scrollbarYRight - i.scrollbarYOuterWidth;
1350
+ } else {
1351
+ yRailOffset.right = i.scrollbarYRight - element.scrollLeft;
1352
+ }
1353
+ } else {
1354
+ if (i.isRtl) {
1355
+ yRailOffset.left = i.negativeScrollAdjustment + element.scrollLeft + i.containerWidth * 2 - i.contentWidth - i.scrollbarYLeft - i.scrollbarYOuterWidth;
1356
+ } else {
1357
+ yRailOffset.left = i.scrollbarYLeft + element.scrollLeft;
1358
+ }
1359
+ }
1360
+ dom.css(i.scrollbarYRail, yRailOffset);
1361
+
1362
+ dom.css(i.scrollbarX, {left: i.scrollbarXLeft, width: i.scrollbarXWidth - i.railBorderXWidth});
1363
+ dom.css(i.scrollbarY, {top: i.scrollbarYTop, height: i.scrollbarYHeight - i.railBorderYWidth});
1364
+ }
1365
+
1366
+ module.exports = function (element) {
1367
+ var i = instances.get(element);
1368
+
1369
+ i.containerWidth = element.clientWidth;
1370
+ i.containerHeight = element.clientHeight;
1371
+ i.contentWidth = element.scrollWidth;
1372
+ i.contentHeight = element.scrollHeight;
1373
+
1374
+ var existingRails;
1375
+ if (!element.contains(i.scrollbarXRail)) {
1376
+ existingRails = dom.queryChildren(element, '.ps-scrollbar-x-rail');
1377
+ if (existingRails.length > 0) {
1378
+ existingRails.forEach(function (rail) {
1379
+ dom.remove(rail);
1380
+ });
1381
+ }
1382
+ dom.appendTo(i.scrollbarXRail, element);
1383
+ }
1384
+ if (!element.contains(i.scrollbarYRail)) {
1385
+ existingRails = dom.queryChildren(element, '.ps-scrollbar-y-rail');
1386
+ if (existingRails.length > 0) {
1387
+ existingRails.forEach(function (rail) {
1388
+ dom.remove(rail);
1389
+ });
1390
+ }
1391
+ dom.appendTo(i.scrollbarYRail, element);
1392
+ }
1393
+
1394
+ if (!i.settings.suppressScrollX && i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth) {
1395
+ i.scrollbarXActive = true;
1396
+ i.railXWidth = i.containerWidth - i.railXMarginWidth;
1397
+ i.railXRatio = i.containerWidth / i.railXWidth;
1398
+ i.scrollbarXWidth = getThumbSize(i, _.toInt(i.railXWidth * i.containerWidth / i.contentWidth));
1399
+ i.scrollbarXLeft = _.toInt((i.negativeScrollAdjustment + element.scrollLeft) * (i.railXWidth - i.scrollbarXWidth) / (i.contentWidth - i.containerWidth));
1400
+ } else {
1401
+ i.scrollbarXActive = false;
1402
+ }
1403
+
1404
+ if (!i.settings.suppressScrollY && i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight) {
1405
+ i.scrollbarYActive = true;
1406
+ i.railYHeight = i.containerHeight - i.railYMarginHeight;
1407
+ i.railYRatio = i.containerHeight / i.railYHeight;
1408
+ i.scrollbarYHeight = getThumbSize(i, _.toInt(i.railYHeight * i.containerHeight / i.contentHeight));
1409
+ i.scrollbarYTop = _.toInt(element.scrollTop * (i.railYHeight - i.scrollbarYHeight) / (i.contentHeight - i.containerHeight));
1410
+ } else {
1411
+ i.scrollbarYActive = false;
1412
+ }
1413
+
1414
+ if (i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth) {
1415
+ i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth;
1416
+ }
1417
+ if (i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight) {
1418
+ i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight;
1419
+ }
1420
+
1421
+ updateCss(element, i);
1422
+
1423
+ if (i.scrollbarXActive) {
1424
+ cls.add(element, 'ps-active-x');
1425
+ } else {
1426
+ cls.remove(element, 'ps-active-x');
1427
+ i.scrollbarXWidth = 0;
1428
+ i.scrollbarXLeft = 0;
1429
+ updateScroll(element, 'left', 0);
1430
+ }
1431
+ if (i.scrollbarYActive) {
1432
+ cls.add(element, 'ps-active-y');
1433
+ } else {
1434
+ cls.remove(element, 'ps-active-y');
1435
+ i.scrollbarYHeight = 0;
1436
+ i.scrollbarYTop = 0;
1437
+ updateScroll(element, 'top', 0);
1438
+ }
1439
+ };
1440
+
1441
+ },{"../lib/class":2,"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-scroll":20}],20:[function(require,module,exports){
1442
+ 'use strict';
1443
+
1444
+ var instances = require('./instances');
1445
+
1446
+ var lastTop;
1447
+ var lastLeft;
1448
+
1449
+ var createDOMEvent = function (name) {
1450
+ var event = document.createEvent("Event");
1451
+ event.initEvent(name, true, true);
1452
+ return event;
1453
+ };
1454
+
1455
+ module.exports = function (element, axis, value) {
1456
+ if (typeof element === 'undefined') {
1457
+ throw 'You must provide an element to the update-scroll function';
1458
+ }
1459
+
1460
+ if (typeof axis === 'undefined') {
1461
+ throw 'You must provide an axis to the update-scroll function';
1462
+ }
1463
+
1464
+ if (typeof value === 'undefined') {
1465
+ throw 'You must provide a value to the update-scroll function';
1466
+ }
1467
+
1468
+ if (axis === 'top' && value <= 0) {
1469
+ element.scrollTop = value = 0; // don't allow negative scroll
1470
+ element.dispatchEvent(createDOMEvent('ps-y-reach-start'));
1471
+ }
1472
+
1473
+ if (axis === 'left' && value <= 0) {
1474
+ element.scrollLeft = value = 0; // don't allow negative scroll
1475
+ element.dispatchEvent(createDOMEvent('ps-x-reach-start'));
1476
+ }
1477
+
1478
+ var i = instances.get(element);
1479
+
1480
+ if (axis === 'top' && value >= i.contentHeight - i.containerHeight) {
1481
+ // don't allow scroll past container
1482
+ value = i.contentHeight - i.containerHeight;
1483
+ if (value - element.scrollTop <= 1) {
1484
+ // mitigates rounding errors on non-subpixel scroll values
1485
+ value = element.scrollTop;
1486
+ } else {
1487
+ element.scrollTop = value;
1488
+ }
1489
+ element.dispatchEvent(createDOMEvent('ps-y-reach-end'));
1490
+ }
1491
+
1492
+ if (axis === 'left' && value >= i.contentWidth - i.containerWidth) {
1493
+ // don't allow scroll past container
1494
+ value = i.contentWidth - i.containerWidth;
1495
+ if (value - element.scrollLeft <= 1) {
1496
+ // mitigates rounding errors on non-subpixel scroll values
1497
+ value = element.scrollLeft;
1498
+ } else {
1499
+ element.scrollLeft = value;
1500
+ }
1501
+ element.dispatchEvent(createDOMEvent('ps-x-reach-end'));
1502
+ }
1503
+
1504
+ if (!lastTop) {
1505
+ lastTop = element.scrollTop;
1506
+ }
1507
+
1508
+ if (!lastLeft) {
1509
+ lastLeft = element.scrollLeft;
1510
+ }
1511
+
1512
+ if (axis === 'top' && value < lastTop) {
1513
+ element.dispatchEvent(createDOMEvent('ps-scroll-up'));
1514
+ }
1515
+
1516
+ if (axis === 'top' && value > lastTop) {
1517
+ element.dispatchEvent(createDOMEvent('ps-scroll-down'));
1518
+ }
1519
+
1520
+ if (axis === 'left' && value < lastLeft) {
1521
+ element.dispatchEvent(createDOMEvent('ps-scroll-left'));
1522
+ }
1523
+
1524
+ if (axis === 'left' && value > lastLeft) {
1525
+ element.dispatchEvent(createDOMEvent('ps-scroll-right'));
1526
+ }
1527
+
1528
+ if (axis === 'top') {
1529
+ element.scrollTop = lastTop = value;
1530
+ element.dispatchEvent(createDOMEvent('ps-scroll-y'));
1531
+ }
1532
+
1533
+ if (axis === 'left') {
1534
+ element.scrollLeft = lastLeft = value;
1535
+ element.dispatchEvent(createDOMEvent('ps-scroll-x'));
1536
+ }
1537
+
1538
+ };
1539
+
1540
+ },{"./instances":18}],21:[function(require,module,exports){
1541
+ 'use strict';
1542
+
1543
+ var _ = require('../lib/helper');
1544
+ var dom = require('../lib/dom');
1545
+ var instances = require('./instances');
1546
+ var updateGeometry = require('./update-geometry');
1547
+ var updateScroll = require('./update-scroll');
1548
+
1549
+ module.exports = function (element) {
1550
+ var i = instances.get(element);
1551
+
1552
+ if (!i) {
1553
+ return;
1554
+ }
1555
+
1556
+ // Recalcuate negative scrollLeft adjustment
1557
+ i.negativeScrollAdjustment = i.isNegativeScroll ? element.scrollWidth - element.clientWidth : 0;
1558
+
1559
+ // Recalculate rail margins
1560
+ dom.css(i.scrollbarXRail, 'display', 'block');
1561
+ dom.css(i.scrollbarYRail, 'display', 'block');
1562
+ i.railXMarginWidth = _.toInt(dom.css(i.scrollbarXRail, 'marginLeft')) + _.toInt(dom.css(i.scrollbarXRail, 'marginRight'));
1563
+ i.railYMarginHeight = _.toInt(dom.css(i.scrollbarYRail, 'marginTop')) + _.toInt(dom.css(i.scrollbarYRail, 'marginBottom'));
1564
+
1565
+ // Hide scrollbars not to affect scrollWidth and scrollHeight
1566
+ dom.css(i.scrollbarXRail, 'display', 'none');
1567
+ dom.css(i.scrollbarYRail, 'display', 'none');
1568
+
1569
+ updateGeometry(element);
1570
+
1571
+ // Update top/left scroll to trigger events
1572
+ updateScroll(element, 'top', element.scrollTop);
1573
+ updateScroll(element, 'left', element.scrollLeft);
1574
+
1575
+ dom.css(i.scrollbarXRail, 'display', '');
1576
+ dom.css(i.scrollbarYRail, 'display', '');
1577
+ };
1578
+
1579
+ },{"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-geometry":19,"./update-scroll":20}]},{},[1]);
assets/libs/perfect-scrollbar/js/perfect-scrollbar.jquery.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /* perfect-scrollbar v0.6.14 */
2
+ !function t(e,n,r){function o(i,s){if(!n[i]){if(!e[i]){var a="function"==typeof require&&require;if(!s&&a)return a(i,!0);if(l)return l(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[i]={exports:{}};e[i][0].call(u.exports,function(t){var n=e[i][1][t];return o(n?n:t)},u,u.exports,t,e,n,r)}return n[i].exports}for(var l="function"==typeof require&&require,i=0;i<r.length;i++)o(r[i]);return o}({1:[function(t,e,n){"use strict";function r(t){t.fn.perfectScrollbar=function(t){return this.each(function(){if("object"==typeof t||"undefined"==typeof t){var e=t;l.get(this)||o.initialize(this,e)}else{var n=t;"update"===n?o.update(this):"destroy"===n&&o.destroy(this)}})}}var o=t("../main"),l=t("../plugin/instances");if("function"==typeof define&&define.amd)define(["jquery"],r);else{var i=window.jQuery?window.jQuery:window.$;"undefined"!=typeof i&&r(i)}e.exports=r},{"../main":7,"../plugin/instances":18}],2:[function(t,e,n){"use strict";function r(t,e){var n=t.className.split(" ");n.indexOf(e)<0&&n.push(e),t.className=n.join(" ")}function o(t,e){var n=t.className.split(" "),r=n.indexOf(e);r>=0&&n.splice(r,1),t.className=n.join(" ")}n.add=function(t,e){t.classList?t.classList.add(e):r(t,e)},n.remove=function(t,e){t.classList?t.classList.remove(e):o(t,e)},n.list=function(t){return t.classList?Array.prototype.slice.apply(t.classList):t.className.split(" ")}},{}],3:[function(t,e,n){"use strict";function r(t,e){return window.getComputedStyle(t)[e]}function o(t,e,n){return"number"==typeof n&&(n=n.toString()+"px"),t.style[e]=n,t}function l(t,e){for(var n in e){var r=e[n];"number"==typeof r&&(r=r.toString()+"px"),t.style[n]=r}return t}var i={};i.e=function(t,e){var n=document.createElement(t);return n.className=e,n},i.appendTo=function(t,e){return e.appendChild(t),t},i.css=function(t,e,n){return"object"==typeof e?l(t,e):"undefined"==typeof n?r(t,e):o(t,e,n)},i.matches=function(t,e){return"undefined"!=typeof t.matches?t.matches(e):"undefined"!=typeof t.matchesSelector?t.matchesSelector(e):"undefined"!=typeof t.webkitMatchesSelector?t.webkitMatchesSelector(e):"undefined"!=typeof t.mozMatchesSelector?t.mozMatchesSelector(e):"undefined"!=typeof t.msMatchesSelector?t.msMatchesSelector(e):void 0},i.remove=function(t){"undefined"!=typeof t.remove?t.remove():t.parentNode&&t.parentNode.removeChild(t)},i.queryChildren=function(t,e){return Array.prototype.filter.call(t.childNodes,function(t){return i.matches(t,e)})},e.exports=i},{}],4:[function(t,e,n){"use strict";var r=function(t){this.element=t,this.events={}};r.prototype.bind=function(t,e){"undefined"==typeof this.events[t]&&(this.events[t]=[]),this.events[t].push(e),this.element.addEventListener(t,e,!1)},r.prototype.unbind=function(t,e){var n="undefined"!=typeof e;this.events[t]=this.events[t].filter(function(r){return!(!n||r===e)||(this.element.removeEventListener(t,r,!1),!1)},this)},r.prototype.unbindAll=function(){for(var t in this.events)this.unbind(t)};var o=function(){this.eventElements=[]};o.prototype.eventElement=function(t){var e=this.eventElements.filter(function(e){return e.element===t})[0];return"undefined"==typeof e&&(e=new r(t),this.eventElements.push(e)),e},o.prototype.bind=function(t,e,n){this.eventElement(t).bind(e,n)},o.prototype.unbind=function(t,e,n){this.eventElement(t).unbind(e,n)},o.prototype.unbindAll=function(){for(var t=0;t<this.eventElements.length;t++)this.eventElements[t].unbindAll()},o.prototype.once=function(t,e,n){var r=this.eventElement(t),o=function(t){r.unbind(e,o),n(t)};r.bind(e,o)},e.exports=o},{}],5:[function(t,e,n){"use strict";e.exports=function(){function t(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return function(){return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}}()},{}],6:[function(t,e,n){"use strict";var r=t("./class"),o=t("./dom"),l=n.toInt=function(t){return parseInt(t,10)||0},i=n.clone=function(t){if(t){if(t.constructor===Array)return t.map(i);if("object"==typeof t){var e={};for(var n in t)e[n]=i(t[n]);return e}return t}return null};n.extend=function(t,e){var n=i(t);for(var r in e)n[r]=i(e[r]);return n},n.isEditable=function(t){return o.matches(t,"input,[contenteditable]")||o.matches(t,"select,[contenteditable]")||o.matches(t,"textarea,[contenteditable]")||o.matches(t,"button,[contenteditable]")},n.removePsClasses=function(t){for(var e=r.list(t),n=0;n<e.length;n++){var o=e[n];0===o.indexOf("ps-")&&r.remove(t,o)}},n.outerWidth=function(t){return l(o.css(t,"width"))+l(o.css(t,"paddingLeft"))+l(o.css(t,"paddingRight"))+l(o.css(t,"borderLeftWidth"))+l(o.css(t,"borderRightWidth"))},n.startScrolling=function(t,e){r.add(t,"ps-in-scrolling"),"undefined"!=typeof e?r.add(t,"ps-"+e):(r.add(t,"ps-x"),r.add(t,"ps-y"))},n.stopScrolling=function(t,e){r.remove(t,"ps-in-scrolling"),"undefined"!=typeof e?r.remove(t,"ps-"+e):(r.remove(t,"ps-x"),r.remove(t,"ps-y"))},n.env={isWebKit:"WebkitAppearance"in document.documentElement.style,supportsTouch:"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch,supportsIePointer:null!==window.navigator.msMaxTouchPoints}},{"./class":2,"./dom":3}],7:[function(t,e,n){"use strict";var r=t("./plugin/destroy"),o=t("./plugin/initialize"),l=t("./plugin/update");e.exports={initialize:o,update:l,destroy:r}},{"./plugin/destroy":9,"./plugin/initialize":17,"./plugin/update":21}],8:[function(t,e,n){"use strict";e.exports={handlers:["click-rail","drag-scrollbar","keyboard","wheel","touch"],maxScrollbarLength:null,minScrollbarLength:null,scrollXMarginOffset:0,scrollYMarginOffset:0,suppressScrollX:!1,suppressScrollY:!1,swipePropagation:!0,useBothWheelAxes:!1,wheelPropagation:!1,wheelSpeed:1,theme:"default"}},{}],9:[function(t,e,n){"use strict";var r=t("../lib/helper"),o=t("../lib/dom"),l=t("./instances");e.exports=function(t){var e=l.get(t);e&&(e.event.unbindAll(),o.remove(e.scrollbarX),o.remove(e.scrollbarY),o.remove(e.scrollbarXRail),o.remove(e.scrollbarYRail),r.removePsClasses(t),l.remove(t))}},{"../lib/dom":3,"../lib/helper":6,"./instances":18}],10:[function(t,e,n){"use strict";function r(t,e){function n(t){return t.getBoundingClientRect()}var r=function(t){t.stopPropagation()};e.event.bind(e.scrollbarY,"click",r),e.event.bind(e.scrollbarYRail,"click",function(r){var o=r.pageY-window.pageYOffset-n(e.scrollbarYRail).top,s=o>e.scrollbarYTop?1:-1;i(t,"top",t.scrollTop+s*e.containerHeight),l(t),r.stopPropagation()}),e.event.bind(e.scrollbarX,"click",r),e.event.bind(e.scrollbarXRail,"click",function(r){var o=r.pageX-window.pageXOffset-n(e.scrollbarXRail).left,s=o>e.scrollbarXLeft?1:-1;i(t,"left",t.scrollLeft+s*e.containerWidth),l(t),r.stopPropagation()})}var o=t("../instances"),l=t("../update-geometry"),i=t("../update-scroll");e.exports=function(t){var e=o.get(t);r(t,e)}},{"../instances":18,"../update-geometry":19,"../update-scroll":20}],11:[function(t,e,n){"use strict";function r(t,e){function n(n){var o=r+n*e.railXRatio,i=Math.max(0,e.scrollbarXRail.getBoundingClientRect().left)+e.railXRatio*(e.railXWidth-e.scrollbarXWidth);o<0?e.scrollbarXLeft=0:o>i?e.scrollbarXLeft=i:e.scrollbarXLeft=o;var s=l.toInt(e.scrollbarXLeft*(e.contentWidth-e.containerWidth)/(e.containerWidth-e.railXRatio*e.scrollbarXWidth))-e.negativeScrollAdjustment;c(t,"left",s)}var r=null,o=null,s=function(e){n(e.pageX-o),a(t),e.stopPropagation(),e.preventDefault()},u=function(){l.stopScrolling(t,"x"),e.event.unbind(e.ownerDocument,"mousemove",s)};e.event.bind(e.scrollbarX,"mousedown",function(n){o=n.pageX,r=l.toInt(i.css(e.scrollbarX,"left"))*e.railXRatio,l.startScrolling(t,"x"),e.event.bind(e.ownerDocument,"mousemove",s),e.event.once(e.ownerDocument,"mouseup",u),n.stopPropagation(),n.preventDefault()})}function o(t,e){function n(n){var o=r+n*e.railYRatio,i=Math.max(0,e.scrollbarYRail.getBoundingClientRect().top)+e.railYRatio*(e.railYHeight-e.scrollbarYHeight);o<0?e.scrollbarYTop=0:o>i?e.scrollbarYTop=i:e.scrollbarYTop=o;var s=l.toInt(e.scrollbarYTop*(e.contentHeight-e.containerHeight)/(e.containerHeight-e.railYRatio*e.scrollbarYHeight));c(t,"top",s)}var r=null,o=null,s=function(e){n(e.pageY-o),a(t),e.stopPropagation(),e.preventDefault()},u=function(){l.stopScrolling(t,"y"),e.event.unbind(e.ownerDocument,"mousemove",s)};e.event.bind(e.scrollbarY,"mousedown",function(n){o=n.pageY,r=l.toInt(i.css(e.scrollbarY,"top"))*e.railYRatio,l.startScrolling(t,"y"),e.event.bind(e.ownerDocument,"mousemove",s),e.event.once(e.ownerDocument,"mouseup",u),n.stopPropagation(),n.preventDefault()})}var l=t("../../lib/helper"),i=t("../../lib/dom"),s=t("../instances"),a=t("../update-geometry"),c=t("../update-scroll");e.exports=function(t){var e=s.get(t);r(t,e),o(t,e)}},{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],12:[function(t,e,n){"use strict";function r(t,e){function n(n,r){var o=t.scrollTop;if(0===n){if(!e.scrollbarYActive)return!1;if(0===o&&r>0||o>=e.contentHeight-e.containerHeight&&r<0)return!e.settings.wheelPropagation}var l=t.scrollLeft;if(0===r){if(!e.scrollbarXActive)return!1;if(0===l&&n<0||l>=e.contentWidth-e.containerWidth&&n>0)return!e.settings.wheelPropagation}return!0}var r=!1;e.event.bind(t,"mouseenter",function(){r=!0}),e.event.bind(t,"mouseleave",function(){r=!1});var i=!1;e.event.bind(e.ownerDocument,"keydown",function(c){if(!(c.isDefaultPrevented&&c.isDefaultPrevented()||c.defaultPrevented)){var u=l.matches(e.scrollbarX,":focus")||l.matches(e.scrollbarY,":focus");if(r||u){var d=document.activeElement?document.activeElement:e.ownerDocument.activeElement;if(d){if("IFRAME"===d.tagName)d=d.contentDocument.activeElement;else for(;d.shadowRoot;)d=d.shadowRoot.activeElement;if(o.isEditable(d))return}var p=0,f=0;switch(c.which){case 37:p=c.metaKey?-e.contentWidth:c.altKey?-e.containerWidth:-30;break;case 38:f=c.metaKey?e.contentHeight:c.altKey?e.containerHeight:30;break;case 39:p=c.metaKey?e.contentWidth:c.altKey?e.containerWidth:30;break;case 40:f=c.metaKey?-e.contentHeight:c.altKey?-e.containerHeight:-30;break;case 33:f=90;break;case 32:f=c.shiftKey?90:-90;break;case 34:f=-90;break;case 35:f=c.ctrlKey?-e.contentHeight:-e.containerHeight;break;case 36:f=c.ctrlKey?t.scrollTop:e.containerHeight;break;default:return}a(t,"top",t.scrollTop-f),a(t,"left",t.scrollLeft+p),s(t),i=n(p,f),i&&c.preventDefault()}}})}var o=t("../../lib/helper"),l=t("../../lib/dom"),i=t("../instances"),s=t("../update-geometry"),a=t("../update-scroll");e.exports=function(t){var e=i.get(t);r(t,e)}},{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],13:[function(t,e,n){"use strict";function r(t,e){function n(n,r){var o=t.scrollTop;if(0===n){if(!e.scrollbarYActive)return!1;if(0===o&&r>0||o>=e.contentHeight-e.containerHeight&&r<0)return!e.settings.wheelPropagation}var l=t.scrollLeft;if(0===r){if(!e.scrollbarXActive)return!1;if(0===l&&n<0||l>=e.contentWidth-e.containerWidth&&n>0)return!e.settings.wheelPropagation}return!0}function r(t){var e=t.deltaX,n=-1*t.deltaY;return"undefined"!=typeof e&&"undefined"!=typeof n||(e=-1*t.wheelDeltaX/6,n=t.wheelDeltaY/6),t.deltaMode&&1===t.deltaMode&&(e*=10,n*=10),e!==e&&n!==n&&(e=0,n=t.wheelDelta),t.shiftKey?[-n,-e]:[e,n]}function o(e,n){var r=t.querySelector("textarea:hover, select[multiple]:hover, .ps-child:hover");if(r){if(!window.getComputedStyle(r).overflow.match(/(scroll|auto)/))return!1;var o=r.scrollHeight-r.clientHeight;if(o>0&&!(0===r.scrollTop&&n>0||r.scrollTop===o&&n<0))return!0;var l=r.scrollLeft-r.clientWidth;if(l>0&&!(0===r.scrollLeft&&e<0||r.scrollLeft===l&&e>0))return!0}return!1}function s(s){var c=r(s),u=c[0],d=c[1];o(u,d)||(a=!1,e.settings.useBothWheelAxes?e.scrollbarYActive&&!e.scrollbarXActive?(d?i(t,"top",t.scrollTop-d*e.settings.wheelSpeed):i(t,"top",t.scrollTop+u*e.settings.wheelSpeed),a=!0):e.scrollbarXActive&&!e.scrollbarYActive&&(u?i(t,"left",t.scrollLeft+u*e.settings.wheelSpeed):i(t,"left",t.scrollLeft-d*e.settings.wheelSpeed),a=!0):(i(t,"top",t.scrollTop-d*e.settings.wheelSpeed),i(t,"left",t.scrollLeft+u*e.settings.wheelSpeed)),l(t),a=a||n(u,d),a&&(s.stopPropagation(),s.preventDefault()))}var a=!1;"undefined"!=typeof window.onwheel?e.event.bind(t,"wheel",s):"undefined"!=typeof window.onmousewheel&&e.event.bind(t,"mousewheel",s)}var o=t("../instances"),l=t("../update-geometry"),i=t("../update-scroll");e.exports=function(t){var e=o.get(t);r(t,e)}},{"../instances":18,"../update-geometry":19,"../update-scroll":20}],14:[function(t,e,n){"use strict";function r(t,e){e.event.bind(t,"scroll",function(){l(t)})}var o=t("../instances"),l=t("../update-geometry");e.exports=function(t){var e=o.get(t);r(t,e)}},{"../instances":18,"../update-geometry":19}],15:[function(t,e,n){"use strict";function r(t,e){function n(){var t=window.getSelection?window.getSelection():document.getSelection?document.getSelection():"";return 0===t.toString().length?null:t.getRangeAt(0).commonAncestorContainer}function r(){c||(c=setInterval(function(){return l.get(t)?(s(t,"top",t.scrollTop+u.top),s(t,"left",t.scrollLeft+u.left),void i(t)):void clearInterval(c)},50))}function a(){c&&(clearInterval(c),c=null),o.stopScrolling(t)}var c=null,u={top:0,left:0},d=!1;e.event.bind(e.ownerDocument,"selectionchange",function(){t.contains(n())?d=!0:(d=!1,a())}),e.event.bind(window,"mouseup",function(){d&&(d=!1,a())}),e.event.bind(window,"keyup",function(){d&&(d=!1,a())}),e.event.bind(window,"mousemove",function(e){if(d){var n={x:e.pageX,y:e.pageY},l={left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,top:t.offsetTop,bottom:t.offsetTop+t.offsetHeight};n.x<l.left+3?(u.left=-5,o.startScrolling(t,"x")):n.x>l.right-3?(u.left=5,o.startScrolling(t,"x")):u.left=0,n.y<l.top+3?(l.top+3-n.y<5?u.top=-5:u.top=-20,o.startScrolling(t,"y")):n.y>l.bottom-3?(n.y-l.bottom+3<5?u.top=5:u.top=20,o.startScrolling(t,"y")):u.top=0,0===u.top&&0===u.left?a():r()}})}var o=t("../../lib/helper"),l=t("../instances"),i=t("../update-geometry"),s=t("../update-scroll");e.exports=function(t){var e=l.get(t);r(t,e)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],16:[function(t,e,n){"use strict";function r(t,e,n,r){function o(n,r){var o=t.scrollTop,l=t.scrollLeft,i=Math.abs(n),s=Math.abs(r);if(s>i){if(r<0&&o===e.contentHeight-e.containerHeight||r>0&&0===o)return!e.settings.swipePropagation}else if(i>s&&(n<0&&l===e.contentWidth-e.containerWidth||n>0&&0===l))return!e.settings.swipePropagation;return!0}function a(e,n){s(t,"top",t.scrollTop-n),s(t,"left",t.scrollLeft-e),i(t)}function c(){w=!0}function u(){w=!1}function d(t){return t.targetTouches?t.targetTouches[0]:t}function p(t){return!(!t.targetTouches||1!==t.targetTouches.length)||!(!t.pointerType||"mouse"===t.pointerType||t.pointerType===t.MSPOINTER_TYPE_MOUSE)}function f(t){if(p(t)){Y=!0;var e=d(t);g.pageX=e.pageX,g.pageY=e.pageY,v=(new Date).getTime(),null!==y&&clearInterval(y),t.stopPropagation()}}function h(t){if(!Y&&e.settings.swipePropagation&&f(t),!w&&Y&&p(t)){var n=d(t),r={pageX:n.pageX,pageY:n.pageY},l=r.pageX-g.pageX,i=r.pageY-g.pageY;a(l,i),g=r;var s=(new Date).getTime(),c=s-v;c>0&&(m.x=l/c,m.y=i/c,v=s),o(l,i)&&(t.stopPropagation(),t.preventDefault())}}function b(){!w&&Y&&(Y=!1,clearInterval(y),y=setInterval(function(){return l.get(t)&&(m.x||m.y)?Math.abs(m.x)<.01&&Math.abs(m.y)<.01?void clearInterval(y):(a(30*m.x,30*m.y),m.x*=.8,void(m.y*=.8)):void clearInterval(y)},10))}var g={},v=0,m={},y=null,w=!1,Y=!1;n&&(e.event.bind(window,"touchstart",c),e.event.bind(window,"touchend",u),e.event.bind(t,"touchstart",f),e.event.bind(t,"touchmove",h),e.event.bind(t,"touchend",b)),r&&(window.PointerEvent?(e.event.bind(window,"pointerdown",c),e.event.bind(window,"pointerup",u),e.event.bind(t,"pointerdown",f),e.event.bind(t,"pointermove",h),e.event.bind(t,"pointerup",b)):window.MSPointerEvent&&(e.event.bind(window,"MSPointerDown",c),e.event.bind(window,"MSPointerUp",u),e.event.bind(t,"MSPointerDown",f),e.event.bind(t,"MSPointerMove",h),e.event.bind(t,"MSPointerUp",b)))}var o=t("../../lib/helper"),l=t("../instances"),i=t("../update-geometry"),s=t("../update-scroll");e.exports=function(t){if(o.env.supportsTouch||o.env.supportsIePointer){var e=l.get(t);r(t,e,o.env.supportsTouch,o.env.supportsIePointer)}}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],17:[function(t,e,n){"use strict";var r=t("../lib/helper"),o=t("../lib/class"),l=t("./instances"),i=t("./update-geometry"),s={"click-rail":t("./handler/click-rail"),"drag-scrollbar":t("./handler/drag-scrollbar"),keyboard:t("./handler/keyboard"),wheel:t("./handler/mouse-wheel"),touch:t("./handler/touch"),selection:t("./handler/selection")},a=t("./handler/native-scroll");e.exports=function(t,e){e="object"==typeof e?e:{},o.add(t,"ps-container");var n=l.add(t);n.settings=r.extend(n.settings,e),o.add(t,"ps-theme-"+n.settings.theme),n.settings.handlers.forEach(function(e){s[e](t)}),a(t),i(t)}},{"../lib/class":2,"../lib/helper":6,"./handler/click-rail":10,"./handler/drag-scrollbar":11,"./handler/keyboard":12,"./handler/mouse-wheel":13,"./handler/native-scroll":14,"./handler/selection":15,"./handler/touch":16,"./instances":18,"./update-geometry":19}],18:[function(t,e,n){"use strict";function r(t){function e(){a.add(t,"ps-focus")}function n(){a.remove(t,"ps-focus")}var r=this;r.settings=s.clone(c),r.containerWidth=null,r.containerHeight=null,r.contentWidth=null,r.contentHeight=null,r.isRtl="rtl"===u.css(t,"direction"),r.isNegativeScroll=function(){var e=t.scrollLeft,n=null;return t.scrollLeft=-1,n=t.scrollLeft<0,t.scrollLeft=e,n}(),r.negativeScrollAdjustment=r.isNegativeScroll?t.scrollWidth-t.clientWidth:0,r.event=new d,r.ownerDocument=t.ownerDocument||document,r.scrollbarXRail=u.appendTo(u.e("div","ps-scrollbar-x-rail"),t),r.scrollbarX=u.appendTo(u.e("div","ps-scrollbar-x"),r.scrollbarXRail),r.scrollbarX.setAttribute("tabindex",0),r.event.bind(r.scrollbarX,"focus",e),r.event.bind(r.scrollbarX,"blur",n),r.scrollbarXActive=null,r.scrollbarXWidth=null,r.scrollbarXLeft=null,r.scrollbarXBottom=s.toInt(u.css(r.scrollbarXRail,"bottom")),r.isScrollbarXUsingBottom=r.scrollbarXBottom===r.scrollbarXBottom,r.scrollbarXTop=r.isScrollbarXUsingBottom?null:s.toInt(u.css(r.scrollbarXRail,"top")),r.railBorderXWidth=s.toInt(u.css(r.scrollbarXRail,"borderLeftWidth"))+s.toInt(u.css(r.scrollbarXRail,"borderRightWidth")),u.css(r.scrollbarXRail,"display","block"),r.railXMarginWidth=s.toInt(u.css(r.scrollbarXRail,"marginLeft"))+s.toInt(u.css(r.scrollbarXRail,"marginRight")),u.css(r.scrollbarXRail,"display",""),r.railXWidth=null,r.railXRatio=null,r.scrollbarYRail=u.appendTo(u.e("div","ps-scrollbar-y-rail"),t),r.scrollbarY=u.appendTo(u.e("div","ps-scrollbar-y"),r.scrollbarYRail),r.scrollbarY.setAttribute("tabindex",0),r.event.bind(r.scrollbarY,"focus",e),r.event.bind(r.scrollbarY,"blur",n),r.scrollbarYActive=null,r.scrollbarYHeight=null,r.scrollbarYTop=null,r.scrollbarYRight=s.toInt(u.css(r.scrollbarYRail,"right")),r.isScrollbarYUsingRight=r.scrollbarYRight===r.scrollbarYRight,r.scrollbarYLeft=r.isScrollbarYUsingRight?null:s.toInt(u.css(r.scrollbarYRail,"left")),r.scrollbarYOuterWidth=r.isRtl?s.outerWidth(r.scrollbarY):null,r.railBorderYWidth=s.toInt(u.css(r.scrollbarYRail,"borderTopWidth"))+s.toInt(u.css(r.scrollbarYRail,"borderBottomWidth")),u.css(r.scrollbarYRail,"display","block"),r.railYMarginHeight=s.toInt(u.css(r.scrollbarYRail,"marginTop"))+s.toInt(u.css(r.scrollbarYRail,"marginBottom")),u.css(r.scrollbarYRail,"display",""),r.railYHeight=null,r.railYRatio=null}function o(t){return t.getAttribute("data-ps-id")}function l(t,e){t.setAttribute("data-ps-id",e)}function i(t){t.removeAttribute("data-ps-id")}var s=t("../lib/helper"),a=t("../lib/class"),c=t("./default-setting"),u=t("../lib/dom"),d=t("../lib/event-manager"),p=t("../lib/guid"),f={};n.add=function(t){var e=p();return l(t,e),f[e]=new r(t),f[e]},n.remove=function(t){delete f[o(t)],i(t)},n.get=function(t){return f[o(t)]}},{"../lib/class":2,"../lib/dom":3,"../lib/event-manager":4,"../lib/guid":5,"../lib/helper":6,"./default-setting":8}],19:[function(t,e,n){"use strict";function r(t,e){return t.settings.minScrollbarLength&&(e=Math.max(e,t.settings.minScrollbarLength)),t.settings.maxScrollbarLength&&(e=Math.min(e,t.settings.maxScrollbarLength)),e}function o(t,e){var n={width:e.railXWidth};e.isRtl?n.left=e.negativeScrollAdjustment+t.scrollLeft+e.containerWidth-e.contentWidth:n.left=t.scrollLeft,e.isScrollbarXUsingBottom?n.bottom=e.scrollbarXBottom-t.scrollTop:n.top=e.scrollbarXTop+t.scrollTop,s.css(e.scrollbarXRail,n);var r={top:t.scrollTop,height:e.railYHeight};e.isScrollbarYUsingRight?e.isRtl?r.right=e.contentWidth-(e.negativeScrollAdjustment+t.scrollLeft)-e.scrollbarYRight-e.scrollbarYOuterWidth:r.right=e.scrollbarYRight-t.scrollLeft:e.isRtl?r.left=e.negativeScrollAdjustment+t.scrollLeft+2*e.containerWidth-e.contentWidth-e.scrollbarYLeft-e.scrollbarYOuterWidth:r.left=e.scrollbarYLeft+t.scrollLeft,s.css(e.scrollbarYRail,r),s.css(e.scrollbarX,{left:e.scrollbarXLeft,width:e.scrollbarXWidth-e.railBorderXWidth}),s.css(e.scrollbarY,{top:e.scrollbarYTop,height:e.scrollbarYHeight-e.railBorderYWidth})}var l=t("../lib/helper"),i=t("../lib/class"),s=t("../lib/dom"),a=t("./instances"),c=t("./update-scroll");e.exports=function(t){var e=a.get(t);e.containerWidth=t.clientWidth,e.containerHeight=t.clientHeight,e.contentWidth=t.scrollWidth,e.contentHeight=t.scrollHeight;var n;t.contains(e.scrollbarXRail)||(n=s.queryChildren(t,".ps-scrollbar-x-rail"),n.length>0&&n.forEach(function(t){s.remove(t)}),s.appendTo(e.scrollbarXRail,t)),t.contains(e.scrollbarYRail)||(n=s.queryChildren(t,".ps-scrollbar-y-rail"),n.length>0&&n.forEach(function(t){s.remove(t)}),s.appendTo(e.scrollbarYRail,t)),!e.settings.suppressScrollX&&e.containerWidth+e.settings.scrollXMarginOffset<e.contentWidth?(e.scrollbarXActive=!0,e.railXWidth=e.containerWidth-e.railXMarginWidth,e.railXRatio=e.containerWidth/e.railXWidth,e.scrollbarXWidth=r(e,l.toInt(e.railXWidth*e.containerWidth/e.contentWidth)),e.scrollbarXLeft=l.toInt((e.negativeScrollAdjustment+t.scrollLeft)*(e.railXWidth-e.scrollbarXWidth)/(e.contentWidth-e.containerWidth))):e.scrollbarXActive=!1,!e.settings.suppressScrollY&&e.containerHeight+e.settings.scrollYMarginOffset<e.contentHeight?(e.scrollbarYActive=!0,e.railYHeight=e.containerHeight-e.railYMarginHeight,e.railYRatio=e.containerHeight/e.railYHeight,e.scrollbarYHeight=r(e,l.toInt(e.railYHeight*e.containerHeight/e.contentHeight)),e.scrollbarYTop=l.toInt(t.scrollTop*(e.railYHeight-e.scrollbarYHeight)/(e.contentHeight-e.containerHeight))):e.scrollbarYActive=!1,e.scrollbarXLeft>=e.railXWidth-e.scrollbarXWidth&&(e.scrollbarXLeft=e.railXWidth-e.scrollbarXWidth),e.scrollbarYTop>=e.railYHeight-e.scrollbarYHeight&&(e.scrollbarYTop=e.railYHeight-e.scrollbarYHeight),o(t,e),e.scrollbarXActive?i.add(t,"ps-active-x"):(i.remove(t,"ps-active-x"),e.scrollbarXWidth=0,e.scrollbarXLeft=0,c(t,"left",0)),e.scrollbarYActive?i.add(t,"ps-active-y"):(i.remove(t,"ps-active-y"),e.scrollbarYHeight=0,e.scrollbarYTop=0,c(t,"top",0))}},{"../lib/class":2,"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-scroll":20}],20:[function(t,e,n){"use strict";var r,o,l=t("./instances"),i=function(t){var e=document.createEvent("Event");return e.initEvent(t,!0,!0),e};e.exports=function(t,e,n){if("undefined"==typeof t)throw"You must provide an element to the update-scroll function";if("undefined"==typeof e)throw"You must provide an axis to the update-scroll function";if("undefined"==typeof n)throw"You must provide a value to the update-scroll function";"top"===e&&n<=0&&(t.scrollTop=n=0,t.dispatchEvent(i("ps-y-reach-start"))),"left"===e&&n<=0&&(t.scrollLeft=n=0,t.dispatchEvent(i("ps-x-reach-start")));var s=l.get(t);"top"===e&&n>=s.contentHeight-s.containerHeight&&(n=s.contentHeight-s.containerHeight,n-t.scrollTop<=1?n=t.scrollTop:t.scrollTop=n,t.dispatchEvent(i("ps-y-reach-end"))),"left"===e&&n>=s.contentWidth-s.containerWidth&&(n=s.contentWidth-s.containerWidth,n-t.scrollLeft<=1?n=t.scrollLeft:t.scrollLeft=n,t.dispatchEvent(i("ps-x-reach-end"))),r||(r=t.scrollTop),o||(o=t.scrollLeft),"top"===e&&n<r&&t.dispatchEvent(i("ps-scroll-up")),"top"===e&&n>r&&t.dispatchEvent(i("ps-scroll-down")),"left"===e&&n<o&&t.dispatchEvent(i("ps-scroll-left")),"left"===e&&n>o&&t.dispatchEvent(i("ps-scroll-right")),"top"===e&&(t.scrollTop=r=n,t.dispatchEvent(i("ps-scroll-y"))),"left"===e&&(t.scrollLeft=o=n,t.dispatchEvent(i("ps-scroll-x")))}},{"./instances":18}],21:[function(t,e,n){"use strict";var r=t("../lib/helper"),o=t("../lib/dom"),l=t("./instances"),i=t("./update-geometry"),s=t("./update-scroll");e.exports=function(t){var e=l.get(t);e&&(e.negativeScrollAdjustment=e.isNegativeScroll?t.scrollWidth-t.clientWidth:0,o.css(e.scrollbarXRail,"display","block"),o.css(e.scrollbarYRail,"display","block"),e.railXMarginWidth=r.toInt(o.css(e.scrollbarXRail,"marginLeft"))+r.toInt(o.css(e.scrollbarXRail,"marginRight")),e.railYMarginHeight=r.toInt(o.css(e.scrollbarYRail,"marginTop"))+r.toInt(o.css(e.scrollbarYRail,"marginBottom")),o.css(e.scrollbarXRail,"display","none"),o.css(e.scrollbarYRail,"display","none"),i(t),s(t,"top",t.scrollTop),s(t,"left",t.scrollLeft),o.css(e.scrollbarXRail,"display",""),o.css(e.scrollbarYRail,"display",""))}},{"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-geometry":19,"./update-scroll":20}]},{},[1]);
assets/libs/perfect-scrollbar/js/perfect-scrollbar.js ADDED
@@ -0,0 +1,1552 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* perfect-scrollbar v0.6.14 */
2
+ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
3
+ 'use strict';
4
+
5
+ var ps = require('../main');
6
+
7
+ if (typeof define === 'function' && define.amd) {
8
+ // AMD
9
+ define(ps);
10
+ } else {
11
+ // Add to a global object.
12
+ window.PerfectScrollbar = ps;
13
+ if (typeof window.Ps === 'undefined') {
14
+ window.Ps = ps;
15
+ }
16
+ }
17
+
18
+ },{"../main":7}],2:[function(require,module,exports){
19
+ 'use strict';
20
+
21
+ function oldAdd(element, className) {
22
+ var classes = element.className.split(' ');
23
+ if (classes.indexOf(className) < 0) {
24
+ classes.push(className);
25
+ }
26
+ element.className = classes.join(' ');
27
+ }
28
+
29
+ function oldRemove(element, className) {
30
+ var classes = element.className.split(' ');
31
+ var idx = classes.indexOf(className);
32
+ if (idx >= 0) {
33
+ classes.splice(idx, 1);
34
+ }
35
+ element.className = classes.join(' ');
36
+ }
37
+
38
+ exports.add = function (element, className) {
39
+ if (element.classList) {
40
+ element.classList.add(className);
41
+ } else {
42
+ oldAdd(element, className);
43
+ }
44
+ };
45
+
46
+ exports.remove = function (element, className) {
47
+ if (element.classList) {
48
+ element.classList.remove(className);
49
+ } else {
50
+ oldRemove(element, className);
51
+ }
52
+ };
53
+
54
+ exports.list = function (element) {
55
+ if (element.classList) {
56
+ return Array.prototype.slice.apply(element.classList);
57
+ } else {
58
+ return element.className.split(' ');
59
+ }
60
+ };
61
+
62
+ },{}],3:[function(require,module,exports){
63
+ 'use strict';
64
+
65
+ var DOM = {};
66
+
67
+ DOM.e = function (tagName, className) {
68
+ var element = document.createElement(tagName);
69
+ element.className = className;
70
+ return element;
71
+ };
72
+
73
+ DOM.appendTo = function (child, parent) {
74
+ parent.appendChild(child);
75
+ return child;
76
+ };
77
+
78
+ function cssGet(element, styleName) {
79
+ return window.getComputedStyle(element)[styleName];
80
+ }
81
+
82
+ function cssSet(element, styleName, styleValue) {
83
+ if (typeof styleValue === 'number') {
84
+ styleValue = styleValue.toString() + 'px';
85
+ }
86
+ element.style[styleName] = styleValue;
87
+ return element;
88
+ }
89
+
90
+ function cssMultiSet(element, obj) {
91
+ for (var key in obj) {
92
+ var val = obj[key];
93
+ if (typeof val === 'number') {
94
+ val = val.toString() + 'px';
95
+ }
96
+ element.style[key] = val;
97
+ }
98
+ return element;
99
+ }
100
+
101
+ DOM.css = function (element, styleNameOrObject, styleValue) {
102
+ if (typeof styleNameOrObject === 'object') {
103
+ // multiple set with object
104
+ return cssMultiSet(element, styleNameOrObject);
105
+ } else {
106
+ if (typeof styleValue === 'undefined') {
107
+ return cssGet(element, styleNameOrObject);
108
+ } else {
109
+ return cssSet(element, styleNameOrObject, styleValue);
110
+ }
111
+ }
112
+ };
113
+
114
+ DOM.matches = function (element, query) {
115
+ if (typeof element.matches !== 'undefined') {
116
+ return element.matches(query);
117
+ } else {
118
+ if (typeof element.matchesSelector !== 'undefined') {
119
+ return element.matchesSelector(query);
120
+ } else if (typeof element.webkitMatchesSelector !== 'undefined') {
121
+ return element.webkitMatchesSelector(query);
122
+ } else if (typeof element.mozMatchesSelector !== 'undefined') {
123
+ return element.mozMatchesSelector(query);
124
+ } else if (typeof element.msMatchesSelector !== 'undefined') {
125
+ return element.msMatchesSelector(query);
126
+ }
127
+ }
128
+ };
129
+
130
+ DOM.remove = function (element) {
131
+ if (typeof element.remove !== 'undefined') {
132
+ element.remove();
133
+ } else {
134
+ if (element.parentNode) {
135
+ element.parentNode.removeChild(element);
136
+ }
137
+ }
138
+ };
139
+
140
+ DOM.queryChildren = function (element, selector) {
141
+ return Array.prototype.filter.call(element.childNodes, function (child) {
142
+ return DOM.matches(child, selector);
143
+ });
144
+ };
145
+
146
+ module.exports = DOM;
147
+
148
+ },{}],4:[function(require,module,exports){
149
+ 'use strict';
150
+
151
+ var EventElement = function (element) {
152
+ this.element = element;
153
+ this.events = {};
154
+ };
155
+
156
+ EventElement.prototype.bind = function (eventName, handler) {
157
+ if (typeof this.events[eventName] === 'undefined') {
158
+ this.events[eventName] = [];
159
+ }
160
+ this.events[eventName].push(handler);
161
+ this.element.addEventListener(eventName, handler, false);
162
+ };
163
+
164
+ EventElement.prototype.unbind = function (eventName, handler) {
165
+ var isHandlerProvided = (typeof handler !== 'undefined');
166
+ this.events[eventName] = this.events[eventName].filter(function (hdlr) {
167
+ if (isHandlerProvided && hdlr !== handler) {
168
+ return true;
169
+ }
170
+ this.element.removeEventListener(eventName, hdlr, false);
171
+ return false;
172
+ }, this);
173
+ };
174
+
175
+ EventElement.prototype.unbindAll = function () {
176
+ for (var name in this.events) {
177
+ this.unbind(name);
178
+ }
179
+ };
180
+
181
+ var EventManager = function () {
182
+ this.eventElements = [];
183
+ };
184
+
185
+ EventManager.prototype.eventElement = function (element) {
186
+ var ee = this.eventElements.filter(function (eventElement) {
187
+ return eventElement.element === element;
188
+ })[0];
189
+ if (typeof ee === 'undefined') {
190
+ ee = new EventElement(element);
191
+ this.eventElements.push(ee);
192
+ }
193
+ return ee;
194
+ };
195
+
196
+ EventManager.prototype.bind = function (element, eventName, handler) {
197
+ this.eventElement(element).bind(eventName, handler);
198
+ };
199
+
200
+ EventManager.prototype.unbind = function (element, eventName, handler) {
201
+ this.eventElement(element).unbind(eventName, handler);
202
+ };
203
+
204
+ EventManager.prototype.unbindAll = function () {
205
+ for (var i = 0; i < this.eventElements.length; i++) {
206
+ this.eventElements[i].unbindAll();
207
+ }
208
+ };
209
+
210
+ EventManager.prototype.once = function (element, eventName, handler) {
211
+ var ee = this.eventElement(element);
212
+ var onceHandler = function (e) {
213
+ ee.unbind(eventName, onceHandler);
214
+ handler(e);
215
+ };
216
+ ee.bind(eventName, onceHandler);
217
+ };
218
+
219
+ module.exports = EventManager;
220
+
221
+ },{}],5:[function(require,module,exports){
222
+ 'use strict';
223
+
224
+ module.exports = (function () {
225
+ function s4() {
226
+ return Math.floor((1 + Math.random()) * 0x10000)
227
+ .toString(16)
228
+ .substring(1);
229
+ }
230
+ return function () {
231
+ return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
232
+ s4() + '-' + s4() + s4() + s4();
233
+ };
234
+ })();
235
+
236
+ },{}],6:[function(require,module,exports){
237
+ 'use strict';
238
+
239
+ var cls = require('./class');
240
+ var dom = require('./dom');
241
+
242
+ var toInt = exports.toInt = function (x) {
243
+ return parseInt(x, 10) || 0;
244
+ };
245
+
246
+ var clone = exports.clone = function (obj) {
247
+ if (!obj) {
248
+ return null;
249
+ } else if (obj.constructor === Array) {
250
+ return obj.map(clone);
251
+ } else if (typeof obj === 'object') {
252
+ var result = {};
253
+ for (var key in obj) {
254
+ result[key] = clone(obj[key]);
255
+ }
256
+ return result;
257
+ } else {
258
+ return obj;
259
+ }
260
+ };
261
+
262
+ exports.extend = function (original, source) {
263
+ var result = clone(original);
264
+ for (var key in source) {
265
+ result[key] = clone(source[key]);
266
+ }
267
+ return result;
268
+ };
269
+
270
+ exports.isEditable = function (el) {
271
+ return dom.matches(el, "input,[contenteditable]") ||
272
+ dom.matches(el, "select,[contenteditable]") ||
273
+ dom.matches(el, "textarea,[contenteditable]") ||
274
+ dom.matches(el, "button,[contenteditable]");
275
+ };
276
+
277
+ exports.removePsClasses = function (element) {
278
+ var clsList = cls.list(element);
279
+ for (var i = 0; i < clsList.length; i++) {
280
+ var className = clsList[i];
281
+ if (className.indexOf('ps-') === 0) {
282
+ cls.remove(element, className);
283
+ }
284
+ }
285
+ };
286
+
287
+ exports.outerWidth = function (element) {
288
+ return toInt(dom.css(element, 'width')) +
289
+ toInt(dom.css(element, 'paddingLeft')) +
290
+ toInt(dom.css(element, 'paddingRight')) +
291
+ toInt(dom.css(element, 'borderLeftWidth')) +
292
+ toInt(dom.css(element, 'borderRightWidth'));
293
+ };
294
+
295
+ exports.startScrolling = function (element, axis) {
296
+ cls.add(element, 'ps-in-scrolling');
297
+ if (typeof axis !== 'undefined') {
298
+ cls.add(element, 'ps-' + axis);
299
+ } else {
300
+ cls.add(element, 'ps-x');
301
+ cls.add(element, 'ps-y');
302
+ }
303
+ };
304
+
305
+ exports.stopScrolling = function (element, axis) {
306
+ cls.remove(element, 'ps-in-scrolling');
307
+ if (typeof axis !== 'undefined') {
308
+ cls.remove(element, 'ps-' + axis);
309
+ } else {
310
+ cls.remove(element, 'ps-x');
311
+ cls.remove(element, 'ps-y');
312
+ }
313
+ };
314
+
315
+ exports.env = {
316
+ isWebKit: 'WebkitAppearance' in document.documentElement.style,
317
+ supportsTouch: (('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch),
318
+ supportsIePointer: window.navigator.msMaxTouchPoints !== null
319
+ };
320
+
321
+ },{"./class":2,"./dom":3}],7:[function(require,module,exports){
322
+ 'use strict';
323
+
324
+ var destroy = require('./plugin/destroy');
325
+ var initialize = require('./plugin/initialize');
326
+ var update = require('./plugin/update');
327
+
328
+ module.exports = {
329
+ initialize: initialize,
330
+ update: update,
331
+ destroy: destroy
332
+ };
333
+
334
+ },{"./plugin/destroy":9,"./plugin/initialize":17,"./plugin/update":21}],8:[function(require,module,exports){
335
+ 'use strict';
336
+
337
+ module.exports = {
338
+ handlers: ['click-rail', 'drag-scrollbar', 'keyboard', 'wheel', 'touch'],
339
+ maxScrollbarLength: null,
340
+ minScrollbarLength: null,
341
+ scrollXMarginOffset: 0,
342
+ scrollYMarginOffset: 0,
343
+ suppressScrollX: false,
344
+ suppressScrollY: false,
345
+ swipePropagation: true,
346
+ useBothWheelAxes: false,
347
+ wheelPropagation: false,
348
+ wheelSpeed: 1,
349
+ theme: 'default'
350
+ };
351
+
352
+ },{}],9:[function(require,module,exports){
353
+ 'use strict';
354
+
355
+ var _ = require('../lib/helper');
356
+ var dom = require('../lib/dom');
357
+ var instances = require('./instances');
358
+
359
+ module.exports = function (element) {
360
+ var i = instances.get(element);
361
+
362
+ if (!i) {
363
+ return;
364
+ }
365
+
366
+ i.event.unbindAll();
367
+ dom.remove(i.scrollbarX);
368
+ dom.remove(i.scrollbarY);
369
+ dom.remove(i.scrollbarXRail);
370
+ dom.remove(i.scrollbarYRail);
371
+ _.removePsClasses(element);
372
+
373
+ instances.remove(element);
374
+ };
375
+
376
+ },{"../lib/dom":3,"../lib/helper":6,"./instances":18}],10:[function(require,module,exports){
377
+ 'use strict';
378
+
379
+ var instances = require('../instances');
380
+ var updateGeometry = require('../update-geometry');
381
+ var updateScroll = require('../update-scroll');
382
+
383
+ function bindClickRailHandler(element, i) {
384
+ function pageOffset(el) {
385
+ return el.getBoundingClientRect();
386
+ }
387
+ var stopPropagation = function (e) { e.stopPropagation(); };
388
+
389
+ i.event.bind(i.scrollbarY, 'click', stopPropagation);
390
+ i.event.bind(i.scrollbarYRail, 'click', function (e) {
391
+ var positionTop = e.pageY - window.pageYOffset - pageOffset(i.scrollbarYRail).top;
392
+ var direction = positionTop > i.scrollbarYTop ? 1 : -1;
393
+
394
+ updateScroll(element, 'top', element.scrollTop + direction * i.containerHeight);
395
+ updateGeometry(element);
396
+
397
+ e.stopPropagation();
398
+ });
399
+
400
+ i.event.bind(i.scrollbarX, 'click', stopPropagation);
401
+ i.event.bind(i.scrollbarXRail, 'click', function (e) {
402
+ var positionLeft = e.pageX - window.pageXOffset - pageOffset(i.scrollbarXRail).left;
403
+ var direction = positionLeft > i.scrollbarXLeft ? 1 : -1;
404
+
405
+ updateScroll(element, 'left', element.scrollLeft + direction * i.containerWidth);
406
+ updateGeometry(element);
407
+
408
+ e.stopPropagation();
409
+ });
410
+ }
411
+
412
+ module.exports = function (element) {
413
+ var i = instances.get(element);
414
+ bindClickRailHandler(element, i);
415
+ };
416
+
417
+ },{"../instances":18,"../update-geometry":19,"../update-scroll":20}],11:[function(require,module,exports){
418
+ 'use strict';
419
+
420
+ var _ = require('../../lib/helper');
421
+ var dom = require('../../lib/dom');
422
+ var instances = require('../instances');
423
+ var updateGeometry = require('../update-geometry');
424
+ var updateScroll = require('../update-scroll');
425
+
426
+ function bindMouseScrollXHandler(element, i) {
427
+ var currentLeft = null;
428
+ var currentPageX = null;
429
+
430
+ function updateScrollLeft(deltaX) {
431
+ var newLeft = currentLeft + (deltaX * i.railXRatio);
432
+ var maxLeft = Math.max(0, i.scrollbarXRail.getBoundingClientRect().left) + (i.railXRatio * (i.railXWidth - i.scrollbarXWidth));
433
+
434
+ if (newLeft < 0) {
435
+ i.scrollbarXLeft = 0;
436
+ } else if (newLeft > maxLeft) {
437
+ i.scrollbarXLeft = maxLeft;
438
+ } else {
439
+ i.scrollbarXLeft = newLeft;
440
+ }
441
+
442
+ var scrollLeft = _.toInt(i.scrollbarXLeft * (i.contentWidth - i.containerWidth) / (i.containerWidth - (i.railXRatio * i.scrollbarXWidth))) - i.negativeScrollAdjustment;
443
+ updateScroll(element, 'left', scrollLeft);
444
+ }
445
+
446
+ var mouseMoveHandler = function (e) {
447
+ updateScrollLeft(e.pageX - currentPageX);
448
+ updateGeometry(element);
449
+ e.stopPropagation();
450
+ e.preventDefault();
451
+ };
452
+
453
+ var mouseUpHandler = function () {
454
+ _.stopScrolling(element, 'x');
455
+ i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler);
456
+ };
457
+
458
+ i.event.bind(i.scrollbarX, 'mousedown', function (e) {
459
+ currentPageX = e.pageX;
460
+ currentLeft = _.toInt(dom.css(i.scrollbarX, 'left')) * i.railXRatio;
461
+ _.startScrolling(element, 'x');
462
+
463
+ i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);
464
+ i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);
465
+
466
+ e.stopPropagation();
467
+ e.preventDefault();
468
+ });
469
+ }
470
+
471
+ function bindMouseScrollYHandler(element, i) {
472
+ var currentTop = null;
473
+ var currentPageY = null;
474
+
475
+ function updateScrollTop(deltaY) {
476
+ var newTop = currentTop + (deltaY * i.railYRatio);
477
+ var maxTop = Math.max(0, i.scrollbarYRail.getBoundingClientRect().top) + (i.railYRatio * (i.railYHeight - i.scrollbarYHeight));
478
+
479
+ if (newTop < 0) {
480
+ i.scrollbarYTop = 0;
481
+ } else if (newTop > maxTop) {
482
+ i.scrollbarYTop = maxTop;
483
+ } else {
484
+ i.scrollbarYTop = newTop;
485
+ }
486
+
487
+ var scrollTop = _.toInt(i.scrollbarYTop * (i.contentHeight - i.containerHeight) / (i.containerHeight - (i.railYRatio * i.scrollbarYHeight)));
488
+ updateScroll(element, 'top', scrollTop);
489
+ }
490
+
491
+ var mouseMoveHandler = function (e) {
492
+ updateScrollTop(e.pageY - currentPageY);
493
+ updateGeometry(element);
494
+ e.stopPropagation();
495
+ e.preventDefault();
496
+ };
497
+
498
+ var mouseUpHandler = function () {
499
+ _.stopScrolling(element, 'y');
500
+ i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler);
501
+ };
502
+
503
+ i.event.bind(i.scrollbarY, 'mousedown', function (e) {
504
+ currentPageY = e.pageY;
505
+ currentTop = _.toInt(dom.css(i.scrollbarY, 'top')) * i.railYRatio;
506
+ _.startScrolling(element, 'y');
507
+
508
+ i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);
509
+ i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);
510
+
511
+ e.stopPropagation();
512
+ e.preventDefault();
513
+ });
514
+ }
515
+
516
+ module.exports = function (element) {
517
+ var i = instances.get(element);
518
+ bindMouseScrollXHandler(element, i);
519
+ bindMouseScrollYHandler(element, i);
520
+ };
521
+
522
+ },{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],12:[function(require,module,exports){
523
+ 'use strict';
524
+
525
+ var _ = require('../../lib/helper');
526
+ var dom = require('../../lib/dom');
527
+ var instances = require('../instances');
528
+ var updateGeometry = require('../update-geometry');
529
+ var updateScroll = require('../update-scroll');
530
+
531
+ function bindKeyboardHandler(element, i) {
532
+ var hovered = false;
533
+ i.event.bind(element, 'mouseenter', function () {
534
+ hovered = true;
535
+ });
536
+ i.event.bind(element, 'mouseleave', function () {
537
+ hovered = false;
538
+ });
539
+
540
+ var shouldPrevent = false;
541
+ function shouldPreventDefault(deltaX, deltaY) {
542
+ var scrollTop = element.scrollTop;
543
+ if (deltaX === 0) {
544
+ if (!i.scrollbarYActive) {
545
+ return false;
546
+ }
547
+ if ((scrollTop === 0 && deltaY > 0) || (scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0)) {
548
+ return !i.settings.wheelPropagation;
549
+ }
550
+ }
551
+
552
+ var scrollLeft = element.scrollLeft;
553
+ if (deltaY === 0) {
554
+ if (!i.scrollbarXActive) {
555
+ return false;
556
+ }
557
+ if ((scrollLeft === 0 && deltaX < 0) || (scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0)) {
558
+ return !i.settings.wheelPropagation;
559
+ }
560
+ }
561
+ return true;
562
+ }
563
+
564
+ i.event.bind(i.ownerDocument, 'keydown', function (e) {
565
+ if ((e.isDefaultPrevented && e.isDefaultPrevented()) || e.defaultPrevented) {
566
+ return;
567
+ }
568
+
569
+ var focused = dom.matches(i.scrollbarX, ':focus') ||
570
+ dom.matches(i.scrollbarY, ':focus');
571
+
572
+ if (!hovered && !focused) {
573
+ return;
574
+ }
575
+
576
+ var activeElement = document.activeElement ? document.activeElement : i.ownerDocument.activeElement;
577
+ if (activeElement) {
578
+ if (activeElement.tagName === 'IFRAME') {
579
+ activeElement = activeElement.contentDocument.activeElement;
580
+ } else {
581
+ // go deeper if element is a webcomponent
582
+ while (activeElement.shadowRoot) {
583
+ activeElement = activeElement.shadowRoot.activeElement;
584
+ }
585
+ }
586
+ if (_.isEditable(activeElement)) {
587
+ return;
588
+ }
589
+ }
590
+
591
+ var deltaX = 0;
592
+ var deltaY = 0;
593
+
594
+ switch (e.which) {
595
+ case 37: // left
596
+ if (e.metaKey) {
597
+ deltaX = -i.contentWidth;
598
+ } else if (e.altKey) {
599
+ deltaX = -i.containerWidth;
600
+ } else {
601
+ deltaX = -30;
602
+ }
603
+ break;
604
+ case 38: // up
605
+ if (e.metaKey) {
606
+ deltaY = i.contentHeight;
607
+ } else if (e.altKey) {
608
+ deltaY = i.containerHeight;
609
+ } else {
610
+ deltaY = 30;
611
+ }
612
+ break;
613
+ case 39: // right
614
+ if (e.metaKey) {
615
+ deltaX = i.contentWidth;
616
+ } else if (e.altKey) {
617
+ deltaX = i.containerWidth;
618
+ } else {
619
+ deltaX = 30;
620
+ }
621
+ break;
622
+ case 40: // down
623
+ if (e.metaKey) {
624
+ deltaY = -i.contentHeight;
625
+ } else if (e.altKey) {
626
+ deltaY = -i.containerHeight;
627
+ } else {
628
+ deltaY = -30;
629
+ }
630
+ break;
631
+ case 33: // page up
632
+ deltaY = 90;
633
+ break;
634
+ case 32: // space bar
635
+ if (e.shiftKey) {
636
+ deltaY = 90;
637
+ } else {
638
+ deltaY = -90;
639
+ }
640
+ break;
641
+ case 34: // page down
642
+ deltaY = -90;
643
+ break;
644
+ case 35: // end
645
+ if (e.ctrlKey) {
646
+ deltaY = -i.contentHeight;
647
+ } else {
648
+ deltaY = -i.containerHeight;
649
+ }
650
+ break;
651
+ case 36: // home
652
+ if (e.ctrlKey) {
653
+ deltaY = element.scrollTop;
654
+ } else {
655
+ deltaY = i.containerHeight;
656
+ }
657
+ break;
658
+ default:
659
+ return;
660
+ }
661
+
662
+ updateScroll(element, 'top', element.scrollTop - deltaY);
663
+ updateScroll(element, 'left', element.scrollLeft + deltaX);
664
+ updateGeometry(element);
665
+
666
+ shouldPrevent = shouldPreventDefault(deltaX, deltaY);
667
+ if (shouldPrevent) {
668
+ e.preventDefault();
669
+ }
670
+ });
671
+ }
672
+
673
+ module.exports = function (element) {
674
+ var i = instances.get(element);
675
+ bindKeyboardHandler(element, i);
676
+ };
677
+
678
+ },{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],13:[function(require,module,exports){
679
+ 'use strict';
680
+
681
+ var instances = require('../instances');
682
+ var updateGeometry = require('../update-geometry');
683
+ var updateScroll = require('../update-scroll');
684
+
685
+ function bindMouseWheelHandler(element, i) {
686
+ var shouldPrevent = false;
687
+
688
+ function shouldPreventDefault(deltaX, deltaY) {
689
+ var scrollTop = element.scrollTop;
690
+ if (deltaX === 0) {
691
+ if (!i.scrollbarYActive) {
692
+ return false;
693
+ }
694
+ if ((scrollTop === 0 && deltaY > 0) || (scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0)) {
695
+ return !i.settings.wheelPropagation;
696
+ }
697
+ }
698
+
699
+ var scrollLeft = element.scrollLeft;
700
+ if (deltaY === 0) {
701
+ if (!i.scrollbarXActive) {
702
+ return false;
703
+ }
704
+ if ((scrollLeft === 0 && deltaX < 0) || (scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0)) {
705
+ return !i.settings.wheelPropagation;
706
+ }
707
+ }
708
+ return true;
709
+ }
710
+
711
+ function getDeltaFromEvent(e) {
712
+ var deltaX = e.deltaX;
713
+ var deltaY = -1 * e.deltaY;
714
+
715
+ if (typeof deltaX === "undefined" || typeof deltaY === "undefined") {
716
+ // OS X Safari
717
+ deltaX = -1 * e.wheelDeltaX / 6;
718
+ deltaY = e.wheelDeltaY / 6;
719
+ }
720
+
721
+ if (e.deltaMode && e.deltaMode === 1) {
722
+ // Firefox in deltaMode 1: Line scrolling
723
+ deltaX *= 10;
724
+ deltaY *= 10;
725
+ }
726
+
727
+ if (deltaX !== deltaX && deltaY !== deltaY/* NaN checks */) {
728
+ // IE in some mouse drivers
729
+ deltaX = 0;
730
+ deltaY = e.wheelDelta;
731
+ }
732
+
733
+ if (e.shiftKey) {
734
+ // reverse axis with shift key
735
+ return [-deltaY, -deltaX];
736
+ }
737
+ return [deltaX, deltaY];
738
+ }
739
+
740
+ function shouldBeConsumedByChild(deltaX, deltaY) {
741
+ var child = element.querySelector('textarea:hover, select[multiple]:hover, .ps-child:hover');
742
+ if (child) {
743
+ if (!window.getComputedStyle(child).overflow.match(/(scroll|auto)/)) {
744
+ // if not scrollable
745
+ return false;
746
+ }
747
+
748
+ var maxScrollTop = child.scrollHeight - child.clientHeight;
749
+ if (maxScrollTop > 0) {
750
+ if (!(child.scrollTop === 0 && deltaY > 0) && !(child.scrollTop === maxScrollTop && deltaY < 0)) {
751
+ return true;
752
+ }
753
+ }
754
+ var maxScrollLeft = child.scrollLeft - child.clientWidth;
755
+ if (maxScrollLeft > 0) {
756
+ if (!(child.scrollLeft === 0 && deltaX < 0) && !(child.scrollLeft === maxScrollLeft && deltaX > 0)) {
757
+ return true;
758
+ }
759
+ }
760
+ }
761
+ return false;
762
+ }
763
+
764
+ function mousewheelHandler(e) {
765
+ var delta = getDeltaFromEvent(e);
766
+
767
+ var deltaX = delta[0];
768
+ var deltaY = delta[1];
769
+
770
+ if (shouldBeConsumedByChild(deltaX, deltaY)) {
771
+ return;
772
+ }
773
+
774
+ shouldPrevent = false;
775
+ if (!i.settings.useBothWheelAxes) {
776
+ // deltaX will only be used for horizontal scrolling and deltaY will
777
+ // only be used for vertical scrolling - this is the default
778
+ updateScroll(element, 'top', element.scrollTop - (deltaY * i.settings.wheelSpeed));
779
+ updateScroll(element, 'left', element.scrollLeft + (deltaX * i.settings.wheelSpeed));
780
+ } else if (i.scrollbarYActive && !i.scrollbarXActive) {
781
+ // only vertical scrollbar is active and useBothWheelAxes option is
782
+ // active, so let's scroll vertical bar using both mouse wheel axes
783
+ if (deltaY) {
784
+ updateScroll(element, 'top', element.scrollTop - (deltaY * i.settings.wheelSpeed));
785
+ } else {
786
+ updateScroll(element, 'top', element.scrollTop + (deltaX * i.settings.wheelSpeed));
787
+ }
788
+ shouldPrevent = true;
789
+ } else if (i.scrollbarXActive && !i.scrollbarYActive) {
790
+ // useBothWheelAxes and only horizontal bar is active, so use both
791
+ // wheel axes for horizontal bar
792
+ if (deltaX) {
793
+ updateScroll(element, 'left', element.scrollLeft + (deltaX * i.settings.wheelSpeed));
794
+ } else {
795
+ updateScroll(element, 'left', element.scrollLeft - (deltaY * i.settings.wheelSpeed));
796
+ }
797
+ shouldPrevent = true;
798
+ }
799
+
800
+ updateGeometry(element);
801
+
802
+ shouldPrevent = (shouldPrevent || shouldPreventDefault(deltaX, deltaY));
803
+ if (shouldPrevent) {
804
+ e.stopPropagation();
805
+ e.preventDefault();
806
+ }
807
+ }
808
+
809
+ if (typeof window.onwheel !== "undefined") {
810
+ i.event.bind(element, 'wheel', mousewheelHandler);
811
+ } else if (typeof window.onmousewheel !== "undefined") {
812
+ i.event.bind(element, 'mousewheel', mousewheelHandler);
813
+ }
814
+ }
815
+
816
+ module.exports = function (element) {
817
+ var i = instances.get(element);
818
+ bindMouseWheelHandler(element, i);
819
+ };
820
+
821
+ },{"../instances":18,"../update-geometry":19,"../update-scroll":20}],14:[function(require,module,exports){
822
+ 'use strict';
823
+
824
+ var instances = require('../instances');
825
+ var updateGeometry = require('../update-geometry');
826
+
827
+ function bindNativeScrollHandler(element, i) {
828
+ i.event.bind(element, 'scroll', function () {
829
+ updateGeometry(element);
830
+ });
831
+ }
832
+
833
+ module.exports = function (element) {
834
+ var i = instances.get(element);
835
+ bindNativeScrollHandler(element, i);
836
+ };
837
+
838
+ },{"../instances":18,"../update-geometry":19}],15:[function(require,module,exports){
839
+ 'use strict';
840
+
841
+ var _ = require('../../lib/helper');
842
+ var instances = require('../instances');
843
+ var updateGeometry = require('../update-geometry');
844
+ var updateScroll = require('../update-scroll');
845
+
846
+ function bindSelectionHandler(element, i) {
847
+ function getRangeNode() {
848
+ var selection = window.getSelection ? window.getSelection() :
849
+ document.getSelection ? document.getSelection() : '';
850
+ if (selection.toString().length === 0) {
851
+ return null;
852
+ } else {
853
+ return selection.getRangeAt(0).commonAncestorContainer;
854
+ }
855
+ }
856
+
857
+ var scrollingLoop = null;
858
+ var scrollDiff = {top: 0, left: 0};
859
+ function startScrolling() {
860
+ if (!scrollingLoop) {
861
+ scrollingLoop = setInterval(function () {
862
+ if (!instances.get(element)) {
863
+ clearInterval(scrollingLoop);
864
+ return;
865
+ }
866
+
867
+ updateScroll(element, 'top', element.scrollTop + scrollDiff.top);
868
+ updateScroll(element, 'left', element.scrollLeft + scrollDiff.left);
869
+ updateGeometry(element);
870
+ }, 50); // every .1 sec
871
+ }
872
+ }
873
+ function stopScrolling() {
874
+ if (scrollingLoop) {
875
+ clearInterval(scrollingLoop);
876
+ scrollingLoop = null;
877
+ }
878
+ _.stopScrolling(element);
879
+ }
880
+
881
+ var isSelected = false;
882
+ i.event.bind(i.ownerDocument, 'selectionchange', function () {
883
+ if (element.contains(getRangeNode())) {
884
+ isSelected = true;
885
+ } else {
886
+ isSelected = false;
887
+ stopScrolling();
888
+ }
889
+ });
890
+ i.event.bind(window, 'mouseup', function () {
891
+ if (isSelected) {
892
+ isSelected = false;
893
+ stopScrolling();
894
+ }
895
+ });
896
+ i.event.bind(window, 'keyup', function () {
897
+ if (isSelected) {
898
+ isSelected = false;
899
+ stopScrolling();
900
+ }
901
+ });
902
+
903
+ i.event.bind(window, 'mousemove', function (e) {
904
+ if (isSelected) {
905
+ var mousePosition = {x: e.pageX, y: e.pageY};
906
+ var containerGeometry = {
907
+ left: element.offsetLeft,
908
+ right: element.offsetLeft + element.offsetWidth,
909
+ top: element.offsetTop,
910
+ bottom: element.offsetTop + element.offsetHeight
911
+ };
912
+
913
+ if (mousePosition.x < containerGeometry.left + 3) {
914
+ scrollDiff.left = -5;
915
+ _.startScrolling(element, 'x');
916
+ } else if (mousePosition.x > containerGeometry.right - 3) {
917
+ scrollDiff.left = 5;
918
+ _.startScrolling(element, 'x');
919
+ } else {
920
+ scrollDiff.left = 0;
921
+ }
922
+
923
+ if (mousePosition.y < containerGeometry.top + 3) {
924
+ if (containerGeometry.top + 3 - mousePosition.y < 5) {
925
+ scrollDiff.top = -5;
926
+ } else {
927
+ scrollDiff.top = -20;
928
+ }
929
+ _.startScrolling(element, 'y');
930
+ } else if (mousePosition.y > containerGeometry.bottom - 3) {
931
+ if (mousePosition.y - containerGeometry.bottom + 3 < 5) {
932
+ scrollDiff.top = 5;
933
+ } else {
934
+ scrollDiff.top = 20;
935
+ }
936
+ _.startScrolling(element, 'y');
937
+ } else {
938
+ scrollDiff.top = 0;
939
+ }
940
+
941
+ if (scrollDiff.top === 0 && scrollDiff.left === 0) {
942
+ stopScrolling();
943
+ } else {
944
+ startScrolling();
945
+ }
946
+ }
947
+ });
948
+ }
949
+
950
+ module.exports = function (element) {
951
+ var i = instances.get(element);
952
+ bindSelectionHandler(element, i);
953
+ };
954
+
955
+ },{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],16:[function(require,module,exports){
956
+ 'use strict';
957
+
958
+ var _ = require('../../lib/helper');
959
+ var instances = require('../instances');
960
+ var updateGeometry = require('../update-geometry');
961
+ var updateScroll = require('../update-scroll');
962
+
963
+ function bindTouchHandler(element, i, supportsTouch, supportsIePointer) {
964
+ function shouldPreventDefault(deltaX, deltaY) {
965
+ var scrollTop = element.scrollTop;
966
+ var scrollLeft = element.scrollLeft;
967
+ var magnitudeX = Math.abs(deltaX);
968
+ var magnitudeY = Math.abs(deltaY);
969
+
970
+ if (magnitudeY > magnitudeX) {
971
+ // user is perhaps trying to swipe up/down the page
972
+
973
+ if (((deltaY < 0) && (scrollTop === i.contentHeight - i.containerHeight)) ||
974
+ ((deltaY > 0) && (scrollTop === 0))) {
975
+ return !i.settings.swipePropagation;
976
+ }
977
+ } else if (magnitudeX > magnitudeY) {
978
+ // user is perhaps trying to swipe left/right across the page
979
+
980
+ if (((deltaX < 0) && (scrollLeft === i.contentWidth - i.containerWidth)) ||
981
+ ((deltaX > 0) && (scrollLeft === 0))) {
982
+ return !i.settings.swipePropagation;
983
+ }
984
+ }
985
+
986
+ return true;
987
+ }
988
+
989
+ function applyTouchMove(differenceX, differenceY) {
990
+ updateScroll(element, 'top', element.scrollTop - differenceY);
991
+ updateScroll(element, 'left', element.scrollLeft - differenceX);
992
+
993
+ updateGeometry(element);
994
+ }
995
+
996
+ var startOffset = {};
997
+ var startTime = 0;
998
+ var speed = {};
999
+ var easingLoop = null;
1000
+ var inGlobalTouch = false;
1001
+ var inLocalTouch = false;
1002
+
1003
+ function globalTouchStart() {
1004
+ inGlobalTouch = true;
1005
+ }
1006
+ function globalTouchEnd() {
1007
+ inGlobalTouch = false;
1008
+ }
1009
+
1010
+ function getTouch(e) {
1011
+ if (e.targetTouches) {
1012
+ return e.targetTouches[0];
1013
+ } else {
1014
+ // Maybe IE pointer
1015
+ return e;
1016
+ }
1017
+ }
1018
+ function shouldHandle(e) {
1019
+ if (e.targetTouches && e.targetTouches.length === 1) {
1020
+ return true;
1021
+ }
1022
+ if (e.pointerType && e.pointerType !== 'mouse' && e.pointerType !== e.MSPOINTER_TYPE_MOUSE) {
1023
+ return true;
1024
+ }
1025
+ return false;
1026
+ }
1027
+ function touchStart(e) {
1028
+ if (shouldHandle(e)) {
1029
+ inLocalTouch = true;
1030
+
1031
+ var touch = getTouch(e);
1032
+
1033
+ startOffset.pageX = touch.pageX;
1034
+ startOffset.pageY = touch.pageY;
1035
+
1036
+ startTime = (new Date()).getTime();
1037
+
1038
+ if (easingLoop !== null) {
1039
+ clearInterval(easingLoop);
1040
+ }
1041
+
1042
+ e.stopPropagation();
1043
+ }
1044
+ }
1045
+ function touchMove(e) {
1046
+ if (!inLocalTouch && i.settings.swipePropagation) {
1047
+ touchStart(e);
1048
+ }
1049
+ if (!inGlobalTouch && inLocalTouch && shouldHandle(e)) {
1050
+ var touch = getTouch(e);
1051
+
1052
+ var currentOffset = {pageX: touch.pageX, pageY: touch.pageY};
1053
+
1054
+ var differenceX = currentOffset.pageX - startOffset.pageX;
1055
+ var differenceY = currentOffset.pageY - startOffset.pageY;
1056
+
1057
+ applyTouchMove(differenceX, differenceY);
1058
+ startOffset = currentOffset;
1059
+
1060
+ var currentTime = (new Date()).getTime();
1061
+
1062
+ var timeGap = currentTime - startTime;
1063
+ if (timeGap > 0) {
1064
+ speed.x = differenceX / timeGap;
1065
+ speed.y = differenceY / timeGap;
1066
+ startTime = currentTime;
1067
+ }
1068
+
1069
+ if (shouldPreventDefault(differenceX, differenceY)) {
1070
+ e.stopPropagation();
1071
+ e.preventDefault();
1072
+ }
1073
+ }
1074
+ }
1075
+ function touchEnd() {
1076
+ if (!inGlobalTouch && inLocalTouch) {
1077
+ inLocalTouch = false;
1078
+
1079
+ clearInterval(easingLoop);
1080
+ easingLoop = setInterval(function () {
1081
+ if (!instances.get(element)) {
1082
+ clearInterval(easingLoop);
1083
+ return;
1084
+ }
1085
+
1086
+ if (!speed.x && !speed.y) {
1087
+ clearInterval(easingLoop);
1088
+ return;
1089
+ }
1090
+
1091
+ if (Math.abs(speed.x) < 0.01 && Math.abs(speed.y) < 0.01) {
1092
+ clearInterval(easingLoop);
1093
+ return;
1094
+ }
1095
+
1096
+ applyTouchMove(speed.x * 30, speed.y * 30);
1097
+
1098
+ speed.x *= 0.8;
1099
+ speed.y *= 0.8;
1100
+ }, 10);
1101
+ }
1102
+ }
1103
+
1104
+ if (supportsTouch) {
1105
+ i.event.bind(window, 'touchstart', globalTouchStart);
1106
+ i.event.bind(window, 'touchend', globalTouchEnd);
1107
+ i.event.bind(element, 'touchstart', touchStart);
1108
+ i.event.bind(element, 'touchmove', touchMove);
1109
+ i.event.bind(element, 'touchend', touchEnd);
1110
+ }
1111
+
1112
+ if (supportsIePointer) {
1113
+ if (window.PointerEvent) {
1114
+ i.event.bind(window, 'pointerdown', globalTouchStart);
1115
+ i.event.bind(window, 'pointerup', globalTouchEnd);
1116
+ i.event.bind(element, 'pointerdown', touchStart);
1117
+ i.event.bind(element, 'pointermove', touchMove);
1118
+ i.event.bind(element, 'pointerup', touchEnd);
1119
+ } else if (window.MSPointerEvent) {
1120
+ i.event.bind(window, 'MSPointerDown', globalTouchStart);
1121
+ i.event.bind(window, 'MSPointerUp', globalTouchEnd);
1122
+ i.event.bind(element, 'MSPointerDown', touchStart);
1123
+ i.event.bind(element, 'MSPointerMove', touchMove);
1124
+ i.event.bind(element, 'MSPointerUp', touchEnd);
1125
+ }
1126
+ }
1127
+ }
1128
+
1129
+ module.exports = function (element) {
1130
+ if (!_.env.supportsTouch && !_.env.supportsIePointer) {
1131
+ return;
1132
+ }
1133
+
1134
+ var i = instances.get(element);
1135
+ bindTouchHandler(element, i, _.env.supportsTouch, _.env.supportsIePointer);
1136
+ };
1137
+
1138
+ },{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],17:[function(require,module,exports){
1139
+ 'use strict';
1140
+
1141
+ var _ = require('../lib/helper');
1142
+ var cls = require('../lib/class');
1143
+ var instances = require('./instances');
1144
+ var updateGeometry = require('./update-geometry');
1145
+
1146
+ // Handlers
1147
+ var handlers = {
1148
+ 'click-rail': require('./handler/click-rail'),
1149
+ 'drag-scrollbar': require('./handler/drag-scrollbar'),
1150
+ 'keyboard': require('./handler/keyboard'),
1151
+ 'wheel': require('./handler/mouse-wheel'),
1152
+ 'touch': require('./handler/touch'),
1153
+ 'selection': require('./handler/selection')
1154
+ };
1155
+ var nativeScrollHandler = require('./handler/native-scroll');
1156
+
1157
+ module.exports = function (element, userSettings) {
1158
+ userSettings = typeof userSettings === 'object' ? userSettings : {};
1159
+
1160
+ cls.add(element, 'ps-container');
1161
+
1162
+ // Create a plugin instance.
1163
+ var i = instances.add(element);
1164
+
1165
+ i.settings = _.extend(i.settings, userSettings);
1166
+ cls.add(element, 'ps-theme-' + i.settings.theme);
1167
+
1168
+ i.settings.handlers.forEach(function (handlerName) {
1169
+ handlers[handlerName](element);
1170
+ });
1171
+
1172
+ nativeScrollHandler(element);
1173
+
1174
+ updateGeometry(element);
1175
+ };
1176
+
1177
+ },{"../lib/class":2,"../lib/helper":6,"./handler/click-rail":10,"./handler/drag-scrollbar":11,"./handler/keyboard":12,"./handler/mouse-wheel":13,"./handler/native-scroll":14,"./handler/selection":15,"./handler/touch":16,"./instances":18,"./update-geometry":19}],18:[function(require,module,exports){
1178
+ 'use strict';
1179
+
1180
+ var _ = require('../lib/helper');
1181
+ var cls = require('../lib/class');
1182
+ var defaultSettings = require('./default-setting');
1183
+ var dom = require('../lib/dom');
1184
+ var EventManager = require('../lib/event-manager');
1185
+ var guid = require('../lib/guid');
1186
+
1187
+ var instances = {};
1188
+
1189
+ function Instance(element) {
1190
+ var i = this;
1191
+
1192
+ i.settings = _.clone(defaultSettings);
1193
+ i.containerWidth = null;
1194
+ i.containerHeight = null;
1195
+ i.contentWidth = null;
1196
+ i.contentHeight = null;
1197
+
1198
+ i.isRtl = dom.css(element, 'direction') === "rtl";
1199
+ i.isNegativeScroll = (function () {
1200
+ var originalScrollLeft = element.scrollLeft;
1201
+ var result = null;
1202
+ element.scrollLeft = -1;
1203
+ result = element.scrollLeft < 0;
1204
+ element.scrollLeft = originalScrollLeft;
1205
+ return result;
1206
+ })();
1207
+ i.negativeScrollAdjustment = i.isNegativeScroll ? element.scrollWidth - element.clientWidth : 0;
1208
+ i.event = new EventManager();
1209
+ i.ownerDocument = element.ownerDocument || document;
1210
+
1211
+ function focus() {
1212
+ cls.add(element, 'ps-focus');
1213
+ }
1214
+
1215
+ function blur() {
1216
+ cls.remove(element, 'ps-focus');
1217
+ }
1218
+
1219
+ i.scrollbarXRail = dom.appendTo(dom.e('div', 'ps-scrollbar-x-rail'), element);
1220
+ i.scrollbarX = dom.appendTo(dom.e('div', 'ps-scrollbar-x'), i.scrollbarXRail);
1221
+ i.scrollbarX.setAttribute('tabindex', 0);
1222
+ i.event.bind(i.scrollbarX, 'focus', focus);
1223
+ i.event.bind(i.scrollbarX, 'blur', blur);
1224
+ i.scrollbarXActive = null;
1225
+ i.scrollbarXWidth = null;
1226
+ i.scrollbarXLeft = null;
1227
+ i.scrollbarXBottom = _.toInt(dom.css(i.scrollbarXRail, 'bottom'));
1228
+ i.isScrollbarXUsingBottom = i.scrollbarXBottom === i.scrollbarXBottom; // !isNaN
1229
+ i.scrollbarXTop = i.isScrollbarXUsingBottom ? null : _.toInt(dom.css(i.scrollbarXRail, 'top'));
1230
+ i.railBorderXWidth = _.toInt(dom.css(i.scrollbarXRail, 'borderLeftWidth')) + _.toInt(dom.css(i.scrollbarXRail, 'borderRightWidth'));
1231
+ // Set rail to display:block to calculate margins
1232
+ dom.css(i.scrollbarXRail, 'display', 'block');
1233
+ i.railXMarginWidth = _.toInt(dom.css(i.scrollbarXRail, 'marginLeft')) + _.toInt(dom.css(i.scrollbarXRail, 'marginRight'));
1234
+ dom.css(i.scrollbarXRail, 'display', '');
1235
+ i.railXWidth = null;
1236
+ i.railXRatio = null;
1237
+
1238
+ i.scrollbarYRail = dom.appendTo(dom.e('div', 'ps-scrollbar-y-rail'), element);
1239
+ i.scrollbarY = dom.appendTo(dom.e('div', 'ps-scrollbar-y'), i.scrollbarYRail);
1240
+ i.scrollbarY.setAttribute('tabindex', 0);
1241
+ i.event.bind(i.scrollbarY, 'focus', focus);
1242
+ i.event.bind(i.scrollbarY, 'blur', blur);
1243
+ i.scrollbarYActive = null;
1244
+ i.scrollbarYHeight = null;
1245
+ i.scrollbarYTop = null;
1246
+ i.scrollbarYRight = _.toInt(dom.css(i.scrollbarYRail, 'right'));
1247
+ i.isScrollbarYUsingRight = i.scrollbarYRight === i.scrollbarYRight; // !isNaN
1248
+ i.scrollbarYLeft = i.isScrollbarYUsingRight ? null : _.toInt(dom.css(i.scrollbarYRail, 'left'));
1249
+ i.scrollbarYOuterWidth = i.isRtl ? _.outerWidth(i.scrollbarY) : null;
1250
+ i.railBorderYWidth = _.toInt(dom.css(i.scrollbarYRail, 'borderTopWidth')) + _.toInt(dom.css(i.scrollbarYRail, 'borderBottomWidth'));
1251
+ dom.css(i.scrollbarYRail, 'display', 'block');
1252
+ i.railYMarginHeight = _.toInt(dom.css(i.scrollbarYRail, 'marginTop')) + _.toInt(dom.css(i.scrollbarYRail, 'marginBottom'));
1253
+ dom.css(i.scrollbarYRail, 'display', '');
1254
+ i.railYHeight = null;
1255
+ i.railYRatio = null;
1256
+ }
1257
+
1258
+ function getId(element) {
1259
+ return element.getAttribute('data-ps-id');
1260
+ }
1261
+
1262
+ function setId(element, id) {
1263
+ element.setAttribute('data-ps-id', id);
1264
+ }
1265
+
1266
+ function removeId(element) {
1267
+ element.removeAttribute('data-ps-id');
1268
+ }
1269
+
1270
+ exports.add = function (element) {
1271
+ var newId = guid();
1272
+ setId(element, newId);
1273
+ instances[newId] = new Instance(element);
1274
+ return instances[newId];
1275
+ };
1276
+
1277
+ exports.remove = function (element) {
1278
+ delete instances[getId(element)];
1279
+ removeId(element);
1280
+ };
1281
+
1282
+ exports.get = function (element) {
1283
+ return instances[getId(element)];
1284
+ };
1285
+
1286
+ },{"../lib/class":2,"../lib/dom":3,"../lib/event-manager":4,"../lib/guid":5,"../lib/helper":6,"./default-setting":8}],19:[function(require,module,exports){
1287
+ 'use strict';
1288
+
1289
+ var _ = require('../lib/helper');
1290
+ var cls = require('../lib/class');
1291
+ var dom = require('../lib/dom');
1292
+ var instances = require('./instances');
1293
+ var updateScroll = require('./update-scroll');
1294
+
1295
+ function getThumbSize(i, thumbSize) {
1296
+ if (i.settings.minScrollbarLength) {
1297
+ thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength);
1298
+ }
1299
+ if (i.settings.maxScrollbarLength) {
1300
+ thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength);
1301
+ }
1302
+ return thumbSize;
1303
+ }
1304
+
1305
+ function updateCss(element, i) {
1306
+ var xRailOffset = {width: i.railXWidth};
1307
+ if (i.isRtl) {
1308
+ xRailOffset.left = i.negativeScrollAdjustment + element.scrollLeft + i.containerWidth - i.contentWidth;
1309
+ } else {
1310
+ xRailOffset.left = element.scrollLeft;
1311
+ }
1312
+ if (i.isScrollbarXUsingBottom) {
1313
+ xRailOffset.bottom = i.scrollbarXBottom - element.scrollTop;
1314
+ } else {
1315
+ xRailOffset.top = i.scrollbarXTop + element.scrollTop;
1316
+ }
1317
+ dom.css(i.scrollbarXRail, xRailOffset);
1318
+
1319
+ var yRailOffset = {top: element.scrollTop, height: i.railYHeight};
1320
+ if (i.isScrollbarYUsingRight) {
1321
+ if (i.isRtl) {
1322
+ yRailOffset.right = i.contentWidth - (i.negativeScrollAdjustment + element.scrollLeft) - i.scrollbarYRight - i.scrollbarYOuterWidth;
1323
+ } else {
1324
+ yRailOffset.right = i.scrollbarYRight - element.scrollLeft;
1325
+ }
1326
+ } else {
1327
+ if (i.isRtl) {
1328
+ yRailOffset.left = i.negativeScrollAdjustment + element.scrollLeft + i.containerWidth * 2 - i.contentWidth - i.scrollbarYLeft - i.scrollbarYOuterWidth;
1329
+ } else {
1330
+ yRailOffset.left = i.scrollbarYLeft + element.scrollLeft;
1331
+ }
1332
+ }
1333
+ dom.css(i.scrollbarYRail, yRailOffset);
1334
+
1335
+ dom.css(i.scrollbarX, {left: i.scrollbarXLeft, width: i.scrollbarXWidth - i.railBorderXWidth});
1336
+ dom.css(i.scrollbarY, {top: i.scrollbarYTop, height: i.scrollbarYHeight - i.railBorderYWidth});
1337
+ }
1338
+
1339
+ module.exports = function (element) {
1340
+ var i = instances.get(element);
1341
+
1342
+ i.containerWidth = element.clientWidth;
1343
+ i.containerHeight = element.clientHeight;
1344
+ i.contentWidth = element.scrollWidth;
1345
+ i.contentHeight = element.scrollHeight;
1346
+
1347
+ var existingRails;
1348
+ if (!element.contains(i.scrollbarXRail)) {
1349
+ existingRails = dom.queryChildren(element, '.ps-scrollbar-x-rail');
1350
+ if (existingRails.length > 0) {
1351
+ existingRails.forEach(function (rail) {
1352
+ dom.remove(rail);
1353
+ });
1354
+ }
1355
+ dom.appendTo(i.scrollbarXRail, element);
1356
+ }
1357
+ if (!element.contains(i.scrollbarYRail)) {
1358
+ existingRails = dom.queryChildren(element, '.ps-scrollbar-y-rail');
1359
+ if (existingRails.length > 0) {
1360
+ existingRails.forEach(function (rail) {
1361
+ dom.remove(rail);
1362
+ });
1363
+ }
1364
+ dom.appendTo(i.scrollbarYRail, element);
1365
+ }
1366
+
1367
+ if (!i.settings.suppressScrollX && i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth) {
1368
+ i.scrollbarXActive = true;
1369
+ i.railXWidth = i.containerWidth - i.railXMarginWidth;
1370
+ i.railXRatio = i.containerWidth / i.railXWidth;
1371
+ i.scrollbarXWidth = getThumbSize(i, _.toInt(i.railXWidth * i.containerWidth / i.contentWidth));
1372
+ i.scrollbarXLeft = _.toInt((i.negativeScrollAdjustment + element.scrollLeft) * (i.railXWidth - i.scrollbarXWidth) / (i.contentWidth - i.containerWidth));
1373
+ } else {
1374
+ i.scrollbarXActive = false;
1375
+ }
1376
+
1377
+ if (!i.settings.suppressScrollY && i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight) {
1378
+ i.scrollbarYActive = true;
1379
+ i.railYHeight = i.containerHeight - i.railYMarginHeight;
1380
+ i.railYRatio = i.containerHeight / i.railYHeight;
1381
+ i.scrollbarYHeight = getThumbSize(i, _.toInt(i.railYHeight * i.containerHeight / i.contentHeight));
1382
+ i.scrollbarYTop = _.toInt(element.scrollTop * (i.railYHeight - i.scrollbarYHeight) / (i.contentHeight - i.containerHeight));
1383
+ } else {
1384
+ i.scrollbarYActive = false;
1385
+ }
1386
+
1387
+ if (i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth) {
1388
+ i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth;
1389
+ }
1390
+ if (i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight) {
1391
+ i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight;
1392
+ }
1393
+
1394
+ updateCss(element, i);
1395
+
1396
+ if (i.scrollbarXActive) {
1397
+ cls.add(element, 'ps-active-x');
1398
+ } else {
1399
+ cls.remove(element, 'ps-active-x');
1400
+ i.scrollbarXWidth = 0;
1401
+ i.scrollbarXLeft = 0;
1402
+ updateScroll(element, 'left', 0);
1403
+ }
1404
+ if (i.scrollbarYActive) {
1405
+ cls.add(element, 'ps-active-y');
1406
+ } else {
1407
+ cls.remove(element, 'ps-active-y');
1408
+ i.scrollbarYHeight = 0;
1409
+ i.scrollbarYTop = 0;
1410
+ updateScroll(element, 'top', 0);
1411
+ }
1412
+ };
1413
+
1414
+ },{"../lib/class":2,"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-scroll":20}],20:[function(require,module,exports){
1415
+ 'use strict';
1416
+
1417
+ var instances = require('./instances');
1418
+
1419
+ var lastTop;
1420
+ var lastLeft;
1421
+
1422
+ var createDOMEvent = function (name) {
1423
+ var event = document.createEvent("Event");
1424
+ event.initEvent(name, true, true);
1425
+ return event;
1426
+ };
1427
+
1428
+ module.exports = function (element, axis, value) {
1429
+ if (typeof element === 'undefined') {
1430
+ throw 'You must provide an element to the update-scroll function';
1431
+ }
1432
+
1433
+ if (typeof axis === 'undefined') {
1434
+ throw 'You must provide an axis to the update-scroll function';
1435
+ }
1436
+
1437
+ if (typeof value === 'undefined') {
1438
+ throw 'You must provide a value to the update-scroll function';
1439
+ }
1440
+
1441
+ if (axis === 'top' && value <= 0) {
1442
+ element.scrollTop = value = 0; // don't allow negative scroll
1443
+ element.dispatchEvent(createDOMEvent('ps-y-reach-start'));
1444
+ }
1445
+
1446
+ if (axis === 'left' && value <= 0) {
1447
+ element.scrollLeft = value = 0; // don't allow negative scroll
1448
+ element.dispatchEvent(createDOMEvent('ps-x-reach-start'));
1449
+ }
1450
+
1451
+ var i = instances.get(element);
1452
+
1453
+ if (axis === 'top' && value >= i.contentHeight - i.containerHeight) {
1454
+ // don't allow scroll past container
1455
+ value = i.contentHeight - i.containerHeight;
1456
+ if (value - element.scrollTop <= 1) {
1457
+ // mitigates rounding errors on non-subpixel scroll values
1458
+ value = element.scrollTop;
1459
+ } else {
1460
+ element.scrollTop = value;
1461
+ }
1462
+ element.dispatchEvent(createDOMEvent('ps-y-reach-end'));
1463
+ }
1464
+
1465
+ if (axis === 'left' && value >= i.contentWidth - i.containerWidth) {
1466
+ // don't allow scroll past container
1467
+ value = i.contentWidth - i.containerWidth;
1468
+ if (value - element.scrollLeft <= 1) {
1469
+ // mitigates rounding errors on non-subpixel scroll values
1470
+ value = element.scrollLeft;
1471
+ } else {
1472
+ element.scrollLeft = value;
1473
+ }
1474
+ element.dispatchEvent(createDOMEvent('ps-x-reach-end'));
1475
+ }
1476
+
1477
+ if (!lastTop) {
1478
+ lastTop = element.scrollTop;
1479
+ }
1480
+
1481
+ if (!lastLeft) {
1482
+ lastLeft = element.scrollLeft;
1483
+ }
1484
+
1485
+ if (axis === 'top' && value < lastTop) {
1486
+ element.dispatchEvent(createDOMEvent('ps-scroll-up'));
1487
+ }
1488
+
1489
+ if (axis === 'top' && value > lastTop) {
1490
+ element.dispatchEvent(createDOMEvent('ps-scroll-down'));
1491
+ }
1492
+
1493
+ if (axis === 'left' && value < lastLeft) {
1494
+ element.dispatchEvent(createDOMEvent('ps-scroll-left'));
1495
+ }
1496
+
1497
+ if (axis === 'left' && value > lastLeft) {
1498
+ element.dispatchEvent(createDOMEvent('ps-scroll-right'));
1499
+ }
1500
+
1501
+ if (axis === 'top') {
1502
+ element.scrollTop = lastTop = value;
1503
+ element.dispatchEvent(createDOMEvent('ps-scroll-y'));
1504
+ }
1505
+
1506
+ if (axis === 'left') {
1507
+ element.scrollLeft = lastLeft = value;
1508
+ element.dispatchEvent(createDOMEvent('ps-scroll-x'));
1509
+ }
1510
+
1511
+ };
1512
+
1513
+ },{"./instances":18}],21:[function(require,module,exports){
1514
+ 'use strict';
1515
+
1516
+ var _ = require('../lib/helper');
1517
+ var dom = require('../lib/dom');
1518
+ var instances = require('./instances');
1519
+ var updateGeometry = require('./update-geometry');
1520
+ var updateScroll = require('./update-scroll');
1521
+
1522
+ module.exports = function (element) {
1523
+ var i = instances.get(element);
1524
+
1525
+ if (!i) {
1526
+ return;
1527
+ }
1528
+
1529
+ // Recalcuate negative scrollLeft adjustment
1530
+ i.negativeScrollAdjustment = i.isNegativeScroll ? element.scrollWidth - element.clientWidth : 0;
1531
+
1532
+ // Recalculate rail margins
1533
+ dom.css(i.scrollbarXRail, 'display', 'block');
1534
+ dom.css(i.scrollbarYRail, 'display', 'block');
1535
+ i.railXMarginWidth = _.toInt(dom.css(i.scrollbarXRail, 'marginLeft')) + _.toInt(dom.css(i.scrollbarXRail, 'marginRight'));
1536
+ i.railYMarginHeight = _.toInt(dom.css(i.scrollbarYRail, 'marginTop')) + _.toInt(dom.css(i.scrollbarYRail, 'marginBottom'));
1537
+
1538
+ // Hide scrollbars not to affect scrollWidth and scrollHeight
1539
+ dom.css(i.scrollbarXRail, 'display', 'none');
1540
+ dom.css(i.scrollbarYRail, 'display', 'none');
1541
+
1542
+ updateGeometry(element);
1543
+
1544
+ // Update top/left scroll to trigger events
1545
+ updateScroll(element, 'top', element.scrollTop);
1546
+ updateScroll(element, 'left', element.scrollLeft);
1547
+
1548
+ dom.css(i.scrollbarXRail, 'display', '');
1549
+ dom.css(i.scrollbarYRail, 'display', '');
1550
+ };
1551
+
1552
+ },{"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-geometry":19,"./update-scroll":20}]},{},[1]);
assets/libs/perfect-scrollbar/js/perfect-scrollbar.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /* perfect-scrollbar v0.6.14 */
2
+ !function t(e,n,r){function o(i,s){if(!n[i]){if(!e[i]){var a="function"==typeof require&&require;if(!s&&a)return a(i,!0);if(l)return l(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[i]={exports:{}};e[i][0].call(u.exports,function(t){var n=e[i][1][t];return o(n?n:t)},u,u.exports,t,e,n,r)}return n[i].exports}for(var l="function"==typeof require&&require,i=0;i<r.length;i++)o(r[i]);return o}({1:[function(t,e,n){"use strict";var r=t("../main");"function"==typeof define&&define.amd?define(r):(window.PerfectScrollbar=r,"undefined"==typeof window.Ps&&(window.Ps=r))},{"../main":7}],2:[function(t,e,n){"use strict";function r(t,e){var n=t.className.split(" ");n.indexOf(e)<0&&n.push(e),t.className=n.join(" ")}function o(t,e){var n=t.className.split(" "),r=n.indexOf(e);r>=0&&n.splice(r,1),t.className=n.join(" ")}n.add=function(t,e){t.classList?t.classList.add(e):r(t,e)},n.remove=function(t,e){t.classList?t.classList.remove(e):o(t,e)},n.list=function(t){return t.classList?Array.prototype.slice.apply(t.classList):t.className.split(" ")}},{}],3:[function(t,e,n){"use strict";function r(t,e){return window.getComputedStyle(t)[e]}function o(t,e,n){return"number"==typeof n&&(n=n.toString()+"px"),t.style[e]=n,t}function l(t,e){for(var n in e){var r=e[n];"number"==typeof r&&(r=r.toString()+"px"),t.style[n]=r}return t}var i={};i.e=function(t,e){var n=document.createElement(t);return n.className=e,n},i.appendTo=function(t,e){return e.appendChild(t),t},i.css=function(t,e,n){return"object"==typeof e?l(t,e):"undefined"==typeof n?r(t,e):o(t,e,n)},i.matches=function(t,e){return"undefined"!=typeof t.matches?t.matches(e):"undefined"!=typeof t.matchesSelector?t.matchesSelector(e):"undefined"!=typeof t.webkitMatchesSelector?t.webkitMatchesSelector(e):"undefined"!=typeof t.mozMatchesSelector?t.mozMatchesSelector(e):"undefined"!=typeof t.msMatchesSelector?t.msMatchesSelector(e):void 0},i.remove=function(t){"undefined"!=typeof t.remove?t.remove():t.parentNode&&t.parentNode.removeChild(t)},i.queryChildren=function(t,e){return Array.prototype.filter.call(t.childNodes,function(t){return i.matches(t,e)})},e.exports=i},{}],4:[function(t,e,n){"use strict";var r=function(t){this.element=t,this.events={}};r.prototype.bind=function(t,e){"undefined"==typeof this.events[t]&&(this.events[t]=[]),this.events[t].push(e),this.element.addEventListener(t,e,!1)},r.prototype.unbind=function(t,e){var n="undefined"!=typeof e;this.events[t]=this.events[t].filter(function(r){return!(!n||r===e)||(this.element.removeEventListener(t,r,!1),!1)},this)},r.prototype.unbindAll=function(){for(var t in this.events)this.unbind(t)};var o=function(){this.eventElements=[]};o.prototype.eventElement=function(t){var e=this.eventElements.filter(function(e){return e.element===t})[0];return"undefined"==typeof e&&(e=new r(t),this.eventElements.push(e)),e},o.prototype.bind=function(t,e,n){this.eventElement(t).bind(e,n)},o.prototype.unbind=function(t,e,n){this.eventElement(t).unbind(e,n)},o.prototype.unbindAll=function(){for(var t=0;t<this.eventElements.length;t++)this.eventElements[t].unbindAll()},o.prototype.once=function(t,e,n){var r=this.eventElement(t),o=function(t){r.unbind(e,o),n(t)};r.bind(e,o)},e.exports=o},{}],5:[function(t,e,n){"use strict";e.exports=function(){function t(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return function(){return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}}()},{}],6:[function(t,e,n){"use strict";var r=t("./class"),o=t("./dom"),l=n.toInt=function(t){return parseInt(t,10)||0},i=n.clone=function(t){if(t){if(t.constructor===Array)return t.map(i);if("object"==typeof t){var e={};for(var n in t)e[n]=i(t[n]);return e}return t}return null};n.extend=function(t,e){var n=i(t);for(var r in e)n[r]=i(e[r]);return n},n.isEditable=function(t){return o.matches(t,"input,[contenteditable]")||o.matches(t,"select,[contenteditable]")||o.matches(t,"textarea,[contenteditable]")||o.matches(t,"button,[contenteditable]")},n.removePsClasses=function(t){for(var e=r.list(t),n=0;n<e.length;n++){var o=e[n];0===o.indexOf("ps-")&&r.remove(t,o)}},n.outerWidth=function(t){return l(o.css(t,"width"))+l(o.css(t,"paddingLeft"))+l(o.css(t,"paddingRight"))+l(o.css(t,"borderLeftWidth"))+l(o.css(t,"borderRightWidth"))},n.startScrolling=function(t,e){r.add(t,"ps-in-scrolling"),"undefined"!=typeof e?r.add(t,"ps-"+e):(r.add(t,"ps-x"),r.add(t,"ps-y"))},n.stopScrolling=function(t,e){r.remove(t,"ps-in-scrolling"),"undefined"!=typeof e?r.remove(t,"ps-"+e):(r.remove(t,"ps-x"),r.remove(t,"ps-y"))},n.env={isWebKit:"WebkitAppearance"in document.documentElement.style,supportsTouch:"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch,supportsIePointer:null!==window.navigator.msMaxTouchPoints}},{"./class":2,"./dom":3}],7:[function(t,e,n){"use strict";var r=t("./plugin/destroy"),o=t("./plugin/initialize"),l=t("./plugin/update");e.exports={initialize:o,update:l,destroy:r}},{"./plugin/destroy":9,"./plugin/initialize":17,"./plugin/update":21}],8:[function(t,e,n){"use strict";e.exports={handlers:["click-rail","drag-scrollbar","keyboard","wheel","touch"],maxScrollbarLength:null,minScrollbarLength:null,scrollXMarginOffset:0,scrollYMarginOffset:0,suppressScrollX:!1,suppressScrollY:!1,swipePropagation:!0,useBothWheelAxes:!1,wheelPropagation:!1,wheelSpeed:1,theme:"default"}},{}],9:[function(t,e,n){"use strict";var r=t("../lib/helper"),o=t("../lib/dom"),l=t("./instances");e.exports=function(t){var e=l.get(t);e&&(e.event.unbindAll(),o.remove(e.scrollbarX),o.remove(e.scrollbarY),o.remove(e.scrollbarXRail),o.remove(e.scrollbarYRail),r.removePsClasses(t),l.remove(t))}},{"../lib/dom":3,"../lib/helper":6,"./instances":18}],10:[function(t,e,n){"use strict";function r(t,e){function n(t){return t.getBoundingClientRect()}var r=function(t){t.stopPropagation()};e.event.bind(e.scrollbarY,"click",r),e.event.bind(e.scrollbarYRail,"click",function(r){var o=r.pageY-window.pageYOffset-n(e.scrollbarYRail).top,s=o>e.scrollbarYTop?1:-1;i(t,"top",t.scrollTop+s*e.containerHeight),l(t),r.stopPropagation()}),e.event.bind(e.scrollbarX,"click",r),e.event.bind(e.scrollbarXRail,"click",function(r){var o=r.pageX-window.pageXOffset-n(e.scrollbarXRail).left,s=o>e.scrollbarXLeft?1:-1;i(t,"left",t.scrollLeft+s*e.containerWidth),l(t),r.stopPropagation()})}var o=t("../instances"),l=t("../update-geometry"),i=t("../update-scroll");e.exports=function(t){var e=o.get(t);r(t,e)}},{"../instances":18,"../update-geometry":19,"../update-scroll":20}],11:[function(t,e,n){"use strict";function r(t,e){function n(n){var o=r+n*e.railXRatio,i=Math.max(0,e.scrollbarXRail.getBoundingClientRect().left)+e.railXRatio*(e.railXWidth-e.scrollbarXWidth);o<0?e.scrollbarXLeft=0:o>i?e.scrollbarXLeft=i:e.scrollbarXLeft=o;var s=l.toInt(e.scrollbarXLeft*(e.contentWidth-e.containerWidth)/(e.containerWidth-e.railXRatio*e.scrollbarXWidth))-e.negativeScrollAdjustment;c(t,"left",s)}var r=null,o=null,s=function(e){n(e.pageX-o),a(t),e.stopPropagation(),e.preventDefault()},u=function(){l.stopScrolling(t,"x"),e.event.unbind(e.ownerDocument,"mousemove",s)};e.event.bind(e.scrollbarX,"mousedown",function(n){o=n.pageX,r=l.toInt(i.css(e.scrollbarX,"left"))*e.railXRatio,l.startScrolling(t,"x"),e.event.bind(e.ownerDocument,"mousemove",s),e.event.once(e.ownerDocument,"mouseup",u),n.stopPropagation(),n.preventDefault()})}function o(t,e){function n(n){var o=r+n*e.railYRatio,i=Math.max(0,e.scrollbarYRail.getBoundingClientRect().top)+e.railYRatio*(e.railYHeight-e.scrollbarYHeight);o<0?e.scrollbarYTop=0:o>i?e.scrollbarYTop=i:e.scrollbarYTop=o;var s=l.toInt(e.scrollbarYTop*(e.contentHeight-e.containerHeight)/(e.containerHeight-e.railYRatio*e.scrollbarYHeight));c(t,"top",s)}var r=null,o=null,s=function(e){n(e.pageY-o),a(t),e.stopPropagation(),e.preventDefault()},u=function(){l.stopScrolling(t,"y"),e.event.unbind(e.ownerDocument,"mousemove",s)};e.event.bind(e.scrollbarY,"mousedown",function(n){o=n.pageY,r=l.toInt(i.css(e.scrollbarY,"top"))*e.railYRatio,l.startScrolling(t,"y"),e.event.bind(e.ownerDocument,"mousemove",s),e.event.once(e.ownerDocument,"mouseup",u),n.stopPropagation(),n.preventDefault()})}var l=t("../../lib/helper"),i=t("../../lib/dom"),s=t("../instances"),a=t("../update-geometry"),c=t("../update-scroll");e.exports=function(t){var e=s.get(t);r(t,e),o(t,e)}},{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],12:[function(t,e,n){"use strict";function r(t,e){function n(n,r){var o=t.scrollTop;if(0===n){if(!e.scrollbarYActive)return!1;if(0===o&&r>0||o>=e.contentHeight-e.containerHeight&&r<0)return!e.settings.wheelPropagation}var l=t.scrollLeft;if(0===r){if(!e.scrollbarXActive)return!1;if(0===l&&n<0||l>=e.contentWidth-e.containerWidth&&n>0)return!e.settings.wheelPropagation}return!0}var r=!1;e.event.bind(t,"mouseenter",function(){r=!0}),e.event.bind(t,"mouseleave",function(){r=!1});var i=!1;e.event.bind(e.ownerDocument,"keydown",function(c){if(!(c.isDefaultPrevented&&c.isDefaultPrevented()||c.defaultPrevented)){var u=l.matches(e.scrollbarX,":focus")||l.matches(e.scrollbarY,":focus");if(r||u){var d=document.activeElement?document.activeElement:e.ownerDocument.activeElement;if(d){if("IFRAME"===d.tagName)d=d.contentDocument.activeElement;else for(;d.shadowRoot;)d=d.shadowRoot.activeElement;if(o.isEditable(d))return}var p=0,f=0;switch(c.which){case 37:p=c.metaKey?-e.contentWidth:c.altKey?-e.containerWidth:-30;break;case 38:f=c.metaKey?e.contentHeight:c.altKey?e.containerHeight:30;break;case 39:p=c.metaKey?e.contentWidth:c.altKey?e.containerWidth:30;break;case 40:f=c.metaKey?-e.contentHeight:c.altKey?-e.containerHeight:-30;break;case 33:f=90;break;case 32:f=c.shiftKey?90:-90;break;case 34:f=-90;break;case 35:f=c.ctrlKey?-e.contentHeight:-e.containerHeight;break;case 36:f=c.ctrlKey?t.scrollTop:e.containerHeight;break;default:return}a(t,"top",t.scrollTop-f),a(t,"left",t.scrollLeft+p),s(t),i=n(p,f),i&&c.preventDefault()}}})}var o=t("../../lib/helper"),l=t("../../lib/dom"),i=t("../instances"),s=t("../update-geometry"),a=t("../update-scroll");e.exports=function(t){var e=i.get(t);r(t,e)}},{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],13:[function(t,e,n){"use strict";function r(t,e){function n(n,r){var o=t.scrollTop;if(0===n){if(!e.scrollbarYActive)return!1;if(0===o&&r>0||o>=e.contentHeight-e.containerHeight&&r<0)return!e.settings.wheelPropagation}var l=t.scrollLeft;if(0===r){if(!e.scrollbarXActive)return!1;if(0===l&&n<0||l>=e.contentWidth-e.containerWidth&&n>0)return!e.settings.wheelPropagation}return!0}function r(t){var e=t.deltaX,n=-1*t.deltaY;return"undefined"!=typeof e&&"undefined"!=typeof n||(e=-1*t.wheelDeltaX/6,n=t.wheelDeltaY/6),t.deltaMode&&1===t.deltaMode&&(e*=10,n*=10),e!==e&&n!==n&&(e=0,n=t.wheelDelta),t.shiftKey?[-n,-e]:[e,n]}function o(e,n){var r=t.querySelector("textarea:hover, select[multiple]:hover, .ps-child:hover");if(r){if(!window.getComputedStyle(r).overflow.match(/(scroll|auto)/))return!1;var o=r.scrollHeight-r.clientHeight;if(o>0&&!(0===r.scrollTop&&n>0||r.scrollTop===o&&n<0))return!0;var l=r.scrollLeft-r.clientWidth;if(l>0&&!(0===r.scrollLeft&&e<0||r.scrollLeft===l&&e>0))return!0}return!1}function s(s){var c=r(s),u=c[0],d=c[1];o(u,d)||(a=!1,e.settings.useBothWheelAxes?e.scrollbarYActive&&!e.scrollbarXActive?(d?i(t,"top",t.scrollTop-d*e.settings.wheelSpeed):i(t,"top",t.scrollTop+u*e.settings.wheelSpeed),a=!0):e.scrollbarXActive&&!e.scrollbarYActive&&(u?i(t,"left",t.scrollLeft+u*e.settings.wheelSpeed):i(t,"left",t.scrollLeft-d*e.settings.wheelSpeed),a=!0):(i(t,"top",t.scrollTop-d*e.settings.wheelSpeed),i(t,"left",t.scrollLeft+u*e.settings.wheelSpeed)),l(t),a=a||n(u,d),a&&(s.stopPropagation(),s.preventDefault()))}var a=!1;"undefined"!=typeof window.onwheel?e.event.bind(t,"wheel",s):"undefined"!=typeof window.onmousewheel&&e.event.bind(t,"mousewheel",s)}var o=t("../instances"),l=t("../update-geometry"),i=t("../update-scroll");e.exports=function(t){var e=o.get(t);r(t,e)}},{"../instances":18,"../update-geometry":19,"../update-scroll":20}],14:[function(t,e,n){"use strict";function r(t,e){e.event.bind(t,"scroll",function(){l(t)})}var o=t("../instances"),l=t("../update-geometry");e.exports=function(t){var e=o.get(t);r(t,e)}},{"../instances":18,"../update-geometry":19}],15:[function(t,e,n){"use strict";function r(t,e){function n(){var t=window.getSelection?window.getSelection():document.getSelection?document.getSelection():"";return 0===t.toString().length?null:t.getRangeAt(0).commonAncestorContainer}function r(){c||(c=setInterval(function(){return l.get(t)?(s(t,"top",t.scrollTop+u.top),s(t,"left",t.scrollLeft+u.left),void i(t)):void clearInterval(c)},50))}function a(){c&&(clearInterval(c),c=null),o.stopScrolling(t)}var c=null,u={top:0,left:0},d=!1;e.event.bind(e.ownerDocument,"selectionchange",function(){t.contains(n())?d=!0:(d=!1,a())}),e.event.bind(window,"mouseup",function(){d&&(d=!1,a())}),e.event.bind(window,"keyup",function(){d&&(d=!1,a())}),e.event.bind(window,"mousemove",function(e){if(d){var n={x:e.pageX,y:e.pageY},l={left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,top:t.offsetTop,bottom:t.offsetTop+t.offsetHeight};n.x<l.left+3?(u.left=-5,o.startScrolling(t,"x")):n.x>l.right-3?(u.left=5,o.startScrolling(t,"x")):u.left=0,n.y<l.top+3?(l.top+3-n.y<5?u.top=-5:u.top=-20,o.startScrolling(t,"y")):n.y>l.bottom-3?(n.y-l.bottom+3<5?u.top=5:u.top=20,o.startScrolling(t,"y")):u.top=0,0===u.top&&0===u.left?a():r()}})}var o=t("../../lib/helper"),l=t("../instances"),i=t("../update-geometry"),s=t("../update-scroll");e.exports=function(t){var e=l.get(t);r(t,e)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],16:[function(t,e,n){"use strict";function r(t,e,n,r){function o(n,r){var o=t.scrollTop,l=t.scrollLeft,i=Math.abs(n),s=Math.abs(r);if(s>i){if(r<0&&o===e.contentHeight-e.containerHeight||r>0&&0===o)return!e.settings.swipePropagation}else if(i>s&&(n<0&&l===e.contentWidth-e.containerWidth||n>0&&0===l))return!e.settings.swipePropagation;return!0}function a(e,n){s(t,"top",t.scrollTop-n),s(t,"left",t.scrollLeft-e),i(t)}function c(){w=!0}function u(){w=!1}function d(t){return t.targetTouches?t.targetTouches[0]:t}function p(t){return!(!t.targetTouches||1!==t.targetTouches.length)||!(!t.pointerType||"mouse"===t.pointerType||t.pointerType===t.MSPOINTER_TYPE_MOUSE)}function f(t){if(p(t)){Y=!0;var e=d(t);g.pageX=e.pageX,g.pageY=e.pageY,v=(new Date).getTime(),null!==y&&clearInterval(y),t.stopPropagation()}}function h(t){if(!Y&&e.settings.swipePropagation&&f(t),!w&&Y&&p(t)){var n=d(t),r={pageX:n.pageX,pageY:n.pageY},l=r.pageX-g.pageX,i=r.pageY-g.pageY;a(l,i),g=r;var s=(new Date).getTime(),c=s-v;c>0&&(m.x=l/c,m.y=i/c,v=s),o(l,i)&&(t.stopPropagation(),t.preventDefault())}}function b(){!w&&Y&&(Y=!1,clearInterval(y),y=setInterval(function(){return l.get(t)&&(m.x||m.y)?Math.abs(m.x)<.01&&Math.abs(m.y)<.01?void clearInterval(y):(a(30*m.x,30*m.y),m.x*=.8,void(m.y*=.8)):void clearInterval(y)},10))}var g={},v=0,m={},y=null,w=!1,Y=!1;n&&(e.event.bind(window,"touchstart",c),e.event.bind(window,"touchend",u),e.event.bind(t,"touchstart",f),e.event.bind(t,"touchmove",h),e.event.bind(t,"touchend",b)),r&&(window.PointerEvent?(e.event.bind(window,"pointerdown",c),e.event.bind(window,"pointerup",u),e.event.bind(t,"pointerdown",f),e.event.bind(t,"pointermove",h),e.event.bind(t,"pointerup",b)):window.MSPointerEvent&&(e.event.bind(window,"MSPointerDown",c),e.event.bind(window,"MSPointerUp",u),e.event.bind(t,"MSPointerDown",f),e.event.bind(t,"MSPointerMove",h),e.event.bind(t,"MSPointerUp",b)))}var o=t("../../lib/helper"),l=t("../instances"),i=t("../update-geometry"),s=t("../update-scroll");e.exports=function(t){if(o.env.supportsTouch||o.env.supportsIePointer){var e=l.get(t);r(t,e,o.env.supportsTouch,o.env.supportsIePointer)}}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],17:[function(t,e,n){"use strict";var r=t("../lib/helper"),o=t("../lib/class"),l=t("./instances"),i=t("./update-geometry"),s={"click-rail":t("./handler/click-rail"),"drag-scrollbar":t("./handler/drag-scrollbar"),keyboard:t("./handler/keyboard"),wheel:t("./handler/mouse-wheel"),touch:t("./handler/touch"),selection:t("./handler/selection")},a=t("./handler/native-scroll");e.exports=function(t,e){e="object"==typeof e?e:{},o.add(t,"ps-container");var n=l.add(t);n.settings=r.extend(n.settings,e),o.add(t,"ps-theme-"+n.settings.theme),n.settings.handlers.forEach(function(e){s[e](t)}),a(t),i(t)}},{"../lib/class":2,"../lib/helper":6,"./handler/click-rail":10,"./handler/drag-scrollbar":11,"./handler/keyboard":12,"./handler/mouse-wheel":13,"./handler/native-scroll":14,"./handler/selection":15,"./handler/touch":16,"./instances":18,"./update-geometry":19}],18:[function(t,e,n){"use strict";function r(t){function e(){a.add(t,"ps-focus")}function n(){a.remove(t,"ps-focus")}var r=this;r.settings=s.clone(c),r.containerWidth=null,r.containerHeight=null,r.contentWidth=null,r.contentHeight=null,r.isRtl="rtl"===u.css(t,"direction"),r.isNegativeScroll=function(){var e=t.scrollLeft,n=null;return t.scrollLeft=-1,n=t.scrollLeft<0,t.scrollLeft=e,n}(),r.negativeScrollAdjustment=r.isNegativeScroll?t.scrollWidth-t.clientWidth:0,r.event=new d,r.ownerDocument=t.ownerDocument||document,r.scrollbarXRail=u.appendTo(u.e("div","ps-scrollbar-x-rail"),t),r.scrollbarX=u.appendTo(u.e("div","ps-scrollbar-x"),r.scrollbarXRail),r.scrollbarX.setAttribute("tabindex",0),r.event.bind(r.scrollbarX,"focus",e),r.event.bind(r.scrollbarX,"blur",n),r.scrollbarXActive=null,r.scrollbarXWidth=null,r.scrollbarXLeft=null,r.scrollbarXBottom=s.toInt(u.css(r.scrollbarXRail,"bottom")),r.isScrollbarXUsingBottom=r.scrollbarXBottom===r.scrollbarXBottom,r.scrollbarXTop=r.isScrollbarXUsingBottom?null:s.toInt(u.css(r.scrollbarXRail,"top")),r.railBorderXWidth=s.toInt(u.css(r.scrollbarXRail,"borderLeftWidth"))+s.toInt(u.css(r.scrollbarXRail,"borderRightWidth")),u.css(r.scrollbarXRail,"display","block"),r.railXMarginWidth=s.toInt(u.css(r.scrollbarXRail,"marginLeft"))+s.toInt(u.css(r.scrollbarXRail,"marginRight")),u.css(r.scrollbarXRail,"display",""),r.railXWidth=null,r.railXRatio=null,r.scrollbarYRail=u.appendTo(u.e("div","ps-scrollbar-y-rail"),t),r.scrollbarY=u.appendTo(u.e("div","ps-scrollbar-y"),r.scrollbarYRail),r.scrollbarY.setAttribute("tabindex",0),r.event.bind(r.scrollbarY,"focus",e),r.event.bind(r.scrollbarY,"blur",n),r.scrollbarYActive=null,r.scrollbarYHeight=null,r.scrollbarYTop=null,r.scrollbarYRight=s.toInt(u.css(r.scrollbarYRail,"right")),r.isScrollbarYUsingRight=r.scrollbarYRight===r.scrollbarYRight,r.scrollbarYLeft=r.isScrollbarYUsingRight?null:s.toInt(u.css(r.scrollbarYRail,"left")),r.scrollbarYOuterWidth=r.isRtl?s.outerWidth(r.scrollbarY):null,r.railBorderYWidth=s.toInt(u.css(r.scrollbarYRail,"borderTopWidth"))+s.toInt(u.css(r.scrollbarYRail,"borderBottomWidth")),u.css(r.scrollbarYRail,"display","block"),r.railYMarginHeight=s.toInt(u.css(r.scrollbarYRail,"marginTop"))+s.toInt(u.css(r.scrollbarYRail,"marginBottom")),u.css(r.scrollbarYRail,"display",""),r.railYHeight=null,r.railYRatio=null}function o(t){return t.getAttribute("data-ps-id")}function l(t,e){t.setAttribute("data-ps-id",e)}function i(t){t.removeAttribute("data-ps-id")}var s=t("../lib/helper"),a=t("../lib/class"),c=t("./default-setting"),u=t("../lib/dom"),d=t("../lib/event-manager"),p=t("../lib/guid"),f={};n.add=function(t){var e=p();return l(t,e),f[e]=new r(t),f[e]},n.remove=function(t){delete f[o(t)],i(t)},n.get=function(t){return f[o(t)]}},{"../lib/class":2,"../lib/dom":3,"../lib/event-manager":4,"../lib/guid":5,"../lib/helper":6,"./default-setting":8}],19:[function(t,e,n){"use strict";function r(t,e){return t.settings.minScrollbarLength&&(e=Math.max(e,t.settings.minScrollbarLength)),t.settings.maxScrollbarLength&&(e=Math.min(e,t.settings.maxScrollbarLength)),e}function o(t,e){var n={width:e.railXWidth};e.isRtl?n.left=e.negativeScrollAdjustment+t.scrollLeft+e.containerWidth-e.contentWidth:n.left=t.scrollLeft,e.isScrollbarXUsingBottom?n.bottom=e.scrollbarXBottom-t.scrollTop:n.top=e.scrollbarXTop+t.scrollTop,s.css(e.scrollbarXRail,n);var r={top:t.scrollTop,height:e.railYHeight};e.isScrollbarYUsingRight?e.isRtl?r.right=e.contentWidth-(e.negativeScrollAdjustment+t.scrollLeft)-e.scrollbarYRight-e.scrollbarYOuterWidth:r.right=e.scrollbarYRight-t.scrollLeft:e.isRtl?r.left=e.negativeScrollAdjustment+t.scrollLeft+2*e.containerWidth-e.contentWidth-e.scrollbarYLeft-e.scrollbarYOuterWidth:r.left=e.scrollbarYLeft+t.scrollLeft,s.css(e.scrollbarYRail,r),s.css(e.scrollbarX,{left:e.scrollbarXLeft,width:e.scrollbarXWidth-e.railBorderXWidth}),s.css(e.scrollbarY,{top:e.scrollbarYTop,height:e.scrollbarYHeight-e.railBorderYWidth})}var l=t("../lib/helper"),i=t("../lib/class"),s=t("../lib/dom"),a=t("./instances"),c=t("./update-scroll");e.exports=function(t){var e=a.get(t);e.containerWidth=t.clientWidth,e.containerHeight=t.clientHeight,e.contentWidth=t.scrollWidth,e.contentHeight=t.scrollHeight;var n;t.contains(e.scrollbarXRail)||(n=s.queryChildren(t,".ps-scrollbar-x-rail"),n.length>0&&n.forEach(function(t){s.remove(t)}),s.appendTo(e.scrollbarXRail,t)),t.contains(e.scrollbarYRail)||(n=s.queryChildren(t,".ps-scrollbar-y-rail"),n.length>0&&n.forEach(function(t){s.remove(t)}),s.appendTo(e.scrollbarYRail,t)),!e.settings.suppressScrollX&&e.containerWidth+e.settings.scrollXMarginOffset<e.contentWidth?(e.scrollbarXActive=!0,e.railXWidth=e.containerWidth-e.railXMarginWidth,e.railXRatio=e.containerWidth/e.railXWidth,e.scrollbarXWidth=r(e,l.toInt(e.railXWidth*e.containerWidth/e.contentWidth)),e.scrollbarXLeft=l.toInt((e.negativeScrollAdjustment+t.scrollLeft)*(e.railXWidth-e.scrollbarXWidth)/(e.contentWidth-e.containerWidth))):e.scrollbarXActive=!1,!e.settings.suppressScrollY&&e.containerHeight+e.settings.scrollYMarginOffset<e.contentHeight?(e.scrollbarYActive=!0,e.railYHeight=e.containerHeight-e.railYMarginHeight,e.railYRatio=e.containerHeight/e.railYHeight,e.scrollbarYHeight=r(e,l.toInt(e.railYHeight*e.containerHeight/e.contentHeight)),e.scrollbarYTop=l.toInt(t.scrollTop*(e.railYHeight-e.scrollbarYHeight)/(e.contentHeight-e.containerHeight))):e.scrollbarYActive=!1,e.scrollbarXLeft>=e.railXWidth-e.scrollbarXWidth&&(e.scrollbarXLeft=e.railXWidth-e.scrollbarXWidth),e.scrollbarYTop>=e.railYHeight-e.scrollbarYHeight&&(e.scrollbarYTop=e.railYHeight-e.scrollbarYHeight),o(t,e),e.scrollbarXActive?i.add(t,"ps-active-x"):(i.remove(t,"ps-active-x"),e.scrollbarXWidth=0,e.scrollbarXLeft=0,c(t,"left",0)),e.scrollbarYActive?i.add(t,"ps-active-y"):(i.remove(t,"ps-active-y"),e.scrollbarYHeight=0,e.scrollbarYTop=0,c(t,"top",0))}},{"../lib/class":2,"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-scroll":20}],20:[function(t,e,n){"use strict";var r,o,l=t("./instances"),i=function(t){var e=document.createEvent("Event");return e.initEvent(t,!0,!0),e};e.exports=function(t,e,n){if("undefined"==typeof t)throw"You must provide an element to the update-scroll function";if("undefined"==typeof e)throw"You must provide an axis to the update-scroll function";if("undefined"==typeof n)throw"You must provide a value to the update-scroll function";"top"===e&&n<=0&&(t.scrollTop=n=0,t.dispatchEvent(i("ps-y-reach-start"))),"left"===e&&n<=0&&(t.scrollLeft=n=0,t.dispatchEvent(i("ps-x-reach-start")));var s=l.get(t);"top"===e&&n>=s.contentHeight-s.containerHeight&&(n=s.contentHeight-s.containerHeight,n-t.scrollTop<=1?n=t.scrollTop:t.scrollTop=n,t.dispatchEvent(i("ps-y-reach-end"))),"left"===e&&n>=s.contentWidth-s.containerWidth&&(n=s.contentWidth-s.containerWidth,n-t.scrollLeft<=1?n=t.scrollLeft:t.scrollLeft=n,t.dispatchEvent(i("ps-x-reach-end"))),r||(r=t.scrollTop),o||(o=t.scrollLeft),"top"===e&&n<r&&t.dispatchEvent(i("ps-scroll-up")),"top"===e&&n>r&&t.dispatchEvent(i("ps-scroll-down")),"left"===e&&n<o&&t.dispatchEvent(i("ps-scroll-left")),"left"===e&&n>o&&t.dispatchEvent(i("ps-scroll-right")),"top"===e&&(t.scrollTop=r=n,t.dispatchEvent(i("ps-scroll-y"))),"left"===e&&(t.scrollLeft=o=n,t.dispatchEvent(i("ps-scroll-x")))}},{"./instances":18}],21:[function(t,e,n){"use strict";var r=t("../lib/helper"),o=t("../lib/dom"),l=t("./instances"),i=t("./update-geometry"),s=t("./update-scroll");e.exports=function(t){var e=l.get(t);e&&(e.negativeScrollAdjustment=e.isNegativeScroll?t.scrollWidth-t.clientWidth:0,o.css(e.scrollbarXRail,"display","block"),o.css(e.scrollbarYRail,"display","block"),e.railXMarginWidth=r.toInt(o.css(e.scrollbarXRail,"marginLeft"))+r.toInt(o.css(e.scrollbarXRail,"marginRight")),e.railYMarginHeight=r.toInt(o.css(e.scrollbarYRail,"marginTop"))+r.toInt(o.css(e.scrollbarYRail,"marginBottom")),o.css(e.scrollbarXRail,"display","none"),o.css(e.scrollbarYRail,"display","none"),i(t),s(t,"top",t.scrollTop),s(t,"left",t.scrollLeft),o.css(e.scrollbarXRail,"display",""),o.css(e.scrollbarYRail,"display",""))}},{"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-geometry":19,"./update-scroll":20}]},{},[1]);
includes/wpc-dashboard.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ defined( 'ABSPATH' ) || exit;
3
+
4
+ if ( ! class_exists( 'WPCleverDashboard' ) ) {
5
+ class WPCleverDashboard {
6
+ function __construct() {
7
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
8
+ }
9
+
10
+ function enqueue_scripts() {
11
+ wp_enqueue_style( 'wpc-dashboard', WPC_URI . 'assets/css/dashboard.css' );
12
+ }
13
+ }
14
+
15
+ new WPCleverDashboard();
16
+ }
includes/wpc-kit.php ADDED
@@ -0,0 +1,367 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ defined( 'ABSPATH' ) || exit;
3
+
4
+ if ( ! class_exists( 'WPCleverKit' ) ) {
5
+ class WPCleverKit {
6
+ protected static $_plugins = array(
7
+ 'woo-product-bundle' => array(
8
+ 'name' => 'WPC Product Bundles for WooCommerce',
9
+ 'slug' => 'woo-product-bundle',
10
+ 'file' => 'wpc-product-bundles.php'
11
+ ),
12
+ 'wpc-composite-products' => array(
13
+ 'name' => 'WPC Composite Products for WooCommerce',
14
+ 'slug' => 'wpc-composite-products',
15
+ 'file' => 'wpc-composite-products.php'
16
+ ),
17
+ 'wpc-grouped-product' => array(
18
+ 'name' => 'WPC Grouped Product for WooCommerce',
19
+ 'slug' => 'wpc-grouped-product',
20
+ 'file' => 'wpc-grouped-product.php'
21
+ ),
22
+ 'woo-bought-together' => array(
23
+ 'name' => 'WPC Frequently Bought Together for WooCommerce',
24
+ 'slug' => 'woo-bought-together',
25
+ 'file' => 'wpc-frequently-bought-together.php'
26
+ ),
27
+ 'woo-smart-compare' => array(
28
+ 'name' => 'WPC Smart Compare for WooCommerce',
29
+ 'slug' => 'woo-smart-compare',
30
+ 'file' => 'wpc-smart-compare.php'
31
+ ),
32
+ 'woo-smart-quick-view' => array(
33
+ 'name' => 'WPC Smart Quick View for WooCommerce',
34
+ 'slug' => 'woo-smart-quick-view',
35
+ 'file' => 'wpc-smart-quick-view.php'
36
+ ),
37
+ 'woo-smart-wishlist' => array(
38
+ 'name' => 'WPC Smart Wishlist for WooCommerce',
39
+ 'slug' => 'woo-smart-wishlist',
40
+ 'file' => 'wpc-smart-wishlist.php'
41
+ ),
42
+ 'woo-fly-cart' => array(
43
+ 'name' => 'WPC Fly Cart for WooCommerce',
44
+ 'slug' => 'woo-fly-cart',
45
+ 'file' => 'wpc-fly-cart.php'
46
+ ),
47
+ 'wpc-force-sells' => array(
48
+ 'name' => 'WPC Force Sells for WooCommerce',
49
+ 'slug' => 'wpc-force-sells',
50
+ 'file' => 'wpc-force-sells.php'
51
+ ),
52
+ 'woo-added-to-cart-notification' => array(
53
+ 'name' => 'WPC Added To Cart Notification for WooCommerce',
54
+ 'slug' => 'woo-added-to-cart-notification',
55
+ 'file' => 'wpc-added-to-cart-notification.php'
56
+ ),
57
+ 'wpc-ajax-add-to-cart' => array(
58
+ 'name' => 'WPC AJAX Add to Cart for WooCommerce',
59
+ 'slug' => 'wpc-ajax-add-to-cart',
60
+ 'file' => 'wpc-ajax-add-to-cart.php'
61
+ ),
62
+ 'wpc-product-quantity' => array(
63
+ 'name' => 'WPC Product Quantity for WooCommerce',
64
+ 'slug' => 'wpc-product-quantity',
65
+ 'file' => 'wpc-product-quantity.php'
66
+ ),
67
+ 'wpc-variations-radio-buttons' => array(
68
+ 'name' => 'WPC Variations Radio Buttons for WooCommerce',
69
+ 'slug' => 'wpc-variations-radio-buttons',
70
+ 'file' => 'wpc-variations-radio-buttons.php'
71
+ ),
72
+ 'wpc-product-tabs' => array(
73
+ 'name' => 'WPC Product Tabs for WooCommerce',
74
+ 'slug' => 'wpc-product-tabs',
75
+ 'file' => 'wpc-product-tabs.php'
76
+ ),
77
+ 'woo-product-timer' => array(
78
+ 'name' => 'WPC Product Timer for WooCommerce',
79
+ 'slug' => 'woo-product-timer',
80
+ 'file' => 'wpc-product-timer.php'
81
+ ),
82
+ 'wpc-countdown-timer' => array(
83
+ 'name' => 'WPC Countdown Timer for WooCommerce',
84
+ 'slug' => 'wpc-countdown-timer',
85
+ 'file' => 'wpc-countdown-timer.php'
86
+ ),
87
+ 'wpc-product-table' => array(
88
+ 'name' => 'WPC Product Table for WooCommerce',
89
+ 'slug' => 'wpc-product-table',
90
+ 'file' => 'wpc-product-table.php'
91
+ ),
92
+ 'wpc-name-your-price' => array(
93
+ 'name' => 'WPC Name Your Price for WooCommerce',
94
+ 'slug' => 'wpc-name-your-price',
95
+ 'file' => 'wpc-name-your-price.php'
96
+ )
97
+ );
98
+
99
+ function __construct() {
100
+ // admin scripts
101
+ add_action( 'admin_enqueue_scripts', array( $this, 'admin_scripts' ) );
102
+
103
+ // settings page
104
+ add_action( 'admin_menu', array( $this, 'admin_menu' ) );
105
+ }
106
+
107
+ function admin_scripts() {
108
+ wp_enqueue_style( 'wpckit-backend', WPC_URI . 'assets/kit/css/backend.css' );
109
+ wp_enqueue_script( 'wpckit-backend', WPC_URI . 'assets/kit/js/backend.js', array(
110
+ 'jquery'
111
+ ) );
112
+ }
113
+
114
+ function admin_menu() {
115
+ add_submenu_page( 'wpclever', esc_html__( 'WPC Essential Kit', 'wpckit' ), esc_html__( 'Essential Kit', 'wpckit' ), 'manage_options', 'wpclever-kit', array(
116
+ $this,
117
+ 'settings_page'
118
+ ) );
119
+ }
120
+
121
+ function settings_page() {
122
+ add_thickbox();
123
+ ?>
124
+ <div class="wpclever_settings_page wrap">
125
+ <h1>WPClever | Essential Kit</h1>
126
+ <div class="wp-list-table widefat plugin-install-network">
127
+ <?php
128
+ if ( ! function_exists( 'plugins_api' ) ) {
129
+ include_once ABSPATH . 'wp-admin/includes/plugin-install.php';
130
+ }
131
+
132
+ if ( isset( $_GET['action'], $_GET['plugin'] ) && ( $_GET['action'] === 'activate' ) && wp_verify_nonce( $_GET['_wpnonce'], 'activate-plugin_' . $_GET['plugin'] ) ) {
133
+ activate_plugin( $_GET['plugin'], '', false, true );
134
+ }
135
+
136
+ if ( isset( $_GET['action'], $_GET['plugin'] ) && ( $_GET['action'] === 'deactivate' ) && wp_verify_nonce( $_GET['_wpnonce'], 'deactivate-plugin_' . $_GET['plugin'] ) ) {
137
+ deactivate_plugins( $_GET['plugin'], '', false, true );
138
+ }
139
+
140
+ $updated = false;
141
+ $plugins_info = get_site_transient( 'wpclever_plugins_info' );
142
+
143
+ foreach ( self::$_plugins as $_plugin ) {
144
+ if ( ! isset( $plugins_info[ $_plugin['slug'] ] ) ) {
145
+ $_plugin_info = plugins_api(
146
+ 'plugin_information',
147
+ array(
148
+ 'slug' => $_plugin['slug'],
149
+ 'fields' => array(
150
+ 'short_description',
151
+ 'version',
152
+ 'active_installs',
153
+ 'downloaded',
154
+ ),
155
+ )
156
+ );
157
+
158
+ if ( ! is_wp_error( $_plugin_info ) ) {
159
+ $plugin_info = array(
160
+ 'name' => $_plugin_info->name,
161
+ 'slug' => $_plugin_info->slug,
162
+ 'version' => $_plugin_info->version,
163
+ 'rating' => $_plugin_info->rating,
164
+ 'num_ratings' => $_plugin_info->num_ratings,
165
+ 'downloads' => $_plugin_info->downloaded,
166
+ 'last_updated' => $_plugin_info->last_updated,
167
+ 'homepage' => $_plugin_info->homepage,
168
+ 'short_description' => $_plugin_info->short_description,
169
+ 'active_installs' => $_plugin_info->active_installs,
170
+ );
171
+ $plugins_info[ $_plugin['slug'] ] = $plugin_info;
172
+ $updated = true;
173
+ } else {
174
+ $plugin_info = array(
175
+ 'name' => $_plugin['name'],
176
+ 'slug' => $_plugin['slug']
177
+ );
178
+ }
179
+ } else {
180
+ $plugin_info = $plugins_info[ $_plugin['slug'] ];
181
+ }
182
+
183
+ $details_link = network_admin_url(
184
+ 'plugin-install.php?tab=plugin-information&amp;plugin=' . $plugin_info['slug'] . '&amp;TB_iframe=true&amp;width=600&amp;height=550'
185
+ );
186
+ ?>
187
+ <div class="plugin-card <?php echo esc_attr( $_plugin['slug'] ); ?>"
188
+ id="<?php echo esc_attr( $_plugin['slug'] ); ?>">
189
+ <div class="plugin-card-top">
190
+ <a href="<?php echo esc_url( $details_link ); ?>" class="thickbox">
191
+ <img src="<?php echo esc_url( WPC_URI . 'assets/kit/images/' . $_plugin['slug'] . '.png' ); ?>"
192
+ class="plugin-icon" alt=""/>
193
+ </a>
194
+ <div class="name column-name">
195
+ <h3>
196
+ <a class="thickbox" href="<?php echo esc_url( $details_link ); ?>">
197
+ <?php echo $plugin_info['name']; ?>
198
+ </a>
199
+ </h3>
200
+ </div>
201
+ <div class="action-links">
202
+ <ul class="plugin-action-buttons">
203
+ <li>
204
+ <?php if ( $this->is_plugin_installed( $_plugin ) ) {
205
+ if ( $this->is_plugin_active( $_plugin ) ) {
206
+ ?>
207
+ <a href="<?php echo esc_url( $this->deactivate_plugin_link( $_plugin ) ); ?>"
208
+ class="button deactivate-now">
209
+ <?php esc_html_e( 'Deactivate', 'wpckit' ); ?>
210
+ </a>
211
+ <?php
212
+ } else {
213
+ ?>
214
+ <a href="<?php echo esc_url( $this->activate_plugin_link( $_plugin ) ); ?>"
215
+ class="button activate-now">
216
+ <?php esc_html_e( 'Activate', 'wpckit' ); ?>
217
+ </a>
218
+ <?php
219
+ }
220
+ } else { ?>
221
+ <a href="<?php echo esc_url( $this->install_plugin_link( $_plugin ) ); ?>"
222
+ class="install-now button wpckit-install-now">
223
+ <?php esc_html_e( 'Install Now', 'wpckit' ); ?>
224
+ </a>
225
+ <?php } ?>
226
+ </li>
227
+ <li>
228
+ <a href="<?php echo esc_url( $details_link ); ?>"
229
+ class="thickbox open-plugin-details-modal"
230
+ aria-label="<?php echo esc_attr( sprintf( esc_html__( 'More information about %s', 'wpckit' ), $plugin_info['name'] ) ); ?>"
231
+ data-title="<?php echo esc_attr( $plugin_info['name'] ); ?>">
232
+ <?php esc_html_e( 'More Details', 'wpckit' ); ?>
233
+ </a>
234
+ </li>
235
+ </ul>
236
+ </div>
237
+ <div class="desc column-description">
238
+ <p><?php echo esc_html( $plugin_info['short_description'] ); ?></p>
239
+ <!--
240
+ <p class="authors">
241
+ <cite>
242
+ By <a href="https://wpclever.net" target="_blank"
243
+ title="plugin author WPClever.net">WPClever.net</a>
244
+ </cite>
245
+ </p>
246
+ -->
247
+ </div>
248
+ </div>
249
+ <?php if ( $this->is_plugin_installed( $_plugin, true ) ) {
250
+ ?>
251
+ <div class="plugin-card-bottom premium">
252
+ <div class="text">
253
+ <strong>✓ Premium version was installed.</strong><br/>
254
+ Please deactivate the free version when using the premium version.
255
+ </div>
256
+ <div class="btn">
257
+ <?php
258
+ if ( $this->is_plugin_active( $_plugin, true ) ) {
259
+ ?>
260
+ <a href="<?php echo esc_url( $this->deactivate_plugin_link( $_plugin, true ) ); ?>"
261
+ class="button deactivate-now">
262
+ <?php esc_html_e( 'Deactivate', 'wpckit' ); ?>
263
+ </a>
264
+ <?php
265
+ } else {
266
+ ?>
267
+ <a href="<?php echo esc_url( $this->activate_plugin_link( $_plugin, true ) ); ?>"
268
+ class="button activate-now">
269
+ <?php esc_html_e( 'Activate', 'wpckit' ); ?>
270
+ </a>
271
+ <?php
272
+ }
273
+ ?>
274
+ </div>
275
+ </div>
276
+ <?php
277
+ } else {
278
+ echo '<div class="plugin-card-bottom">';
279
+
280
+ if ( isset( $plugin_info['rating'], $plugin_info['num_ratings'] ) ) { ?>
281
+ <div class="vers column-rating">
282
+ <?php
283
+ wp_star_rating(
284
+ array(
285
+ 'rating' => $plugin_info['rating'],
286
+ 'type' => 'percent',
287
+ 'number' => $plugin_info['num_ratings'],
288
+ )
289
+ );
290
+ ?>
291
+ <span class="num-ratings">(<?php echo esc_html( number_format_i18n( $plugin_info['num_ratings'] ) ); ?>)</span>
292
+ </div>
293
+ <?php }
294
+
295
+ if ( isset( $plugin_info['version'] ) ) { ?>
296
+ <div class="column-updated">
297
+ <?php echo esc_html__( 'Version', 'wpckit' ) . ' ' . $plugin_info['version']; ?>
298
+ </div>
299
+ <?php }
300
+
301
+ if ( isset( $plugin_info['active_installs'] ) ) { ?>
302
+ <div class="column-downloaded">
303
+ <?php echo number_format_i18n( $plugin_info['active_installs'] ) . esc_html__( '+ Active Installations', 'wpckit' ); ?>
304
+ </div>
305
+ <?php }
306
+
307
+ if ( isset( $plugin_info['last_updated'] ) ) { ?>
308
+ <div class="column-compatibility">
309
+ <strong><?php esc_html_e( 'Last Updated:', 'wpckit' ); ?></strong>
310
+ <span><?php printf( esc_html__( '%s ago', 'wpckit' ), esc_html( human_time_diff( strtotime( $plugin_info['last_updated'] ) ) ) ); ?></span>
311
+ </div>
312
+ <?php }
313
+
314
+ echo '</div>';
315
+ } ?>
316
+ </div>
317
+ <?php
318
+ }
319
+
320
+ if ( $updated ) {
321
+ set_site_transient( 'wpclever_plugins_info', $plugins_info, 24 * HOUR_IN_SECONDS );
322
+ }
323
+ ?>
324
+ </div>
325
+ </div>
326
+ <?php
327
+ }
328
+
329
+ public function is_plugin_installed( $plugin, $premium = false ) {
330
+ if ( $premium ) {
331
+ return file_exists( WP_PLUGIN_DIR . '/' . $plugin['slug'] . '-premium/' . $plugin['file'] );
332
+ } else {
333
+ return file_exists( WP_PLUGIN_DIR . '/' . $plugin['slug'] . '/' . $plugin['file'] );
334
+ }
335
+ }
336
+
337
+ public function is_plugin_active( $plugin, $premium = false ) {
338
+ if ( $premium ) {
339
+ return is_plugin_active( $plugin['slug'] . '-premium/' . $plugin['file'] );
340
+ } else {
341
+ return is_plugin_active( $plugin['slug'] . '/' . $plugin['file'] );
342
+ }
343
+ }
344
+
345
+ public function install_plugin_link( $plugin ) {
346
+ return wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=' . $plugin['slug'] ), 'install-plugin_' . $plugin['slug'] );
347
+ }
348
+
349
+ public function activate_plugin_link( $plugin, $premium = false ) {
350
+ if ( $premium ) {
351
+ return wp_nonce_url( admin_url( 'admin.php?page=wpclever-kit&action=activate&plugin=' . $plugin['slug'] . '-premium/' . $plugin['file'] . '#' . $plugin['slug'] ), 'activate-plugin_' . $plugin['slug'] . '-premium/' . $plugin['file'] );
352
+ } else {
353
+ return wp_nonce_url( admin_url( 'admin.php?page=wpclever-kit&action=activate&plugin=' . $plugin['slug'] . '/' . $plugin['file'] . '#' . $plugin['slug'] ), 'activate-plugin_' . $plugin['slug'] . '/' . $plugin['file'] );
354
+ }
355
+ }
356
+
357
+ public function deactivate_plugin_link( $plugin, $premium = false ) {
358
+ if ( $premium ) {
359
+ return wp_nonce_url( admin_url( 'admin.php?page=wpclever-kit&action=deactivate&plugin=' . $plugin['slug'] . '-premium/' . $plugin['file'] . '#' . $plugin['slug'] ), 'deactivate-plugin_' . $plugin['slug'] . '-premium/' . $plugin['file'] );
360
+ } else {
361
+ return wp_nonce_url( admin_url( 'admin.php?page=wpclever-kit&action=deactivate&plugin=' . $plugin['slug'] . '/' . $plugin['file'] . '#' . $plugin['slug'] ), 'deactivate-plugin_' . $plugin['slug'] . '/' . $plugin['file'] );
362
+ }
363
+ }
364
+ }
365
+
366
+ new WPCleverKit();
367
+ }
includes/wpc-menu.php ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ defined( 'ABSPATH' ) || exit;
3
+
4
+ if ( ! class_exists( 'WPCleverMenu' ) ) {
5
+ class WPCleverMenu {
6
+ function __construct() {
7
+ add_action( 'admin_menu', array( $this, 'admin_menu' ) );
8
+ }
9
+
10
+ function admin_menu() {
11
+ add_menu_page(
12
+ 'WPClever',
13
+ 'WPClever⚡',
14
+ 'manage_options',
15
+ 'wpclever',
16
+ array( &$this, 'welcome_content' ),
17
+ WPC_URI . 'assets/images/wpc-icon.svg',
18
+ 26
19
+ );
20
+ add_submenu_page( 'wpclever', 'About', 'About', 'manage_options', 'wpclever' );
21
+ }
22
+
23
+ function welcome_content() {
24
+ ?>
25
+ <div class="wpclever_welcome_page wrap">
26
+ <h1>WPClever | Make clever moves</h1>
27
+ <div class="card">
28
+ <h2 class="title">About</h2>
29
+ <p>
30
+ We are a team of passionate developers of plugins for WordPress, whose aspiration is to bring
31
+ smart utilities and functionalities to life for WordPress users, especially for those on
32
+ WooCommerce platform.
33
+ </p>
34
+ <p>Website: <a href="https://wpclever.net?utm_source=visit&utm_medium=menu&utm_campaign=wporg"
35
+ target="_blank">https://wpclever.net</a></p>
36
+ </div>
37
+ <div class="card wpclever_plugins">
38
+ <h2 class="title">Plugins</h2>
39
+ <?php
40
+ if ( false === ( $plugins_arr = get_transient( 'wpclever_plugins' ) ) ) {
41
+ $args = (object) array(
42
+ 'author' => 'wpclever',
43
+ 'per_page' => '120',
44
+ 'page' => '1',
45
+ 'fields' => array( 'slug', 'name', 'version', 'downloaded', 'active_installs' )
46
+ );
47
+ $request = array(
48
+ 'action' => 'query_plugins',
49
+ 'timeout' => 15,
50
+ 'request' => serialize( $args )
51
+ );
52
+ //https://codex.wordpress.org/WordPress.org_API
53
+ $url = 'http://api.wordpress.org/plugins/info/1.0/';
54
+ $response = wp_remote_post( $url, array( 'body' => $request ) );
55
+
56
+ if ( ! is_wp_error( $response ) ) {
57
+ $plugins_arr = array();
58
+ $plugins = unserialize( $response['body'] );
59
+
60
+ if ( isset( $plugins->plugins ) && ( count( $plugins->plugins ) > 0 ) ) {
61
+ foreach ( $plugins->plugins as $pl ) {
62
+ $plugins_arr[] = array(
63
+ 'slug' => $pl->slug,
64
+ 'name' => $pl->name,
65
+ 'version' => $pl->version,
66
+ 'downloaded' => $pl->downloaded,
67
+ 'active_installs' => $pl->active_installs
68
+ );
69
+ }
70
+ }
71
+
72
+ set_transient( 'wpclever_plugins', $plugins_arr, 24 * HOUR_IN_SECONDS );
73
+ }
74
+ }
75
+
76
+ if ( is_array( $plugins_arr ) && ( count( $plugins_arr ) > 0 ) ) {
77
+ array_multisort( array_column( $plugins_arr, 'active_installs' ), SORT_DESC, $plugins_arr );
78
+ $i = 1;
79
+
80
+ foreach ( $plugins_arr as $pl ) {
81
+ if ( strpos( $pl['name'], 'WPC' ) === false ) {
82
+ continue;
83
+ }
84
+
85
+ echo '<div class="item"><a href="https://wordpress.org/plugins/' . $pl['slug'] . '/"><span class="num">' . $i . '</span><span class="title">' . $pl['name'] . '</span><br/><span class="info">Version ' . $pl['version'] . '</span></a></div>';
86
+ $i ++;
87
+ }
88
+ } else {
89
+ echo 'https://wpclever.net';
90
+ }
91
+ ?>
92
+ </div>
93
+ </div>
94
+ <?php
95
+ }
96
+ }
97
+
98
+ new WPCleverMenu();
99
+ }
includes/wpc-notice.php ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ defined( 'ABSPATH' ) || exit;
3
+
4
+ $theme = wp_get_theme();
5
+
6
+ if ( ! empty( $theme['Name'] ) && ( strpos( $theme['Name'], 'WPC' ) !== false ) ) {
7
+ return;
8
+ }
9
+
10
+ if ( ! class_exists( 'WPCleverNotice' ) ) {
11
+ class WPCleverNotice {
12
+ function __construct() {
13
+ add_action( 'admin_notices', array( $this, 'admin_notice' ) );
14
+ add_action( 'admin_init', array( $this, 'notice_ignore' ) );
15
+ add_action( 'admin_enqueue_scripts', array( $this, 'notice_scripts' ) );
16
+ }
17
+
18
+ function notice_scripts() {
19
+ wp_enqueue_style( 'wpclever-notice', WOOSW_URI . 'assets/css/notice.css' );
20
+ }
21
+
22
+ function admin_notice() {
23
+ global $current_user, $current_screen;
24
+ $user_id = $current_user->ID;
25
+
26
+ if ( ! $current_screen || ! isset( $current_screen->base ) || ( strpos( $current_screen->base, 'wpclever' ) === false ) ) {
27
+ return;
28
+ }
29
+
30
+ if ( ! get_user_meta( $user_id, 'wpclever_wpcstore_ignore', true ) ) {
31
+ ?>
32
+ <div class="wpclever-notice notice">
33
+ <div class="wpclever-notice-thumbnail">
34
+ <a href="https://wordpress.org/themes/wpcstore/" target="_blank">
35
+ <img src="<?php echo WOOSW_URI . 'assets/images/wpc-store.png'; ?>" alt="WPCstore"/>
36
+ </a>
37
+ </div>
38
+ <div class="wpclever-notice-text">
39
+ <h3>WPCstore - Powerful WooCommerce Theme</h3>
40
+ <p>
41
+ Integrated with a great deal of awesome features from WPC plugins trusted by 250,000+ users
42
+ on WordPress, WPCstore brings about an easier way of running your store, enhancing the
43
+ experience, and expanding your business. This well-coded, sleek, user-friendly, and
44
+ responsive theme can do wonders for online stores, even exceed your expectations. Get rid of
45
+ your pains concerning incompatibility, bug-fixing, asynchronous performance, etc and enjoy a
46
+ higher stability, security, and harmony with WPCstore.
47
+ </p>
48
+ <ul class="wpclever-notice-ul">
49
+ <li>
50
+ <a href="https://demo.wpclever.net/wpcstore/" target="_blank">
51
+ <span class="dashicons dashicons-desktop"></span> Live Demo
52
+ </a>
53
+ </li>
54
+ <li>
55
+ <a href="https://wordpress.org/themes/wpcstore/" target="_blank">
56
+ <span class="dashicons dashicons-external"></span> Check Detail
57
+ </a>
58
+ </li>
59
+ <li>
60
+ <?php
61
+ if ( function_exists( 'wc_get_current_admin_url' ) ) {
62
+ $ignore_url = add_query_arg( 'wpclever_wpcstore_ignore', '1', wc_get_current_admin_url() );
63
+ } else {
64
+ $ignore_url = admin_url( '?wpclever_wpcstore_ignore=1' );
65
+ }
66
+ ?>
67
+ <a href="<?php echo esc_url( $ignore_url ); ?>"
68
+ class="dashicons-dismiss-icon">
69
+ <span class="dashicons dashicons-welcome-comments"></span> Hide Message
70
+ </a>
71
+ </li>
72
+ </ul>
73
+ </div>
74
+ </div>
75
+ <?php
76
+ }
77
+ }
78
+
79
+ function notice_ignore() {
80
+ global $current_user;
81
+ $user_id = $current_user->ID;
82
+
83
+ if ( isset( $_GET['wpclever_wpcstore_ignore'] ) ) {
84
+ if ( $_GET['wpclever_wpcstore_ignore'] == '1' ) {
85
+ update_user_meta( $user_id, 'wpclever_wpcstore_ignore', 'true' );
86
+ } else {
87
+ delete_user_meta( $user_id, 'wpclever_wpcstore_ignore' );
88
+ }
89
+ }
90
+ }
91
+ }
92
+
93
+ new WPCleverNotice();
94
+ }
index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ // Silence is golden.
languages/woo-smart-wishlist-es_ES.mo ADDED
Binary file
languages/woo-smart-wishlist-es_ES.po ADDED
@@ -0,0 +1,443 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2019 WPC Smart Wishlist
2
+ # This file is distributed under the same license as the WPC Smart Wishlist package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: WPC Smart Wishlist\n"
6
+ "MIME-Version: 1.0\n"
7
+ "Content-Type: text/plain; charset=UTF-8\n"
8
+ "Content-Transfer-Encoding: 8bit\n"
9
+ "X-Poedit-Basepath: ..\n"
10
+ "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:"
11
+ "1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;"
12
+ "esc_html_x:1,2c\n"
13
+ "X-Poedit-SearchPath-0: .\n"
14
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
15
+ "X-Poedit-SourceCharset: UTF-8\n"
16
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
17
+ "Report-Msgid-Bugs-To: \n"
18
+ "POT-Creation-Date: 2019-09-08 11:19+0000\n"
19
+ "PO-Revision-Date: 2019-09-08 11:30+0000\n"
20
+ "Last-Translator: webmaster\n"
21
+ "Language-Team: Español\n"
22
+ "Language: es_ES\n"
23
+ "X-Generator: Loco https://localise.biz/\n"
24
+ "X-Loco-Version: 2.3.0; wp-5.2.3"
25
+
26
+ #: woo-smart-wishlist-premium/index.php:112,
27
+ #: woo-smart-wishlist-premium/index.php:955,
28
+ #: woo-smart-wishlist-premium/index.php:967
29
+ msgid "Wishlist"
30
+ msgstr "Lista de Deseos"
31
+
32
+ #: woo-smart-wishlist-premium/index.php:175,
33
+ #: woo-smart-wishlist-premium/index.php:228
34
+ msgid "Please log in to use the wishlist!"
35
+ msgstr "¡Inicia sesión para usar la lista de deseos!"
36
+
37
+ #: woo-smart-wishlist-premium/index.php:187
38
+ msgid "Added to the wishlist!"
39
+ msgstr "Añadido a la lista de deseos!"
40
+
41
+ #: woo-smart-wishlist-premium/index.php:190
42
+ msgid "Already in the wishlist!"
43
+ msgstr "Ya en la lista de deseos!"
44
+
45
+ #: woo-smart-wishlist-premium/index.php:201,
46
+ #: woo-smart-wishlist-premium/index.php:250
47
+ msgid "Have an error, please try again!"
48
+ msgstr "Tiene un error, por favor intente nuevamente!"
49
+
50
+ #: woo-smart-wishlist-premium/index.php:241
51
+ msgid "Removed from wishlist!"
52
+ msgstr "Eliminado de la lista de deseos!"
53
+
54
+ #: woo-smart-wishlist-premium/index.php:243,
55
+ #: woo-smart-wishlist-premium/index.php:946
56
+ msgid "There are no products on the wishlist!"
57
+ msgstr "¡No hay productos en la lista de deseos!"
58
+
59
+ #: woo-smart-wishlist-premium/index.php:246
60
+ msgid "The product does not exist on the wishlist!"
61
+ msgstr "¡El producto no existe en la lista de deseos!"
62
+
63
+ #: woo-smart-wishlist-premium/index.php:260
64
+ msgid "Please log in to use wishlist!"
65
+ msgstr "¡Inicia sesión para usar la lista de deseos!"
66
+
67
+ #: woo-smart-wishlist-premium/index.php:301,
68
+ #: woo-smart-wishlist-premium/index.php:355,
69
+ #: woo-smart-wishlist-premium/index.php:603,
70
+ #: woo-smart-wishlist-premium/index.php:604,
71
+ #: woo-smart-wishlist-premium/index.php:861
72
+ msgid "Browse wishlist"
73
+ msgstr "Examinar lista de deseos"
74
+
75
+ #: woo-smart-wishlist-premium/index.php:307,
76
+ #: woo-smart-wishlist-premium/index.php:361,
77
+ #: woo-smart-wishlist-premium/index.php:575,
78
+ #: woo-smart-wishlist-premium/index.php:576,
79
+ #: woo-smart-wishlist-premium/index.php:854
80
+ msgid "Add to wishlist"
81
+ msgstr "Añadir a la lista de deseos"
82
+
83
+ #: woo-smart-wishlist-premium/index.php:391
84
+ msgid "Share on:"
85
+ msgstr "Compartir en:"
86
+
87
+ #: woo-smart-wishlist-premium/index.php:392
88
+ msgid "Facebook"
89
+ msgstr "Facebook"
90
+
91
+ #: woo-smart-wishlist-premium/index.php:393
92
+ msgid "Twitter"
93
+ msgstr "Twitter"
94
+
95
+ #: woo-smart-wishlist-premium/index.php:394
96
+ msgid "Pinterest"
97
+ msgstr "Pinterest"
98
+
99
+ #: woo-smart-wishlist-premium/index.php:395
100
+ msgid "Mail"
101
+ msgstr "Correo"
102
+
103
+ #: woo-smart-wishlist-premium/index.php:400,
104
+ #: woo-smart-wishlist-premium/index.php:531
105
+ msgid "Copy link"
106
+ msgstr "Copiar link"
107
+
108
+ #: woo-smart-wishlist-premium/index.php:424
109
+ msgid ""
110
+ "Thank you for using our plugin! If you are satisfied, please reward it a "
111
+ "full five-star %s rating."
112
+ msgstr ""
113
+ "¡Gracias por usar nuestro complemento! Si está satisfecho, recompénselo con "
114
+ "una calificación completa de% s de cinco estrellas."
115
+
116
+ #: woo-smart-wishlist-premium/index.php:427
117
+ msgid "Reviews"
118
+ msgstr "Comentarios"
119
+
120
+ #: woo-smart-wishlist-premium/index.php:429
121
+ msgid "Changelog"
122
+ msgstr "Registro de cambios"
123
+
124
+ #: woo-smart-wishlist-premium/index.php:431
125
+ msgid "Discussion"
126
+ msgstr "Discusión"
127
+
128
+ #: woo-smart-wishlist-premium/index.php:438,
129
+ #: woo-smart-wishlist-premium/index.php:895
130
+ msgid "Settings"
131
+ msgstr "Configuraciones"
132
+
133
+ #: woo-smart-wishlist-premium/index.php:441
134
+ msgid "Premium Support"
135
+ msgstr "Soporte Premium"
136
+
137
+ #: woo-smart-wishlist-premium/index.php:452
138
+ msgid "General"
139
+ msgstr "General"
140
+
141
+ #: woo-smart-wishlist-premium/index.php:456
142
+ msgid "Disable the wishlist for unauthenticated users"
143
+ msgstr "Deshabilitar la lista de deseos para usuarios no autenticados"
144
+
145
+ #: woo-smart-wishlist-premium/index.php:461,
146
+ #: woo-smart-wishlist-premium/index.php:476,
147
+ #: woo-smart-wishlist-premium/index.php:518,
148
+ #: woo-smart-wishlist-premium/index.php:536
149
+ msgid "Yes"
150
+ msgstr "Si"
151
+
152
+ #: woo-smart-wishlist-premium/index.php:465,
153
+ #: woo-smart-wishlist-premium/index.php:480,
154
+ #: woo-smart-wishlist-premium/index.php:522,
155
+ #: woo-smart-wishlist-premium/index.php:540
156
+ msgid "No"
157
+ msgstr "No"
158
+
159
+ #: woo-smart-wishlist-premium/index.php:471
160
+ msgid "Auto remove"
161
+ msgstr "Eliminación automática"
162
+
163
+ #: woo-smart-wishlist-premium/index.php:484
164
+ msgid "Auto remove product from the wishlist after adding to the cart."
165
+ msgstr ""
166
+ "Eliminar automáticamente el producto de la lista de deseos después de "
167
+ "agregarlo al carrito."
168
+
169
+ #: woo-smart-wishlist-premium/index.php:490
170
+ msgid "Page"
171
+ msgstr "Página"
172
+
173
+ #: woo-smart-wishlist-premium/index.php:493
174
+ msgid "Settings for wishlist page."
175
+ msgstr "Configuraciones para la página de la lista de deseos."
176
+
177
+ #: woo-smart-wishlist-premium/index.php:497
178
+ msgid "Wishlist page"
179
+ msgstr "Pagina de Deseos"
180
+
181
+ #: woo-smart-wishlist-premium/index.php:502
182
+ msgid "Choose a page"
183
+ msgstr "Elige una pagina"
184
+
185
+ #: woo-smart-wishlist-premium/index.php:506
186
+ msgid "Add shortcode %s to display the wishlist on a page."
187
+ msgstr "Agregue el shortcode% s para mostrar la lista de deseos en una página."
188
+
189
+ #: woo-smart-wishlist-premium/index.php:508
190
+ msgid ""
191
+ "After choosing a page, please go to Setting >> Permalinks and press Save "
192
+ "Changes."
193
+ msgstr ""
194
+ "Después de elegir una página, vaya a Configuración >> Enlaces permanentes y "
195
+ "presione Guardar cambios."
196
+
197
+ #: woo-smart-wishlist-premium/index.php:513
198
+ msgid "Share buttons"
199
+ msgstr "Botones de compartir"
200
+
201
+ #: woo-smart-wishlist-premium/index.php:526
202
+ msgid "Enable share buttons on the wishlist page?"
203
+ msgstr ""
204
+ "¿Habilitar los botones para compartir en la página de la lista de deseos?"
205
+
206
+ #: woo-smart-wishlist-premium/index.php:544
207
+ msgid "Enable copy wishlist link to share?"
208
+ msgstr "¿Habilitar copiar el enlace de la lista de deseos para compartir?"
209
+
210
+ #: woo-smart-wishlist-premium/index.php:550,
211
+ #: woo-smart-wishlist-premium/index.php:562
212
+ msgid "Button"
213
+ msgstr "Botón"
214
+
215
+ #: woo-smart-wishlist-premium/index.php:553
216
+ msgid "Settings for \"Add to wishlist\" button."
217
+ msgstr "Configuración para el botón \"Agregar a la lista de deseos\"."
218
+
219
+ #: woo-smart-wishlist-premium/index.php:557
220
+ msgid "Type"
221
+ msgstr "Tipo"
222
+
223
+ #: woo-smart-wishlist-premium/index.php:566
224
+ msgid "Link"
225
+ msgstr "Enlazar"
226
+
227
+ #: woo-smart-wishlist-premium/index.php:572
228
+ msgid "Text"
229
+ msgstr "Texto"
230
+
231
+ #: woo-smart-wishlist-premium/index.php:578,
232
+ #: woo-smart-wishlist-premium/index.php:606
233
+ msgid "Leave blank if you want to use the default text and can be translated."
234
+ msgstr ""
235
+ "Déjelo en blanco si desea usar el texto predeterminado y puede traducirse."
236
+
237
+ #: woo-smart-wishlist-premium/index.php:583,
238
+ #: woo-smart-wishlist-premium/index.php:798
239
+ msgid "Action"
240
+ msgstr "Acción"
241
+
242
+ #: woo-smart-wishlist-premium/index.php:588
243
+ msgid "Show message"
244
+ msgstr "Mostrar mensaje"
245
+
246
+ #: woo-smart-wishlist-premium/index.php:592
247
+ msgid "Show product list"
248
+ msgstr "Mostrar lista de productos"
249
+
250
+ #: woo-smart-wishlist-premium/index.php:595
251
+ msgid "The action when clicking on the wishlist button."
252
+ msgstr "La acción al hacer clic en el botón de la lista de deseos."
253
+
254
+ #: woo-smart-wishlist-premium/index.php:600
255
+ msgid "Text (added)"
256
+ msgstr "Texto (agregado)."
257
+
258
+ #: woo-smart-wishlist-premium/index.php:611
259
+ msgid "Action (added)"
260
+ msgstr "Acción (agregada)"
261
+
262
+ #: woo-smart-wishlist-premium/index.php:616
263
+ msgid "Open wishlist popup"
264
+ msgstr "Abrir ventana emergente de la lista de deseos"
265
+
266
+ #: woo-smart-wishlist-premium/index.php:620,
267
+ #: woo-smart-wishlist-premium/index.php:975
268
+ msgid "Open wishlist page"
269
+ msgstr "Abrir página de lista de deseos"
270
+
271
+ #: woo-smart-wishlist-premium/index.php:623
272
+ msgid "The action when clicking on the wishlist button (added)."
273
+ msgstr "La acción al hacer clic en el botón de la lista de deseos (agregado)."
274
+
275
+ #: woo-smart-wishlist-premium/index.php:628
276
+ msgid "Extra class (optional)"
277
+ msgstr "Clase extra (opcional)"
278
+
279
+ #: woo-smart-wishlist-premium/index.php:633
280
+ msgid "Add extra class for action button/link, split by one space."
281
+ msgstr ""
282
+ "Agregue clase adicional para el botón / enlace de acción, dividido por un "
283
+ "espacio."
284
+
285
+ #: woo-smart-wishlist-premium/index.php:638
286
+ msgid "Position on archive page"
287
+ msgstr "Posición en la página de archivo"
288
+
289
+ #: woo-smart-wishlist-premium/index.php:643,
290
+ #: woo-smart-wishlist-premium/index.php:674
291
+ msgid "After title"
292
+ msgstr "Después del título"
293
+
294
+ #: woo-smart-wishlist-premium/index.php:647
295
+ msgid "After rating"
296
+ msgstr "Después de la calificación"
297
+
298
+ #: woo-smart-wishlist-premium/index.php:651
299
+ msgid "After price"
300
+ msgstr "Después de precio"
301
+
302
+ #: woo-smart-wishlist-premium/index.php:655,
303
+ #: woo-smart-wishlist-premium/index.php:686
304
+ msgid "Before add to cart"
305
+ msgstr "Antes de agregar al carrito"
306
+
307
+ #: woo-smart-wishlist-premium/index.php:659,
308
+ #: woo-smart-wishlist-premium/index.php:690
309
+ msgid "After add to cart"
310
+ msgstr "Después de agregar al carrito"
311
+
312
+ #: woo-smart-wishlist-premium/index.php:663,
313
+ #: woo-smart-wishlist-premium/index.php:702
314
+ msgid "None"
315
+ msgstr "Ninguno"
316
+
317
+ #: woo-smart-wishlist-premium/index.php:669
318
+ msgid "Position on single page"
319
+ msgstr "Posición en una sola página"
320
+
321
+ #: woo-smart-wishlist-premium/index.php:678
322
+ msgid "After price & rating"
323
+ msgstr "Después de precio y calificación"
324
+
325
+ #: woo-smart-wishlist-premium/index.php:682
326
+ msgid "After excerpt"
327
+ msgstr "Después del extracto"
328
+
329
+ #: woo-smart-wishlist-premium/index.php:694
330
+ msgid "After meta"
331
+ msgstr "Después de meta"
332
+
333
+ #: woo-smart-wishlist-premium/index.php:698
334
+ msgid "After sharing"
335
+ msgstr "Después de compartir"
336
+
337
+ #: woo-smart-wishlist-premium/index.php:708
338
+ msgid "Shortcode"
339
+ msgstr "Shortcode"
340
+
341
+ #: woo-smart-wishlist-premium/index.php:711
342
+ msgid ""
343
+ "You can add the button by manually, please use the shortcode %s, eg. %s for "
344
+ "the product with ID is 99."
345
+ msgstr ""
346
+ "You can add the button by manually, please use the shortcode% s, eg. % s for "
347
+ "the product with ID is 99."
348
+
349
+ #: woo-smart-wishlist-premium/index.php:716
350
+ msgid "Categories"
351
+ msgstr "Categorias"
352
+
353
+ #: woo-smart-wishlist-premium/index.php:729
354
+ msgid "All categories"
355
+ msgstr "Todas las categorias"
356
+
357
+ #: woo-smart-wishlist-premium/index.php:735
358
+ msgid "Only show the wishlist button for products in selected categories."
359
+ msgstr ""
360
+ "Mostrar solo el botón de la lista de deseos para productos en categorías "
361
+ "seleccionadas."
362
+
363
+ #: woo-smart-wishlist-premium/index.php:741
364
+ msgid "Popup"
365
+ msgstr "Surgir"
366
+
367
+ #: woo-smart-wishlist-premium/index.php:744
368
+ msgid "Settings for the wishlist popup."
369
+ msgstr "Configuración para la ventana emergente de la lista de deseos."
370
+
371
+ #: woo-smart-wishlist-premium/index.php:748
372
+ msgid "Color"
373
+ msgstr "Color"
374
+
375
+ #: woo-smart-wishlist-premium/index.php:755
376
+ msgid "Choose the color, default %s"
377
+ msgstr "Elija el color,% s predeterminado"
378
+
379
+ #: woo-smart-wishlist-premium/index.php:760
380
+ msgid "Continue shopping link"
381
+ msgstr "Continuar comprando enlace"
382
+
383
+ #: woo-smart-wishlist-premium/index.php:766
384
+ msgid ""
385
+ "By default, only hide the popup when clicking on \"Continue shopping\" "
386
+ "button."
387
+ msgstr ""
388
+ "Por defecto, solo oculta la ventana emergente al hacer clic en el botón "
389
+ "\"Continuar comprando\"."
390
+
391
+ #: woo-smart-wishlist-premium/index.php:772
392
+ msgid "Menu"
393
+ msgstr "Menu"
394
+
395
+ #: woo-smart-wishlist-premium/index.php:775
396
+ msgid "Settings for the wishlist menu item."
397
+ msgstr "Configuraciones para el elemento del menú de la lista de deseos."
398
+
399
+ #: woo-smart-wishlist-premium/index.php:779
400
+ msgid "Menu(s)"
401
+ msgstr "Menú (s)"
402
+
403
+ #: woo-smart-wishlist-premium/index.php:793
404
+ msgid "Choose the menu(s) you want to add the \"wishlist menu\" at the end."
405
+ msgstr ""
406
+ "Elija el (los) menú (s) que desea agregar al \"menú de la lista de deseos\" "
407
+ "al final."
408
+
409
+ #: woo-smart-wishlist-premium/index.php:803
410
+ msgid "Open page"
411
+ msgstr "Abrir página"
412
+
413
+ #: woo-smart-wishlist-premium/index.php:807
414
+ msgid "Open popup"
415
+ msgstr "Abrir ventana emergente"
416
+
417
+ #: woo-smart-wishlist-premium/index.php:810
418
+ msgid "Action when clicking on the \"wishlist menu\"."
419
+ msgstr "Acción al hacer clic en el \"menú de la lista de deseos\"."
420
+
421
+ #: woo-smart-wishlist-premium/index.php:817
422
+ msgid "Update Options"
423
+ msgstr "Actualizar opciones"
424
+
425
+ #: woo-smart-wishlist-premium/index.php:869
426
+ msgid "Copied the wishlist link:"
427
+ msgstr "Copié el enlace de la lista de deseos:"
428
+
429
+ #: woo-smart-wishlist-premium/index.php:909
430
+ msgid "Premium support"
431
+ msgstr "Soporte premium"
432
+
433
+ #: woo-smart-wishlist-premium/index.php:939
434
+ msgid "In stock"
435
+ msgstr "En stock"
436
+
437
+ #: woo-smart-wishlist-premium/index.php:939
438
+ msgid "Out of stock"
439
+ msgstr "Agotado"
440
+
441
+ #: woo-smart-wishlist-premium/index.php:979
442
+ msgid "Continue shopping"
443
+ msgstr "Seguir comprando"
languages/woo-smart-wishlist-fa_IR.mo ADDED
Binary file
languages/woo-smart-wishlist-fa_IR.po ADDED
@@ -0,0 +1,509 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2019 WPC Smart Wishlist
2
+ # This file is distributed under the same license as the WPC Smart Wishlist package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: WPC Smart Wishlist\n"
6
+ "Report-Msgid-Bugs-To: \n"
7
+ "POT-Creation-Date: 2020-10-25 19:06+0330\n"
8
+ "PO-Revision-Date: 2020-10-25 19:06+0330\n"
9
+ "Last-Translator: webmaster\n"
10
+ "Language-Team: Persian\n"
11
+ "Language: fa_IR\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Poedit-Basepath: ..\n"
16
+ "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;"
17
+ "_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;"
18
+ "esc_html_e;esc_html_x:1,2c\n"
19
+ "X-Poedit-SourceCharset: UTF-8\n"
20
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
21
+ "X-Generator: Poedit 2.4.1\n"
22
+ "X-Loco-Version: 2.3.0; wp-5.2.3\n"
23
+ "X-Poedit-SearchPath-0: .\n"
24
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
25
+
26
+ #: includes/wpc-kit.php:105
27
+ msgid "WPC Essential Kit"
28
+ msgstr "محصولات حرفه ای"
29
+
30
+ #: includes/wpc-kit.php:105
31
+ msgid "Essential Kit"
32
+ msgstr "محصولات حرفه ای"
33
+
34
+ #: includes/wpc-kit.php:199 includes/wpc-kit.php:252
35
+ msgid "Deactivate"
36
+ msgstr "غیرفعال سازی"
37
+
38
+ #: includes/wpc-kit.php:206 includes/wpc-kit.php:259
39
+ msgid "Activate"
40
+ msgstr "فعال سازی"
41
+
42
+ #: includes/wpc-kit.php:213
43
+ msgid "Install Now"
44
+ msgstr "نصب"
45
+
46
+ #: includes/wpc-kit.php:220
47
+ #, php-format
48
+ msgid "More information about %s"
49
+ msgstr "کسب اطلاعات بیشتر درباره %s"
50
+
51
+ #: includes/wpc-kit.php:222
52
+ msgid "More Details"
53
+ msgstr "اطلاعات بیشتر"
54
+
55
+ #: includes/wpc-kit.php:287
56
+ msgid "Version"
57
+ msgstr "نسخه"
58
+
59
+ #: includes/wpc-kit.php:293
60
+ msgid "+ Active Installations"
61
+ msgstr "+ نصب فعال"
62
+
63
+ #: includes/wpc-kit.php:299
64
+ msgid "Last Updated:"
65
+ msgstr "آخرین آپدیت:"
66
+
67
+ #: includes/wpc-kit.php:300
68
+ #, php-format
69
+ msgid "%s ago"
70
+ msgstr "%s پیش"
71
+
72
+ #: wpc-smart-wishlist.php:119 wpc-smart-wishlist.php:1047
73
+ #: wpc-smart-wishlist.php:1227
74
+ msgid "Wishlist"
75
+ msgstr "لیست علاقه مندی ها"
76
+
77
+ #: wpc-smart-wishlist.php:207 wpc-smart-wishlist.php:260
78
+ msgid "Please log in to use the wishlist!"
79
+ msgstr "لطفاً برای استفاده از لیست علاقه مندی ها وارد شوید!"
80
+
81
+ #: wpc-smart-wishlist.php:226
82
+ msgid "Added to the wishlist!"
83
+ msgstr "به لیست علاقه مندی ها اضافه شد!"
84
+
85
+ #: wpc-smart-wishlist.php:229
86
+ msgid "Already in the wishlist!"
87
+ msgstr "قبلاً در لیست علاقمندی بود!"
88
+
89
+ #: wpc-smart-wishlist.php:243 wpc-smart-wishlist.php:286
90
+ msgid "Have an error, please try again!"
91
+ msgstr "خطایی دارید ، لطفاً دوباره امتحان کنید!"
92
+
93
+ #: wpc-smart-wishlist.php:276
94
+ msgid "Removed from wishlist!"
95
+ msgstr "از لیست علاقه مندی ها حذف شد!"
96
+
97
+ #: wpc-smart-wishlist.php:278 wpc-smart-wishlist.php:1035
98
+ msgid "There are no products on the wishlist!"
99
+ msgstr "هیچ محصولی در لیست علاقه مندی ها وجود ندارد!"
100
+
101
+ #: wpc-smart-wishlist.php:281
102
+ msgid "The product does not exist on the wishlist!"
103
+ msgstr "این محصول در لیست علاقه مندی ها وجود ندارد!"
104
+
105
+ #: wpc-smart-wishlist.php:300
106
+ msgid "Please log in to use wishlist!"
107
+ msgstr "لطفا برای استفاده از لیست علاقه مندی ها وارد شوید!"
108
+
109
+ #: wpc-smart-wishlist.php:362 wpc-smart-wishlist.php:648
110
+ #: wpc-smart-wishlist.php:649 wpc-smart-wishlist.php:929
111
+ msgid "Browse wishlist"
112
+ msgstr "فهرست علاقه مندی را مرور کنید"
113
+
114
+ #: wpc-smart-wishlist.php:370 wpc-smart-wishlist.php:616
115
+ #: wpc-smart-wishlist.php:617 wpc-smart-wishlist.php:920
116
+ msgid "Add to wishlist"
117
+ msgstr "افزودن به لیست علاقه مندی ها"
118
+
119
+ #: wpc-smart-wishlist.php:405
120
+ msgid "Share on:"
121
+ msgstr "اشتراک گذاری در:"
122
+
123
+ #: wpc-smart-wishlist.php:406
124
+ msgid "Facebook"
125
+ msgstr "فیسبوک"
126
+
127
+ #: wpc-smart-wishlist.php:407
128
+ msgid "Twitter"
129
+ msgstr "توییتر"
130
+
131
+ #: wpc-smart-wishlist.php:408
132
+ msgid "Pinterest"
133
+ msgstr "پینترست"
134
+
135
+ #: wpc-smart-wishlist.php:409
136
+ msgid "Mail"
137
+ msgstr "ایمیل"
138
+
139
+ #: wpc-smart-wishlist.php:415
140
+ msgid "Wishlist link:"
141
+ msgstr "لینک علاقه مندی ها:"
142
+
143
+ #: wpc-smart-wishlist.php:417
144
+ msgid "Copy"
145
+ msgstr "کپی"
146
+
147
+ #: wpc-smart-wishlist.php:441
148
+ #, php-format
149
+ msgid ""
150
+ "Thank you for using our plugin! If you are satisfied, please reward it a full "
151
+ "five-star %s rating."
152
+ msgstr ""
153
+ "با تشکر از شما برای استفاده از افزونه ما! اگر راضی هستید ، لطفاً به آن امتیاز "
154
+ "کامل پنج ستاره %s را اهدا کنید."
155
+
156
+ #: wpc-smart-wishlist.php:444
157
+ msgid "Reviews"
158
+ msgstr "نظرات"
159
+
160
+ #: wpc-smart-wishlist.php:446
161
+ msgid "Changelog"
162
+ msgstr "تغییرات"
163
+
164
+ #: wpc-smart-wishlist.php:448
165
+ msgid "Discussion"
166
+ msgstr "بحث"
167
+
168
+ #: wpc-smart-wishlist.php:455 wpc-smart-wishlist.php:966
169
+ msgid "Settings"
170
+ msgstr "تنظیمات"
171
+
172
+ #: wpc-smart-wishlist.php:459 wpc-smart-wishlist.php:967
173
+ msgid "Premium Version"
174
+ msgstr "نسخه حرفه ای"
175
+
176
+ #: wpc-smart-wishlist.php:470
177
+ msgid "General"
178
+ msgstr "کلی"
179
+
180
+ #: wpc-smart-wishlist.php:474
181
+ msgid "Disable the wishlist for unauthenticated users"
182
+ msgstr "لیست علاقه مندی ها را برای کاربران غیرمجاز غیرفعال کنید"
183
+
184
+ #: wpc-smart-wishlist.php:479 wpc-smart-wishlist.php:494
185
+ #: wpc-smart-wishlist.php:512 wpc-smart-wishlist.php:559
186
+ #: wpc-smart-wishlist.php:577
187
+ msgid "Yes"
188
+ msgstr "بله"
189
+
190
+ #: wpc-smart-wishlist.php:483 wpc-smart-wishlist.php:498
191
+ #: wpc-smart-wishlist.php:516 wpc-smart-wishlist.php:563
192
+ #: wpc-smart-wishlist.php:581
193
+ msgid "No"
194
+ msgstr "خیر"
195
+
196
+ #: wpc-smart-wishlist.php:489
197
+ msgid "Auto remove"
198
+ msgstr "حذف خودکار"
199
+
200
+ #: wpc-smart-wishlist.php:502
201
+ msgid "Auto remove product from the wishlist after adding to the cart."
202
+ msgstr "پس از افزودن به سبد خرید ، خودکار محصول را از لیست خواسته ها حذف کنید."
203
+
204
+ #: wpc-smart-wishlist.php:507
205
+ msgid "Show note"
206
+ msgstr "نمایش یادداشت"
207
+
208
+ #: wpc-smart-wishlist.php:520
209
+ msgid ""
210
+ "Show your note on each product for all visitors. Only you can add/edit these "
211
+ "notes."
212
+ msgstr ""
213
+ "یادداشت خود را در مورد هر محصول برای همه بازدیدکنندگان نشان دهید. فقط شما می "
214
+ "توانید این یادداشت ها را اضافه یا ویرایش کنید."
215
+
216
+ #: wpc-smart-wishlist.php:531
217
+ msgid "Page"
218
+ msgstr "برگه"
219
+
220
+ #: wpc-smart-wishlist.php:534
221
+ msgid "Settings for wishlist page."
222
+ msgstr "تنظیمات صفحه لیست علاقه مندی ها."
223
+
224
+ #: wpc-smart-wishlist.php:538
225
+ msgid "Wishlist page"
226
+ msgstr "برگه لیست علاقه مندی ها"
227
+
228
+ #: wpc-smart-wishlist.php:543
229
+ msgid "Choose a page"
230
+ msgstr "یک صفحه را انتخاب کنید"
231
+
232
+ #: wpc-smart-wishlist.php:547
233
+ #, php-format
234
+ msgid "Add shortcode %s to display the wishlist on a page."
235
+ msgstr "برای نمایش لیست خواسته ها در یک صفحه ، کد کوتاه %s را اضافه کنید.."
236
+
237
+ #: wpc-smart-wishlist.php:549
238
+ msgid ""
239
+ "After choosing a page, please go to Setting >> Permalinks and press Save "
240
+ "Changes."
241
+ msgstr ""
242
+ "پس از انتخاب صفحه ، لطفاً به تنظیمات >> پیوندهای یکتا بروید و ذخیره تغییرات را "
243
+ "فشار دهید."
244
+
245
+ #: wpc-smart-wishlist.php:554
246
+ msgid "Share buttons"
247
+ msgstr "دکمه های اشتراک گذاری"
248
+
249
+ #: wpc-smart-wishlist.php:567
250
+ msgid "Enable share buttons on the wishlist page?"
251
+ msgstr "دکمه های اشتراک در صفحه لیست علاقه مندی ها فعال شود؟"
252
+
253
+ #: wpc-smart-wishlist.php:572
254
+ msgid "Copy link"
255
+ msgstr "کپی لینک"
256
+
257
+ #: wpc-smart-wishlist.php:585
258
+ msgid "Enable copy wishlist link to share?"
259
+ msgstr "برای به اشتراک گذاشتن پیوند لیست علاقه مندی ها فعال شود؟"
260
+
261
+ #: wpc-smart-wishlist.php:591 wpc-smart-wishlist.php:603
262
+ msgid "Button"
263
+ msgstr "دکمه"
264
+
265
+ #: wpc-smart-wishlist.php:594
266
+ msgid "Settings for \"Add to wishlist\" button."
267
+ msgstr "تنظیمات دکمه \"افزودن به لیست علاقه مندی ها\"."
268
+
269
+ #: wpc-smart-wishlist.php:598
270
+ msgid "Type"
271
+ msgstr "نوع"
272
+
273
+ #: wpc-smart-wishlist.php:607
274
+ msgid "Link"
275
+ msgstr "لینک"
276
+
277
+ #: wpc-smart-wishlist.php:613
278
+ msgid "Text"
279
+ msgstr "متن"
280
+
281
+ #: wpc-smart-wishlist.php:619
282
+ msgid ""
283
+ "Leave blank to use the default text or its equivalent translation in multiple "
284
+ "languages."
285
+ msgstr ""
286
+ "برای استفاده از متن پیش فرض یا ترجمه معادل آن به چند زبان ، جای خود را خالی "
287
+ "بگذارید."
288
+
289
+ #: wpc-smart-wishlist.php:624 wpc-smart-wishlist.php:850
290
+ msgid "Action"
291
+ msgstr "عملکرد"
292
+
293
+ #: wpc-smart-wishlist.php:629
294
+ msgid "Show message"
295
+ msgstr "نمایش پیام"
296
+
297
+ #: wpc-smart-wishlist.php:633
298
+ msgid "Show product list"
299
+ msgstr "نمایش لیست محصولات"
300
+
301
+ #: wpc-smart-wishlist.php:637
302
+ msgid "Add to wishlist solely"
303
+ msgstr "افزودن به لیست علاقه مندی ها"
304
+
305
+ #: wpc-smart-wishlist.php:640
306
+ msgid "Action triggered by clicking on the wishlist button."
307
+ msgstr "اقدام با کلیک کردن روی دکمه لیست خواسته ها آغاز می شود."
308
+
309
+ #: wpc-smart-wishlist.php:645
310
+ msgid "Text (added)"
311
+ msgstr "متن (اضافه شده)"
312
+
313
+ #: wpc-smart-wishlist.php:651
314
+ msgid ""
315
+ "Text shown after adding an item to the wishlist. Leave blank to use the "
316
+ "default text or its equivalent translation in multiple languages."
317
+ msgstr ""
318
+ "متن پس از افزودن مورد به لیست علاقه مندی ها نشان داده می شود. برای استفاده از "
319
+ "متن پیش فرض یا ترجمه معادل آن به چند زبان ، جای خود را خالی بگذارید."
320
+
321
+ #: wpc-smart-wishlist.php:656
322
+ msgid "Action (added)"
323
+ msgstr "اقدام (اضافه شده)"
324
+
325
+ #: wpc-smart-wishlist.php:661
326
+ msgid "Open wishlist popup"
327
+ msgstr "پنجره پنجره لیست علاقه مندی را باز کنید"
328
+
329
+ #: wpc-smart-wishlist.php:665 wpc-smart-wishlist.php:1055
330
+ msgid "Open wishlist page"
331
+ msgstr "صفحه لیست علاقه مندی را باز کنید"
332
+
333
+ #: wpc-smart-wishlist.php:668
334
+ msgid ""
335
+ "Action triggered by clicking on the wishlist button after adding an item to "
336
+ "the wishlist."
337
+ msgstr "اقدام هنگام کلیک کردن روی دکمه لیست علاقه مندی ها (اضافه شده)."
338
+
339
+ #: wpc-smart-wishlist.php:673
340
+ msgid "Extra class (optional)"
341
+ msgstr "کلاس اضافی (اختیاری)"
342
+
343
+ #: wpc-smart-wishlist.php:678
344
+ msgid "Add extra class for action button/link, split by one space."
345
+ msgstr ""
346
+ "کلاس اضافی را برای دکمه / پیوند اقدام اضافه کنید ، که با یک فاصله تقسیم می "
347
+ "شود."
348
+
349
+ #: wpc-smart-wishlist.php:683
350
+ msgid "Position on archive page"
351
+ msgstr "موقعیت در صفحه بایگانی"
352
+
353
+ #: wpc-smart-wishlist.php:688 wpc-smart-wishlist.php:719
354
+ msgid "Under title"
355
+ msgstr "بعد از عنوان"
356
+
357
+ #: wpc-smart-wishlist.php:692
358
+ msgid "Under rating"
359
+ msgstr "بعد از رتبه بندی"
360
+
361
+ #: wpc-smart-wishlist.php:696
362
+ msgid "Under price"
363
+ msgstr "بعد از قیمت"
364
+
365
+ #: wpc-smart-wishlist.php:700 wpc-smart-wishlist.php:731
366
+ msgid "Above add to cart button"
367
+ msgstr "در بالا دکمه افزودن به سبد خرید"
368
+
369
+ #: wpc-smart-wishlist.php:704 wpc-smart-wishlist.php:735
370
+ msgid "Under add to cart button"
371
+ msgstr "بعد از افزودن به سبد خرید"
372
+
373
+ #: wpc-smart-wishlist.php:708 wpc-smart-wishlist.php:747
374
+ msgid "None (hide it)"
375
+ msgstr "هیچ (پنهان کردنش)"
376
+
377
+ #: wpc-smart-wishlist.php:714
378
+ msgid "Position on single page"
379
+ msgstr "موقعیت در یک صفحه"
380
+
381
+ #: wpc-smart-wishlist.php:723
382
+ msgid "Under price & rating"
383
+ msgstr "تحت قیمت و رتبه بندی"
384
+
385
+ #: wpc-smart-wishlist.php:727
386
+ msgid "Under excerpt"
387
+ msgstr "زیر توضیح کوتاه"
388
+
389
+ #: wpc-smart-wishlist.php:739
390
+ msgid "Under meta"
391
+ msgstr "بعد از متا"
392
+
393
+ #: wpc-smart-wishlist.php:743
394
+ msgid "Under sharing"
395
+ msgstr "بعد از اشتراک گذاری"
396
+
397
+ #: wpc-smart-wishlist.php:753
398
+ msgid "Shortcode"
399
+ msgstr "شوردکد"
400
+
401
+ #: wpc-smart-wishlist.php:756
402
+ #, php-format
403
+ msgid ""
404
+ "You can add a button manually by using the shortcode %s, eg. %s for the "
405
+ "product whose ID is 99."
406
+ msgstr ""
407
+ "می توانید دکمه را به صورت دستی اضافه کنید ، لطفاً از کد کوتاه %s استفاده "
408
+ "کنید ، به عنوان مثال. %s برای محصول دارای شناسه 99 است."
409
+
410
+ #: wpc-smart-wishlist.php:761
411
+ msgid "Categories"
412
+ msgstr "دسته بندی"
413
+
414
+ #: wpc-smart-wishlist.php:776
415
+ msgid "All categories"
416
+ msgstr "همه دسته ها"
417
+
418
+ #: wpc-smart-wishlist.php:782
419
+ msgid "Only show the wishlist button for products in selected categories."
420
+ msgstr ""
421
+ "فقط دکمه لیست علاقه مندی ها را برای محصولات در دسته های انتخاب شده نشان دهید."
422
+
423
+ #: wpc-smart-wishlist.php:788
424
+ msgid "Popup"
425
+ msgstr "باز کردن پاپ آپ"
426
+
427
+ #: wpc-smart-wishlist.php:791
428
+ msgid "Settings for the wishlist popup."
429
+ msgstr "تنظیمات برای پنجره لیست علاقه مندی."
430
+
431
+ #: wpc-smart-wishlist.php:795
432
+ msgid "Color"
433
+ msgstr "رنگ"
434
+
435
+ #: wpc-smart-wishlist.php:802
436
+ #, php-format
437
+ msgid "Choose the color, default %s"
438
+ msgstr "رنگ را انتخاب کنید ، به طور پیش فرض %s"
439
+
440
+ #: wpc-smart-wishlist.php:807
441
+ msgid "Continue shopping link"
442
+ msgstr "ادامه لینک خرید"
443
+
444
+ #: wpc-smart-wishlist.php:813
445
+ msgid ""
446
+ "By default, the wishlist popup will only be closed when customers click on "
447
+ "the \"Continue Shopping\" button."
448
+ msgstr ""
449
+ "به طور پیش فرض ، فقط هنگام کلیک روی دکمه \"ادامه خرید\" پنجره بازشو را پنهان "
450
+ "کنید."
451
+
452
+ #: wpc-smart-wishlist.php:819
453
+ msgid "Menu"
454
+ msgstr "منو"
455
+
456
+ #: wpc-smart-wishlist.php:830
457
+ msgid "Menu(s)"
458
+ msgstr "منو ها"
459
+
460
+ #: wpc-smart-wishlist.php:845
461
+ msgid "Choose the menu(s) you want to add the \"wishlist menu\" at the end."
462
+ msgstr ""
463
+ "منو (های) مورد نظر را برای افزودن \"فهرست لیست علاقه مندی\" در انتها انتخاب "
464
+ "کنید."
465
+
466
+ #: wpc-smart-wishlist.php:855
467
+ msgid "Open page"
468
+ msgstr "باز کردن صفحه"
469
+
470
+ #: wpc-smart-wishlist.php:859
471
+ msgid "Open popup"
472
+ msgstr "باز کردن پاپ آپ"
473
+
474
+ #: wpc-smart-wishlist.php:862
475
+ msgid "Action when clicking on the \"wishlist menu\"."
476
+ msgstr "هنگام کلیک روی \"منوی لیست علاقه مندی ها\" اقدام کنید."
477
+
478
+ #: wpc-smart-wishlist.php:869
479
+ msgid "Update Options"
480
+ msgstr "بروزرسانی تنظیمات"
481
+
482
+ #: wpc-smart-wishlist.php:938
483
+ msgid "Copied the wishlist link:"
484
+ msgstr "پیوند لیست علاقه مندی ها را کپی کنید:"
485
+
486
+ #: wpc-smart-wishlist.php:983
487
+ msgid "Support"
488
+ msgstr "پشتبانی"
489
+
490
+ #: wpc-smart-wishlist.php:1027
491
+ msgid "In stock"
492
+ msgstr "در انبار"
493
+
494
+ #: wpc-smart-wishlist.php:1027
495
+ msgid "Out of stock"
496
+ msgstr "محصولات بدون موجودی"
497
+
498
+ #: wpc-smart-wishlist.php:1059
499
+ msgid "Continue shopping"
500
+ msgstr "به خرید ادامه دهید"
501
+
502
+ #~ msgid "Before add to cart"
503
+ #~ msgstr "قبل از افزودن به سبد خرید"
504
+
505
+ #~ msgid "None"
506
+ #~ msgstr "هیچکدام"
507
+
508
+ #~ msgid "Settings for the wishlist menu item."
509
+ #~ msgstr "تنظیمات مورد منوی لیست علاقه مندی ها."
languages/woo-smart-wishlist-it_IT.mo ADDED
Binary file
languages/woo-smart-wishlist-it_IT.po ADDED
@@ -0,0 +1,492 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2019 WPC Smart Wishlist
2
+ # This file is distributed under the same license as the WPC Smart Wishlist package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: WPC Smart Wishlist\n"
6
+ "MIME-Version: 1.0\n"
7
+ "Content-Type: text/plain; charset=UTF-8\n"
8
+ "Content-Transfer-Encoding: 8bit\n"
9
+ "X-Poedit-Basepath: ..\n"
10
+ "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:"
11
+ "1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;"
12
+ "esc_html_x:1,2c\n"
13
+ "X-Poedit-SearchPath-0: .\n"
14
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
15
+ "X-Poedit-SourceCharset: UTF-8\n"
16
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
17
+ "Report-Msgid-Bugs-To: \n"
18
+ "POT-Creation-Date: 2020-04-08T16:40:19+00:00\n"
19
+ "PO-Revision-Date: 2020-04-22 22:13+0000\n"
20
+ "Last-Translator: Admin\n"
21
+ "Language-Team: Italiano\n"
22
+ "Language: it_IT\n"
23
+ "X-Generator: Loco https://localise.biz/\n"
24
+ "X-Loco-Version: 2.3.3; wp-5.3.2"
25
+
26
+ #. Plugin Name of the plugin
27
+ msgid "WPC Smart Wishlist for WooCommerce (Premium)"
28
+ msgstr "WPC Smart Wishlist for WooCommerce (Premium)"
29
+
30
+ #. Plugin URI of the plugin
31
+ msgid "https://wpclever.net/"
32
+ msgstr "https://wpclever.net/"
33
+
34
+ #. Description of the plugin
35
+ msgid ""
36
+ "WPC Smart Wishlist is a simple but powerful tool that can help your customer "
37
+ "save products for buy later."
38
+ msgstr ""
39
+ "WPC Smart Wishlist is a simple but powerful tool that can help your customer "
40
+ "save products for buy later."
41
+
42
+ #. Author of the plugin
43
+ msgid "WPClever.net"
44
+ msgstr "WPClever.net"
45
+
46
+ #. Author URI of the plugin
47
+ msgid "https://wpclever.net"
48
+ msgstr "https://wpclever.net"
49
+
50
+ #: wpc-smart-wishlist.php:129 wpc-smart-wishlist.php:1092
51
+ #: wpc-smart-wishlist.php:1104 wpc-smart-wishlist.php:1284
52
+ msgid "Wishlist"
53
+ msgstr "Lista desideri"
54
+
55
+ #: wpc-smart-wishlist.php:217 wpc-smart-wishlist.php:270
56
+ msgid "Please log in to use the wishlist!"
57
+ msgstr "Per piacere Accedi per usare la Lista desideri! "
58
+
59
+ #: wpc-smart-wishlist.php:236
60
+ msgid "Added to the wishlist!"
61
+ msgstr "Aggiunto alla Lista desideri!"
62
+
63
+ #: wpc-smart-wishlist.php:239
64
+ msgid "Already in the wishlist!"
65
+ msgstr "Già nella Lista desideri!"
66
+
67
+ #: wpc-smart-wishlist.php:253 wpc-smart-wishlist.php:296
68
+ msgid "Have an error, please try again!"
69
+ msgstr "Errore, per piacere riprova!"
70
+
71
+ #: wpc-smart-wishlist.php:286
72
+ msgid "Removed from wishlist!"
73
+ msgstr "Rimosso dalla Lista desideri!"
74
+
75
+ #: wpc-smart-wishlist.php:288 wpc-smart-wishlist.php:1082
76
+ msgid "There are no products on the wishlist!"
77
+ msgstr "Non ci sono prodotti sulla Lista desideri!"
78
+
79
+ #: wpc-smart-wishlist.php:291
80
+ msgid "The product does not exist on the wishlist!"
81
+ msgstr "Il prodotto non esiste sulla Lista desideri!"
82
+
83
+ #: wpc-smart-wishlist.php:310
84
+ msgid "Please log in to use wishlist!"
85
+ msgstr "Per piacere Accedi per usare la Lista desideri! "
86
+
87
+ #: wpc-smart-wishlist.php:351 wpc-smart-wishlist.php:1065
88
+ msgid "Add note"
89
+ msgstr "Aggiungi nota"
90
+
91
+ #: wpc-smart-wishlist.php:402 wpc-smart-wishlist.php:685
92
+ #: wpc-smart-wishlist.php:686 wpc-smart-wishlist.php:962
93
+ msgid "Browse wishlist"
94
+ msgstr "Vedi la Lista desideri"
95
+
96
+ #: wpc-smart-wishlist.php:410 wpc-smart-wishlist.php:657
97
+ #: wpc-smart-wishlist.php:658 wpc-smart-wishlist.php:953
98
+ msgid "Add to wishlist"
99
+ msgstr "Aggiungi alla Lista desideri"
100
+
101
+ #: wpc-smart-wishlist.php:445
102
+ msgid "Share on:"
103
+ msgstr "Condividi su:"
104
+
105
+ #: wpc-smart-wishlist.php:446
106
+ msgid "Facebook"
107
+ msgstr "Facebook"
108
+
109
+ #: wpc-smart-wishlist.php:447
110
+ msgid "Twitter"
111
+ msgstr "Twitter"
112
+
113
+ #: wpc-smart-wishlist.php:448
114
+ msgid "Pinterest"
115
+ msgstr "Pinterest"
116
+
117
+ #: wpc-smart-wishlist.php:449
118
+ msgid "Mail"
119
+ msgstr "Mail"
120
+
121
+ #: wpc-smart-wishlist.php:455
122
+ msgid "Wishlist link:"
123
+ msgstr "Link lista desideri:"
124
+
125
+ #: wpc-smart-wishlist.php:457
126
+ msgid "Copy"
127
+ msgstr "Copia"
128
+
129
+ #: wpc-smart-wishlist.php:481
130
+ msgid ""
131
+ "Thank you for using our plugin! If you are satisfied, please reward it a "
132
+ "full five-star %s rating."
133
+ msgstr ""
134
+ "Grazie per usare il nostro plugin! Se sei soddisfatto, ti invitiamo a "
135
+ "lasciare una valutazione a 5 stelle %s."
136
+
137
+ #: wpc-smart-wishlist.php:484
138
+ msgid "Reviews"
139
+ msgstr "Recensioni"
140
+
141
+ #: wpc-smart-wishlist.php:486
142
+ msgid "Changelog"
143
+ msgstr "Changelog"
144
+
145
+ #: wpc-smart-wishlist.php:488
146
+ msgid "Discussion"
147
+ msgstr "Discussione"
148
+
149
+ #: wpc-smart-wishlist.php:495 wpc-smart-wishlist.php:999
150
+ msgid "Settings"
151
+ msgstr "Impostazioni"
152
+
153
+ #: wpc-smart-wishlist.php:500
154
+ msgid "Premium Version"
155
+ msgstr "Versione Premium"
156
+
157
+ #: wpc-smart-wishlist.php:505
158
+ msgid "Premium Support"
159
+ msgstr "Supporto Premium"
160
+
161
+ #: wpc-smart-wishlist.php:516
162
+ msgid "General"
163
+ msgstr "Generali"
164
+
165
+ #: wpc-smart-wishlist.php:520
166
+ msgid "Disable the wishlist for unauthenticated users"
167
+ msgstr "Disabilita la Lista desideri per gli utenti non autenticati"
168
+
169
+ #: wpc-smart-wishlist.php:525 wpc-smart-wishlist.php:540
170
+ #: wpc-smart-wishlist.php:558 wpc-smart-wishlist.php:600
171
+ #: wpc-smart-wishlist.php:618
172
+ msgid "Yes"
173
+ msgstr "Si"
174
+
175
+ #: wpc-smart-wishlist.php:529 wpc-smart-wishlist.php:544
176
+ #: wpc-smart-wishlist.php:562 wpc-smart-wishlist.php:604
177
+ #: wpc-smart-wishlist.php:622
178
+ msgid "No"
179
+ msgstr "No"
180
+
181
+ #: wpc-smart-wishlist.php:535
182
+ msgid "Auto remove"
183
+ msgstr "Rimuovi automaticamente"
184
+
185
+ #: wpc-smart-wishlist.php:548
186
+ msgid "Auto remove product from the wishlist after adding to the cart."
187
+ msgstr ""
188
+ "Rimuovi automaticamente il prodotto dalla Lista desideri dopo averlo "
189
+ "aggiunto al carrello."
190
+
191
+ #: wpc-smart-wishlist.php:553
192
+ msgid "Show note"
193
+ msgstr "Mostra nota"
194
+
195
+ #: wpc-smart-wishlist.php:566
196
+ msgid ""
197
+ "Show your note on each product for all visitors. Only you can add/edit these "
198
+ "notes."
199
+ msgstr ""
200
+ "Mostra le tue note su ogni prodotto per tutti i visitatori. Solo tu puoi "
201
+ "aggiungere/modificare queste note."
202
+
203
+ #: wpc-smart-wishlist.php:572
204
+ msgid "Page"
205
+ msgstr "Pagina"
206
+
207
+ #: wpc-smart-wishlist.php:575
208
+ msgid "Settings for wishlist page."
209
+ msgstr "Impostazioni per la pagina della Lista desideri."
210
+
211
+ #: wpc-smart-wishlist.php:579
212
+ msgid "Wishlist page"
213
+ msgstr "Pagina Lista desideri"
214
+
215
+ #: wpc-smart-wishlist.php:584
216
+ msgid "Choose a page"
217
+ msgstr "Scegli una pagina"
218
+
219
+ #: wpc-smart-wishlist.php:588
220
+ msgid "Add shortcode %s to display the wishlist on a page."
221
+ msgstr "Aggiungi lo shortcode %s per mostrare la Lista desideri su una pagina."
222
+
223
+ #: wpc-smart-wishlist.php:590
224
+ msgid ""
225
+ "After choosing a page, please go to Setting >> Permalinks and press Save "
226
+ "Changes."
227
+ msgstr ""
228
+ "Dopo aver scelto una pagina, per piacere vai su Impostazioni >> Permalink e "
229
+ "premi su Salva le modifiche."
230
+
231
+ #: wpc-smart-wishlist.php:595
232
+ msgid "Share buttons"
233
+ msgstr "Pulsanti di condivisione"
234
+
235
+ #: wpc-smart-wishlist.php:608
236
+ msgid "Enable share buttons on the wishlist page?"
237
+ msgstr "Abilitare i pulsanti di condivisione della Lista desideri?"
238
+
239
+ #: wpc-smart-wishlist.php:613
240
+ msgid "Copy link"
241
+ msgstr "Copia link"
242
+
243
+ #: wpc-smart-wishlist.php:626
244
+ msgid "Enable copy wishlist link to share?"
245
+ msgstr "Abilitare la copia del link della Lista desideri?"
246
+
247
+ #: wpc-smart-wishlist.php:632 wpc-smart-wishlist.php:644
248
+ msgid "Button"
249
+ msgstr "Pulsante"
250
+
251
+ #: wpc-smart-wishlist.php:635
252
+ msgid "Settings for \"Add to wishlist\" button."
253
+ msgstr "Impostazioni per il pulsante \"Aggiungi alla Lista desideri\"."
254
+
255
+ #: wpc-smart-wishlist.php:639
256
+ msgid "Type"
257
+ msgstr "Digita"
258
+
259
+ #: wpc-smart-wishlist.php:648
260
+ msgid "Link"
261
+ msgstr "Link"
262
+
263
+ #: wpc-smart-wishlist.php:654
264
+ msgid "Text"
265
+ msgstr "Testo"
266
+
267
+ #: wpc-smart-wishlist.php:660
268
+ msgid ""
269
+ "Leave blank to use the default text or its equivalent translation in "
270
+ "multiple languages."
271
+ msgstr ""
272
+ "Lascia bianco per usare il testo di default o la sua equivalente traduzione "
273
+ "nelle altre lingue."
274
+
275
+ #: wpc-smart-wishlist.php:665 wpc-smart-wishlist.php:883
276
+ msgid "Action"
277
+ msgstr "Azione"
278
+
279
+ #: wpc-smart-wishlist.php:670
280
+ msgid "Show message"
281
+ msgstr "Mostra un messaggio"
282
+
283
+ #: wpc-smart-wishlist.php:674
284
+ msgid "Show product list"
285
+ msgstr "Mostra la lista dei prodotti"
286
+
287
+ #: wpc-smart-wishlist.php:677
288
+ msgid "Action triggered by clicking on the wishlist button."
289
+ msgstr "Azione scatenata cliccando sul bottone lista desideri."
290
+
291
+ #: wpc-smart-wishlist.php:682
292
+ msgid "Text (added)"
293
+ msgstr "Testo (aggiunto)"
294
+
295
+ #: wpc-smart-wishlist.php:688
296
+ msgid ""
297
+ "Text shown after adding an item to the wishlist. Leave blank to use the "
298
+ "default text or its equivalent translation in multiple languages."
299
+ msgstr ""
300
+ "Testo mostrato dopo l'aggiunta di un elemento alla lista desideri. Lascia "
301
+ "bianco per usare il testo di default o la sua equivalente traduzione in "
302
+ "altre lingue."
303
+
304
+ #: wpc-smart-wishlist.php:693
305
+ msgid "Action (added)"
306
+ msgstr "Azione (aggiunto)"
307
+
308
+ #: wpc-smart-wishlist.php:698
309
+ msgid "Open wishlist popup"
310
+ msgstr "Apri la Lista desideri in un popup"
311
+
312
+ #: wpc-smart-wishlist.php:702 wpc-smart-wishlist.php:1112
313
+ msgid "Open wishlist page"
314
+ msgstr "Apri la Lista desideri"
315
+
316
+ #: wpc-smart-wishlist.php:705
317
+ msgid ""
318
+ "Action triggered by clicking on the wishlist button after adding an item to "
319
+ "the wishlist."
320
+ msgstr ""
321
+ "Azione scatenata cliccando sul bottone lista desideri dopo aver aggiunto un "
322
+ "elemento alla lista desideri."
323
+
324
+ #: wpc-smart-wishlist.php:710
325
+ msgid "Extra class (optional)"
326
+ msgstr "Classe extra (opzionale)"
327
+
328
+ #: wpc-smart-wishlist.php:715
329
+ msgid "Add extra class for action button/link, split by one space."
330
+ msgstr ""
331
+ "Aggiungi una classe extra per il pulsante/link, separa le classi con uno "
332
+ "spazio."
333
+
334
+ #: wpc-smart-wishlist.php:720
335
+ msgid "Position on archive page"
336
+ msgstr "Posizione sugli archivi"
337
+
338
+ #: wpc-smart-wishlist.php:725 wpc-smart-wishlist.php:756
339
+ msgid "Under title"
340
+ msgstr "Sotto il titolo"
341
+
342
+ #: wpc-smart-wishlist.php:729
343
+ msgid "Under rating"
344
+ msgstr "Sotto le recensioni"
345
+
346
+ #: wpc-smart-wishlist.php:733
347
+ msgid "Under price"
348
+ msgstr "Sotto il prezzo"
349
+
350
+ #: wpc-smart-wishlist.php:737 wpc-smart-wishlist.php:768
351
+ msgid "Above add to cart button"
352
+ msgstr "Sopra il bottone aggiungi al carrello"
353
+
354
+ #: wpc-smart-wishlist.php:741 wpc-smart-wishlist.php:772
355
+ msgid "Under add to cart button"
356
+ msgstr "Sotto al bottone aggiungi al carrello"
357
+
358
+ #: wpc-smart-wishlist.php:745 wpc-smart-wishlist.php:784
359
+ msgid "None (hide it)"
360
+ msgstr "Nessuno (nascondilo)"
361
+
362
+ #: wpc-smart-wishlist.php:751
363
+ msgid "Position on single page"
364
+ msgstr "Posizione sulla pagina prodotto"
365
+
366
+ #: wpc-smart-wishlist.php:760
367
+ msgid "Under price & rating"
368
+ msgstr "Sotto il prezzo e le recensioni"
369
+
370
+ #: wpc-smart-wishlist.php:764
371
+ msgid "Under excerpt"
372
+ msgstr "Sotto l'estratto"
373
+
374
+ #: wpc-smart-wishlist.php:776
375
+ msgid "Under meta"
376
+ msgstr "Sotto i meta"
377
+
378
+ #: wpc-smart-wishlist.php:780
379
+ msgid "Under sharing"
380
+ msgstr "Sotto la condivisione"
381
+
382
+ #: wpc-smart-wishlist.php:790
383
+ msgid "Shortcode"
384
+ msgstr "Shortcode"
385
+
386
+ #: wpc-smart-wishlist.php:793
387
+ msgid ""
388
+ "You can add a button manually by using the shortcode %s, eg. %s for the "
389
+ "product whose ID is 99."
390
+ msgstr ""
391
+ "Puoi aggiungere un bottone manualmente usando lo shortcode %s, es. %s per il "
392
+ "prodotto il cui ID è 99."
393
+
394
+ #: wpc-smart-wishlist.php:798
395
+ msgid "Categories"
396
+ msgstr "Categorie"
397
+
398
+ #: wpc-smart-wishlist.php:813
399
+ msgid "All categories"
400
+ msgstr "Tutte le categorie"
401
+
402
+ #: wpc-smart-wishlist.php:819
403
+ msgid "Only show the wishlist button for products in selected categories."
404
+ msgstr ""
405
+ "Mostra solo il bottone della Lista desideri per i prodotti delle categorie "
406
+ "selezionate."
407
+
408
+ #: wpc-smart-wishlist.php:825
409
+ msgid "Popup"
410
+ msgstr "Popup"
411
+
412
+ #: wpc-smart-wishlist.php:828
413
+ msgid "Settings for the wishlist popup."
414
+ msgstr "Impostazioni per il popup della Lista desideri."
415
+
416
+ #: wpc-smart-wishlist.php:832
417
+ msgid "Color"
418
+ msgstr "Colore"
419
+
420
+ #: wpc-smart-wishlist.php:839
421
+ msgid "Choose the color, default %s"
422
+ msgstr "Scegli il colore, il default è %s"
423
+
424
+ #: wpc-smart-wishlist.php:844
425
+ msgid "Continue shopping link"
426
+ msgstr "Link continua lo shopping"
427
+
428
+ #: wpc-smart-wishlist.php:850
429
+ msgid ""
430
+ "By default, the wishlist popup will only be closed when customers click on "
431
+ "the \"Continue Shopping\" button."
432
+ msgstr ""
433
+ "Di default, il popup della lista desideri sarà chiuso solamente quando "
434
+ "l'utente clicca sul bottone \"Continua lo shopping\"."
435
+
436
+ #: wpc-smart-wishlist.php:856
437
+ msgid "Menu"
438
+ msgstr "Menu"
439
+
440
+ #: wpc-smart-wishlist.php:859
441
+ msgid "Settings for the wishlist menu item."
442
+ msgstr "Impostazioni per l'elemento di menu della Lista desideri."
443
+
444
+ #: wpc-smart-wishlist.php:863
445
+ msgid "Menu(s)"
446
+ msgstr "Menu"
447
+
448
+ #: wpc-smart-wishlist.php:878
449
+ msgid "Choose the menu(s) you want to add the \"wishlist menu\" at the end."
450
+ msgstr ""
451
+ "Scegli i menu nei quali vuoi aggiungere la \"Lista desideri\" alla fine del "
452
+ "menu."
453
+
454
+ #: wpc-smart-wishlist.php:888
455
+ msgid "Open page"
456
+ msgstr "Apri pagina"
457
+
458
+ #: wpc-smart-wishlist.php:892
459
+ msgid "Open popup"
460
+ msgstr "Apri popup"
461
+
462
+ #: wpc-smart-wishlist.php:895
463
+ msgid "Action when clicking on the \"wishlist menu\"."
464
+ msgstr "Azione quando si clicca sul \"menu Lista desideri\""
465
+
466
+ #: wpc-smart-wishlist.php:902
467
+ msgid "Update Options"
468
+ msgstr "Salva"
469
+
470
+ #: wpc-smart-wishlist.php:971
471
+ msgid "Copied the wishlist link:"
472
+ msgstr "Link Lista desideri copiato:"
473
+
474
+ #: wpc-smart-wishlist.php:1016
475
+ msgid "Premium support"
476
+ msgstr "Supporto Premium"
477
+
478
+ #: wpc-smart-wishlist.php:1069
479
+ msgid "Save"
480
+ msgstr "Salva"
481
+
482
+ #: wpc-smart-wishlist.php:1074
483
+ msgid "In stock"
484
+ msgstr "In magazzino"
485
+
486
+ #: wpc-smart-wishlist.php:1074
487
+ msgid "Out of stock"
488
+ msgstr "Fuori magazzino"
489
+
490
+ #: wpc-smart-wishlist.php:1116
491
+ msgid "Continue shopping"
492
+ msgstr "Continua lo shopping"
languages/woo-smart-wishlist-ru_RU.mo ADDED
Binary file
languages/woo-smart-wishlist-ru_RU.po ADDED
@@ -0,0 +1,389 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2019 WPC Smart Wishlist
2
+ # This file is distributed under the same license as the WPC Smart Wishlist package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: WPC Smart Wishlist\n"
6
+ "MIME-Version: 1.0\n"
7
+ "Content-Type: text/plain; charset=UTF-8\n"
8
+ "Content-Transfer-Encoding: 8bit\n"
9
+ "X-Poedit-Basepath: ..\n"
10
+ "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;"
11
+ "esc_html__;esc_html_e;esc_html_x:1,2c\n"
12
+ "X-Poedit-SourceCharset: UTF-8\n"
13
+ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
14
+ "POT-Creation-Date: \n"
15
+ "PO-Revision-Date: \n"
16
+ "Language-Team: \n"
17
+ "X-Generator: Poedit 2.2.3\n"
18
+ "Last-Translator: \n"
19
+ "Language: ru\n"
20
+ "X-Poedit-SearchPath-0: .\n"
21
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
22
+
23
+ #: woo-smart-wishlist-premium/index.php:112, woo-smart-wishlist-premium/index.php:955, woo-smart-wishlist-premium/index.php:967
24
+ msgid "Wishlist"
25
+ msgstr "Список желаний"
26
+
27
+ #: woo-smart-wishlist-premium/index.php:175, woo-smart-wishlist-premium/index.php:228
28
+ msgid "Please log in to use the wishlist!"
29
+ msgstr "Пожалуйста, войдите, чтобы использовать список желаний!"
30
+
31
+ #: woo-smart-wishlist-premium/index.php:187
32
+ msgid "Added to the wishlist!"
33
+ msgstr "Добавлено в список желаний!"
34
+
35
+ #: woo-smart-wishlist-premium/index.php:190
36
+ msgid "Already in the wishlist!"
37
+ msgstr "Уже в списке желаний!"
38
+
39
+ #: woo-smart-wishlist-premium/index.php:201, woo-smart-wishlist-premium/index.php:250
40
+ msgid "Have an error, please try again!"
41
+ msgstr "Возникла ошибка, пожалуйста, попробуйте еще раз!"
42
+
43
+ #: woo-smart-wishlist-premium/index.php:241
44
+ msgid "Removed from wishlist!"
45
+ msgstr "Удалено из списка желаний!"
46
+
47
+ #: woo-smart-wishlist-premium/index.php:243, woo-smart-wishlist-premium/index.php:946
48
+ msgid "There are no products on the wishlist!"
49
+ msgstr "В списке желаний нет товаров!"
50
+
51
+ #: woo-smart-wishlist-premium/index.php:246
52
+ msgid "The product does not exist on the wishlist!"
53
+ msgstr "Продукт не существует в списке желаний!"
54
+
55
+ #: woo-smart-wishlist-premium/index.php:260
56
+ msgid "Please log in to use wishlist!"
57
+ msgstr "Пожалуйста, войдите, чтобы использовать список желаний!"
58
+
59
+ #: woo-smart-wishlist-premium/index.php:301, woo-smart-wishlist-premium/index.php:355, woo-smart-wishlist-premium/index.php:603,
60
+ #: woo-smart-wishlist-premium/index.php:604, woo-smart-wishlist-premium/index.php:861
61
+ msgid "Browse wishlist"
62
+ msgstr "Просмотреть список желаний"
63
+
64
+ #: woo-smart-wishlist-premium/index.php:307, woo-smart-wishlist-premium/index.php:361, woo-smart-wishlist-premium/index.php:575,
65
+ #: woo-smart-wishlist-premium/index.php:576, woo-smart-wishlist-premium/index.php:854
66
+ msgid "Add to wishlist"
67
+ msgstr "Добавить в список желаний"
68
+
69
+ #: woo-smart-wishlist-premium/index.php:391
70
+ msgid "Share on:"
71
+ msgstr "Поделись:"
72
+
73
+ #: woo-smart-wishlist-premium/index.php:392
74
+ msgid "Facebook"
75
+ msgstr "Facebook"
76
+
77
+ #: woo-smart-wishlist-premium/index.php:393
78
+ msgid "Twitter"
79
+ msgstr "Twitter"
80
+
81
+ #: woo-smart-wishlist-premium/index.php:394
82
+ msgid "Pinterest"
83
+ msgstr "Pinterest"
84
+
85
+ #: woo-smart-wishlist-premium/index.php:395
86
+ msgid "Mail"
87
+ msgstr "На почту"
88
+
89
+ #: woo-smart-wishlist-premium/index.php:400, woo-smart-wishlist-premium/index.php:531
90
+ msgid "Copy link"
91
+ msgstr "Скопировать ссылку"
92
+
93
+ #: woo-smart-wishlist-premium/index.php:424
94
+ msgid "Thank you for using our plugin! If you are satisfied, please reward it a full five-star %s rating."
95
+ msgstr "Спасибо за использование нашего плагина! Если вы удовлетворены, пожалуйста, наградите его полным пятизвездочным рейтингом %s ."
96
+
97
+ #: woo-smart-wishlist-premium/index.php:427
98
+ msgid "Reviews"
99
+ msgstr "Отзывы"
100
+
101
+ #: woo-smart-wishlist-premium/index.php:429
102
+ msgid "Changelog"
103
+ msgstr "Изменения"
104
+
105
+ #: woo-smart-wishlist-premium/index.php:431
106
+ msgid "Discussion"
107
+ msgstr "Обсуждение"
108
+
109
+ #: woo-smart-wishlist-premium/index.php:438, woo-smart-wishlist-premium/index.php:895
110
+ msgid "Settings"
111
+ msgstr "Настройки"
112
+
113
+ #: woo-smart-wishlist-premium/index.php:441
114
+ msgid "Premium Support"
115
+ msgstr "Премиум-поддержка"
116
+
117
+ #: woo-smart-wishlist-premium/index.php:452
118
+ msgid "General"
119
+ msgstr "Общее"
120
+
121
+ #: woo-smart-wishlist-premium/index.php:456
122
+ msgid "Disable the wishlist for unauthenticated users"
123
+ msgstr "Отключить список желаний для неаутентифицированных пользователей"
124
+
125
+ #: woo-smart-wishlist-premium/index.php:461, woo-smart-wishlist-premium/index.php:476, woo-smart-wishlist-premium/index.php:518,
126
+ #: woo-smart-wishlist-premium/index.php:536
127
+ msgid "Yes"
128
+ msgstr "Да"
129
+
130
+ #: woo-smart-wishlist-premium/index.php:465, woo-smart-wishlist-premium/index.php:480, woo-smart-wishlist-premium/index.php:522,
131
+ #: woo-smart-wishlist-premium/index.php:540
132
+ msgid "No"
133
+ msgstr "Нет"
134
+
135
+ #: woo-smart-wishlist-premium/index.php:471
136
+ msgid "Auto remove"
137
+ msgstr "Авто удалить"
138
+
139
+ #: woo-smart-wishlist-premium/index.php:484
140
+ msgid "Auto remove product from the wishlist after adding to the cart."
141
+ msgstr "Автоматическое удаление товара из списка желаний после добавления в корзину."
142
+
143
+ #: woo-smart-wishlist-premium/index.php:490
144
+ msgid "Page"
145
+ msgstr "Страница"
146
+
147
+ #: woo-smart-wishlist-premium/index.php:493
148
+ msgid "Settings for wishlist page."
149
+ msgstr "Настройка страницы желаний."
150
+
151
+ #: woo-smart-wishlist-premium/index.php:497
152
+ msgid "Wishlist page"
153
+ msgstr "Страница желаний"
154
+
155
+ #: woo-smart-wishlist-premium/index.php:502
156
+ msgid "Choose a page"
157
+ msgstr "Выберите страницу"
158
+
159
+ #: woo-smart-wishlist-premium/index.php:506
160
+ msgid "Add shortcode %s to display the wishlist on a page."
161
+ msgstr "Добавьте шорткод %s чтобы отобразить список желаний на странице."
162
+
163
+ #: woo-smart-wishlist-premium/index.php:508
164
+ msgid "After choosing a page, please go to Setting >> Permalinks and press Save Changes."
165
+ msgstr "Выбрав страницу, перейдите в «Настройки»> «Постоянные ссылки» и нажмите «Сохранить изменения»."
166
+
167
+ #: woo-smart-wishlist-premium/index.php:513
168
+ msgid "Share buttons"
169
+ msgstr "Поделиться кнопками"
170
+
171
+ #: woo-smart-wishlist-premium/index.php:526
172
+ msgid "Enable share buttons on the wishlist page?"
173
+ msgstr "Включить кнопки обмена на странице списка желаний?"
174
+
175
+ #: woo-smart-wishlist-premium/index.php:544
176
+ msgid "Enable copy wishlist link to share?"
177
+ msgstr "Разрешить копировать ссылку в список желаний, чтобы поделиться?"
178
+
179
+ #: woo-smart-wishlist-premium/index.php:550, woo-smart-wishlist-premium/index.php:562
180
+ msgid "Button"
181
+ msgstr "Кнопка"
182
+
183
+ #: woo-smart-wishlist-premium/index.php:553
184
+ msgid "Settings for \"Add to wishlist\" button."
185
+ msgstr "Настройки для кнопки «Добавить в список желаний»."
186
+
187
+ #: woo-smart-wishlist-premium/index.php:557
188
+ msgid "Type"
189
+ msgstr "Тип"
190
+
191
+ #: woo-smart-wishlist-premium/index.php:566
192
+ msgid "Link"
193
+ msgstr "Ссылка"
194
+
195
+ #: woo-smart-wishlist-premium/index.php:572
196
+ msgid "Text"
197
+ msgstr "Текст"
198
+
199
+ #: woo-smart-wishlist-premium/index.php:578, woo-smart-wishlist-premium/index.php:606
200
+ msgid "Leave blank if you want to use the default text and can be translated."
201
+ msgstr "Оставьте пустым, если вы хотите использовать текст по умолчанию и может быть переведен."
202
+
203
+ #: woo-smart-wishlist-premium/index.php:583, woo-smart-wishlist-premium/index.php:798
204
+ msgid "Action"
205
+ msgstr "Действие"
206
+
207
+ #: woo-smart-wishlist-premium/index.php:588
208
+ msgid "Show message"
209
+ msgstr "Показать сообщение"
210
+
211
+ #: woo-smart-wishlist-premium/index.php:592
212
+ msgid "Show product list"
213
+ msgstr "Показать список продуктов"
214
+
215
+ #: woo-smart-wishlist-premium/index.php:595
216
+ msgid "The action when clicking on the wishlist button."
217
+ msgstr "Действие при нажатии на кнопку списка желаний."
218
+
219
+ #: woo-smart-wishlist-premium/index.php:600
220
+ msgid "Text (added)"
221
+ msgstr "Текст (добавлено)"
222
+
223
+ #: woo-smart-wishlist-premium/index.php:611
224
+ msgid "Action (added)"
225
+ msgstr "Действие (добавлено)"
226
+
227
+ #: woo-smart-wishlist-premium/index.php:616
228
+ msgid "Open wishlist popup"
229
+ msgstr "Открыть всплывающее окно"
230
+
231
+ #: woo-smart-wishlist-premium/index.php:620, woo-smart-wishlist-premium/index.php:975
232
+ msgid "Open wishlist page"
233
+ msgstr "Открыть страницу желаний"
234
+
235
+ #: woo-smart-wishlist-premium/index.php:623
236
+ msgid "The action when clicking on the wishlist button (added)."
237
+ msgstr "Действие при нажатии на кнопку списка желаний (добавлено)."
238
+
239
+ #: woo-smart-wishlist-premium/index.php:628
240
+ msgid "Extra class (optional)"
241
+ msgstr "Дополнительный класс (необязательно)"
242
+
243
+ #: woo-smart-wishlist-premium/index.php:633
244
+ msgid "Add extra class for action button/link, split by one space."
245
+ msgstr "Добавить дополнительный класс для кнопки / ссылки действия, разделенных на один пробел."
246
+
247
+ #: woo-smart-wishlist-premium/index.php:638
248
+ msgid "Position on archive page"
249
+ msgstr "Позиция на странице магазина/категории"
250
+
251
+ #: woo-smart-wishlist-premium/index.php:643, woo-smart-wishlist-premium/index.php:674
252
+ msgid "After title"
253
+ msgstr "После заголовка"
254
+
255
+ #: woo-smart-wishlist-premium/index.php:647
256
+ msgid "After rating"
257
+ msgstr "После оценки"
258
+
259
+ #: woo-smart-wishlist-premium/index.php:651
260
+ msgid "After price"
261
+ msgstr "После цены"
262
+
263
+ #: woo-smart-wishlist-premium/index.php:655, woo-smart-wishlist-premium/index.php:686
264
+ msgid "Before add to cart"
265
+ msgstr "Перед кнопкой корзины"
266
+
267
+ #: woo-smart-wishlist-premium/index.php:659, woo-smart-wishlist-premium/index.php:690
268
+ msgid "After add to cart"
269
+ msgstr "После кнопки корзины"
270
+
271
+ #: woo-smart-wishlist-premium/index.php:663, woo-smart-wishlist-premium/index.php:702
272
+ msgid "None"
273
+ msgstr "Нет"
274
+
275
+ #: woo-smart-wishlist-premium/index.php:669
276
+ msgid "Position on single page"
277
+ msgstr "Позиция на странице товара"
278
+
279
+ #: woo-smart-wishlist-premium/index.php:678
280
+ msgid "After price & rating"
281
+ msgstr "После цены и рейтинга"
282
+
283
+ #: woo-smart-wishlist-premium/index.php:682
284
+ msgid "After excerpt"
285
+ msgstr "После выдержки"
286
+
287
+ #: woo-smart-wishlist-premium/index.php:694
288
+ msgid "After meta"
289
+ msgstr "После мета"
290
+
291
+ #: woo-smart-wishlist-premium/index.php:698
292
+ msgid "After sharing"
293
+ msgstr "После обмена"
294
+
295
+ #: woo-smart-wishlist-premium/index.php:708
296
+ msgid "Shortcode"
297
+ msgstr "Короткий номер"
298
+
299
+ #: woo-smart-wishlist-premium/index.php:711
300
+ msgid "You can add the button by manually, please use the shortcode %s, eg. %s for the product with ID is 99."
301
+ msgstr "Вы можете добавить кнопку вручную, пожалуйста, используйте шорткод %s , например. %s для продукта с идентификатором 99."
302
+
303
+ #: woo-smart-wishlist-premium/index.php:716
304
+ msgid "Categories"
305
+ msgstr "Категории"
306
+
307
+ #: woo-smart-wishlist-premium/index.php:729
308
+ msgid "All categories"
309
+ msgstr "Все категории"
310
+
311
+ #: woo-smart-wishlist-premium/index.php:735
312
+ msgid "Only show the wishlist button for products in selected categories."
313
+ msgstr "Показывать кнопку списка пожеланий только для товаров в выбранных категориях."
314
+
315
+ #: woo-smart-wishlist-premium/index.php:741
316
+ msgid "Popup"
317
+ msgstr "В отдельном окне"
318
+
319
+ #: woo-smart-wishlist-premium/index.php:744
320
+ msgid "Settings for the wishlist popup."
321
+ msgstr "Настройки страницы желаний."
322
+
323
+ #: woo-smart-wishlist-premium/index.php:748
324
+ msgid "Color"
325
+ msgstr "Цвет"
326
+
327
+ #: woo-smart-wishlist-premium/index.php:755
328
+ msgid "Choose the color, default %s"
329
+ msgstr "Выберите цвет, по умолчанию %s"
330
+
331
+ #: woo-smart-wishlist-premium/index.php:760
332
+ msgid "Continue shopping link"
333
+ msgstr "Ссылка \"продолжить покупки\""
334
+
335
+ #: woo-smart-wishlist-premium/index.php:766
336
+ msgid "By default, only hide the popup when clicking on \"Continue shopping\" button."
337
+ msgstr "По умолчанию скрывать всплывающее окно можно только при нажатии кнопки «Продолжить покупки»."
338
+
339
+ #: woo-smart-wishlist-premium/index.php:772
340
+ msgid "Menu"
341
+ msgstr "Меню"
342
+
343
+ #: woo-smart-wishlist-premium/index.php:775
344
+ msgid "Settings for the wishlist menu item."
345
+ msgstr "Настройки для пункта меню списка желаний."
346
+
347
+ #: woo-smart-wishlist-premium/index.php:779
348
+ msgid "Menu(s)"
349
+ msgstr "Меню %s"
350
+
351
+ #: woo-smart-wishlist-premium/index.php:793
352
+ msgid "Choose the menu(s) you want to add the \"wishlist menu\" at the end."
353
+ msgstr "Выберите меню, в которое вы хотите добавить «список желаний» в конце."
354
+
355
+ #: woo-smart-wishlist-premium/index.php:803
356
+ msgid "Open page"
357
+ msgstr "Открыть страницу"
358
+
359
+ #: woo-smart-wishlist-premium/index.php:807
360
+ msgid "Open popup"
361
+ msgstr "Открыть всплывающее окно"
362
+
363
+ #: woo-smart-wishlist-premium/index.php:810
364
+ msgid "Action when clicking on the \"wishlist menu\"."
365
+ msgstr "Действие при нажатии на \\ \"меню списка желаний \"."
366
+
367
+ #: woo-smart-wishlist-premium/index.php:817
368
+ msgid "Update Options"
369
+ msgstr "Сохранить настройки"
370
+
371
+ #: woo-smart-wishlist-premium/index.php:869
372
+ msgid "Copied the wishlist link:"
373
+ msgstr "Скопированная ссылка на список желаний:"
374
+
375
+ #: woo-smart-wishlist-premium/index.php:909
376
+ msgid "Premium support"
377
+ msgstr "Премиум-поддержка"
378
+
379
+ #: woo-smart-wishlist-premium/index.php:939
380
+ msgid "In stock"
381
+ msgstr "В наличии"
382
+
383
+ #: woo-smart-wishlist-premium/index.php:939
384
+ msgid "Out of stock"
385
+ msgstr "Нет на складе"
386
+
387
+ #: woo-smart-wishlist-premium/index.php:979
388
+ msgid "Continue shopping"
389
+ msgstr "Продолжить покупки"
languages/woo-smart-wishlist-uk.mo ADDED
Binary file
languages/woo-smart-wishlist-uk.po ADDED
@@ -0,0 +1,393 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2019 WPC Smart Wishlist
2
+ # This file is distributed under the same license as the WPC Smart Wishlist package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: WPC Smart Wishlist\n"
6
+ "MIME-Version: 1.0\n"
7
+ "Content-Type: text/plain; charset=UTF-8\n"
8
+ "Content-Transfer-Encoding: 8bit\n"
9
+ "X-Poedit-Basepath: ..\n"
10
+ "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;"
11
+ "esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
12
+ "X-Poedit-SourceCharset: UTF-8\n"
13
+ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : "
14
+ "2);\n"
15
+ "POT-Creation-Date: \n"
16
+ "PO-Revision-Date: \n"
17
+ "Language-Team: \n"
18
+ "X-Generator: Poedit 2.2.3\n"
19
+ "Last-Translator: \n"
20
+ "Language: ru\n"
21
+ "X-Poedit-SearchPath-0: .\n"
22
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
23
+
24
+ #: woo-smart-wishlist-premium/index.php:112, woo-smart-wishlist-premium/index.php:955,
25
+ #: woo-smart-wishlist-premium/index.php:967
26
+ msgid "Wishlist"
27
+ msgstr "Список побажань"
28
+
29
+ #: woo-smart-wishlist-premium/index.php:175, woo-smart-wishlist-premium/index.php:228
30
+ msgid "Please log in to use the wishlist!"
31
+ msgstr "Увійдіть, щоб використовувати список побажань!"
32
+
33
+ #: woo-smart-wishlist-premium/index.php:187
34
+ msgid "Added to the wishlist!"
35
+ msgstr "Додано до списку побажань!"
36
+
37
+ #: woo-smart-wishlist-premium/index.php:190
38
+ msgid "Already in the wishlist!"
39
+ msgstr "Вже в списку побажань!"
40
+
41
+ #: woo-smart-wishlist-premium/index.php:201, woo-smart-wishlist-premium/index.php:250
42
+ msgid "Have an error, please try again!"
43
+ msgstr "Виникла помилка. Повторіть спробу!"
44
+
45
+ #: woo-smart-wishlist-premium/index.php:241
46
+ msgid "Removed from wishlist!"
47
+ msgstr "Вилучено з списку побажань!"
48
+
49
+ #: woo-smart-wishlist-premium/index.php:243, woo-smart-wishlist-premium/index.php:946
50
+ msgid "There are no products on the wishlist!"
51
+ msgstr "Немає товарів у списку бажань!"
52
+
53
+ #: woo-smart-wishlist-premium/index.php:246
54
+ msgid "The product does not exist on the wishlist!"
55
+ msgstr "Продукт не існує в списку бажань!"
56
+
57
+ #: woo-smart-wishlist-premium/index.php:260
58
+ msgid "Please log in to use wishlist!"
59
+ msgstr "Увійдіть, щоб використовувати список побажань!"
60
+
61
+ #: woo-smart-wishlist-premium/index.php:301, woo-smart-wishlist-premium/index.php:355,
62
+ #: woo-smart-wishlist-premium/index.php:603, woo-smart-wishlist-premium/index.php:604,
63
+ #: woo-smart-wishlist-premium/index.php:861
64
+ msgid "Browse wishlist"
65
+ msgstr "Перегляньте список бажань"
66
+
67
+ #: woo-smart-wishlist-premium/index.php:307, woo-smart-wishlist-premium/index.php:361,
68
+ #: woo-smart-wishlist-premium/index.php:575, woo-smart-wishlist-premium/index.php:576,
69
+ #: woo-smart-wishlist-premium/index.php:854
70
+ msgid "Add to wishlist"
71
+ msgstr "Додати в список бажаних"
72
+
73
+ #: woo-smart-wishlist-premium/index.php:391
74
+ msgid "Share on:"
75
+ msgstr "Поділитися в:"
76
+
77
+ #: woo-smart-wishlist-premium/index.php:392
78
+ msgid "Facebook"
79
+ msgstr "Facebook"
80
+
81
+ #: woo-smart-wishlist-premium/index.php:393
82
+ msgid "Twitter"
83
+ msgstr "Twitter"
84
+
85
+ #: woo-smart-wishlist-premium/index.php:394
86
+ msgid "Pinterest"
87
+ msgstr "Pinterest"
88
+
89
+ #: woo-smart-wishlist-premium/index.php:395
90
+ msgid "Mail"
91
+ msgstr "На почту"
92
+
93
+ #: woo-smart-wishlist-premium/index.php:400, woo-smart-wishlist-premium/index.php:531
94
+ msgid "Copy link"
95
+ msgstr "Скопіювати посилання"
96
+
97
+ #: woo-smart-wishlist-premium/index.php:424
98
+ msgid "Thank you for using our plugin! If you are satisfied, please reward it a full five-star %s rating."
99
+ msgstr "Дякуємо за використання нашого плагіна! Якщо ви задоволені, надішліть його повним рейтингом п'ять зірок %s ."
100
+
101
+ #: woo-smart-wishlist-premium/index.php:427
102
+ msgid "Reviews"
103
+ msgstr "Відгуки"
104
+
105
+ #: woo-smart-wishlist-premium/index.php:429
106
+ msgid "Changelog"
107
+ msgstr "Журнал змін"
108
+
109
+ #: woo-smart-wishlist-premium/index.php:431
110
+ msgid "Discussion"
111
+ msgstr "Обговорення"
112
+
113
+ #: woo-smart-wishlist-premium/index.php:438, woo-smart-wishlist-premium/index.php:895
114
+ msgid "Settings"
115
+ msgstr "Настройки"
116
+
117
+ #: woo-smart-wishlist-premium/index.php:441
118
+ msgid "Premium Support"
119
+ msgstr "Підтримка"
120
+
121
+ #: woo-smart-wishlist-premium/index.php:452
122
+ msgid "General"
123
+ msgstr "Загальні"
124
+
125
+ #: woo-smart-wishlist-premium/index.php:456
126
+ msgid "Disable the wishlist for unauthenticated users"
127
+ msgstr "Вимкніть список бажань для користувачів, що не пройшли перевірку автентичності"
128
+
129
+ #: woo-smart-wishlist-premium/index.php:461, woo-smart-wishlist-premium/index.php:476,
130
+ #: woo-smart-wishlist-premium/index.php:518, woo-smart-wishlist-premium/index.php:536
131
+ msgid "Yes"
132
+ msgstr "Да"
133
+
134
+ #: woo-smart-wishlist-premium/index.php:465, woo-smart-wishlist-premium/index.php:480,
135
+ #: woo-smart-wishlist-premium/index.php:522, woo-smart-wishlist-premium/index.php:540
136
+ msgid "No"
137
+ msgstr "Ні"
138
+
139
+ #: woo-smart-wishlist-premium/index.php:471
140
+ msgid "Auto remove"
141
+ msgstr "Автоматичне видалення"
142
+
143
+ #: woo-smart-wishlist-premium/index.php:484
144
+ msgid "Auto remove product from the wishlist after adding to the cart."
145
+ msgstr "Автоматичне видалення продукту зі списку бажань після додавання до кошика."
146
+
147
+ #: woo-smart-wishlist-premium/index.php:490
148
+ msgid "Page"
149
+ msgstr "Сторінка"
150
+
151
+ #: woo-smart-wishlist-premium/index.php:493
152
+ msgid "Settings for wishlist page."
153
+ msgstr "Налаштування сторінки бажань."
154
+
155
+ #: woo-smart-wishlist-premium/index.php:497
156
+ msgid "Wishlist page"
157
+ msgstr "ID сторінки"
158
+
159
+ #: woo-smart-wishlist-premium/index.php:502
160
+ msgid "Choose a page"
161
+ msgstr "Оберіть сторінку"
162
+
163
+ #: woo-smart-wishlist-premium/index.php:506
164
+ msgid "Add shortcode %s to display the wishlist on a page."
165
+ msgstr "Додайте короткий код %s для відображення списку бажань на сторінці."
166
+
167
+ #: woo-smart-wishlist-premium/index.php:508
168
+ msgid "After choosing a page, please go to Setting >> Permalinks and press Save Changes."
169
+ msgstr "Після вибору сторінки перейдіть до Налаштування >> Permalinks і натисніть Зберегти зміни."
170
+
171
+ #: woo-smart-wishlist-premium/index.php:513
172
+ msgid "Share buttons"
173
+ msgstr "Кнопки спільного доступу"
174
+
175
+ #: woo-smart-wishlist-premium/index.php:526
176
+ msgid "Enable share buttons on the wishlist page?"
177
+ msgstr "Увімкнути кнопки спільного доступу на сторінці бажань?"
178
+
179
+ #: woo-smart-wishlist-premium/index.php:544
180
+ msgid "Enable copy wishlist link to share?"
181
+ msgstr "Увімкнути копію посилання для бажань, щоб надати спільний доступ?"
182
+
183
+ #: woo-smart-wishlist-premium/index.php:550, woo-smart-wishlist-premium/index.php:562
184
+ msgid "Button"
185
+ msgstr "Кнопка"
186
+
187
+ #: woo-smart-wishlist-premium/index.php:553
188
+ msgid "Settings for \"Add to wishlist\" button."
189
+ msgstr "\"Додати до списку побажань\"."
190
+
191
+ #: woo-smart-wishlist-premium/index.php:557
192
+ msgid "Type"
193
+ msgstr "Тип"
194
+
195
+ #: woo-smart-wishlist-premium/index.php:566
196
+ msgid "Link"
197
+ msgstr "Посилання"
198
+
199
+ #: woo-smart-wishlist-premium/index.php:572
200
+ msgid "Text"
201
+ msgstr "Текст"
202
+
203
+ #: woo-smart-wishlist-premium/index.php:578, woo-smart-wishlist-premium/index.php:606
204
+ msgid "Leave blank if you want to use the default text and can be translated."
205
+ msgstr "Залиште незаповненим, якщо ви хочете використовувати текст за замовчуванням і його можна перекласти."
206
+
207
+ #: woo-smart-wishlist-premium/index.php:583, woo-smart-wishlist-premium/index.php:798
208
+ msgid "Action"
209
+ msgstr "Дія"
210
+
211
+ #: woo-smart-wishlist-premium/index.php:588
212
+ msgid "Show message"
213
+ msgstr "Показати повідомлення"
214
+
215
+ #: woo-smart-wishlist-premium/index.php:592
216
+ msgid "Show product list"
217
+ msgstr "Показати список продуктів"
218
+
219
+ #: woo-smart-wishlist-premium/index.php:595
220
+ msgid "The action when clicking on the wishlist button."
221
+ msgstr "Дія при натисканні на кнопку списку бажань."
222
+
223
+ #: woo-smart-wishlist-premium/index.php:600
224
+ msgid "Text (added)"
225
+ msgstr "Текст (додано)"
226
+
227
+ #: woo-smart-wishlist-premium/index.php:611
228
+ msgid "Action (added)"
229
+ msgstr "Дія (додано)"
230
+
231
+ #: woo-smart-wishlist-premium/index.php:616
232
+ msgid "Open wishlist popup"
233
+ msgstr "Відкрити спливаюче вікні"
234
+
235
+ #: woo-smart-wishlist-premium/index.php:620, woo-smart-wishlist-premium/index.php:975
236
+ msgid "Open wishlist page"
237
+ msgstr "Відкрити сторінку"
238
+
239
+ #: woo-smart-wishlist-premium/index.php:623
240
+ msgid "The action when clicking on the wishlist button (added)."
241
+ msgstr "Дія при натисканні на кнопку списку бажань (додано)."
242
+
243
+ #: woo-smart-wishlist-premium/index.php:628
244
+ msgid "Extra class (optional)"
245
+ msgstr "Додатковий клас (необов'язково)"
246
+
247
+ #: woo-smart-wishlist-premium/index.php:633
248
+ msgid "Add extra class for action button/link, split by one space."
249
+ msgstr "Додайте додатковий клас для кнопки дії / посилання, розділеного на один пробіл."
250
+
251
+ #: woo-smart-wishlist-premium/index.php:638
252
+ msgid "Position on archive page"
253
+ msgstr "Позиція на сторінці каталогу"
254
+
255
+ #: woo-smart-wishlist-premium/index.php:643, woo-smart-wishlist-premium/index.php:674
256
+ msgid "After title"
257
+ msgstr "Після заголовка"
258
+
259
+ #: woo-smart-wishlist-premium/index.php:647
260
+ msgid "After rating"
261
+ msgstr "Після рейтингу"
262
+
263
+ #: woo-smart-wishlist-premium/index.php:651
264
+ msgid "After price"
265
+ msgstr "Після ціни"
266
+
267
+ #: woo-smart-wishlist-premium/index.php:655, woo-smart-wishlist-premium/index.php:686
268
+ msgid "Before add to cart"
269
+ msgstr "Перед кнопкою \"Додати в кошик\""
270
+
271
+ #: woo-smart-wishlist-premium/index.php:659, woo-smart-wishlist-premium/index.php:690
272
+ msgid "After add to cart"
273
+ msgstr "Післф кнопки \"Додати в кошик\""
274
+
275
+ #: woo-smart-wishlist-premium/index.php:663, woo-smart-wishlist-premium/index.php:702
276
+ msgid "None"
277
+ msgstr "Немає"
278
+
279
+ #: woo-smart-wishlist-premium/index.php:669
280
+ msgid "Position on single page"
281
+ msgstr "Позиція на сторінці товару"
282
+
283
+ #: woo-smart-wishlist-premium/index.php:678
284
+ msgid "After price & rating"
285
+ msgstr "Після ціни та рейтингу"
286
+
287
+ #: woo-smart-wishlist-premium/index.php:682
288
+ msgid "After excerpt"
289
+ msgstr "Після виписки"
290
+
291
+ #: woo-smart-wishlist-premium/index.php:694
292
+ msgid "After meta"
293
+ msgstr "Після мета"
294
+
295
+ #: woo-smart-wishlist-premium/index.php:698
296
+ msgid "After sharing"
297
+ msgstr "Після обміну"
298
+
299
+ #: woo-smart-wishlist-premium/index.php:708
300
+ msgid "Shortcode"
301
+ msgstr "Короткий код"
302
+
303
+ #: woo-smart-wishlist-premium/index.php:711
304
+ msgid "You can add the button by manually, please use the shortcode %s, eg. %s for the product with ID is 99."
305
+ msgstr "Кнопку можна додати вручну, використовуйте короткий код %s , наприклад. %s для продукту з ідентифікатором 99."
306
+
307
+ #: woo-smart-wishlist-premium/index.php:716
308
+ msgid "Categories"
309
+ msgstr "Категорії"
310
+
311
+ #: woo-smart-wishlist-premium/index.php:729
312
+ msgid "All categories"
313
+ msgstr "Всі категорії"
314
+
315
+ #: woo-smart-wishlist-premium/index.php:735
316
+ msgid "Only show the wishlist button for products in selected categories."
317
+ msgstr "Показувати тільки кнопку бажань для продуктів у вибраних категоріях."
318
+
319
+ #: woo-smart-wishlist-premium/index.php:741
320
+ msgid "Popup"
321
+ msgstr "Спливаюче вікно"
322
+
323
+ #: woo-smart-wishlist-premium/index.php:744
324
+ msgid "Settings for the wishlist popup."
325
+ msgstr "Налаштування спливаючого вікна."
326
+
327
+ #: woo-smart-wishlist-premium/index.php:748
328
+ msgid "Color"
329
+ msgstr "Колір"
330
+
331
+ #: woo-smart-wishlist-premium/index.php:755
332
+ msgid "Choose the color, default %s"
333
+ msgstr "Виберіть колір, за замовчуванням %s"
334
+
335
+ #: woo-smart-wishlist-premium/index.php:760
336
+ msgid "Continue shopping link"
337
+ msgstr "Посилання на \"продовжити покупки\""
338
+
339
+ #: woo-smart-wishlist-premium/index.php:766
340
+ msgid "By default, only hide the popup when clicking on \"Continue shopping\" button."
341
+ msgstr "За замовчуванням вибирайте спливаюче вікно, натиснувши на кнопку \"Продовжити покупки\"."
342
+
343
+ #: woo-smart-wishlist-premium/index.php:772
344
+ msgid "Menu"
345
+ msgstr "Меню"
346
+
347
+ #: woo-smart-wishlist-premium/index.php:775
348
+ msgid "Settings for the wishlist menu item."
349
+ msgstr "Налаштування пункту меню бажань."
350
+
351
+ #: woo-smart-wishlist-premium/index.php:779
352
+ msgid "Menu(s)"
353
+ msgstr "Меню %s"
354
+
355
+ #: woo-smart-wishlist-premium/index.php:793
356
+ msgid "Choose the menu(s) you want to add the \"wishlist menu\" at the end."
357
+ msgstr "Виберіть меню (і), яке ви хочете додати в меню \"список побажань\"."
358
+
359
+ #: woo-smart-wishlist-premium/index.php:803
360
+ msgid "Open page"
361
+ msgstr "Відкрити сторінку"
362
+
363
+ #: woo-smart-wishlist-premium/index.php:807
364
+ msgid "Open popup"
365
+ msgstr "Спливаюче вікно"
366
+
367
+ #: woo-smart-wishlist-premium/index.php:810
368
+ msgid "Action when clicking on the \"wishlist menu\"."
369
+ msgstr "Дія при натисканні на \"меню бажань\"."
370
+
371
+ #: woo-smart-wishlist-premium/index.php:817
372
+ msgid "Update Options"
373
+ msgstr "Оновити налаштування"
374
+
375
+ #: woo-smart-wishlist-premium/index.php:869
376
+ msgid "Copied the wishlist link:"
377
+ msgstr "Посилання на список бажань скопійовано:"
378
+
379
+ #: woo-smart-wishlist-premium/index.php:909
380
+ msgid "Premium support"
381
+ msgstr "Преміум-підтримка"
382
+
383
+ #: woo-smart-wishlist-premium/index.php:939
384
+ msgid "In stock"
385
+ msgstr "В наявності"
386
+
387
+ #: woo-smart-wishlist-premium/index.php:939
388
+ msgid "Out of stock"
389
+ msgstr "Немає в наявності"
390
+
391
+ #: woo-smart-wishlist-premium/index.php:979
392
+ msgid "Continue shopping"
393
+ msgstr "Продовжити покупки"
languages/woo-smart-wishlist.pot ADDED
@@ -0,0 +1,705 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2022 WPClever
2
+ # This file is distributed under the same license as the WPC Smart Wishlist for WooCommerce plugin.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: WPC Smart Wishlist for WooCommerce 3.0.0\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woo-smart-wishlist\n"
7
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
+ "Language-Team: LANGUAGE <LL@li.org>\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2022-04-30T09:32:25+00:00\n"
13
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
+ "X-Generator: WP-CLI 2.5.0\n"
15
+ "X-Domain: woo-smart-wishlist\n"
16
+
17
+ #. Plugin Name of the plugin
18
+ msgid "WPC Smart Wishlist for WooCommerce"
19
+ msgstr ""
20
+
21
+ #. Plugin URI of the plugin
22
+ msgid "https://wpclever.net/"
23
+ msgstr ""
24
+
25
+ #. Description of the plugin
26
+ msgid "WPC Smart Wishlist is a simple but powerful tool that can help your customer save products for buy later."
27
+ msgstr ""
28
+
29
+ #. Author of the plugin
30
+ msgid "WPClever"
31
+ msgstr ""
32
+
33
+ #. Author URI of the plugin
34
+ msgid "https://wpclever.net"
35
+ msgstr ""
36
+
37
+ #: wpc-smart-wishlist.php:286
38
+ #: wpc-smart-wishlist.php:343
39
+ #: wpc-smart-wishlist.php:386
40
+ #: wpc-smart-wishlist.php:1340
41
+ msgid "Please log in to use the wishlist!"
42
+ msgstr ""
43
+
44
+ #: wpc-smart-wishlist.php:287
45
+ #: wpc-smart-wishlist.php:360
46
+ #: wpc-smart-wishlist.php:404
47
+ #: wpc-smart-wishlist.php:419
48
+ #: wpc-smart-wishlist.php:1313
49
+ #: wpc-smart-wishlist.php:1561
50
+ msgid "There are no products on the wishlist!"
51
+ msgstr ""
52
+
53
+ #: wpc-smart-wishlist.php:306
54
+ #: wpc-smart-wishlist.php:1268
55
+ msgid "Added to the wishlist!"
56
+ msgstr ""
57
+
58
+ #: wpc-smart-wishlist.php:309
59
+ #: wpc-smart-wishlist.php:1277
60
+ msgid "Already in the wishlist!"
61
+ msgstr ""
62
+
63
+ #: wpc-smart-wishlist.php:323
64
+ #: wpc-smart-wishlist.php:368
65
+ #: wpc-smart-wishlist.php:1358
66
+ msgid "Have an error, please try again!"
67
+ msgstr ""
68
+
69
+ #: wpc-smart-wishlist.php:357
70
+ #: wpc-smart-wishlist.php:1286
71
+ msgid "Removed from wishlist!"
72
+ msgstr ""
73
+
74
+ #: wpc-smart-wishlist.php:363
75
+ #: wpc-smart-wishlist.php:1331
76
+ msgid "The product does not exist on the wishlist!"
77
+ msgstr ""
78
+
79
+ #: wpc-smart-wishlist.php:403
80
+ #: wpc-smart-wishlist.php:1304
81
+ msgid "All products were removed from your wishlist!"
82
+ msgstr ""
83
+
84
+ #: wpc-smart-wishlist.php:418
85
+ #: wpc-smart-wishlist.php:443
86
+ msgid "Please log in to use wishlist!"
87
+ msgstr ""
88
+
89
+ #: wpc-smart-wishlist.php:495
90
+ #: wpc-smart-wishlist.php:1125
91
+ #: wpc-smart-wishlist.php:1425
92
+ msgid "Browse wishlist"
93
+ msgstr ""
94
+
95
+ #: wpc-smart-wishlist.php:497
96
+ #: wpc-smart-wishlist.php:1116
97
+ #: wpc-smart-wishlist.php:1424
98
+ msgid "Add to wishlist"
99
+ msgstr ""
100
+
101
+ #: wpc-smart-wishlist.php:530
102
+ #: wpc-smart-wishlist.php:1017
103
+ msgid "Facebook"
104
+ msgstr ""
105
+
106
+ #: wpc-smart-wishlist.php:531
107
+ #: wpc-smart-wishlist.php:1020
108
+ msgid "Twitter"
109
+ msgstr ""
110
+
111
+ #: wpc-smart-wishlist.php:532
112
+ #: wpc-smart-wishlist.php:1023
113
+ msgid "Pinterest"
114
+ msgstr ""
115
+
116
+ #: wpc-smart-wishlist.php:533
117
+ #: wpc-smart-wishlist.php:1026
118
+ msgid "Mail"
119
+ msgstr ""
120
+
121
+ #: wpc-smart-wishlist.php:543
122
+ msgid "Share on:"
123
+ msgstr ""
124
+
125
+ #: wpc-smart-wishlist.php:555
126
+ msgid "Wishlist link:"
127
+ msgstr ""
128
+
129
+ #: wpc-smart-wishlist.php:557
130
+ msgid "Copy"
131
+ msgstr ""
132
+
133
+ #: wpc-smart-wishlist.php:582
134
+ msgid "Thank you for using our plugin! If you are satisfied, please reward it a full five-star %s rating."
135
+ msgstr ""
136
+
137
+ #: wpc-smart-wishlist.php:585
138
+ msgid "Reviews"
139
+ msgstr ""
140
+
141
+ #: wpc-smart-wishlist.php:587
142
+ msgid "Changelog"
143
+ msgstr ""
144
+
145
+ #: wpc-smart-wishlist.php:589
146
+ msgid "Discussion"
147
+ msgstr ""
148
+
149
+ #: wpc-smart-wishlist.php:596
150
+ #: wpc-smart-wishlist.php:1448
151
+ msgid "Settings"
152
+ msgstr ""
153
+
154
+ #: wpc-smart-wishlist.php:600
155
+ #: wpc-smart-wishlist.php:1105
156
+ msgid "Localization"
157
+ msgstr ""
158
+
159
+ #: wpc-smart-wishlist.php:605
160
+ #: wpc-smart-wishlist.php:1449
161
+ msgid "Premium Version"
162
+ msgstr ""
163
+
164
+ #: wpc-smart-wishlist.php:609
165
+ msgid "Essential Kit"
166
+ msgstr ""
167
+
168
+ #: wpc-smart-wishlist.php:624
169
+ msgid "General"
170
+ msgstr ""
171
+
172
+ #: wpc-smart-wishlist.php:628
173
+ msgid "Disable the wishlist for unauthenticated users"
174
+ msgstr ""
175
+
176
+ #: wpc-smart-wishlist.php:633
177
+ #: wpc-smart-wishlist.php:648
178
+ #: wpc-smart-wishlist.php:676
179
+ #: wpc-smart-wishlist.php:862
180
+ #: wpc-smart-wishlist.php:914
181
+ #: wpc-smart-wishlist.php:935
182
+ #: wpc-smart-wishlist.php:980
183
+ #: wpc-smart-wishlist.php:996
184
+ #: wpc-smart-wishlist.php:1037
185
+ msgid "Yes"
186
+ msgstr ""
187
+
188
+ #: wpc-smart-wishlist.php:637
189
+ #: wpc-smart-wishlist.php:652
190
+ #: wpc-smart-wishlist.php:680
191
+ #: wpc-smart-wishlist.php:866
192
+ #: wpc-smart-wishlist.php:900
193
+ #: wpc-smart-wishlist.php:918
194
+ #: wpc-smart-wishlist.php:939
195
+ #: wpc-smart-wishlist.php:984
196
+ #: wpc-smart-wishlist.php:1000
197
+ #: wpc-smart-wishlist.php:1041
198
+ msgid "No"
199
+ msgstr ""
200
+
201
+ #: wpc-smart-wishlist.php:643
202
+ msgid "Auto remove"
203
+ msgstr ""
204
+
205
+ #: wpc-smart-wishlist.php:655
206
+ msgid "Auto remove product from the wishlist after adding to the cart."
207
+ msgstr ""
208
+
209
+ #: wpc-smart-wishlist.php:660
210
+ #: wpc-smart-wishlist.php:1192
211
+ msgid "Multiple Wishlist"
212
+ msgstr ""
213
+
214
+ #: wpc-smart-wishlist.php:671
215
+ msgid "Enable"
216
+ msgstr ""
217
+
218
+ #: wpc-smart-wishlist.php:683
219
+ msgid "Enable/disable multiple wishlist."
220
+ msgstr ""
221
+
222
+ #: wpc-smart-wishlist.php:687
223
+ msgid "Maximum wishlists per user"
224
+ msgstr ""
225
+
226
+ #: wpc-smart-wishlist.php:695
227
+ #: wpc-smart-wishlist.php:707
228
+ msgid "Button"
229
+ msgstr ""
230
+
231
+ #: wpc-smart-wishlist.php:698
232
+ msgid "Settings for \"Add to wishlist\" button."
233
+ msgstr ""
234
+
235
+ #: wpc-smart-wishlist.php:702
236
+ msgid "Type"
237
+ msgstr ""
238
+
239
+ #: wpc-smart-wishlist.php:711
240
+ msgid "Link"
241
+ msgstr ""
242
+
243
+ #: wpc-smart-wishlist.php:717
244
+ #: wpc-smart-wishlist.php:1074
245
+ msgid "Action"
246
+ msgstr ""
247
+
248
+ #: wpc-smart-wishlist.php:722
249
+ msgid "Show message"
250
+ msgstr ""
251
+
252
+ #: wpc-smart-wishlist.php:726
253
+ msgid "Show product list"
254
+ msgstr ""
255
+
256
+ #: wpc-smart-wishlist.php:730
257
+ msgid "Add to wishlist solely"
258
+ msgstr ""
259
+
260
+ #: wpc-smart-wishlist.php:733
261
+ msgid "Action triggered by clicking on the wishlist button."
262
+ msgstr ""
263
+
264
+ #: wpc-smart-wishlist.php:737
265
+ msgid "Action (added)"
266
+ msgstr ""
267
+
268
+ #: wpc-smart-wishlist.php:742
269
+ msgid "Open wishlist popup"
270
+ msgstr ""
271
+
272
+ #: wpc-smart-wishlist.php:746
273
+ #: wpc-smart-wishlist.php:1165
274
+ #: wpc-smart-wishlist.php:1170
275
+ #: wpc-smart-wishlist.php:1659
276
+ msgid "Open wishlist page"
277
+ msgstr ""
278
+
279
+ #: wpc-smart-wishlist.php:749
280
+ msgid "Action triggered by clicking on the wishlist button after adding an item to the wishlist."
281
+ msgstr ""
282
+
283
+ #: wpc-smart-wishlist.php:753
284
+ msgid "Extra class (optional)"
285
+ msgstr ""
286
+
287
+ #: wpc-smart-wishlist.php:757
288
+ msgid "Add extra class for action button/link, split by one space."
289
+ msgstr ""
290
+
291
+ #: wpc-smart-wishlist.php:761
292
+ msgid "Position on archive page"
293
+ msgstr ""
294
+
295
+ #: wpc-smart-wishlist.php:766
296
+ #: wpc-smart-wishlist.php:793
297
+ msgid "Under title"
298
+ msgstr ""
299
+
300
+ #: wpc-smart-wishlist.php:767
301
+ #: wpc-smart-wishlist.php:794
302
+ msgid "Under rating"
303
+ msgstr ""
304
+
305
+ #: wpc-smart-wishlist.php:768
306
+ msgid "Under price"
307
+ msgstr ""
308
+
309
+ #: wpc-smart-wishlist.php:769
310
+ #: wpc-smart-wishlist.php:796
311
+ msgid "Above add to cart button"
312
+ msgstr ""
313
+
314
+ #: wpc-smart-wishlist.php:770
315
+ #: wpc-smart-wishlist.php:797
316
+ msgid "Under add to cart button"
317
+ msgstr ""
318
+
319
+ #: wpc-smart-wishlist.php:771
320
+ #: wpc-smart-wishlist.php:800
321
+ msgid "None (hide it)"
322
+ msgstr ""
323
+
324
+ #: wpc-smart-wishlist.php:788
325
+ msgid "Position on single page"
326
+ msgstr ""
327
+
328
+ #: wpc-smart-wishlist.php:795
329
+ msgid "Under excerpt"
330
+ msgstr ""
331
+
332
+ #: wpc-smart-wishlist.php:798
333
+ msgid "Under meta"
334
+ msgstr ""
335
+
336
+ #: wpc-smart-wishlist.php:799
337
+ msgid "Under sharing"
338
+ msgstr ""
339
+
340
+ #: wpc-smart-wishlist.php:817
341
+ msgid "Shortcode"
342
+ msgstr ""
343
+
344
+ #: wpc-smart-wishlist.php:820
345
+ msgid "You can add a button manually by using the shortcode %s, eg. %s for the product whose ID is 99."
346
+ msgstr ""
347
+
348
+ #: wpc-smart-wishlist.php:825
349
+ msgid "Categories"
350
+ msgstr ""
351
+
352
+ #: wpc-smart-wishlist.php:840
353
+ msgid "All categories"
354
+ msgstr ""
355
+
356
+ #: wpc-smart-wishlist.php:845
357
+ msgid "Only show the wishlist button for products in selected categories."
358
+ msgstr ""
359
+
360
+ #: wpc-smart-wishlist.php:850
361
+ msgid "Popup"
362
+ msgstr ""
363
+
364
+ #: wpc-smart-wishlist.php:853
365
+ msgid "Settings for the wishlist popup."
366
+ msgstr ""
367
+
368
+ #: wpc-smart-wishlist.php:857
369
+ msgid "Use perfect-scrollbar"
370
+ msgstr ""
371
+
372
+ #: wpc-smart-wishlist.php:869
373
+ msgid "Read more about %s"
374
+ msgstr ""
375
+
376
+ #: wpc-smart-wishlist.php:873
377
+ msgid "Color"
378
+ msgstr ""
379
+
380
+ #: wpc-smart-wishlist.php:879
381
+ msgid "Choose the color, default %s"
382
+ msgstr ""
383
+
384
+ #: wpc-smart-wishlist.php:883
385
+ msgid "Link to individual product"
386
+ msgstr ""
387
+
388
+ #: wpc-smart-wishlist.php:888
389
+ msgid "Yes, open in the same tab"
390
+ msgstr ""
391
+
392
+ #: wpc-smart-wishlist.php:892
393
+ msgid "Yes, open in the new tab"
394
+ msgstr ""
395
+
396
+ #: wpc-smart-wishlist.php:896
397
+ msgid "Yes, open quick view popup"
398
+ msgstr ""
399
+
400
+ #: wpc-smart-wishlist.php:909
401
+ msgid "Show note"
402
+ msgstr ""
403
+
404
+ #: wpc-smart-wishlist.php:921
405
+ msgid "Show note on each product for all visitors. Only wishlist owner can add/edit these notes."
406
+ msgstr ""
407
+
408
+ #: wpc-smart-wishlist.php:930
409
+ #: wpc-smart-wishlist.php:1138
410
+ msgid "Empty wishlist button"
411
+ msgstr ""
412
+
413
+ #: wpc-smart-wishlist.php:942
414
+ msgid "Show empty wishlist button on the popup?"
415
+ msgstr ""
416
+
417
+ #: wpc-smart-wishlist.php:946
418
+ msgid "Continue shopping link"
419
+ msgstr ""
420
+
421
+ #: wpc-smart-wishlist.php:951
422
+ msgid "By default, the wishlist popup will only be closed when customers click on the \"Continue Shopping\" button."
423
+ msgstr ""
424
+
425
+ #: wpc-smart-wishlist.php:956
426
+ msgid "Page"
427
+ msgstr ""
428
+
429
+ #: wpc-smart-wishlist.php:959
430
+ msgid "Settings for wishlist page."
431
+ msgstr ""
432
+
433
+ #: wpc-smart-wishlist.php:963
434
+ msgid "Wishlist page"
435
+ msgstr ""
436
+
437
+ #: wpc-smart-wishlist.php:968
438
+ msgid "Choose a page"
439
+ msgstr ""
440
+
441
+ #: wpc-smart-wishlist.php:971
442
+ msgid "Add shortcode %s to display the wishlist on a page."
443
+ msgstr ""
444
+
445
+ #: wpc-smart-wishlist.php:975
446
+ msgid "Share buttons"
447
+ msgstr ""
448
+
449
+ #: wpc-smart-wishlist.php:987
450
+ msgid "Enable share buttons on the wishlist page?"
451
+ msgstr ""
452
+
453
+ #: wpc-smart-wishlist.php:991
454
+ msgid "Use font icon"
455
+ msgstr ""
456
+
457
+ #: wpc-smart-wishlist.php:1006
458
+ msgid "Social links"
459
+ msgstr ""
460
+
461
+ #: wpc-smart-wishlist.php:1032
462
+ msgid "Copy link"
463
+ msgstr ""
464
+
465
+ #: wpc-smart-wishlist.php:1044
466
+ msgid "Enable copy wishlist link to share?"
467
+ msgstr ""
468
+
469
+ #: wpc-smart-wishlist.php:1049
470
+ msgid "Menu"
471
+ msgstr ""
472
+
473
+ #: wpc-smart-wishlist.php:1052
474
+ msgid "Settings for the wishlist menu item."
475
+ msgstr ""
476
+
477
+ #: wpc-smart-wishlist.php:1056
478
+ msgid "Menu(s)"
479
+ msgstr ""
480
+
481
+ #: wpc-smart-wishlist.php:1070
482
+ msgid "Choose the menu(s) you want to add the \"wishlist menu\" at the end."
483
+ msgstr ""
484
+
485
+ #: wpc-smart-wishlist.php:1079
486
+ msgid "Open page"
487
+ msgstr ""
488
+
489
+ #: wpc-smart-wishlist.php:1083
490
+ msgid "Open popup"
491
+ msgstr ""
492
+
493
+ #: wpc-smart-wishlist.php:1086
494
+ msgid "Action when clicking on the \"wishlist menu\"."
495
+ msgstr ""
496
+
497
+ #: wpc-smart-wishlist.php:1092
498
+ #: wpc-smart-wishlist.php:1364
499
+ msgid "Update Options"
500
+ msgstr ""
501
+
502
+ #: wpc-smart-wishlist.php:1107
503
+ msgid "Leave blank to use the default text and its equivalent translation in multiple languages."
504
+ msgstr ""
505
+
506
+ #: wpc-smart-wishlist.php:1111
507
+ msgid "Button text"
508
+ msgstr ""
509
+
510
+ #: wpc-smart-wishlist.php:1120
511
+ msgid "Button text (added)"
512
+ msgstr ""
513
+
514
+ #: wpc-smart-wishlist.php:1129
515
+ msgid "Wishlist popup heading"
516
+ msgstr ""
517
+
518
+ #: wpc-smart-wishlist.php:1134
519
+ #: wpc-smart-wishlist.php:1188
520
+ #: wpc-smart-wishlist.php:1201
521
+ #: wpc-smart-wishlist.php:1423
522
+ #: wpc-smart-wishlist.php:1604
523
+ #: wpc-smart-wishlist.php:1630
524
+ #: wpc-smart-wishlist.php:1830
525
+ #: wpc-smart-wishlist.php:1911
526
+ #: wpc-smart-wishlist.php:1918
527
+ #: wpc-smart-wishlist.php:2082
528
+ msgid "Wishlist"
529
+ msgstr ""
530
+
531
+ #: wpc-smart-wishlist.php:1143
532
+ #: wpc-smart-wishlist.php:1643
533
+ msgid "remove all"
534
+ msgstr ""
535
+
536
+ #: wpc-smart-wishlist.php:1147
537
+ #: wpc-smart-wishlist.php:1152
538
+ msgid "Add note"
539
+ msgstr ""
540
+
541
+ #: wpc-smart-wishlist.php:1156
542
+ msgid "Save note"
543
+ msgstr ""
544
+
545
+ #: wpc-smart-wishlist.php:1161
546
+ msgid "Save"
547
+ msgstr ""
548
+
549
+ #: wpc-smart-wishlist.php:1174
550
+ #: wpc-smart-wishlist.php:1179
551
+ #: wpc-smart-wishlist.php:1663
552
+ msgid "Continue shopping"
553
+ msgstr ""
554
+
555
+ #: wpc-smart-wishlist.php:1183
556
+ msgid "Menu item label"
557
+ msgstr ""
558
+
559
+ #: wpc-smart-wishlist.php:1196
560
+ msgid "Primary wishlist name"
561
+ msgstr ""
562
+
563
+ #: wpc-smart-wishlist.php:1205
564
+ #: wpc-smart-wishlist.php:1210
565
+ msgid "Manage wishlists"
566
+ msgstr ""
567
+
568
+ #: wpc-smart-wishlist.php:1214
569
+ msgid "Set default"
570
+ msgstr ""
571
+
572
+ #: wpc-smart-wishlist.php:1219
573
+ msgid "set default"
574
+ msgstr ""
575
+
576
+ #: wpc-smart-wishlist.php:1223
577
+ msgid "Default"
578
+ msgstr ""
579
+
580
+ #: wpc-smart-wishlist.php:1228
581
+ msgid "default"
582
+ msgstr ""
583
+
584
+ #: wpc-smart-wishlist.php:1232
585
+ msgid "Delete"
586
+ msgstr ""
587
+
588
+ #: wpc-smart-wishlist.php:1237
589
+ msgid "delete"
590
+ msgstr ""
591
+
592
+ #: wpc-smart-wishlist.php:1241
593
+ msgid "Wishlist name placeholder"
594
+ msgstr ""
595
+
596
+ #: wpc-smart-wishlist.php:1246
597
+ msgid "New Wishlist"
598
+ msgstr ""
599
+
600
+ #: wpc-smart-wishlist.php:1250
601
+ msgid "Add new wishlist"
602
+ msgstr ""
603
+
604
+ #: wpc-smart-wishlist.php:1255
605
+ msgid "Add New Wishlist"
606
+ msgstr ""
607
+
608
+ #: wpc-smart-wishlist.php:1259
609
+ msgid "Message"
610
+ msgstr ""
611
+
612
+ #: wpc-smart-wishlist.php:1263
613
+ msgid "Added to the wishlist"
614
+ msgstr ""
615
+
616
+ #: wpc-smart-wishlist.php:1272
617
+ msgid "Already in the wishlist"
618
+ msgstr ""
619
+
620
+ #: wpc-smart-wishlist.php:1281
621
+ msgid "Removed from wishlist"
622
+ msgstr ""
623
+
624
+ #: wpc-smart-wishlist.php:1290
625
+ msgid "Empty wishlist confirm"
626
+ msgstr ""
627
+
628
+ #: wpc-smart-wishlist.php:1295
629
+ #: wpc-smart-wishlist.php:1322
630
+ #: wpc-smart-wishlist.php:1420
631
+ #: wpc-smart-wishlist.php:1421
632
+ msgid "This action cannot be undone. Are you sure?"
633
+ msgstr ""
634
+
635
+ #: wpc-smart-wishlist.php:1299
636
+ msgid "Empty wishlist notice"
637
+ msgstr ""
638
+
639
+ #: wpc-smart-wishlist.php:1308
640
+ msgid "Empty wishlist"
641
+ msgstr ""
642
+
643
+ #: wpc-smart-wishlist.php:1317
644
+ msgid "Delete wishlist confirm"
645
+ msgstr ""
646
+
647
+ #: wpc-smart-wishlist.php:1326
648
+ msgid "Product does not exist"
649
+ msgstr ""
650
+
651
+ #: wpc-smart-wishlist.php:1335
652
+ msgid "Need to login"
653
+ msgstr ""
654
+
655
+ #: wpc-smart-wishlist.php:1344
656
+ msgid "Copied wishlist link"
657
+ msgstr ""
658
+
659
+ #: wpc-smart-wishlist.php:1349
660
+ #: wpc-smart-wishlist.php:1422
661
+ msgid "Copied the wishlist link:"
662
+ msgstr ""
663
+
664
+ #: wpc-smart-wishlist.php:1353
665
+ msgid "Have an error"
666
+ msgstr ""
667
+
668
+ #: wpc-smart-wishlist.php:1465
669
+ msgid "Community support"
670
+ msgstr ""
671
+
672
+ #: wpc-smart-wishlist.php:1542
673
+ msgid "In stock"
674
+ msgstr ""
675
+
676
+ #: wpc-smart-wishlist.php:1542
677
+ msgid "Out of stock"
678
+ msgstr ""
679
+
680
+ #: wpc-smart-wishlist.php:1963
681
+ #: wpc-smart-wishlist.php:1966
682
+ #: wpc-smart-wishlist.php:2030
683
+ #: wpc-smart-wishlist.php:2033
684
+ msgid "%s product"
685
+ msgid_plural "%s products"
686
+ msgstr[0] ""
687
+ msgstr[1] ""
688
+
689
+ #: wpc-smart-wishlist.php:1965
690
+ #: wpc-smart-wishlist.php:2032
691
+ msgid "Guest"
692
+ msgstr ""
693
+
694
+ #: wpc-smart-wishlist.php:1980
695
+ #: wpc-smart-wishlist.php:2009
696
+ msgid "Edit"
697
+ msgstr ""
698
+
699
+ #: wpc-smart-wishlist.php:1980
700
+ msgid "See in wishlist"
701
+ msgstr ""
702
+
703
+ #: wpc-smart-wishlist.php:1988
704
+ msgid "Empty Wishlist"
705
+ msgstr ""
readme.txt ADDED
@@ -0,0 +1,440 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === WPC Smart Wishlist for WooCommerce ===
2
+ Contributors: wpclever
3
+ Donate link: https://wpclever.net
4
+ Tags: woocommerce, woo, wpc, smart, wishlist, wish list
5
+ Requires at least: 4.0
6
+ Tested up to: 5.9
7
+ Stable tag: 3.0.0
8
+ License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
+
11
+ WPC Smart Wishlist is a simple but powerful tool that can help your customer save products for buying later.
12
+
13
+ == Description ==
14
+
15
+ **WPC Smart Wishlist** is a powerful yet intuitive plugin for helping your customers manage their to-buy list and save favorite items for later purchase. This helps the purchase flow on your site become more fluent and convenient while saving quite a great amount of time on searching for products and adding them to cart for buyers.
16
+
17
+ = Live demo =
18
+
19
+ Visit our [live demo](https://demo.wpclever.net/woosw/ "live demo") here to see how this plugin works.
20
+
21
+ = Features =
22
+
23
+ - Control the use of wishlist for unauthenticated users
24
+ - Smart display of product details: title, price, date of adding, stock status, product image preview, wishlist item count
25
+ - Easy purchase flow from adding, removing, checking out or closing the wishlist
26
+ - Enable/disable Auto-removal of products after adding to the cart
27
+ - Choose a page as the wishlist page
28
+ - Use the provided shortcode to display the wishlist on selected page
29
+ - Enable/disable wishlist sharing button
30
+ - Enable/disable copying of wishlist links for sharing
31
+ - Choose a wishlist type: button or link
32
+ - Edit the text for the wishlist button
33
+ - Choose an action triggered by wishlist button: display a message or open the product list
34
+ - Edit the text and action triggered after adding an item to the wishlist
35
+ - Add extra classes for action button/link
36
+ - Customize the position of wishlist button on archive and single page
37
+ - Choose categories that allow wishlist button
38
+ - Unlimited colors for wishlist popup
39
+ - Edit the destination link for the Continue Shopping button
40
+ - Choose a menu to add the wishlist menu
41
+ - Choose an action triggered by the wishlist menu
42
+ - RTL support
43
+ - Premium: Enable multiple wishlists per user
44
+ - Premium: Add note for each product
45
+ - Premium: Lifetime update and dedicated support
46
+ - Premium: Customization to match with your theme/site design
47
+
48
+ Newly added feature for management: It's now possible to see all wishlists that a product was included in and check out all wishlists created by a user.
49
+
50
+ = The Importance of Adding a Wishlist button =
51
+ Many store owners miss the opportunities for selling items for their current customers because they’re not offering Add to Wishlist button on their shop or single product page. On many occasions, buyers need time to rethink their needs and allowing them to add products to wishlist increase the possibility for buyers to purchase these items in the future. As it is truly convenient and speedy to add, remove, proceed to check out or continue shopping, buyers will find the whole purchase flow an enjoyable process. Thus, this improves the shopping experience for your customers. In addition, enabling Add to Wishlist button is helpful for buyers to save an Out-of-Stock product for purchasing when it is restocked at a later time. Shop owners can control the wishlist availability by enabling it for authenticated users only, hence, encourage more membership engagement from visitors. Never miss any chance to strengthen the bond with your customers with an Add to Wishlist button on every product page and shop page of your site.
52
+
53
+ = Product Details at a Glance =
54
+ The wishlist items are displayed in great detail so that buyers don’t need to browse the single product page for more information when the title, price, stock status, thumbnail image and date of adding to the wishlist are smartly arranged in the wishlist page or wishlist popup. Buyers can also see a counter showing how many items have been added to their wishlist: a notification for urging them to checkout or to manage the list by removing unwanted items. By keeping your customers on your site, store owners can increase the conversion rate when buyers revise the list and find something useful that they might have missed or forgotten to purchase before. Controlling the wishlist is intuitive because there is a button to remove any item from the list. Users take full control of actions triggered by the wishlist button when an item is already added to the list.
55
+
56
+ = Ultra-speedy Performance =
57
+ There’s nearly zero delay speed for this Smart Wishlist plugin when visitors perform any kind of actions: item addition or removal, closing the wishlist popup or open the wishlist page, it all happens immediately with precision. Wishlist popup also allows an overlay effect that keeps the popup opens while visitors can still scroll the background page until the Continue Shopping button or Close button is pressed. Our plugin is compatible with all WPClever plugins, most common WooCommerce add-ons and WordPress themes, so the flexibility is really high with smooth performance for your website. Smart Wishlist can work in similar ways with any product bundles, composite deals, bought together offers, grouped or force-sell products made with our plugins.
58
+
59
+ = Fully Customizable Wishlist =
60
+ It is possible for users to fully customize the WPC Smart Wishlist plugin to their preferences regarding the appearance, actions and links, type of wishlist, position of wishlist on different pages and even the text displayed for visitors. Premium users are able to add a Wishlist button to any menu that they want: handheld, primary, or secondary menu and customize the action triggered on these menus as well. They can even request the customization of wishlist to match the design scheme of their website for free.
61
+
62
+ = Great Flow for Advertising Your Products =
63
+ If you think that the purchase flow ends with the checkout of your customers, then you are just closing your own door to further advertise your products to other potential clients. WPC Smart Wishlist allows users to take advantage of networking by enabling wishlist sharing via social networks or copying product links to share to other customers. Great products will see a higher conversion rate and better traffic when they are easily shared via social networks. This keeps the flow on and on for new clients and draw more attention to the most widely favored products in your store. With the increase in UX flow on your site, the sales will definitely go up accordingly. This is all up to your intentional arrangement of wishlist buttons.
64
+
65
+ = Translators =
66
+
67
+ Available languages: English (Default), Russian, Italian, Persian
68
+
69
+ If you have created your own language pack, or have an update for an existing one, you can send [gettext PO and MO file](http://codex.wordpress.org/Translating_WordPress "Translating WordPress") to [us](https://wpclever.net/contact?utm_source=pot&utm_medium=woosw&utm_campaign=wporg "WPClever.net") so we can bundle it into WPC Smart Wishlist.
70
+
71
+ = Need more features? =
72
+
73
+ Please try other plugins from us:
74
+
75
+ - [WPC Smart Compare](https://wordpress.org/plugins/woo-smart-compare/ "WPC Smart Compare")
76
+ - [WPC Smart Quick View](https://wordpress.org/plugins/woo-smart-quick-view/ "WPC Smart Quick View")
77
+ - [WPC Fly Cart](https://wordpress.org/plugins/woo-fly-cart/ "WPC Fly Cart")
78
+
79
+ = Need support? =
80
+
81
+ Visit [plugin documentation website](https://wpclever.net?utm_source=doc&utm_medium=woosw&utm_campaign=wporg "plugin documentation").
82
+
83
+ == Installation ==
84
+
85
+ 1. Please make sure that you installed WooCommerce
86
+ 2. Go to plugins in your dashboard and select "Add New"
87
+ 3. Search for "WPC Smart Wishlist", Install & Activate it
88
+ 4. Go to settings page to choose position and effect as you want
89
+
90
+ == Frequently Asked Questions ==
91
+
92
+ = How to integrate with my theme? =
93
+
94
+ To integrate with a theme, please use bellow filter to hide the default buttons.
95
+
96
+ `add_filter( 'woosw_button_position_archive', '__return_false' );
97
+ add_filter( 'woosw_button_position_single', '__return_false' );`
98
+
99
+ After that, use the shortcode to display the button where you want.
100
+
101
+ `echo do_shortcode('[woosw id="{product_id}"]');`
102
+
103
+ Example:
104
+
105
+ `echo do_shortcode('[woosw id="99"]');`
106
+
107
+ == Changelog ==
108
+
109
+ = 3.0.0 =
110
+ * Added: Multiple wishlist (Premium Version)
111
+ * Updated: Optimized the code
112
+
113
+ = 2.9.9 =
114
+ * Fixed: Minor security issues
115
+
116
+ = 2.9.8 =
117
+ * Added: Add to wishlist endpoint /add-to-wishlist={product_id}
118
+
119
+ = 2.9.7 =
120
+ * Updated: Filter hook 'woosw_button_html'
121
+
122
+ = 2.9.6 =
123
+ * Updated: Optimized the code
124
+
125
+ = 2.9.5 =
126
+ * Added: Filter hook 'woosw_button_positions_archive', 'woosw_button_positions_single'
127
+
128
+ = 2.9.4 =
129
+ * Fixed: Security issue
130
+
131
+ = 2.9.3 =
132
+ * Fixed: Change the button for variable product
133
+
134
+ = 2.9.2 =
135
+ * Updated: Optimized the code
136
+
137
+ = 2.9.1 =
138
+ * Updated: Settings page
139
+
140
+ = 2.9.0 =
141
+ * Updated: Optimized the code
142
+
143
+ = 2.8.9 =
144
+ * Fixed: Minor JS/CSS issue
145
+
146
+ = 2.8.8 =
147
+ * Added: Action hooks 'woosw_before_items', 'woosw_after_items'
148
+
149
+ = 2.8.7 =
150
+ * Added: Option to enable/disable perfect-scrollbar
151
+ * Added: Remove all products button
152
+ * Updated: Optimized the code
153
+
154
+ = 2.8.6 =
155
+ * Added: Filter hook 'woosw_menu_item_class', 'woosw_menu_item'
156
+
157
+ = 2.8.5 =
158
+ * Added: Filter hook 'woosw_item_name', 'woosw_item_price', 'woosw_item_time'
159
+
160
+ = 2.8.4 =
161
+ * Updated: Optimized the code
162
+
163
+ = 2.8.3 =
164
+ * Added: Localization tab
165
+ * Fixed: Minor JS issue
166
+
167
+ = 2.8.2 =
168
+ * Added: Filter hook 'woosw_menu_item_label'
169
+
170
+ = 2.8.1 =
171
+ Fixed: Add to cart button on wishlist
172
+
173
+ = 2.8.0 =
174
+ * Updated: Compatible with WordPress 5.8 & WooCommerce 5.5.1
175
+
176
+ = 2.7.5 =
177
+ * Fixed: Style error for calendar picker when plugin active
178
+
179
+ = 2.7.4 =
180
+ * Fixed: Error with already logged in user at the first time install and activate plugin
181
+
182
+ = 2.7.3 =
183
+ * Fixed: Disable position selector when having the filter
184
+
185
+ = 2.7.2 =
186
+ * Updated: Compatible with WordPress 5.7.2 & WooCommerce 5.4.1
187
+
188
+ = 2.7.1 =
189
+ * Updated: Compatible WooCommerce 5.4
190
+
191
+ = 2.7.0 =
192
+ * Fixed: Compatible with SG Optimizer
193
+ * Fixed: Return the previous guest wishlist after logout
194
+
195
+ = 2.6.4 =
196
+ * Fixed: Filter 'woosw_button_position_archive' & 'woosw_button_position_single' doesn't work
197
+
198
+ = 2.6.3 =
199
+ * Updated: Optimized the code
200
+
201
+ = 2.6.2 =
202
+ * Fixed: Wishlist menu item
203
+
204
+ = 2.6.1 =
205
+ * Updated: Unlock wishlist menu item for free version
206
+ * Fixed: Some minor CSS issues
207
+
208
+ = 2.6.0 =
209
+ * Added: Action and filter hooks: woosw_wishlist_items_before, woosw_wishlist_item_before, woosw_wishlist_item_image, woosw_wishlist_item_info, woosw_wishlist_item_actions, woosw_wishlist_item_after, woosw_wishlist_items_after
210
+
211
+ = 2.5.3 =
212
+ * Fixed: Warning on the users page
213
+
214
+ = 2.5.2 =
215
+ * Added: Enable/disable link to individual product
216
+ * Updated: Optimized the code
217
+
218
+ = 2.5.1 =
219
+ * Updated: Optimized the code
220
+
221
+ = 2.5.0 =
222
+ * Updated: Optimized the code
223
+
224
+ = 2.4.0 =
225
+ * Added: View all wishlists contain a product on Products page
226
+ * Added: View wishlist of an user on Users page
227
+
228
+ = 2.3.4 =
229
+ * Updated: Compatible with WordPress 5.7.0 & WooCommerce 5.0.0
230
+
231
+ = 2.3.3 =
232
+ * Added: RTL support
233
+
234
+ = 2.3.2 =
235
+ * Updated: Optimized the code
236
+
237
+ = 2.3.1 =
238
+ * Fixed: The update checker URL
239
+
240
+ = 2.3.0 =
241
+ * Updated: Compatible with WordPress 5.6.0 & WooCommerce 4.8.0
242
+
243
+ = 2.2.6 =
244
+ * Updated: Compatible with WooCommerce 4.7.0
245
+
246
+ = 2.2.5 =
247
+ * Fixed: Some minor CSS & JS issues
248
+
249
+ = 2.2.4 =
250
+ * Added: Persian (Thanks to Amini Ali)
251
+ * Updated: Compatible with WooCommerce 4.6.1
252
+
253
+ = 2.2.3 =
254
+ * Fixed: data-pid or data-product_id for element on Elementor
255
+
256
+ = 2.2.2 =
257
+ * Fixed: Some minor CSS & JS issues
258
+
259
+ = 2.2.1 =
260
+ * Updated: Optimized the code
261
+
262
+ = 2.2.0 =
263
+ * Updated: Compatible with WordPress 5.5 & WooCommerce 4.3.3
264
+
265
+ = 2.1.2 =
266
+ * Added: New action "Add to wishlist solely" for the button
267
+
268
+ = 2.1.1 =
269
+ * Updated: Compatible with WooCommerce 4.3.0
270
+ * Updated: Optimized the code
271
+
272
+ = 2.1.0 =
273
+ * Updated: Compatible with WordPress 5.4.2 & WooCommerce 4.2.0
274
+
275
+ = 2.0.3 =
276
+ * Updated: Optimized the code
277
+
278
+ = 2.0.2 =
279
+ * Updated: Compatible with WordPress 5.4 & WooCommerce 4.0.1
280
+
281
+ = 2.0.1 =
282
+ * Updated: Optimized the code
283
+
284
+ = 2.0.0 =
285
+ * Updated: Compatible with WooCommerce 4.0.0
286
+
287
+ = 1.5.7 =
288
+ * Updated: Optimized the code
289
+
290
+ = 1.5.6 =
291
+ * Updated: Compatible with WordPress 5.3.2 & WooCommerce 3.9.2
292
+
293
+ = 1.5.5 =
294
+ * Updated: Optimized the code
295
+
296
+ = 1.5.4 =
297
+ * Updated: Optimized the code
298
+
299
+ = 1.5.3 =
300
+ * Added: Product column to show how many times it was added to the wishlist
301
+ * Updated: Optimized the code
302
+
303
+ = 1.5.2 =
304
+ * Updated: Compatible with WordPress 5.3 & WooCommerce 3.8.x
305
+
306
+ = 1.5.1 =
307
+ * Updated: Optimized the code
308
+
309
+ = 1.5.0 =
310
+ * Fixed: Some minor issues
311
+
312
+ = 1.4.9 =
313
+ * Fixed: Copy wishlist link on iOS devices
314
+
315
+ = 1.4.8 =
316
+ * Added: Translation from Tusko Trush
317
+ * Fixed: Duplicate wishlist page
318
+
319
+ = 1.4.7 =
320
+ * Updated: Optimized the code
321
+
322
+ = 1.4.6 =
323
+ * Fixed: Button type don't change
324
+
325
+ = 1.4.5 =
326
+ * Added: Filter for button html 'woosw_button_html'
327
+ * Updated: Optimized the code
328
+
329
+ = 1.4.4 =
330
+ * Updated: Compatible with WooCommerce 3.6.x
331
+
332
+ = 1.4.3 =
333
+ * Added: Action when clicking on the added button: open wishlist popup or wishlist page
334
+ * Added: Auto close for the message popup
335
+ * Updated: Optimized the code
336
+
337
+ = 1.4.2 =
338
+ * Fixed: PHP warning
339
+
340
+ = 1.4.1 =
341
+ * Added: Only show the Wishlist button for products in selected categories
342
+ * Fixed: Button text can be translated
343
+
344
+ = 1.4.0 =
345
+ * Added: Copy URL to clipboard on the Wishlist page
346
+
347
+ = 1.3.9 =
348
+ * Added: Custom URL for Continue shopping button
349
+ * Updated: Compatible with WooCommerce 3.5.4 & WordPress 5.0.3
350
+
351
+ = 1.3.8 =
352
+ * Updated: Compatible with WooCommerce 3.5.3 & WordPress 5.0.2
353
+
354
+ = 1.3.7 =
355
+ * Updated: Change JS event touchstart to touch
356
+ * Updated: Optimized the code
357
+
358
+ = 1.3.6 =
359
+ * Fixed: Error when removing the last item
360
+ * Added: Filter for Wishlist URL & count
361
+
362
+ = 1.3.5 =
363
+ * Updated: Change default popup type to products list
364
+ * Updated: Compatible with WooCommerce 3.5.1
365
+
366
+ = 1.3.4 =
367
+ * Added: Just show message when adding to Wishlist
368
+ * Updated: Optimized the code
369
+
370
+ = 1.3.3 =
371
+ * Updated: Compatible with WooCommerce 3.5.0
372
+
373
+ = 1.3.2 =
374
+ * Updated: Optimize the code to reduce the loading time
375
+
376
+ = 1.3.1 =
377
+ * Fixed: Error when loading backend.css
378
+
379
+ = 1.3.0 =
380
+ * Added: Option to remove product after adding to cart
381
+ * Fixed: Error when remove the last item on the Wishlist
382
+
383
+ = 1.2.5 =
384
+ * Fixed: Error when WooCommerce is not active
385
+
386
+ = 1.2.4 =
387
+ * Fixed: JS trigger
388
+ * Updated: Compatible with WooCommerce 3.4.5
389
+
390
+ = 1.2.3 =
391
+ * Updated: Settings page style
392
+
393
+ = 1.2.2 =
394
+ * Added option to change the color
395
+ * Compatible with WooCommerce 3.4.2
396
+
397
+ = 1.2.1 =
398
+ * Add JS trigger when show/hide or changing the count
399
+
400
+ = 1.2.0 =
401
+ * Optimized the code
402
+
403
+ = 1.1.6 =
404
+ * Fix some minor CSS issues
405
+
406
+ = 1.1.5 =
407
+ * Fix the PHP notice
408
+
409
+ = 1.1.4 =
410
+ * Compatible with WooCommerce 3.3.5
411
+
412
+ = 1.1.3 =
413
+ * Compatible with WordPress 4.9.5
414
+
415
+ = 1.1.2 =
416
+ * Added: Button text for "added" state
417
+ * Added: WPML integration
418
+ * Fixed: Fix the height of popup to prevent blur
419
+
420
+ = 1.1.1 =
421
+ * Compatible with WordPress 4.9.4
422
+ * Compatible with WooCommerce 3.3.1
423
+
424
+ = 1.1.0 =
425
+ * Added: Auto create the Wishlist page with shortcode
426
+
427
+ = 1.0.4 =
428
+ * Fix share URLs
429
+
430
+ = 1.0.3 =
431
+ * Add share buttons on wishlist page
432
+
433
+ = 1.0.2 =
434
+ * Update wishlist page
435
+
436
+ = 1.0.1 =
437
+ * Update CSS
438
+
439
+ = 1.0 =
440
+ * Released
wpc-smart-wishlist.php ADDED
@@ -0,0 +1,2113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Plugin Name: WPC Smart Wishlist for WooCommerce
4
+ Plugin URI: https://wpclever.net/
5
+ Description: WPC Smart Wishlist is a simple but powerful tool that can help your customer save products for buy later.
6
+ Version: 3.0.0
7
+ Author: WPClever
8
+ Author URI: https://wpclever.net
9
+ Text Domain: woo-smart-wishlist
10
+ Domain Path: /languages/
11
+ Requires at least: 4.0
12
+ Tested up to: 5.9
13
+ WC requires at least: 3.0
14
+ WC tested up to: 6.4
15
+ */
16
+
17
+ defined( 'ABSPATH' ) || exit;
18
+
19
+ ! defined( 'WOOSW_VERSION' ) && define( 'WOOSW_VERSION', '3.0.0' );
20
+ ! defined( 'WOOSW_URI' ) && define( 'WOOSW_URI', plugin_dir_url( __FILE__ ) );
21
+ ! defined( 'WOOSW_REVIEWS' ) && define( 'WOOSW_REVIEWS', 'https://wordpress.org/support/plugin/woo-smart-wishlist/reviews/?filter=5' );
22
+ ! defined( 'WOOSW_CHANGELOG' ) && define( 'WOOSW_CHANGELOG', 'https://wordpress.org/plugins/woo-smart-wishlist/#developers' );
23
+ ! defined( 'WOOSW_DISCUSSION' ) && define( 'WOOSW_DISCUSSION', 'https://wordpress.org/support/plugin/woo-smart-wishlist' );
24
+ ! defined( 'WPC_URI' ) && define( 'WPC_URI', WOOSW_URI );
25
+
26
+ include 'includes/wpc-dashboard.php';
27
+ include 'includes/wpc-menu.php';
28
+ include 'includes/wpc-kit.php';
29
+ include 'includes/wpc-notice.php';
30
+
31
+ // plugin activate
32
+ register_activation_hook( __FILE__, 'woosw_plugin_activate' );
33
+
34
+ // plugin init
35
+ if ( ! function_exists( 'woosw_init' ) ) {
36
+ add_action( 'plugins_loaded', 'woosw_init', 11 );
37
+
38
+ function woosw_init() {
39
+ // load text-domain
40
+ load_plugin_textdomain( 'woo-smart-wishlist', false, basename( __DIR__ ) . '/languages/' );
41
+
42
+ if ( ! function_exists( 'WC' ) || ! version_compare( WC()->version, '3.0', '>=' ) ) {
43
+ add_action( 'admin_notices', 'woosw_notice_wc' );
44
+
45
+ return;
46
+ }
47
+
48
+ if ( ! class_exists( 'WPCleverWoosw' ) ) {
49
+ class WPCleverWoosw {
50
+ protected static $added_products = array();
51
+ protected static $localization = array();
52
+
53
+ function __construct() {
54
+ // add query var
55
+ add_filter( 'query_vars', array( $this, 'query_vars' ), 1 );
56
+
57
+ add_action( 'init', array( $this, 'init' ) );
58
+
59
+ // menu
60
+ add_action( 'admin_menu', array( $this, 'admin_menu' ) );
61
+
62
+ // frontend scripts
63
+ add_action( 'wp_enqueue_scripts', array( $this, 'wp_enqueue_scripts' ) );
64
+
65
+ // backend scripts
66
+ add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
67
+
68
+ // quickview
69
+ add_action( 'wp_ajax_wishlist_quickview', array( $this, 'wishlist_quickview' ) );
70
+
71
+ // add
72
+ add_action( 'wp_ajax_wishlist_add', array( $this, 'wishlist_add' ) );
73
+ add_action( 'wp_ajax_nopriv_wishlist_add', array( $this, 'wishlist_add' ) );
74
+
75
+ // add to wishlist
76
+ add_action( 'template_redirect', array( $this, 'wishlist_add_by_link' ) );
77
+
78
+ // added to cart
79
+ if ( get_option( 'woosw_auto_remove', 'no' ) === 'yes' ) {
80
+ add_action( 'woocommerce_add_to_cart', array( $this, 'add_to_cart' ), 10, 2 );
81
+ }
82
+
83
+ // remove
84
+ add_action( 'wp_ajax_wishlist_remove', array( $this, 'wishlist_remove' ) );
85
+ add_action( 'wp_ajax_nopriv_wishlist_remove', array( $this, 'wishlist_remove' ) );
86
+
87
+ // empty
88
+ add_action( 'wp_ajax_wishlist_empty', array( $this, 'wishlist_empty' ) );
89
+ add_action( 'wp_ajax_nopriv_wishlist_empty', array( $this, 'wishlist_empty' ) );
90
+
91
+ // load
92
+ add_action( 'wp_ajax_wishlist_load', array( $this, 'wishlist_load' ) );
93
+ add_action( 'wp_ajax_nopriv_wishlist_load', array( $this, 'wishlist_load' ) );
94
+
95
+ // load count
96
+ add_action( 'wp_ajax_wishlist_load_count', array( $this, 'wishlist_load_count' ) );
97
+ add_action( 'wp_ajax_nopriv_wishlist_load_count', array( $this, 'wishlist_load_count' ) );
98
+
99
+ // link
100
+ add_filter( 'plugin_action_links', array( $this, 'action_links' ), 10, 2 );
101
+ add_filter( 'plugin_row_meta', array( $this, 'row_meta' ), 10, 2 );
102
+
103
+ // menu items
104
+ add_filter( 'wp_nav_menu_items', array( $this, 'woosw_nav_menu_items' ), 99, 2 );
105
+
106
+ // footer
107
+ add_action( 'wp_footer', array( $this, 'wp_footer' ) );
108
+
109
+ // product columns
110
+ add_filter( 'manage_edit-product_columns', array( $this, 'woosw_product_columns' ), 10 );
111
+ add_action( 'manage_product_posts_custom_column', array(
112
+ $this,
113
+ 'woosw_product_posts_custom_column'
114
+ ), 10, 2 );
115
+ add_filter( 'manage_edit-product_sortable_columns', array(
116
+ $this,
117
+ 'woosw_product_sortable_columns'
118
+ ) );
119
+ add_filter( 'request', array( $this, 'woosw_product_request' ) );
120
+
121
+ // post states
122
+ add_filter( 'display_post_states', array( $this, 'woosw_display_post_states' ), 10, 2 );
123
+
124
+ // user login & logout
125
+ add_action( 'wp_login', array( $this, 'woosw_wp_login' ), 10, 2 );
126
+ add_action( 'wp_logout', array( $this, 'woosw_wp_logout' ), 10, 1 );
127
+
128
+ // user columns
129
+ add_filter( 'manage_users_columns', array( $this, 'woosw_user_table' ) );
130
+ add_filter( 'manage_users_custom_column', array( $this, 'woosw_user_table_row' ), 10, 3 );
131
+
132
+ // dropdown multiple
133
+ add_filter( 'wp_dropdown_cats', array( $this, 'dropdown_cats_multiple' ), 10, 2 );
134
+ }
135
+
136
+ function query_vars( $vars ) {
137
+ $vars[] = 'woosw_id';
138
+
139
+ return $vars;
140
+ }
141
+
142
+ function init() {
143
+ // localization
144
+ self::$localization = (array) get_option( 'woosw_localization' );
145
+
146
+ // added products
147
+ $key = isset( $_COOKIE['woosw_key'] ) ? $_COOKIE['woosw_key'] : '#';
148
+
149
+ if ( get_option( 'woosw_list_' . $key ) ) {
150
+ self::$added_products = get_option( 'woosw_list_' . $key );
151
+ }
152
+
153
+ // rewrite
154
+ if ( $page_id = self::get_page_id() ) {
155
+ $page_slug = get_post_field( 'post_name', $page_id );
156
+
157
+ if ( $page_slug !== '' ) {
158
+ add_rewrite_rule( '^' . $page_slug . '/([\w]+)/?', 'index.php?page_id=' . $page_id . '&woosw_id=$matches[1]', 'top' );
159
+ }
160
+ }
161
+
162
+ // shortcode
163
+ add_shortcode( 'woosw', array( $this, 'shortcode' ) );
164
+ add_shortcode( 'woosw_list', array( $this, 'list_shortcode' ) );
165
+
166
+ // add button for archive
167
+ $button_position_archive = apply_filters( 'woosw_button_position_archive', get_option( 'woosw_button_position_archive', apply_filters( 'woosw_button_position_archive_default', 'after_add_to_cart' ) ) );
168
+
169
+ if ( ! empty( $button_position_archive ) ) {
170
+ switch ( $button_position_archive ) {
171
+ case 'after_title':
172
+ add_action( 'woocommerce_shop_loop_item_title', array( $this, 'add_button' ), 11 );
173
+ break;
174
+ case 'after_rating':
175
+ add_action( 'woocommerce_after_shop_loop_item_title', array( $this, 'add_button' ), 6 );
176
+ break;
177
+ case 'after_price':
178
+ add_action( 'woocommerce_after_shop_loop_item_title', array(
179
+ $this,
180
+ 'add_button'
181
+ ), 11 );
182
+ break;
183
+ case 'before_add_to_cart':
184
+ add_action( 'woocommerce_after_shop_loop_item', array( $this, 'add_button' ), 9 );
185
+ break;
186
+ case 'after_add_to_cart':
187
+ add_action( 'woocommerce_after_shop_loop_item', array( $this, 'add_button' ), 11 );
188
+ break;
189
+ default:
190
+ add_action( 'woosw_button_position_archive_' . $button_position_archive, array(
191
+ $this,
192
+ 'add_button'
193
+ ) );
194
+ }
195
+ }
196
+
197
+ // add button for single
198
+ $button_position_single = apply_filters( 'woosw_button_position_single', get_option( 'woosw_button_position_single', apply_filters( 'woosw_button_position_single_default', '31' ) ) );
199
+
200
+ if ( ! empty( $button_position_single ) ) {
201
+ if ( is_numeric( $button_position_single ) ) {
202
+ add_action( 'woocommerce_single_product_summary', array(
203
+ $this,
204
+ 'add_button'
205
+ ), (int) $button_position_single );
206
+ } else {
207
+ add_action( 'woosw_button_position_single_' . $button_position_single, array(
208
+ $this,
209
+ 'add_button'
210
+ ) );
211
+ }
212
+ }
213
+ }
214
+
215
+ function localization( $key = '', $default = '' ) {
216
+ $str = '';
217
+
218
+ if ( ! empty( $key ) && ! empty( self::$localization[ $key ] ) ) {
219
+ $str = self::$localization[ $key ];
220
+ } elseif ( ! empty( $default ) ) {
221
+ $str = $default;
222
+ }
223
+
224
+ return apply_filters( 'woosw_localization_' . $key, $str );
225
+ }
226
+
227
+ function add_to_cart( $cart_item_key, $product_id ) {
228
+ $key = self::get_key();
229
+
230
+ if ( $key !== '#' ) {
231
+ $products = array();
232
+
233
+ if ( get_option( 'woosw_list_' . $key ) ) {
234
+ $products = get_option( 'woosw_list_' . $key );
235
+ }
236
+
237
+ if ( array_key_exists( $product_id, $products ) ) {
238
+ unset( $products[ $product_id ] );
239
+ update_option( 'woosw_list_' . $key, $products );
240
+ self::update_product_count( $product_id, 'remove' );
241
+ }
242
+ }
243
+ }
244
+
245
+ function wishlist_add_by_link() {
246
+ if ( ! isset( $_REQUEST['add-to-wishlist'] ) && ! isset( $_REQUEST['add_to_wishlist'] ) ) {
247
+ return false;
248
+ }
249
+
250
+ $key = self::get_key();
251
+ $product_id = absint( isset( $_REQUEST['add_to_wishlist'] ) ? $_REQUEST['add_to_wishlist'] : 0 );
252
+ $product_id = absint( isset( $_REQUEST['add-to-wishlist'] ) ? $_REQUEST['add-to-wishlist'] : $product_id );
253
+
254
+ if ( $product_id ) {
255
+ if ( $key !== '#' && $key !== 'WOOSW' ) {
256
+ $products = array();
257
+
258
+ if ( get_option( 'woosw_list_' . $key ) ) {
259
+ $products = get_option( 'woosw_list_' . $key );
260
+ }
261
+
262
+ if ( ! array_key_exists( $product_id, $products ) ) {
263
+ // insert if not exists
264
+ $products = array(
265
+ $product_id => array(
266
+ 'time' => time(),
267
+ 'note' => ''
268
+ )
269
+ ) + $products;
270
+ update_option( 'woosw_list_' . $key, $products );
271
+ }
272
+ }
273
+ }
274
+
275
+ // redirect to wishlist page
276
+ wp_safe_redirect( self::get_url( $key, true ) );
277
+ }
278
+
279
+ function wishlist_add() {
280
+ $return = array( 'status' => 0 );
281
+ $key = self::get_key();
282
+
283
+ if ( ( $product_id = absint( $_POST['product_id'] ) ) > 0 ) {
284
+ if ( $key === '#' ) {
285
+ $return['status'] = 0;
286
+ $return['notice'] = self::localization( 'login_message', esc_html__( 'Please log in to use the wishlist!', 'woo-smart-wishlist' ) );
287
+ $return['content'] = self::wishlist_content( $key, self::localization( 'empty_message', esc_html__( 'There are no products on the wishlist!', 'woo-smart-wishlist' ) ) );
288
+ $return['image'] = WOOSW_URI . 'assets/images/heart_error.svg';
289
+ } else {
290
+ $products = array();
291
+
292
+ if ( get_option( 'woosw_list_' . $key ) ) {
293
+ $products = get_option( 'woosw_list_' . $key );
294
+ }
295
+
296
+ if ( ! array_key_exists( $product_id, $products ) ) {
297
+ // insert if not exists
298
+ $products = array(
299
+ $product_id => array(
300
+ 'time' => time(),
301
+ 'note' => ''
302
+ )
303
+ ) + $products;
304
+ update_option( 'woosw_list_' . $key, $products );
305
+ self::update_product_count( $product_id, 'add' );
306
+ $return['notice'] = self::localization( 'added_message', esc_html__( 'Added to the wishlist!', 'woo-smart-wishlist' ) );
307
+ $return['image'] = WOOSW_URI . 'assets/images/heart_add.svg';
308
+ } else {
309
+ $return['notice'] = self::localization( 'already_message', esc_html__( 'Already in the wishlist!', 'woo-smart-wishlist' ) );
310
+ $return['image'] = WOOSW_URI . 'assets/images/heart_duplicate.svg';
311
+ }
312
+
313
+ $return['status'] = 1;
314
+ $return['count'] = count( $products );
315
+
316
+ if ( get_option( 'woosw_button_action', 'list' ) === 'list' ) {
317
+ $return['content'] = self::wishlist_content( $key );
318
+ }
319
+ }
320
+ } else {
321
+ $product_id = 0;
322
+ $return['status'] = 0;
323
+ $return['notice'] = self::localization( 'error_message', esc_html__( 'Have an error, please try again!', 'woo-smart-wishlist' ) );
324
+ $return['image'] = WOOSW_URI . 'assets/images/heart_error.svg';
325
+ }
326
+
327
+ do_action( 'woosw_add', $product_id, $key );
328
+
329
+ echo json_encode( $return );
330
+ die();
331
+ }
332
+
333
+ function wishlist_remove() {
334
+ $return = array( 'status' => 0 );
335
+ $key = sanitize_text_field( $_POST['key'] );
336
+
337
+ if ( empty( $key ) ) {
338
+ $key = self::get_key();
339
+ }
340
+
341
+ if ( ( $product_id = absint( $_POST['product_id'] ) ) > 0 ) {
342
+ if ( $key === '#' ) {
343
+ $return['notice'] = self::localization( 'login_message', esc_html__( 'Please log in to use the wishlist!', 'woo-smart-wishlist' ) );
344
+ } else {
345
+ $products = array();
346
+
347
+ if ( get_option( 'woosw_list_' . $key ) ) {
348
+ $products = get_option( 'woosw_list_' . $key );
349
+ }
350
+
351
+ if ( array_key_exists( $product_id, $products ) ) {
352
+ unset( $products[ $product_id ] );
353
+ update_option( 'woosw_list_' . $key, $products );
354
+ self::update_product_count( $product_id, 'remove' );
355
+ $return['count'] = count( $products );
356
+ $return['status'] = 1;
357
+ $return['notice'] = self::localization( 'removed_message', esc_html__( 'Removed from wishlist!', 'woo-smart-wishlist' ) );
358
+
359
+ if ( empty( $products ) ) {
360
+ $return['content'] = self::wishlist_content( $key, self::localization( 'empty_message', esc_html__( 'There are no products on the wishlist!', 'woo-smart-wishlist' ) ) ) . '</div>';
361
+ }
362
+ } else {
363
+ $return['notice'] = self::localization( 'not_exist_message', esc_html__( 'The product does not exist on the wishlist!', 'woo-smart-wishlist' ) );
364
+ }
365
+ }
366
+ } else {
367
+ $product_id = 0;
368
+ $return['notice'] = self::localization( 'error_message', esc_html__( 'Have an error, please try again!', 'woo-smart-wishlist' ) );
369
+ }
370
+
371
+ do_action( 'woosw_remove', $product_id, $key );
372
+
373
+ echo json_encode( $return );
374
+ die();
375
+ }
376
+
377
+ function wishlist_empty() {
378
+ $return = array( 'status' => 0 );
379
+ $key = sanitize_text_field( $_POST['key'] );
380
+
381
+ if ( empty( $key ) ) {
382
+ $key = self::get_key();
383
+ }
384
+
385
+ if ( $key === '#' ) {
386
+ $return['notice'] = self::localization( 'login_message', esc_html__( 'Please log in to use the wishlist!', 'woo-smart-wishlist' ) );
387
+ } else {
388
+ if ( get_option( 'woosw_list_' . $key ) ) {
389
+ $products = get_option( 'woosw_list_' . $key );
390
+
391
+ if ( ! empty( $products ) ) {
392
+ foreach ( array_keys( $products ) as $product_id ) {
393
+ // update count
394
+ self::update_product_count( $product_id, 'remove' );
395
+ }
396
+ }
397
+ }
398
+
399
+ // remove option
400
+ update_option( 'woosw_list_' . $key, array() );
401
+ $return['status'] = 1;
402
+ $return['count'] = 0;
403
+ $return['notice'] = self::localization( 'empty_notice', esc_html__( 'All products were removed from your wishlist!', 'woo-smart-wishlist' ) );
404
+ $return['content'] = self::wishlist_content( $key, self::localization( 'empty_message', esc_html__( 'There are no products on the wishlist!', 'woo-smart-wishlist' ) ) );
405
+ }
406
+
407
+ do_action( 'woosw_empty', $key );
408
+
409
+ echo json_encode( $return );
410
+ die();
411
+ }
412
+
413
+ function wishlist_load() {
414
+ $return = array( 'status' => 0 );
415
+ $key = self::get_key();
416
+
417
+ if ( $key === '#' ) {
418
+ $return['notice'] = self::localization( 'login_message', esc_html__( 'Please log in to use wishlist!', 'woo-smart-wishlist' ) );
419
+ $return['content'] = self::wishlist_content( $key, self::localization( 'empty_message', esc_html__( 'There are no products on the wishlist!', 'woo-smart-wishlist' ) ) );
420
+ } else {
421
+ $products = array();
422
+
423
+ if ( get_option( 'woosw_list_' . $key ) ) {
424
+ $products = get_option( 'woosw_list_' . $key );
425
+ }
426
+
427
+ $return['status'] = 1;
428
+ $return['count'] = count( $products );
429
+ $return['content'] = self::wishlist_content( $key );
430
+ }
431
+
432
+ do_action( 'woosw_load', $key );
433
+
434
+ echo json_encode( $return );
435
+ die();
436
+ }
437
+
438
+ function wishlist_load_count() {
439
+ $return = array( 'status' => 0, 'count' => 0 );
440
+ $key = self::get_key();
441
+
442
+ if ( $key === '#' ) {
443
+ $return['notice'] = self::localization( 'login_message', esc_html__( 'Please log in to use wishlist!', 'woo-smart-wishlist' ) );
444
+ } else {
445
+ $products = array();
446
+
447
+ if ( get_option( 'woosw_list_' . $key ) ) {
448
+ $products = get_option( 'woosw_list_' . $key );
449
+ }
450
+
451
+ $return['status'] = 1;
452
+ $return['count'] = count( $products );
453
+ }
454
+
455
+ do_action( 'wishlist_load_count', $key );
456
+
457
+ echo json_encode( $return );
458
+ die();
459
+ }
460
+
461
+ function add_button() {
462
+ echo do_shortcode( '[woosw]' );
463
+ }
464
+
465
+ function shortcode( $attrs ) {
466
+ $output = '';
467
+
468
+ $attrs = shortcode_atts( array(
469
+ 'id' => null,
470
+ 'type' => get_option( 'woosw_button_type', 'button' )
471
+ ), $attrs, 'woosw' );
472
+
473
+ if ( ! $attrs['id'] ) {
474
+ global $product;
475
+
476
+ if ( $product ) {
477
+ $attrs['id'] = $product->get_id();
478
+ }
479
+ }
480
+
481
+ if ( $attrs['id'] ) {
482
+ // check cats
483
+ $selected_cats = get_option( 'woosw_cats', array() );
484
+
485
+ if ( ! empty( $selected_cats ) && ( $selected_cats[0] !== '0' ) ) {
486
+ if ( ! has_term( $selected_cats, 'product_cat', $attrs['id'] ) ) {
487
+ return '';
488
+ }
489
+ }
490
+
491
+ $class = 'woosw-btn woosw-btn-' . esc_attr( $attrs['id'] );
492
+
493
+ if ( array_key_exists( $attrs['id'], self::$added_products ) ) {
494
+ $class .= ' woosw-added';
495
+ $text = apply_filters( 'woosw_button_text_added', self::localization( 'button_added', esc_html__( 'Browse wishlist', 'woo-smart-wishlist' ) ) );
496
+ } else {
497
+ $text = apply_filters( 'woosw_button_text', self::localization( 'button', esc_html__( 'Add to wishlist', 'woo-smart-wishlist' ) ) );
498
+ }
499
+
500
+ if ( get_option( 'woosw_button_class', '' ) !== '' ) {
501
+ $class .= ' ' . esc_attr( get_option( 'woosw_button_class' ) );
502
+ }
503
+
504
+ if ( $attrs['type'] === 'link' ) {
505
+ $output = '<a href="' . esc_url( '?add-to-wishlist=' . $attrs['id'] ) . '" class="' . esc_attr( $class ) . '" data-id="' . esc_attr( $attrs['id'] ) . '">' . esc_html( $text ) . '</a>';
506
+ } else {
507
+ $output = '<button class="' . esc_attr( $class ) . '" data-id="' . esc_attr( $attrs['id'] ) . '">' . esc_html( $text ) . '</button>';
508
+ }
509
+ }
510
+
511
+ return apply_filters( 'woosw_button_html', $output, $attrs['id'], $attrs );
512
+ }
513
+
514
+ function list_shortcode() {
515
+ if ( get_query_var( 'woosw_id' ) ) {
516
+ $key = get_query_var( 'woosw_id' );
517
+ } elseif ( isset( $_REQUEST['wid'] ) && ! empty( $_REQUEST['wid'] ) ) {
518
+ $key = $_REQUEST['wid'];
519
+ } else {
520
+ $key = self::get_key();
521
+ }
522
+
523
+ $share_url_raw = self::get_url( $key, true );
524
+ $share_url = urlencode( $share_url_raw );
525
+ $return_html = '<div class="woosw-list">';
526
+ $return_html .= self::get_items( $key );
527
+ $return_html .= '<div class="woosw-actions">';
528
+
529
+ if ( get_option( 'woosw_page_share', 'yes' ) === 'yes' ) {
530
+ $facebook = esc_html__( 'Facebook', 'woo-smart-wishlist' );
531
+ $twitter = esc_html__( 'Twitter', 'woo-smart-wishlist' );
532
+ $pinterest = esc_html__( 'Pinterest', 'woo-smart-wishlist' );
533
+ $mail = esc_html__( 'Mail', 'woo-smart-wishlist' );
534
+
535
+ if ( get_option( 'woosw_page_icon', 'yes' ) === 'yes' ) {
536
+ $facebook = $twitter = $pinterest = $mail = "<i class='woosw-icon'></i>";
537
+ }
538
+
539
+ $woosw_page_items = get_option( 'woosw_page_items' );
540
+
541
+ if ( ! empty( $woosw_page_items ) ) {
542
+ $return_html .= '<div class="woosw-share">';
543
+ $return_html .= '<span class="woosw-share-label">' . esc_html__( 'Share on:', 'woo-smart-wishlist' ) . '</span>';
544
+ $return_html .= ( in_array( "facebook", $woosw_page_items ) ) ? '<a class="woosw-share-facebook" href="https://www.facebook.com/sharer.php?u=' . $share_url . '" target="_blank">' . $facebook . '</a>' : '';
545
+ $return_html .= ( in_array( "twitter", $woosw_page_items ) ) ? '<a class="woosw-share-twitter" href="https://twitter.com/share?url=' . $share_url . '" target="_blank">' . $twitter . '</a>' : '';
546
+ $return_html .= ( in_array( "pinterest", $woosw_page_items ) ) ? '<a class="woosw-share-pinterest" href="https://pinterest.com/pin/create/button/?url=' . $share_url . '" target="_blank">' . $pinterest . '</a>' : '';
547
+ $return_html .= ( in_array( "mail", $woosw_page_items ) ) ? '<a class="woosw-share-mail" href="mailto:?body=' . $share_url . '" target="_blank">' . $mail . '</a>' : '';
548
+ $return_html .= '</div><!-- /woosw-share -->';
549
+ }
550
+
551
+ }
552
+
553
+ if ( get_option( 'woosw_page_copy', 'yes' ) === 'yes' ) {
554
+ $return_html .= '<div class="woosw-copy">';
555
+ $return_html .= '<span class="woosw-copy-label">' . esc_html__( 'Wishlist link:', 'woo-smart-wishlist' ) . '</span>';
556
+ $return_html .= '<span class="woosw-copy-url"><input id="woosw_copy_url" type="url" value="' . $share_url_raw . '" readonly/></span>';
557
+ $return_html .= '<span class="woosw-copy-btn"><input id="woosw_copy_btn" type="button" value="' . esc_html__( 'Copy', 'woo-smart-wishlist' ) . '"/></span>';
558
+ $return_html .= '</div><!-- /woosw-copy -->';
559
+ }
560
+
561
+ $return_html .= '</div><!-- /woosw-actions -->';
562
+ $return_html .= '</div><!-- /woosw-list -->';
563
+
564
+ return $return_html;
565
+ }
566
+
567
+ function admin_menu() {
568
+ add_submenu_page( 'wpclever', 'WPC Smart Wishlist', 'Smart Wishlist', 'manage_options', 'wpclever-woosw', array(
569
+ &$this,
570
+ 'admin_menu_content'
571
+ ) );
572
+ }
573
+
574
+ function admin_menu_content() {
575
+ add_thickbox();
576
+ $active_tab = isset( $_GET['tab'] ) ? sanitize_key( $_GET['tab'] ) : 'settings';
577
+ ?>
578
+ <div class="wpclever_settings_page wrap">
579
+ <h1 class="wpclever_settings_page_title"><?php echo 'WPC Smart Wishlist ' . WOOSW_VERSION; ?></h1>
580
+ <div class="wpclever_settings_page_desc about-text">
581
+ <p>
582
+ <?php printf( esc_html__( 'Thank you for using our plugin! If you are satisfied, please reward it a full five-star %s rating.', 'woo-smart-wishlist' ), '<span style="color:#ffb900">&#9733;&#9733;&#9733;&#9733;&#9733;</span>' ); ?>
583
+ <br/>
584
+ <a href="<?php echo esc_url( WOOSW_REVIEWS ); ?>"
585
+ target="_blank"><?php esc_html_e( 'Reviews', 'woo-smart-wishlist' ); ?></a> | <a
586
+ href="<?php echo esc_url( WOOSW_CHANGELOG ); ?>"
587
+ target="_blank"><?php esc_html_e( 'Changelog', 'woo-smart-wishlist' ); ?></a>
588
+ | <a href="<?php echo esc_url( WOOSW_DISCUSSION ); ?>"
589
+ target="_blank"><?php esc_html_e( 'Discussion', 'woo-smart-wishlist' ); ?></a>
590
+ </p>
591
+ </div>
592
+ <div class="wpclever_settings_page_nav">
593
+ <h2 class="nav-tab-wrapper">
594
+ <a href="<?php echo admin_url( 'admin.php?page=wpclever-woosw&tab=settings' ); ?>"
595
+ class="<?php echo esc_attr( $active_tab === 'settings' ? 'nav-tab nav-tab-active' : 'nav-tab' ); ?>">
596
+ <?php esc_html_e( 'Settings', 'woo-smart-wishlist' ); ?>
597
+ </a>
598
+ <a href="<?php echo admin_url( 'admin.php?page=wpclever-woosw&tab=localization' ); ?>"
599
+ class="<?php echo esc_attr( $active_tab === 'localization' ? 'nav-tab nav-tab-active' : 'nav-tab' ); ?>">
600
+ <?php esc_html_e( 'Localization', 'woo-smart-wishlist' ); ?>
601
+ </a>
602
+ <a href="<?php echo admin_url( 'admin.php?page=wpclever-woosw&tab=premium' ); ?>"
603
+ class="<?php echo esc_attr( $active_tab === 'premium' ? 'nav-tab nav-tab-active' : 'nav-tab' ); ?>"
604
+ style="color: #c9356e">
605
+ <?php esc_html_e( 'Premium Version', 'woo-smart-wishlist' ); ?>
606
+ </a>
607
+ <a href="<?php echo esc_url( admin_url( 'admin.php?page=wpclever-kit' ) ); ?>"
608
+ class="nav-tab">
609
+ <?php esc_html_e( 'Essential Kit', 'woo-smart-wishlist' ); ?>
610
+ </a>
611
+ </h2>
612
+ </div>
613
+ <div class="wpclever_settings_page_content">
614
+ <?php if ( $active_tab === 'settings' ) {
615
+ if ( isset( $_REQUEST['settings-updated'] ) && $_REQUEST['settings-updated'] === 'true' ) {
616
+ flush_rewrite_rules();
617
+ }
618
+ ?>
619
+ <form method="post" action="options.php">
620
+ <?php wp_nonce_field( 'update-options' ); ?>
621
+ <table class="form-table">
622
+ <tr class="heading">
623
+ <th colspan="2">
624
+ <?php esc_html_e( 'General', 'woo-smart-wishlist' ); ?>
625
+ </th>
626
+ </tr>
627
+ <tr>
628
+ <th scope="row"><?php esc_html_e( 'Disable the wishlist for unauthenticated users', 'woo-smart-wishlist' ); ?></th>
629
+ <td>
630
+ <select name="woosw_disable_unauthenticated">
631
+ <option
632
+ value="yes" <?php echo( get_option( 'woosw_disable_unauthenticated', 'no' ) === 'yes' ? 'selected' : '' ); ?>>
633
+ <?php esc_html_e( 'Yes', 'woo-smart-wishlist' ); ?>
634
+ </option>
635
+ <option
636
+ value="no" <?php echo( get_option( 'woosw_disable_unauthenticated', 'no' ) === 'no' ? 'selected' : '' ); ?>>
637
+ <?php esc_html_e( 'No', 'woo-smart-wishlist' ); ?>
638
+ </option>
639
+ </select>
640
+ </td>
641
+ </tr>
642
+ <tr>
643
+ <th scope="row"><?php esc_html_e( 'Auto remove', 'woo-smart-wishlist' ); ?></th>
644
+ <td>
645
+ <select name="woosw_auto_remove">
646
+ <option
647
+ value="yes" <?php echo( get_option( 'woosw_auto_remove', 'no' ) === 'yes' ? 'selected' : '' ); ?>>
648
+ <?php esc_html_e( 'Yes', 'woo-smart-wishlist' ); ?>
649
+ </option>
650
+ <option
651
+ value="no" <?php echo( get_option( 'woosw_auto_remove', 'no' ) === 'no' ? 'selected' : '' ); ?>>
652
+ <?php esc_html_e( 'No', 'woo-smart-wishlist' ); ?>
653
+ </option>
654
+ </select>
655
+ <span class="description"><?php esc_html_e( 'Auto remove product from the wishlist after adding to the cart.', 'woo-smart-wishlist' ); ?></span>
656
+ </td>
657
+ </tr>
658
+ <tr class="heading">
659
+ <th>
660
+ <?php esc_html_e( 'Multiple Wishlist', 'woo-smart-wishlist' ); ?>
661
+ </th>
662
+ <td>
663
+ <span class="description" style="color: #c9356e">
664
+ This feature is only available on the Premium Version. Click <a
665
+ href="https://wpclever.net/downloads/smart-wishlist?utm_source=pro&utm_medium=woosw&utm_campaign=wporg"
666
+ target="_blank">here</a> to buy, just $29.
667
+ </span>
668
+ </td>
669
+ </tr>
670
+ <tr>
671
+ <th scope="row"><?php esc_html_e( 'Enable', 'woo-smart-wishlist' ); ?></th>
672
+ <td>
673
+ <select name="woosw_enable_multiple">
674
+ <option
675
+ value="yes" <?php echo( get_option( 'woosw_enable_multiple', 'no' ) === 'yes' ? 'selected' : '' ); ?>>
676
+ <?php esc_html_e( 'Yes', 'woo-smart-wishlist' ); ?>
677
+ </option>
678
+ <option
679
+ value="no" <?php echo( get_option( 'woosw_enable_multiple', 'no' ) === 'no' ? 'selected' : '' ); ?>>
680
+ <?php esc_html_e( 'No', 'woo-smart-wishlist' ); ?>
681
+ </option>
682
+ </select>
683
+ <span class="description"><?php esc_html_e( 'Enable/disable multiple wishlist.', 'woo-smart-wishlist' ); ?></span>
684
+ </td>
685
+ </tr>
686
+ <tr>
687
+ <th scope="row"><?php esc_html_e( 'Maximum wishlists per user', 'woo-smart-wishlist' ); ?></th>
688
+ <td>
689
+ <input type="number" min="1" max="100" name="woosw_maximum_wishlists"
690
+ value="<?php echo get_option( 'woosw_maximum_wishlists', '5' ); ?>"/>
691
+ </td>
692
+ </tr>
693
+ <tr class="heading">
694
+ <th>
695
+ <?php esc_html_e( 'Button', 'woo-smart-wishlist' ); ?>
696
+ </th>
697
+ <td>
698
+ <?php esc_html_e( 'Settings for "Add to wishlist" button.', 'woo-smart-wishlist' ); ?>
699
+ </td>
700
+ </tr>
701
+ <tr>
702
+ <th scope="row"><?php esc_html_e( 'Type', 'woo-smart-wishlist' ); ?></th>
703
+ <td>
704
+ <select name="woosw_button_type">
705
+ <option
706
+ value="button" <?php echo( get_option( 'woosw_button_type', 'button' ) === 'button' ? 'selected' : '' ); ?>>
707
+ <?php esc_html_e( 'Button', 'woo-smart-wishlist' ); ?>
708
+ </option>
709
+ <option
710
+ value="link" <?php echo( get_option( 'woosw_button_type', 'button' ) === 'link' ? 'selected' : '' ); ?>>
711
+ <?php esc_html_e( 'Link', 'woo-smart-wishlist' ); ?>
712
+ </option>
713
+ </select>
714
+ </td>
715
+ </tr>
716
+ <tr>
717
+ <th scope="row"><?php esc_html_e( 'Action', 'woo-smart-wishlist' ); ?></th>
718
+ <td>
719
+ <select name="woosw_button_action">
720
+ <option
721
+ value="message" <?php echo( get_option( 'woosw_button_action', 'list' ) === 'message' ? 'selected' : '' ); ?>>
722
+ <?php esc_html_e( 'Show message', 'woo-smart-wishlist' ); ?>
723
+ </option>
724
+ <option
725
+ value="list" <?php echo( get_option( 'woosw_button_action', 'list' ) === 'list' ? 'selected' : '' ); ?>>
726
+ <?php esc_html_e( 'Show product list', 'woo-smart-wishlist' ); ?>
727
+ </option>
728
+ <option
729
+ value="no" <?php echo( get_option( 'woosw_button_action', 'list' ) === 'no' ? 'selected' : '' ); ?>>
730
+ <?php esc_html_e( 'Add to wishlist solely', 'woo-smart-wishlist' ); ?>
731
+ </option>
732
+ </select>
733
+ <span class="description"><?php esc_html_e( 'Action triggered by clicking on the wishlist button.', 'woo-smart-wishlist' ); ?></span>
734
+ </td>
735
+ </tr>
736
+ <tr>
737
+ <th scope="row"><?php esc_html_e( 'Action (added)', 'woo-smart-wishlist' ); ?></th>
738
+ <td>
739
+ <select name="woosw_button_action_added">
740
+ <option
741
+ value="popup" <?php echo( get_option( 'woosw_button_action_added', 'popup' ) === 'popup' ? 'selected' : '' ); ?>>
742
+ <?php esc_html_e( 'Open wishlist popup', 'woo-smart-wishlist' ); ?>
743
+ </option>
744
+ <option
745
+ value="page" <?php echo( get_option( 'woosw_button_action_added', 'popup' ) === 'page' ? 'selected' : '' ); ?>>
746
+ <?php esc_html_e( 'Open wishlist page', 'woo-smart-wishlist' ); ?>
747
+ </option>
748
+ </select>
749
+ <span class="description"><?php esc_html_e( 'Action triggered by clicking on the wishlist button after adding an item to the wishlist.', 'woo-smart-wishlist' ); ?></span>
750
+ </td>
751
+ </tr>
752
+ <tr>
753
+ <th scope="row"><?php esc_html_e( 'Extra class (optional)', 'woo-smart-wishlist' ); ?></th>
754
+ <td>
755
+ <input type="text" name="woosw_button_class" class="regular-text"
756
+ value="<?php echo get_option( 'woosw_button_class', '' ); ?>"/>
757
+ <span class="description"><?php esc_html_e( 'Add extra class for action button/link, split by one space.', 'woo-smart-wishlist' ); ?></span>
758
+ </td>
759
+ </tr>
760
+ <tr>
761
+ <th scope="row"><?php esc_html_e( 'Position on archive page', 'woo-smart-wishlist' ); ?></th>
762
+ <td>
763
+ <?php
764
+ $position_archive = apply_filters( 'woosw_button_position_archive', 'default' );
765
+ $positions_archive = apply_filters( 'woosw_button_positions_archive', array(
766
+ 'after_title' => esc_html__( 'Under title', 'woo-smart-wishlist' ),
767
+ 'after_rating' => esc_html__( 'Under rating', 'woo-smart-wishlist' ),
768
+ 'after_price' => esc_html__( 'Under price', 'woo-smart-wishlist' ),
769
+ 'before_add_to_cart' => esc_html__( 'Above add to cart button', 'woo-smart-wishlist' ),
770
+ 'after_add_to_cart' => esc_html__( 'Under add to cart button', 'woo-smart-wishlist' ),
771
+ '0' => esc_html__( 'None (hide it)', 'woo-smart-wishlist' ),
772
+ ) );
773
+ ?>
774
+ <select name="woosw_button_position_archive" <?php echo( $position_archive !== 'default' ? 'disabled' : '' ); ?>>
775
+ <?php
776
+ if ( $position_archive === 'default' ) {
777
+ $position_archive = get_option( 'woosw_button_position_archive', apply_filters( 'woosw_button_position_archive_default', 'after_add_to_cart' ) );
778
+ }
779
+
780
+ foreach ( $positions_archive as $k => $p ) {
781
+ echo '<option value="' . esc_attr( $k ) . '" ' . ( ( $k === $position_archive ) || ( empty( $position_archive ) && empty( $k ) ) ? 'selected' : '' ) . '>' . esc_html( $p ) . '</option>';
782
+ }
783
+ ?>
784
+ </select>
785
+ </td>
786
+ </tr>
787
+ <tr>
788
+ <th scope="row"><?php esc_html_e( 'Position on single page', 'woo-smart-wishlist' ); ?></th>
789
+ <td>
790
+ <?php
791
+ $position_single = apply_filters( 'woosw_button_position_single', 'default' );
792
+ $positions_single = apply_filters( 'woosw_button_positions_single', array(
793
+ '6' => esc_html__( 'Under title', 'woo-smart-wishlist' ),
794
+ '11' => esc_html__( 'Under rating', 'woo-smart-wishlist' ),
795
+ '21' => esc_html__( 'Under excerpt', 'woo-smart-wishlist' ),
796
+ '29' => esc_html__( 'Above add to cart button', 'woo-smart-wishlist' ),
797
+ '31' => esc_html__( 'Under add to cart button', 'woo-smart-wishlist' ),
798
+ '41' => esc_html__( 'Under meta', 'woo-smart-wishlist' ),
799
+ '51' => esc_html__( 'Under sharing', 'woo-smart-wishlist' ),
800
+ '0' => esc_html__( 'None (hide it)', 'woo-smart-wishlist' ),
801
+ ) );
802
+ ?>
803
+ <select name="woosw_button_position_single" <?php echo( $position_single !== 'default' ? 'disabled' : '' ); ?>>
804
+ <?php
805
+ if ( $position_single === 'default' ) {
806
+ $position_single = get_option( 'woosw_button_position_single', apply_filters( 'woosw_button_position_single_default', '31' ) );
807
+ }
808
+
809
+ foreach ( $positions_single as $k => $p ) {
810
+ echo '<option value="' . esc_attr( $k ) . '" ' . ( ( $k === $position_single ) || ( empty( $position_single ) && empty( $k ) ) ? 'selected' : '' ) . '>' . esc_html( $p ) . '</option>';
811
+ }
812
+ ?>
813
+ </select>
814
+ </td>
815
+ </tr>
816
+ <tr>
817
+ <th scope="row"><?php esc_html_e( 'Shortcode', 'woo-smart-wishlist' ); ?></th>
818
+ <td>
819
+ <span class="description">
820
+ <?php printf( esc_html__( 'You can add a button manually by using the shortcode %s, eg. %s for the product whose ID is 99.', 'woo-smart-wishlist' ), '<code>[woosw id="{product id}"]</code>', '<code>[woosw id="99"]</code>' ); ?>
821
+ </span>
822
+ </td>
823
+ </tr>
824
+ <tr>
825
+ <th scope="row"><?php esc_html_e( 'Categories', 'woo-smart-wishlist' ); ?></th>
826
+ <td>
827
+ <?php
828
+ $selected_cats = get_option( 'woosw_cats' );
829
+
830
+ if ( empty( $selected_cats ) ) {
831
+ $selected_cats = array( 0 );
832
+ }
833
+
834
+ wc_product_dropdown_categories(
835
+ array(
836
+ 'name' => 'woosw_cats',
837
+ 'hide_empty' => 0,
838
+ 'value_field' => 'id',
839
+ 'multiple' => true,
840
+ 'show_option_all' => esc_html__( 'All categories', 'woo-smart-wishlist' ),
841
+ 'show_option_none' => '',
842
+ 'selected' => implode( ',', $selected_cats )
843
+ ) );
844
+ ?>
845
+ <span class="description"><?php esc_html_e( 'Only show the wishlist button for products in selected categories.', 'woo-smart-wishlist' ); ?></span>
846
+ </td>
847
+ </tr>
848
+ <tr class="heading">
849
+ <th>
850
+ <?php esc_html_e( 'Popup', 'woo-smart-wishlist' ); ?>
851
+ </th>
852
+ <td>
853
+ <?php esc_html_e( 'Settings for the wishlist popup.', 'woo-smart-wishlist' ); ?>
854
+ </td>
855
+ </tr>
856
+ <tr>
857
+ <th scope="row"><?php esc_html_e( 'Use perfect-scrollbar', 'woo-smart-wishlist' ); ?></th>
858
+ <td>
859
+ <select name="woosw_perfect_scrollbar">
860
+ <option
861
+ value="yes" <?php echo( get_option( 'woosw_perfect_scrollbar', 'yes' ) === 'yes' ? 'selected' : '' ); ?>>
862
+ <?php esc_html_e( 'Yes', 'woo-smart-wishlist' ); ?>
863
+ </option>
864
+ <option
865
+ value="no" <?php echo( get_option( 'woosw_perfect_scrollbar', 'yes' ) === 'no' ? 'selected' : '' ); ?>>
866
+ <?php esc_html_e( 'No', 'woo-smart-wishlist' ); ?>
867
+ </option>
868
+ </select>
869
+ <span class="description"><?php printf( esc_html__( 'Read more about %s', 'woo-smart-wishlist' ), '<a href="https://github.com/mdbootstrap/perfect-scrollbar" target="_blank">perfect-scrollbar</a>' ); ?></span>
870
+ </td>
871
+ </tr>
872
+ <tr>
873
+ <th scope="row"><?php esc_html_e( 'Color', 'woo-smart-wishlist' ); ?></th>
874
+ <td>
875
+ <?php $color_default = apply_filters( 'woosw_color_default', '#5fbd74' ); ?>
876
+ <input type="text" name="woosw_color"
877
+ value="<?php echo get_option( 'woosw_color', $color_default ); ?>"
878
+ class="woosw_color_picker"/>
879
+ <span class="description"><?php printf( esc_html__( 'Choose the color, default %s', 'woo-smart-wishlist' ), '<code>' . $color_default . '</code>' ); ?></span>
880
+ </td>
881
+ </tr>
882
+ <tr>
883
+ <th><?php esc_html_e( 'Link to individual product', 'woo-smart-wishlist' ); ?></th>
884
+ <td>
885
+ <select name="woosw_link">
886
+ <option
887
+ value="yes" <?php echo( get_option( 'woosw_link', 'yes' ) === 'yes' ? 'selected' : '' ); ?>>
888
+ <?php esc_html_e( 'Yes, open in the same tab', 'woo-smart-wishlist' ); ?>
889
+ </option>
890
+ <option
891
+ value="yes_blank" <?php echo( get_option( 'woosw_link', 'yes' ) === 'yes_blank' ? 'selected' : '' ); ?>>
892
+ <?php esc_html_e( 'Yes, open in the new tab', 'woo-smart-wishlist' ); ?>
893
+ </option>
894
+ <option
895
+ value="yes_popup" <?php echo( get_option( 'woosw_link', 'yes' ) === 'yes_popup' ? 'selected' : '' ); ?>>
896
+ <?php esc_html_e( 'Yes, open quick view popup', 'woo-smart-wishlist' ); ?>
897
+ </option>
898
+ <option
899
+ value="no" <?php echo( get_option( 'woosw_link', 'yes' ) === 'no' ? 'selected' : '' ); ?>>
900
+ <?php esc_html_e( 'No', 'woo-smart-wishlist' ); ?>
901
+ </option>
902
+ </select>
903
+ <span class="description">If you choose "Open quick view popup", please install <a
904
+ href="<?php echo esc_url( admin_url( 'plugin-install.php?tab=plugin-information&plugin=woo-smart-quick-view&TB_iframe=true&width=800&height=550' ) ); ?>"
905
+ class="thickbox" title="Install WPC Smart Quick View">WPC Smart Quick View</a> to make it work.</span>
906
+ </td>
907
+ </tr>
908
+ <tr>
909
+ <th scope="row"><?php esc_html_e( 'Show note', 'woo-smart-wishlist' ); ?></th>
910
+ <td>
911
+ <select name="woosw_show_note">
912
+ <option
913
+ value="yes" <?php echo( get_option( 'woosw_show_note', 'no' ) === 'yes' ? 'selected' : '' ); ?>>
914
+ <?php esc_html_e( 'Yes', 'woo-smart-wishlist' ); ?>
915
+ </option>
916
+ <option
917
+ value="no" <?php echo( get_option( 'woosw_show_note', 'no' ) === 'no' ? 'selected' : '' ); ?>>
918
+ <?php esc_html_e( 'No', 'woo-smart-wishlist' ); ?>
919
+ </option>
920
+ </select>
921
+ <span class="description"><?php esc_html_e( 'Show note on each product for all visitors. Only wishlist owner can add/edit these notes.', 'woo-smart-wishlist' ); ?></span>
922
+ <p class="description" style="color: #c9356e">
923
+ This feature is only available on the Premium Version. Click <a
924
+ href="https://wpclever.net/downloads/smart-wishlist?utm_source=pro&utm_medium=woosw&utm_campaign=wporg"
925
+ target="_blank">here</a> to buy, just $29.
926
+ </p>
927
+ </td>
928
+ </tr>
929
+ <tr>
930
+ <th scope="row"><?php esc_html_e( 'Empty wishlist button', 'woo-smart-wishlist' ); ?></th>
931
+ <td>
932
+ <select name="woosw_empty_button">
933
+ <option
934
+ value="yes" <?php echo( get_option( 'woosw_empty_button', 'no' ) === 'yes' ? 'selected' : '' ); ?>>
935
+ <?php esc_html_e( 'Yes', 'woo-smart-wishlist' ); ?>
936
+ </option>
937
+ <option
938
+ value="no" <?php echo( get_option( 'woosw_empty_button', 'no' ) === 'no' ? 'selected' : '' ); ?>>
939
+ <?php esc_html_e( 'No', 'woo-smart-wishlist' ); ?>
940
+ </option>
941
+ </select>
942
+ <span class="description"><?php esc_html_e( 'Show empty wishlist button on the popup?', 'woo-smart-wishlist' ); ?></span>
943
+ </td>
944
+ </tr>
945
+ <tr>
946
+ <th scope="row"><?php esc_html_e( 'Continue shopping link', 'woo-smart-wishlist' ); ?></th>
947
+ <td>
948
+ <input type="url" name="woosw_continue_url"
949
+ value="<?php echo get_option( 'woosw_continue_url' ); ?>"
950
+ class="regular-text code"/>
951
+ <span class="description"><?php esc_html_e( 'By default, the wishlist popup will only be closed when customers click on the "Continue Shopping" button.', 'woo-smart-wishlist' ); ?></span>
952
+ </td>
953
+ </tr>
954
+ <tr class="heading">
955
+ <th>
956
+ <?php esc_html_e( 'Page', 'woo-smart-wishlist' ); ?>
957
+ </th>
958
+ <td>
959
+ <?php esc_html_e( 'Settings for wishlist page.', 'woo-smart-wishlist' ); ?>
960
+ </td>
961
+ </tr>
962
+ <tr>
963
+ <th scope="row"><?php esc_html_e( 'Wishlist page', 'woo-smart-wishlist' ); ?></th>
964
+ <td>
965
+ <?php wp_dropdown_pages( array(
966
+ 'selected' => get_option( 'woosw_page_id', '' ),
967
+ 'name' => 'woosw_page_id',
968
+ 'show_option_none' => esc_html__( 'Choose a page', 'woo-smart-wishlist' ),
969
+ 'option_none_value' => '',
970
+ ) ); ?>
971
+ <span class="description"><?php printf( esc_html__( 'Add shortcode %s to display the wishlist on a page.', 'woo-smart-wishlist' ), '<code>[woosw_list]</code>' ); ?></span>
972
+ </td>
973
+ </tr>
974
+ <tr>
975
+ <th scope="row"><?php esc_html_e( 'Share buttons', 'woo-smart-wishlist' ); ?></th>
976
+ <td>
977
+ <select name="woosw_page_share">
978
+ <option
979
+ value="yes" <?php echo( get_option( 'woosw_page_share', 'yes' ) === 'yes' ? 'selected' : '' ); ?>>
980
+ <?php esc_html_e( 'Yes', 'woo-smart-wishlist' ); ?>
981
+ </option>
982
+ <option
983
+ value="no" <?php echo( get_option( 'woosw_page_share', 'yes' ) === 'no' ? 'selected' : '' ); ?>>
984
+ <?php esc_html_e( 'No', 'woo-smart-wishlist' ); ?>
985
+ </option>
986
+ </select>
987
+ <span class="description"><?php esc_html_e( 'Enable share buttons on the wishlist page?', 'woo-smart-wishlist' ); ?></span>
988
+ </td>
989
+ </tr>
990
+ <tr>
991
+ <th scope="row"><?php esc_html_e( 'Use font icon', 'woo-smart-wishlist' ); ?></th>
992
+ <td>
993
+ <select name="woosw_page_icon">
994
+ <option
995
+ value="yes" <?php echo( get_option( 'woosw_page_icon', 'yes' ) === 'yes' ? 'selected' : '' ); ?>>
996
+ <?php esc_html_e( 'Yes', 'woo-smart-wishlist' ); ?>
997
+ </option>
998
+ <option
999
+ value="no" <?php echo( get_option( 'woosw_page_icon', 'yes' ) === 'no' ? 'selected' : '' ); ?>>
1000
+ <?php esc_html_e( 'No', 'woo-smart-wishlist' ); ?>
1001
+ </option>
1002
+ </select>
1003
+ </td>
1004
+ </tr>
1005
+ <tr>
1006
+ <th scope="row"><?php esc_html_e( 'Social links', 'woo-smart-wishlist' ); ?></th>
1007
+ <td>
1008
+ <?php
1009
+ $woosw_page_items = get_option( 'woosw_page_items' );
1010
+
1011
+ if ( empty( $woosw_page_items ) ) {
1012
+ $woosw_page_items = array();
1013
+ }
1014
+ ?>
1015
+ <select multiple name="woosw_page_items[]" id='woosw_page_items'>
1016
+ <option <?php echo ( in_array( "facebook", $woosw_page_items ) ) ? "selected" : ""; ?>
1017
+ value="facebook"><?php esc_html_e( 'Facebook', 'woo-smart-wishlist' ); ?>
1018
+ </option>
1019
+ <option <?php echo ( in_array( "twitter", $woosw_page_items ) ) ? "selected" : ""; ?>
1020
+ value="twitter"><?php esc_html_e( 'Twitter', 'woo-smart-wishlist' ); ?>
1021
+ </option>
1022
+ <option <?php echo ( in_array( "pinterest", $woosw_page_items ) ) ? "selected" : ""; ?>
1023
+ value="pinterest"><?php esc_html_e( 'Pinterest', 'woo-smart-wishlist' ); ?>
1024
+ </option>
1025
+ <option <?php echo ( in_array( "mail", $woosw_page_items ) ) ? "selected" : ""; ?>
1026
+ value="mail"><?php esc_html_e( 'Mail', 'woo-smart-wishlist' ); ?>
1027
+ </option>
1028
+ </select>
1029
+ </td>
1030
+ </tr>
1031
+ <tr>
1032
+ <th scope="row"><?php esc_html_e( 'Copy link', 'woo-smart-wishlist' ); ?></th>
1033
+ <td>
1034
+ <select name="woosw_page_copy">
1035
+ <option
1036
+ value="yes" <?php echo( get_option( 'woosw_page_copy', 'yes' ) === 'yes' ? 'selected' : '' ); ?>>
1037
+ <?php esc_html_e( 'Yes', 'woo-smart-wishlist' ); ?>
1038
+ </option>
1039
+ <option
1040
+ value="no" <?php echo( get_option( 'woosw_page_copy', 'yes' ) === 'no' ? 'selected' : '' ); ?>>
1041
+ <?php esc_html_e( 'No', 'woo-smart-wishlist' ); ?>
1042
+ </option>
1043
+ </select>
1044
+ <span class="description"><?php esc_html_e( 'Enable copy wishlist link to share?', 'woo-smart-wishlist' ); ?></span>
1045
+ </td>
1046
+ </tr>
1047
+ <tr class="heading">
1048
+ <th>
1049
+ <?php esc_html_e( 'Menu', 'woo-smart-wishlist' ); ?>
1050
+ </th>
1051
+ <td>
1052
+ <?php esc_html_e( 'Settings for the wishlist menu item.', 'woo-smart-wishlist' ); ?>
1053
+ </td>
1054
+ </tr>
1055
+ <tr>
1056
+ <th scope="row"><?php esc_html_e( 'Menu(s)', 'woo-smart-wishlist' ); ?></th>
1057
+ <td>
1058
+ <?php
1059
+ $nav_args = array(
1060
+ 'hide_empty' => false,
1061
+ 'fields' => 'id=>name',
1062
+ );
1063
+ $nav_menus = get_terms( 'nav_menu', $nav_args );
1064
+ $saved_menus = get_option( 'woosw_menus', array() );
1065
+
1066
+ foreach ( $nav_menus as $nav_id => $nav_name ) {
1067
+ echo '<input type="checkbox" name="woosw_menus[]" value="' . $nav_id . '" ' . ( is_array( $saved_menus ) && in_array( $nav_id, $saved_menus, false ) ? 'checked' : '' ) . '/><label>' . $nav_name . '</label><br/>';
1068
+ }
1069
+ ?>
1070
+ <span class="description"><?php esc_html_e( 'Choose the menu(s) you want to add the "wishlist menu" at the end.', 'woo-smart-wishlist' ); ?></span>
1071
+ </td>
1072
+ </tr>
1073
+ <tr>
1074
+ <th scope="row"><?php esc_html_e( 'Action', 'woo-smart-wishlist' ); ?></th>
1075
+ <td>
1076
+ <select name="woosw_menu_action">
1077
+ <option
1078
+ value="open_page" <?php echo( get_option( 'woosw_menu_action', 'open_page' ) === 'open_page' ? 'selected' : '' ); ?>>
1079
+ <?php esc_html_e( 'Open page', 'woo-smart-wishlist' ); ?>
1080
+ </option>
1081
+ <option
1082
+ value="open_popup" <?php echo( get_option( 'woosw_menu_action', 'open_page' ) === 'open_popup' ? 'selected' : '' ); ?>>
1083
+ <?php esc_html_e( 'Open popup', 'woo-smart-wishlist' ); ?>
1084
+ </option>
1085
+ </select>
1086
+ <span class="description"><?php esc_html_e( 'Action when clicking on the "wishlist menu".', 'woo-smart-wishlist' ); ?></span>
1087
+ </td>
1088
+ </tr>
1089
+ <tr class="submit">
1090
+ <th colspan="2">
1091
+ <input type="submit" name="submit" class="button button-primary"
1092
+ value="<?php esc_html_e( 'Update Options', 'woo-smart-wishlist' ); ?>"/>
1093
+ <input type="hidden" name="action" value="update"/>
1094
+ <input type="hidden" name="page_options"
1095
+ value="woosw_disable_unauthenticated,woosw_auto_remove,woosw_enable_multiple,woosw_maximum_wishlists,woosw_link,woosw_show_note,woosw_page_id,woosw_page_share,woosw_page_icon,woosw_page_items,woosw_page_copy,woosw_button_type,woosw_button_text,woosw_button_action,woosw_button_text_added,woosw_button_action_added,woosw_button_class,woosw_button_position_archive,woosw_button_position_single,woosw_cats,woosw_perfect_scrollbar,woosw_color,woosw_empty_button,woosw_continue_url,woosw_menus,woosw_menu_action"/>
1096
+ </th>
1097
+ </tr>
1098
+ </table>
1099
+ </form>
1100
+ <?php } elseif ( $active_tab === 'localization' ) { ?>
1101
+ <form method="post" action="options.php">
1102
+ <?php wp_nonce_field( 'update-options' ); ?>
1103
+ <table class="form-table">
1104
+ <tr class="heading">
1105
+ <th scope="row"><?php esc_html_e( 'Localization', 'woo-smart-wishlist' ); ?></th>
1106
+ <td>
1107
+ <?php esc_html_e( 'Leave blank to use the default text and its equivalent translation in multiple languages.', 'woo-smart-wishlist' ); ?>
1108
+ </td>
1109
+ </tr>
1110
+ <tr>
1111
+ <th><?php esc_html_e( 'Button text', 'woo-smart-wishlist' ); ?></th>
1112
+ <td>
1113
+ <input type="text" class="regular-text"
1114
+ name="woosw_localization[button]"
1115
+ value="<?php echo esc_attr( self::localization( 'button' ) ); ?>"
1116
+ placeholder="<?php esc_attr_e( 'Add to wishlist', 'woo-smart-wishlist' ); ?>"/>
1117
+ </td>
1118
+ </tr>
1119
+ <tr>
1120
+ <th><?php esc_html_e( 'Button text (added)', 'woo-smart-wishlist' ); ?></th>
1121
+ <td>
1122
+ <input type="text" class="regular-text"
1123
+ name="woosw_localization[button_added]"
1124
+ value="<?php echo esc_attr( self::localization( 'button_added' ) ); ?>"
1125
+ placeholder="<?php esc_attr_e( 'Browse wishlist', 'woo-smart-wishlist' ); ?>"/>
1126
+ </td>
1127
+ </tr>
1128
+ <tr>
1129
+ <th><?php esc_html_e( 'Wishlist popup heading', 'woo-smart-wishlist' ); ?></th>
1130
+ <td>
1131
+ <input type="text" class="regular-text"
1132
+ name="woosw_localization[popup_heading]"
1133
+ value="<?php echo esc_attr( self::localization( 'popup_heading' ) ); ?>"
1134
+ placeholder="<?php esc_attr_e( 'Wishlist', 'woo-smart-wishlist' ); ?>"/>
1135
+ </td>
1136
+ </tr>
1137
+ <tr>
1138
+ <th><?php esc_html_e( 'Empty wishlist button', 'woo-smart-wishlist' ); ?></th>
1139
+ <td>
1140
+ <input type="text" class="regular-text"
1141
+ name="woosw_localization[empty_button]"
1142
+ value="<?php echo esc_attr( self::localization( 'empty_button' ) ); ?>"
1143
+ placeholder="<?php esc_attr_e( 'remove all', 'woo-smart-wishlist' ); ?>"/>
1144
+ </td>
1145
+ </tr>
1146
+ <tr>
1147
+ <th><?php esc_html_e( 'Add note', 'woo-smart-wishlist' ); ?></th>
1148
+ <td>
1149
+ <input type="text" class="regular-text"
1150
+ name="woosw_localization[add_note]"
1151
+ value="<?php echo esc_attr( self::localization( 'add_note' ) ); ?>"
1152
+ placeholder="<?php esc_attr_e( 'Add note', 'woo-smart-wishlist' ); ?>"/>
1153
+ </td>
1154
+ </tr>
1155
+ <tr>
1156
+ <th><?php esc_html_e( 'Save note', 'woo-smart-wishlist' ); ?></th>
1157
+ <td>
1158
+ <input type="text" class="regular-text"
1159
+ name="woosw_localization[save_note]"
1160
+ value="<?php echo esc_attr( self::localization( 'save_note' ) ); ?>"
1161
+ placeholder="<?php esc_attr_e( 'Save', 'woo-smart-wishlist' ); ?>"/>
1162
+ </td>
1163
+ </tr>
1164
+ <tr>
1165
+ <th><?php esc_html_e( 'Open wishlist page', 'woo-smart-wishlist' ); ?></th>
1166
+ <td>
1167
+ <input type="text" class="regular-text"
1168
+ name="woosw_localization[open_page]"
1169
+ value="<?php echo esc_attr( self::localization( 'open_page' ) ); ?>"
1170
+ placeholder="<?php esc_attr_e( 'Open wishlist page', 'woo-smart-wishlist' ); ?>"/>
1171
+ </td>
1172
+ </tr>
1173
+ <tr>
1174
+ <th><?php esc_html_e( 'Continue shopping', 'woo-smart-wishlist' ); ?></th>
1175
+ <td>
1176
+ <input type="text" class="regular-text"
1177
+ name="woosw_localization[continue]"
1178
+ value="<?php echo esc_attr( self::localization( 'continue' ) ); ?>"
1179
+ placeholder="<?php esc_attr_e( 'Continue shopping', 'woo-smart-wishlist' ); ?>"/>
1180
+ </td>
1181
+ </tr>
1182
+ <tr>
1183
+ <th><?php esc_html_e( 'Menu item label', 'woo-smart-wishlist' ); ?></th>
1184
+ <td>
1185
+ <input type="text" class="regular-text"
1186
+ name="woosw_localization[menu_label]"
1187
+ value="<?php echo esc_attr( self::localization( 'menu_label' ) ); ?>"
1188
+ placeholder="<?php esc_attr_e( 'Wishlist', 'woo-smart-wishlist' ); ?>"/>
1189
+ </td>
1190
+ </tr>
1191
+ <tr class="heading">
1192
+ <th scope="row"><?php esc_html_e( 'Multiple Wishlist', 'woo-smart-wishlist' ); ?></th>
1193
+ <td></td>
1194
+ </tr>
1195
+ <tr>
1196
+ <th scope="row"><?php esc_html_e( 'Primary wishlist name', 'woo-smart-wishlist' ); ?></th>
1197
+ <td>
1198
+ <input type="text" name="woosw_localization[primary_name]"
1199
+ class="regular-text"
1200
+ value="<?php echo esc_attr( self::localization( 'primary_name' ) ); ?>"
1201
+ placeholder="<?php esc_attr_e( 'Wishlist', 'woo-smart-wishlist' ); ?>"/>
1202
+ </td>
1203
+ </tr>
1204
+ <tr>
1205
+ <th scope="row"><?php esc_html_e( 'Manage wishlists', 'woo-smart-wishlist' ); ?></th>
1206
+ <td>
1207
+ <input type="text" name="woosw_localization[manage_wishlists]"
1208
+ class="regular-text"
1209
+ value="<?php echo esc_attr( self::localization( 'manage_wishlists' ) ); ?>"
1210
+ placeholder="<?php esc_attr_e( 'Manage wishlists', 'woo-smart-wishlist' ); ?>"/>
1211
+ </td>
1212
+ </tr>
1213
+ <tr>
1214
+ <th scope="row"><?php esc_html_e( 'Set default', 'woo-smart-wishlist' ); ?></th>
1215
+ <td>
1216
+ <input type="text" name="woosw_localization[set_default]"
1217
+ class="regular-text"
1218
+ value="<?php echo esc_attr( self::localization( 'set_default' ) ); ?>"
1219
+ placeholder="<?php esc_attr_e( 'set default', 'woo-smart-wishlist' ); ?>"/>
1220
+ </td>
1221
+ </tr>
1222
+ <tr>
1223
+ <th scope="row"><?php esc_html_e( 'Default', 'woo-smart-wishlist' ); ?></th>
1224
+ <td>
1225
+ <input type="text" name="woosw_localization[is_default]"
1226
+ class="regular-text"
1227
+ value="<?php echo esc_attr( self::localization( 'is_default' ) ); ?>"
1228
+ placeholder="<?php esc_attr_e( 'default', 'woo-smart-wishlist' ); ?>"/>
1229
+ </td>
1230
+ </tr>
1231
+ <tr>
1232
+ <th scope="row"><?php esc_html_e( 'Delete', 'woo-smart-wishlist' ); ?></th>
1233
+ <td>
1234
+ <input type="text" name="woosw_localization[delete]"
1235
+ class="regular-text"
1236
+ value="<?php echo esc_attr( self::localization( 'delete' ) ); ?>"
1237
+ placeholder="<?php esc_attr_e( 'delete', 'woo-smart-wishlist' ); ?>"/>
1238
+ </td>
1239
+ </tr>
1240
+ <tr>
1241
+ <th scope="row"><?php esc_html_e( 'Wishlist name placeholder', 'woo-smart-wishlist' ); ?></th>
1242
+ <td>
1243
+ <input type="text" name="woosw_localization[placeholder_name]"
1244
+ class="regular-text"
1245
+ value="<?php echo esc_attr( self::localization( 'placeholder_name' ) ); ?>"
1246
+ placeholder="<?php esc_attr_e( 'New Wishlist', 'woo-smart-wishlist' ); ?>"/>
1247
+ </td>
1248
+ </tr>
1249
+ <tr>
1250
+ <th scope="row"><?php esc_html_e( 'Add new wishlist', 'woo-smart-wishlist' ); ?></th>
1251
+ <td>
1252
+ <input type="text" name="woosw_localization[add_wishlist]"
1253
+ class="regular-text"
1254
+ value="<?php echo esc_attr( self::localization( 'add_wishlist' ) ); ?>"
1255
+ placeholder="<?php esc_attr_e( 'Add New Wishlist', 'woo-smart-wishlist' ); ?>"/>
1256
+ </td>
1257
+ </tr>
1258
+ <tr class="heading">
1259
+ <th scope="row"><?php esc_html_e( 'Message', 'woo-smart-wishlist' ); ?></th>
1260
+ <td></td>
1261
+ </tr>
1262
+ <tr>
1263
+ <th><?php esc_html_e( 'Added to the wishlist', 'woo-smart-wishlist' ); ?></th>
1264
+ <td>
1265
+ <input type="text" class="regular-text"
1266
+ name="woosw_localization[added_message]"
1267
+ value="<?php echo esc_attr( self::localization( 'added_message' ) ); ?>"
1268
+ placeholder="<?php esc_attr_e( 'Added to the wishlist!', 'woo-smart-wishlist' ); ?>"/>
1269
+ </td>
1270
+ </tr>
1271
+ <tr>
1272
+ <th><?php esc_html_e( 'Already in the wishlist', 'woo-smart-wishlist' ); ?></th>
1273
+ <td>
1274
+ <input type="text" class="regular-text"
1275
+ name="woosw_localization[already_message]"
1276
+ value="<?php echo esc_attr( self::localization( 'already_message' ) ); ?>"
1277
+ placeholder="<?php esc_attr_e( 'Already in the wishlist!', 'woo-smart-wishlist' ); ?>"/>
1278
+ </td>
1279
+ </tr>
1280
+ <tr>
1281
+ <th><?php esc_html_e( 'Removed from wishlist', 'woo-smart-wishlist' ); ?></th>
1282
+ <td>
1283
+ <input type="text" class="regular-text"
1284
+ name="woosw_localization[removed_message]"
1285
+ value="<?php echo esc_attr( self::localization( 'removed_message' ) ); ?>"
1286
+ placeholder="<?php esc_attr_e( 'Removed from wishlist!', 'woo-smart-wishlist' ); ?>"/>
1287
+ </td>
1288
+ </tr>
1289
+ <tr>
1290
+ <th><?php esc_html_e( 'Empty wishlist confirm', 'woo-smart-wishlist' ); ?></th>
1291
+ <td>
1292
+ <input type="text" class="regular-text"
1293
+ name="woosw_localization[empty_confirm]"
1294
+ value="<?php echo esc_attr( self::localization( 'empty_confirm' ) ); ?>"
1295
+ placeholder="<?php esc_attr_e( 'This action cannot be undone. Are you sure?', 'woo-smart-wishlist' ); ?>"/>
1296
+ </td>
1297
+ </tr>
1298
+ <tr>
1299
+ <th><?php esc_html_e( 'Empty wishlist notice', 'woo-smart-wishlist' ); ?></th>
1300
+ <td>
1301
+ <input type="text" class="regular-text"
1302
+ name="woosw_localization[empty_notice]"
1303
+ value="<?php echo esc_attr( self::localization( 'empty_notice' ) ); ?>"
1304
+ placeholder="<?php esc_attr_e( 'All products were removed from your wishlist!', 'woo-smart-wishlist' ); ?>"/>
1305
+ </td>
1306
+ </tr>
1307
+ <tr>
1308
+ <th><?php esc_html_e( 'Empty wishlist', 'woo-smart-wishlist' ); ?></th>
1309
+ <td>
1310
+ <input type="text" class="regular-text"
1311
+ name="woosw_localization[empty_message]"
1312
+ value="<?php echo esc_attr( self::localization( 'empty_message' ) ); ?>"
1313
+ placeholder="<?php esc_attr_e( 'There are no products on the wishlist!', 'woo-smart-wishlist' ); ?>"/>
1314
+ </td>
1315
+ </tr>
1316
+ <tr>
1317
+ <th><?php esc_html_e( 'Delete wishlist confirm', 'woo-smart-wishlist' ); ?></th>
1318
+ <td>
1319
+ <input type="text" class="regular-text"
1320
+ name="woosw_localization[delete_confirm]"
1321
+ value="<?php echo esc_attr( self::localization( 'delete_confirm' ) ); ?>"
1322
+ placeholder="<?php esc_attr_e( 'This action cannot be undone. Are you sure?', 'woo-smart-wishlist' ); ?>"/>
1323
+ </td>
1324
+ </tr>
1325
+ <tr>
1326
+ <th><?php esc_html_e( 'Product does not exist', 'woo-smart-wishlist' ); ?></th>
1327
+ <td>
1328
+ <input type="text" class="regular-text"
1329
+ name="woosw_localization[not_exist_message]"
1330
+ value="<?php echo esc_attr( self::localization( 'not_exist_message' ) ); ?>"
1331
+ placeholder="<?php esc_attr_e( 'The product does not exist on the wishlist!', 'woo-smart-wishlist' ); ?>"/>
1332
+ </td>
1333
+ </tr>
1334
+ <tr>
1335
+ <th><?php esc_html_e( 'Need to login', 'woo-smart-wishlist' ); ?></th>
1336
+ <td>
1337
+ <input type="text" class="regular-text"
1338
+ name="woosw_localization[login_message]"
1339
+ value="<?php echo esc_attr( self::localization( 'login_message' ) ); ?>"
1340
+ placeholder="<?php esc_attr_e( 'Please log in to use the wishlist!', 'woo-smart-wishlist' ); ?>"/>
1341
+ </td>
1342
+ </tr>
1343
+ <tr>
1344
+ <th><?php esc_html_e( 'Copied wishlist link', 'woo-smart-wishlist' ); ?></th>
1345
+ <td>
1346
+ <input type="text" class="regular-text"
1347
+ name="woosw_localization[copied]"
1348
+ value="<?php echo esc_attr( self::localization( 'copied' ) ); ?>"
1349
+ placeholder="<?php esc_html_e( 'Copied the wishlist link:', 'woo-smart-wishlist' ); ?>"/>
1350
+ </td>
1351
+ </tr>
1352
+ <tr>
1353
+ <th><?php esc_html_e( 'Have an error', 'woo-smart-wishlist' ); ?></th>
1354
+ <td>
1355
+ <input type="text" class="regular-text"
1356
+ name="woosw_localization[error_message]"
1357
+ value="<?php echo esc_attr( self::localization( 'error_message' ) ); ?>"
1358
+ placeholder="<?php esc_attr_e( 'Have an error, please try again!', 'woo-smart-wishlist' ); ?>"/>
1359
+ </td>
1360
+ </tr>
1361
+ <tr class="submit">
1362
+ <th colspan="2">
1363
+ <input type="submit" name="submit" class="button button-primary"
1364
+ value="<?php esc_attr_e( 'Update Options', 'woo-smart-wishlist' ); ?>"/>
1365
+ <input type="hidden" name="action" value="update"/>
1366
+ <input type="hidden" name="page_options" value="woosw_localization"/>
1367
+ </th>
1368
+ </tr>
1369
+ </table>
1370
+ </form>
1371
+ <?php } elseif ( $active_tab === 'premium' ) { ?>
1372
+ <div class="wpclever_settings_page_content_text">
1373
+ <p>Get the Premium Version just $29! <a
1374
+ href="https://wpclever.net/downloads/smart-wishlist?utm_source=pro&utm_medium=woosw&utm_campaign=wporg"
1375
+ target="_blank">https://wpclever.net/downloads/smart-wishlist</a>
1376
+ </p>
1377
+ <p><strong>Extra features for Premium Version:</strong></p>
1378
+ <ul style="margin-bottom: 0">
1379
+ <li>- Enable multiple wishlist per user.</li>
1380
+ <li>- Enable note for each product.</li>
1381
+ <li>- Get lifetime update & premium support.</li>
1382
+ </ul>
1383
+ </div>
1384
+ <?php } ?>
1385
+ </div>
1386
+ </div>
1387
+ <?php
1388
+ }
1389
+
1390
+ function wp_enqueue_scripts() {
1391
+ // perfect srollbar
1392
+ if ( get_option( 'woosw_perfect_scrollbar', 'yes' ) === 'yes' ) {
1393
+ wp_enqueue_style( 'perfect-scrollbar', WOOSW_URI . 'assets/libs/perfect-scrollbar/css/perfect-scrollbar.min.css' );
1394
+ wp_enqueue_style( 'perfect-scrollbar-wpc', WOOSW_URI . 'assets/libs/perfect-scrollbar/css/custom-theme.css' );
1395
+ wp_enqueue_script( 'perfect-scrollbar', WOOSW_URI . 'assets/libs/perfect-scrollbar/js/perfect-scrollbar.jquery.min.js', array( 'jquery' ), WOOSW_VERSION, true );
1396
+ }
1397
+
1398
+ // feather icons
1399
+ wp_enqueue_style( 'woosw-feather', WOOSW_URI . 'assets/libs/feather/feather.css' );
1400
+
1401
+ // main style
1402
+ wp_enqueue_style( 'woosw-frontend', WOOSW_URI . 'assets/css/frontend.css', array(), WOOSW_VERSION );
1403
+ $color_default = apply_filters( 'woosw_color_default', '#5fbd74' );
1404
+ $color = apply_filters( 'woosw_color', get_option( 'woosw_color', $color_default ) );
1405
+ $custom_css = ".woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-bot .woosw-notice { background-color: {$color}; } ";
1406
+ $custom_css .= ".woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-bot .woosw-popup-content-bot-inner .woosw-page a:hover, .woosw-popup .woosw-popup-inner .woosw-popup-content .woosw-popup-content-bot .woosw-popup-content-bot-inner .woosw-continue:hover { color: {$color}; } ";
1407
+ wp_add_inline_style( 'woosw-frontend', $custom_css );
1408
+
1409
+ // main js
1410
+ wp_enqueue_script( 'woosw-frontend', WOOSW_URI . 'assets/js/frontend.js', array( 'jquery' ), WOOSW_VERSION, true );
1411
+
1412
+ // localize
1413
+ wp_localize_script( 'woosw-frontend', 'woosw_vars', array(
1414
+ 'ajax_url' => admin_url( 'admin-ajax.php' ),
1415
+ 'menu_action' => get_option( 'woosw_menu_action', 'open_page' ),
1416
+ 'perfect_scrollbar' => get_option( 'woosw_perfect_scrollbar', 'yes' ),
1417
+ 'wishlist_url' => self::get_url(),
1418
+ 'button_action' => get_option( 'woosw_button_action', 'list' ),
1419
+ 'button_action_added' => get_option( 'woosw_button_action_added', 'popup' ),
1420
+ 'empty_confirm' => self::localization( 'empty_confirm', esc_html__( 'This action cannot be undone. Are you sure?', 'woo-smart-wishlist' ) ),
1421
+ 'delete_confirm' => self::localization( 'delete_confirm', esc_html__( 'This action cannot be undone. Are you sure?', 'woo-smart-wishlist' ) ),
1422
+ 'copied_text' => self::localization( 'copied', esc_html__( 'Copied the wishlist link:', 'woo-smart-wishlist' ) ),
1423
+ 'menu_text' => apply_filters( 'woosw_menu_item_label', self::localization( 'menu_label', esc_html__( 'Wishlist', 'woo-smart-wishlist' ) ) ),
1424
+ 'button_text' => apply_filters( 'woosw_button_text', self::localization( 'button', esc_html__( 'Add to wishlist', 'woo-smart-wishlist' ) ) ),
1425
+ 'button_text_added' => apply_filters( 'woosw_button_text_added', self::localization( 'button_added', esc_html__( 'Browse wishlist', 'woo-smart-wishlist' ) ) ),
1426
+ )
1427
+ );
1428
+ }
1429
+
1430
+ function admin_enqueue_scripts() {
1431
+ wp_enqueue_style( 'wp-color-picker' );
1432
+ wp_enqueue_style( 'woosw-backend', WOOSW_URI . 'assets/css/backend.css', array(), WOOSW_VERSION );
1433
+ wp_enqueue_script( 'woosw-backend', WOOSW_URI . 'assets/js/backend.js', array(
1434
+ 'jquery',
1435
+ 'wp-color-picker',
1436
+ 'jquery-ui-dialog'
1437
+ ), WOOSW_VERSION, true );
1438
+ }
1439
+
1440
+ function action_links( $links, $file ) {
1441
+ static $plugin;
1442
+
1443
+ if ( ! isset( $plugin ) ) {
1444
+ $plugin = plugin_basename( __FILE__ );
1445
+ }
1446
+
1447
+ if ( $plugin === $file ) {
1448
+ $settings = '<a href="' . admin_url( 'admin.php?page=wpclever-woosw&tab=settings' ) . '">' . esc_html__( 'Settings', 'woo-smart-wishlist' ) . '</a>';
1449
+ $links['premium'] = '<a href="' . admin_url( 'admin.php?page=wpclever-woosw&tab=premium' ) . '" style="color: #c9356e">' . esc_html__( 'Premium Version', 'woo-smart-wishlist' ) . '</a>';
1450
+ array_unshift( $links, $settings );
1451
+ }
1452
+
1453
+ return (array) $links;
1454
+ }
1455
+
1456
+ function row_meta( $links, $file ) {
1457
+ static $plugin;
1458
+
1459
+ if ( ! isset( $plugin ) ) {
1460
+ $plugin = plugin_basename( __FILE__ );
1461
+ }
1462
+
1463
+ if ( $plugin === $file ) {
1464
+ $row_meta = array(
1465
+ 'support' => '<a href="' . esc_url( WOOSW_DISCUSSION ) . '" target="_blank">' . esc_html__( 'Community support', 'woo-smart-wishlist' ) . '</a>',
1466
+ );
1467
+
1468
+ return array_merge( $links, $row_meta );
1469
+ }
1470
+
1471
+ return (array) $links;
1472
+ }
1473
+
1474
+ function get_items( $key ) {
1475
+ $products = get_option( 'woosw_list_' . $key );
1476
+ $link = get_option( 'woosw_link', 'yes' );
1477
+ ob_start();
1478
+
1479
+ do_action( 'woosw_before_items', $key, $products );
1480
+
1481
+ if ( is_array( $products ) && ( count( $products ) > 0 ) ) {
1482
+ echo '<table class="woosw-items">';
1483
+
1484
+ do_action( 'woosw_wishlist_items_before', $key, $products );
1485
+
1486
+ foreach ( $products as $product_id => $product_data ) {
1487
+ $product = wc_get_product( $product_id );
1488
+
1489
+ if ( ! $product ) {
1490
+ continue;
1491
+ }
1492
+
1493
+ if ( is_array( $product_data ) && isset( $product_data['time'] ) ) {
1494
+ $product_time = date_i18n( get_option( 'date_format' ), $product_data['time'] );
1495
+ } else {
1496
+ // for old version
1497
+ $product_time = date_i18n( get_option( 'date_format' ), $product_data );
1498
+ }
1499
+
1500
+ if ( is_array( $product_data ) && ! empty( $product_data['note'] ) ) {
1501
+ $product_note = $product_data['note'];
1502
+ } else {
1503
+ $product_note = '';
1504
+ } ?>
1505
+ <tr class="woosw-item woosw-item-<?php echo esc_attr( $product_id ); ?>"
1506
+ data-id="<?php echo esc_attr( $product_id ); ?>">
1507
+
1508
+ <?php do_action( 'woosw_wishlist_item_before', $product, $product_id, $key ); ?>
1509
+
1510
+ <?php if ( self::can_edit( $key ) ) { ?>
1511
+ <td class="woosw-item--remove"><span></span></td>
1512
+ <?php } ?>
1513
+
1514
+ <td class="woosw-item--image">
1515
+ <?php if ( $link !== 'no' ) { ?>
1516
+ <a <?php echo ( $link === 'yes_popup' ? 'class="woosq-link" data-id="' . $product_id . '" data-context="woosw"' : '' ) . ' href="' . $product->get_permalink() . '" ' . ( $link === 'yes_blank' ? 'target="_blank"' : '' ); ?>>
1517
+ <?php echo apply_filters( 'woosw_item_image', $product->get_image() ); ?>
1518
+ </a>
1519
+ <?php } else {
1520
+ echo apply_filters( 'woosw_item_image', $product->get_image() );
1521
+ }
1522
+
1523
+ do_action( 'woosw_wishlist_item_image', $product, $product_id, $key ); ?>
1524
+ </td>
1525
+
1526
+ <td class="woosw-item--info">
1527
+ <?php if ( $link !== 'no' ) {
1528
+ echo apply_filters( 'woosw_item_name', '<div class="woosw-item--name"><a ' . ( $link === 'yes_popup' ? 'class="woosq-link" data-id="' . $product_id . '" data-context="woosw"' : '' ) . ' href="' . $product->get_permalink() . '" ' . ( $link === 'yes_blank' ? 'target="_blank"' : '' ) . '>' . $product->get_name() . '</a></div>', $product );
1529
+ } else {
1530
+ echo apply_filters( 'woosw_item_name', '<div class="woosw-item--name">' . $product->get_name() . '</div>', $product );
1531
+ }
1532
+
1533
+ echo apply_filters( 'woosw_item_price', '<div class="woosw-item--price">' . $product->get_price_html() . '</div>', $product );
1534
+
1535
+ echo apply_filters( 'woosw_item_time', '<div class="woosw-item--time">' . $product_time . '</div>', $product );
1536
+
1537
+ do_action( 'woosw_wishlist_item_info', $product, $product_id, $key ); ?>
1538
+ </td>
1539
+
1540
+ <td class="woosw-item--actions">
1541
+ <div class="woosw-item--stock">
1542
+ <?php echo( $product->is_in_stock() ? esc_html__( 'In stock', 'woo-smart-wishlist' ) : esc_html__( 'Out of stock', 'woo-smart-wishlist' ) ); ?>
1543
+ </div>
1544
+
1545
+ <div class="woosw-item--add">
1546
+ <?php echo do_shortcode( '[add_to_cart style="" show_price="false" id="' . $product_id . '"]' ); ?>
1547
+ </div>
1548
+
1549
+ <?php do_action( 'woosw_wishlist_item_actions', $product, $product_id, $key ); ?>
1550
+ </td>
1551
+
1552
+ <?php do_action( 'woosw_wishlist_item_after', $product, $product_id, $key ); ?>
1553
+ </tr>
1554
+ <?php }
1555
+
1556
+ do_action( 'woosw_wishlist_items_after', $key, $products );
1557
+
1558
+ echo '</table>';
1559
+ } else { ?>
1560
+ <div class="woosw-popup-content-mid-massage">
1561
+ <?php echo self::localization( 'empty_message', esc_html__( 'There are no products on the wishlist!', 'woo-smart-wishlist' ) ); ?>
1562
+ </div>
1563
+ <?php }
1564
+
1565
+ do_action( 'woosw_after_items', $key, $products );
1566
+
1567
+ $items_html = ob_get_clean();
1568
+
1569
+ return apply_filters( 'woosw_wishlist_items', $items_html, $key, $products );
1570
+ }
1571
+
1572
+ function woosw_nav_menu_items( $items, $args ) {
1573
+ $selected = false;
1574
+ $saved_menus = get_option( 'woosw_menus', array() );
1575
+
1576
+ if ( ! is_array( $saved_menus ) || empty( $saved_menus ) || ! property_exists( $args, 'menu' ) ) {
1577
+ return $items;
1578
+ }
1579
+
1580
+ if ( $args->menu instanceof WP_Term ) {
1581
+ // menu object
1582
+ if ( in_array( $args->menu->term_id, $saved_menus, false ) ) {
1583
+ $selected = true;
1584
+ }
1585
+ } elseif ( is_numeric( $args->menu ) ) {
1586
+ // menu id
1587
+ if ( in_array( $args->menu, $saved_menus, false ) ) {
1588
+ $selected = true;
1589
+ }
1590
+ } elseif ( is_string( $args->menu ) ) {
1591
+ // menu slug or name
1592
+ $menu = get_term_by( 'name', $args->menu, 'nav_menu' );
1593
+
1594
+ if ( ! $menu ) {
1595
+ $menu = get_term_by( 'slug', $args->menu, 'nav_menu' );
1596
+ }
1597
+
1598
+ if ( $menu && in_array( $menu->term_id, $saved_menus, false ) ) {
1599
+ $selected = true;
1600
+ }
1601
+ }
1602
+
1603
+ if ( $selected ) {
1604
+ $menu_item = '<li class="' . apply_filters( 'woosw_menu_item_class', 'menu-item woosw-menu-item menu-item-type-woosw' ) . '"><a href="' . self::get_url() . '"><span class="woosw-menu-item-inner" data-count="' . self::get_count() . '">' . apply_filters( 'woosw_menu_item_label', self::localization( 'menu_label', esc_html__( 'Wishlist', 'woo-smart-wishlist' ) ) ) . '</span></a></li>';
1605
+ $items .= apply_filters( 'woosw_menu_item', $menu_item );
1606
+ }
1607
+
1608
+ return $items;
1609
+ }
1610
+
1611
+ function wp_footer() {
1612
+ if ( is_admin() ) {
1613
+ return;
1614
+ }
1615
+
1616
+ echo '<div id="woosw_wishlist" class="woosw-popup"></div>';
1617
+ }
1618
+
1619
+ function wishlist_content( $key = false, $message = '' ) {
1620
+ if ( empty( $key ) ) {
1621
+ $key = self::get_key();
1622
+ }
1623
+
1624
+ if ( $products = get_option( 'woosw_list_' . $key ) ) {
1625
+ $count = count( $products );
1626
+ } else {
1627
+ $count = 0;
1628
+ }
1629
+
1630
+ $name = self::localization( 'popup_heading', esc_html__( 'Wishlist', 'woo-smart-wishlist' ) );
1631
+
1632
+ ob_start();
1633
+ ?>
1634
+ <div class="woosw-popup-inner" data-key="<?php echo esc_attr( $key ); ?>">
1635
+ <div class="woosw-popup-content">
1636
+ <div class="woosw-popup-content-top">
1637
+ <span class="woosw-name"><?php echo esc_html( $name ); ?></span>
1638
+ <?php
1639
+ echo '<span class="woosw-count-wrapper">';
1640
+ echo '<span class="woosw-count">' . esc_html( $count ) . '</span>';
1641
+
1642
+ if ( get_option( 'woosw_empty_button', 'no' ) === 'yes' ) {
1643
+ echo '<span class="woosw-empty"' . ( $count ? '' : ' style="display:none"' ) . '>' . self::localization( 'empty_button', esc_html__( 'remove all', 'woo-smart-wishlist' ) ) . '</span>';
1644
+ }
1645
+ echo '</span>';
1646
+ ?>
1647
+ <span class="woosw-popup-close"></span>
1648
+ </div>
1649
+ <div class="woosw-popup-content-mid">
1650
+ <?php if ( ! empty( $message ) ) {
1651
+ echo '<div class="woosw-popup-content-mid-massage">' . $message . '</div>';
1652
+ } else {
1653
+ echo self::get_items( $key );
1654
+ } ?>
1655
+ </div>
1656
+ <div class="woosw-popup-content-bot">
1657
+ <div class="woosw-popup-content-bot-inner">
1658
+ <a class="woosw-page" href="<?php echo self::get_url( $key, true ); ?>">
1659
+ <?php echo self::localization( 'open_page', esc_html__( 'Open wishlist page', 'woo-smart-wishlist' ) ); ?>
1660
+ </a>
1661
+ <span class="woosw-continue"
1662
+ data-url="<?php echo esc_url( get_option( 'woosw_continue_url' ) ); ?>">
1663
+ <?php echo self::localization( 'continue', esc_html__( 'Continue shopping', 'woo-smart-wishlist' ) ); ?>
1664
+ </span>
1665
+ </div>
1666
+ <div class="woosw-notice"></div>
1667
+ </div>
1668
+ </div>
1669
+ </div>
1670
+ <?php
1671
+ return ob_get_clean();
1672
+ }
1673
+
1674
+ function update_product_count( $product_id, $action = 'add' ) {
1675
+ $meta_count = 'woosw_count';
1676
+ $meta_time = ( $action === 'add' ? 'woosw_add' : 'woosw_remove' );
1677
+ $count = get_post_meta( $product_id, $meta_count, true );
1678
+ $new_count = 0;
1679
+
1680
+ if ( $action === 'add' ) {
1681
+ if ( $count ) {
1682
+ $new_count = absint( $count ) + 1;
1683
+ } else {
1684
+ $new_count = 1;
1685
+ }
1686
+ } elseif ( $action === 'remove' ) {
1687
+ if ( $count && ( absint( $count ) > 1 ) ) {
1688
+ $new_count = absint( $count ) - 1;
1689
+ } else {
1690
+ $new_count = 0;
1691
+ }
1692
+ }
1693
+
1694
+ update_post_meta( $product_id, $meta_count, $new_count );
1695
+ update_post_meta( $product_id, $meta_time, time() );
1696
+ }
1697
+
1698
+ public static function generate_key() {
1699
+ $key = '';
1700
+ $key_str = apply_filters( 'woosw_key_characters', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' );
1701
+ $key_str_len = strlen( $key_str );
1702
+
1703
+ for ( $i = 0; $i < apply_filters( 'woosw_key_length', 6 ); $i ++ ) {
1704
+ $key .= $key_str[ random_int( 0, $key_str_len - 1 ) ];
1705
+ }
1706
+
1707
+ return apply_filters( 'woosw_generate_key', $key );
1708
+ }
1709
+
1710
+ public static function exists_key( $key ) {
1711
+ if ( get_option( 'woosw_list_' . $key ) ) {
1712
+ return true;
1713
+ }
1714
+
1715
+ return false;
1716
+ }
1717
+
1718
+ public static function can_edit( $key ) {
1719
+ if ( is_user_logged_in() ) {
1720
+ if ( get_user_meta( get_current_user_id(), 'woosw_key', true ) === $key ) {
1721
+ return true;
1722
+ }
1723
+
1724
+ if ( ( $keys = get_user_meta( get_current_user_id(), 'woosw_keys', true ) ) && isset( $keys[ $key ] ) ) {
1725
+ return true;
1726
+ }
1727
+ } else {
1728
+ if ( isset( $_COOKIE['woosw_key'] ) && ( $_COOKIE['woosw_key'] === $key ) ) {
1729
+ return true;
1730
+ }
1731
+ }
1732
+
1733
+ return false;
1734
+ }
1735
+
1736
+ public static function get_page_id() {
1737
+ if ( get_option( 'woosw_page_id' ) ) {
1738
+ return absint( get_option( 'woosw_page_id' ) );
1739
+ }
1740
+
1741
+ return false;
1742
+ }
1743
+
1744
+ public static function get_key( $new = false ) {
1745
+ if ( $new ) {
1746
+ // get a new key for multiple wishlist
1747
+ $key = self::generate_key();
1748
+
1749
+ while ( self::exists_key( $key ) ) {
1750
+ $key = self::generate_key();
1751
+ }
1752
+
1753
+ return $key;
1754
+ } else {
1755
+ if ( ! is_user_logged_in() && ( get_option( 'woosw_disable_unauthenticated', 'no' ) === 'yes' ) ) {
1756
+ return '#';
1757
+ }
1758
+
1759
+ if ( is_user_logged_in() && ( ( $user_id = get_current_user_id() ) > 0 ) ) {
1760
+ $key = get_user_meta( $user_id, 'woosw_key', true );
1761
+
1762
+ if ( empty( $key ) ) {
1763
+ $key = self::generate_key();
1764
+
1765
+ while ( self::exists_key( $key ) ) {
1766
+ $key = self::generate_key();
1767
+ }
1768
+
1769
+ // set a new key
1770
+ update_user_meta( $user_id, 'woosw_key', $key );
1771
+
1772
+ // multiple wishlist
1773
+ update_user_meta( $user_id, 'woosw_keys', array(
1774
+ $key => array(
1775
+ 'type' => 'primary',
1776
+ 'name' => '',
1777
+ 'time' => ''
1778
+ )
1779
+ ) );
1780
+ }
1781
+
1782
+ return $key;
1783
+ }
1784
+
1785
+ if ( isset( $_COOKIE['woosw_key'] ) ) {
1786
+ return esc_attr( $_COOKIE['woosw_key'] );
1787
+ }
1788
+
1789
+ return 'WOOSW';
1790
+ }
1791
+ }
1792
+
1793
+ public static function get_url( $key = null, $full = false ) {
1794
+ $url = home_url( '/' );
1795
+
1796
+ if ( $page_id = self::get_page_id() ) {
1797
+ if ( $full ) {
1798
+ if ( ! $key ) {
1799
+ $key = self::get_key();
1800
+ }
1801
+
1802
+ if ( get_option( 'permalink_structure' ) !== '' ) {
1803
+ $url = trailingslashit( get_permalink( $page_id ) ) . $key;
1804
+ } else {
1805
+ $url = get_permalink( $page_id ) . '&woosw_id=' . $key;
1806
+ }
1807
+ } else {
1808
+ $url = get_permalink( $page_id );
1809
+ }
1810
+ }
1811
+
1812
+ return apply_filters( 'woosw_wishlist_url', $url, $key );
1813
+ }
1814
+
1815
+ public static function get_count( $key = null ) {
1816
+ if ( ! $key ) {
1817
+ $key = self::get_key();
1818
+ }
1819
+
1820
+ if ( ( $key != '' ) && ( $products = get_option( 'woosw_list_' . $key ) ) && is_array( $products ) ) {
1821
+ $count = count( $products );
1822
+ } else {
1823
+ $count = 0;
1824
+ }
1825
+
1826
+ return apply_filters( 'woosw_wishlist_count', $count, $key );
1827
+ }
1828
+
1829
+ function woosw_product_columns( $columns ) {
1830
+ $columns['woosw'] = esc_html__( 'Wishlist', 'woo-smart-wishlist' );
1831
+
1832
+ return $columns;
1833
+ }
1834
+
1835
+ function woosw_product_posts_custom_column( $column, $postid ) {
1836
+ if ( $column == 'woosw' ) {
1837
+ if ( ( $count = (int) get_post_meta( $postid, 'woosw_count', true ) ) > 0 ) {
1838
+ echo '<a href="#" class="woosw_action" data-pid="' . $postid . '">' . $count . '</a>';
1839
+ }
1840
+ }
1841
+ }
1842
+
1843
+ function woosw_product_sortable_columns( $columns ) {
1844
+ $columns['woosw'] = 'woosw';
1845
+
1846
+ return $columns;
1847
+ }
1848
+
1849
+ function woosw_product_request( $vars ) {
1850
+ if ( isset( $vars['orderby'] ) && 'woosw' == $vars['orderby'] ) {
1851
+ $vars = array_merge( $vars, array(
1852
+ 'meta_key' => 'woosw_count',
1853
+ 'orderby' => 'meta_value_num'
1854
+ ) );
1855
+ }
1856
+
1857
+ return $vars;
1858
+ }
1859
+
1860
+ function woosw_wp_login( $user_login, $user ) {
1861
+ if ( isset( $user->data->ID ) ) {
1862
+ $key = get_user_meta( $user->data->ID, 'woosw_key', true );
1863
+
1864
+ if ( empty( $key ) ) {
1865
+ $key = self::generate_key();
1866
+
1867
+ while ( self::exists_key( $key ) ) {
1868
+ $key = self::generate_key();
1869
+ }
1870
+
1871
+ // set a new key
1872
+ update_user_meta( $user->data->ID, 'woosw_key', $key );
1873
+ }
1874
+
1875
+ // multiple wishlist
1876
+ if ( ! get_user_meta( $user->data->ID, 'woosw_keys', true ) ) {
1877
+ update_user_meta( $user->data->ID, 'woosw_keys', array(
1878
+ $key => array(
1879
+ 'type' => 'primary',
1880
+ 'name' => '',
1881
+ 'time' => ''
1882
+ )
1883
+ ) );
1884
+ }
1885
+
1886
+ $secure = apply_filters( 'woosw_cookie_secure', wc_site_is_https() && is_ssl() );
1887
+ $httponly = apply_filters( 'woosw_cookie_httponly', true );
1888
+
1889
+ if ( isset( $_COOKIE['woosw_key'] ) && ! empty( $_COOKIE['woosw_key'] ) ) {
1890
+ wc_setcookie( 'woosw_key_ori', esc_attr( $_COOKIE['woosw_key'] ), time() + 604800, $secure, $httponly );
1891
+ }
1892
+
1893
+ wc_setcookie( 'woosw_key', $key, time() + 604800, $secure, $httponly );
1894
+ }
1895
+ }
1896
+
1897
+ function woosw_wp_logout( $user_id ) {
1898
+ if ( isset( $_COOKIE['woosw_key_ori'] ) && ! empty( $_COOKIE['woosw_key_ori'] ) ) {
1899
+ $secure = apply_filters( 'woosw_cookie_secure', wc_site_is_https() && is_ssl() );
1900
+ $httponly = apply_filters( 'woosw_cookie_httponly', true );
1901
+
1902
+ wc_setcookie( 'woosw_key', esc_attr( $_COOKIE['woosw_key_ori'] ), time() + 604800, $secure, $httponly );
1903
+ } else {
1904
+ unset( $_COOKIE['woosw_key_ori'] );
1905
+ unset( $_COOKIE['woosw_key'] );
1906
+ }
1907
+ }
1908
+
1909
+ function woosw_display_post_states( $states, $post ) {
1910
+ if ( 'page' == get_post_type( $post->ID ) && $post->ID === absint( get_option( 'woosw_page_id' ) ) ) {
1911
+ $states[] = esc_html__( 'Wishlist', 'woo-smart-wishlist' );
1912
+ }
1913
+
1914
+ return $states;
1915
+ }
1916
+
1917
+ function woosw_user_table( $column ) {
1918
+ $column['woosw'] = esc_html__( 'Wishlist', 'woo-smart-wishlist' );
1919
+
1920
+ return $column;
1921
+ }
1922
+
1923
+ function woosw_user_table_row( $val, $column_name, $user_id ) {
1924
+ if ( $column_name === 'woosw' ) {
1925
+ $key = get_user_meta( $user_id, 'woosw_key', true );
1926
+
1927
+ if ( ! empty( $key ) && ( $products = get_option( 'woosw_list_' . $key, true ) ) ) {
1928
+ if ( is_array( $products ) && ( $count = count( $products ) ) ) {
1929
+ $val = '<a href="#" class="woosw_action" data-key="' . $key . '">' . $count . '</a>';
1930
+ }
1931
+ }
1932
+ }
1933
+
1934
+ return $val;
1935
+ }
1936
+
1937
+ function wishlist_quickview() {
1938
+ check_admin_referer();
1939
+
1940
+ global $wpdb;
1941
+ $wishlist_html = '';
1942
+
1943
+ if ( isset( $_POST['key'] ) && $_POST['key'] != '' ) {
1944
+ $key = esc_attr( $_POST['key'] );
1945
+ $products = get_option( 'woosw_list_' . $key, true );
1946
+ $count = count( $products );
1947
+ ob_start();
1948
+
1949
+ if ( count( $products ) > 0 ) {
1950
+ echo '<div class="woosw-quickview-items">';
1951
+
1952
+ $user = $wpdb->get_results( 'SELECT user_id FROM `' . $wpdb->prefix . 'usermeta` WHERE `meta_key` = "woosw_key" AND `meta_value` = "' . esc_attr( $key ) . '" LIMIT 1', OBJECT );
1953
+
1954
+ echo '<div class="woosw-quickview-item">';
1955
+ echo '<div class="woosw-quickview-item-image"><a href="' . self::get_url( $key, true ) . '" target="_blank">#' . $key . '</a></div>';
1956
+ echo '<div class="woosw-quickview-item-info">';
1957
+
1958
+ if ( ! empty( $user ) ) {
1959
+ $user_id = $user[0]->user_id;
1960
+ $user_data = get_userdata( $user_id );
1961
+
1962
+ echo '<div class="woosw-quickview-item-title"><a href="' . get_edit_user_link( $user_id ) . '" target="_blank">' . $user_data->user_login . '</a></div>';
1963
+ echo '<div class="woosw-quickview-item-data">' . $user_data->user_email . ' | ' . sprintf( _n( '%s product', '%s products', $count, 'woo-smart-wishlist' ), number_format_i18n( $count ) ) . '</div>';
1964
+ } else {
1965
+ echo '<div class="woosw-quickview-item-title">' . esc_html__( 'Guest', 'woo-smart-wishlist' ) . '</div>';
1966
+ echo '<div class="woosw-quickview-item-data">' . sprintf( _n( '%s product', '%s products', $count, 'woo-smart-wishlist' ), number_format_i18n( $count ) ) . '</div>';
1967
+ }
1968
+
1969
+ echo '</div><!-- /woosw-quickview-item-info -->';
1970
+ echo '</div><!-- /woosw-quickview-item -->';
1971
+
1972
+ foreach ( $products as $pid => $data ) {
1973
+ $_product = wc_get_product( $pid );
1974
+
1975
+ if ( $_product ) {
1976
+ echo '<div class="woosw-quickview-item">';
1977
+ echo '<div class="woosw-quickview-item-image">' . $_product->get_image() . '</div>';
1978
+ echo '<div class="woosw-quickview-item-info">';
1979
+ echo '<div class="woosw-quickview-item-title"><a href="' . $_product->get_permalink() . '" target="_blank">' . $_product->get_name() . '</a></div>';
1980
+ echo '<div class="woosw-quickview-item-data">' . date_i18n( get_option( 'date_format' ), $data['time'] ) . ' <span class="woosw-quickview-item-links">| ID: ' . $pid . ' | <a href="' . get_edit_post_link( $pid ) . '" target="_blank">' . esc_html__( 'Edit', 'woo-smart-wishlist' ) . '</a> | <a href="#" class="woosw_action" data-pid="' . $pid . '">' . esc_html__( 'See in wishlist', 'woo-smart-wishlist' ) . '</a></span></div>';
1981
+ echo '</div><!-- /woosw-quickview-item-info -->';
1982
+ echo '</div><!-- /woosw-quickview-item -->';
1983
+ }
1984
+ }
1985
+
1986
+ echo '</div>';
1987
+ } else {
1988
+ echo '<div style="text-align: center">' . esc_html__( 'Empty Wishlist', 'woo-smart-wishlist' ) . '<div>';
1989
+ }
1990
+
1991
+ $wishlist_html = ob_get_clean();
1992
+ } elseif ( isset( $_POST['pid'] ) ) {
1993
+ $pid = absint( $_POST['pid'] );
1994
+ ob_start();
1995
+
1996
+ $keys = $wpdb->get_results( 'SELECT option_name FROM `' . $wpdb->prefix . 'options` WHERE `option_name` LIKE "%woosw_list_%" AND `option_value` LIKE "%i:' . esc_attr( $pid ) . ';%"', OBJECT );
1997
+ $count = count( $keys );
1998
+
1999
+ if ( $count > 0 ) {
2000
+ echo '<div class="woosw-quickview-items">';
2001
+
2002
+ $_product = wc_get_product( $pid );
2003
+
2004
+ if ( $_product ) {
2005
+ echo '<div class="woosw-quickview-item">';
2006
+ echo '<div class="woosw-quickview-item-image">' . $_product->get_image() . '</div>';
2007
+ echo '<div class="woosw-quickview-item-info">';
2008
+ echo '<div class="woosw-quickview-item-title"><a href="' . $_product->get_permalink() . '" target="_blank">' . $_product->get_name() . '</a></div>';
2009
+ echo '<div class="woosw-quickview-item-data">ID: ' . $pid . ' | ' . sprintf( _n( '%s wishlist', '%s wishlists', $count, 'woosw' ), number_format_i18n( $count ) ) . ' <span class="woosw-quickview-item-links">| <a href="' . get_edit_post_link( $pid ) . '" target="_blank">' . esc_html__( 'Edit', 'woo-smart-wishlist' ) . '</a></span></div>';
2010
+ echo '</div><!-- /woosw-quickview-item-info -->';
2011
+ echo '</div><!-- /woosw-quickview-item -->';
2012
+ }
2013
+
2014
+ foreach ( $keys as $item ) {
2015
+ $products = get_option( $item->option_name );
2016
+ $count = count( $products );
2017
+ $key = str_replace( 'woosw_list_', '', $item->option_name );
2018
+ $user = $wpdb->get_results( 'SELECT user_id FROM `' . $wpdb->prefix . 'usermeta` WHERE `meta_key` = "woosw_key" AND `meta_value` = "' . esc_attr( $key ) . '" LIMIT 1', OBJECT );
2019
+
2020
+ echo '<div class="woosw-quickview-item">';
2021
+ echo '<div class="woosw-quickview-item-image"><a href="' . self::get_url( $key, true ) . '" target="_blank">#' . $key . '</a></div>';
2022
+ echo '<div class="woosw-quickview-item-info">';
2023
+
2024
+ if ( ! empty( $user ) ) {
2025
+ $user_id = $user[0]->user_id;
2026
+ $user_data = get_userdata( $user_id );
2027
+
2028
+
2029
+ echo '<div class="woosw-quickview-item-title"><a href="' . get_edit_user_link( $user_id ) . '" target="_blank">' . $user_data->user_login . '</a></div>';
2030
+ echo '<div class="woosw-quickview-item-data">' . $user_data->user_email . ' | <a href="#" class="woosw_action" data-key="' . $key . '">' . sprintf( _n( '%s product', '%s products', $count, 'woo-smart-wishlist' ), number_format_i18n( $count ) ) . '</a></div>';
2031
+ } else {
2032
+ echo '<div class="woosw-quickview-item-title">' . esc_html__( 'Guest', 'woo-smart-wishlist' ) . '</div>';
2033
+ echo '<div class="woosw-quickview-item-data"><a href="#" class="woosw_action" data-key="' . $key . '">' . sprintf( _n( '%s product', '%s products', $count, 'woo-smart-wishlist' ), number_format_i18n( $count ) ) . '</a></div>';
2034
+ }
2035
+
2036
+ echo '</div><!-- /woosw-quickview-item-info -->';
2037
+ echo '</div><!-- /woosw-quickview-item -->';
2038
+ }
2039
+
2040
+ echo '</div>';
2041
+ }
2042
+
2043
+ $wishlist_html = ob_get_clean();
2044
+ }
2045
+
2046
+ echo apply_filters( 'woosw_wishlist_quickview', $wishlist_html );
2047
+ die();
2048
+ }
2049
+
2050
+ function dropdown_cats_multiple( $output, $r ) {
2051
+ if ( isset( $r['multiple'] ) && $r['multiple'] ) {
2052
+ $output = preg_replace( '/^<select/i', '<select multiple', $output );
2053
+ $output = str_replace( "name='{$r['name']}'", "name='{$r['name']}[]'", $output );
2054
+
2055
+ foreach ( array_map( 'trim', explode( ",", $r['selected'] ) ) as $value ) {
2056
+ $output = str_replace( "value=\"{$value}\"", "value=\"{$value}\" selected", $output );
2057
+ }
2058
+ }
2059
+
2060
+ return $output;
2061
+ }
2062
+ }
2063
+
2064
+ new WPCleverWoosw();
2065
+ }
2066
+ }
2067
+ } else {
2068
+ add_action( 'admin_notices', 'woosw_notice_premium' );
2069
+ }
2070
+
2071
+ if ( ! function_exists( 'woosw_plugin_activate' ) ) {
2072
+ function woosw_plugin_activate() {
2073
+ // create wishlist page
2074
+ $wishlist_page = get_page_by_path( 'wishlist', OBJECT );
2075
+
2076
+ if ( empty( $wishlist_page ) ) {
2077
+ $wishlist_page_data = array(
2078
+ 'post_status' => 'publish',
2079
+ 'post_type' => 'page',
2080
+ 'post_author' => 1,
2081
+ 'post_name' => 'wishlist',
2082
+ 'post_title' => esc_html__( 'Wishlist', 'woo-smart-wishlist' ),
2083
+ 'post_content' => '[woosw_list]',
2084
+ 'post_parent' => 0,
2085
+ 'comment_status' => 'closed'
2086
+ );
2087
+ $wishlist_page_id = wp_insert_post( $wishlist_page_data );
2088
+
2089
+ update_option( 'woosw_page_id', $wishlist_page_id );
2090
+ }
2091
+ }
2092
+ }
2093
+
2094
+ if ( ! function_exists( 'woosw_notice_wc' ) ) {
2095
+ function woosw_notice_wc() {
2096
+ ?>
2097
+ <div class="error">
2098
+ <p><strong>WPC Smart Wishlist</strong> requires WooCommerce version 3.0 or greater.</p>
2099
+ </div>
2100
+ <?php
2101
+ }
2102
+ }
2103
+
2104
+ if ( ! function_exists( 'woosw_notice_premium' ) ) {
2105
+ function woosw_notice_premium() {
2106
+ ?>
2107
+ <div class="error">
2108
+ <p>Seems you're using both free and premium version of <strong>WPC Smart Wishlist</strong>. Please
2109
+ deactivate the free version when using the premium version.</p>
2110
+ </div>
2111
+ <?php
2112
+ }
2113
+ }