Smart Floating / Sticky Buttons – Call, Sharing, Chat Widgets & More – Buttonizer - Version 2.0.5

Version Description

Release date: 23 July 2019

The full UI is now translatable! We we've added the Dutch language! Do you want to translate Buttonizer to your own language? Click here to read more about how to translate Buttonizer!

We've also fixed an important Google Analytics bug! Due to this bug, Buttonizer was not tracking any data on button clicks... Sorry for the inconvenience! It should work now, we will monitor our fix.

But, we have more good news! This version we've also added many new click actions to Buttonizer! It's even possible to open a Facebook Messenger Chat Widget on button click!

List of new button actions:

  • Click to Chat
    • Facebook Messenger Widget
    • Twitter Direct Message
    • Snapchat
    • Skype
    • LINE
    • Telegram
    • Wechat
    • Viber
  • Social Sharing buttons
    • Facebook
    • Twitter
    • Instagram
    • Whatsapp
    • LinkedIn
    • Pinterest
    • Email
    • VKontakte
    • Poptin
    • Waze
  • Open pop-up (optional: with contactform)
    • Poptin
    • Elementor Popup
    • Popup Maker

Other changes: * Small bug fixes * After some feedback we've changed our opt-in message * We now use our new knowledge base!

If you experience bugs, problems or you have some feedback, let us know on our Buttonizer community!

Download this release

Release Info

Developer buttonizer
Plugin Icon wp plugin Smart Floating / Sticky Buttons – Call, Sharing, Chat Widgets & More – Buttonizer
Version 2.0.5
Comparing to
See all releases

Code changes from version 2.0.4 to 2.0.5

app/Admin/Admin.php CHANGED
@@ -121,13 +121,9 @@ class Admin
121
  'assets' => plugins_url( '/assets', BUTTONIZER_PLUGIN_DIR ),
122
  'security' => wp_create_nonce( "save_buttonizer" ),
123
  ] );
124
- // wp_localize_script('buttonizer_admin_js', 'buttonizer_translations', [
125
- // 'options' => [
126
- // 'menuStyle' => [
127
- // 'title' => __('Menu style', 'buttonizer')
128
- // ]
129
- // ]
130
- // ]);
131
  wp_enqueue_script( 'buttonizer_admin_js' );
132
  }
133
 
@@ -139,17 +135,22 @@ class Admin
139
  $this->getPluginScriptStyle();
140
  echo '<div class="buttonizer-admin-overlay">
141
  <br /><br />
142
- <b>Buttonizer is loading...</b><br />
143
- When Buttonizer does not start, <a href="https://community.buttonizer.pro/d/28" target="_blank">click here</a> to find out what is going wrong or <a href="./">click here</a> to return to the WordPress admin dashboard.
 
 
 
 
 
144
 
145
  <script type="application/javascript">
146
  setTimeout(function() {
147
- document.querySelector(".buttonizer-admin-overlay").innerHTML += "<div style=\'margin-top: 40px;\'>When you have a slow internet connection or slow webserver, give it a moment...</div>";
148
  }, 10000);
149
  </script>
150
 
151
  <noscript>
152
- <div class="buttonizer-no-script">Hi there! Javascript is disabled in your browser. Please consider to enable Javascript in your browser to use Buttonizer.</div>
153
  </noscript>
154
  </div>' ;
155
  }
121
  'assets' => plugins_url( '/assets', BUTTONIZER_PLUGIN_DIR ),
122
  'security' => wp_create_nonce( "save_buttonizer" ),
123
  ] );
124
+ // Buttonizer translations
125
+ $set = ( new Translations() )->get();
126
+ wp_localize_script( 'buttonizer_admin_js', 'buttonizer_translations', $set );
 
 
 
 
127
  wp_enqueue_script( 'buttonizer_admin_js' );
128
  }
129
 
135
  $this->getPluginScriptStyle();
136
  echo '<div class="buttonizer-admin-overlay">
137
  <br /><br />
138
+ <b>' . __( 'Buttonizer is loading...', 'buttonizer-multifunctional-button' ) . '</b><br />
139
+ ' . sprintf(
140
+ // Translators: First link goes to our knowledge base, the second link goes to the admin panel.
141
+ __( 'When Buttonizer does not start, <a %1$s>click here</a> to find out what is going wrong or <a %2$s>click here</a> to return to the WordPress admin dashboard.', 'buttonizer-multifunctional-button' ),
142
+ 'href="https://community.buttonizer.pro/knowledgebase/28" target="_blank"',
143
+ 'href="' . admin_url() . '"'
144
+ ) . '
145
 
146
  <script type="application/javascript">
147
  setTimeout(function() {
148
+ document.querySelector(".buttonizer-admin-overlay").innerHTML += "<div style=\'margin-top: 40px;\'>' . __( 'When you have a slow internet connection or slow webserver, give it a moment...', 'buttonizer-multifunctional-button' ) . '</div>";
149
  }, 10000);
150
  </script>
151
 
152
  <noscript>
153
+ <div class="buttonizer-no-script">' . __( 'Hi there! JavaScript is disabled in your browser. Please consider to enable JavaScript in your browser to use Buttonizer.', 'buttonizer-multifunctional-button' ) . '</div>
154
  </noscript>
155
  </div>' ;
156
  }
app/Admin/Ajax/SaveData.php CHANGED
@@ -3,6 +3,7 @@
3
  namespace Buttonizer\Admin\Ajax;
4
 
5
  use Buttonizer\Utils\Update ;
 
6
  class SaveData
7
  {
8
  public function __construct()
@@ -58,6 +59,9 @@ class SaveData
58
  case 'migrate-buttonizer':
59
  $this->migrateToTwoPointO();
60
  break;
 
 
 
61
  default:
62
  echo json_encode( [
63
  'status' => 'error',
@@ -216,5 +220,27 @@ class SaveData
216
  'status' => 'success',
217
  ] ) ;
218
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
219
 
220
  }
3
  namespace Buttonizer\Admin\Ajax;
4
 
5
  use Buttonizer\Utils\Update ;
6
+ use Buttonizer\Utils\Remigrate ;
7
  class SaveData
8
  {
9
  public function __construct()
59
  case 'migrate-buttonizer':
60
  $this->migrateToTwoPointO();
61
  break;
62
+ case 'remigrate-buttonizer':
63
+ $this->remigrateToTwoPointO();
64
+ break;
65
  default:
66
  echo json_encode( [
67
  'status' => 'error',
220
  'status' => 'success',
221
  ] ) ;
222
  }
223
+
224
+ /**
225
+ * Uhm, not sure, but you just requested a migration to 2.0!
226
+ */
227
+ private function remigrateToTwoPointO()
228
+ {
229
+ register_setting( 'buttonizer', 'buttonizer_buttons_backup' );
230
+ $buttons = get_option( 'buttonizer_buttons_backup' );
231
+
232
+ if ( !isset( $buttons['buttonorder'] ) ) {
233
+ echo json_encode( [
234
+ 'status' => 'error',
235
+ 'message' => 'Nothing to convert!',
236
+ ] ) ;
237
+ exit;
238
+ }
239
+
240
+ ( new Remigrate() )->run();
241
+ echo json_encode( [
242
+ 'status' => 'success',
243
+ ] ) ;
244
+ }
245
 
246
  }
app/Admin/Translations.php ADDED
@@ -0,0 +1,1137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Buttonizer translations
4
+ */
5
+ namespace Buttonizer\Admin;
6
+
7
+ class Translations {
8
+ public function get() {
9
+ return [
10
+ 'errors' => $this->errors(),
11
+ 'warnings' => $this->warnings(),
12
+ 'common' => $this->common(),
13
+ 'loading' => $this->loading(),
14
+ 'utils' => $this->utils(),
15
+ 'event_tracker' => $this->eventTracker(),
16
+ 'modal' => $this->modal(),
17
+ 'saving' => $this->saving(),
18
+ 'revert' => $this->reverting(),
19
+ 'welcome' => $this->welcome(),
20
+ 'settings' => $this->settings(),
21
+ 'settings_window' => $this->settingsWindow(),
22
+ 'bar' => $this->bar(),
23
+ 'migration_modal' => $this->migration(),
24
+ 'premium' => $this->premium(),
25
+ 'page_rules' => $this->page_rules(),
26
+ 'time_schedules' => $this->time_schedules()
27
+ ];
28
+ }
29
+
30
+ /**
31
+ * Errors
32
+ *
33
+ * @return array
34
+ */
35
+ private function errors() {
36
+ return [
37
+ 'fatal' => __('Oh, that was not what we were expecting! Something went wrong.', 'buttonizer-multifunctional-button'),
38
+
39
+ // Custom javascript error
40
+ 'custom_javascript' => [
41
+ 'title' => __('Custom javascript error', 'buttonizer-multifunctional-button'),
42
+ 'message' => __('Your custom javascript ran into an error. Read the error below:', 'buttonizer-multifunctional-button')
43
+ ],
44
+
45
+ // Saving error
46
+ 'saving' => [
47
+ 'title' => __('Could not save settings', 'buttonizer-multifunctional-button'),
48
+ 'message' => __('Something went wrong while saving your settings:', 'buttonizer-multifunctional-button')
49
+ ],
50
+
51
+ // Forms
52
+ 'forms' => [
53
+ 'only_numbers' => __('Only numbers allowed.', 'buttonizer-multifunctional-button'),
54
+ 'only_numbers_info' => __('For this input, only positive numbers are allowed.', 'buttonizer-multifunctional-button'),
55
+ ]
56
+ ];
57
+ }
58
+
59
+ /**
60
+ * Warnings
61
+ *
62
+ * @return array
63
+ */
64
+ private function warnings() {
65
+ return [
66
+ 'invalid_email' => __('Invalid email address.', 'buttonizer-multifunctional-button'),
67
+ 'invalid_phone_number' => __('Invalid phone number. Please only use number for your phone number. Omit any zeros, brackets or dashes when adding the phone number in international format.', 'buttonizer-multifunctional-button'),
68
+ 'only_numbers' => __('This field only allows numbers.', 'buttonizer-multifunctional-button'),
69
+
70
+ ];
71
+ }
72
+
73
+ /**
74
+ * Common
75
+ *
76
+ * @return array
77
+ */
78
+ private function common() {
79
+ return [
80
+ 'button' => __('Button', 'buttonizer-multifunctional-button'),
81
+ 'group' => __('Group', 'buttonizer-multifunctional-button'),
82
+
83
+ 'settings' => __('Settings', 'buttonizer-multifunctional-button'),
84
+
85
+ 'confirm' => __('Confirm', 'buttonizer-multifunctional-button'),
86
+ 'search' => __('Search', 'buttonizer-multifunctional-button'),
87
+
88
+ 'skip' => __('Skip', 'buttonizer-multifunctional-button'),
89
+
90
+ // Disabled
91
+ 'disable' => __('Disable', 'buttonizer-multifunctional-button'),
92
+ 'disabled' => __('Disabled', 'buttonizer-multifunctional-button'),
93
+
94
+ // Save & publish
95
+ 'save' => __('Save', 'buttonizer-multifunctional-button'),
96
+ 'saving' => __('Saving', 'buttonizer-multifunctional-button'),
97
+ 'saving_settings' => __('Saving settings', 'buttonizer-multifunctional-button'),
98
+
99
+ 'publish' => __('Publish', 'buttonizer-multifunctional-button'),
100
+ 'published' => __('Published', 'buttonizer-multifunctional-button'),
101
+ 'publishing' => __('Publishing...', 'buttonizer-multifunctional-button'),
102
+
103
+ // Warning
104
+ 'warning' => __('Warning', 'buttonizer-multifunctional-button'),
105
+
106
+
107
+ 'next' => __('Next', 'buttonizer-multifunctional-button'),
108
+ 'previous' => __('Previous', 'buttonizer-multifunctional-button'),
109
+
110
+ // translators: The button to save and publish the changes that were made
111
+ 'save_publish' => __('Save & publish', 'buttonizer-multifunctional-button')
112
+ ];
113
+ }
114
+
115
+ /**
116
+ * Loading
117
+ *
118
+ * @return array
119
+ */
120
+ private function loading() {
121
+ return [
122
+ 'loading' => __('Loading...', 'buttonizer-multifunctional-button'),
123
+ 'settings' => __('Loading settings...', 'buttonizer-multifunctional-button'),
124
+ 'bar' => __('Building bar...', 'buttonizer-multifunctional-button'),
125
+ 'website' => __('Waiting for your website...', 'buttonizer-multifunctional-button'),
126
+ 'website_slow' => __('It\'s taking longer than usual, slow website?', 'buttonizer-multifunctional-button'),
127
+ 'website_skip' => __('Skip this step', 'buttonizer-multifunctional-button'),
128
+ 'initializing' => __('Initializing...', 'buttonizer-multifunctional-button'),
129
+ 'resetting' => __('Resetting...', 'buttonizer-multifunctional-button'),
130
+ 'running_migration' => __('Running migration...', 'buttonizer-multifunctional-button'),
131
+ // translators: Finishing as in 'Cleaning up files'
132
+ 'finishing' => __('Finishing...', 'buttonizer-multifunctional-button')
133
+ ];
134
+ }
135
+
136
+ /**
137
+ * Utils
138
+ *
139
+ * @return array
140
+ */
141
+ private function utils() {
142
+ return [
143
+ 'add_button' => __('Add button', 'buttonizer-multifunctional-button'),
144
+ 'add_group' => __('Add group', 'buttonizer-multifunctional-button'),
145
+
146
+ // New button and new group
147
+ 'new_button' => __('New button', 'buttonizer-multifunctional-button'),
148
+ 'new_group' => __('New group', 'buttonizer-multifunctional-button'),
149
+
150
+ // Advanced button/group settings
151
+ 'advanced_settings' => __('Advanced settings', 'buttonizer-multifunctional-button'),
152
+
153
+ 'text' => __('Text', 'buttonizer-multifunctional-button'),
154
+ // translators: Base is meant as default state of the button (not hovering or clicking)
155
+ 'base' => __('Base', 'buttonizer-multifunctional-button'),
156
+ 'icon' => __('Icon', 'buttonizer-multifunctional-button'),
157
+ 'search_icon' => __('Search icon', 'buttonizer-multifunctional-button'),
158
+
159
+ // Image strings
160
+ 'image' => __('Image', 'buttonizer-multifunctional-button'),
161
+ 'select_image' => __('Select image', 'buttonizer-multifunctional-button'),
162
+ 'change_image' => __('Change image', 'buttonizer-multifunctional-button'),
163
+ 'remove_image' => __('Click to remove this image', 'buttonizer-multifunctional-button'),
164
+
165
+ // First and second button
166
+ 'first_button' => __('First button', 'buttonizer-multifunctional-button'),
167
+ 'second_button' => __('Second button', 'buttonizer-multifunctional-button'),
168
+
169
+ // Rename
170
+ 'rename' => __('Rename', 'buttonizer-multifunctional-button'),
171
+
172
+ // Delete
173
+ 'delete' => __('Delete', 'buttonizer-multifunctional-button'),
174
+
175
+ // Duplicate
176
+ 'duplicate' => __('Duplicate', 'buttonizer-multifunctional-button'),
177
+
178
+ // translators: This string will be used to replace %s in 'Are you very sure you want to remove this %s?'
179
+ 'lowercase_page_rule' => __('page rule', 'buttonizer-multifunctional-button'),
180
+ // translators: This string will be used to replace %s in 'Are you very sure you want to remove this %s?'
181
+ 'lowercase_time_schedule' => __('time schedule', 'buttonizer-multifunctional-button'),
182
+
183
+ // translators: Interaction is meant as hover/click state
184
+ 'interaction' => __('Interaction', 'buttonizer-multifunctional-button'),
185
+
186
+ // translators: Background as in background color
187
+ 'background' => __('Background', 'buttonizer-multifunctional-button'),
188
+
189
+ // Tips & tricks
190
+ 'tips_tricks' => __('Need help? Quick-start, tips & tricks', 'buttonizer-multifunctional-button'),
191
+ 'visit_knowledgebase' => __('Need help? Visit our knowledge base!', 'buttonizer-multifunctional-button'),
192
+
193
+ 'search_not_found' => __('Nothing found for:', 'buttonizer-multifunctional-button'),
194
+ 'search_icons' => __('Search icons', 'buttonizer-multifunctional-button'),
195
+
196
+ 'knowledge_link' => sprintf(
197
+ // translators: %1$s will be replaced with a action name, %2$s will be replaced with a link
198
+ __('Need help? Learn how to use <b>%1$s</b>.', 'buttonizer-multifunctional-button'),
199
+ '{0}', 'href="{1}" target="_blank"'
200
+ ),
201
+ ];
202
+ }
203
+
204
+ /**
205
+ * Modal/dialog
206
+ *
207
+ * @return array
208
+ */
209
+ private function modal() {
210
+ return [
211
+ 'ok' => __('OK', 'buttonizer-multifunctional-button'),
212
+ 'ok_fix' => __('OK, I\'ll fix this', 'buttonizer-multifunctional-button'),
213
+
214
+ 'close' => __('Close', 'buttonizer-multifunctional-button'),
215
+ 'cancel' => __('Cancel', 'buttonizer-multifunctional-button'),
216
+
217
+ // Yes/No
218
+ 'yes_please' => __('Yes please', 'buttonizer-multifunctional-button'),
219
+ 'no_thanks' => __('No thank you', 'buttonizer-multifunctional-button'),
220
+
221
+ // Dismiss
222
+ 'dismiss' => __('Dismiss', 'buttonizer-multifunctional-button'),
223
+ 'changed_my_mind' => __('I\'ve changed my mind', 'buttonizer-multifunctional-button'),
224
+
225
+ // Save
226
+ 'save' => __('Save', 'buttonizer-multifunctional-button'),
227
+
228
+ 'remove_schedule_or_rule' => [
229
+ // translators: %s will be replaced with 'time schedule / page rule'
230
+ 'title' => sprintf(
231
+ __('Remove %s?', 'buttonizer-multifunctional-button'), '{0}'
232
+ ),
233
+
234
+ 'question' => sprintf(
235
+ // translators: %s will be replaced with 'time schedule / page rule'
236
+ __('Are you very sure you want to remove this %1$s? Buttons that are still attached to this %2$s will become visible unless you attach them to another %3$s or hide them.', 'buttonizer-multifunctional-button'),
237
+ '{0}', '{0}', '{0}'
238
+ ),
239
+ 'no_buttons' => sprintf(
240
+ // translators: %s will be replaced with 'time schedule / page rule'
241
+ __('There are no buttons attached to this %s. You can remove this safely.', 'buttonizer-multifunctional-button'),
242
+ '{0}'
243
+ ),
244
+ 'num_buttons_multiple' => sprintf(
245
+ // translators: This sentence will be used to remove a 'time schedule/page rule' and there are multiple buttons attached to it. %1$s will be a number, %2$s will be the 'time schedule / page rule'
246
+ __('There are <b>%1$s</b> buttons attached to this %2$s!', 'buttonizer-multifunctional-button'),
247
+ '{0}', '{1}'
248
+ ),
249
+ 'num_buttons_single' => sprintf(
250
+ // translators: This sentence will be used to remove a time schedule and there is only one button attached to it
251
+ __('There is <b>1</b> button attached to this %s!', 'buttonizer-multifunctional-button'),
252
+ '{0}'
253
+ ),
254
+ 'last_warning' => sprintf(
255
+ // translators: %s will be replaced with 'time schedule / page rule'
256
+ __('Do you want to remove this %s?', 'buttonizer-multifunctional-button'),
257
+ '{0}'
258
+ ),
259
+ ],
260
+ ];
261
+ }
262
+
263
+ /**
264
+ * Event tracker
265
+ *
266
+ * @return array
267
+ */
268
+ private function eventTracker() {
269
+ return [
270
+ 'title' => __('Event tracker', 'buttonizer-multifunctional-button'),
271
+ 'window_title' => __('Event tracker (experimental)', 'buttonizer-multifunctional-button'),
272
+ ];
273
+ }
274
+
275
+ /**
276
+ * Saving changes
277
+ *
278
+ * @return array
279
+ */
280
+ private function saving() {
281
+ return [
282
+ 'saving' => 'Saving changes...',
283
+ 'completed' => 'Saving complete.'
284
+ ];
285
+ }
286
+
287
+ /**
288
+ * Reverting
289
+ *
290
+ * @return array
291
+ */
292
+ private function reverting() {
293
+ return [
294
+ 'revert_changes' => __('Revert changes', 'buttonizer-multifunctional-button'),
295
+ 'reverting' => __('Reverting...', 'buttonizer-multifunctional-button'),
296
+ 'modal' => [
297
+ 'intro' => __('Are you sure you want to revert your changes?', 'buttonizer-multifunctional-button'),
298
+ 'action' => __('The current changes will be overwritten by the current published buttons and settings.', 'buttonizer-multifunctional-button')
299
+ ],
300
+ 'error' => [
301
+ 'title' => __('Could not revert settings', 'buttonizer-multifunctional-button'),
302
+ 'message' => __('Something went wrong while reverting your settings.', 'buttonizer-multifunctional-button')
303
+ ]
304
+ ];
305
+ }
306
+
307
+ /**
308
+ * Group and button settings
309
+ *
310
+ * @return array
311
+ */
312
+ private function settings() {
313
+ return [
314
+ 'settings' => __('Settings', 'buttonizer-multifunctional-button'),
315
+
316
+ // Setting categories
317
+ 'setting_categories' => [
318
+ 'menu_style' => __('Menu style', 'buttonizer-multifunctional-button'),
319
+ 'group_style' => __('Group style', 'buttonizer-multifunctional-button'),
320
+ 'group_icon' => __('Group icon', 'buttonizer-multifunctional-button'),
321
+ 'button_style' => __('Button style', 'buttonizer-multifunctional-button'),
322
+ 'button_icon' => __('Button icon', 'buttonizer-multifunctional-button'),
323
+ 'label' => __('Label', 'buttonizer-multifunctional-button'),
324
+ ],
325
+
326
+ 'name' => [
327
+ 'title' => __('Button name', 'buttonizer-multifunctional-button'),
328
+ 'description' => __('This is the button name.', 'buttonizer-multifunctional-button'),
329
+ ],
330
+
331
+ 'background_color' => [
332
+ 'title' => __('Button color', 'buttonizer-multifunctional-button'),
333
+ 'description' => __('This is the color of your button group and also the default color for your buttons within this group.', 'buttonizer-multifunctional-button'),
334
+ ],
335
+ 'background_image' => [
336
+ 'title' => __('Background image', 'buttonizer-multifunctional-button'),
337
+ 'description' => __('Upload an image if you want an image as a background instead of a color. Recommended aspect ratio: square (1:1).', 'buttonizer-multifunctional-button'),
338
+ ],
339
+ 'border_radius' => [
340
+ 'title' => __('Border radius', 'buttonizer-multifunctional-button'),
341
+ 'description' => __('Change the roundness of this button group.', 'buttonizer-multifunctional-button'),
342
+ ],
343
+ 'icon' => [
344
+ 'title' => __('Icon', 'buttonizer-multifunctional-button'),
345
+ 'description' => __('Choose an icon from the icon library.', 'buttonizer-multifunctional-button'),
346
+ ],
347
+ 'icon_color' => [
348
+ 'title' => __('Icon color', 'buttonizer-multifunctional-button'),
349
+ 'description' => __('Change the icon color of this button.', 'buttonizer-multifunctional-button'),
350
+ ],
351
+ 'icon_image_border_radius' => [
352
+ 'title' => __('Border radius', 'buttonizer-multifunctional-button'),
353
+ 'description' => __('Change the border radius of the image.', 'buttonizer-multifunctional-button'),
354
+ ],
355
+ 'icon_image_select' => [
356
+ 'title' => __('Image', 'buttonizer-multifunctional-button'),
357
+ 'description' => __('Choose an image to use as this button or group icon. Recommended aspect ratio: square (1:1)', 'buttonizer-multifunctional-button'),
358
+ ],
359
+ 'icon_image_size' => [
360
+ 'title' => __('Image size', 'buttonizer-multifunctional-button'),
361
+ 'description' => __('Change the size of the image.', 'buttonizer-multifunctional-button'),
362
+ ],
363
+ 'icon_or_image' => [
364
+ 'title' => __('Graphic', 'buttonizer-multifunctional-button'),
365
+ 'description' => __('Choose whether to use an icon or image as the button icon.', 'buttonizer-multifunctional-button'),
366
+ ],
367
+ 'icon_size' => [
368
+ 'title' => __('Icon size', 'buttonizer-multifunctional-button'),
369
+ 'description' => __('Change the icon size of this button.', 'buttonizer-multifunctional-button'),
370
+ ],
371
+ 'label' => [
372
+ 'title' => __('Label', 'buttonizer-multifunctional-button'),
373
+ 'description' => __('Change the label of this button.', 'buttonizer-multifunctional-button'),
374
+ 'placeholder' => __('Label text', 'buttonizer-multifunctional-button'),
375
+ ],
376
+ 'label_color' => [
377
+ 'title' => __('Label color', 'buttonizer-multifunctional-button'),
378
+ 'description' => __('Change the text and background color of the label for this button or group.', 'buttonizer-multifunctional-button'),
379
+ ],
380
+ 'font_size_border_radius' => [
381
+ 'title' => __('Font size & border radius', 'buttonizer-multifunctional-button'),
382
+ 'description' => __('Change the font size and border radius of the label for this button group.', 'buttonizer-multifunctional-button'),
383
+ ],
384
+ 'menu_animation' => [
385
+ 'title' => __('Animation', 'buttonizer-multifunctional-button'),
386
+ 'description' => __('This will animate this button group to get the attention of the visitor. The animation repeats itself every 10 seconds.', 'buttonizer-multifunctional-button'),
387
+ 'animations' => [
388
+ 'none' => __('No animation', 'buttonizer-multifunctional-button'),
389
+ 'hello' => __('Buttonizer Hello', 'buttonizer-multifunctional-button'),
390
+ 'bounce' => __('Bounce', 'buttonizer-multifunctional-button'),
391
+ ]
392
+ ],
393
+ 'menu_position' => [
394
+ 'title' => __('Position', 'buttonizer-multifunctional-button'),
395
+ 'description' => __('Change the position of this button group.', 'buttonizer-multifunctional-button'),
396
+
397
+ 'positions' => [
398
+ 'bottomright' => __('Bottom right', 'buttonizer-multifunctional-button'),
399
+ 'bottomleft' => __('Bottom left', 'buttonizer-multifunctional-button'),
400
+ 'topright' => __('Top right', 'buttonizer-multifunctional-button'),
401
+ 'topleft' => __('Top left', 'buttonizer-multifunctional-button'),
402
+ 'advanced' => __('Custom', 'buttonizer-multifunctional-button'),
403
+ ]
404
+ ],
405
+ 'menu_style' => [
406
+ 'title' => __('Menu Style', 'buttonizer-multifunctional-button'),
407
+ 'description' => __('Change the menu style of this button group.', 'buttonizer-multifunctional-button'),
408
+
409
+ 'styles' => [
410
+ 'default' => __('Default', 'buttonizer-multifunctional-button'),
411
+ 'faded' => __('Faded', 'buttonizer-multifunctional-button'),
412
+ 'cornercircle' => __('Corner circle', 'buttonizer-multifunctional-button'),
413
+ 'buildingup' => __('Build Up', 'buttonizer-multifunctional-button'),
414
+ 'pop' => __('Pop', 'buttonizer-multifunctional-button'),
415
+ 'square' => __('Square', 'buttonizer-multifunctional-button'),
416
+ ]
417
+ ],
418
+ 'label_desktop' => [
419
+ 'title' => __('Visibility', 'buttonizer-multifunctional-button'),
420
+ 'description' => __('Always show the label, show the label on hover or hide the label on <u>desktop devices</u>.', 'buttonizer-multifunctional-button'),
421
+ ],
422
+ 'label_mobile' => [
423
+ 'title' => __('Visibility', 'buttonizer-multifunctional-button'),
424
+ 'description' => __('Always show or hide the label on <u>mobile devices</u>.', 'buttonizer-multifunctional-button'),
425
+ ],
426
+ 'label_styles' => [
427
+ 'always' => __('Always show label', 'buttonizer-multifunctional-button'),
428
+ 'hover' => __('Show label on hover', 'buttonizer-multifunctional-button'),
429
+ 'hide' => __('Hide label', 'buttonizer-multifunctional-button')
430
+ ],
431
+ 'show_mobile_desktop' => [
432
+ 'title' => __('Show on', 'buttonizer-multifunctional-button'),
433
+ 'device_visibility' => __('Device visibility', 'buttonizer-multifunctional-button'),
434
+ 'description' => __('Choose if you want to make this button group visible on desktop and mobile devices.', 'buttonizer-multifunctional-button'),
435
+ 'mobile' => __('Mobile', 'buttonizer-multifunctional-button'),
436
+ 'desktop' => __('Desktop', 'buttonizer-multifunctional-button'),
437
+ ],
438
+ 'start_opened' => [
439
+ 'title' => __('Start opened', 'buttonizer-multifunctional-button'),
440
+ 'description' => __('This button group starts opened when this setting is enabled.', 'buttonizer-multifunctional-button'),
441
+ ],
442
+ 'use_main_button_style' => [
443
+ 'title' => __('Use the same style of main button', 'buttonizer-multifunctional-button'),
444
+ 'description' => __('When enabled, this button will use the same style as the button group.', 'buttonizer-multifunctional-button'),
445
+ ],
446
+ 'custom_id' => [
447
+ // translators: 'id' as in HTML attribute 'id'
448
+ 'title' => __('Custom ID', 'buttonizer-multifunctional-button'),
449
+ // translators: 'id' as in HTML attribute 'id'
450
+ 'description' => __('Adds a custom \'id\' HTML attribute to the button.', 'buttonizer-multifunctional-button'),
451
+ // translators: 'id' as in HTML attribute 'id'
452
+ 'pro_description' => __('You can add a custom ID to each button for styling purposes.', 'buttonizer-multifunctional-button'),
453
+ // translators: 'id' as in HTML attribute 'id'
454
+ 'placeholder' => __('ID name', 'buttonizer-multifunctional-button'),
455
+ ],
456
+ 'custom_class' => [
457
+ // translators: 'class' as in HTML attribute 'class'
458
+ 'title' => __('Custom class', 'buttonizer-multifunctional-button'),
459
+ // translators: 'class' as in HTML attribute 'class'
460
+ 'description' => __('Adds a custom \'class\' HTML attribute to the button.', 'buttonizer-multifunctional-button'),
461
+ // translators: 'class' as in HTML attribute 'class'
462
+ 'pro_description' => __('You can add a custom class to each button for styling purposes.', 'buttonizer-multifunctional-button'),
463
+ // translators: 'class' as in HTML attribute 'class'
464
+ 'placeholder' => __('Class name', 'buttonizer-multifunctional-button'),
465
+ ],
466
+ 'selected_page_rule' => [
467
+ 'title' => __('Page rule', 'buttonizer-multifunctional-button'),
468
+ 'description' => __('Adds a custom \'class\' HTML attribute to the button.', 'buttonizer-multifunctional-button'),
469
+ 'pro_description' => __('You can add a custom class to each button for styling purposes.', 'buttonizer-multifunctional-button'),
470
+ 'manage_page_rules' => __('Manage page rules', 'buttonizer-multifunctional-button'),
471
+ 'cannot_select' => __('You cannot select the same page rule as it\'s group!', 'buttonizer-multifunctional-button'),
472
+
473
+ 'show_on_rule_trigger' => [
474
+ 'show' => __('Show button when rule is triggered', 'buttonizer-multifunctional-button'),
475
+ 'hide' => __('Hide button when rule is triggered', 'buttonizer-multifunctional-button'),
476
+ ]
477
+ ],
478
+
479
+ 'button_action' => [
480
+ 'title' => __('Button action', 'buttonizer-multifunctional-button'),
481
+ 'description' => __('Choose a click action for this button.', 'buttonizer-multifunctional-button'),
482
+ 'select' => __('Select button action', 'buttonizer-multifunctional-button'),
483
+ 'search_not_found' => __('No button action found for:', 'buttonizer-multifunctional-button'),
484
+
485
+ 'actions' => [
486
+ 'group_popular' => __('Popular actions', 'buttonizer-multifunctional-button'),
487
+ 'group_chat' => __('Click to chat', 'buttonizer-multifunctional-button'),
488
+ 'group_social_media' => __('Social Media', 'buttonizer-multifunctional-button'),
489
+ 'group_popup' => __('Popup', 'buttonizer-multifunctional-button'),
490
+
491
+ 'phone_number' => __('Call action (Phone number)', 'buttonizer-multifunctional-button'),
492
+ 'mail' => __('Mail', 'buttonizer-multifunctional-button'),
493
+ 'back_to_top' => __('Back to top', 'buttonizer-multifunctional-button'),
494
+ 'go_back_one_page' => __('Go back one page', 'buttonizer-multifunctional-button'),
495
+ 'share_page' => __('Share page', 'buttonizer-multifunctional-button'),
496
+ 'messenger_chat' => sprintf(
497
+ // translators: %s and %s will be replaced with links
498
+ __('New, Facebook Messenger Chat Widget! First, you\'ll need to <a %1$s>whitelist</a> your site on Facebook. Then add your <a %2$s>Page ID</a> into the input above.', 'buttonizer-multifunctional-button'),
499
+ 'href="https://developers.facebook.com/docs/messenger-platform/reference/messenger-profile-api/domain-whitelisting#page_settings" target="_blank"', 'href="https://www.facebook.com/help/1503421039731588" target="_blank"'
500
+ ),
501
+ 'poptin' => sprintf(
502
+ // translators: %s and %s will be replaced with links
503
+ __('You need to install Poptin\'s WordPress plugin. You can find it <a %1$s>here</a>. Once you\'ve made a Poptin paste the <a %2$s>direct link</a> into the input.', 'buttonizer-multifunctional-button'),
504
+ 'href="https://wordpress.org/plugins/poptin/" target="_blank"', 'href="https://help.poptin.com/article/show/72942-how-to-show-a-poptin-when-the-visitor-clicks-on-a-button-link-on-your-site" target="_blank"'
505
+ ),
506
+
507
+ 'share_page_on' => sprintf(
508
+ // translators: %s will become the social media platform, like example: Share on Twitter
509
+ __('Share on %s', 'buttonizer-multifunctional-button'),
510
+ '{0}'
511
+ ),
512
+
513
+ 'share_page_via' => sprintf(
514
+ // translators: %s will become the social media platform, like example: Share via email
515
+ __('Share via %s', 'buttonizer-multifunctional-button'),
516
+ '{0}'
517
+ ),
518
+
519
+ 'url' => [
520
+ 'invalid' => __('This URL appears to be invalid. The button may not work as expected.', 'buttonizer-multifunctional-button'),
521
+ 'invalid_tip' => __('Do you miss <b>http://</b> or <b>https://</b>? Perhaps an unnecessary space is added somewhere.', 'buttonizer-multifunctional-button'),
522
+ 'insecure' => __('<b>Insecure URL:</b> Sorry to interrupt, but we advice you to use HTTPS for your URLS. This is a safer way to transport data.', 'buttonizer-multifunctional-button'),
523
+ ],
524
+
525
+ 'javascript' => [
526
+ 'name' => __('Javascript function', 'buttonizer-multifunctional-button'),
527
+ 'warning_modal_title' => __('Warning! Before you continue...', 'buttonizer-multifunctional-button'),
528
+ 'warning_intro' => __('You are changing this button action from custom javascript to a different action. Your javascript changes will be lost.', 'buttonizer-multifunctional-button'),
529
+ 'warning_question' => __('Are you sure you want to proceed?', 'buttonizer-multifunctional-button'),
530
+ ],
531
+
532
+ 'whatsapp_info' => sprintf(
533
+ // translators: %s will be replaced with html attributes for the link
534
+ __('Fill in your phone number without any spaces and symbols. Read WhatsApps recommendations by <a %s>clicking here.</a>', 'buttonizer-multifunctional-button'),
535
+ 'href="https://faq.whatsapp.com/en/android/26000030/" target="_blank"'
536
+ ),
537
+ ]
538
+ ],
539
+
540
+ 'open_new_tab' => [
541
+ 'title' => __('Open new tab', 'buttonizer-multifunctional-button'),
542
+ 'description' => __('When the button is clicked, open in new tab.', 'buttonizer-multifunctional-button'),
543
+ ],
544
+
545
+ 'button_group_window' => [
546
+ 'filters' => __('Filters', 'buttonizer-multifunctional-button'),
547
+ 'styling' => __('Styling', 'buttonizer-multifunctional-button'),
548
+ 'timeout_scroll' => __('Timeout & Scroll', 'buttonizer-multifunctional-button'),
549
+ ]
550
+ ];
551
+ }
552
+
553
+ /**
554
+ * Settings window
555
+ *
556
+ * @return array
557
+ */
558
+ private function settingsWindow() {
559
+ return [
560
+ 'title' => __('Buttonizer settings', 'buttonizer-multifunctional-button'),
561
+
562
+ 'icon_library' => [
563
+ 'title' => __('Icon library', 'buttonizer-multifunctional-button'),
564
+ 'free' => __('free', 'buttonizer-multifunctional-button'),
565
+ 'latest' => __('Latest (automatic)', 'buttonizer-multifunctional-button'),
566
+ 'info' => __('If your theme automatically loads in a library, just select the correct icon library instead.', 'buttonizer-multifunctional-button'),
567
+
568
+ // Select library version
569
+ 'select_version' => [
570
+ 'title' => __('Select version', 'buttonizer-multifunctional-button'),
571
+ 'info' => __('Select the correct version of the library in order to use the icons in Buttonizer.', 'buttonizer-multifunctional-button')
572
+ ],
573
+
574
+ // Enter library key
575
+ 'library_license_key' => [
576
+ 'info' => __('You have selected an icon library that has premium icons. Enter the library license code to view and use these.', 'buttonizer-multifunctional-button'),
577
+ 'how_does_it_work' => __('How does this work?', 'buttonizer-multifunctional-button'),
578
+
579
+ 'enter_integrity_code' =>
580
+ sprintf(
581
+ // translators: String will be replaced with 'integrity' or 'license'
582
+ __('Enter %s code', 'buttonizer-multifunctional-button'),
583
+ 'integrity'
584
+ ),
585
+ ],
586
+
587
+ // Import icon library
588
+ 'import_library' => [
589
+ 'title' => __('Import icon library', 'buttonizer-multifunctional-button'),
590
+ 'info' => __('Should Buttonizer import the icon library into your theme? If your theme already imports the library you can disable this.', 'buttonizer-multifunctional-button')
591
+ ],
592
+ ],
593
+
594
+ // Google analytics
595
+ 'google_analytics' => [
596
+ 'info' => __('Where can I see my click data of my buttons in Google Analytics?', 'buttonizer-multifunctional-button'),
597
+
598
+ // translators: Please keep the code-example 'UA-000000-2'
599
+ 'input_info' => __('Insert the Google Analytics tracking code here. Example: UA-000000-2', 'buttonizer-multifunctional-button')
600
+ ],
601
+
602
+ // Other settings
603
+ 'other_settings' => [
604
+ 'title' => __('Other settings', 'buttonizer-multifunctional-button'),
605
+
606
+ 'admin_button' => [
607
+ 'title' => __('Show admin top bar', 'buttonizer-multifunctional-button'),
608
+ 'info' => __('Hide Buttonizer in the admin top bar by disabling this setting.', 'buttonizer-multifunctional-button')
609
+ ],
610
+
611
+ 'tooltips' => [
612
+ 'title' => __('Show tooltips', 'buttonizer-multifunctional-button'),
613
+ 'info' => __('Hide the tooltips by disabling this setting.', 'buttonizer-multifunctional-button')
614
+ ],
615
+
616
+ 'subdomain' => [
617
+ 'title' => __('Subdomain support', 'buttonizer-multifunctional-button'),
618
+ 'info' => __('Some WordPress websites use subdomains for content purposes. Enable this setting to allow Buttonizer to load on your subdomains. Only enable this when you need it.', 'buttonizer-multifunctional-button')
619
+ ]
620
+ ],
621
+
622
+ // Reset
623
+ 'reset' => [
624
+ 'title' => __('Reset', 'buttonizer-multifunctional-button'),
625
+ 'info' => __('This is a way to reset Buttonizer to the default settings.', 'buttonizer-multifunctional-button'),
626
+
627
+ 'what_will_happen' => [
628
+ 'title' => __('What will happen when I click the red button below?', 'buttonizer-multifunctional-button'),
629
+ 'info' => __('The plugin will get a \'factory reset\'. All settings of Buttonizer will get deleted, reverting back to when you first installed and activated Buttonizer.', 'buttonizer-multifunctional-button'),
630
+ ],
631
+
632
+ 'why' => [
633
+ 'title' => __('Why would I do that?', 'buttonizer-multifunctional-button'),
634
+ 'info' => __('Perhaps you ruined your buttons, categories or settings and would like to start from scratch. Or maybe you just feel trying the reset button...', 'buttonizer-multifunctional-button'),
635
+ ],
636
+
637
+ 'license' => [
638
+ 'title' => __('I have a license, what about that?', 'buttonizer-multifunctional-button'),
639
+ 'info' => __('No worries! Nothing will happen with your license! It only resets the following:', 'buttonizer-multifunctional-button'),
640
+
641
+ 'list' => [
642
+ 'buttons' => __('Your buttons', 'buttonizer-multifunctional-button'),
643
+ 'groups' => __('Your button groups', 'buttonizer-multifunctional-button'),
644
+ 'time_schedules' => __('All time schedules', 'buttonizer-multifunctional-button'),
645
+ 'page_rules' => __('All page rules', 'buttonizer-multifunctional-button'),
646
+ 'settings' => __('All other settings of Buttonizer', 'buttonizer-multifunctional-button'),
647
+ 'published' => __('All published settings', 'buttonizer-multifunctional-button'),
648
+ ]
649
+ ],
650
+
651
+ 'default_settings' => [
652
+ 'title' => __('Okay, sounds good. What then?', 'buttonizer-multifunctional-button'),
653
+ 'info' => __('Buttonizer will revert back to the default settings and feel like a fresh installation. That\'s all.', 'buttonizer-multifunctional-button'),
654
+ ],
655
+
656
+ 'ready' => [
657
+ 'title' => __('Okay, I\'m ready!', 'buttonizer-multifunctional-button'),
658
+ 'info' => __('Press the red button below to reset Buttonizer. There will be no more warnings.', 'buttonizer-multifunctional-button'),
659
+ 'button' => __('Reset Buttonizer!', 'buttonizer-multifunctional-button'),
660
+ ],
661
+ ]
662
+ ];
663
+ }
664
+
665
+ /**
666
+ * Top bar
667
+ *
668
+ * @return array
669
+ */
670
+ private function bar() {
671
+ return [
672
+ 'previous_session' => __('Loaded changes from previous session', 'buttonizer-multifunctional-button'),
673
+ 'preview' => [
674
+ 'no_changes' => __('You left the Buttonizer preview window. You will not see the changes you make.', 'buttonizer-multifunctional-button'),
675
+ 'return' => __('Return to preview', 'buttonizer-multifunctional-button'),
676
+ 'desktop' => __('Desktop preview', 'buttonizer-multifunctional-button'),
677
+ 'tablet' => __('Tablet preview', 'buttonizer-multifunctional-button'),
678
+ 'mobile' => __('Mobile preview', 'buttonizer-multifunctional-button'),
679
+ ],
680
+ 'menu' => [
681
+ 'version' => sprintf(
682
+ // translators: %s becomes version number (eg 2.4.2)
683
+ __('Version %s', 'buttonizer-multifunctional-button'),
684
+ BUTTONIZER_VERSION
685
+ ),
686
+ 'knowledgebase' => [
687
+ 'title' => __('Knowledge base', 'buttonizer-multifunctional-button'),
688
+ 'description' => __('Find out everything you need to know about Buttonizer', 'buttonizer-multifunctional-button'),
689
+ ],
690
+ // Support
691
+ 'support_group' => __('Support', 'buttonizer-multifunctional-button'),
692
+ 'support' => [
693
+ 'title' => __('I need support', 'buttonizer-multifunctional-button'),
694
+ 'description' => __('Direct support with the Buttonizer developers', 'buttonizer-multifunctional-button'),
695
+ ],
696
+ 'community' => [
697
+ 'title' => __('Community', 'buttonizer-multifunctional-button'),
698
+ 'description' => __('Interact with other Buttonizers', 'buttonizer-multifunctional-button'),
699
+ ],
700
+ 'tour' => [
701
+ 'title' => __('Buttonizer tour (recommended!)', 'buttonizer-multifunctional-button'),
702
+ 'description' => __('Start the 2 minute tour', 'buttonizer-multifunctional-button'),
703
+ ],
704
+
705
+ // Account
706
+ 'account_group' => __('Buttonizer account', 'buttonizer-multifunctional-button'),
707
+ 'account' => [
708
+ 'title' => __('My Account', 'buttonizer-multifunctional-button'),
709
+ ],
710
+ 'upgrade' => [
711
+ 'title' => __('Upgrade or pricing', 'buttonizer-multifunctional-button'),
712
+ ],
713
+ 'affiliation' => [
714
+ 'title' => __('Affiliation', 'buttonizer-multifunctional-button'),
715
+ 'description' => __('Earn $ by promoting Buttonizer', 'buttonizer-multifunctional-button'),
716
+ ],
717
+ 'options' => [
718
+ 'title' => __('Options', 'buttonizer-multifunctional-button')
719
+ ],
720
+ ],
721
+ 'buttons' => [
722
+ 'now_editing' => __('Now editing:', 'buttonizer-multifunctional-button'),
723
+ 'tippy_new_group' => __('This creates a new group with 2 buttons inside.', 'buttonizer-multifunctional-button'),
724
+ 'tippy_single_button' => __('This creates a new button, outside other groups.', 'buttonizer-multifunctional-button'),
725
+ 'tippy_learn_more' => __('Learn more about groups and buttons', 'buttonizer-multifunctional-button'),
726
+ 'tippy_drag_warning' => __('You can\'t drag the only button left in a group!', 'buttonizer-multifunctional-button'),
727
+ 'convert_to_group' => __('Convert to group', 'buttonizer-multifunctional-button'),
728
+
729
+ 'delete_button' => [
730
+ 'window_title_button' => __('Delete button', 'buttonizer-multifunctional-button'),
731
+ 'window_title_group' => __('Delete group', 'buttonizer-multifunctional-button'),
732
+ 'question_button' => __('Are you sure you want to remove this button?', 'buttonizer-multifunctional-button'),
733
+ 'question_group' => __('Are you sure you want to remove this group?', 'buttonizer-multifunctional-button'),
734
+ 'question_group_multiple_buttons' => sprintf(
735
+ // translators: %s will be replaced with a number
736
+ __('Are you sure you want to remove this full group? It contains %s buttons.', 'buttonizer-multifunctional-button'),
737
+ '{0}'
738
+ ),
739
+
740
+ 'question_remove_button' => sprintf(
741
+ // translators: %s will be replaced with the button name
742
+ __('Are you sure you want to remove the button called \'%s\'?', 'buttonizer-multifunctional-button'),
743
+ '{0}'
744
+ ),
745
+
746
+ 'cannot_delete' => __('You cannot delete this button because this the only button left.', 'buttonizer-multifunctional-button'),
747
+ 'cannot_delete_group' => __('You cannot delete this group because this the only group left.', 'buttonizer-multifunctional-button'),
748
+ ]
749
+ ]
750
+ ];
751
+ }
752
+
753
+ /**
754
+ * Page rules
755
+ *
756
+ * @return array
757
+ */
758
+ private function page_rules() {
759
+ return [
760
+ 'name' => __('Page rules', 'buttonizer-multifunctional-button'),
761
+ 'window_title' => __('Page Rule Manager', 'buttonizer-multifunctional-button'),
762
+ 'window_description' => __('You can setup page rules via this window. When you add pages or definitions to this page rule, the buttons attached to this page rule will be shown or hidden depending on their settings as soon this rule is triggered.', 'buttonizer-multifunctional-button'),
763
+ 'pro_description' => __('You can setup page rules that will get triggered on specific pages or user roles. You can create unlimited page rules with multiple rules to trigger.', 'buttonizer-multifunctional-button'),
764
+ 'add_page_rule' => __('Add page rule', 'buttonizer-multifunctional-button'),
765
+ 'add_rule' => __('Add rule', 'buttonizer-multifunctional-button'),
766
+ 'name_your_page_rule' => __('Name your page rule:', 'buttonizer-multifunctional-button'),
767
+ 'single_name' => __('Page rule', 'buttonizer-multifunctional-button'),
768
+ 'input_any_page' => __('Show the button on any page', 'buttonizer-multifunctional-button'),
769
+ 'remove_page_rule' => __('Remove page rule', 'buttonizer-multifunctional-button'),
770
+
771
+ // Types
772
+ 'types' => [
773
+ 'must_meet' => __('All conditions must meet (AND)', 'buttonizer-multifunctional-button'),
774
+ 'one_meets' => __('At least one condition must meet (OR)', 'buttonizer-multifunctional-button'),
775
+ ],
776
+
777
+ // Rules and/or
778
+ 'rule_and' => __('and', 'buttonizer-multifunctional-button'),
779
+ 'rule_or' => __('or', 'buttonizer-multifunctional-button'),
780
+
781
+ 'rules' => [
782
+ 'page' => __('Page', 'buttonizer-multifunctional-button'),
783
+ 'page_title' => __('Page title contains', 'buttonizer-multifunctional-button'),
784
+ 'blog' => __('Blog', 'buttonizer-multifunctional-button'),
785
+ 'blog_title' => __('Blog title contains', 'buttonizer-multifunctional-button'),
786
+ 'category' => __('Category', 'buttonizer-multifunctional-button'),
787
+ 'url_contains' => __('URL contains', 'buttonizer-multifunctional-button'),
788
+ 'url_starts' => __('URL begins with', 'buttonizer-multifunctional-button'),
789
+ 'url_ends' => __('URL ends with', 'buttonizer-multifunctional-button'),
790
+ 'user_roles' => __('User has role', 'buttonizer-multifunctional-button'),
791
+ ],
792
+
793
+ 'select_items' => __('Select one or more items.', 'buttonizer-multifunctional-button'),
794
+ 'remove_rule' => __('Are you sure you want to remove this rule?', 'buttonizer-multifunctional-button'),
795
+ 'remove_rule_aborted' => __('Aborted. Each page rule must keep at least one rule.', 'buttonizer-multifunctional-button'),
796
+ 'warning_changing_rule' => __('You still have selected values, are you sure you want to remove this?', 'buttonizer-multifunctional-button'),
797
+ 'rule_value' => __('Rule value', 'buttonizer-multifunctional-button'),
798
+ ];
799
+ }
800
+
801
+ /**
802
+ * Time schedules
803
+ *
804
+ * @return array
805
+ */
806
+ private function time_schedules() {
807
+ return [
808
+ 'name' => __('Time schedules', 'buttonizer-multifunctional-button'),
809
+ 'single_name' => __('Time schedule', 'buttonizer-multifunctional-button'),
810
+ 'window_title' => __('Time schedule manager', 'buttonizer-multifunctional-button'),
811
+ 'pro_description' => __('You can setup time schedules that will get triggered during specific times of a day. It is even possible to change the schedule actions for specific days. You can create an unlimited amount of schedules.', 'buttonizer-multifunctional-button'),
812
+
813
+ // Schedule
814
+ 'add_schedule' => __('Add schedule', 'buttonizer-multifunctional-button'),
815
+ 'add_date' => __('Add date', 'buttonizer-multifunctional-button'),
816
+ 'new_schedule' => __('New schedule', 'buttonizer-multifunctional-button'),
817
+ 'name_schedule' => __('Name the new time schedule:', 'buttonizer-multifunctional-button'),
818
+ 'rename_schedule' => __('Rename schedule to:', 'buttonizer-multifunctional-button'),
819
+ 'show_any_time' => __('Show the button at any time', 'buttonizer-multifunctional-button'),
820
+ 'trigger_on' => sprintf(
821
+ // translators: %s becomes weekday or specific date ('Trigger on monday' or 'Trigger om January 1, 2019')
822
+ __('Trigger on %s', 'buttonizer-multifunctional-button'),
823
+ ''),
824
+
825
+ // translators: 'till' as in '10:00 till 11:30'
826
+ 'till' => __('till', 'buttonizer-multifunctional-button'),
827
+
828
+ // Remove
829
+ 'remove_schedule' => __('Remove schedule', 'buttonizer-multifunctional-button'),
830
+ 'must_keep_one' => __('You must keep at least one schedule', 'buttonizer-multifunctional-button'),
831
+ 'current_timezone' => __('Current timezone:', 'buttonizer-multifunctional-button'),
832
+
833
+ 'remove_date' => [
834
+ 'title' => __('Remove date', 'buttonizer-multifunctional-button'),
835
+ 'message' => __('Are you sure you want to remove this date?', 'buttonizer-multifunctional-button'),
836
+ ],
837
+
838
+ // Errors
839
+ 'errors' => [
840
+ 'time_invalid' => sprintf(
841
+ // translators: The strings will be replaced with time (example: 10:10)
842
+ __('Sorry, the time \'%1$s\' was invalid. Reverting back to \'%2$s\'.', 'buttonizer-multifunctional-button'),
843
+ '{0}', '{1}'
844
+ ),
845
+
846
+ 'time_overlap_start' => sprintf(
847
+ // translators: The strings will be replaced with time (example: 10:10)
848
+ __('The start time \'%1$s\' conflicts with the end time \'%2$s\'. Time has been reverted to \'%3$s\'. Make sure you have at least 5 minutes overlap.', 'buttonizer-multifunctional-button'),
849
+ '{0}', '{1}', '{2}'
850
+ ),
851
+
852
+ 'time_overlap_end' => sprintf(
853
+ // translators: The strings will be replaced with time (example: 10:10)
854
+ __('The end time \'%1$s\' conflicts with the start time \'%2$s\'. Time has been reverted to \'%3$s\'. Make sure you have at least 5 minutes overlap.', 'buttonizer-multifunctional-button'),
855
+ '{0}', '{1}', '{2}'
856
+ ),
857
+ ],
858
+
859
+ // Weekdays
860
+ 'weekdays' => [
861
+ 'weekdays' => __('Weekdays', 'buttonizer-multifunctional-button'),
862
+ 'monday' => __('Monday', 'buttonizer-multifunctional-button'),
863
+ 'tuesday' => __('Tuesday', 'buttonizer-multifunctional-button'),
864
+ 'wednesday' => __('Wednesday', 'buttonizer-multifunctional-button'),
865
+ 'thursday' => __('Thursday', 'buttonizer-multifunctional-button'),
866
+ 'friday' => __('Friday', 'buttonizer-multifunctional-button'),
867
+ 'saturday' => __('Saturday', 'buttonizer-multifunctional-button'),
868
+ 'sunday' => __('Sunday', 'buttonizer-multifunctional-button'),
869
+ ],
870
+
871
+ 'exclude_dates' => __('Exclude dates', 'buttonizer-multifunctional-button'),
872
+ 'exclude_dates_info' => __('You are able to add specific dates to show or hide the buttons attached to this time scheme. So you can say something like this: "<i>I am opened on January 22th until 22:00 (10 PM) because of some special evening we organize.</i>". You can add those dates and configure them. The rule will overwrite the default settings for that weekday.', 'buttonizer-multifunctional-button'),
873
+
874
+ // Trigger from
875
+ 'input_start' => [
876
+ 'label' => __('Start triggering buttons from', 'buttonizer-multifunctional-button'),
877
+ 'placeholder' => __('Click to add start date', 'buttonizer-multifunctional-button'),
878
+
879
+ 'error' => sprintf(
880
+ // translators: The string will become a date
881
+ __('Warning! Your start date \'%s\' hast past the end date of this schedule. If you do not change this date the schedule will not work.', 'buttonizer-multifunctional-button'),
882
+ '{0}'
883
+ )
884
+ ],
885
+
886
+ // Trigger until
887
+ 'input_end' => [
888
+ 'label' => __('Stop triggering buttons after (optional)', 'buttonizer-multifunctional-button'),
889
+ 'placeholder' => __('Click to add ending date', 'buttonizer-multifunctional-button'),
890
+ 'placeholder_empty' => __('Select a date in the datepicker below', 'buttonizer-multifunctional-button'),
891
+ 'error' => sprintf(
892
+ // translators: The string will become a date
893
+ __('Warning! Your end date \'%s\' has past the start date of this schedule. If you do not change this date the schedule will not work.', 'buttonizer-multifunctional-button'),
894
+ '{0}'
895
+ )
896
+ ],
897
+ ];
898
+ }
899
+
900
+ /**
901
+ * Saving
902
+ *
903
+ * @return array
904
+ */
905
+ private function migration() {
906
+ return [
907
+ 'title' => __('Hi Buttonizer!', 'buttonizer-multifunctional-button'),
908
+ 'intro' => __('It appears you\'ve installed Buttonizer 2.0 before. But, you installed version 1.5 again later on and updated back to 2.0!', 'buttonizer-multifunctional-button'),
909
+ 'convert' => __('The migration progress did not run as it did back then. In order to convert your buttons, press the button below!', 'buttonizer-multifunctional-button'),
910
+ 'popping_up' => sprintf(
911
+ // translators: %1$s and %2$s will become HTML icons as preview
912
+ __('If this window keeps popping up, even when you\'ve tried to convert the buttons, try to reset Buttonizer. Go to the \'cog\' icon (%1$s) on the top bar, select \'Options %2$s\' and the tab \'Reset\' and follow the instructions.', 'buttonizer-multifunctional-button'),
913
+ '<i class="fas fa-cog"></i>',
914
+ '<i class="fas fa-cogs"></i>'
915
+ ),
916
+ 'convert_buttons' => __('Convert my buttons!', 'buttonizer-multifunctional-button'),
917
+ ];
918
+ }
919
+
920
+ /**
921
+ * Saving
922
+ *
923
+ * @return array
924
+ */
925
+ private function premium() {
926
+ return [
927
+ 'modal' => [
928
+ 'title' => __('Premium feature', 'buttonizer-multifunctional-button'),
929
+ 'describe' => __('Hi there, this function is a premium feature. We will describe what this feature will do:', 'buttonizer-multifunctional-button'),
930
+ 'what_do_i_get' => __('What you get as a premium user:', 'buttonizer-multifunctional-button'),
931
+ 'go_pro' => __('Go pro', 'buttonizer-multifunctional-button'),
932
+
933
+ 'list' => [
934
+ 'time_schedules' => __('Show button(groups) using the advanced time schedules', 'buttonizer-multifunctional-button'),
935
+ 'page_rules' => __('Show button(groups) on specific pages using advanced page rules', 'buttonizer-multifunctional-button'),
936
+ 'button_groups' => __('Create multiple button groups', 'buttonizer-multifunctional-button'),
937
+ 'custom_images' => __('Custom button background &amp; icon image', 'buttonizer-multifunctional-button'),
938
+ 'exit_intent' => __('Exit intent', 'buttonizer-multifunctional-button'),
939
+ 'show_on_scroll' => __('Show or hide on scroll', 'buttonizer-multifunctional-button'),
940
+ 'show_on_timeout' => __('Show on timeout', 'buttonizer-multifunctional-button'),
941
+ 'custom_class' => __('Be able to set CSS class names and button IDs', 'buttonizer-multifunctional-button'),
942
+ 'javascript' => __('Execute javascript on button clicks', 'buttonizer-multifunctional-button'),
943
+ ]
944
+ ],
945
+ 'time_schedules' => [
946
+ 'first_time_schedule' => __('My first time schedule', 'buttonizer-multifunctional-button')
947
+ ],
948
+
949
+ 'page_rules' => [
950
+ 'first_page_rule' => __('My first page rule', 'buttonizer-multifunctional-button')
951
+ ]
952
+ ];
953
+ }
954
+
955
+ /**
956
+ * Warm welcome!
957
+ *
958
+ * @return array
959
+ */
960
+ private function welcome() {
961
+ return [
962
+ 'title' => __('Welcome to Buttonizer', 'buttonizer-multifunctional-button'),
963
+ 'intro' => sprintf(
964
+ // translators: %s will become 'Buttonizer'
965
+ __('We are pleased to welcome you to <b>%s</b>!', 'buttonizer-multifunctional-button'),
966
+ 'Buttonizer 2.0'
967
+ ),
968
+ 'tour' => __('We\'ve created a tour for our new users. Would you like to take the tour?', 'buttonizer-multifunctional-button'),
969
+ 'already_know' => __('No thanks, I know how it works', 'buttonizer-multifunctional-button'),
970
+ 'take_tour' => __('Yes please', 'buttonizer-multifunctional-button'),
971
+
972
+ 'exit_tour' => __('Exit tour', 'buttonizer-multifunctional-button'),
973
+ 'tour-steps' => [
974
+ 'step-0' => [
975
+ 'title' => __('Welcome to the Buttonizer tour!', 'buttonizer-multifunctional-button'),
976
+ 'description' => __('Start the tour and save time. Master the Buttonizer skills in only two minutes.', 'buttonizer-multifunctional-button'),
977
+ 'keyboard' => sprintf(
978
+ // translators: First %1$s will be an left-key icon, second %2$s will be right-key icon, third %3$s will be an keyboard icon
979
+ __('You can use the %1$s and %2$s keys on your %3$s to navigate.', 'buttonizer-multifunctional-button'),
980
+ '<i class="far fa-caret-square-left"></i>', '<i class="far fa-caret-square-right"></i>', '<i class="far fa-keyboard"></i>'
981
+ ),
982
+ ],
983
+ 'step-1' => [
984
+ 'title' => __('Buttonizer bar', 'buttonizer-multifunctional-button'),
985
+ 'description' => __('Manage all your Floating Action Buttons and Floating menu\'s in the Buttonizer bar.', 'buttonizer-multifunctional-button'),
986
+ ],
987
+ 'step-2' => [
988
+ 'title' => __('Preview', 'buttonizer-multifunctional-button'),
989
+ 'description' => __('Watch the impact of your changes in the preview pane. Your buttons will only be visible to your website visitor after you click on \'Publish\'.', 'buttonizer-multifunctional-button'),
990
+ ],
991
+ 'step-3' => [
992
+ 'title' => __('Top bar', 'buttonizer-multifunctional-button'),
993
+ 'description' => __('In the top bar, you can:', 'buttonizer-multifunctional-button'),
994
+
995
+ 'list' => [
996
+ 'close' => __('Click the <b>\'X\'</b> to go back to WordPress', 'buttonizer-multifunctional-button'),
997
+ 'revert' => __('<b>Revert</b> changes you have made', 'buttonizer-multifunctional-button'),
998
+ 'publish' => __('<b>Publish</b> all your changes', 'buttonizer-multifunctional-button'),
999
+ 'general-settings' => __('Access the <b>general settings</b>', 'buttonizer-multifunctional-button'),
1000
+ ]
1001
+ ],
1002
+ 'step-4' => [
1003
+ 'description' => sprintf(
1004
+ // translators: %s will be replaced with an arrow and an ENTER (new line)
1005
+ __('Click here %s to go to Buttonizer\'s general settings.', 'buttonizer-multifunctional-button'),
1006
+ '<b>&rarr;</b> <br>'
1007
+ ),
1008
+ ],
1009
+ 'step-5' => [
1010
+ 'title' => __('Menu', 'buttonizer-multifunctional-button'),
1011
+
1012
+ 'list' => [
1013
+ 'knowledgebase' => __('Want to know what you can do with Buttonizer? Take a look at our knowledge base!', 'buttonizer-multifunctional-button'),
1014
+ 'support' => __('Visit our support page for help from us or other users.', 'buttonizer-multifunctional-button'),
1015
+ 'community' => __('Visit our community page and interact with other Buttonizer users!', 'buttonizer-multifunctional-button'),
1016
+ 'account' => __('View your account details and license.', 'buttonizer-multifunctional-button'),
1017
+ 'upgrade' => __('Upgrade or extend your license.', 'buttonizer-multifunctional-button'),
1018
+ 'affiliation' => __('Happy with the plugin? Become an ambassador and earn some cash ;-)', 'buttonizer-multifunctional-button'),
1019
+ 'options' => __('Change general settings like icon libraries and Google Analytics.', 'buttonizer-multifunctional-button'),
1020
+ ]
1021
+ ],
1022
+ 'step-6' => [
1023
+ 'description' => __('Click on <b>Options</b> to open Buttonizer\'s general settings.', 'buttonizer-multifunctional-button'),
1024
+ ],
1025
+ 'step-7' => [
1026
+ 'title' => __('Buttonizer settings', 'buttonizer-multifunctional-button'),
1027
+
1028
+ 'list' => [
1029
+ 'icon-library' => __('In this section, you will be able to choose other icon libraries, the icon library version and whether Buttonizer should import the icon library.', 'buttonizer-multifunctional-button'),
1030
+ 'google-analytics' => __('Want to track your button events? Place your Google Analytics code here!', 'buttonizer-multifunctional-button'),
1031
+ 'reset' => __('Completely reset Buttonizers data.', 'buttonizer-multifunctional-button')
1032
+ ]
1033
+ ],
1034
+ 'step-8' => [
1035
+ 'title' => __('Button group', 'buttonizer-multifunctional-button'),
1036
+ 'multiple_buttons' => __('A button group contains buttons.', 'buttonizer-multifunctional-button'),
1037
+ 'visible' => __('Button groups are only visible when there are <u><b>2 or more buttons</b></u> within the group.', 'buttonizer-multifunctional-button'),
1038
+ 'position' => __('The buttons in a button group are dedicated to one position. Add multiple button groups if you want to create more floating action buttons dedicated to different positions.', 'buttonizer-multifunctional-button'),
1039
+ ],
1040
+ 'step-9' => [
1041
+ 'description' => __('Click here to show group settings.', 'buttonizer-multifunctional-button'),
1042
+ ],
1043
+ 'step-10' => [
1044
+ 'title' => __('Group settings', 'buttonizer-multifunctional-button'),
1045
+ 'description' => __('Change the style of the button group here.', 'buttonizer-multifunctional-button'),
1046
+ 'action' => __('Click on the left arrow to go back.', 'buttonizer-multifunctional-button'),
1047
+ ],
1048
+ 'step-11' => [
1049
+ 'title' => __('Position & device visibility', 'buttonizer-multifunctional-button'),
1050
+ 'position' => __('When you change the position of the button group it will move the whole group, including the buttons.', 'buttonizer-multifunctional-button'),
1051
+ 'visibility' => __('Choose whether you want the <b><u>whole group</u></b> to be visible on desktop or mobile devices.', 'buttonizer-multifunctional-button'),
1052
+ ],
1053
+ 'step-12' => [
1054
+ 'title' => __('Menu style', 'buttonizer-multifunctional-button'),
1055
+ 'start_opened' => __('Setup Buttonizer to open automatically!', 'buttonizer-multifunctional-button'),
1056
+ 'menu_style' => __('Change the style of your floating menu.', 'buttonizer-multifunctional-button'),
1057
+ 'animation' => __('Buttonizer will animate every 10 seconds in order to capture the visitor\'s attention.', 'buttonizer-multifunctional-button'),
1058
+ ],
1059
+ 'step-13' => [
1060
+ 'title' => __('Group style', 'buttonizer-multifunctional-button'),
1061
+ 'background_color' => __('Change the color of the button group.', 'buttonizer-multifunctional-button'),
1062
+ 'border_radius' => __('Change the border radius of the button group!', 'buttonizer-multifunctional-button'),
1063
+ 'background_image' => __('Choose an image to use as a background of the button group.', 'buttonizer-multifunctional-button'),
1064
+ ],
1065
+ 'step-14' => [
1066
+ 'title' => __('Group style', 'buttonizer-multifunctional-button'),
1067
+ 'icon' => __('Choose your favorite icon from your selected icon library.', 'buttonizer-multifunctional-button'),
1068
+ 'background_image' => __('Choose an image to use as a background of the button group.', 'buttonizer-multifunctional-button'),
1069
+ ],
1070
+ 'step-15' => __('Quick setting to show or hide buttons depending device!', 'buttonizer-multifunctional-button'),
1071
+ 'step-before-button' => [
1072
+ 'action' => __('Click here to add a new button.', 'buttonizer-multifunctional-button'),
1073
+ 'msg1' => sprintf(
1074
+ // translators: %s will be replaced with 'Add button'
1075
+ __('Don\'t click on next... Click on \'%s\'', 'buttonizer-multifunctional-button'),
1076
+ __('Add button', 'buttonizer-multifunctional-button') . ' +'
1077
+ ),
1078
+ 'msg2' => sprintf(
1079
+ // translators: %s will be replaced with 'Add button'
1080
+ __('If you don\'t want to click \'%s\', I can do you the honor :)', 'buttonizer-multifunctional-button'),
1081
+ __('Add button', 'buttonizer-multifunctional-button') . ' +'
1082
+ ),
1083
+ 'msg3' => __('Here, on the left... If you won\'t click it, I will click it >:-)', 'buttonizer-multifunctional-button'),
1084
+ 'msg4' => __('Hello? Please click that button...', 'buttonizer-multifunctional-button'),
1085
+ ],
1086
+
1087
+ 'step-23' => __('You have created a new button! This is a button. Buttons are contained within a group.', 'buttonizer-multifunctional-button'),
1088
+ 'step-26' => __('Click here to open the menu.', 'buttonizer-multifunctional-button'),
1089
+ 'step-27' => [
1090
+ 'edit_button' => __('Edit the style of the button.', 'buttonizer-multifunctional-button'),
1091
+ 'advanced_settings' => __('Make the button appear/hide on certain pages and during certain times! This function is only available for our premium users.', 'buttonizer-multifunctional-button'),
1092
+ 'rename' => __('Rename the button.', 'buttonizer-multifunctional-button'),
1093
+ 'duplicate' => __('Make a copy of the button.', 'buttonizer-multifunctional-button'),
1094
+ 'delete' => __('Delete the button.', 'buttonizer-multifunctional-button'),
1095
+ ],
1096
+ 'step-28' => __('Click here to show the button settings.', 'buttonizer-multifunctional-button'),
1097
+ 'step-29' => [
1098
+ 'title' => __('Button settings', 'buttonizer-multifunctional-button'),
1099
+ 'description' => __('These are the button settings. Pretty similar to the group settings.', 'buttonizer-multifunctional-button'),
1100
+ ],
1101
+ 'step-30' => [
1102
+ 'title' => __('Position & device visibility', 'buttonizer-multifunctional-button'),
1103
+ 'position' => __('When you change the position of the button group it will move the whole group, including the buttons.', 'buttonizer-multifunctional-button'),
1104
+ 'visibility' => __('You can choose whether you want the <b><u>whole group</u></b> to be visible on desktop or mobile devices.', 'buttonizer-multifunctional-button'),
1105
+ ],
1106
+ 'step-31' => [
1107
+ 'enabled' => __('When enabled, the button will copy the button and label style of the group.', 'buttonizer-multifunctional-button'),
1108
+ 'turning_off' => __('By turning it of you can change the style of the button.', 'buttonizer-multifunctional-button'),
1109
+ ],
1110
+ 'step-34' => [
1111
+ 'title' => __('Revert or save', 'buttonizer-multifunctional-button'),
1112
+ 'revert_title' => __('Revert changes', 'buttonizer-multifunctional-button'),
1113
+ 'revert_description' => __('Delete all the changes you\'ve made this session.', 'buttonizer-multifunctional-button'),
1114
+ 'save_title' => __('Save & publish', 'buttonizer-multifunctional-button'),
1115
+ 'save_description' => __('Save and publish the changes you\'ve made this session.', 'buttonizer-multifunctional-button'),
1116
+ ],
1117
+ 'final' => [
1118
+ 'title' => __('That was it!', 'buttonizer-multifunctional-button'),
1119
+ 'intro' => sprintf(
1120
+ // translators: %s will be the link to the community forums
1121
+ __('Thank you for taking the tour, that\'s all folks! We hope you\'re ready to start implementing Buttonizer to meet your goals! If you have any questions, ask them on the %s forums!', 'buttonizer-multifunctional-button'),
1122
+ '<a href="https://community.buttonizer.pro" target="_blank">Buttonizer Community</a>'
1123
+ ),
1124
+ 'outro' => __('If you have any feedback regarding the Buttonizer Tour, we\'d love to hear it!', 'buttonizer-multifunctional-button')
1125
+ ],
1126
+ ]
1127
+ ];
1128
+ }
1129
+ }
1130
+
1131
+ /**
1132
+ * This is the end of the document with all strings.
1133
+ *
1134
+ * It was a lot of work to make Buttonizer translatable.
1135
+ *
1136
+ * Mail some love to jasper@buttonizer.pro
1137
+ */
assets/dashboard.css CHANGED
@@ -548,12 +548,14 @@ tr.introjs-showElement > th {
548
  box-sizing: content-box;
549
  position: absolute;
550
  visibility: visible;
551
- padding: 10px;
552
  background-color: white;
553
  min-width: 200px;
554
  max-width: 300px;
555
- border-radius: 3px;
556
- box-shadow: 0 1px 10px rgba(0,0,0,.4);
 
 
557
  -webkit-transition: opacity 0.1s ease-out;
558
  -moz-transition: opacity 0.1s ease-out;
559
  -ms-transition: opacity 0.1s ease-out;
@@ -561,6 +563,10 @@ tr.introjs-showElement > th {
561
  transition: opacity 0.1s ease-out;
562
  }
563
 
 
 
 
 
564
  .introjs-tooltip.wider {
565
  max-width: 300px;
566
  width: 484px;
@@ -586,7 +592,7 @@ tr.introjs-showElement > th {
586
  position: relative;
587
  overflow: visible;
588
  display: inline-block;
589
- padding: 6px 17px;
590
  margin: 0;
591
  text-decoration: none;
592
  font: 12px/normal sans-serif;
@@ -4655,6 +4661,9 @@ tr.introjs-showElement > th {
4655
  /**
4656
  * Import animate.css
4657
  */
 
 
 
4658
  .btnizr-wp-icon {
4659
  background: url(./images/wp-icon.png);
4660
  }
@@ -5011,6 +5020,17 @@ tr.introjs-showElement > th {
5011
  left: 22px;
5012
  border-color: #2b6ba7; }
5013
 
 
 
 
 
 
 
 
 
 
 
 
5014
  .buttonizer-hide-formitem {
5015
  display: none !important; }
5016
 
@@ -5112,6 +5132,19 @@ tr.introjs-showElement > th {
5112
  height: auto !important;
5113
  margin-top: -4px; }
5114
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5115
  .buttonizer-input-action {
5116
  -webkit-border-radius: 5px;
5117
  -moz-border-radius: 5px;
@@ -5253,7 +5286,7 @@ body.buttonizer-initialized #wpwrap {
5253
  .buttonizer-topbar .options-window ul li a.single-button {
5254
  padding: 12px 0 12px 2em; }
5255
  .buttonizer-topbar .options-window ul li a i {
5256
- margin-right: 10px;
5257
  float: right;
5258
  margin-top: 8px; }
5259
  .buttonizer-topbar .options-window ul li a span.button-description {
@@ -5361,6 +5394,13 @@ body.buttonizer-initialized #wpwrap {
5361
  -moz-transition: 250ms all ease-in;
5362
  -webkit-transition: 250ms all ease-in;
5363
  overflow: hidden; }
 
 
 
 
 
 
 
5364
  .buttonizer-bar .create-new-button {
5365
  color: #3f4143;
5366
  padding: 10px 0;
@@ -5641,7 +5681,7 @@ body.buttonizer-initialized #wpwrap {
5641
  box-shadow: 6px 0 6px rgba(179, 179, 179, 0.96); }
5642
  .buttonizer-bar .container .buttonizer-group-holder .buttonizer-button-group .button-group-holder .group-holder-quick-menu {
5643
  position: absolute;
5644
- width: 200px;
5645
  z-index: 999;
5646
  right: 0;
5647
  background: #FFFFFF;
@@ -5795,6 +5835,25 @@ body.buttonizer-initialized #wpwrap {
5795
  transform: rotate(-6deg); }
5796
  .buttonizer-bar .container .button-group-styling .buttonizer-setting-row.is-boolean .buttonizer-setting-row-c1 {
5797
  width: 352px; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5798
  .buttonizer-bar .container .button-group-styling .advanced-settings {
5799
  display: block;
5800
  font-weight: 500;
@@ -6218,7 +6277,8 @@ body.warning-left-preview-window .buttonizer-frame, body.warning-reverted-change
6218
  padding: 9px 0 !important;
6219
  font-size: 11px;
6220
  color: #626262;
6221
- font-weight: 700; }
 
6222
  .buttonizer-settings-window .is-rule-table tr td {
6223
  padding: 5px 0;
6224
  border-top: 1px solid #dcdcdc;
@@ -6339,7 +6399,7 @@ body.warning-left-preview-window .buttonizer-frame, body.warning-reverted-change
6339
  border-radius: 3px;
6340
  -moz-border-radius: 3px;
6341
  -webkit-border-radius: 3px;
6342
- overflow: hidden; }
6343
  .buttonizer-settings-window.not-floating .header {
6344
  cursor: default !important; }
6345
  .buttonizer-settings-window.not-floating .body {
@@ -6702,6 +6762,22 @@ body.warning-left-preview-window .buttonizer-frame, body.warning-reverted-change
6702
  .fs-modal .fs-modal-header .extra-icon:hover {
6703
  color: #6f6f6f; }
6704
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6705
  .buttonizer-pro-checklist {
6706
  font-size: 16px;
6707
  line-height: 22px;
@@ -6857,6 +6933,20 @@ body {
6857
  .table-relative {
6858
  position: relative; }
6859
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6860
  @media screen and (max-width: 782px) {
6861
  html.wp-toolbar {
6862
  padding: 0 !important; }
548
  box-sizing: content-box;
549
  position: absolute;
550
  visibility: visible;
551
+ padding: 20px;
552
  background-color: white;
553
  min-width: 200px;
554
  max-width: 300px;
555
+ -webkit-border-radius: 5px;
556
+ -moz-border-radius: 5px;
557
+ border-radius: 5px;
558
+ box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15), 0 0 0 5px rgba(255,255,255,0.2);
559
  -webkit-transition: opacity 0.1s ease-out;
560
  -moz-transition: opacity 0.1s ease-out;
561
  -ms-transition: opacity 0.1s ease-out;
563
  transition: opacity 0.1s ease-out;
564
  }
565
 
566
+ .introjs-tooltip h2 {
567
+ margin-top: 0 !important;
568
+ }
569
+
570
  .introjs-tooltip.wider {
571
  max-width: 300px;
572
  width: 484px;
592
  position: relative;
593
  overflow: visible;
594
  display: inline-block;
595
+ padding: 8px 17px;
596
  margin: 0;
597
  text-decoration: none;
598
  font: 12px/normal sans-serif;
4661
  /**
4662
  * Import animate.css
4663
  */
4664
+
4665
+ /* Future */
4666
+ /*@import "../../../../node_modules/codemirror-colorpicker/dist/codemirror-colorpicker.css";*/
4667
  .btnizr-wp-icon {
4668
  background: url(./images/wp-icon.png);
4669
  }
5020
  left: 22px;
5021
  border-color: #2b6ba7; }
5022
 
5023
+ .field-error-container {
5024
+ border: 1px solid #aa2c2c;
5025
+ background: #ffeeec;
5026
+ color: #ff0000;
5027
+ margin-top: 10px;
5028
+ padding: 9px 15px; }
5029
+
5030
+ .field-error {
5031
+ color: #f10000;
5032
+ margin-top: 10px; }
5033
+
5034
  .buttonizer-hide-formitem {
5035
  display: none !important; }
5036
 
5132
  height: auto !important;
5133
  margin-top: -4px; }
5134
 
5135
+ .buttonizer-select-drawer {
5136
+ -webkit-border-radius: 5px;
5137
+ -moz-border-radius: 5px;
5138
+ border-radius: 5px;
5139
+ width: 100%;
5140
+ font-size: 12px;
5141
+ border: 1px solid #c2c7cc;
5142
+ display: block;
5143
+ color: rgba(0, 0, 0, 0.8);
5144
+ padding: 8px 10px !important;
5145
+ height: auto !important;
5146
+ margin-top: -4px; }
5147
+
5148
  .buttonizer-input-action {
5149
  -webkit-border-radius: 5px;
5150
  -moz-border-radius: 5px;
5286
  .buttonizer-topbar .options-window ul li a.single-button {
5287
  padding: 12px 0 12px 2em; }
5288
  .buttonizer-topbar .options-window ul li a i {
5289
+ margin-right: 30px;
5290
  float: right;
5291
  margin-top: 8px; }
5292
  .buttonizer-topbar .options-window ul li a span.button-description {
5394
  -moz-transition: 250ms all ease-in;
5395
  -webkit-transition: 250ms all ease-in;
5396
  overflow: hidden; }
5397
+ .buttonizer-bar p {
5398
+ line-height: 23px; }
5399
+ .buttonizer-bar p a {
5400
+ text-decoration: none;
5401
+ color: #0093ff; }
5402
+ .buttonizer-bar p a:hover {
5403
+ text-decoration: underline; }
5404
  .buttonizer-bar .create-new-button {
5405
  color: #3f4143;
5406
  padding: 10px 0;
5681
  box-shadow: 6px 0 6px rgba(179, 179, 179, 0.96); }
5682
  .buttonizer-bar .container .buttonizer-group-holder .buttonizer-button-group .button-group-holder .group-holder-quick-menu {
5683
  position: absolute;
5684
+ min-width: 200px;
5685
  z-index: 999;
5686
  right: 0;
5687
  background: #FFFFFF;
5835
  transform: rotate(-6deg); }
5836
  .buttonizer-bar .container .button-group-styling .buttonizer-setting-row.is-boolean .buttonizer-setting-row-c1 {
5837
  width: 352px; }
5838
+ .buttonizer-bar .container .button-group-styling .chosen-container .chosen-drop {
5839
+ margin-top: -6px; }
5840
+ .buttonizer-bar .container .button-group-styling .chosen-container .chosen-drop ul {
5841
+ max-height: 400px;
5842
+ height: 50vh; }
5843
+ .buttonizer-bar .container .button-group-styling .chosen-container .chosen-drop ul li {
5844
+ font-size: 13px; }
5845
+ .buttonizer-bar .container .button-group-styling .chosen-container .chosen-drop ul li em {
5846
+ text-decoration: underline;
5847
+ background: none; }
5848
+ .buttonizer-bar .container .button-group-styling .chosen-container .chosen-drop ul li.group-result {
5849
+ font-weight: 500;
5850
+ color: #000000; }
5851
+ .buttonizer-bar .container .button-group-styling .chosen-container .chosen-drop ul li.group-option {
5852
+ color: #4e4e4e; }
5853
+ .buttonizer-bar .container .button-group-styling .chosen-container .chosen-drop ul li.group-option:hover, .buttonizer-bar .container .button-group-styling .chosen-container .chosen-drop ul li.group-option.highlighted {
5854
+ color: #FFFFFF; }
5855
+ .buttonizer-bar .container .button-group-styling .chosen-container .chosen-drop ul li.disabled-result {
5856
+ color: #a5a5a5 !important; }
5857
  .buttonizer-bar .container .button-group-styling .advanced-settings {
5858
  display: block;
5859
  font-weight: 500;
6277
  padding: 9px 0 !important;
6278
  font-size: 11px;
6279
  color: #626262;
6280
+ font-weight: 700;
6281
+ text-transform: uppercase; }
6282
  .buttonizer-settings-window .is-rule-table tr td {
6283
  padding: 5px 0;
6284
  border-top: 1px solid #dcdcdc;
6399
  border-radius: 3px;
6400
  -moz-border-radius: 3px;
6401
  -webkit-border-radius: 3px;
6402
+ padding-bottom: 1px; }
6403
  .buttonizer-settings-window.not-floating .header {
6404
  cursor: default !important; }
6405
  .buttonizer-settings-window.not-floating .body {
6762
  .fs-modal .fs-modal-header .extra-icon:hover {
6763
  color: #6f6f6f; }
6764
 
6765
+ @media screen and (min-width: 1100px) {
6766
+ .fs-modal.has-video .fs-modal-dialog {
6767
+ width: 1052px;
6768
+ margin-left: -526px;
6769
+ background: white;
6770
+ padding-bottom: 0; }
6771
+ .fs-modal.has-video .fs-modal-dialog .fs-modal-body {
6772
+ width: 400px;
6773
+ display: block;
6774
+ float: left;
6775
+ border-rght: #eeeeee solid 1px; }
6776
+ .fs-modal.has-video .fs-modal-dialog .fs-modal-video {
6777
+ display: block;
6778
+ width: 571px;
6779
+ float: right; } }
6780
+
6781
  .buttonizer-pro-checklist {
6782
  font-size: 16px;
6783
  line-height: 22px;
6933
  .table-relative {
6934
  position: relative; }
6935
 
6936
+ .info-link {
6937
+ text-decoration: none;
6938
+ display: block;
6939
+ font-size: 12px; }
6940
+ .info-link.text-big {
6941
+ font-size: 14px; }
6942
+ .info-link.text-big i, .info-link.text-big svg {
6943
+ margin-right: 10px;
6944
+ font-size: 16px; }
6945
+ .info-link.has-margin-everywhere, .info-link.has-margin-top {
6946
+ margin-top: 10px; }
6947
+ .info-link.has-margin-everywhere, .info-link.has-margin-bottom {
6948
+ margin-bottom: 20px; }
6949
+
6950
  @media screen and (max-width: 782px) {
6951
  html.wp-toolbar {
6952
  padding: 0 !important; }
assets/dashboard.js CHANGED
@@ -94,7 +94,7 @@
94
  /******/
95
  /******/
96
  /******/ // Load entry module and return exports
97
- /******/ return __webpack_require__(__webpack_require__.s = 15);
98
  /******/ })
99
  /************************************************************************/
100
  /******/ ([
@@ -7592,16 +7592,1381 @@ if (typeof Object.create === 'function') {
7592
 
7593
 
7594
  /***/ }),
7595
- /* 13 */,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7596
  /* 14 */,
7597
- /* 15 */
 
7598
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7599
 
7600
  "use strict";
7601
  __webpack_require__.r(__webpack_exports__);
7602
 
7603
  // EXTERNAL MODULE: ./src/sass/admin/dashboard.scss
7604
- var dashboard = __webpack_require__(17);
7605
 
7606
  // CONCATENATED MODULE: ./src/js/admin/components/Debug.js
7607
 
@@ -7830,6 +9195,11 @@ class Modal_Index
7830
  this.class = this.data.class;
7831
  }
7832
 
 
 
 
 
 
7833
  // Write modal
7834
  this.render();
7835
  }
@@ -7851,6 +9221,11 @@ class Modal_Index
7851
  // Add text body
7852
  modalBody.appendChild(this.modalBody());
7853
 
 
 
 
 
 
7854
  // Add footer
7855
  modalBody.appendChild(this.modalFooter());
7856
 
@@ -7858,6 +9233,7 @@ class Modal_Index
7858
  this.element.appendChild(modalBody);
7859
 
7860
  document.body.appendChild(this.element);
 
7861
  }
7862
 
7863
  modalHeader()
@@ -7874,7 +9250,7 @@ class Modal_Index
7874
  let closeButton = document.createElement("a");
7875
  closeButton.className = "fs-close";
7876
  closeButton.href = "javascript:void(0)";
7877
- closeButton.innerHTML = "<i class=\"dashicons dashicons-no\" title=\"Dismiss\"></i>";
7878
 
7879
  closeButton.addEventListener("click", () => {
7880
  this.closeDialog();
@@ -7889,6 +9265,8 @@ class Modal_Index
7889
  // Modal body
7890
  modalBody()
7891
  {
 
 
7892
  let body = document.createElement("div");
7893
  body.className = "fs-modal-body";
7894
 
@@ -7904,6 +9282,13 @@ class Modal_Index
7904
 
7905
  body.appendChild(panel);
7906
 
 
 
 
 
 
 
 
7907
  return body;
7908
  }
7909
 
@@ -7956,6 +9341,43 @@ class Modal_Index
7956
  this.onClose();
7957
  this.element.remove();
7958
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7959
  }
7960
 
7961
  /* harmony default export */ var Modal = (Modal_Index);
@@ -8086,62 +9508,6 @@ class Table
8086
  return this.table;
8087
  }
8088
  }
8089
- // CONCATENATED MODULE: ./src/js/admin/ui/Button/ButtonOptions/Window/CustomClass.js
8090
-
8091
-
8092
- class CustomClass_CustomClass
8093
- {
8094
- constructor(windowObject)
8095
- {
8096
- this.windowObject = windowObject;
8097
- }
8098
-
8099
- build()
8100
- {
8101
- let input = document.createElement("input");
8102
- input.className = "window-select";
8103
- input.placeholder = "Add class";
8104
-
8105
-
8106
-
8107
-
8108
- // Table
8109
- let customClass = new Table("table-relative");
8110
- customClass.addColumnHTML("<h2>Custom class <span class='buttonizer-premium premium-right'>PRO</span></h2>","table-align-top", "");
8111
- input.addEventListener("mousedown", () => window.Buttonizer.showPremiumPopup("You can add a custom class to each button for styling purposes."));
8112
- customClass.addColumn(input, "", "370");
8113
-
8114
- return customClass.build();
8115
- }
8116
- }
8117
- // CONCATENATED MODULE: ./src/js/admin/ui/Button/ButtonOptions/Window/CustomID.js
8118
-
8119
-
8120
- class CustomID_CustomID
8121
- {
8122
- constructor(windowObject)
8123
- {
8124
- this.windowObject = windowObject;
8125
- }
8126
-
8127
- build()
8128
- {
8129
- let input = document.createElement("input");
8130
- input.className = "window-select";
8131
- input.placeholder = "Add ID";
8132
-
8133
-
8134
-
8135
-
8136
- // Table
8137
- let customId = new Table('table-relative');
8138
- customId.addColumnHTML("<h2>Custom ID <span class='buttonizer-premium premium-right'>PRO</span></h2>");
8139
- input.addEventListener("mousedown", () => window.Buttonizer.showPremiumPopup("You can add a custom ID to each button for styling purposes."));
8140
- customId.addColumn(input, "", "370");
8141
-
8142
- return customId.build();
8143
- }
8144
- }
8145
  // CONCATENATED MODULE: ./src/js/admin/ui/Inputs/FormDropdown.js
8146
  /**
8147
  * Buttonizer 2.0
@@ -8212,16 +9578,13 @@ class FormDropdown
8212
  this.callback = callback;
8213
  }
8214
  }
8215
- // CONCATENATED MODULE: ./src/js/admin/ui/Button/ButtonOptions/Window/Filters/TimeSchedule.js
8216
 
8217
 
8218
 
8219
- class TimeSchedule_TimeSchedule
 
8220
  {
8221
- /**
8222
- *
8223
- * @param {Object} windowObject
8224
- */
8225
  constructor(windowObject)
8226
  {
8227
  this.windowObject = windowObject;
@@ -8232,9 +9595,9 @@ class TimeSchedule_TimeSchedule
8232
  this.dropdown.className = "window-select";
8233
 
8234
 
8235
-
8236
  }
8237
 
 
8238
  build()
8239
  {
8240
  let holder = document.createElement("div");
@@ -8248,7 +9611,7 @@ class TimeSchedule_TimeSchedule
8248
  // Create table
8249
  let table = new Table('table-relative');
8250
 
8251
- table.addColumnHTML("<h2>Time schedule"+ (!window.Buttonizer.hasPremium() ? ' <span class="buttonizer-premium premium-right">PRO</span>' : '') +"</h2>", "table-align-top", '');
8252
  table.addColumn(holder, "", "370");
8253
  table.newRow();
8254
 
@@ -8264,114 +9627,27 @@ class TimeSchedule_TimeSchedule
8264
  {
8265
 
8266
 
8267
- this.dropdown.innerHTML = `<option>Show on all times</option>`;
8268
  this.dropdown.readonly = true;
8269
- this.dropdown.addEventListener("click", () => window.Buttonizer.showPremiumPopup("You can setup time schedules that will get triggered on specific times of a day you setup, it is even possible to change the schedule actions for specific days. You can create unlimited amount of schedules."));
8270
  }
8271
 
8272
  /**
8273
- * Decide what will happen when a time schedule is triggered
8274
  */
8275
 
8276
  }
8277
- // CONCATENATED MODULE: ./src/js/admin/ui/Inputs/FormToggle.js
8278
- /**
8279
- * Buttonizer 2.0
8280
- *
8281
- * This will create a switch input (on or off)
8282
- *
8283
- * Result value: true or false
8284
- */
8285
-
8286
- class FormToggle
8287
- {
8288
- /**
8289
- * FormBoolean constructor
8290
- *
8291
- * @param constructData
8292
- */
8293
- constructor(constructData)
8294
- {
8295
- // Is the switch checked?
8296
- this.state = (typeof constructData.state === typeof undefined ? false : (constructData.state == 'true'));
8297
 
8298
- // What must be executed when the switch changed?
8299
- this.onChange = (typeof constructData.onChange === typeof undefined ? function () { console.log("FormBoolean: No binding. Use FormBoolean.onChange()") } : constructData.onChange);
8300
 
8301
- // Is the switch disabled?
8302
- this.disabled = (typeof constructData.disabled === typeof undefined ? false : constructData.disabled);
8303
 
8304
- // Is the switch visible?
8305
- this.visible = (typeof constructData.visible === typeof undefined ? true : constructData.visible);
8306
-
8307
- // New element
8308
- this.element = HTMLElement;
8309
- }
8310
 
 
 
8311
  /**
8312
- * Building element
 
8313
  */
8314
- build()
8315
- {
8316
- // New switch element
8317
- this.element = document.createElement("a");
8318
- this.element.href = "javascript:void(0)";
8319
- this.element.className = "buttonizer-boolean " + (this.state === true ? 'boolean-selected' : '');
8320
- this.element.addEventListener("click", () => this.toggle());
8321
-
8322
- // Switch circle
8323
- let circle = document.createElement("div");
8324
- circle.className = "buttonizer-boolean-circle";
8325
-
8326
- this.element.appendChild(circle);
8327
-
8328
- return this.element;
8329
- }
8330
-
8331
- hide()
8332
- {
8333
- this.element.style.display = "none";
8334
- }
8335
-
8336
- show()
8337
- {
8338
- this.element.style.display = "block";
8339
- }
8340
-
8341
- onToggle(callback)
8342
- {
8343
- this.onChange = callback;
8344
- }
8345
-
8346
- toggle()
8347
- {
8348
- if(this.disabled)
8349
- {
8350
- console.log("Sorry, you're not able to edit this");
8351
- return;
8352
- }
8353
-
8354
- // Toggle
8355
- this.state = !this.state;
8356
-
8357
- // Add or remove class
8358
- if(this.state === true) {
8359
- this.element.classList.add("boolean-selected");
8360
- }else{
8361
- this.element.classList.remove("boolean-selected");
8362
- }
8363
-
8364
- this.onChange(this.state);
8365
- }
8366
- }
8367
- // CONCATENATED MODULE: ./src/js/admin/ui/Button/ButtonOptions/Window/Filters/PageRuleSelect.js
8368
-
8369
-
8370
-
8371
-
8372
-
8373
- class PageRuleSelect_PageRuleSelect
8374
- {
8375
  constructor(windowObject)
8376
  {
8377
  this.windowObject = windowObject;
@@ -8382,9 +9658,9 @@ class PageRuleSelect_PageRuleSelect
8382
  this.dropdown.className = "window-select";
8383
 
8384
 
 
8385
  }
8386
 
8387
- // Build selector
8388
  build()
8389
  {
8390
  let holder = document.createElement("div");
@@ -8398,7 +9674,7 @@ class PageRuleSelect_PageRuleSelect
8398
  // Create table
8399
  let table = new Table('table-relative');
8400
 
8401
- table.addColumnHTML("<h2>Page rule"+ (!window.Buttonizer.hasPremium() ? ' <span class="buttonizer-premium premium-right">PRO</span>' : '') +"</h2>", "table-align-top", "");
8402
  table.addColumn(holder, "", "370");
8403
  table.newRow();
8404
 
@@ -8414,17 +9690,17 @@ class PageRuleSelect_PageRuleSelect
8414
  {
8415
 
8416
 
8417
- this.dropdown.innerHTML = `<option>Show on all pages</option>`;
8418
  this.dropdown.readonly = true;
8419
- this.dropdown.addEventListener("click", () => window.Buttonizer.showPremiumPopup("You can setup page rules that will get triggered on specific pages or user roles. You can create unlimited page rules with multiple rules to trigger."));
8420
  }
8421
 
8422
  /**
8423
- * Decide what will happen when a page rule is triggered
8424
  */
8425
 
8426
  }
8427
- // CONCATENATED MODULE: ./src/js/admin/ui/ButtonGroup/GroupOptions/Window/ShowAfterTimeout.js
8428
 
8429
 
8430
 
@@ -8441,7 +9717,7 @@ class ShowAfterTimeout_ShowAfterTimeout
8441
 
8442
  if(!window.Buttonizer.hasPremium()) {
8443
  build.addEventListener('click', () => {
8444
- window.Buttonizer.showPremiumPopup("With this setting, you can make your button appear/hide after certain amount of time.");
8445
  });
8446
  }
8447
 
@@ -8495,7 +9771,7 @@ class ShowAfterTimeout_ShowAfterTimeout
8495
 
8496
 
8497
  }
8498
- // CONCATENATED MODULE: ./src/js/admin/ui/ButtonGroup/GroupOptions/Window/ShowOnScroll.js
8499
 
8500
 
8501
 
@@ -8524,7 +9800,7 @@ class ShowOnScroll_ShowOnScroll
8524
 
8525
  if(!window.Buttonizer.hasPremium()) {
8526
  build.addEventListener('click', () => {
8527
- window.Buttonizer.showPremiumPopup("With this setting, you can make your button appear/hide after scrolling for a certain amount.");
8528
  });
8529
  }
8530
 
@@ -8874,9 +10150,64 @@ class SettingsWindow
8874
  }
8875
  }
8876
 
8877
- // CONCATENATED MODULE: ./src/js/admin/ui/Button/ButtonWindow.js
8878
 
8879
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8880
 
8881
 
8882
 
@@ -8889,7 +10220,7 @@ class SettingsWindow
8889
  class ButtonWindow_ButtonWindow extends SettingsWindow
8890
  {
8891
  constructor(button) {
8892
- super(button, "Advanced settings - " + button.data.name + (!window.Buttonizer.hasPremium() ? ' (premium)' : ''));
8893
  }
8894
 
8895
  render()
@@ -8914,7 +10245,7 @@ class ButtonWindow_ButtonWindow extends SettingsWindow
8914
  filter.appendChild(this.pageRuleSelect.build());
8915
 
8916
  // Add
8917
- super.addItem("Filters", filter);
8918
  }
8919
 
8920
  styling()
@@ -8924,12 +10255,11 @@ class ButtonWindow_ButtonWindow extends SettingsWindow
8924
  // Button custom class
8925
  filter.appendChild(new CustomClass_CustomClass(this).build());
8926
 
8927
-
8928
  // Button custom id
8929
- filter.appendChild(new CustomID_CustomID(this).build());
8930
 
8931
  // Add
8932
- super.addItem("Styling", filter);
8933
  }
8934
 
8935
  delay()
@@ -10989,11 +12319,11 @@ class ButtonHolder_ButtonHolder
10989
  });
10990
 
10991
  // Menu items
10992
- buttonMenu.appendChild(this.createQuickMenuButton('fas fa-wrench', 'Button settings', () => this.revealSettings(), 'settings'));
10993
- buttonMenu.appendChild(this.createQuickMenuButton('fas fa-cog', 'Advanced settings', () => this.buttonObject.windowObject.toggle(), !window.Buttonizer.hasPremium() ? 'buttonizer-premium-gray-out' : ''));
10994
- buttonMenu.appendChild(this.createQuickMenuButton('fas fa-pencil-alt', 'Rename button', () => this.buttonRename(), ''));
10995
- buttonMenu.appendChild(this.createQuickMenuButton('far fa-copy', 'Duplicate button', () => this.buttonDuplicate(), ''));
10996
- buttonMenu.appendChild(this.createQuickMenuButton('far fa-trash-alt', 'Delete button', () => this.buttonDelete(), 'delete'));
10997
 
10998
  this.manageButtonMenu = buttonMenu;
10999
  return buttonMenu;
@@ -11103,11 +12433,11 @@ class ButtonHolder_ButtonHolder
11103
  {
11104
  // NOPE!
11105
  new Modal({
11106
- title: "Warning",
11107
- content: "<p>You cannot remove this button because this the only button left in the group.</p><p>Please remove the group if you do not use it anymore.</p>",
11108
 
11109
  buttons: [{
11110
- text: "Dismiss",
11111
  close: true,
11112
  focus: true,
11113
  confirm: true
@@ -11117,8 +12447,8 @@ class ButtonHolder_ButtonHolder
11117
  }
11118
 
11119
  new Modal({
11120
- title: "Remove button",
11121
- content: "<p>Are you very sure you want to remove this button called '"+ this.buttonObject.data.name +"'?</p>",
11122
 
11123
  onConfirm: () =>
11124
  {
@@ -11126,11 +12456,11 @@ class ButtonHolder_ButtonHolder
11126
  },
11127
 
11128
  buttons: [{
11129
- text: "Never mind",
11130
  close: true,
11131
  focus: true
11132
  }, {
11133
- text: "Remove",
11134
  confirm: true
11135
  }]
11136
  });
@@ -11300,6 +12630,96 @@ class ButtonHolder_ButtonHolder
11300
 
11301
 
11302
  /* harmony default export */ var Button_ButtonHolder = (ButtonHolder_ButtonHolder);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11303
  // CONCATENATED MODULE: ./src/js/admin/ui/SettingHolder.js
11304
 
11305
  class SettingHolder
@@ -11339,11 +12759,11 @@ class Url
11339
  this.buttonAction = ButtonAction;
11340
  }
11341
 
11342
- build()
11343
  {
11344
  // Add input
11345
  let input = this.buttonAction.inputText();
11346
- input.placeholder = "https://www.domain.ltd/page";
11347
  input.addEventListener("keyup", () => this.change(input.value));
11348
 
11349
  if(this.buttonAction.value !== "")
@@ -11382,12 +12802,12 @@ class Url
11382
 
11383
  if(!websiteUrlPattern.test(value) && (value.substring(0, 1) !== '?' && value.substring(0, 1) !== '#')) {
11384
  error =
11385
- '<p>This looks like an invalid URL. The button may not work as expected.</p>' +
11386
- '<p>Do you miss <b>http://</b> or <b>https://</b>? A space somewhere on the wrong place?</p>';
11387
  }else if(value.indexOf('https://') === -1 && value.substring(0, 1) !== '#') {
11388
  error =
11389
- '<p><b>Insecure URL:</b> Sorry to interupt, but we advice you to choose HTTPS for your URLS as this is a safer way to transport data.</p>' +
11390
- '<p><a href="https://community.buttonizer.pro/d/19" target="_blank" style="text-decoration: none;">More info &raquo;</a><br /><br /><a href="" style="text-decoration: none;"><small>Do not show this message again.</small></a></p>';
11391
  }
11392
 
11393
  if(error === false) {
@@ -11398,20 +12818,25 @@ class Url
11398
  }
11399
  }
11400
  }
11401
- // CONCATENATED MODULE: ./src/js/admin/ui/Button/ButtonOptions/ButtonAction/Instagram.js
11402
- class Instagram
 
 
11403
  {
11404
- //James
11405
- constructor(ButtonAction)
11406
  {
11407
  this.buttonAction = ButtonAction;
 
11408
  }
11409
 
11410
- build()
11411
  {
 
 
 
11412
  // Add input
11413
  let input = this.buttonAction.inputText();
11414
- input.placeholder = "Instagram profile";
11415
  input.addEventListener("keyup", () => this.change(input.value));
11416
 
11417
  if(this.buttonAction.value !== "")
@@ -11419,7 +12844,18 @@ class Instagram
11419
  input.value = this.buttonAction.value;
11420
  }
11421
 
11422
- return input;
 
 
 
 
 
 
 
 
 
 
 
11423
  }
11424
 
11425
  /**
@@ -11429,38 +12865,17 @@ class Instagram
11429
  */
11430
  change(value)
11431
  {
11432
- // If valid, remove error
11433
- if(this.valid(value)) {
11434
- this.buttonAction.removeError();
 
 
 
11435
  }
11436
 
11437
  // Always do save the status
11438
  this.buttonAction.updateButtonActionValue(value);
11439
  }
11440
-
11441
- /**
11442
- * Validation for URL field
11443
- * @param value
11444
- * @returns {boolean}
11445
- */
11446
- valid(value)
11447
- {
11448
- let error = false;
11449
-
11450
- value = value.replace("+", "");
11451
- value = value.replace(" ", "");
11452
-
11453
- if(!value.length >= 1) {
11454
- error = '<p>Please fill in your Instagram username.</p>';
11455
- }
11456
-
11457
- if(error === false) {
11458
- return true;
11459
- } else{
11460
- this.buttonAction.addError(error);
11461
- return false;
11462
- }
11463
- }
11464
  }
11465
  // CONCATENATED MODULE: ./src/js/admin/ui/Button/ButtonOptions/ButtonAction/PhoneNumber.js
11466
  class PhoneNumber
@@ -11514,7 +12929,7 @@ class PhoneNumber
11514
  value = value.replace(" ", "");
11515
 
11516
  if(!/^(?=.*\d)[\d ]+$/.test(value)) {
11517
- error = '<p>Invalid phone number. Please use only the number format. Omit any zeroes, brackets or dashes when adding the phone number in international format.</p>';
11518
  }
11519
 
11520
  if(error === false) {
@@ -11577,7 +12992,7 @@ class Mail
11577
  value = value.replace(" ", "");
11578
 
11579
  if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,10})+$/.test(value)) {
11580
- error = '<p>Invalid email address.</p>';
11581
  }
11582
 
11583
  if(error === false) {
@@ -11610,22 +13025,22 @@ class SocialSharing
11610
  select.className = "buttonizer-select-action";
11611
 
11612
  // Share on Facebook
11613
- select.appendChild(this.add('facebook', 'Share on Facebook'));
11614
 
11615
  // Twitter
11616
- select.appendChild(this.add('twitter', 'Share on Twitter'));
11617
 
11618
  // Whatsapp
11619
- select.appendChild(this.add('whatsapp', 'Share on Whatsapp'));
11620
 
11621
  // LinkedIn
11622
- select.appendChild(this.add('linkedin', 'Share on LinkedIn'));
11623
 
11624
  // Pinterest //James
11625
- select.appendChild(this.add('pinterest', 'Share on Pinterest'));
11626
 
11627
  // Mail Address
11628
- select.appendChild(this.add('mail', 'Share via email'));
11629
 
11630
  // Change
11631
  select.addEventListener("change", () => {
@@ -11700,22 +13115,71 @@ class Action_Action
11700
  this.dropdown = document.createElement("select");
11701
  this.dropdown.style.width = '199px';
11702
  this.dropdown.className = "buttonizer-select-action";
11703
- this.dropdown.appendChild(this.add("url", "Website URL"));
11704
- this.dropdown.appendChild(this.add("phone", "Phone number"));
11705
- this.dropdown.appendChild(this.add("mail", "Mail"));
11706
- this.dropdown.appendChild(this.add("backtotop", "Back to top"));
11707
- this.dropdown.appendChild(this.add("gobackpage", "Go back one page"));
11708
- this.dropdown.appendChild(this.add("socialsharing", "Social Sharing"));
11709
- this.dropdown.appendChild(this.add("whatsapp", "Open whatsapp (phone number)"));
11710
- // this.dropdown.appendChild(this.add("instagram", "Instagram profile"));
11711
- this.dropdown.appendChild(this.add("javascript_pro", "Javascript function"));
11712
-
11713
- this.dropdown.addEventListener("change", () => this.update(this.dropdown.value));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11714
 
11715
  let container = document.createElement("div");
11716
 
11717
- index_all(container.appendChild(new SettingHolder("<label for='label-always-open'>Button Action</label>", this.dropdown).build()).firstChild.firstChild, {
11718
- content: "Choose the click action that you want this button to make",
11719
  animation: 'shift-away',
11720
  arrow: true,
11721
  hideOnClick: false
@@ -11726,6 +13190,11 @@ class Action_Action
11726
 
11727
  this.changeForm(this.buttonSettingsObject.buttonObject.data.type);
11728
 
 
 
 
 
 
11729
  return container;
11730
  }
11731
 
@@ -11769,18 +13238,18 @@ class Action_Action
11769
  if(!confirmed)
11770
  {
11771
  new Modal({
11772
- title: "<i class='fas fa-exclamation window-icon'></i> Warning! Hold on!",
11773
- content: '<p>You are changing this button action from custom javascript to another action. Your javascript changes will be lost.</p><p>Are you sure you want to proceed?</p>',
11774
  class: 'warning-red',
11775
  buttons: [{
11776
- text: "Yes, I am sure",
11777
- close: true,
11778
- confirm: true
11779
- }, {
11780
- text: "Cancel",
11781
  close: true,
11782
  focus: true,
11783
  cancel: true
 
 
 
 
11784
  }],
11785
  onConfirm: () => {
11786
  this.value = '';
@@ -11839,9 +13308,11 @@ class Action_Action
11839
  window.Buttonizer.buttonChanges = true;
11840
  });
11841
 
11842
- if(value === "phone")
11843
  {
11844
  this.element.appendChild((new PhoneNumber(this)).build());
 
 
11845
  }
11846
  else if(value === "mail")
11847
  {
@@ -11851,31 +13322,114 @@ class Action_Action
11851
  {
11852
  this.element.appendChild((new PhoneNumber(this)).build());
11853
 
11854
- let infoText = document.createElement("div");
11855
- infoText.innerHTML = ``;
11856
 
11857
  this.element.appendChild(infoText);
11858
  }
11859
- else if(value === "socialsharing")
11860
- {
11861
- this.element.appendChild((new SocialSharing(this)).build());
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11862
  }
 
 
11863
 
11864
- else if(value === "backtotop" || value === "gobackpage")
11865
- {
11866
- return;
 
11867
  }
 
 
11868
  else{
11869
  this.element.appendChild((new Url(this)).build());
11870
- index_all(this.element.appendChild(new SettingHolder("<label for='label-always-open'>Open new tab:</label>", boolean.build(), 'is-boolean-only').build()).firstChild.firstChild, {
11871
- content: "When the button is clicked, open in new tab",
11872
  animation: 'shift-away',
11873
  arrow: true,
11874
  hideOnClick: false
11875
  });
 
 
11876
  }
11877
  }
11878
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11879
  /**
11880
  * Default text box
11881
  *
@@ -11898,11 +13452,7 @@ class Action_Action
11898
 
11899
  let error = document.createElement("div");
11900
  error.innerHTML = text;
11901
- error.style.border = "1px solid rgb(170, 44, 44)";
11902
- error.style.background = "rgb(255, 238, 236)";
11903
- error.style.color = "#ff0000";
11904
- error.style.marginTop = "10px";
11905
- error.style.padding = "9px 15px";
11906
 
11907
  this.errorElement.appendChild(error);
11908
  }
@@ -11911,6 +13461,18 @@ class Action_Action
11911
  {
11912
  this.errorElement.innerHTML = "";
11913
  }
 
 
 
 
 
 
 
 
 
 
 
 
11914
  }
11915
  // CONCATENATED MODULE: ./src/js/admin/components/Setting.js
11916
 
@@ -12067,11 +13629,12 @@ class Input_Input
12067
  input.value = this.default;
12068
 
12069
  new Modal({
12070
- title: "Only numbers",
12071
- content: '<p>For this input, only positive numbers are allowed.</p>',
12072
  buttons: [{
12073
- text: "Close",
12074
- close: true
 
12075
  }]
12076
  });
12077
  }
@@ -12241,8 +13804,8 @@ class Label_Label extends Setting_Setting
12241
  {
12242
  constructor(parent){
12243
  super({
12244
- title: 'Label',
12245
- description: 'Change the label of this button',
12246
  wrap: true,
12247
  class: 'form-has-extra-fields',
12248
  content: [
@@ -12250,7 +13813,7 @@ class Label_Label extends Setting_Setting
12250
  parentObject: parent,
12251
  dataEntry: 'label',
12252
  default: parent.get('label'),
12253
- placeholder: 'Label text'
12254
  })
12255
  ]
12256
  })
@@ -13117,8 +14680,8 @@ class IconColor_IconColor extends Setting_Setting
13117
  constructor(parent)
13118
  {
13119
  super({
13120
- title: "Icon color",
13121
- description: "Change the icon color of this button",
13122
  rowName: 'icon-color',
13123
  parentObject: parent,
13124
  hidden: (window.Buttonizer.hasPremium() && parent.get('icon_is_image') == 'true'),
@@ -13126,14 +14689,14 @@ class IconColor_IconColor extends Setting_Setting
13126
  new Color_Color({
13127
  parentObject: parent,
13128
  dataEntry: 'icon_color',
13129
- title: 'Base',
13130
  default: '#FFFFFF',
13131
  width: 'space'
13132
  }),
13133
  new Color_Color({
13134
  parentObject: parent,
13135
  dataEntry: 'icon_color_interaction',
13136
- title: 'Interaction',
13137
  default: '#FFFFFF',
13138
  width: 'space'
13139
  })
@@ -13150,8 +14713,8 @@ class IconSize_IconSize extends Setting_Setting
13150
  constructor(parent)
13151
  {
13152
  super({
13153
- title: 'Icon size',
13154
- description: 'Change the icon size of this button',
13155
  rowName: 'icon-size',
13156
  parentObject: parent,
13157
  hidden: (window.Buttonizer.hasPremium() && parent.get('icon_is_image') == 'true'),
@@ -13178,8 +14741,8 @@ class BorderRadius_BorderRadius extends Setting_Setting
13178
  constructor(parent)
13179
  {
13180
  super({
13181
- title: 'Border radius',
13182
- description: 'Change the roundness of this button group',
13183
  hidden: parent.type === 'button' ? parent.get('use_main_button_style') !== 'false' : false, // Only show on group side, or when use_main_button_style is disabled
13184
  rowName: 'border-radius',
13185
  parentObject: parent,
@@ -13205,8 +14768,8 @@ class LabelFontSizeBorderRadius_LabelFontSizeBorderRadius extends Setting_Settin
13205
  {
13206
  constructor(parent){
13207
  super({
13208
- title: 'Font size &amp;<br>border radius',
13209
- description: 'Change the font size and border radius of the label for this button group',
13210
  content: [
13211
  new Input_Input({
13212
  title: 'px',
@@ -13377,20 +14940,20 @@ class ShowMobileDesktop_ShowMobileDesktop extends Setting_Setting
13377
  constructor(parent)
13378
  {
13379
  super({
13380
- title: 'Show on:',
13381
- description: 'Choose if you want to make this button group visible on desktop and mobile devices',
13382
  content: [
13383
  new Checkbox({
13384
  parentObject: parent,
13385
  dataEntry: 'show_mobile',
13386
- title: 'Mobile',
13387
  default: true,
13388
  type: parent.type === 'button' ? 'button' : 'group',
13389
  }),
13390
  new Checkbox({
13391
  parentObject: parent,
13392
  dataEntry: 'show_desktop',
13393
- title: 'Desktop',
13394
  default: true,
13395
  type: parent.type === 'button' ? 'button' : 'group',
13396
  })
@@ -13407,8 +14970,8 @@ class BackgroundColor_BackgroundColor extends Setting_Setting
13407
  constructor(parent)
13408
  {
13409
  super({
13410
- title: "Button color",
13411
- description: "This is the color of your button group and also the default color for your buttons within this group.",
13412
  hidden: parent.type === 'button' ? parent.get('use_main_button_style') !== 'false' : false, // Only show on group side, or when use_main_button_style is disabled
13413
  rowName: 'background-color',
13414
  parentObject: parent,
@@ -13416,13 +14979,13 @@ class BackgroundColor_BackgroundColor extends Setting_Setting
13416
  new Color_Color({
13417
  parentObject: parent,
13418
  dataEntry: 'background_color',
13419
- title: 'Base',
13420
  default: '#f08419'
13421
  }),
13422
  new Color_Color({
13423
  parentObject: parent,
13424
  dataEntry: 'background_color_interaction',
13425
- title: 'Interaction',
13426
  default: '#ff9d3c'
13427
  })
13428
  ]
@@ -13517,8 +15080,8 @@ class ShowLabelDesktop_ShowLabelDesktop extends Setting_Setting
13517
  constructor(parent)
13518
  {
13519
  super({
13520
- title: '<span class="setting-icon"><i class="fa fa-desktop"></i></span> Visibility',
13521
- description: 'Always show the label, show the label on hover or hide the label on <u>desktop devices</u>',
13522
  content: [
13523
  new Dropdown({
13524
  parentObject: parent,
@@ -13527,15 +15090,15 @@ class ShowLabelDesktop_ShowLabelDesktop extends Setting_Setting
13527
  list: [
13528
  {
13529
  value: 'always',
13530
- text: 'Always show label',
13531
  },
13532
  {
13533
  value: 'hover',
13534
- text: 'Show label on hover',
13535
  },
13536
  {
13537
  value: 'hide',
13538
- text: 'Hide label'
13539
  }]
13540
  })
13541
  ]
@@ -13551,8 +15114,8 @@ class ShowLabelMobile_ShowLabelDesktop extends Setting_Setting
13551
  constructor(parent)
13552
  {
13553
  super({
13554
- title: '<span class="setting-icon"><i class="fa fa-mobile-alt"></i></span> Visibility',
13555
- description: 'Always show the label, show the label on hover or hide the label on <u>mobile devices</u>',
13556
  content: [
13557
  new Dropdown({
13558
  parentObject: parent,
@@ -13561,11 +15124,11 @@ class ShowLabelMobile_ShowLabelDesktop extends Setting_Setting
13561
  list: [
13562
  {
13563
  value: 'always',
13564
- text: 'Always show label',
13565
  },
13566
  {
13567
  value: 'hide',
13568
- text: 'Hide label'
13569
  }]
13570
  })
13571
  ]
@@ -13581,8 +15144,8 @@ class LabelColor_LabelColor extends Setting_Setting
13581
  constructor(parent)
13582
  {
13583
  super({
13584
- title: "Label color",
13585
- description: "Change the text and background color of the label for this button or group.",
13586
  hidden: parent.type === 'button' ? parent.get('use_main_button_style') !== 'false' : false, // Only show on group side, or when use_main_button_style is disabled
13587
  rowName: 'label-color',
13588
  parentObject: parent,
@@ -13590,13 +15153,13 @@ class LabelColor_LabelColor extends Setting_Setting
13590
  new Color_Color({
13591
  parentObject: parent,
13592
  dataEntry: 'label_color',
13593
- title: 'Text',
13594
  default: '#FFFFFF'
13595
  }),
13596
  new Color_Color({
13597
  parentObject: parent,
13598
  dataEntry: 'label_background_color',
13599
- title: 'Background',
13600
  default: '#4E4C4C'
13601
  })
13602
  ]
@@ -13612,8 +15175,8 @@ class Icon_Icon extends Setting_Setting
13612
  constructor(parent)
13613
  {
13614
  super({
13615
- title: 'Icon',
13616
- description: 'Choose an icon from an icon library',
13617
  rowName: 'icon',
13618
  parentObject: parent,
13619
  hidden: (window.Buttonizer.hasPremium() && parent.get('icon_is_image') == 'true'),
@@ -13674,7 +15237,7 @@ class Image
13674
  let button = document.createElement("a");
13675
  button.className = "button";
13676
  button.href = "javascript:void(0)";
13677
- button.innerHTML = '<i class="fa fa-image"></i>&nbsp;&nbsp;Select image <small>(premium)</small>';
13678
  button.addEventListener("click", () => {
13679
  window.Buttonizer.showPremiumPopup('You can select images and set them as icon or as button background image.');
13680
  });
@@ -13693,8 +15256,8 @@ class BackgroundImage_BackgroundImage extends Setting_Setting
13693
  constructor(parent)
13694
  {
13695
  super({
13696
- title: "Background image",
13697
- description: "Upload an image if you want an image as background instead of a color. Recommended aspect ratio: square (1:1)",
13698
  hidden: parent.type === 'button' ? parent.get('use_main_button_style') !== 'false' : false, // Only show on group side, or when use_main_button_style is disabled
13699
  rowName: 'background-image',
13700
  parentObject: parent,
@@ -13707,7 +15270,7 @@ class BackgroundImage_BackgroundImage extends Setting_Setting
13707
  });
13708
  }
13709
  }
13710
- // CONCATENATED MODULE: ./src/js/admin/ui/Button/ButtonOptions/UseMainButtonStyle.js
13711
 
13712
 
13713
 
@@ -13717,8 +15280,8 @@ class UseMainButtonStyle_UseMainButtonStyle extends Setting_Setting
13717
  {
13718
  super({
13719
  parentObject: parent,
13720
- title: 'Use the same style of main button',
13721
- description: 'This option makes this button use the group\'s button style',
13722
  class: 'is-boolean-only',
13723
  rowName: 'use_main_button_style',
13724
  content: [
@@ -13860,8 +15423,8 @@ class IconOrImage_IconOrImage extends Setting_Setting
13860
  constructor(parent)
13861
  {
13862
  super({
13863
- title: 'Graphic',
13864
- description: 'Choose whether to use an Icon or an Image as this button\'s icon',
13865
  useCustomBuild: true,
13866
  content: [
13867
  () => this.buildBoolean()
@@ -13878,8 +15441,8 @@ class IconOrImage_IconOrImage extends Setting_Setting
13878
  let boolean = new Boolean({
13879
  parentObject: this.parent,
13880
  state: false,
13881
- first: 'Icon',
13882
- second: 'Image <small>(premium)</small>',
13883
  callback: () => {
13884
  window.Buttonizer.showPremiumPopup("You can select an custom image as icon for your buttons and groups.");
13885
  }
@@ -13901,8 +15464,8 @@ class MenuPosition_MenuPosition extends Setting_Setting
13901
  {
13902
  super({
13903
  parentObject: parent,
13904
- title: 'Position',
13905
- description: 'Change the position of this button group',
13906
  wrap: true,
13907
  class: 'form-has-extra-fields',
13908
  rowName: 'position',
@@ -13914,23 +15477,23 @@ class MenuPosition_MenuPosition extends Setting_Setting
13914
  callback: (value) => this.changePosition(value),
13915
  list: [{
13916
  value: 'bottomright',
13917
- text: 'Bottom Right',
13918
  },
13919
  {
13920
  value: 'bottomleft',
13921
- text: 'Bottom Left',
13922
  },
13923
  {
13924
  value: 'topright',
13925
- text: 'Top Right'
13926
  },
13927
  {
13928
  value: 'topleft',
13929
- text: 'Top Left'
13930
  },
13931
  {
13932
  value: 'advanced',
13933
- text: 'Custom'
13934
  }]
13935
  }),
13936
  new Input_Input({
@@ -13974,6 +15537,41 @@ class MenuPosition_MenuPosition extends Setting_Setting
13974
  }
13975
  }
13976
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13977
  // CONCATENATED MODULE: ./src/js/admin/ui/Button/ButtonSettings.js
13978
 
13979
 
@@ -13999,6 +15597,7 @@ class MenuPosition_MenuPosition extends Setting_Setting
13999
 
14000
 
14001
 
 
14002
  class ButtonSettings_ButtonSettings
14003
  {
14004
  constructor(buttonObject)
@@ -14088,7 +15687,7 @@ class ButtonSettings_ButtonSettings
14088
  let advancedSettings = document.createElement("a");
14089
  advancedSettings.href = "javascript:void(0)";
14090
  advancedSettings.className = "advanced-settings" + (!window.Buttonizer.hasPremium() ? ' buttonizer-premium-gray-out' : '');
14091
- advancedSettings.innerHTML = "<i></i> Advanced settings" + (!window.Buttonizer.hasPremium() ? ` <span class='buttonizer-premium'>PRO</span>` : '');
14092
 
14093
  advancedSettings.addEventListener("click", () => {
14094
  this.buttonObject.windowObject.toggle();
@@ -14111,6 +15710,10 @@ class ButtonSettings_ButtonSettings
14111
  this.groupSetting.appendChild(this.formElements.menuPosition.build());
14112
  this.formElements.menuPosition.element.style.display = 'none';
14113
 
 
 
 
 
14114
  container.appendChild(this.groupSetting);
14115
 
14116
  // Button action
@@ -14133,7 +15736,7 @@ class ButtonSettings_ButtonSettings
14133
 
14134
  // Button style
14135
  let title = document.createElement("h2");
14136
- title.innerHTML = "<i></i><span>Button style</span>";
14137
  container.appendChild(title);
14138
 
14139
  // Main button style
@@ -14167,7 +15770,7 @@ class ButtonSettings_ButtonSettings
14167
  container.className = 'style-icon';
14168
 
14169
  let title = document.createElement("h2");
14170
- title.innerHTML = "<i></i><span>Button Icon</span>";
14171
  container.appendChild(title);
14172
 
14173
  // Button icon or image
@@ -14199,7 +15802,7 @@ class ButtonSettings_ButtonSettings
14199
  container.className = 'style-label';
14200
 
14201
  let title = document.createElement("h2");
14202
- title.innerHTML = "<i></i><span>Label</span>";
14203
  container.appendChild(title);
14204
 
14205
 
@@ -14287,7 +15890,7 @@ class Button_Index
14287
  var mouseDown = false;
14288
  var warningShown = false;
14289
  const warning = index_all(buttonObject, {
14290
- content: "You can't drag the only button left in a group!",
14291
  animation: 'shift-away',
14292
  arrow: true,
14293
  hideOnClick: false,
@@ -14466,25 +16069,25 @@ class GroupHolder_GroupHolder
14466
  });
14467
 
14468
  // Menu items
14469
- buttonMenu.appendChild(this.createQuickMenuButton('fas fa-plus', 'Convert to group', () => {
14470
  new ui_Button(this.groupObject, {
14471
- name: "Button 2",
14472
  show_mobile: 'true',
14473
  show_desktop: 'true'
14474
  });
14475
  this.groupObject.getButtons()[0].set('icon_size', '16');
14476
  jQuery(this.groupObject.groupBody).sortable('option', 'cancel', null);
14477
  }, 'convert-button'));
14478
- buttonMenu.appendChild(this.createQuickMenuButton('fas fa-wrench', 'Settings', () => this.toggleStyling(), ''));
14479
- buttonMenu.appendChild(this.createQuickMenuButton('fas fa-cog', 'Advanced settings', () => {
14480
  if(this.groupObject.singleButtonMode){
14481
  this.groupObject.getButtons()[0].windowObject.toggle();
14482
  }else{
14483
  this.groupObject.windowObject.toggle();
14484
  }
14485
  }, !window.Buttonizer.hasPremium() ? 'buttonizer-premium-gray-out' : ''));
14486
- buttonMenu.appendChild(this.createQuickMenuButton('fas fa-pencil-alt', 'Rename', () => this.groupRename(), ''));
14487
- buttonMenu.appendChild(this.createQuickMenuButton('far fa-trash-alt', 'Delete', () => this.groupDelete(), 'delete'));
14488
  buttonMenu.firstChild.style.display = 'none';
14489
 
14490
  this.quickMenu = buttonMenu;
@@ -14642,14 +16245,14 @@ class GroupHolder_GroupHolder
14642
  */
14643
  groupDelete()
14644
  {
14645
- if(this.groupObject.singleButtonMode){
14646
  if(window.Buttonizer.buttonGroups.length <= 1){
14647
  new Modal({
14648
- title: "Warning",
14649
- content: "<p>You cannot remove this button because this the only group/button left.</p>",
14650
 
14651
  buttons: [{
14652
- text: "Dismiss",
14653
  close: true,
14654
  focus: true,
14655
  confirm: true
@@ -14659,8 +16262,8 @@ class GroupHolder_GroupHolder
14659
  }
14660
 
14661
  new Modal({
14662
- title: "Remove button",
14663
- content: "<p>Are you very sure you want to remove this button?</p>",
14664
 
14665
  onConfirm: () =>
14666
  {
@@ -14671,11 +16274,11 @@ class GroupHolder_GroupHolder
14671
  },
14672
 
14673
  buttons: [{
14674
- text: "Never mind",
14675
  close: true,
14676
  focus: true
14677
  }, {
14678
- text: "Remove",
14679
  confirm: true
14680
  }]
14681
  });
@@ -14685,11 +16288,11 @@ class GroupHolder_GroupHolder
14685
  {
14686
  // NOPE!
14687
  new Modal({
14688
- title: "Warning",
14689
- content: "<p>You cannot remove this group because this the only group left.</p>",
14690
 
14691
  buttons: [{
14692
- text: "Dismiss",
14693
  close: true,
14694
  focus: true,
14695
  confirm: true
@@ -14699,8 +16302,8 @@ class GroupHolder_GroupHolder
14699
  }
14700
 
14701
  new Modal({
14702
- title: "Remove group",
14703
- content: "<p>Are you very sure you want to remove this full group? It contains "+ this.groupObject.getButtonsAlive() +" buttons.</p>",
14704
 
14705
  onConfirm: () =>
14706
  {
@@ -14711,11 +16314,11 @@ class GroupHolder_GroupHolder
14711
  },
14712
 
14713
  buttons: [{
14714
- text: "Never mind",
14715
  close: true,
14716
  focus: true
14717
  }, {
14718
- text: "Remove",
14719
  confirm: true
14720
  }]
14721
  });
@@ -14751,6 +16354,7 @@ class GroupHolder_GroupHolder
14751
  this.groupObject.getButtons()[0].set('use_main_button_style', 'false');
14752
  this.groupObject.getButtons()[0].getUI('use_main_button_style-container')[0].element.style.display = 'none';
14753
  this.groupObject.getUI('position-container')[1].element.style.display = '';
 
14754
 
14755
  this.groupObject.set('single_button_mode', 'true');
14756
 
@@ -14758,6 +16362,7 @@ class GroupHolder_GroupHolder
14758
  this.quickMenu.firstChild.style.display = 'none';
14759
 
14760
  this.groupObject.getUI('position-container')[1].element.style.display = 'none';
 
14761
  this.groupObject.getButtons()[0].set('use_main_button_style', 'true');
14762
  this.groupObject.getButtons()[0].getUI('use_main_button_style-container')[0].element.style.display = '';
14763
  this.titleElement.value = this.groupObject.data.name;
@@ -14782,8 +16387,8 @@ class StartOpened_StartOpened extends Setting_Setting
14782
  constructor(parent)
14783
  {
14784
  super({
14785
- title: 'Start opened',
14786
- description: 'This button group starts opened when this setting is active',
14787
  class: 'is-boolean-only',
14788
  content: [
14789
  new Toggle({
@@ -14808,8 +16413,8 @@ class MenuStyle_MenuStyle extends Setting_Setting
14808
  */
14809
  constructor(parent){
14810
  super({
14811
- title: 'Menu Style',
14812
- description: 'Change the opening animation of this button group',
14813
  content: [
14814
  new Dropdown({
14815
  parentObject: parent,
@@ -14817,27 +16422,27 @@ class MenuStyle_MenuStyle extends Setting_Setting
14817
  default: 'default',
14818
  list: [{
14819
  value: 'default',
14820
- text: 'Default'
14821
  },
14822
  {
14823
  value: 'faded',
14824
- text: 'Faded',
14825
  },
14826
  {
14827
  value: 'corner-circle',
14828
- text: 'Corner Circle',
14829
  },
14830
  {
14831
  value: 'building-up',
14832
- text: 'Build Up',
14833
  },
14834
  {
14835
  value: 'pop',
14836
- text: 'Pop',
14837
  },
14838
  {
14839
  value: 'square',
14840
- text: 'Square',
14841
  }]
14842
  })
14843
  ]
@@ -14846,39 +16451,6 @@ class MenuStyle_MenuStyle extends Setting_Setting
14846
  }
14847
 
14848
 
14849
- // CONCATENATED MODULE: ./src/js/admin/components/Settings/MenuAnimation.js
14850
-
14851
-
14852
-
14853
- class MenuAnimation_MenuAnimation extends Setting_Setting
14854
- {
14855
- constructor(parent)
14856
- {
14857
- super({
14858
- title: 'Animation',
14859
- description: 'This will animate this button group to get the attention of the visitor. The animation repeats every 10 seconds',
14860
- content: [
14861
- new Dropdown({
14862
- parentObject: parent,
14863
- dataEntry: 'menu_animation',
14864
- default: 'none',
14865
- list: [{
14866
- value: 'none',
14867
- text: 'No Animation',
14868
- },
14869
- {
14870
- value: 'hello',
14871
- text: 'Buttonizer Hello',
14872
- },
14873
- {
14874
- value: 'bounce',
14875
- text: 'Bounce'
14876
- }]
14877
- })
14878
- ]
14879
- });
14880
- }
14881
- }
14882
  // CONCATENATED MODULE: ./src/js/admin/ui/ButtonGroup/GroupSettings.js
14883
  // New settings
14884
 
@@ -14986,7 +16558,7 @@ class GroupSettings_GroupSettings
14986
  let advancedSettings = document.createElement("a");
14987
  advancedSettings.href = "javascript:void(0)";
14988
  advancedSettings.className = "advanced-settings" + (!window.Buttonizer.hasPremium() ? ' buttonizer-premium-gray-out' : '');
14989
- advancedSettings.innerHTML = "<i></i> Advanced settings" + (!window.Buttonizer.hasPremium() ? ` <span class='buttonizer-premium'>PRO</span>` : '');
14990
 
14991
  advancedSettings.addEventListener("click", () => {
14992
  this.groupObject.windowObject.toggle();
@@ -14996,34 +16568,6 @@ class GroupSettings_GroupSettings
14996
 
14997
  }
14998
 
14999
- /**
15000
- * Show message if there's only 1 button.
15001
- */
15002
- addError()
15003
- {
15004
- let errorMessage = '<p><b><u>THESE SETTINGS ARE FOR THE GROUP BUTTON.</u></b></br> The group button will not be visible until </br><b><u>2 or more buttons</u></b> are visible.</p>';
15005
- let errorElement = document.createElement("div");
15006
- errorElement.innerHTML = "";
15007
-
15008
- let error = document.createElement("div");
15009
- error.innerHTML = errorMessage;
15010
- error.style.border = "1px solid rgb(170, 44, 44)";
15011
- error.style.background = "rgb(255, 238, 236)";
15012
- error.style.color = "#ff0000";
15013
- error.style.marginTop = "10px";
15014
- error.style.padding = "9px 15px";
15015
- error.style.display = "none";
15016
-
15017
- // If there's only one button, show warning
15018
- if(this.groupObject.buttonsAmount <= 1 ){
15019
- error.style.display = "block";
15020
- }
15021
-
15022
- errorElement.appendChild(error);
15023
-
15024
- return errorElement
15025
- }
15026
-
15027
  /**
15028
  * Settings on top
15029
  */
@@ -15048,7 +16592,7 @@ class GroupSettings_GroupSettings
15048
  container.className = 'style-menu';
15049
 
15050
  let groupAnimation = document.createElement('h2');
15051
- groupAnimation.innerHTML = `<i></i><span>Menu style</span>`;
15052
  container.appendChild(groupAnimation);
15053
 
15054
  // Always open
@@ -15082,7 +16626,7 @@ class GroupSettings_GroupSettings
15082
  container.className = 'style-button';
15083
 
15084
  let groupStyling = document.createElement("h2");
15085
- groupStyling.innerHTML = "<i></i><span>Group button style</span>";
15086
  container.appendChild(groupStyling);
15087
 
15088
  // Button color
@@ -15108,11 +16652,10 @@ class GroupSettings_GroupSettings
15108
  container.className = 'style-icon';
15109
 
15110
  let groupIcon = document.createElement("h2");
15111
- groupIcon.innerHTML = "<i></i><span>Group icon</span>";
15112
  container.appendChild(groupIcon);
15113
 
15114
- // // If there's only one button, show warning
15115
- // container.appendChild(this.addError());
15116
 
15117
  // Button icon
15118
  this.formElements.buttonIcon = new IconOrImage_IconOrImage(this.groupObject);
@@ -15143,7 +16686,7 @@ class GroupSettings_GroupSettings
15143
  container.className = 'style-label';
15144
 
15145
  let labelTitle = document.createElement("h2");
15146
- labelTitle.innerHTML = "<i></i><span>Label</span>";
15147
  container.appendChild(labelTitle);
15148
 
15149
  // Label text
@@ -15185,190 +16728,18 @@ class GroupSettings_GroupSettings
15185
  }
15186
  }
15187
 
15188
-
15189
- show(){
15190
- this.element.className = "button-group-styling";
15191
- Buttonizer.bar.showSettings(this.groupObject.get('name'), () => this.hide());
15192
- }
15193
-
15194
- hide(){
15195
- this.element.className = "button-group-styling hidden";
15196
- }
15197
- }
15198
-
15199
- /* harmony default export */ var ButtonGroup_GroupSettings = (GroupSettings_GroupSettings);
15200
- // CONCATENATED MODULE: ./src/js/admin/ui/ButtonGroup/GroupOptions/Window/Filters/PageRuleSelect.js
15201
-
15202
-
15203
-
15204
-
15205
-
15206
- class Filters_PageRuleSelect_PageRuleSelect
15207
- {
15208
- constructor(windowObject)
15209
- {
15210
- this.windowObject = windowObject;
15211
-
15212
- this.onTriggerContainer = null;
15213
-
15214
- this.dropdown = document.createElement("select");
15215
- this.dropdown.className = "window-select";
15216
-
15217
-
15218
- }
15219
-
15220
- // Build selector
15221
- build()
15222
- {
15223
- let holder = document.createElement("div");
15224
-
15225
- // Add dropdown
15226
- holder.appendChild(this.dropdown);
15227
-
15228
- // Add event listener
15229
- this.onChange();
15230
-
15231
- // Create table
15232
- let table = new Table('table-relative');
15233
-
15234
- table.addColumnHTML("<h2>Page rule"+ (!window.Buttonizer.hasPremium() ? ' <span class="buttonizer-premium premium-right">PRO</span>' : '') +"</h2>", "table-align-top", "");
15235
- table.addColumn(holder, "", "370");
15236
- table.newRow();
15237
-
15238
-
15239
-
15240
- return table.build();
15241
- }
15242
-
15243
- /**
15244
- * What happens when you change it?
15245
- */
15246
- onChange()
15247
- {
15248
-
15249
-
15250
- this.dropdown.innerHTML = `<option>Show on all pages</option>`;
15251
- this.dropdown.readonly = true;
15252
- this.dropdown.addEventListener("click", () => window.Buttonizer.showPremiumPopup("You can setup page rules that will get triggered on specific pages or user roles. You can create unlimited page rules with multiple rules to trigger."));
15253
- }
15254
-
15255
- /**
15256
- * Decide what will happen when a page rule is triggered
15257
- */
15258
-
15259
- }
15260
- // CONCATENATED MODULE: ./src/js/admin/ui/ButtonGroup/GroupOptions/Window/Filters/TimeSchedule.js
15261
-
15262
-
15263
-
15264
- class Filters_TimeSchedule_TimeSchedule
15265
- {
15266
- constructor(windowObject)
15267
- {
15268
- this.windowObject = windowObject;
15269
-
15270
- this.onTriggerContainer = null;
15271
-
15272
- this.dropdown = document.createElement("select");
15273
- this.dropdown.className = "window-select";
15274
-
15275
-
15276
- }
15277
-
15278
- build()
15279
- {
15280
- let holder = document.createElement("div");
15281
-
15282
- // Add dropdown
15283
- holder.appendChild(this.dropdown);
15284
-
15285
- // Add event listener
15286
- this.onChange();
15287
-
15288
- // Create table
15289
- let table = new Table('table-relative');
15290
-
15291
- table.addColumnHTML("<h2>Time schedule"+ (!window.Buttonizer.hasPremium() ? ' <span class="buttonizer-premium premium-right">PRO</span>' : '') +"</h2>", "table-align-top", "");
15292
- table.addColumn(holder, "", "370");
15293
- table.newRow();
15294
-
15295
-
15296
-
15297
- return table.build();
15298
- }
15299
-
15300
- /**
15301
- * What happens when you change it?
15302
- */
15303
- onChange() {
15304
-
15305
-
15306
- this.dropdown.innerHTML = `<option>Show on all times</option>`;
15307
- this.dropdown.readonly = true;
15308
- this.dropdown.addEventListener("click", () => window.Buttonizer.showPremiumPopup("You can setup time schedules that will get triggered on specific times of a day you setup, it is even possible to change the schedule actions for specific days. You can create unlimited amount of schedules."));
15309
- }
15310
-
15311
- /**
15312
- * Decide what will happen when a time schedule is triggered
15313
- */
15314
-
15315
- }
15316
- // CONCATENATED MODULE: ./src/js/admin/ui/ButtonGroup/GroupOptions/Window/CustomClass.js
15317
-
15318
-
15319
- class Window_CustomClass_CustomClass
15320
- {
15321
- constructor(windowObject)
15322
- {
15323
- this.windowObject = windowObject;
15324
- }
15325
-
15326
- build()
15327
- {
15328
- let input = document.createElement("input");
15329
- input.className = "window-select";
15330
- input.placeholder = "Add class";
15331
-
15332
-
15333
-
15334
-
15335
- // Table
15336
- let customClass = new Table("table-relative");
15337
- customClass.addColumnHTML("<h2>Custom class <span class='buttonizer-premium premium-right'>PRO</span></h2>","table-align-top", "");
15338
- input.addEventListener("mousedown", () => window.Buttonizer.showPremiumPopup("You can add a custom class to each button for styling purposes."));
15339
- customClass.addColumn(input, "", "370");
15340
-
15341
- return customClass.build();
15342
- }
15343
- }
15344
- // CONCATENATED MODULE: ./src/js/admin/ui/ButtonGroup/GroupOptions/Window/CustomId.js
15345
-
15346
-
15347
- class CustomId_CustomID
15348
- {
15349
- constructor(windowObject)
15350
- {
15351
- this.windowObject = windowObject;
15352
- }
15353
-
15354
- build()
15355
- {
15356
- let input = document.createElement("input");
15357
- input.className = "window-select";
15358
- input.placeholder = "Add ID";
15359
-
15360
-
15361
-
15362
-
15363
- // Table
15364
- let customId = new Table('table-relative');
15365
- customId.addColumnHTML("<h2>Custom ID <span class='buttonizer-premium premium-right'>PRO</span></h2>");
15366
- input.addEventListener("mousedown", () => window.Buttonizer.showPremiumPopup("You can add a custom ID to each button for styling purposes."));
15367
- customId.addColumn(input, "", "370");
15368
-
15369
- return customId.build();
15370
  }
15371
- }
 
 
 
 
 
 
15372
  // CONCATENATED MODULE: ./src/js/admin/ui/ButtonGroup/GroupWindow.js
15373
 
15374
 
@@ -15383,7 +16754,7 @@ class CustomId_CustomID
15383
  class GroupWindow_GroupWindow extends SettingsWindow
15384
  {
15385
  constructor(group) {
15386
- super(group, "Advanced settings - Group " + group.data.name + (!window.Buttonizer.hasPremium() ? ' (premium)' : ''));
15387
  }
15388
 
15389
  render()
@@ -15391,7 +16762,6 @@ class GroupWindow_GroupWindow extends SettingsWindow
15391
  this.filter();
15392
  this.delay();
15393
  this.styling();
15394
- // this.position();
15395
  }
15396
 
15397
  filter()
@@ -15399,22 +16769,13 @@ class GroupWindow_GroupWindow extends SettingsWindow
15399
  let filter = document.createElement("div");
15400
 
15401
  // Time Schedule
15402
- filter.appendChild(new Filters_TimeSchedule_TimeSchedule(this).build());
15403
 
15404
  // Page Rule
15405
- filter.appendChild(new Filters_PageRuleSelect_PageRuleSelect(this).build());
15406
-
15407
- // Add
15408
- super.addItem("Filter", filter);
15409
- }
15410
-
15411
- position()
15412
- {
15413
- let position = document.createElement("div");
15414
- position.innerHTML = "Testinhoud van <b>POSITIE</b>!!!";
15415
 
15416
  // Add
15417
- super.addItem("Position", position);
15418
  }
15419
 
15420
  delay()
@@ -15425,7 +16786,7 @@ class GroupWindow_GroupWindow extends SettingsWindow
15425
  delay.appendChild(new ShowOnScroll_ShowOnScroll(this).build());
15426
 
15427
  // Add
15428
- super.addItem("Timeout & Scroll", delay);
15429
  }
15430
 
15431
  styling()
@@ -15433,14 +16794,14 @@ class GroupWindow_GroupWindow extends SettingsWindow
15433
  let filter = document.createElement("div");
15434
 
15435
  // Button custom class
15436
- filter.appendChild(new Window_CustomClass_CustomClass(this).build());
15437
 
15438
 
15439
  // Button custom id
15440
  filter.appendChild(new CustomId_CustomID(this).build());
15441
 
15442
  // Add
15443
- super.addItem("Styling", filter);
15444
  }
15445
  }
15446
 
@@ -15452,7 +16813,6 @@ class GroupWindow_GroupWindow extends SettingsWindow
15452
 
15453
 
15454
 
15455
-
15456
  class ButtonGroup_Index {
15457
  constructor(data, buttons) {
15458
  if (!buttons) {
@@ -15571,11 +16931,11 @@ class ButtonGroup_Index {
15571
  let addButton = document.createElement("a");
15572
  addButton.href = "javascript:void(0)";
15573
  addButton.className = "create-new-button";
15574
- addButton.innerHTML = "Add button +";
15575
 
15576
  addButton.addEventListener("click", () => {
15577
  new ui_Button(this, {
15578
- name: "Button " + (this.getButtonsAlive()+1),
15579
  show_mobile: 'true',
15580
  show_desktop: 'true'
15581
  });
@@ -15699,63 +17059,62 @@ class TopBar_TopBar
15699
  buttons: [
15700
  {
15701
  title:'Buttonizer',
15702
- description: `Version ${window.Buttonizer.buttonizerInitData.version}`,
15703
  callback: () => {
15704
  window.open("https://www.buttonizer.pro/");
15705
  }
15706
  },
15707
  {
15708
- title:'Knowledgebase',
15709
- description: 'A deep dive in all the Buttonizer possibilities',
15710
  callback: () => {
15711
- window.open("https://community.buttonizer.pro/t/knowledgebase");
15712
  }
15713
  }
15714
  ]
15715
  },
15716
  {
15717
- title: 'Support',
15718
  buttons: [
15719
  {
15720
- title:'I need support',
15721
- description: 'Direct support with Buttonizer developers',
15722
  callback: () => {
15723
  window.open("https://community.buttonizer.pro/t/support");
15724
  }
15725
  },
15726
  {
15727
- title:'Community',
15728
- description: 'Interact with other Buttonizers',
15729
  callback: () => {
15730
  window.open("https://community.buttonizer.pro/");
15731
  }
15732
  },
15733
  {
15734
- title:'Buttonizer tour (recommended!)',
15735
- description: 'Start the 2 minute tour',
15736
  callback: () => {
15737
  window.Buttonizer.startTour();
15738
  }
15739
  }
15740
  ]
15741
  },{
15742
- title: 'Buttonizer account',
15743
  buttons: [
15744
  {
15745
- title:'My Account',
15746
  callback: () => {
15747
  window.open(buttonizer_admin.admin + "?page=Buttonizer-account");
15748
  }
15749
  },
15750
  {
15751
- title:'Upgrade or pricing',
15752
  callback: () => {
15753
  window.open(buttonizer_admin.admin + "?page=Buttonizer-pricing");
15754
  }
15755
  },
15756
  {
15757
- title:'Affiliation',
15758
- description: 'Earn $ by promoting Buttonizer',
15759
  callback: () => {
15760
  window.open(buttonizer_admin.admin + "?page=Buttonizer-affiliation");
15761
  }
@@ -15765,7 +17124,37 @@ class TopBar_TopBar
15765
  {
15766
  buttons: [
15767
  {
15768
- title:'Options',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15769
  icon: 'fa fa-cogs',
15770
  class: 'single-button',
15771
  callback: () => {
@@ -15853,7 +17242,7 @@ class TopBar_TopBar
15853
  let container = document.createElement("div");
15854
  container.className = 'event-track-window';
15855
  container.style.display = 'none';
15856
- container.innerHTML = `<div class="track-window-title">Event tracker (experimental)</div>`;
15857
 
15858
  // Add close button
15859
  let closeButton = document.createElement("a");
@@ -15898,7 +17287,7 @@ class TopBar_TopBar
15898
  }
15899
 
15900
  this.eventTrackerMenuItem.style.display = 'block';
15901
- this.eventTrackerMenuItem.innerHTML = '<i class="fas fa-info"></i> ('+ events.length +') Event tracker';
15902
 
15903
 
15904
  // Empty
@@ -16020,7 +17409,7 @@ class TopBar_TopBar
16020
  {
16021
  this.publishButton = document.createElement("a");
16022
  this.publishButton.className = "publish-button button-primary right";
16023
- this.publishButton.innerText = "Save & Publish";
16024
  this.publishButton.enabled = true;
16025
  this.publishButton.addEventListener('click', () => {
16026
  if(!this.publishButton.enabled) return;
@@ -16030,7 +17419,7 @@ class TopBar_TopBar
16030
  this.publishButton.enable = () => {
16031
  this.publishButton.enabled = true;
16032
  this.revertChangesText.hidden = false;
16033
- this.publishButton.innerText = "Save & Publish";
16034
  this.publishButton.className = this.publishButton.className.replace(" disabled", "");
16035
  };
16036
  this.publishButton.disable = (innerText) => {
@@ -16048,13 +17437,13 @@ class TopBar_TopBar
16048
  {
16049
  this.revertChangesText = document.createElement("a");
16050
  this.revertChangesText.className = "revert-button right";
16051
- this.revertChangesText.innerText = "Revert changes";
16052
  this.revertChangesText.href = "javascript:void(0)";
16053
 
16054
  this.revertChangesText.addEventListener('click', () => {
16055
  new Modal({
16056
- title: "Revert changes",
16057
- content: `<p>Are you sure you want to revert your changes?</p><p>The current changes will be overwritten by the current published buttons and settings.</p>`,
16058
 
16059
  onConfirm: () =>
16060
  {
@@ -16062,11 +17451,11 @@ class TopBar_TopBar
16062
  },
16063
 
16064
  buttons: [{
16065
- text: "Never mind",
16066
  close: true,
16067
  focus: true
16068
  }, {
16069
- text: "Revert changes",
16070
  confirm: true
16071
  }]
16072
  });
@@ -16078,11 +17467,11 @@ class TopBar_TopBar
16078
  this.alertText = document.createElement("a");
16079
  this.alertText.className = "alert-text";
16080
  this.alertText.showSaving = () => {
16081
- this.alertText.innerHTML = `<i class="fas fa-mug-hot"></i> Saving changes...`;
16082
  this.alertText.hidden = false;
16083
  };
16084
  this.alertText.showSaved = () => {
16085
- this.alertText.innerHTML = `<i class="fas fa-check"></i> Saving complete.`
16086
  setTimeout(() => {
16087
  this.alertText.hidden = true;
16088
  }, 2000);
@@ -16106,7 +17495,7 @@ class TopBar_TopBar
16106
  if(value){
16107
  this.publishButton.enable();
16108
  } else {
16109
- this.publishButton.disable("Published");
16110
  }
16111
  }
16112
  }
@@ -16117,7 +17506,7 @@ class TopBar_TopBar
16117
 
16118
 
16119
 
16120
- class Bar
16121
  {
16122
  // Send object to Buttonizer
16123
  constructor(buttonizer)
@@ -16196,7 +17585,7 @@ class Bar
16196
  let titlewrapper = document.createElement('div');
16197
  titlewrapper.className = 'title-wrapper';
16198
  let title = document.createElement('h4');
16199
- title.innerHTML = 'Now editing:';
16200
 
16201
  let smallTitle = document.createElement('h2');
16202
  smallTitle.innerHTML = 'nothing!';
@@ -16255,8 +17644,8 @@ class Bar
16255
  let addGroup = document.createElement("a");
16256
  addGroup.href = "javascript:void(0)";
16257
  addGroup.className = "create-new-button is-create-group buttonizer-premium-gray-out";
16258
- addGroup.innerHTML = `Add group + <span class='buttonizer-premium'>PRO</span>`;
16259
- addGroup.addEventListener("click", () => window.Buttonizer.showPremiumPopup("You are able to add multiple groups on different positions."));
16260
 
16261
  return addGroup;
16262
  }
@@ -16312,6 +17701,13 @@ class Bar
16312
  document.querySelector(".buttonizer-frame").className = 'buttonizer-frame';
16313
  });
16314
 
 
 
 
 
 
 
 
16315
  devicePreviewContainer.appendChild(buttonDesktop);
16316
 
16317
  // Tablet button
@@ -16327,6 +17723,13 @@ class Bar
16327
  document.querySelector(".buttonizer-frame").className = 'buttonizer-frame frame-size-tablet';
16328
  });
16329
 
 
 
 
 
 
 
 
16330
  devicePreviewContainer.appendChild(buttonTablet);
16331
 
16332
  // Mobile button
@@ -16342,6 +17745,13 @@ class Bar
16342
  document.querySelector(".buttonizer-frame").className = 'buttonizer-frame frame-size-mobile';
16343
  });
16344
 
 
 
 
 
 
 
 
16345
  devicePreviewContainer.appendChild(buttonMobile);
16346
 
16347
  footer.appendChild(devicePreviewContainer);
@@ -16350,7 +17760,7 @@ class Bar
16350
  }
16351
  }
16352
 
16353
- /* harmony default export */ var ui_Bar = (Bar);
16354
  // CONCATENATED MODULE: ./src/js/admin/ui/Loader.js
16355
 
16356
 
@@ -16503,7 +17913,7 @@ class Saving_Saving
16503
  this.isUpdating = true;
16504
 
16505
  window.Buttonizer.buttonChanges = false;
16506
- window.Buttonizer.topBar.publishButton.disable("Publishing...");
16507
 
16508
  jQuery.ajax({
16509
  url: buttonizer_admin.ajax + '?action=buttonizer_backend&request=SaveData&save=publish',
@@ -16518,8 +17928,8 @@ class Saving_Saving
16518
  if(data.status !== "success")
16519
  {
16520
  new Modal({
16521
- title: "Could not save settings",
16522
- content: `<p>Something went wrong while saving your settings.</p><p>${data.message}</p>`,
16523
  buttons: [{
16524
  text: "Close",
16525
  close: true
@@ -16528,7 +17938,7 @@ class Saving_Saving
16528
  return;
16529
  }
16530
 
16531
- window.Buttonizer.topBar.publishButton.disable("Published");
16532
  },
16533
  error: (err, msg, data) => {
16534
 
@@ -16549,7 +17959,7 @@ class Saving_Saving
16549
  return;
16550
  }
16551
 
16552
- window.Buttonizer.loader.show("Reverting...");
16553
 
16554
  this.isUpdating = true;
16555
  window.Buttonizer.buttonChanges = false;
@@ -16569,8 +17979,8 @@ class Saving_Saving
16569
  window.Buttonizer.loader.hide();
16570
 
16571
  new Modal({
16572
- title: "Could not revert settings",
16573
- content: `<p>Something went wrong while reverting your settings.</p><p>${data.message}</p>`,
16574
  buttons: [{
16575
  text: "Close",
16576
  close: true
@@ -16672,12 +18082,12 @@ class Saving_Saving
16672
  versions: [
16673
  {
16674
  id: '5.free',
16675
- name: "Font Awesome 5 - Free - Latest (automatic)",
16676
  free: true
16677
  },
16678
  {
16679
  id: '5.paid',
16680
- name: "Font Awesome 5 - Pro - Latest (automatic)",
16681
  free: false
16682
  },
16683
  {
@@ -16807,12 +18217,12 @@ class Saving_Saving
16807
 
16808
  // Info
16809
  let info = document.createElement("div");
16810
- info.innerHTML = `If your theme automatically loads in a library you just have to select the correct icon library.`;
16811
 
16812
 
16813
  // Icon library
16814
  let librarySelector = new Table();
16815
- librarySelector.addColumnHTML("<h2>Icon library</h2>");
16816
  librarySelector.addColumn(libraryDropdown, "", "370");
16817
  librarySelector.newRow();
16818
  librarySelector.addColumnText("");
@@ -16855,11 +18265,11 @@ class Saving_Saving
16855
 
16856
  // Info
16857
  let info = document.createElement("div");
16858
- info.innerHTML = `Select the correct version of the library. So Buttonizer can help you choosing icons.`;
16859
 
16860
  // Table
16861
  let fontAwesomeVersion = new Table();
16862
- fontAwesomeVersion.addColumnHTML("<h2>Select version</h2>");
16863
  fontAwesomeVersion.addColumn(this.versionDropdown, "", "370");
16864
  fontAwesomeVersion.newRow();
16865
  fontAwesomeVersion.addColumnText("");
@@ -16902,11 +18312,11 @@ class Saving_Saving
16902
  {
16903
  // Info
16904
  let licenseInfo = document.createElement("div");
16905
- licenseInfo.innerHTML = `You have selected an icon library that has premium icons, enter the library license to show them. <a href="" target="_blank" class="link-add-more" style="display: inline">How does this work?</a>`;
16906
 
16907
 
16908
  let input = document.createElement("input");
16909
- input.placeholder = 'Enter integrity code';
16910
  input.className = 'window-select';
16911
  input.value = this.currentSelectedPremiumCode;
16912
 
@@ -16985,11 +18395,11 @@ class Saving_Saving
16985
 
16986
  // Info
16987
  let info = document.createElement("div");
16988
- info.innerHTML = `Should Buttonizer import the icon library into your theme? When your theme already imports the library you can disable this.`;
16989
 
16990
  // Table
16991
  let importIconLibrary = new Table();
16992
- importIconLibrary.addColumnHTML("<h2>Import icon library</h2>");
16993
  importIconLibrary.addColumn(boolean.build(), "", "370");
16994
  importIconLibrary.newRow();
16995
  importIconLibrary.addColumnText("");
@@ -17028,26 +18438,14 @@ class Analytics_Analytics
17028
 
17029
  data.appendChild(this.input())
17030
 
17031
- let title = document.createElement("div");
17032
- title.className = 'window-splitter';
17033
- title.innerHTML = 'Where can I see my click data of my buttons in Google Analytics?';
17034
- title.style.marginBottom = '20px';
17035
-
17036
- data.appendChild(title);
17037
-
17038
- let info = document.createElement("div");
17039
- info.className = 'settings-window-information';
17040
- info.innerHTML = `
17041
- <p>All the click data of each button is displayed in the Google Analytics account you have set for your website. When you go to the <b>Behavior section</b> (left side of your screen in Google Analytics) and then click on <b>events overview</b> you will see that there is an <b>Event category</b> called <b>Buttonizer</b>.</p>
17042
-
17043
- <p><b>Event Category</b>: Each button you have set on Buttonizer will get the event category 'Buttonizer'<br />
17044
- <b>Event Label</b>: This will be the name that you have given your button in the back-end in WordPress <i class="fa fa-caret-right"></i> This way you will recognize which buttons perform better<br />
17045
- <b>Event Action</b>: This will be the page on which the button is clicked</p>
17046
-
17047
- <p>If you want to test if the Google Analytics tracking is working. You go to <b>Real Time <i class="fa fa-caret-right"></i> Events</b>, open another tab, go to your website and click on the button. You should see hits coming in :)</p>
17048
- `;
17049
-
17050
- data.appendChild(info);
17051
 
17052
  return data;
17053
  }
@@ -17069,7 +18467,7 @@ class Analytics_Analytics
17069
 
17070
  // Info
17071
  let info = document.createElement("div");
17072
- info.innerHTML = `Insert here the Google Analytics tracking code. Like UA-000000-2`;
17073
 
17074
  // Table
17075
  let analytics = new Table();
@@ -17095,7 +18493,7 @@ class ResetButtonizer
17095
  let data = document.createElement("div");
17096
  let info = document.createElement("div");
17097
  info.className = 'settings-window-information';
17098
- info.innerHTML = `<p>Nothing really special here, just a way to reset the buttonizer to the default settings</p>`;
17099
 
17100
  data.appendChild(info);
17101
 
@@ -17114,14 +18512,14 @@ class ResetButtonizer
17114
  let data = document.createElement("div");
17115
  let title = document.createElement("div");
17116
  title.className = 'window-splitter';
17117
- title.innerHTML = 'What happens when I click the red button below?';
17118
  title.style.marginBottom = '20px';
17119
 
17120
  data.appendChild(title);
17121
 
17122
  let info = document.createElement("div");
17123
  info.className = 'settings-window-information';
17124
- info.innerHTML = `<p>What will happen is that the plugin will get a 'factory reset'. All settings to Buttonizer will get removed as you just installed and activated Buttonizer. From then you can start all-over again.</p>`;
17125
 
17126
  data.appendChild(info);
17127
  return data;
@@ -17133,14 +18531,14 @@ class ResetButtonizer
17133
  let data = document.createElement("div");
17134
  let title = document.createElement("div");
17135
  title.className = 'window-splitter';
17136
- title.innerHTML = 'Why would I do that?';
17137
  title.style.marginBottom = '20px';
17138
 
17139
  data.appendChild(title);
17140
 
17141
  let info = document.createElement("div");
17142
  info.className = 'settings-window-information';
17143
- info.innerHTML = `<p>There are many reasons to reset Buttonizer. One could be, you ruined your Buttonizer buttons, the settings, categories. Or maybe you just want to try this reset button?</p>`;
17144
 
17145
  data.appendChild(info);
17146
  return data;
@@ -17152,7 +18550,7 @@ class ResetButtonizer
17152
  let data = document.createElement("div");
17153
  let title = document.createElement("div");
17154
  title.className = 'window-splitter';
17155
- title.innerHTML = 'I have a license, what about that?';
17156
  title.style.marginBottom = '20px';
17157
 
17158
  data.appendChild(title);
@@ -17160,15 +18558,15 @@ class ResetButtonizer
17160
  let info = document.createElement("div");
17161
  info.className = 'settings-window-information';
17162
  info.innerHTML = `
17163
- <p>No worries! Nothing will happen with your license! It only wipe out the following:</p>
17164
  <p>
17165
  <ul>
17166
- <li>Your buttons</li>
17167
- <li>Your button groups</li>
17168
- <li>All time schedules</li>
17169
- <li>All page rules</li>
17170
- <li>All other settings of Buttonizer</li>
17171
- <li>All publishes settings</li>
17172
  </ul>
17173
  </p>
17174
  `;
@@ -17177,6 +18575,190 @@ class ResetButtonizer
17177
  return data;
17178
  }
17179
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17180
  // And then?
17181
  andThen()
17182
  {
@@ -17209,14 +18791,14 @@ class ResetButtonizer
17209
 
17210
  let info = document.createElement("div");
17211
  info.className = 'settings-window-information';
17212
- info.innerHTML = `<p>Press the red button below to reset buttonizer. There will be no more warnings.</p>`;
17213
 
17214
  data.appendChild(info);
17215
 
17216
 
17217
  let button = document.createElement("a");
17218
  button.className = 'button button-red button-centered-reset';
17219
- button.innerHTML = '<i class="fas fa-sync"></i> Reset Buttonizer!';
17220
  button.href = 'javascript:void(0)';
17221
 
17222
  button.addEventListener("click", () => this.countdown());
@@ -17231,16 +18813,16 @@ class ResetButtonizer
17231
  window.Buttonizer.loader.show("Initializing...");
17232
 
17233
  setTimeout(() => {
17234
- window.Buttonizer.loader.show("Resetting...");
17235
- this.reset();
17236
  }, 1500);
17237
  }
17238
 
17239
  // Okay, reset
17240
- reset()
17241
  {
17242
  jQuery.ajax({
17243
- url: buttonizer_admin.ajax + '?action=buttonizer_backend&request=SaveData&save=reset-buttonizer',
17244
  dataType: 'json',
17245
  method: 'post',
17246
  data: {
@@ -17255,7 +18837,6 @@ class ResetButtonizer
17255
  }, 500);
17256
  } else {
17257
  window.Buttonizer.loader.hide();
17258
-
17259
  window.Buttonizer.savingError(data.message);
17260
  }
17261
  },
@@ -17303,11 +18884,11 @@ class ButtonizerMainSettings_ButtonizerMainSettings {
17303
 
17304
  // Table
17305
  let adminBarButtonTable = new Table();
17306
- adminBarButtonTable.addColumnHTML("<h2>Admin topbar button</h2>");
17307
  adminBarButtonTable.addColumn(boolean.build(), "", "370");
17308
  adminBarButtonTable.newRow();
17309
  adminBarButtonTable.addColumnText("");
17310
- adminBarButtonTable.addColumnText("You can hide the button in the admin top bar by using this toggle");
17311
 
17312
  return adminBarButtonTable.build();
17313
  }
@@ -17329,11 +18910,11 @@ class ButtonizerMainSettings_ButtonizerMainSettings {
17329
 
17330
  // Table
17331
  let tooltipsTable = new Table();
17332
- tooltipsTable.addColumnHTML("<h2>Show tooltips</h2>");
17333
  tooltipsTable.addColumn(boolean.build(), "", "370");
17334
  tooltipsTable.newRow();
17335
  tooltipsTable.addColumnText("");
17336
- tooltipsTable.addColumnText("You can hide or show all the tooltips by changing this setting");
17337
 
17338
  return tooltipsTable.build();
17339
  }
@@ -17355,11 +18936,11 @@ class ButtonizerMainSettings_ButtonizerMainSettings {
17355
 
17356
  // Table
17357
  let adminBarButtonTable = new Table();
17358
- adminBarButtonTable.addColumnHTML("<h2>Subdomain support</h2>");
17359
  adminBarButtonTable.addColumn(boolean.build(), "", "370");
17360
  adminBarButtonTable.newRow();
17361
  adminBarButtonTable.addColumnText("");
17362
- adminBarButtonTable.addColumnText("Some WordPress websites use subdomains to serve content on their website. To allow Buttonizer to load on your subdomains, you can enable this here. Only enable this when you need it.");
17363
 
17364
  return adminBarButtonTable.build();
17365
  }
@@ -17371,10 +18952,11 @@ class ButtonizerMainSettings_ButtonizerMainSettings {
17371
 
17372
 
17373
 
 
17374
  /* harmony default export */ var Settings = (class extends SettingsWindow
17375
  {
17376
  constructor() {
17377
- super({}, "Buttonizer settings");
17378
  }
17379
 
17380
  render()
@@ -17382,12 +18964,13 @@ class ButtonizerMainSettings_ButtonizerMainSettings {
17382
  this.fontAwesome();
17383
  this.analytics();
17384
  this.mainSettings();
 
17385
  this.reset();
17386
  }
17387
 
17388
  fontAwesome()
17389
  {
17390
- super.addItem("Icon library", new IconLibrary().build());
17391
  }
17392
 
17393
  analytics()
@@ -17397,12 +18980,17 @@ class ButtonizerMainSettings_ButtonizerMainSettings {
17397
 
17398
  mainSettings()
17399
  {
17400
- super.addItem("Other settings", new ButtonizerMainSettings_ButtonizerMainSettings().build());
 
 
 
 
 
17401
  }
17402
 
17403
  reset()
17404
  {
17405
- super.addItem("Reset", new ResetButtonizer().build());
17406
  }
17407
  });
17408
 
@@ -17547,7 +19135,7 @@ class ButtonizerMainSettings_ButtonizerMainSettings {
17547
 
17548
  let searchInput = document.createElement("input");
17549
  searchInput.className = 'icon-selector-searchbar';
17550
- searchInput.placeholder = 'Search to icons...';
17551
  searchInput.addEventListener("keyup", () => {
17552
  // First clear timeout
17553
  clearTimeout(this.searchTimeout);
@@ -17665,7 +19253,7 @@ body, html {
17665
  }
17666
  }else {
17667
  this.iframeContent.height = '50px';
17668
- this.searchList.innerHTML = `<p>Sorry, no results found for <b>${keyword}</b></p>`;
17669
  }
17670
  }
17671
 
@@ -18007,7 +19595,7 @@ class Tour_Tour {
18007
  this.tour._introItems[13].element = jQuery('.button-group-styling:visible')[0].querySelector('.style-button');
18008
  this.tour._introItems[14].element = jQuery('.button-group-styling:visible')[0].querySelector('.style-icon');
18009
  this.tour._introItems[15].element = jQuery('.button-group-styling:visible')[0].querySelector('.style-label');
18010
- console.log(this.tour._introItems[11]);
18011
  Object(main["setTimeout"])(() => {
18012
  document.querySelector('.introjs-tooltipReferenceLayer').setAttribute('style', 'width: 385px; height: 966px; top: 46px; left: -5px;');
18013
  }, 100);
@@ -18324,46 +19912,47 @@ class Tour_Tour {
18324
  this.tour.setOptions({
18325
  showBullets: false,
18326
  exitOnOverlayClick: false,
18327
- skipLabel: 'Exit tour',
18328
- doneLabel: 'Exit tour',
 
 
18329
  scrollToElement: true,
18330
  showStepNumbers: false,
18331
- disableInteraction: true,
18332
- keyboardNavigation: false,
18333
-
18334
  });
18335
 
18336
  this.tour.setOptions({
18337
  steps: [
18338
  // STEP 0
18339
  {
18340
- intro: `<b><h2>Welcome to the Buttonizer tour!</h2></b>
18341
- Start the tour and save time. Master the Buttonizer skills in only two minutes`,
 
18342
  position: 'left',
18343
  tooltipClass: 'max-width'
18344
  },
18345
  // STEP 1
18346
  {
18347
  element: document.querySelector('.buttonizer-bar'),
18348
- intro: "<b><h2>Buttonizer bar</h2></b> Manage all your Floating Action Button and Floating menu's in the Buttonizer bar.",
18349
  position: 'left'
18350
  },
18351
  // STEP 2
18352
  {
18353
  element: document.querySelector('.buttonizer-frame'),
18354
- intro: "<b><h2>Preview</h2></b> Watch the impact of your changes in the preview pane. Your buttons will only be visible to your website visitor after you click on 'Publish'.",
18355
  position: 'left'
18356
  },
18357
  // STEP 3
18358
  {
18359
  element: document.querySelector('.buttonizer-topbar'),
18360
- intro: `<b><h2>Top bar</h2></b> In the top bar, you can:</br>
18361
 
18362
  <h4 style="font-weight:400;text-align:left;padding:0 15px">
18363
- 1. Click the <b>'X'</b> to go back to WordPress</br>
18364
- 2. <b>Revert</b> changes you have made</br>
18365
- 3. <b>Publish</b> all your changes</br>
18366
- 4. Access the <b>general settings</b>.
18367
  </h4>`,
18368
  position: 'left',
18369
  tooltipClass: 'middle',
@@ -18371,29 +19960,28 @@ class Tour_Tour {
18371
  // STEP 4
18372
  {
18373
  element: document.querySelector('.buttonizer-topbar .options-button'),
18374
- intro: "Click here <b>&rarr;</b> </br> to go to Buttonizer's general settings.",
18375
  position: 'left',
18376
  disableInteraction: false,
18377
  },
18378
  // STEP 5
18379
  {
18380
  element: document.querySelector('.options-window'),
18381
- intro: `<b><h2>Menu</h2></b>
18382
- <b>Knowledgebase: </b>Want to know what you can do with Buttonizer? Take a look at our Knowledgebase!</br>
18383
- <b>I need support: </b>Visit our support page and ask for help from us or other users.</br>
18384
- <b>Community: </b>Visit our community page and interact with other Buttonizer users!</br>
18385
- <b>My account: </b>View your account details and license.</br>
18386
- <b>Upgrade or pricing: </b>Upgrade or extend your license.</br>
18387
- <b>Affiliation: </b>Like the plugin? Become our ambassador and earn cash ;-)</br>
18388
- <b>Options: </b>Change general settings like icon libraries and Google Analytics.</br>
18389
- `,
18390
  position: 'left',
18391
  tooltipClass: 'wider',
18392
  },
18393
  // STEP 6
18394
  {
18395
  element: window.Buttonizer.topBar.optionsWindow.querySelector('.single-button'),
18396
- intro: "Click on <b>Options</b> to open Buttonizer's general settings &rarr;",
18397
  position: 'left',
18398
  disableInteraction: false,
18399
  highlightClass: 'introjs-custom-hidden',
@@ -18401,11 +19989,11 @@ class Tour_Tour {
18401
  // STEP 7
18402
  {
18403
  element: window.Buttonizer.settingsWindow.title.parentElement.parentElement.querySelector('.window-menu'),
18404
- intro: `<b><h2>Buttonizer settings</h2></b>
18405
- <b>Icon library:</b> In this section, you will be able to choose other icon libraries, the icon library version and whether Buttonizer should import the icon library.</br>
18406
- <b>Google Analytics:</b> Want to track your button events? Place your Google Analytics code here!</br>
18407
- <b>Reset:</b> Comletely reset Buttonizer's data.</br>
18408
- `,
18409
  position: 'left',
18410
  highlightClass: 'introjs-custom-hidden',
18411
  tooltipClass: 'wider',
@@ -18413,29 +20001,28 @@ class Tour_Tour {
18413
  // STEP 8
18414
  {
18415
  element: window.Buttonizer.bar.groupHolder.querySelector('.button-group-holder'),
18416
- intro: `<b><h2>Button group</h2></b>
18417
- A button group contains buttons.</br>
18418
- Button groups are only visible when there are <u><b>2 or more buttons</b></u> within the group.</br></br>
18419
- The buttons in a button group are dedicated to one position. Add multiple button groups if you want to create more floating action buttons dedicated to different positions.
18420
- `,
18421
  position: 'right',
18422
  tooltipClass: 'max-width'
18423
  },
18424
  // STEP 9
18425
  {
18426
  element: window.Buttonizer.bar.groupHolder.querySelector('.button-group-holder').querySelector('.group-style'),
18427
- intro: `<b>&larr;</b> Click here</br>
18428
- to show group settings.`,
18429
  position: 'right',
18430
  disableInteraction: false,
18431
  },
18432
  // STEP 10
18433
  {
18434
  element: window.Buttonizer.bar.settingContainer,
18435
- intro: `<b><h2>Group settings</h2></b>
18436
- You can change the style of the button group here.</br>
18437
- Click on the left arrow to go back.
18438
- `,
18439
  position: 'right',
18440
  disableInteraction: false,
18441
  highlightClass: 'introjs-custom-gone',
@@ -18446,10 +20033,10 @@ class Tour_Tour {
18446
  // STEP 11
18447
  {
18448
  element: this.getAmount() === 1 ? jQuery('.button-group-styling')[1].querySelector('.style-top') : window.Buttonizer.buttonGroups[0].stylingObject.querySelector('.style-top'),
18449
- intro: `<b><h2>Position & device visibility</h2></b>
18450
- <b>Postion:</b> When you change the position of the button group it will move the whole group, including the buttons.</br>
18451
- <b>Device visibilty:</b> You can choose whether you want the <b><u>whole group</u></b> to be visible on desktop or mobile devices.
18452
- `,
18453
  position: 'right',
18454
  disableInteraction: false,
18455
  scrollTo: false,
@@ -18459,11 +20046,11 @@ class Tour_Tour {
18459
  // STEP 12
18460
  {
18461
  element: this.getAmount() === 1 ? jQuery('.button-group-styling')[1].querySelector('.style-menu') : window.Buttonizer.buttonGroups[0].stylingObject.querySelector('.style-menu'),
18462
- intro: `<b><h2>Menu style</h2></b>
18463
- <b>Start opened:</b> You can now set Buttonizer to automatically open! </br>
18464
- <b>Menu style:</b> Change how your floating menu is shown.</br>
18465
- <b>Animation:</b> Buttonizer will animate every 10 seconds to grab the attention of the user.</br>
18466
- `,
18467
  position: 'right',
18468
  disableInteraction: false,
18469
  scrollTo: false,
@@ -18473,11 +20060,11 @@ class Tour_Tour {
18473
  // STEP 13
18474
  {
18475
  element: this.getAmount() === 1 ? jQuery('.button-group-styling')[1].querySelector('.style-button') : window.Buttonizer.buttonGroups[0].stylingObject.querySelector('.style-button'),
18476
- intro: `<b><h2>Group button style</h2></b>
18477
- <b>Button color:</b> Change the color of the button group.</br>
18478
- <b>Border radius:</b> You can now change the border radius of the button group!</br>
18479
- <b>Background image:</b> Choose an image to use as a background of the button group.</br>
18480
- `,
18481
  position: 'right',
18482
  disableInteraction: false,
18483
  scrollTo: false,
@@ -18487,17 +20074,18 @@ class Tour_Tour {
18487
  // STEP 14
18488
  {
18489
  element: this.getAmount() === 1 ? jQuery('.button-group-styling')[1].querySelector('.style-icon') : window.Buttonizer.buttonGroups[0].stylingObject.querySelector('.style-icon'),
18490
- intro: `<b><h2>Group icon</h2></b>
18491
- <b>Graphic:</b> Choose whether to use an <u><b>icon</b></u> or an <u><b>image</b></u> as an icon.</br>
18492
- <b><h2 style="margin: 1em 0 0 0;">Icon</h2></b>
18493
- <b>Icon:</b> Choose you favorite icon from your selected icon library.</br>
18494
- <b>Icon color:</b> Change the color of the icon.</br>
18495
- <b>Icon size:</b> Change the size of the icon.</br>
18496
- <b><h2 style="margin: 1em 0 0 0;">Image</h2></b>
18497
- <b>Icon image:</b> Choose an image to use as an icon for the button group.</br>
18498
- <b>Border radius:</b> You can change the border radius of the image.</br>
18499
- <b>Image size:</b> Change the size of the image icon.</br>
18500
- `,
 
18501
  position: 'right',
18502
  disableInteraction: false,
18503
  scrollTo: false,
@@ -18507,12 +20095,13 @@ class Tour_Tour {
18507
  // STEP 15
18508
  {
18509
  element: this.getAmount() === 1 ? jQuery('.button-group-styling')[1].querySelector('.style-label') : window.Buttonizer.buttonGroups[0].stylingObject.querySelector('.style-label'),
18510
- intro: `<b><h2>Label style</h2></b>
18511
- <b>Label:</b> Change the label of the button group.</br>
18512
- <b>Visibility:</b> Always show, show on hover or hide the label. Choose for desktop and mobile devices!</br>
18513
- <b>Label color:</b> Change the text and label color of the label.</br>
18514
- <b>Font size & border radius:</b> Change the font size and border radius of the label.</br>
18515
- `,
 
18516
  position: 'right',
18517
  disableInteraction: false,
18518
  scrollTo: false,
@@ -18523,31 +20112,28 @@ class Tour_Tour {
18523
  // STEP 16
18524
  {
18525
  element: window.Buttonizer.buttonGroups[0].groupObject.querySelector('.create-new-button'),
18526
- intro: `<b><h2>Add new button</h2></b>
18527
- &larr; Click here </br>
18528
- to add a new button.
18529
- `,
18530
  position: 'right',
18531
  disableInteraction: false,
18532
  },
18533
  // STEP 17
18534
  {
18535
  element: window.Buttonizer.buttonGroups[0].groupObject.querySelector('.create-new-button'),
18536
- intro: `Don't click on next but click on 'Add button +'`,
18537
  position: 'right',
18538
  disableInteraction: false,
18539
  },
18540
  // STEP 18
18541
  {
18542
  element: window.Buttonizer.buttonGroups[0].groupObject.querySelector('.create-new-button'),
18543
- intro: "If you don't want to click add button I can do you the honor :)",
18544
  position: 'right',
18545
  disableInteraction: false,
18546
  },
18547
  // STEP 19
18548
  {
18549
  element: window.Buttonizer.buttonGroups[0].groupObject.querySelector('.create-new-button'),
18550
- intro: "Here, on the left... If you won't click it, I will click it >:-)",
18551
  position: 'right',
18552
  disableInteraction: false,
18553
  },
@@ -18561,7 +20147,7 @@ class Tour_Tour {
18561
  // STEP 21
18562
  {
18563
  position: 'bottom',
18564
- intro: "Hello? Please click that button...",
18565
  disableInteraction: false,
18566
  highlightClass: 'introjs-custom-gone',
18567
  tooltipClass: 'introjs-custom-gone',
@@ -18589,12 +20175,13 @@ class Tour_Tour {
18589
  this.tour.setOptions({
18590
  showBullets: false,
18591
  exitOnOverlayClick: false,
18592
- skipLabel: 'Exit tour',
18593
- doneLabel: 'Exit tour',
 
 
18594
  scrollToElement: true,
18595
  showStepNumbers: false,
18596
  disableInteraction: true,
18597
- keyboardNavigation: false,
18598
 
18599
  });
18600
 
@@ -18606,13 +20193,13 @@ class Tour_Tour {
18606
  // STEP 0
18607
  {
18608
  element: newButt,
18609
- intro: "<b><h2>Button</h2></b> You have created a new button! This is a button. Buttons are contained within a group.",
18610
  position: 'right',
18611
  },
18612
  // STEP 1
18613
  {
18614
  element: this.amount <= 7 ? newButt.querySelector('.group-title') : newButt,
18615
- intro: "<b><h2>Button name</h2></b> This is the name of the button.",
18616
  position: 'bottom',
18617
  scrollToElement: false,
18618
  highlightClass: 'introjs-custom-gone',
@@ -18620,7 +20207,7 @@ class Tour_Tour {
18620
  // STEP 2
18621
  {
18622
  element: this.amount <= 7 ? newButt.querySelector('.mobile-desktop') : newButt,
18623
- intro: "<b><h2>Visibility</h2></b> You can quickly change the visibility of a button! Show or hide the button on desktop or mobile.",
18624
  position: 'bottom',
18625
  highlightClass: 'introjs-custom-gone',
18626
 
@@ -18628,7 +20215,7 @@ class Tour_Tour {
18628
  // STEP 3
18629
  {
18630
  element: this.amount <= 7 ? newButt.querySelector('.holder-button') : newButt,
18631
- intro: "&larr; Click here <br> to show the menu",
18632
  position: 'right',
18633
  highlightClass: 'introjs-custom-gone',
18634
  disableInteraction: false,
@@ -18636,21 +20223,22 @@ class Tour_Tour {
18636
  // STEP 4
18637
  {
18638
  element: this.amount <= 7 ? newButt.querySelector('.group-holder-quick-menu') : newButt,
18639
- intro: `<b><h2>Menu</h2></b>
18640
- <p style="text-align: left;">
18641
- <b>Button settings:</b> Edit the style of the button.</br>
18642
- <b>Advanced settings:</b> Make the button appear/hide on certain pages and time! (only for our premium users).</br>
18643
- <b>Rename button:</b> Rename the button.</br>
18644
- <b>Duplicate button:</b> Make a copy of the button.</br>
18645
- <b>Delete button:</b> Delete the button.</br></p>
18646
- `,
 
18647
  position: 'right',
18648
  highlightClass: 'introjs-custom-gone',
18649
  },
18650
  // STEP 5
18651
  {
18652
  element: this.amount <= 7 ? newButt.querySelector('.group-holder-quick-menu').querySelector('.settings') : newButt,
18653
- intro: "&larr; Click here </br> to show the button settings",
18654
  position: 'right',
18655
  disableInteraction: false,
18656
  highlightClass: 'introjs-custom-hidden',
@@ -18658,7 +20246,7 @@ class Tour_Tour {
18658
  // STEP 6
18659
  {
18660
  element: window.Buttonizer.bar.settingContainer,
18661
- intro: "<b><h2>Button settings</h2></b> These are the button settings. Pretty similar to the group settings.",
18662
  position: 'right',
18663
  disableInteraction: false,
18664
  highlightClass: 'introjs-custom-gone',
@@ -18666,10 +20254,10 @@ class Tour_Tour {
18666
  // STEP 7
18667
  {
18668
  element: set.querySelectorAll('.style-top')[set.querySelectorAll('.style-top').length -1],
18669
- intro: `<b><h2>Position & device visibility</h2></b>
18670
- <b>Button action:</b> Choose the action of the button.</br>
18671
- <b>Device visibility:</b> You can choose whether you want the button to be visible on desktop or mobile devices.</br>
18672
- `,
18673
  position: 'right',
18674
  disableInteraction: false,
18675
  highlightClass: 'introjs-custom-gone',
@@ -18678,10 +20266,9 @@ class Tour_Tour {
18678
  // STEP 8
18679
  {
18680
  element: set.querySelectorAll('.style-button')[set.querySelectorAll('.style-button').length -1],
18681
- intro: `<b><h2>Button style</h2></b>
18682
- When enabled, the button will copy the button and label style of the group. </br>
18683
- Turn it off to change the style of the button!
18684
- `,
18685
  position: 'right',
18686
  disableInteraction: false,
18687
  highlightClass: 'introjs-custom-gone',
@@ -18690,17 +20277,17 @@ class Tour_Tour {
18690
  // STEP 9
18691
  {
18692
  element: set.querySelectorAll('.style-icon')[set.querySelectorAll('.style-icon').length -1],
18693
- intro: `<b><h2>Icon style</h2></b>
18694
- <b>Graphic:</b> Choose whether to use an <u><b>icon</b></u> or an <u><b>image</b></u> as an icon.</br>
18695
- <b><h2>Icon</h2></b>
18696
- <b>Icon:</b> Choose an icon from your selected icon library.</br>
18697
- <b>Icon color:</b> Change the color of the icon.</br>
18698
- <b>Icon size:</b> Change the size of the icon.</br>
18699
- <b><h2>Image</h2></b>
18700
- <b>Icon image:</b> Choose an image to use as an icon for the button.</br>
18701
- <b>Border radius:</b> You can change the border radius of the image.</br>
18702
- <b>Image size:</b> Change the size of the image icon.</br>
18703
- `,
18704
  position: 'right',
18705
  disableInteraction: false,
18706
  highlightClass: 'introjs-custom-gone',
@@ -18709,12 +20296,12 @@ class Tour_Tour {
18709
  // STEP 10
18710
  {
18711
  element: set.querySelectorAll('.style-label')[set.querySelectorAll('.style-label').length -1],
18712
- intro: `<b><h2>Label style</h2></b>
18713
- <b>Label:</b> Change the label of the button.<br>
18714
- <b>Visibility:</b> Always show, show on hover or hide the label. Choose for desktop and mobile devices!</br>
18715
- <b>Label color:</b> Change the label color.</br>
18716
- <b>Font size & border radius:</b> Change the font size and border radius of the label.</br>
18717
- `,
18718
  position: 'right',
18719
  disableInteraction: false,
18720
  highlightClass: 'introjs-custom-gone',
@@ -18723,21 +20310,17 @@ class Tour_Tour {
18723
  // STEP 11
18724
  {
18725
  element: window.Buttonizer.topBar.topBarElement.querySelector('.revert-save'),
18726
- intro: `<b><h2>Revert or Save</h2></b>
18727
- <b>Revert changes:</b> Delete all the changes you've made this session.</br>
18728
- <b>Save & publish:</b> Save and publish the changes you've made this session.
18729
- `,
18730
  position: 'right',
18731
  disableInteraction: true,
18732
  tooltipClass: 'right',
18733
  },
18734
  // Thanking user
18735
  {
18736
- intro: `<b><h2>That was it!</h2></b>
18737
- Thank you for taking the tour, that's all folks! We hope that you now know how to use Buttonizer! If you have any questions left, ask them on the <a href="https://community.buttonizer.pro" target="_blank">Buttonizer Community</a> forums!<br />
18738
- <br />
18739
- If you have feedback regarding the Buttonizer Tour, let us know!
18740
- `,
18741
  position: 'left',
18742
  tooltipClass: 'max-width'
18743
  },
@@ -18766,7 +20349,7 @@ class Tour_Tour {
18766
 
18767
 
18768
 
18769
-
18770
 
18771
  window.bdebug = new components_Debug();
18772
 
@@ -18846,7 +20429,7 @@ class Buttonizer_Buttonizer {
18846
  document.head.appendChild(favicon);
18847
 
18848
  this.loader = new ui_Loader();
18849
- this.loader.show("Loading settings...");
18850
  this.savingMechanism = new ui_Saving();
18851
 
18852
  bdebug.warning("Buttonizer settings loading");
@@ -18974,7 +20557,7 @@ class Buttonizer_Buttonizer {
18974
  onShow: () => this.getSetting('show_tooltips', 'true') === 'true' || this.getSetting('show_tooltips') === true
18975
  });
18976
 
18977
- this.loader.show("Building bar...");
18978
 
18979
  // Setup
18980
  this.topBar = new ui_TopBar(this);
@@ -18983,7 +20566,7 @@ class Buttonizer_Buttonizer {
18983
 
18984
  this.changes = data.changes;
18985
  if (data.changes) {
18986
- this.topBar.alertText.alert("Loaded changes from previous session");
18987
  }
18988
 
18989
  this.initializeSettings(data.settings);
@@ -19034,12 +20617,12 @@ class Buttonizer_Buttonizer {
19034
  this.topBar.updateEventLogs(event.data.message);
19035
  } else if (event.data.messageType === 'javascript_error') {
19036
  new Modal({
19037
- title: "Custom javascript error",
19038
  content: `
19039
- <p>Your custom javascript ran into an error. Read the error below:</p> <p><code style="display: block; padding: 15px;">${event.data.message}</code></p>
19040
  `,
19041
  buttons: [{
19042
- text: "OK, I'll fix this",
19043
  confirm: true,
19044
  }]
19045
  });
@@ -19105,11 +20688,11 @@ class Buttonizer_Buttonizer {
19105
 
19106
  // Update iframe path
19107
 
19108
- this.loader.show("Waiting for your website...", 'site-loading');
19109
 
19110
  setTimeout(() => {
19111
  if (!this.iframeLoaded) {
19112
- this.loader.show("Waiting for your website...<br /><br /><small>It's taking longer than usual, slow website?<br /><br /><a href='javascript:void(0)' onclick='window.Buttonizer.loader.hide()'>Skip this step</a></small>");
19113
  }
19114
  }, 5000);
19115
 
@@ -19132,11 +20715,11 @@ class Buttonizer_Buttonizer {
19132
  this.loader.hide();
19133
 
19134
  new Modal({
19135
- title: "Welcome to Buttonizer " + this.version,
19136
  content: `
19137
  <img src="${buttonizer_admin.assets}/images/plugin-icon.png" width="100" align="left" style="margin-right: 20px; margin-bottom: 10px;" />
19138
- <p>We are pleased to welcome you to <b>Buttonizer 2.0</b>!</p>
19139
- <p>We've created a tour for our new users, would you like to take the tour?</p>
19140
  `,
19141
 
19142
  onClose: () => {
@@ -19150,10 +20733,10 @@ class Buttonizer_Buttonizer {
19150
  },
19151
 
19152
  buttons: [{
19153
- text: "No thanks, I know how it works <i class=\"fa fa-chevron-right\" style=\"margin-left: 10px; vertical-align: middle;\" aria-hidden=\"true\"></i>",
19154
  close: true,
19155
  }, {
19156
- text: "Yes please <i class=\"fa fa-chevron-right\" style=\"margin-left: 10px; vertical-align: middle;\" aria-hidden=\"true\"></i>",
19157
  confirm: true,
19158
  }]
19159
  });
@@ -19164,16 +20747,16 @@ class Buttonizer_Buttonizer {
19164
  */
19165
  updateButtonsTo2Point0() {
19166
  new Modal({
19167
- title: "Hi Buttonizer!",
19168
  content: `
19169
- <p>It seems like you've installed Buttonizer 2.0 before, but, you installed version 1.5 later again and then updated back to 2.0!</p>
19170
- <p>The migration progress did not run, as it already ran back then. So, to convert your buttons, press the button below!</p>
19171
 
19172
- <p>If this window keeps popping up, even when you've tried to convert the buttons, try to reset Buttonizer. Go to the 'cog' icon (<i class="fas fa-cog"></i>) on the bar on the top, then go to 'Options <i class="fas fa-cogs"></i>' and go to the tab 'Reset' and follow the steps.</p>
19173
  `,
19174
 
19175
  onConfirm: () => {
19176
- window.Buttonizer.loader.show("Running migration...");
19177
 
19178
  jQuery.ajax({
19179
  url: buttonizer_admin.ajax + '?action=buttonizer_backend&request=SaveData&save=migrate-buttonizer',
@@ -19184,7 +20767,7 @@ class Buttonizer_Buttonizer {
19184
  },
19185
  success: (data) => {
19186
  if (data.status === "success") {
19187
- window.Buttonizer.loader.show("Finishing...");
19188
 
19189
  setTimeout(() => {
19190
  document.location.reload();
@@ -19202,10 +20785,10 @@ class Buttonizer_Buttonizer {
19202
  },
19203
 
19204
  buttons: [{
19205
- text: "I am OK",
19206
  close: true,
19207
  }, {
19208
- text: "Convert my buttons! <i class=\"fa fa-chevron-right\" style=\"margin-left: 10px; vertical-align: middle;\" aria-hidden=\"true\"></i>",
19209
  confirm: true,
19210
  }]
19211
  });
@@ -19217,12 +20800,12 @@ class Buttonizer_Buttonizer {
19217
  leftButtonizerWarning() {
19218
  let warning = document.createElement("div");
19219
  warning.className = 'buttonizer-warning warning-red';
19220
- warning.innerHTML = 'You left the Buttonizer preview window. You will not see changes you make..';
19221
 
19222
  let button = document.createElement("a");
19223
  button.href = 'javascript:void(0)';
19224
  button.className = 'buttonizer-warning-button';
19225
- button.innerText = 'Return to preview';
19226
 
19227
  button.addEventListener("click", () => {
19228
  document.body.className = document.body.className.replace('warning-left-preview-window', '');
@@ -19248,7 +20831,7 @@ class Buttonizer_Buttonizer {
19248
  */
19249
  saveSettings(newSetting, showLoadingScreen) {
19250
  if (showLoadingScreen) {
19251
- this.loader.show("Saving settings...");
19252
  }
19253
 
19254
  Object.assign(this.settings, newSetting);
@@ -19361,34 +20944,34 @@ class Buttonizer_Buttonizer {
19361
  /**
19362
  *
19363
  */
19364
- showPremiumPopup(description) {
19365
  new Modal({
19366
- title: `<i class="far fa-gem window-icon"></i> Premium feature`,
19367
  content: `
19368
- <p>Hi there, this function is a premium feature. We will describe what this feature will do:</p>
19369
  <code style="display: block; margin-bottom: 5px; padding: 10px;">${description}</code>
19370
- <p><b>What do I get as a premium user?</b></p>
19371
 
19372
  <ul class="buttonizer-pro-checklist">
19373
- <li><i class="fas fa-check"></i> Show button(groups) using the advanced time schedules</li>
19374
- <li><i class="fas fa-check"></i> Show button(groups) on specific pages using advanced page rules</li>
19375
- <li><i class="fas fa-check"></i> Create multiple button groups</li>
19376
- <li><i class="fas fa-check"></i> Add custom button-icon and button background images</li>
19377
- <li><i class="fas fa-check"></i> Exit intent</li>
19378
- <li><i class="fas fa-check"></i> Show or hide on scroll</li>
19379
- <li><i class="fas fa-check"></i> Show on timeout</li>
19380
- <li><i class="fas fa-check"></i> Be able to set CSS class names and button IDs</li>
19381
- <li><i class="fas fa-check"></i> Custom button background &amp; icon image</li>
19382
- <li><i class="fas fa-check"></i> Execute javascript on button clicks</li>
19383
  </ul>`,
19384
  onConfirm: () => {
19385
  document.location.href = buttonizer_admin.admin + '?page=Buttonizer-pricing';
19386
  },
 
19387
  buttons: [{
19388
- text: "Close",
19389
  close: true
19390
  }, {
19391
- text: `Go pro <i class="fas fa-chevron-right" style="margin-left: 5px;vertical-align: middle;"></i>`,
19392
  confirm: true,
19393
  close: true,
19394
  focus: true
@@ -19437,10 +21020,10 @@ class Buttonizer_Buttonizer {
19437
  */
19438
  savingError(message) {
19439
  new Modal({
19440
- title: "Could not save settings",
19441
- content: `<p>Something went wrong while saving your settings.</p><p>${message}</p>`,
19442
  buttons: [{
19443
- text: "Close",
19444
  close: true
19445
  }]
19446
  });
@@ -19481,12 +21064,12 @@ class Buttonizer_Buttonizer {
19481
  },
19482
  [
19483
  {
19484
- name: 'First button',
19485
  show_mobile: true,
19486
  show_desktop: true
19487
  },
19488
  {
19489
- name: 'Second button',
19490
  show_mobile: true,
19491
  show_desktop: true
19492
  }
@@ -19502,14 +21085,64 @@ class Buttonizer_Buttonizer {
19502
 
19503
  new ButtonGroup(this.buttonizerInitData.groups[0].data, this.buttonizerInitData.groups[0].buttons);
19504
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19505
  }
19506
 
19507
  window.Buttonizer = new Buttonizer_Buttonizer();
19508
 
19509
 
19510
  /***/ }),
19511
- /* 16 */,
19512
- /* 17 */
19513
  /***/ (function(module, exports) {
19514
 
19515
  // removed by extract-text-webpack-plugin
94
  /******/
95
  /******/
96
  /******/ // Load entry module and return exports
97
+ /******/ return __webpack_require__(__webpack_require__.s = 16);
98
  /******/ })
99
  /************************************************************************/
100
  /******/ ([
7592
 
7593
 
7594
  /***/ }),
7595
+ /* 13 */
7596
+ /***/ (function(module, exports) {
7597
+
7598
+ /*!
7599
+ Chosen, a Select Box Enhancer for jQuery and Prototype
7600
+ by Patrick Filler for Harvest, http://getharvest.com
7601
+
7602
+ Version 1.8.7
7603
+ Full source at https://github.com/harvesthq/chosen
7604
+ Copyright (c) 2011-2018 Harvest http://getharvest.com
7605
+
7606
+ MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
7607
+ This file is generated by `grunt build`, do not edit it by hand.
7608
+ */
7609
+
7610
+ (function() {
7611
+ var $, AbstractChosen, Chosen, SelectParser,
7612
+ bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
7613
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
7614
+ hasProp = {}.hasOwnProperty;
7615
+
7616
+ SelectParser = (function() {
7617
+ function SelectParser() {
7618
+ this.options_index = 0;
7619
+ this.parsed = [];
7620
+ }
7621
+
7622
+ SelectParser.prototype.add_node = function(child) {
7623
+ if (child.nodeName.toUpperCase() === "OPTGROUP") {
7624
+ return this.add_group(child);
7625
+ } else {
7626
+ return this.add_option(child);
7627
+ }
7628
+ };
7629
+
7630
+ SelectParser.prototype.add_group = function(group) {
7631
+ var group_position, i, len, option, ref, results1;
7632
+ group_position = this.parsed.length;
7633
+ this.parsed.push({
7634
+ array_index: group_position,
7635
+ group: true,
7636
+ label: group.label,
7637
+ title: group.title ? group.title : void 0,
7638
+ children: 0,
7639
+ disabled: group.disabled,
7640
+ classes: group.className
7641
+ });
7642
+ ref = group.childNodes;
7643
+ results1 = [];
7644
+ for (i = 0, len = ref.length; i < len; i++) {
7645
+ option = ref[i];
7646
+ results1.push(this.add_option(option, group_position, group.disabled));
7647
+ }
7648
+ return results1;
7649
+ };
7650
+
7651
+ SelectParser.prototype.add_option = function(option, group_position, group_disabled) {
7652
+ if (option.nodeName.toUpperCase() === "OPTION") {
7653
+ if (option.text !== "") {
7654
+ if (group_position != null) {
7655
+ this.parsed[group_position].children += 1;
7656
+ }
7657
+ this.parsed.push({
7658
+ array_index: this.parsed.length,
7659
+ options_index: this.options_index,
7660
+ value: option.value,
7661
+ text: option.text,
7662
+ html: option.innerHTML,
7663
+ title: option.title ? option.title : void 0,
7664
+ selected: option.selected,
7665
+ disabled: group_disabled === true ? group_disabled : option.disabled,
7666
+ group_array_index: group_position,
7667
+ group_label: group_position != null ? this.parsed[group_position].label : null,
7668
+ classes: option.className,
7669
+ style: option.style.cssText
7670
+ });
7671
+ } else {
7672
+ this.parsed.push({
7673
+ array_index: this.parsed.length,
7674
+ options_index: this.options_index,
7675
+ empty: true
7676
+ });
7677
+ }
7678
+ return this.options_index += 1;
7679
+ }
7680
+ };
7681
+
7682
+ return SelectParser;
7683
+
7684
+ })();
7685
+
7686
+ SelectParser.select_to_array = function(select) {
7687
+ var child, i, len, parser, ref;
7688
+ parser = new SelectParser();
7689
+ ref = select.childNodes;
7690
+ for (i = 0, len = ref.length; i < len; i++) {
7691
+ child = ref[i];
7692
+ parser.add_node(child);
7693
+ }
7694
+ return parser.parsed;
7695
+ };
7696
+
7697
+ AbstractChosen = (function() {
7698
+ function AbstractChosen(form_field, options1) {
7699
+ this.form_field = form_field;
7700
+ this.options = options1 != null ? options1 : {};
7701
+ this.label_click_handler = bind(this.label_click_handler, this);
7702
+ if (!AbstractChosen.browser_is_supported()) {
7703
+ return;
7704
+ }
7705
+ this.is_multiple = this.form_field.multiple;
7706
+ this.set_default_text();
7707
+ this.set_default_values();
7708
+ this.setup();
7709
+ this.set_up_html();
7710
+ this.register_observers();
7711
+ this.on_ready();
7712
+ }
7713
+
7714
+ AbstractChosen.prototype.set_default_values = function() {
7715
+ this.click_test_action = (function(_this) {
7716
+ return function(evt) {
7717
+ return _this.test_active_click(evt);
7718
+ };
7719
+ })(this);
7720
+ this.activate_action = (function(_this) {
7721
+ return function(evt) {
7722
+ return _this.activate_field(evt);
7723
+ };
7724
+ })(this);
7725
+ this.active_field = false;
7726
+ this.mouse_on_container = false;
7727
+ this.results_showing = false;
7728
+ this.result_highlighted = null;
7729
+ this.is_rtl = this.options.rtl || /\bchosen-rtl\b/.test(this.form_field.className);
7730
+ this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
7731
+ this.disable_search_threshold = this.options.disable_search_threshold || 0;
7732
+ this.disable_search = this.options.disable_search || false;
7733
+ this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;
7734
+ this.group_search = this.options.group_search != null ? this.options.group_search : true;
7735
+ this.search_contains = this.options.search_contains || false;
7736
+ this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;
7737
+ this.max_selected_options = this.options.max_selected_options || Infinity;
7738
+ this.inherit_select_classes = this.options.inherit_select_classes || false;
7739
+ this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;
7740
+ this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;
7741
+ this.include_group_label_in_selected = this.options.include_group_label_in_selected || false;
7742
+ this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY;
7743
+ this.case_sensitive_search = this.options.case_sensitive_search || false;
7744
+ return this.hide_results_on_select = this.options.hide_results_on_select != null ? this.options.hide_results_on_select : true;
7745
+ };
7746
+
7747
+ AbstractChosen.prototype.set_default_text = function() {
7748
+ if (this.form_field.getAttribute("data-placeholder")) {
7749
+ this.default_text = this.form_field.getAttribute("data-placeholder");
7750
+ } else if (this.is_multiple) {
7751
+ this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;
7752
+ } else {
7753
+ this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;
7754
+ }
7755
+ this.default_text = this.escape_html(this.default_text);
7756
+ return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text;
7757
+ };
7758
+
7759
+ AbstractChosen.prototype.choice_label = function(item) {
7760
+ if (this.include_group_label_in_selected && (item.group_label != null)) {
7761
+ return "<b class='group-name'>" + (this.escape_html(item.group_label)) + "</b>" + item.html;
7762
+ } else {
7763
+ return item.html;
7764
+ }
7765
+ };
7766
+
7767
+ AbstractChosen.prototype.mouse_enter = function() {
7768
+ return this.mouse_on_container = true;
7769
+ };
7770
+
7771
+ AbstractChosen.prototype.mouse_leave = function() {
7772
+ return this.mouse_on_container = false;
7773
+ };
7774
+
7775
+ AbstractChosen.prototype.input_focus = function(evt) {
7776
+ if (this.is_multiple) {
7777
+ if (!this.active_field) {
7778
+ return setTimeout(((function(_this) {
7779
+ return function() {
7780
+ return _this.container_mousedown();
7781
+ };
7782
+ })(this)), 50);
7783
+ }
7784
+ } else {
7785
+ if (!this.active_field) {
7786
+ return this.activate_field();
7787
+ }
7788
+ }
7789
+ };
7790
+
7791
+ AbstractChosen.prototype.input_blur = function(evt) {
7792
+ if (!this.mouse_on_container) {
7793
+ this.active_field = false;
7794
+ return setTimeout(((function(_this) {
7795
+ return function() {
7796
+ return _this.blur_test();
7797
+ };
7798
+ })(this)), 100);
7799
+ }
7800
+ };
7801
+
7802
+ AbstractChosen.prototype.label_click_handler = function(evt) {
7803
+ if (this.is_multiple) {
7804
+ return this.container_mousedown(evt);
7805
+ } else {
7806
+ return this.activate_field();
7807
+ }
7808
+ };
7809
+
7810
+ AbstractChosen.prototype.results_option_build = function(options) {
7811
+ var content, data, data_content, i, len, ref, shown_results;
7812
+ content = '';
7813
+ shown_results = 0;
7814
+ ref = this.results_data;
7815
+ for (i = 0, len = ref.length; i < len; i++) {
7816
+ data = ref[i];
7817
+ data_content = '';
7818
+ if (data.group) {
7819
+ data_content = this.result_add_group(data);
7820
+ } else {
7821
+ data_content = this.result_add_option(data);
7822
+ }
7823
+ if (data_content !== '') {
7824
+ shown_results++;
7825
+ content += data_content;
7826
+ }
7827
+ if (options != null ? options.first : void 0) {
7828
+ if (data.selected && this.is_multiple) {
7829
+ this.choice_build(data);
7830
+ } else if (data.selected && !this.is_multiple) {
7831
+ this.single_set_selected_text(this.choice_label(data));
7832
+ }
7833
+ }
7834
+ if (shown_results >= this.max_shown_results) {
7835
+ break;
7836
+ }
7837
+ }
7838
+ return content;
7839
+ };
7840
+
7841
+ AbstractChosen.prototype.result_add_option = function(option) {
7842
+ var classes, option_el;
7843
+ if (!option.search_match) {
7844
+ return '';
7845
+ }
7846
+ if (!this.include_option_in_results(option)) {
7847
+ return '';
7848
+ }
7849
+ classes = [];
7850
+ if (!option.disabled && !(option.selected && this.is_multiple)) {
7851
+ classes.push("active-result");
7852
+ }
7853
+ if (option.disabled && !(option.selected && this.is_multiple)) {
7854
+ classes.push("disabled-result");
7855
+ }
7856
+ if (option.selected) {
7857
+ classes.push("result-selected");
7858
+ }
7859
+ if (option.group_array_index != null) {
7860
+ classes.push("group-option");
7861
+ }
7862
+ if (option.classes !== "") {
7863
+ classes.push(option.classes);
7864
+ }
7865
+ option_el = document.createElement("li");
7866
+ option_el.className = classes.join(" ");
7867
+ if (option.style) {
7868
+ option_el.style.cssText = option.style;
7869
+ }
7870
+ option_el.setAttribute("data-option-array-index", option.array_index);
7871
+ option_el.innerHTML = option.highlighted_html || option.html;
7872
+ if (option.title) {
7873
+ option_el.title = option.title;
7874
+ }
7875
+ return this.outerHTML(option_el);
7876
+ };
7877
+
7878
+ AbstractChosen.prototype.result_add_group = function(group) {
7879
+ var classes, group_el;
7880
+ if (!(group.search_match || group.group_match)) {
7881
+ return '';
7882
+ }
7883
+ if (!(group.active_options > 0)) {
7884
+ return '';
7885
+ }
7886
+ classes = [];
7887
+ classes.push("group-result");
7888
+ if (group.classes) {
7889
+ classes.push(group.classes);
7890
+ }
7891
+ group_el = document.createElement("li");
7892
+ group_el.className = classes.join(" ");
7893
+ group_el.innerHTML = group.highlighted_html || this.escape_html(group.label);
7894
+ if (group.title) {
7895
+ group_el.title = group.title;
7896
+ }
7897
+ return this.outerHTML(group_el);
7898
+ };
7899
+
7900
+ AbstractChosen.prototype.results_update_field = function() {
7901
+ this.set_default_text();
7902
+ if (!this.is_multiple) {
7903
+ this.results_reset_cleanup();
7904
+ }
7905
+ this.result_clear_highlight();
7906
+ this.results_build();
7907
+ if (this.results_showing) {
7908
+ return this.winnow_results();
7909
+ }
7910
+ };
7911
+
7912
+ AbstractChosen.prototype.reset_single_select_options = function() {
7913
+ var i, len, ref, result, results1;
7914
+ ref = this.results_data;
7915
+ results1 = [];
7916
+ for (i = 0, len = ref.length; i < len; i++) {
7917
+ result = ref[i];
7918
+ if (result.selected) {
7919
+ results1.push(result.selected = false);
7920
+ } else {
7921
+ results1.push(void 0);
7922
+ }
7923
+ }
7924
+ return results1;
7925
+ };
7926
+
7927
+ AbstractChosen.prototype.results_toggle = function() {
7928
+ if (this.results_showing) {
7929
+ return this.results_hide();
7930
+ } else {
7931
+ return this.results_show();
7932
+ }
7933
+ };
7934
+
7935
+ AbstractChosen.prototype.results_search = function(evt) {
7936
+ if (this.results_showing) {
7937
+ return this.winnow_results();
7938
+ } else {
7939
+ return this.results_show();
7940
+ }
7941
+ };
7942
+
7943
+ AbstractChosen.prototype.winnow_results = function(options) {
7944
+ var escapedQuery, fix, i, len, option, prefix, query, ref, regex, results, results_group, search_match, startpos, suffix, text;
7945
+ this.no_results_clear();
7946
+ results = 0;
7947
+ query = this.get_search_text();
7948
+ escapedQuery = query.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
7949
+ regex = this.get_search_regex(escapedQuery);
7950
+ ref = this.results_data;
7951
+ for (i = 0, len = ref.length; i < len; i++) {
7952
+ option = ref[i];
7953
+ option.search_match = false;
7954
+ results_group = null;
7955
+ search_match = null;
7956
+ option.highlighted_html = '';
7957
+ if (this.include_option_in_results(option)) {
7958
+ if (option.group) {
7959
+ option.group_match = false;
7960
+ option.active_options = 0;
7961
+ }
7962
+ if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {
7963
+ results_group = this.results_data[option.group_array_index];
7964
+ if (results_group.active_options === 0 && results_group.search_match) {
7965
+ results += 1;
7966
+ }
7967
+ results_group.active_options += 1;
7968
+ }
7969
+ text = option.group ? option.label : option.text;
7970
+ if (!(option.group && !this.group_search)) {
7971
+ search_match = this.search_string_match(text, regex);
7972
+ option.search_match = search_match != null;
7973
+ if (option.search_match && !option.group) {
7974
+ results += 1;
7975
+ }
7976
+ if (option.search_match) {
7977
+ if (query.length) {
7978
+ startpos = search_match.index;
7979
+ prefix = text.slice(0, startpos);
7980
+ fix = text.slice(startpos, startpos + query.length);
7981
+ suffix = text.slice(startpos + query.length);
7982
+ option.highlighted_html = (this.escape_html(prefix)) + "<em>" + (this.escape_html(fix)) + "</em>" + (this.escape_html(suffix));
7983
+ }
7984
+ if (results_group != null) {
7985
+ results_group.group_match = true;
7986
+ }
7987
+ } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {
7988
+ option.search_match = true;
7989
+ }
7990
+ }
7991
+ }
7992
+ }
7993
+ this.result_clear_highlight();
7994
+ if (results < 1 && query.length) {
7995
+ this.update_results_content("");
7996
+ return this.no_results(query);
7997
+ } else {
7998
+ this.update_results_content(this.results_option_build());
7999
+ if (!(options != null ? options.skip_highlight : void 0)) {
8000
+ return this.winnow_results_set_highlight();
8001
+ }
8002
+ }
8003
+ };
8004
+
8005
+ AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {
8006
+ var regex_flag, regex_string;
8007
+ regex_string = this.search_contains ? escaped_search_string : "(^|\\s|\\b)" + escaped_search_string + "[^\\s]*";
8008
+ if (!(this.enable_split_word_search || this.search_contains)) {
8009
+ regex_string = "^" + regex_string;
8010
+ }
8011
+ regex_flag = this.case_sensitive_search ? "" : "i";
8012
+ return new RegExp(regex_string, regex_flag);
8013
+ };
8014
+
8015
+ AbstractChosen.prototype.search_string_match = function(search_string, regex) {
8016
+ var match;
8017
+ match = regex.exec(search_string);
8018
+ if (!this.search_contains && (match != null ? match[1] : void 0)) {
8019
+ match.index += 1;
8020
+ }
8021
+ return match;
8022
+ };
8023
+
8024
+ AbstractChosen.prototype.choices_count = function() {
8025
+ var i, len, option, ref;
8026
+ if (this.selected_option_count != null) {
8027
+ return this.selected_option_count;
8028
+ }
8029
+ this.selected_option_count = 0;
8030
+ ref = this.form_field.options;
8031
+ for (i = 0, len = ref.length; i < len; i++) {
8032
+ option = ref[i];
8033
+ if (option.selected) {
8034
+ this.selected_option_count += 1;
8035
+ }
8036
+ }
8037
+ return this.selected_option_count;
8038
+ };
8039
+
8040
+ AbstractChosen.prototype.choices_click = function(evt) {
8041
+ evt.preventDefault();
8042
+ this.activate_field();
8043
+ if (!(this.results_showing || this.is_disabled)) {
8044
+ return this.results_show();
8045
+ }
8046
+ };
8047
+
8048
+ AbstractChosen.prototype.keydown_checker = function(evt) {
8049
+ var ref, stroke;
8050
+ stroke = (ref = evt.which) != null ? ref : evt.keyCode;
8051
+ this.search_field_scale();
8052
+ if (stroke !== 8 && this.pending_backstroke) {
8053
+ this.clear_backstroke();
8054
+ }
8055
+ switch (stroke) {
8056
+ case 8:
8057
+ this.backstroke_length = this.get_search_field_value().length;
8058
+ break;
8059
+ case 9:
8060
+ if (this.results_showing && !this.is_multiple) {
8061
+ this.result_select(evt);
8062
+ }
8063
+ this.mouse_on_container = false;
8064
+ break;
8065
+ case 13:
8066
+ if (this.results_showing) {
8067
+ evt.preventDefault();
8068
+ }
8069
+ break;
8070
+ case 27:
8071
+ if (this.results_showing) {
8072
+ evt.preventDefault();
8073
+ }
8074
+ break;
8075
+ case 32:
8076
+ if (this.disable_search) {
8077
+ evt.preventDefault();
8078
+ }
8079
+ break;
8080
+ case 38:
8081
+ evt.preventDefault();
8082
+ this.keyup_arrow();
8083
+ break;
8084
+ case 40:
8085
+ evt.preventDefault();
8086
+ this.keydown_arrow();
8087
+ break;
8088
+ }
8089
+ };
8090
+
8091
+ AbstractChosen.prototype.keyup_checker = function(evt) {
8092
+ var ref, stroke;
8093
+ stroke = (ref = evt.which) != null ? ref : evt.keyCode;
8094
+ this.search_field_scale();
8095
+ switch (stroke) {
8096
+ case 8:
8097
+ if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {
8098
+ this.keydown_backstroke();
8099
+ } else if (!this.pending_backstroke) {
8100
+ this.result_clear_highlight();
8101
+ this.results_search();
8102
+ }
8103
+ break;
8104
+ case 13:
8105
+ evt.preventDefault();
8106
+ if (this.results_showing) {
8107
+ this.result_select(evt);
8108
+ }
8109
+ break;
8110
+ case 27:
8111
+ if (this.results_showing) {
8112
+ this.results_hide();
8113
+ }
8114
+ break;
8115
+ case 9:
8116
+ case 16:
8117
+ case 17:
8118
+ case 18:
8119
+ case 38:
8120
+ case 40:
8121
+ case 91:
8122
+ break;
8123
+ default:
8124
+ this.results_search();
8125
+ break;
8126
+ }
8127
+ };
8128
+
8129
+ AbstractChosen.prototype.clipboard_event_checker = function(evt) {
8130
+ if (this.is_disabled) {
8131
+ return;
8132
+ }
8133
+ return setTimeout(((function(_this) {
8134
+ return function() {
8135
+ return _this.results_search();
8136
+ };
8137
+ })(this)), 50);
8138
+ };
8139
+
8140
+ AbstractChosen.prototype.container_width = function() {
8141
+ if (this.options.width != null) {
8142
+ return this.options.width;
8143
+ } else {
8144
+ return this.form_field.offsetWidth + "px";
8145
+ }
8146
+ };
8147
+
8148
+ AbstractChosen.prototype.include_option_in_results = function(option) {
8149
+ if (this.is_multiple && (!this.display_selected_options && option.selected)) {
8150
+ return false;
8151
+ }
8152
+ if (!this.display_disabled_options && option.disabled) {
8153
+ return false;
8154
+ }
8155
+ if (option.empty) {
8156
+ return false;
8157
+ }
8158
+ return true;
8159
+ };
8160
+
8161
+ AbstractChosen.prototype.search_results_touchstart = function(evt) {
8162
+ this.touch_started = true;
8163
+ return this.search_results_mouseover(evt);
8164
+ };
8165
+
8166
+ AbstractChosen.prototype.search_results_touchmove = function(evt) {
8167
+ this.touch_started = false;
8168
+ return this.search_results_mouseout(evt);
8169
+ };
8170
+
8171
+ AbstractChosen.prototype.search_results_touchend = function(evt) {
8172
+ if (this.touch_started) {
8173
+ return this.search_results_mouseup(evt);
8174
+ }
8175
+ };
8176
+
8177
+ AbstractChosen.prototype.outerHTML = function(element) {
8178
+ var tmp;
8179
+ if (element.outerHTML) {
8180
+ return element.outerHTML;
8181
+ }
8182
+ tmp = document.createElement("div");
8183
+ tmp.appendChild(element);
8184
+ return tmp.innerHTML;
8185
+ };
8186
+
8187
+ AbstractChosen.prototype.get_single_html = function() {
8188
+ return "<a class=\"chosen-single chosen-default\">\n <span>" + this.default_text + "</span>\n <div><b></b></div>\n</a>\n<div class=\"chosen-drop\">\n <div class=\"chosen-search\">\n <input class=\"chosen-search-input\" type=\"text\" autocomplete=\"off\" />\n </div>\n <ul class=\"chosen-results\"></ul>\n</div>";
8189
+ };
8190
+
8191
+ AbstractChosen.prototype.get_multi_html = function() {
8192
+ return "<ul class=\"chosen-choices\">\n <li class=\"search-field\">\n <input class=\"chosen-search-input\" type=\"text\" autocomplete=\"off\" value=\"" + this.default_text + "\" />\n </li>\n</ul>\n<div class=\"chosen-drop\">\n <ul class=\"chosen-results\"></ul>\n</div>";
8193
+ };
8194
+
8195
+ AbstractChosen.prototype.get_no_results_html = function(terms) {
8196
+ return "<li class=\"no-results\">\n " + this.results_none_found + " <span>" + (this.escape_html(terms)) + "</span>\n</li>";
8197
+ };
8198
+
8199
+ AbstractChosen.browser_is_supported = function() {
8200
+ if ("Microsoft Internet Explorer" === window.navigator.appName) {
8201
+ return document.documentMode >= 8;
8202
+ }
8203
+ if (/iP(od|hone)/i.test(window.navigator.userAgent) || /IEMobile/i.test(window.navigator.userAgent) || /Windows Phone/i.test(window.navigator.userAgent) || /BlackBerry/i.test(window.navigator.userAgent) || /BB10/i.test(window.navigator.userAgent) || /Android.*Mobile/i.test(window.navigator.userAgent)) {
8204
+ return false;
8205
+ }
8206
+ return true;
8207
+ };
8208
+
8209
+ AbstractChosen.default_multiple_text = "Select Some Options";
8210
+
8211
+ AbstractChosen.default_single_text = "Select an Option";
8212
+
8213
+ AbstractChosen.default_no_result_text = "No results match";
8214
+
8215
+ return AbstractChosen;
8216
+
8217
+ })();
8218
+
8219
+ $ = jQuery;
8220
+
8221
+ $.fn.extend({
8222
+ chosen: function(options) {
8223
+ if (!AbstractChosen.browser_is_supported()) {
8224
+ return this;
8225
+ }
8226
+ return this.each(function(input_field) {
8227
+ var $this, chosen;
8228
+ $this = $(this);
8229
+ chosen = $this.data('chosen');
8230
+ if (options === 'destroy') {
8231
+ if (chosen instanceof Chosen) {
8232
+ chosen.destroy();
8233
+ }
8234
+ return;
8235
+ }
8236
+ if (!(chosen instanceof Chosen)) {
8237
+ $this.data('chosen', new Chosen(this, options));
8238
+ }
8239
+ });
8240
+ }
8241
+ });
8242
+
8243
+ Chosen = (function(superClass) {
8244
+ extend(Chosen, superClass);
8245
+
8246
+ function Chosen() {
8247
+ return Chosen.__super__.constructor.apply(this, arguments);
8248
+ }
8249
+
8250
+ Chosen.prototype.setup = function() {
8251
+ this.form_field_jq = $(this.form_field);
8252
+ return this.current_selectedIndex = this.form_field.selectedIndex;
8253
+ };
8254
+
8255
+ Chosen.prototype.set_up_html = function() {
8256
+ var container_classes, container_props;
8257
+ container_classes = ["chosen-container"];
8258
+ container_classes.push("chosen-container-" + (this.is_multiple ? "multi" : "single"));
8259
+ if (this.inherit_select_classes && this.form_field.className) {
8260
+ container_classes.push(this.form_field.className);
8261
+ }
8262
+ if (this.is_rtl) {
8263
+ container_classes.push("chosen-rtl");
8264
+ }
8265
+ container_props = {
8266
+ 'class': container_classes.join(' '),
8267
+ 'title': this.form_field.title
8268
+ };
8269
+ if (this.form_field.id.length) {
8270
+ container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen";
8271
+ }
8272
+ this.container = $("<div />", container_props);
8273
+ this.container.width(this.container_width());
8274
+ if (this.is_multiple) {
8275
+ this.container.html(this.get_multi_html());
8276
+ } else {
8277
+ this.container.html(this.get_single_html());
8278
+ }
8279
+ this.form_field_jq.hide().after(this.container);
8280
+ this.dropdown = this.container.find('div.chosen-drop').first();
8281
+ this.search_field = this.container.find('input').first();
8282
+ this.search_results = this.container.find('ul.chosen-results').first();
8283
+ this.search_field_scale();
8284
+ this.search_no_results = this.container.find('li.no-results').first();
8285
+ if (this.is_multiple) {
8286
+ this.search_choices = this.container.find('ul.chosen-choices').first();
8287
+ this.search_container = this.container.find('li.search-field').first();
8288
+ } else {
8289
+ this.search_container = this.container.find('div.chosen-search').first();
8290
+ this.selected_item = this.container.find('.chosen-single').first();
8291
+ }
8292
+ this.results_build();
8293
+ this.set_tab_index();
8294
+ return this.set_label_behavior();
8295
+ };
8296
+
8297
+ Chosen.prototype.on_ready = function() {
8298
+ return this.form_field_jq.trigger("chosen:ready", {
8299
+ chosen: this
8300
+ });
8301
+ };
8302
+
8303
+ Chosen.prototype.register_observers = function() {
8304
+ this.container.on('touchstart.chosen', (function(_this) {
8305
+ return function(evt) {
8306
+ _this.container_mousedown(evt);
8307
+ };
8308
+ })(this));
8309
+ this.container.on('touchend.chosen', (function(_this) {
8310
+ return function(evt) {
8311
+ _this.container_mouseup(evt);
8312
+ };
8313
+ })(this));
8314
+ this.container.on('mousedown.chosen', (function(_this) {
8315
+ return function(evt) {
8316
+ _this.container_mousedown(evt);
8317
+ };
8318
+ })(this));
8319
+ this.container.on('mouseup.chosen', (function(_this) {
8320
+ return function(evt) {
8321
+ _this.container_mouseup(evt);
8322
+ };
8323
+ })(this));
8324
+ this.container.on('mouseenter.chosen', (function(_this) {
8325
+ return function(evt) {
8326
+ _this.mouse_enter(evt);
8327
+ };
8328
+ })(this));
8329
+ this.container.on('mouseleave.chosen', (function(_this) {
8330
+ return function(evt) {
8331
+ _this.mouse_leave(evt);
8332
+ };
8333
+ })(this));
8334
+ this.search_results.on('mouseup.chosen', (function(_this) {
8335
+ return function(evt) {
8336
+ _this.search_results_mouseup(evt);
8337
+ };
8338
+ })(this));
8339
+ this.search_results.on('mouseover.chosen', (function(_this) {
8340
+ return function(evt) {
8341
+ _this.search_results_mouseover(evt);
8342
+ };
8343
+ })(this));
8344
+ this.search_results.on('mouseout.chosen', (function(_this) {
8345
+ return function(evt) {
8346
+ _this.search_results_mouseout(evt);
8347
+ };
8348
+ })(this));
8349
+ this.search_results.on('mousewheel.chosen DOMMouseScroll.chosen', (function(_this) {
8350
+ return function(evt) {
8351
+ _this.search_results_mousewheel(evt);
8352
+ };
8353
+ })(this));
8354
+ this.search_results.on('touchstart.chosen', (function(_this) {
8355
+ return function(evt) {
8356
+ _this.search_results_touchstart(evt);
8357
+ };
8358
+ })(this));
8359
+ this.search_results.on('touchmove.chosen', (function(_this) {
8360
+ return function(evt) {
8361
+ _this.search_results_touchmove(evt);
8362
+ };
8363
+ })(this));
8364
+ this.search_results.on('touchend.chosen', (function(_this) {
8365
+ return function(evt) {
8366
+ _this.search_results_touchend(evt);
8367
+ };
8368
+ })(this));
8369
+ this.form_field_jq.on("chosen:updated.chosen", (function(_this) {
8370
+ return function(evt) {
8371
+ _this.results_update_field(evt);
8372
+ };
8373
+ })(this));
8374
+ this.form_field_jq.on("chosen:activate.chosen", (function(_this) {
8375
+ return function(evt) {
8376
+ _this.activate_field(evt);
8377
+ };
8378
+ })(this));
8379
+ this.form_field_jq.on("chosen:open.chosen", (function(_this) {
8380
+ return function(evt) {
8381
+ _this.container_mousedown(evt);
8382
+ };
8383
+ })(this));
8384
+ this.form_field_jq.on("chosen:close.chosen", (function(_this) {
8385
+ return function(evt) {
8386
+ _this.close_field(evt);
8387
+ };
8388
+ })(this));
8389
+ this.search_field.on('blur.chosen', (function(_this) {
8390
+ return function(evt) {
8391
+ _this.input_blur(evt);
8392
+ };
8393
+ })(this));
8394
+ this.search_field.on('keyup.chosen', (function(_this) {
8395
+ return function(evt) {
8396
+ _this.keyup_checker(evt);
8397
+ };
8398
+ })(this));
8399
+ this.search_field.on('keydown.chosen', (function(_this) {
8400
+ return function(evt) {
8401
+ _this.keydown_checker(evt);
8402
+ };
8403
+ })(this));
8404
+ this.search_field.on('focus.chosen', (function(_this) {
8405
+ return function(evt) {
8406
+ _this.input_focus(evt);
8407
+ };
8408
+ })(this));
8409
+ this.search_field.on('cut.chosen', (function(_this) {
8410
+ return function(evt) {
8411
+ _this.clipboard_event_checker(evt);
8412
+ };
8413
+ })(this));
8414
+ this.search_field.on('paste.chosen', (function(_this) {
8415
+ return function(evt) {
8416
+ _this.clipboard_event_checker(evt);
8417
+ };
8418
+ })(this));
8419
+ if (this.is_multiple) {
8420
+ return this.search_choices.on('click.chosen', (function(_this) {
8421
+ return function(evt) {
8422
+ _this.choices_click(evt);
8423
+ };
8424
+ })(this));
8425
+ } else {
8426
+ return this.container.on('click.chosen', function(evt) {
8427
+ evt.preventDefault();
8428
+ });
8429
+ }
8430
+ };
8431
+
8432
+ Chosen.prototype.destroy = function() {
8433
+ $(this.container[0].ownerDocument).off('click.chosen', this.click_test_action);
8434
+ if (this.form_field_label.length > 0) {
8435
+ this.form_field_label.off('click.chosen');
8436
+ }
8437
+ if (this.search_field[0].tabIndex) {
8438
+ this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;
8439
+ }
8440
+ this.container.remove();
8441
+ this.form_field_jq.removeData('chosen');
8442
+ return this.form_field_jq.show();
8443
+ };
8444
+
8445
+ Chosen.prototype.search_field_disabled = function() {
8446
+ this.is_disabled = this.form_field.disabled || this.form_field_jq.parents('fieldset').is(':disabled');
8447
+ this.container.toggleClass('chosen-disabled', this.is_disabled);
8448
+ this.search_field[0].disabled = this.is_disabled;
8449
+ if (!this.is_multiple) {
8450
+ this.selected_item.off('focus.chosen', this.activate_field);
8451
+ }
8452
+ if (this.is_disabled) {
8453
+ return this.close_field();
8454
+ } else if (!this.is_multiple) {
8455
+ return this.selected_item.on('focus.chosen', this.activate_field);
8456
+ }
8457
+ };
8458
+
8459
+ Chosen.prototype.container_mousedown = function(evt) {
8460
+ var ref;
8461
+ if (this.is_disabled) {
8462
+ return;
8463
+ }
8464
+ if (evt && ((ref = evt.type) === 'mousedown' || ref === 'touchstart') && !this.results_showing) {
8465
+ evt.preventDefault();
8466
+ }
8467
+ if (!((evt != null) && ($(evt.target)).hasClass("search-choice-close"))) {
8468
+ if (!this.active_field) {
8469
+ if (this.is_multiple) {
8470
+ this.search_field.val("");
8471
+ }
8472
+ $(this.container[0].ownerDocument).on('click.chosen', this.click_test_action);
8473
+ this.results_show();
8474
+ } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chosen-single").length)) {
8475
+ evt.preventDefault();
8476
+ this.results_toggle();
8477
+ }
8478
+ return this.activate_field();
8479
+ }
8480
+ };
8481
+
8482
+ Chosen.prototype.container_mouseup = function(evt) {
8483
+ if (evt.target.nodeName === "ABBR" && !this.is_disabled) {
8484
+ return this.results_reset(evt);
8485
+ }
8486
+ };
8487
+
8488
+ Chosen.prototype.search_results_mousewheel = function(evt) {
8489
+ var delta;
8490
+ if (evt.originalEvent) {
8491
+ delta = evt.originalEvent.deltaY || -evt.originalEvent.wheelDelta || evt.originalEvent.detail;
8492
+ }
8493
+ if (delta != null) {
8494
+ evt.preventDefault();
8495
+ if (evt.type === 'DOMMouseScroll') {
8496
+ delta = delta * 40;
8497
+ }
8498
+ return this.search_results.scrollTop(delta + this.search_results.scrollTop());
8499
+ }
8500
+ };
8501
+
8502
+ Chosen.prototype.blur_test = function(evt) {
8503
+ if (!this.active_field && this.container.hasClass("chosen-container-active")) {
8504
+ return this.close_field();
8505
+ }
8506
+ };
8507
+
8508
+ Chosen.prototype.close_field = function() {
8509
+ $(this.container[0].ownerDocument).off("click.chosen", this.click_test_action);
8510
+ this.active_field = false;
8511
+ this.results_hide();
8512
+ this.container.removeClass("chosen-container-active");
8513
+ this.clear_backstroke();
8514
+ this.show_search_field_default();
8515
+ this.search_field_scale();
8516
+ return this.search_field.blur();
8517
+ };
8518
+
8519
+ Chosen.prototype.activate_field = function() {
8520
+ if (this.is_disabled) {
8521
+ return;
8522
+ }
8523
+ this.container.addClass("chosen-container-active");
8524
+ this.active_field = true;
8525
+ this.search_field.val(this.search_field.val());
8526
+ return this.search_field.focus();
8527
+ };
8528
+
8529
+ Chosen.prototype.test_active_click = function(evt) {
8530
+ var active_container;
8531
+ active_container = $(evt.target).closest('.chosen-container');
8532
+ if (active_container.length && this.container[0] === active_container[0]) {
8533
+ return this.active_field = true;
8534
+ } else {
8535
+ return this.close_field();
8536
+ }
8537
+ };
8538
+
8539
+ Chosen.prototype.results_build = function() {
8540
+ this.parsing = true;
8541
+ this.selected_option_count = null;
8542
+ this.results_data = SelectParser.select_to_array(this.form_field);
8543
+ if (this.is_multiple) {
8544
+ this.search_choices.find("li.search-choice").remove();
8545
+ } else {
8546
+ this.single_set_selected_text();
8547
+ if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {
8548
+ this.search_field[0].readOnly = true;
8549
+ this.container.addClass("chosen-container-single-nosearch");
8550
+ } else {
8551
+ this.search_field[0].readOnly = false;
8552
+ this.container.removeClass("chosen-container-single-nosearch");
8553
+ }
8554
+ }
8555
+ this.update_results_content(this.results_option_build({
8556
+ first: true
8557
+ }));
8558
+ this.search_field_disabled();
8559
+ this.show_search_field_default();
8560
+ this.search_field_scale();
8561
+ return this.parsing = false;
8562
+ };
8563
+
8564
+ Chosen.prototype.result_do_highlight = function(el) {
8565
+ var high_bottom, high_top, maxHeight, visible_bottom, visible_top;
8566
+ if (el.length) {
8567
+ this.result_clear_highlight();
8568
+ this.result_highlight = el;
8569
+ this.result_highlight.addClass("highlighted");
8570
+ maxHeight = parseInt(this.search_results.css("maxHeight"), 10);
8571
+ visible_top = this.search_results.scrollTop();
8572
+ visible_bottom = maxHeight + visible_top;
8573
+ high_top = this.result_highlight.position().top + this.search_results.scrollTop();
8574
+ high_bottom = high_top + this.result_highlight.outerHeight();
8575
+ if (high_bottom >= visible_bottom) {
8576
+ return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0);
8577
+ } else if (high_top < visible_top) {
8578
+ return this.search_results.scrollTop(high_top);
8579
+ }
8580
+ }
8581
+ };
8582
+
8583
+ Chosen.prototype.result_clear_highlight = function() {
8584
+ if (this.result_highlight) {
8585
+ this.result_highlight.removeClass("highlighted");
8586
+ }
8587
+ return this.result_highlight = null;
8588
+ };
8589
+
8590
+ Chosen.prototype.results_show = function() {
8591
+ if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
8592
+ this.form_field_jq.trigger("chosen:maxselected", {
8593
+ chosen: this
8594
+ });
8595
+ return false;
8596
+ }
8597
+ this.container.addClass("chosen-with-drop");
8598
+ this.results_showing = true;
8599
+ this.search_field.focus();
8600
+ this.search_field.val(this.get_search_field_value());
8601
+ this.winnow_results();
8602
+ return this.form_field_jq.trigger("chosen:showing_dropdown", {
8603
+ chosen: this
8604
+ });
8605
+ };
8606
+
8607
+ Chosen.prototype.update_results_content = function(content) {
8608
+ return this.search_results.html(content);
8609
+ };
8610
+
8611
+ Chosen.prototype.results_hide = function() {
8612
+ if (this.results_showing) {
8613
+ this.result_clear_highlight();
8614
+ this.container.removeClass("chosen-with-drop");
8615
+ this.form_field_jq.trigger("chosen:hiding_dropdown", {
8616
+ chosen: this
8617
+ });
8618
+ }
8619
+ return this.results_showing = false;
8620
+ };
8621
+
8622
+ Chosen.prototype.set_tab_index = function(el) {
8623
+ var ti;
8624
+ if (this.form_field.tabIndex) {
8625
+ ti = this.form_field.tabIndex;
8626
+ this.form_field.tabIndex = -1;
8627
+ return this.search_field[0].tabIndex = ti;
8628
+ }
8629
+ };
8630
+
8631
+ Chosen.prototype.set_label_behavior = function() {
8632
+ this.form_field_label = this.form_field_jq.parents("label");
8633
+ if (!this.form_field_label.length && this.form_field.id.length) {
8634
+ this.form_field_label = $("label[for='" + this.form_field.id + "']");
8635
+ }
8636
+ if (this.form_field_label.length > 0) {
8637
+ return this.form_field_label.on('click.chosen', this.label_click_handler);
8638
+ }
8639
+ };
8640
+
8641
+ Chosen.prototype.show_search_field_default = function() {
8642
+ if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {
8643
+ this.search_field.val(this.default_text);
8644
+ return this.search_field.addClass("default");
8645
+ } else {
8646
+ this.search_field.val("");
8647
+ return this.search_field.removeClass("default");
8648
+ }
8649
+ };
8650
+
8651
+ Chosen.prototype.search_results_mouseup = function(evt) {
8652
+ var target;
8653
+ target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
8654
+ if (target.length) {
8655
+ this.result_highlight = target;
8656
+ this.result_select(evt);
8657
+ return this.search_field.focus();
8658
+ }
8659
+ };
8660
+
8661
+ Chosen.prototype.search_results_mouseover = function(evt) {
8662
+ var target;
8663
+ target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
8664
+ if (target) {
8665
+ return this.result_do_highlight(target);
8666
+ }
8667
+ };
8668
+
8669
+ Chosen.prototype.search_results_mouseout = function(evt) {
8670
+ if ($(evt.target).hasClass("active-result") || $(evt.target).parents('.active-result').first()) {
8671
+ return this.result_clear_highlight();
8672
+ }
8673
+ };
8674
+
8675
+ Chosen.prototype.choice_build = function(item) {
8676
+ var choice, close_link;
8677
+ choice = $('<li />', {
8678
+ "class": "search-choice"
8679
+ }).html("<span>" + (this.choice_label(item)) + "</span>");
8680
+ if (item.disabled) {
8681
+ choice.addClass('search-choice-disabled');
8682
+ } else {
8683
+ close_link = $('<a />', {
8684
+ "class": 'search-choice-close',
8685
+ 'data-option-array-index': item.array_index
8686
+ });
8687
+ close_link.on('click.chosen', (function(_this) {
8688
+ return function(evt) {
8689
+ return _this.choice_destroy_link_click(evt);
8690
+ };
8691
+ })(this));
8692
+ choice.append(close_link);
8693
+ }
8694
+ return this.search_container.before(choice);
8695
+ };
8696
+
8697
+ Chosen.prototype.choice_destroy_link_click = function(evt) {
8698
+ evt.preventDefault();
8699
+ evt.stopPropagation();
8700
+ if (!this.is_disabled) {
8701
+ return this.choice_destroy($(evt.target));
8702
+ }
8703
+ };
8704
+
8705
+ Chosen.prototype.choice_destroy = function(link) {
8706
+ if (this.result_deselect(link[0].getAttribute("data-option-array-index"))) {
8707
+ if (this.active_field) {
8708
+ this.search_field.focus();
8709
+ } else {
8710
+ this.show_search_field_default();
8711
+ }
8712
+ if (this.is_multiple && this.choices_count() > 0 && this.get_search_field_value().length < 1) {
8713
+ this.results_hide();
8714
+ }
8715
+ link.parents('li').first().remove();
8716
+ return this.search_field_scale();
8717
+ }
8718
+ };
8719
+
8720
+ Chosen.prototype.results_reset = function() {
8721
+ this.reset_single_select_options();
8722
+ this.form_field.options[0].selected = true;
8723
+ this.single_set_selected_text();
8724
+ this.show_search_field_default();
8725
+ this.results_reset_cleanup();
8726
+ this.trigger_form_field_change();
8727
+ if (this.active_field) {
8728
+ return this.results_hide();
8729
+ }
8730
+ };
8731
+
8732
+ Chosen.prototype.results_reset_cleanup = function() {
8733
+ this.current_selectedIndex = this.form_field.selectedIndex;
8734
+ return this.selected_item.find("abbr").remove();
8735
+ };
8736
+
8737
+ Chosen.prototype.result_select = function(evt) {
8738
+ var high, item;
8739
+ if (this.result_highlight) {
8740
+ high = this.result_highlight;
8741
+ this.result_clear_highlight();
8742
+ if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
8743
+ this.form_field_jq.trigger("chosen:maxselected", {
8744
+ chosen: this
8745
+ });
8746
+ return false;
8747
+ }
8748
+ if (this.is_multiple) {
8749
+ high.removeClass("active-result");
8750
+ } else {
8751
+ this.reset_single_select_options();
8752
+ }
8753
+ high.addClass("result-selected");
8754
+ item = this.results_data[high[0].getAttribute("data-option-array-index")];
8755
+ item.selected = true;
8756
+ this.form_field.options[item.options_index].selected = true;
8757
+ this.selected_option_count = null;
8758
+ if (this.is_multiple) {
8759
+ this.choice_build(item);
8760
+ } else {
8761
+ this.single_set_selected_text(this.choice_label(item));
8762
+ }
8763
+ if (this.is_multiple && (!this.hide_results_on_select || (evt.metaKey || evt.ctrlKey))) {
8764
+ if (evt.metaKey || evt.ctrlKey) {
8765
+ this.winnow_results({
8766
+ skip_highlight: true
8767
+ });
8768
+ } else {
8769
+ this.search_field.val("");
8770
+ this.winnow_results();
8771
+ }
8772
+ } else {
8773
+ this.results_hide();
8774
+ this.show_search_field_default();
8775
+ }
8776
+ if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {
8777
+ this.trigger_form_field_change({
8778
+ selected: this.form_field.options[item.options_index].value
8779
+ });
8780
+ }
8781
+ this.current_selectedIndex = this.form_field.selectedIndex;
8782
+ evt.preventDefault();
8783
+ return this.search_field_scale();
8784
+ }
8785
+ };
8786
+
8787
+ Chosen.prototype.single_set_selected_text = function(text) {
8788
+ if (text == null) {
8789
+ text = this.default_text;
8790
+ }
8791
+ if (text === this.default_text) {
8792
+ this.selected_item.addClass("chosen-default");
8793
+ } else {
8794
+ this.single_deselect_control_build();
8795
+ this.selected_item.removeClass("chosen-default");
8796
+ }
8797
+ return this.selected_item.find("span").html(text);
8798
+ };
8799
+
8800
+ Chosen.prototype.result_deselect = function(pos) {
8801
+ var result_data;
8802
+ result_data = this.results_data[pos];
8803
+ if (!this.form_field.options[result_data.options_index].disabled) {
8804
+ result_data.selected = false;
8805
+ this.form_field.options[result_data.options_index].selected = false;
8806
+ this.selected_option_count = null;
8807
+ this.result_clear_highlight();
8808
+ if (this.results_showing) {
8809
+ this.winnow_results();
8810
+ }
8811
+ this.trigger_form_field_change({
8812
+ deselected: this.form_field.options[result_data.options_index].value
8813
+ });
8814
+ this.search_field_scale();
8815
+ return true;
8816
+ } else {
8817
+ return false;
8818
+ }
8819
+ };
8820
+
8821
+ Chosen.prototype.single_deselect_control_build = function() {
8822
+ if (!this.allow_single_deselect) {
8823
+ return;
8824
+ }
8825
+ if (!this.selected_item.find("abbr").length) {
8826
+ this.selected_item.find("span").first().after("<abbr class=\"search-choice-close\"></abbr>");
8827
+ }
8828
+ return this.selected_item.addClass("chosen-single-with-deselect");
8829
+ };
8830
+
8831
+ Chosen.prototype.get_search_field_value = function() {
8832
+ return this.search_field.val();
8833
+ };
8834
+
8835
+ Chosen.prototype.get_search_text = function() {
8836
+ return $.trim(this.get_search_field_value());
8837
+ };
8838
+
8839
+ Chosen.prototype.escape_html = function(text) {
8840
+ return $('<div/>').text(text).html();
8841
+ };
8842
+
8843
+ Chosen.prototype.winnow_results_set_highlight = function() {
8844
+ var do_high, selected_results;
8845
+ selected_results = !this.is_multiple ? this.search_results.find(".result-selected.active-result") : [];
8846
+ do_high = selected_results.length ? selected_results.first() : this.search_results.find(".active-result").first();
8847
+ if (do_high != null) {
8848
+ return this.result_do_highlight(do_high);
8849
+ }
8850
+ };
8851
+
8852
+ Chosen.prototype.no_results = function(terms) {
8853
+ var no_results_html;
8854
+ no_results_html = this.get_no_results_html(terms);
8855
+ this.search_results.append(no_results_html);
8856
+ return this.form_field_jq.trigger("chosen:no_results", {
8857
+ chosen: this
8858
+ });
8859
+ };
8860
+
8861
+ Chosen.prototype.no_results_clear = function() {
8862
+ return this.search_results.find(".no-results").remove();
8863
+ };
8864
+
8865
+ Chosen.prototype.keydown_arrow = function() {
8866
+ var next_sib;
8867
+ if (this.results_showing && this.result_highlight) {
8868
+ next_sib = this.result_highlight.nextAll("li.active-result").first();
8869
+ if (next_sib) {
8870
+ return this.result_do_highlight(next_sib);
8871
+ }
8872
+ } else {
8873
+ return this.results_show();
8874
+ }
8875
+ };
8876
+
8877
+ Chosen.prototype.keyup_arrow = function() {
8878
+ var prev_sibs;
8879
+ if (!this.results_showing && !this.is_multiple) {
8880
+ return this.results_show();
8881
+ } else if (this.result_highlight) {
8882
+ prev_sibs = this.result_highlight.prevAll("li.active-result");
8883
+ if (prev_sibs.length) {
8884
+ return this.result_do_highlight(prev_sibs.first());
8885
+ } else {
8886
+ if (this.choices_count() > 0) {
8887
+ this.results_hide();
8888
+ }
8889
+ return this.result_clear_highlight();
8890
+ }
8891
+ }
8892
+ };
8893
+
8894
+ Chosen.prototype.keydown_backstroke = function() {
8895
+ var next_available_destroy;
8896
+ if (this.pending_backstroke) {
8897
+ this.choice_destroy(this.pending_backstroke.find("a").first());
8898
+ return this.clear_backstroke();
8899
+ } else {
8900
+ next_available_destroy = this.search_container.siblings("li.search-choice").last();
8901
+ if (next_available_destroy.length && !next_available_destroy.hasClass("search-choice-disabled")) {
8902
+ this.pending_backstroke = next_available_destroy;
8903
+ if (this.single_backstroke_delete) {
8904
+ return this.keydown_backstroke();
8905
+ } else {
8906
+ return this.pending_backstroke.addClass("search-choice-focus");
8907
+ }
8908
+ }
8909
+ }
8910
+ };
8911
+
8912
+ Chosen.prototype.clear_backstroke = function() {
8913
+ if (this.pending_backstroke) {
8914
+ this.pending_backstroke.removeClass("search-choice-focus");
8915
+ }
8916
+ return this.pending_backstroke = null;
8917
+ };
8918
+
8919
+ Chosen.prototype.search_field_scale = function() {
8920
+ var div, i, len, style, style_block, styles, width;
8921
+ if (!this.is_multiple) {
8922
+ return;
8923
+ }
8924
+ style_block = {
8925
+ position: 'absolute',
8926
+ left: '-1000px',
8927
+ top: '-1000px',
8928
+ display: 'none',
8929
+ whiteSpace: 'pre'
8930
+ };
8931
+ styles = ['fontSize', 'fontStyle', 'fontWeight', 'fontFamily', 'lineHeight', 'textTransform', 'letterSpacing'];
8932
+ for (i = 0, len = styles.length; i < len; i++) {
8933
+ style = styles[i];
8934
+ style_block[style] = this.search_field.css(style);
8935
+ }
8936
+ div = $('<div />').css(style_block);
8937
+ div.text(this.get_search_field_value());
8938
+ $('body').append(div);
8939
+ width = div.width() + 25;
8940
+ div.remove();
8941
+ if (this.container.is(':visible')) {
8942
+ width = Math.min(this.container.outerWidth() - 10, width);
8943
+ }
8944
+ return this.search_field.width(width);
8945
+ };
8946
+
8947
+ Chosen.prototype.trigger_form_field_change = function(extra) {
8948
+ this.form_field_jq.trigger("input", extra);
8949
+ return this.form_field_jq.trigger("change", extra);
8950
+ };
8951
+
8952
+ return Chosen;
8953
+
8954
+ })(AbstractChosen);
8955
+
8956
+ }).call(this);
8957
+
8958
+
8959
+ /***/ }),
8960
  /* 14 */,
8961
+ /* 15 */,
8962
+ /* 16 */
8963
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8964
 
8965
  "use strict";
8966
  __webpack_require__.r(__webpack_exports__);
8967
 
8968
  // EXTERNAL MODULE: ./src/sass/admin/dashboard.scss
8969
+ var dashboard = __webpack_require__(18);
8970
 
8971
  // CONCATENATED MODULE: ./src/js/admin/components/Debug.js
8972
 
9195
  this.class = this.data.class;
9196
  }
9197
 
9198
+ if(typeof this.data.video !== 'undefined') {
9199
+ this.class += ' has-video';
9200
+ }
9201
+
9202
+
9203
  // Write modal
9204
  this.render();
9205
  }
9221
  // Add text body
9222
  modalBody.appendChild(this.modalBody());
9223
 
9224
+ if(typeof this.data.video !== 'undefined') {
9225
+ // Add clear both
9226
+ modalBody.appendChild(this.clearBoth());
9227
+ }
9228
+
9229
  // Add footer
9230
  modalBody.appendChild(this.modalFooter());
9231
 
9233
  this.element.appendChild(modalBody);
9234
 
9235
  document.body.appendChild(this.element);
9236
+
9237
  }
9238
 
9239
  modalHeader()
9250
  let closeButton = document.createElement("a");
9251
  closeButton.className = "fs-close";
9252
  closeButton.href = "javascript:void(0)";
9253
+ closeButton.innerHTML = "<i class=\"dashicons dashicons-no\" title=\""+ window.Buttonizer.translate('modal.dismiss') +"\"></i>";
9254
 
9255
  closeButton.addEventListener("click", () => {
9256
  this.closeDialog();
9265
  // Modal body
9266
  modalBody()
9267
  {
9268
+ let container = document.createElement('div');
9269
+
9270
  let body = document.createElement("div");
9271
  body.className = "fs-modal-body";
9272
 
9282
 
9283
  body.appendChild(panel);
9284
 
9285
+ if(typeof this.data.video !== 'undefined') {
9286
+ container.appendChild(body)
9287
+ container.appendChild(this.video());
9288
+
9289
+ return container;
9290
+ }
9291
+
9292
  return body;
9293
  }
9294
 
9341
  this.onClose();
9342
  this.element.remove();
9343
  }
9344
+
9345
+ // Video
9346
+ video()
9347
+ {
9348
+ let body2 = document.createElement("div");
9349
+ body2.className = "fs-modal-body fs-modal-video";
9350
+
9351
+ let panel2 = document.createElement("div");
9352
+ panel2.className = "fs-modal-panel active";
9353
+
9354
+ let iframe = document.createElement("iframe");
9355
+ iframe.width = '100%';
9356
+ iframe.style.maxWidth = '560px';
9357
+ iframe.height = '315';
9358
+ iframe.src = `https://www.youtube.com/embed/${this.data.video}?&autoplay=1`;
9359
+ iframe.frameBorder = '0';
9360
+ iframe.allow = 'accelerometer';
9361
+ iframe.setAttribute('autoplay', '');
9362
+ iframe.setAttribute('encrypted-media', '');
9363
+ iframe.setAttribute('gyroscope', '');
9364
+ iframe.setAttribute('picture-in-picture', '');
9365
+ iframe.setAttribute('allowfullscreen', '');
9366
+
9367
+ panel2.appendChild(iframe);
9368
+ body2.appendChild(panel2);
9369
+
9370
+ return body2;
9371
+ }
9372
+
9373
+ // Clear both div
9374
+ clearBoth()
9375
+ {
9376
+ let clear = document.createElement('div');
9377
+ clear.style.clear = 'both';
9378
+
9379
+ return clear;
9380
+ }
9381
  }
9382
 
9383
  /* harmony default export */ var Modal = (Modal_Index);
9508
  return this.table;
9509
  }
9510
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9511
  // CONCATENATED MODULE: ./src/js/admin/ui/Inputs/FormDropdown.js
9512
  /**
9513
  * Buttonizer 2.0
9578
  this.callback = callback;
9579
  }
9580
  }
9581
+ // CONCATENATED MODULE: ./src/js/admin/components/Settings/Window/Filters/PageRuleSelect.js
9582
 
9583
 
9584
 
9585
+
9586
+ class PageRuleSelect_PageRuleSelect
9587
  {
 
 
 
 
9588
  constructor(windowObject)
9589
  {
9590
  this.windowObject = windowObject;
9595
  this.dropdown.className = "window-select";
9596
 
9597
 
 
9598
  }
9599
 
9600
+ // Build selector
9601
  build()
9602
  {
9603
  let holder = document.createElement("div");
9611
  // Create table
9612
  let table = new Table('table-relative');
9613
 
9614
+ table.addColumnHTML("<h2>"+ window.Buttonizer.translate('page_rules.single_name') + (!window.Buttonizer.hasPremium() ? ' <span class="buttonizer-premium premium-right">PRO</span>' : '') +"</h2>", "table-align-top", "");
9615
  table.addColumn(holder, "", "370");
9616
  table.newRow();
9617
 
9627
  {
9628
 
9629
 
9630
+ this.dropdown.innerHTML = '<option>'+ window.Buttonizer.translate('page_rules.input_any_page') +'</option>';
9631
  this.dropdown.readonly = true;
9632
+ this.dropdown.addEventListener("click", () => window.Buttonizer.showPremiumPopup(window.Buttonizer.translate('page_rules.pro_description'), 'SQnAhyBWLWg'));
9633
  }
9634
 
9635
  /**
9636
+ * Decide what will happen when a page rule is triggered
9637
  */
9638
 
9639
  }
9640
+ // CONCATENATED MODULE: ./src/js/admin/components/Settings/Window/Filters/TimeSchedule.js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9641
 
 
 
9642
 
 
 
9643
 
 
 
 
 
 
 
9644
 
9645
+ class TimeSchedule_TimeSchedule
9646
+ {
9647
  /**
9648
+ *
9649
+ * @param {Object} windowObject
9650
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9651
  constructor(windowObject)
9652
  {
9653
  this.windowObject = windowObject;
9658
  this.dropdown.className = "window-select";
9659
 
9660
 
9661
+
9662
  }
9663
 
 
9664
  build()
9665
  {
9666
  let holder = document.createElement("div");
9674
  // Create table
9675
  let table = new Table('table-relative');
9676
 
9677
+ table.addColumnHTML("<h2>" +window.Buttonizer.translate('time_schedules.single_name') + (!window.Buttonizer.hasPremium() ? ' <span class="buttonizer-premium premium-right">PRO</span>' : '') +"</h2>", "table-align-top", '');
9678
  table.addColumn(holder, "", "370");
9679
  table.newRow();
9680
 
9690
  {
9691
 
9692
 
9693
+ this.dropdown.innerHTML = `<option>Show on all times</option>`;
9694
  this.dropdown.readonly = true;
9695
+ this.dropdown.addEventListener("click", () => window.Buttonizer.showPremiumPopup(window.Buttonizer.translate('time_schedules.pro_description'), "C-B9ITdY6A4"));
9696
  }
9697
 
9698
  /**
9699
+ * Decide what will happen when a time schedule is triggered
9700
  */
9701
 
9702
  }
9703
+ // CONCATENATED MODULE: ./src/js/admin/components/Settings/Window/ShowAfterTimeout.js
9704
 
9705
 
9706
 
9717
 
9718
  if(!window.Buttonizer.hasPremium()) {
9719
  build.addEventListener('click', () => {
9720
+ window.Buttonizer.showPremiumPopup("With this setting, you can make your button appear/hide after certain amount of time.", 'V4lvZ15ULWw');
9721
  });
9722
  }
9723
 
9771
 
9772
 
9773
  }
9774
+ // CONCATENATED MODULE: ./src/js/admin/components/Settings/Window/ShowOnScroll.js
9775
 
9776
 
9777
 
9800
 
9801
  if(!window.Buttonizer.hasPremium()) {
9802
  build.addEventListener('click', () => {
9803
+ window.Buttonizer.showPremiumPopup("With this setting, you can make your button appear/hide after scrolling for a certain amount.", 'hh5LBF4C1pg');
9804
  });
9805
  }
9806
 
10150
  }
10151
  }
10152
 
10153
+ // CONCATENATED MODULE: ./src/js/admin/components/Settings/Window/CustomId.js
10154
 
10155
 
10156
+ class CustomId_CustomID
10157
+ {
10158
+ constructor(windowObject)
10159
+ {
10160
+ this.windowObject = windowObject;
10161
+ }
10162
+
10163
+ build()
10164
+ {
10165
+ let input = document.createElement("input");
10166
+ input.className = "window-select";
10167
+ input.placeholder = window.Buttonizer.translate('settings.custom_id.placeholder');
10168
+
10169
+
10170
+
10171
+
10172
+ // Table
10173
+ let customId = new Table('table-relative');
10174
+ customId.addColumnHTML("<h2>"+ window.Buttonizer.translate('settings.custom_id.title') +" <span class='buttonizer-premium premium-right'>PRO</span></h2>");
10175
+ input.addEventListener("mousedown", () => window.Buttonizer.showPremiumPopup(window.Buttonizer.translate('settings.custom_id.pro_description')));
10176
+ customId.addColumn(input, "", "370");
10177
+
10178
+ return customId.build();
10179
+ }
10180
+ }
10181
+ // CONCATENATED MODULE: ./src/js/admin/components/Settings/Window/CustomClass.js
10182
+
10183
+
10184
+ class CustomClass_CustomClass
10185
+ {
10186
+ constructor(windowObject)
10187
+ {
10188
+ this.windowObject = windowObject;
10189
+ }
10190
+
10191
+ build()
10192
+ {
10193
+ let input = document.createElement("input");
10194
+ input.className = "window-select";
10195
+ input.placeholder = window.Buttonizer.translate('settings.custom_class.placeholder');
10196
+
10197
+
10198
+
10199
+
10200
+ // Table
10201
+ let customClass = new Table("table-relative");
10202
+ customClass.addColumnHTML("<h2>"+ window.Buttonizer.translate('settings.custom_class.title') +" <span class='buttonizer-premium premium-right'>PRO</span></h2>","table-align-top", "");
10203
+ input.addEventListener("mousedown", () => window.Buttonizer.showPremiumPopup(window.Buttonizer.translate('settings.custom_class.pro_description')));
10204
+ customClass.addColumn(input, "", "370");
10205
+
10206
+ return customClass.build();
10207
+ }
10208
+ }
10209
+ // CONCATENATED MODULE: ./src/js/admin/ui/Button/ButtonWindow.js
10210
+
10211
 
10212
 
10213
 
10220
  class ButtonWindow_ButtonWindow extends SettingsWindow
10221
  {
10222
  constructor(button) {
10223
+ super(button, window.Buttonizer.translate('utils.advanced_settings') + " - " + button.data.name + (!window.Buttonizer.hasPremium() ? ' (premium)' : ''));
10224
  }
10225
 
10226
  render()
10245
  filter.appendChild(this.pageRuleSelect.build());
10246
 
10247
  // Add
10248
+ super.addItem(window.Buttonizer.translate('settings.button_group_window.filters'), filter);
10249
  }
10250
 
10251
  styling()
10255
  // Button custom class
10256
  filter.appendChild(new CustomClass_CustomClass(this).build());
10257
 
 
10258
  // Button custom id
10259
+ filter.appendChild(new CustomId_CustomID(this).build());
10260
 
10261
  // Add
10262
+ super.addItem(window.Buttonizer.translate('settings.button_group_window.styling'), filter);
10263
  }
10264
 
10265
  delay()
12319
  });
12320
 
12321
  // Menu items
12322
+ buttonMenu.appendChild(this.createQuickMenuButton('fas fa-wrench', window.Buttonizer.translate('common.settings'), () => this.revealSettings(), 'settings'));
12323
+ buttonMenu.appendChild(this.createQuickMenuButton('fas fa-cog', window.Buttonizer.translate('utils.advanced_settings'), () => this.buttonObject.windowObject.toggle(), !window.Buttonizer.hasPremium() ? 'buttonizer-premium-gray-out' : ''));
12324
+ buttonMenu.appendChild(this.createQuickMenuButton('fas fa-pencil-alt', window.Buttonizer.translate('utils.rename'), () => this.buttonRename(), ''));
12325
+ buttonMenu.appendChild(this.createQuickMenuButton('far fa-copy', window.Buttonizer.translate('utils.duplicate'), () => this.buttonDuplicate(), ''));
12326
+ buttonMenu.appendChild(this.createQuickMenuButton('far fa-trash-alt', window.Buttonizer.translate('utils.delete'), () => this.buttonDelete(), 'delete'));
12327
 
12328
  this.manageButtonMenu = buttonMenu;
12329
  return buttonMenu;
12433
  {
12434
  // NOPE!
12435
  new Modal({
12436
+ title: window.Buttonizer.translate('bar.buttons.delete_button.window_title_button'),
12437
+ content: "<p>"+ window.Buttonizer.translate('bar.buttons.delete_button.cannot_delete') +"</p>",
12438
 
12439
  buttons: [{
12440
+ text: window.Buttonizer.translate('modal.close'),
12441
  close: true,
12442
  focus: true,
12443
  confirm: true
12447
  }
12448
 
12449
  new Modal({
12450
+ title: window.Buttonizer.translate('bar.buttons.delete_button.window_title_button'),
12451
+ content: "<p>"+ window.Buttonizer.translate('bar.buttons.delete_button.question_remove_button').format(this.buttonObject.data.name) +"</p>",
12452
 
12453
  onConfirm: () =>
12454
  {
12456
  },
12457
 
12458
  buttons: [{
12459
+ text: window.Buttonizer.translate('modal.changed_my_mind'),
12460
  close: true,
12461
  focus: true
12462
  }, {
12463
+ text: window.Buttonizer.translate('utils.delete'),
12464
  confirm: true
12465
  }]
12466
  });
12630
 
12631
 
12632
  /* harmony default export */ var Button_ButtonHolder = (ButtonHolder_ButtonHolder);
12633
+ // CONCATENATED MODULE: ./src/js/admin/ui/Inputs/FormToggle.js
12634
+ /**
12635
+ * Buttonizer 2.0
12636
+ *
12637
+ * This will create a switch input (on or off)
12638
+ *
12639
+ * Result value: true or false
12640
+ */
12641
+
12642
+ class FormToggle
12643
+ {
12644
+ /**
12645
+ * FormBoolean constructor
12646
+ *
12647
+ * @param constructData
12648
+ */
12649
+ constructor(constructData)
12650
+ {
12651
+ // Is the switch checked?
12652
+ this.state = (typeof constructData.state === typeof undefined ? false : (constructData.state == 'true'));
12653
+
12654
+ // What must be executed when the switch changed?
12655
+ this.onChange = (typeof constructData.onChange === typeof undefined ? function () { console.log("FormBoolean: No binding. Use FormBoolean.onChange()") } : constructData.onChange);
12656
+
12657
+ // Is the switch disabled?
12658
+ this.disabled = (typeof constructData.disabled === typeof undefined ? false : constructData.disabled);
12659
+
12660
+ // Is the switch visible?
12661
+ this.visible = (typeof constructData.visible === typeof undefined ? true : constructData.visible);
12662
+
12663
+ // New element
12664
+ this.element = HTMLElement;
12665
+ }
12666
+
12667
+ /**
12668
+ * Building element
12669
+ */
12670
+ build()
12671
+ {
12672
+ // New switch element
12673
+ this.element = document.createElement("a");
12674
+ this.element.href = "javascript:void(0)";
12675
+ this.element.className = "buttonizer-boolean " + (this.state === true ? 'boolean-selected' : '');
12676
+ this.element.addEventListener("click", () => this.toggle());
12677
+
12678
+ // Switch circle
12679
+ let circle = document.createElement("div");
12680
+ circle.className = "buttonizer-boolean-circle";
12681
+
12682
+ this.element.appendChild(circle);
12683
+
12684
+ return this.element;
12685
+ }
12686
+
12687
+ hide()
12688
+ {
12689
+ this.element.style.display = "none";
12690
+ }
12691
+
12692
+ show()
12693
+ {
12694
+ this.element.style.display = "block";
12695
+ }
12696
+
12697
+ onToggle(callback)
12698
+ {
12699
+ this.onChange = callback;
12700
+ }
12701
+
12702
+ toggle()
12703
+ {
12704
+ if(this.disabled)
12705
+ {
12706
+ console.log("Sorry, you're not able to edit this");
12707
+ return;
12708
+ }
12709
+
12710
+ // Toggle
12711
+ this.state = !this.state;
12712
+
12713
+ // Add or remove class
12714
+ if(this.state === true) {
12715
+ this.element.classList.add("boolean-selected");
12716
+ }else{
12717
+ this.element.classList.remove("boolean-selected");
12718
+ }
12719
+
12720
+ this.onChange(this.state);
12721
+ }
12722
+ }
12723
  // CONCATENATED MODULE: ./src/js/admin/ui/SettingHolder.js
12724
 
12725
  class SettingHolder
12759
  this.buttonAction = ButtonAction;
12760
  }
12761
 
12762
+ build(placeholder)
12763
  {
12764
  // Add input
12765
  let input = this.buttonAction.inputText();
12766
+ input.placeholder = placeholder === undefined ? "https://www.domain.ltd/page " : placeholder;
12767
  input.addEventListener("keyup", () => this.change(input.value));
12768
 
12769
  if(this.buttonAction.value !== "")
12802
 
12803
  if(!websiteUrlPattern.test(value) && (value.substring(0, 1) !== '?' && value.substring(0, 1) !== '#')) {
12804
  error =
12805
+ '<p>'+ window.Buttonizer.translate('settings.button_action.actions.url.invalid') +'</p>' +
12806
+ '<p>'+ window.Buttonizer.translate('settings.button_action.actions.url.invalid_tip') +'</p>';
12807
  }else if(value.indexOf('https://') === -1 && value.substring(0, 1) !== '#') {
12808
  error =
12809
+ '<p>'+ window.Buttonizer.translate('settings.button_action.actions.url.insecure') +'</p>' +
12810
+ '<p><a href="https://community.buttonizer.pro/knowledgebase/19" target="_blank" style="text-decoration: none;">More info &raquo;</a></p>';
12811
  }
12812
 
12813
  if(error === false) {
12818
  }
12819
  }
12820
  }
12821
+ // CONCATENATED MODULE: ./src/js/admin/ui/Button/ButtonOptions/ButtonAction/input.js
12822
+
12823
+
12824
+ class input_Input
12825
  {
12826
+ constructor(ButtonAction, numbersOnly = false)
 
12827
  {
12828
  this.buttonAction = ButtonAction;
12829
+ this.numbersOnly = numbersOnly;
12830
  }
12831
 
12832
+ build(placeholder)
12833
  {
12834
+ // Add container
12835
+ let container = document.createElement('div');
12836
+
12837
  // Add input
12838
  let input = this.buttonAction.inputText();
12839
+ input.placeholder = placeholder === undefined ? "Add text here" : placeholder;
12840
  input.addEventListener("keyup", () => this.change(input.value));
12841
 
12842
  if(this.buttonAction.value !== "")
12844
  input.value = this.buttonAction.value;
12845
  }
12846
 
12847
+ container.appendChild(input);
12848
+
12849
+ if(this.numbersOnly) {
12850
+ this.numbersOnlyField = document.createElement("div")
12851
+ this.numbersOnlyField.className = 'field-error';
12852
+ this.numbersOnlyField.innerHTML = window.Buttonizer.translate('warnings.only_numbers');
12853
+ this.numbersOnlyField.style.display = 'none';
12854
+
12855
+ container.appendChild(this.numbersOnlyField)
12856
+ }
12857
+
12858
+ return container;
12859
  }
12860
 
12861
  /**
12865
  */
12866
  change(value)
12867
  {
12868
+ if(this.numbersOnly) {
12869
+ if(isNaN(value)) {
12870
+ this.numbersOnlyField.style.display = 'block';
12871
+ }else{
12872
+ this.numbersOnlyField.style.display = 'none';
12873
+ }
12874
  }
12875
 
12876
  // Always do save the status
12877
  this.buttonAction.updateButtonActionValue(value);
12878
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12879
  }
12880
  // CONCATENATED MODULE: ./src/js/admin/ui/Button/ButtonOptions/ButtonAction/PhoneNumber.js
12881
  class PhoneNumber
12929
  value = value.replace(" ", "");
12930
 
12931
  if(!/^(?=.*\d)[\d ]+$/.test(value)) {
12932
+ error = '<p>'+ window.Buttonizer.translate('warnings.invalid_phone_number') +'</p>';
12933
  }
12934
 
12935
  if(error === false) {
12992
  value = value.replace(" ", "");
12993
 
12994
  if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,10})+$/.test(value)) {
12995
+ error = '<p>'+ window.Buttonizer.translate('warnings.invalid_email') +'</p>';
12996
  }
12997
 
12998
  if(error === false) {
13025
  select.className = "buttonizer-select-action";
13026
 
13027
  // Share on Facebook
13028
+ select.appendChild(this.add('facebook', window.Buttonizer.translate('settings.button_action.actions.share_page_on').format('Facebook')));
13029
 
13030
  // Twitter
13031
+ select.appendChild(this.add('twitter', window.Buttonizer.translate('settings.button_action.actions.share_page_on').format('Twitter')));
13032
 
13033
  // Whatsapp
13034
+ select.appendChild(this.add('whatsapp', window.Buttonizer.translate('settings.button_action.actions.share_page_on').format('Whatsapp')));
13035
 
13036
  // LinkedIn
13037
+ select.appendChild(this.add('linkedin', window.Buttonizer.translate('settings.button_action.actions.share_page_on').format('LinkedIn')));
13038
 
13039
  // Pinterest //James
13040
+ select.appendChild(this.add('pinterest', window.Buttonizer.translate('settings.button_action.actions.share_page_on').format('Pinterest')));
13041
 
13042
  // Mail Address
13043
+ select.appendChild(this.add('mail', window.Buttonizer.translate('settings.button_action.actions.share_page_via').format('email')));
13044
 
13045
  // Change
13046
  select.addEventListener("change", () => {
13115
  this.dropdown = document.createElement("select");
13116
  this.dropdown.style.width = '199px';
13117
  this.dropdown.className = "buttonizer-select-action";
13118
+
13119
+ // Common actions
13120
+ this.dropdown.appendChild(
13121
+ this.selectGroup(window.Buttonizer.translate('settings.button_action.actions.group_popular'),
13122
+ [
13123
+ {value: "url", text: "Website URL"},
13124
+ {value: "phone", text: window.Buttonizer.translate('settings.button_action.actions.phone_number') },
13125
+ {value: "mail", text: window.Buttonizer.translate('settings.button_action.actions.mail')},
13126
+ {value: "whatsapp", text: "WhatsApp chat"},
13127
+ {value: "backtotop", text: window.Buttonizer.translate('settings.button_action.actions.back_to_top')},
13128
+ {value: "gobackpage", text: window.Buttonizer.translate('settings.button_action.actions.go_back_one_page')},
13129
+ {value: "socialsharing", text: "Social Sharing"},
13130
+ {value: "javascript_pro", text: "Javascript function"},
13131
+ ]
13132
+ )
13133
+ );
13134
+
13135
+ // Click to chat
13136
+ this.dropdown.appendChild(
13137
+ this.selectGroup(window.Buttonizer.translate('settings.button_action.actions.group_chat'),
13138
+ [
13139
+ {value: "sms", text: "SMS"},
13140
+ {value: "messenger_chat", text: "Facebook Messenger Chat Widget"},
13141
+ {value: "messenger", text: "Facebook Messenger Link"},
13142
+ {value: "twitter_dm", text: "Twitter DM"},
13143
+ {value: "skype", text: "Skype"},
13144
+ {value: "snapchat", text: "Snapchat"},
13145
+ {value: "line", text: "LINE"},
13146
+ {value: "telegram", text: "Telegram"},
13147
+ {value: "wechat", text: "WeChat"},
13148
+ {value: "viber", text: "Viber"},
13149
+ ]
13150
+ )
13151
+ );
13152
+
13153
+ // Social media
13154
+ this.dropdown.appendChild(
13155
+ this.selectGroup(window.Buttonizer.translate('settings.button_action.actions.group_social_media'),
13156
+ [
13157
+ {value: "facebook", text: "Facebook"},
13158
+ {value: "twitter", text: "Twitter"},
13159
+ {value: "instagram", text: "Instagram"},
13160
+ {value: "linkedin", text: "LinkedIn"},
13161
+ {value: "vk", text: "VKontakte"},
13162
+ {value: "poptin", text: "Poptin"},
13163
+ {value: "waze", text: "Waze"},
13164
+ ]
13165
+ )
13166
+ );
13167
+
13168
+ // Popups
13169
+ this.dropdown.appendChild(
13170
+ this.selectGroup(window.Buttonizer.translate('settings.button_action.actions.group_popup'),
13171
+ [
13172
+ {value: "poptin", text: "Poptin"},
13173
+ {value: "elementor_popup", text: "Elementor Popup"},
13174
+ {value: "popup_maker", text: "Popup Maker"},
13175
+ ]
13176
+ )
13177
+ );
13178
 
13179
  let container = document.createElement("div");
13180
 
13181
+ index_all(container.appendChild(new SettingHolder("<label for='label-always-open'>"+ window.Buttonizer.translate('settings.button_action.title') +"</label>", this.dropdown).build()).firstChild.firstChild, {
13182
+ content: window.Buttonizer.translate('settings.button_action.description'),
13183
  animation: 'shift-away',
13184
  arrow: true,
13185
  hideOnClick: false
13190
 
13191
  this.changeForm(this.buttonSettingsObject.buttonObject.data.type);
13192
 
13193
+ jQuery(this.dropdown).chosen({
13194
+ placeholder_text_single: window.Buttonizer.translate('settings.button_action.select'),
13195
+ no_results_text: window.Buttonizer.translate('settings.button_action.search_not_found'),
13196
+ hide_results_on_select: false
13197
+ }).change(() => this.update(this.dropdown.value));
13198
  return container;
13199
  }
13200
 
13238
  if(!confirmed)
13239
  {
13240
  new Modal({
13241
+ title: "<i class='fas fa-exclamation window-icon'></i> " + window.Buttonizer.translate('settings.button_action.actions.javascript.warning_modal_title'),
13242
+ content: '<p>'+ window.Buttonizer.translate('settings.button_action.actions.javascript.warning_intro') +'</p><p>'+ window.Buttonizer.translate('settings.button_action.actions.javascript.warning_question') +'</p>',
13243
  class: 'warning-red',
13244
  buttons: [{
13245
+ text: window.Buttonizer.translate('modal.changed_my_mind'),
 
 
 
 
13246
  close: true,
13247
  focus: true,
13248
  cancel: true
13249
+ }, {
13250
+ text: window.Buttonizer.translate('modal.yes_please'),
13251
+ close: true,
13252
+ confirm: true
13253
  }],
13254
  onConfirm: () => {
13255
  this.value = '';
13308
  window.Buttonizer.buttonChanges = true;
13309
  });
13310
 
13311
+ if(value === "phone" || value === 'sms' || value === 'viber')
13312
  {
13313
  this.element.appendChild((new PhoneNumber(this)).build());
13314
+
13315
+ this.addKnowledgeBaseLink();
13316
  }
13317
  else if(value === "mail")
13318
  {
13322
  {
13323
  this.element.appendChild((new PhoneNumber(this)).build());
13324
 
13325
+ let infoText = document.createElement("p");
13326
+ infoText.innerHTML = window.Buttonizer.translate('settings.button_action.actions.whatsapp_info');
13327
 
13328
  this.element.appendChild(infoText);
13329
  }
13330
+ else if(value === "socialsharing")
13331
+ {
13332
+ this.element.appendChild((new SocialSharing(this)).build());
13333
+ }
13334
+
13335
+ else if(value === "backtotop" || value === "gobackpage")
13336
+ {
13337
+ return;
13338
+ }
13339
+
13340
+ /* NEW Social Media actions */
13341
+ else if(value === 'skype' || value === 'telegram' || value === 'twitter' || value === 'snapchat' || value === 'instagram' || value === 'vk')
13342
+ {
13343
+ this.element.appendChild((new input_Input(this)).build('Username'));
13344
+
13345
+ this.addKnowledgeBaseLink();
13346
+ }
13347
+ else if(value === 'twitter_dm')
13348
+ {
13349
+ this.element.appendChild((new input_Input(this, true)).build('Account ID'));
13350
+
13351
+ let info = document.createElement("p");
13352
+ info.innerHTML = 'When you want to use Twitter DM you will need to find your Twitter User ID and allow direct messages from anyone. To find your account ID <a href="https://tweeterid.com/" target="_blank">click here</a>. And to read more about how to allow direct messages from anyone, <a href="https://help.twitter.com/nl/using-twitter/direct-messages#receive" target="_blank">click here</a>.';
13353
+ this.element.appendChild(info);
13354
+ }
13355
+ else if(value === 'messenger') {
13356
+ this.element.appendChild((new Url(this)).build('https://m.me/YOUR-PAGE-NAME'));
13357
+
13358
+ this.addKnowledgeBaseLink();
13359
+
13360
+ }
13361
+ else if(value === 'messenger_chat') {
13362
+ this.element.appendChild((new input_Input(this)).build('Facebook page ID'));
13363
+
13364
+ let info = document.createElement("p");
13365
+ info.innerHTML = window.Buttonizer.translate('settings.button_action.actions.messenger_chat');
13366
+ this.element.appendChild(info);
13367
+
13368
+ this.addKnowledgeBaseLink(59, "Facebook Messenger Chat Widget");
13369
+ }
13370
+ else if(value === 'facebook') {
13371
+ this.element.appendChild((new input_Input(this)).build('Facebook username/page'));
13372
+
13373
+ this.addKnowledgeBaseLink();
13374
+ }
13375
+ else if(value === 'linkedin') {
13376
+ this.element.appendChild((new input_Input(this)).build('"company/COMPANY-NAME" or "in/USERNAME"'));
13377
+
13378
+ this.addKnowledgeBaseLink();
13379
+ }
13380
+ else if(value === 'line') {
13381
+ this.element.appendChild((new input_Input(this)).build('LINE_id'));
13382
+ }
13383
+ else if(value === 'wechat') {
13384
+ this.element.appendChild((new input_Input(this)).build('User ID'));
13385
+ }
13386
+ else if(value === 'waze') {
13387
+ this.element.appendChild((new Url(this)).build('https://www.waze.com/ul?q=Netherlands'));
13388
+ }
13389
+ else if(value === 'popup_maker') {
13390
+ this.element.appendChild((new input_Input(this)).build('URL trigger'));
13391
+ this.addKnowledgeBaseLink(57, "Popup maker");
13392
+ }
13393
+ else if(value === 'elementor_popup') {
13394
+ this.element.appendChild((new input_Input(this)).build('Trigger'));
13395
+ this.addKnowledgeBaseLink(57, "Elementor popup");
13396
  }
13397
+ else if(value === 'poptin') {
13398
+ this.element.appendChild((new Url(this)).build('https://app.popt.in/APIRequest/click/0c768294b0605'));
13399
 
13400
+ let info = document.createElement("p");
13401
+ info.innerHTML = window.Buttonizer.translate('settings.button_action.actions.poptin');
13402
+ this.element.appendChild(info);
13403
+ this.addKnowledgeBaseLink(57);
13404
  }
13405
+
13406
+ // Just use url
13407
  else{
13408
  this.element.appendChild((new Url(this)).build());
13409
+ index_all(this.element.appendChild(new SettingHolder("<label for='label-always-open'>"+ window.Buttonizer.translate('settings.open_new_tab.title') +":</label>", boolean.build(), 'is-boolean-only').build()).firstChild.firstChild, {
13410
+ content: window.Buttonizer.translate('settings.open_new_tab.description'),
13411
  animation: 'shift-away',
13412
  arrow: true,
13413
  hideOnClick: false
13414
  });
13415
+
13416
+ this.addKnowledgeBaseLink();
13417
  }
13418
  }
13419
 
13420
+ addKnowledgeBaseLink(permalink = '', name = '') {
13421
+ let link = document.createElement('a');
13422
+ link.className = 'info-link has-margin-everywhere';
13423
+ if(name === '') {
13424
+ link.innerHTML = window.Buttonizer.translate('utils.visit_knowledgebase');
13425
+ }else{
13426
+ link.innerHTML = window.Buttonizer.translate('utils.knowledge_link').format(name);
13427
+ }
13428
+ link.href = 'https://community.buttonizer.pro/knowledgebase' + (permalink === '' ? '' : '/' + permalink);
13429
+ link.target = '_blank'
13430
+ this.element.appendChild(link);
13431
+ }
13432
+
13433
  /**
13434
  * Default text box
13435
  *
13452
 
13453
  let error = document.createElement("div");
13454
  error.innerHTML = text;
13455
+ error.className = 'field-error-container';
 
 
 
 
13456
 
13457
  this.errorElement.appendChild(error);
13458
  }
13461
  {
13462
  this.errorElement.innerHTML = "";
13463
  }
13464
+
13465
+ selectGroup(label, option)
13466
+ {
13467
+ let optgroup = document.createElement('optgroup');
13468
+ optgroup.label = label;
13469
+
13470
+ for (let num of option) {
13471
+ optgroup.appendChild(this.add(num.value, num.text));
13472
+ }
13473
+
13474
+ return optgroup;
13475
+ }
13476
  }
13477
  // CONCATENATED MODULE: ./src/js/admin/components/Setting.js
13478
 
13629
  input.value = this.default;
13630
 
13631
  new Modal({
13632
+ title: window.Buttonizer.translate('errors.forms.only_numbers'),
13633
+ content: '<p>'+ window.Buttonizer.translate('errors.forms.only_numbers_info') +'</p>',
13634
  buttons: [{
13635
+ text: window.Buttonizer.translate('modal.close'),
13636
+ close: true,
13637
+ focus: true
13638
  }]
13639
  });
13640
  }
13804
  {
13805
  constructor(parent){
13806
  super({
13807
+ title: window.Buttonizer.translate('settings.label.title'),
13808
+ description: window.Buttonizer.translate('settings.label.description'),
13809
  wrap: true,
13810
  class: 'form-has-extra-fields',
13811
  content: [
13813
  parentObject: parent,
13814
  dataEntry: 'label',
13815
  default: parent.get('label'),
13816
+ placeholder: window.Buttonizer.translate('settings.label.placeholder')
13817
  })
13818
  ]
13819
  })
14680
  constructor(parent)
14681
  {
14682
  super({
14683
+ title: window.Buttonizer.translate('settings.icon_color.title'),
14684
+ description: window.Buttonizer.translate('settings.icon_color.description'),
14685
  rowName: 'icon-color',
14686
  parentObject: parent,
14687
  hidden: (window.Buttonizer.hasPremium() && parent.get('icon_is_image') == 'true'),
14689
  new Color_Color({
14690
  parentObject: parent,
14691
  dataEntry: 'icon_color',
14692
+ title: window.Buttonizer.translate('utils.base'),
14693
  default: '#FFFFFF',
14694
  width: 'space'
14695
  }),
14696
  new Color_Color({
14697
  parentObject: parent,
14698
  dataEntry: 'icon_color_interaction',
14699
+ title: window.Buttonizer.translate('utils.interaction'),
14700
  default: '#FFFFFF',
14701
  width: 'space'
14702
  })
14713
  constructor(parent)
14714
  {
14715
  super({
14716
+ title: window.Buttonizer.translate('settings.icon_size.title'),
14717
+ description: window.Buttonizer.translate('settings.icon_size.description'),
14718
  rowName: 'icon-size',
14719
  parentObject: parent,
14720
  hidden: (window.Buttonizer.hasPremium() && parent.get('icon_is_image') == 'true'),
14741
  constructor(parent)
14742
  {
14743
  super({
14744
+ title: window.Buttonizer.translate('settings.border_radius.title'),
14745
+ description: window.Buttonizer.translate('settings.border_radius.description'),
14746
  hidden: parent.type === 'button' ? parent.get('use_main_button_style') !== 'false' : false, // Only show on group side, or when use_main_button_style is disabled
14747
  rowName: 'border-radius',
14748
  parentObject: parent,
14768
  {
14769
  constructor(parent){
14770
  super({
14771
+ title: window.Buttonizer.translate('settings.font_size_border_radius.title'),
14772
+ description: window.Buttonizer.translate('settings.font_size_border_radius.description'),
14773
  content: [
14774
  new Input_Input({
14775
  title: 'px',
14940
  constructor(parent)
14941
  {
14942
  super({
14943
+ title: window.Buttonizer.translate('settings.show_mobile_desktop.title'),
14944
+ description: window.Buttonizer.translate('settings.show_mobile_desktop.description'),
14945
  content: [
14946
  new Checkbox({
14947
  parentObject: parent,
14948
  dataEntry: 'show_mobile',
14949
+ title: window.Buttonizer.translate('settings.show_mobile_desktop.mobile'),
14950
  default: true,
14951
  type: parent.type === 'button' ? 'button' : 'group',
14952
  }),
14953
  new Checkbox({
14954
  parentObject: parent,
14955
  dataEntry: 'show_desktop',
14956
+ title: window.Buttonizer.translate('settings.show_mobile_desktop.desktop'),
14957
  default: true,
14958
  type: parent.type === 'button' ? 'button' : 'group',
14959
  })
14970
  constructor(parent)
14971
  {
14972
  super({
14973
+ title: window.Buttonizer.translate('settings.background_color.title'),
14974
+ description: window.Buttonizer.translate('settings.background_color.description'),
14975
  hidden: parent.type === 'button' ? parent.get('use_main_button_style') !== 'false' : false, // Only show on group side, or when use_main_button_style is disabled
14976
  rowName: 'background-color',
14977
  parentObject: parent,
14979
  new Color_Color({
14980
  parentObject: parent,
14981
  dataEntry: 'background_color',
14982
+ title: window.Buttonizer.translate('utils.base'),
14983
  default: '#f08419'
14984
  }),
14985
  new Color_Color({
14986
  parentObject: parent,
14987
  dataEntry: 'background_color_interaction',
14988
+ title: window.Buttonizer.translate('utils.interaction'),
14989
  default: '#ff9d3c'
14990
  })
14991
  ]
15080
  constructor(parent)
15081
  {
15082
  super({
15083
+ title: '<span class="setting-icon"><i class="fa fa-desktop"></i></span> ' + window.Buttonizer.translate('settings.label_desktop.title'),
15084
+ description: window.Buttonizer.translate('settings.label_desktop.description'),
15085
  content: [
15086
  new Dropdown({
15087
  parentObject: parent,
15090
  list: [
15091
  {
15092
  value: 'always',
15093
+ text: window.Buttonizer.translate('settings.label_styles.always'),
15094
  },
15095
  {
15096
  value: 'hover',
15097
+ text: window.Buttonizer.translate('settings.label_styles.hover'),
15098
  },
15099
  {
15100
  value: 'hide',
15101
+ text: window.Buttonizer.translate('settings.label_styles.hide'),
15102
  }]
15103
  })
15104
  ]
15114
  constructor(parent)
15115
  {
15116
  super({
15117
+ title: '<span class="setting-icon"><i class="fa fa-mobile-alt"></i></span> ' + window.Buttonizer.translate('settings.label_mobile.title'),
15118
+ description: window.Buttonizer.translate('settings.label_mobile.description'),
15119
  content: [
15120
  new Dropdown({
15121
  parentObject: parent,
15124
  list: [
15125
  {
15126
  value: 'always',
15127
+ text: window.Buttonizer.translate('settings.label_styles.always'),
15128
  },
15129
  {
15130
  value: 'hide',
15131
+ text: window.Buttonizer.translate('settings.label_styles.hide'),
15132
  }]
15133
  })
15134
  ]
15144
  constructor(parent)
15145
  {
15146
  super({
15147
+ title: window.Buttonizer.translate('settings.label_color.title'),
15148
+ description: window.Buttonizer.translate('settings.label_color.description'),
15149
  hidden: parent.type === 'button' ? parent.get('use_main_button_style') !== 'false' : false, // Only show on group side, or when use_main_button_style is disabled
15150
  rowName: 'label-color',
15151
  parentObject: parent,
15153
  new Color_Color({
15154
  parentObject: parent,
15155
  dataEntry: 'label_color',
15156
+ title: window.Buttonizer.translate('utils.text'),
15157
  default: '#FFFFFF'
15158
  }),
15159
  new Color_Color({
15160
  parentObject: parent,
15161
  dataEntry: 'label_background_color',
15162
+ title: window.Buttonizer.translate('utils.background'),
15163
  default: '#4E4C4C'
15164
  })
15165
  ]
15175
  constructor(parent)
15176
  {
15177
  super({
15178
+ title: window.Buttonizer.translate('settings.icon.title'),
15179
+ description: window.Buttonizer.translate('settings.icon.description'),
15180
  rowName: 'icon',
15181
  parentObject: parent,
15182
  hidden: (window.Buttonizer.hasPremium() && parent.get('icon_is_image') == 'true'),
15237
  let button = document.createElement("a");
15238
  button.className = "button";
15239
  button.href = "javascript:void(0)";
15240
+ button.innerHTML = '<i class="fa fa-image"></i>&nbsp;&nbsp;'+ window.Buttonizer.translate('utils.select_image') +' <small>(premium)</small>';
15241
  button.addEventListener("click", () => {
15242
  window.Buttonizer.showPremiumPopup('You can select images and set them as icon or as button background image.');
15243
  });
15256
  constructor(parent)
15257
  {
15258
  super({
15259
+ title: window.Buttonizer.translate('settings.background_image.title'),
15260
+ description: window.Buttonizer.translate('settings.background_image.description'),
15261
  hidden: parent.type === 'button' ? parent.get('use_main_button_style') !== 'false' : false, // Only show on group side, or when use_main_button_style is disabled
15262
  rowName: 'background-image',
15263
  parentObject: parent,
15270
  });
15271
  }
15272
  }
15273
+ // CONCATENATED MODULE: ./src/js/admin/components/Settings/UseMainButtonStyle.js
15274
 
15275
 
15276
 
15280
  {
15281
  super({
15282
  parentObject: parent,
15283
+ title: window.Buttonizer.translate('settings.use_main_button_style.title'),
15284
+ description: window.Buttonizer.translate('settings.use_main_button_style.description'),
15285
  class: 'is-boolean-only',
15286
  rowName: 'use_main_button_style',
15287
  content: [
15423
  constructor(parent)
15424
  {
15425
  super({
15426
+ title: window.Buttonizer.translate('settings.icon_or_image.title'),
15427
+ description: window.Buttonizer.translate('settings.icon_or_image.description'),
15428
  useCustomBuild: true,
15429
  content: [
15430
  () => this.buildBoolean()
15441
  let boolean = new Boolean({
15442
  parentObject: this.parent,
15443
  state: false,
15444
+ first: window.Buttonizer.translate('utils.icon'),
15445
+ second: window.Buttonizer.translate('utils.image') + ' <small>(premium)</small>',
15446
  callback: () => {
15447
  window.Buttonizer.showPremiumPopup("You can select an custom image as icon for your buttons and groups.");
15448
  }
15464
  {
15465
  super({
15466
  parentObject: parent,
15467
+ title: window.Buttonizer.translate('settings.menu_position.title'),
15468
+ description: window.Buttonizer.translate('settings.menu_position.description'),
15469
  wrap: true,
15470
  class: 'form-has-extra-fields',
15471
  rowName: 'position',
15477
  callback: (value) => this.changePosition(value),
15478
  list: [{
15479
  value: 'bottomright',
15480
+ text: window.Buttonizer.translate('settings.menu_position.positions.bottomright'),
15481
  },
15482
  {
15483
  value: 'bottomleft',
15484
+ text: window.Buttonizer.translate('settings.menu_position.positions.bottomleft'),
15485
  },
15486
  {
15487
  value: 'topright',
15488
+ text: window.Buttonizer.translate('settings.menu_position.positions.topright'),
15489
  },
15490
  {
15491
  value: 'topleft',
15492
+ text: window.Buttonizer.translate('settings.menu_position.positions.topleft'),
15493
  },
15494
  {
15495
  value: 'advanced',
15496
+ text: window.Buttonizer.translate('settings.menu_position.positions.advanced'),
15497
  }]
15498
  }),
15499
  new Input_Input({
15537
  }
15538
  }
15539
  }
15540
+ // CONCATENATED MODULE: ./src/js/admin/components/Settings/MenuAnimation.js
15541
+
15542
+
15543
+
15544
+ class MenuAnimation_MenuAnimation extends Setting_Setting
15545
+ {
15546
+ constructor(parent)
15547
+ {
15548
+ super({
15549
+ title: window.Buttonizer.translate('settings.menu_animation.title'),
15550
+ description: window.Buttonizer.translate('settings.menu_animation.description'),
15551
+ parentObject: parent,
15552
+ rowName: 'animation',
15553
+ content: [
15554
+ new Dropdown({
15555
+ parentObject: parent,
15556
+ dataEntry: 'menu_animation',
15557
+ default: 'none',
15558
+ list: [{
15559
+ value: 'none',
15560
+ text: window.Buttonizer.translate('settings.menu_animation.animations.none')
15561
+ },
15562
+ {
15563
+ value: 'hello',
15564
+ text: window.Buttonizer.translate('settings.menu_animation.animations.hello')
15565
+ },
15566
+ {
15567
+ value: 'bounce',
15568
+ text: window.Buttonizer.translate('settings.menu_animation.animations.bounce')
15569
+ }]
15570
+ })
15571
+ ]
15572
+ });
15573
+ }
15574
+ }
15575
  // CONCATENATED MODULE: ./src/js/admin/ui/Button/ButtonSettings.js
15576
 
15577
 
15597
 
15598
 
15599
 
15600
+
15601
  class ButtonSettings_ButtonSettings
15602
  {
15603
  constructor(buttonObject)
15687
  let advancedSettings = document.createElement("a");
15688
  advancedSettings.href = "javascript:void(0)";
15689
  advancedSettings.className = "advanced-settings" + (!window.Buttonizer.hasPremium() ? ' buttonizer-premium-gray-out' : '');
15690
+ advancedSettings.innerHTML = "<i></i> " + window.Buttonizer.translate('utils.advanced_settings') + (!window.Buttonizer.hasPremium() ? ` <span class='buttonizer-premium'>PRO</span>` : '');
15691
 
15692
  advancedSettings.addEventListener("click", () => {
15693
  this.buttonObject.windowObject.toggle();
15710
  this.groupSetting.appendChild(this.formElements.menuPosition.build());
15711
  this.formElements.menuPosition.element.style.display = 'none';
15712
 
15713
+ this.formElements.menuAnimation = new MenuAnimation_MenuAnimation(this.buttonObject.groupObject);
15714
+ this.groupSetting.appendChild(this.formElements.menuAnimation.build());
15715
+ this.formElements.menuAnimation.element.style.display = 'none';
15716
+
15717
  container.appendChild(this.groupSetting);
15718
 
15719
  // Button action
15736
 
15737
  // Button style
15738
  let title = document.createElement("h2");
15739
+ title.innerHTML = "<i></i><span>"+ window.Buttonizer.translate('settings.setting_categories.button_style') +"</span>";
15740
  container.appendChild(title);
15741
 
15742
  // Main button style
15770
  container.className = 'style-icon';
15771
 
15772
  let title = document.createElement("h2");
15773
+ title.innerHTML = "<i></i><span>"+ window.Buttonizer.translate('settings.setting_categories.button_icon') +"</span>";
15774
  container.appendChild(title);
15775
 
15776
  // Button icon or image
15802
  container.className = 'style-label';
15803
 
15804
  let title = document.createElement("h2");
15805
+ title.innerHTML = "<i></i><span>"+ window.Buttonizer.translate('settings.setting_categories.label') +"</span>";
15806
  container.appendChild(title);
15807
 
15808
 
15890
  var mouseDown = false;
15891
  var warningShown = false;
15892
  const warning = index_all(buttonObject, {
15893
+ content: window.Buttonizer.translate('bar.buttons.tippy_drag_warning'),
15894
  animation: 'shift-away',
15895
  arrow: true,
15896
  hideOnClick: false,
16069
  });
16070
 
16071
  // Menu items
16072
+ buttonMenu.appendChild(this.createQuickMenuButton('fas fa-plus', window.Buttonizer.translate('bar.buttons.convert_to_group'), () => {
16073
  new ui_Button(this.groupObject, {
16074
+ name: window.Buttonizer.translate('common.button') + " 2",
16075
  show_mobile: 'true',
16076
  show_desktop: 'true'
16077
  });
16078
  this.groupObject.getButtons()[0].set('icon_size', '16');
16079
  jQuery(this.groupObject.groupBody).sortable('option', 'cancel', null);
16080
  }, 'convert-button'));
16081
+ buttonMenu.appendChild(this.createQuickMenuButton('fas fa-wrench', window.Buttonizer.translate('common.settings'), () => this.toggleStyling(), ''));
16082
+ buttonMenu.appendChild(this.createQuickMenuButton('fas fa-cog', window.Buttonizer.translate('utils.advanced_settings'), () => {
16083
  if(this.groupObject.singleButtonMode){
16084
  this.groupObject.getButtons()[0].windowObject.toggle();
16085
  }else{
16086
  this.groupObject.windowObject.toggle();
16087
  }
16088
  }, !window.Buttonizer.hasPremium() ? 'buttonizer-premium-gray-out' : ''));
16089
+ buttonMenu.appendChild(this.createQuickMenuButton('fas fa-pencil-alt', window.Buttonizer.translate('utils.rename'), () => this.groupRename(), ''));
16090
+ buttonMenu.appendChild(this.createQuickMenuButton('far fa-trash-alt', window.Buttonizer.translate('utils.delete'), () => this.groupDelete(), 'delete'));
16091
  buttonMenu.firstChild.style.display = 'none';
16092
 
16093
  this.quickMenu = buttonMenu;
16245
  */
16246
  groupDelete()
16247
  {
16248
+ if(this.groupObject.singleButtonMode) {
16249
  if(window.Buttonizer.buttonGroups.length <= 1){
16250
  new Modal({
16251
+ title: window.Buttonizer.translate('bar.buttons.delete_button.window_title_button'),
16252
+ content: "<p>"+ window.Buttonizer.translate('bar.buttons.delete_button.cannot_delete') +"</p>",
16253
 
16254
  buttons: [{
16255
+ text: window.Buttonizer.translate('modal.close'),
16256
  close: true,
16257
  focus: true,
16258
  confirm: true
16262
  }
16263
 
16264
  new Modal({
16265
+ title: window.Buttonizer.translate('bar.buttons.delete_button.window_title_button'),
16266
+ content: "<p>"+ window.Buttonizer.translate('bar.buttons.delete_button.question_button') +"</p>",
16267
 
16268
  onConfirm: () =>
16269
  {
16274
  },
16275
 
16276
  buttons: [{
16277
+ text: window.Buttonizer.translate('modal.changed_my_mind'),
16278
  close: true,
16279
  focus: true
16280
  }, {
16281
+ text: window.Buttonizer.translate('utils.delete'),
16282
  confirm: true
16283
  }]
16284
  });
16288
  {
16289
  // NOPE!
16290
  new Modal({
16291
+ title: window.Buttonizer.translate('bar.buttons.delete_button.window_title_button'),
16292
+ content: "<p>"+ window.Buttonizer.translate('bar.buttons.delete_button.cannot_delete_group') +"</p>",
16293
 
16294
  buttons: [{
16295
+ text: window.Buttonizer.translate('modal.close'),
16296
  close: true,
16297
  focus: true,
16298
  confirm: true
16302
  }
16303
 
16304
  new Modal({
16305
+ title: window.Buttonizer.translate('bar.buttons.delete_button.window_title_group'),
16306
+ content: "<p>"+ window.Buttonizer.translate('bar.buttons.delete_button.question_group_multiple_buttons').format(this.groupObject.getButtonsAlive()) + "</p>",
16307
 
16308
  onConfirm: () =>
16309
  {
16314
  },
16315
 
16316
  buttons: [{
16317
+ text: window.Buttonizer.translate('modal.changed_my_mind'),
16318
  close: true,
16319
  focus: true
16320
  }, {
16321
+ text: window.Buttonizer.translate('utils.delete'),
16322
  confirm: true
16323
  }]
16324
  });
16354
  this.groupObject.getButtons()[0].set('use_main_button_style', 'false');
16355
  this.groupObject.getButtons()[0].getUI('use_main_button_style-container')[0].element.style.display = 'none';
16356
  this.groupObject.getUI('position-container')[1].element.style.display = '';
16357
+ this.groupObject.getUI('animation-container')[1].element.style.display = '';
16358
 
16359
  this.groupObject.set('single_button_mode', 'true');
16360
 
16362
  this.quickMenu.firstChild.style.display = 'none';
16363
 
16364
  this.groupObject.getUI('position-container')[1].element.style.display = 'none';
16365
+ this.groupObject.getUI('animation-container')[1].element.style.display = 'none';
16366
  this.groupObject.getButtons()[0].set('use_main_button_style', 'true');
16367
  this.groupObject.getButtons()[0].getUI('use_main_button_style-container')[0].element.style.display = '';
16368
  this.titleElement.value = this.groupObject.data.name;
16387
  constructor(parent)
16388
  {
16389
  super({
16390
+ title: window.Buttonizer.translate('settings.start_opened.title'),
16391
+ description: window.Buttonizer.translate('settings.start_opened.description'),
16392
  class: 'is-boolean-only',
16393
  content: [
16394
  new Toggle({
16413
  */
16414
  constructor(parent){
16415
  super({
16416
+ title: window.Buttonizer.translate('settings.menu_style.title'),
16417
+ description: window.Buttonizer.translate('settings.menu_style.description'),
16418
  content: [
16419
  new Dropdown({
16420
  parentObject: parent,
16422
  default: 'default',
16423
  list: [{
16424
  value: 'default',
16425
+ text: window.Buttonizer.translate('settings.menu_style.styles.default'),
16426
  },
16427
  {
16428
  value: 'faded',
16429
+ text: window.Buttonizer.translate('settings.menu_style.styles.faded'),
16430
  },
16431
  {
16432
  value: 'corner-circle',
16433
+ text: window.Buttonizer.translate('settings.menu_style.styles.cornercircle'),
16434
  },
16435
  {
16436
  value: 'building-up',
16437
+ text: window.Buttonizer.translate('settings.menu_style.styles.buildingup'),
16438
  },
16439
  {
16440
  value: 'pop',
16441
+ text: window.Buttonizer.translate('settings.menu_style.styles.pop'),
16442
  },
16443
  {
16444
  value: 'square',
16445
+ text: window.Buttonizer.translate('settings.menu_style.styles.square'),
16446
  }]
16447
  })
16448
  ]
16451
  }
16452
 
16453
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16454
  // CONCATENATED MODULE: ./src/js/admin/ui/ButtonGroup/GroupSettings.js
16455
  // New settings
16456
 
16558
  let advancedSettings = document.createElement("a");
16559
  advancedSettings.href = "javascript:void(0)";
16560
  advancedSettings.className = "advanced-settings" + (!window.Buttonizer.hasPremium() ? ' buttonizer-premium-gray-out' : '');
16561
+ advancedSettings.innerHTML = "<i></i> " + window.Buttonizer.translate('utils.advanced_settings') + (!window.Buttonizer.hasPremium() ? ` <span class='buttonizer-premium'>PRO</span>` : '');
16562
 
16563
  advancedSettings.addEventListener("click", () => {
16564
  this.groupObject.windowObject.toggle();
16568
 
16569
  }
16570
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16571
  /**
16572
  * Settings on top
16573
  */
16592
  container.className = 'style-menu';
16593
 
16594
  let groupAnimation = document.createElement('h2');
16595
+ groupAnimation.innerHTML = "<i></i><span>"+ window.Buttonizer.translate('settings.setting_categories.menu_style') +"</span>";
16596
  container.appendChild(groupAnimation);
16597
 
16598
  // Always open
16626
  container.className = 'style-button';
16627
 
16628
  let groupStyling = document.createElement("h2");
16629
+ groupStyling.innerHTML = "<i></i><span>"+ window.Buttonizer.translate('settings.setting_categories.group_style') +"</span>";
16630
  container.appendChild(groupStyling);
16631
 
16632
  // Button color
16652
  container.className = 'style-icon';
16653
 
16654
  let groupIcon = document.createElement("h2");
16655
+ groupIcon.innerHTML = "<i></i><span>"+ window.Buttonizer.translate('settings.setting_categories.group_icon') +"</span>";
16656
  container.appendChild(groupIcon);
16657
 
16658
+ // If there's only one button, show warning
 
16659
 
16660
  // Button icon
16661
  this.formElements.buttonIcon = new IconOrImage_IconOrImage(this.groupObject);
16686
  container.className = 'style-label';
16687
 
16688
  let labelTitle = document.createElement("h2");
16689
+ labelTitle.innerHTML = "<i></i><span>"+ window.Buttonizer.translate('settings.setting_categories.label') +"</span>";
16690
  container.appendChild(labelTitle);
16691
 
16692
  // Label text
16728
  }
16729
  }
16730
 
16731
+
16732
+ show(){
16733
+ this.element.className = "button-group-styling";
16734
+ Buttonizer.bar.showSettings(this.groupObject.get('name'), () => this.hide());
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16735
  }
16736
+
16737
+ hide(){
16738
+ this.element.className = "button-group-styling hidden";
16739
+ }
16740
+ }
16741
+
16742
+ /* harmony default export */ var ButtonGroup_GroupSettings = (GroupSettings_GroupSettings);
16743
  // CONCATENATED MODULE: ./src/js/admin/ui/ButtonGroup/GroupWindow.js
16744
 
16745
 
16754
  class GroupWindow_GroupWindow extends SettingsWindow
16755
  {
16756
  constructor(group) {
16757
+ super(group, window.Buttonizer.translate('utils.advanced_settings') + " - "+ window.Buttonizer.translate('common.group') +" " + group.data.name + (!window.Buttonizer.hasPremium() ? ' (premium)' : ''));
16758
  }
16759
 
16760
  render()
16762
  this.filter();
16763
  this.delay();
16764
  this.styling();
 
16765
  }
16766
 
16767
  filter()
16769
  let filter = document.createElement("div");
16770
 
16771
  // Time Schedule
16772
+ filter.appendChild(new TimeSchedule_TimeSchedule(this).build());
16773
 
16774
  // Page Rule
16775
+ filter.appendChild(new PageRuleSelect_PageRuleSelect(this).build());
 
 
 
 
 
 
 
 
 
16776
 
16777
  // Add
16778
+ super.addItem(window.Buttonizer.translate('settings.button_group_window.filters'), filter);
16779
  }
16780
 
16781
  delay()
16786
  delay.appendChild(new ShowOnScroll_ShowOnScroll(this).build());
16787
 
16788
  // Add
16789
+ super.addItem(window.Buttonizer.translate('settings.button_group_window.timeout_scroll'), delay);
16790
  }
16791
 
16792
  styling()
16794
  let filter = document.createElement("div");
16795
 
16796
  // Button custom class
16797
+ filter.appendChild(new CustomClass_CustomClass(this).build());
16798
 
16799
 
16800
  // Button custom id
16801
  filter.appendChild(new CustomId_CustomID(this).build());
16802
 
16803
  // Add
16804
+ super.addItem(window.Buttonizer.translate('settings.button_group_window.styling'), filter);
16805
  }
16806
  }
16807
 
16813
 
16814
 
16815
 
 
16816
  class ButtonGroup_Index {
16817
  constructor(data, buttons) {
16818
  if (!buttons) {
16931
  let addButton = document.createElement("a");
16932
  addButton.href = "javascript:void(0)";
16933
  addButton.className = "create-new-button";
16934
+ addButton.innerHTML = window.Buttonizer.translate('utils.add_button') + " +";
16935
 
16936
  addButton.addEventListener("click", () => {
16937
  new ui_Button(this, {
16938
+ name: window.Buttonizer.translate('common.button') + " " + (this.getButtonsAlive()+1),
16939
  show_mobile: 'true',
16940
  show_desktop: 'true'
16941
  });
17059
  buttons: [
17060
  {
17061
  title:'Buttonizer',
17062
+ description: window.Buttonizer.translate('bar.menu.version'),
17063
  callback: () => {
17064
  window.open("https://www.buttonizer.pro/");
17065
  }
17066
  },
17067
  {
17068
+ title: window.Buttonizer.translate('bar.menu.knowledgebase.title'),
17069
+ description: window.Buttonizer.translate('bar.menu.knowledgebase.description'),
17070
  callback: () => {
17071
+ window.open("https://community.buttonizer.pro/knowledgebase");
17072
  }
17073
  }
17074
  ]
17075
  },
17076
  {
17077
+ title: window.Buttonizer.translate('bar.menu.support_group'),
17078
  buttons: [
17079
  {
17080
+ title: window.Buttonizer.translate('bar.menu.support.title'),
 
17081
  callback: () => {
17082
  window.open("https://community.buttonizer.pro/t/support");
17083
  }
17084
  },
17085
  {
17086
+ title: window.Buttonizer.translate('bar.menu.community.title'),
17087
+ description: window.Buttonizer.translate('bar.menu.community.description'),
17088
  callback: () => {
17089
  window.open("https://community.buttonizer.pro/");
17090
  }
17091
  },
17092
  {
17093
+ title: window.Buttonizer.translate('bar.menu.tour.title'),
17094
+ description: window.Buttonizer.translate('bar.menu.tour.description'),
17095
  callback: () => {
17096
  window.Buttonizer.startTour();
17097
  }
17098
  }
17099
  ]
17100
  },{
17101
+ title: window.Buttonizer.translate('bar.menu.account_group'),
17102
  buttons: [
17103
  {
17104
+ title: window.Buttonizer.translate('bar.menu.account.title'),
17105
  callback: () => {
17106
  window.open(buttonizer_admin.admin + "?page=Buttonizer-account");
17107
  }
17108
  },
17109
  {
17110
+ title: window.Buttonizer.translate('bar.menu.upgrade.title'),
17111
  callback: () => {
17112
  window.open(buttonizer_admin.admin + "?page=Buttonizer-pricing");
17113
  }
17114
  },
17115
  {
17116
+ title: window.Buttonizer.translate('bar.menu.affiliation.title'),
17117
+ description: window.Buttonizer.translate('bar.menu.affiliation.description'),
17118
  callback: () => {
17119
  window.open(buttonizer_admin.admin + "?page=Buttonizer-affiliation");
17120
  }
17124
  {
17125
  buttons: [
17126
  {
17127
+ title: window.Buttonizer.translate('page_rules.name'),
17128
+ icon: 'fas fa-filter',
17129
+ class: !window.Buttonizer.hasPremium() ? 'buttonizer-premium-gray-out' : '',
17130
+ callback: () => {
17131
+ if(window.Buttonizer.hasPremium()) {
17132
+ window.Buttonizer.pageRule.show();
17133
+ return;
17134
+ }
17135
+
17136
+ window.Buttonizer.showPremiumPopup(window.Buttonizer.translate('page_rules.pro_description'), 'SQnAhyBWLWg');
17137
+ }
17138
+ },
17139
+ {
17140
+ title: window.Buttonizer.translate('time_schedules.name'),
17141
+ icon: 'far fa-clock',
17142
+ class: !window.Buttonizer.hasPremium() ? 'buttonizer-premium-gray-out' : '',
17143
+ callback: () => {
17144
+ if(window.Buttonizer.hasPremium()) {
17145
+ window.Buttonizer.timeSchedule.show();
17146
+ return;
17147
+ }
17148
+
17149
+ window.Buttonizer.showPremiumPopup(window.Buttonizer.translate('time_schedules.pro_description'), 'C-B9ITdY6A4');
17150
+ }
17151
+ }
17152
+ ]
17153
+ },
17154
+ {
17155
+ buttons: [
17156
+ {
17157
+ title: window.Buttonizer.translate('bar.menu.options.title'),
17158
  icon: 'fa fa-cogs',
17159
  class: 'single-button',
17160
  callback: () => {
17242
  let container = document.createElement("div");
17243
  container.className = 'event-track-window';
17244
  container.style.display = 'none';
17245
+ container.innerHTML = `<div class="track-window-title">${window.Buttonizer.translate('event_tracker.window_title')}</div>`;
17246
 
17247
  // Add close button
17248
  let closeButton = document.createElement("a");
17287
  }
17288
 
17289
  this.eventTrackerMenuItem.style.display = 'block';
17290
+ this.eventTrackerMenuItem.innerHTML = '<i class="fas fa-info"></i> ('+ events.length +') ' + window.Buttonizer.translate('event_tracker.title');
17291
 
17292
 
17293
  // Empty
17409
  {
17410
  this.publishButton = document.createElement("a");
17411
  this.publishButton.className = "publish-button button-primary right";
17412
+ this.publishButton.innerText = window.Buttonizer.translate('common.save_publish');
17413
  this.publishButton.enabled = true;
17414
  this.publishButton.addEventListener('click', () => {
17415
  if(!this.publishButton.enabled) return;
17419
  this.publishButton.enable = () => {
17420
  this.publishButton.enabled = true;
17421
  this.revertChangesText.hidden = false;
17422
+ this.publishButton.innerText = window.Buttonizer.translate('common.save_publish');
17423
  this.publishButton.className = this.publishButton.className.replace(" disabled", "");
17424
  };
17425
  this.publishButton.disable = (innerText) => {
17437
  {
17438
  this.revertChangesText = document.createElement("a");
17439
  this.revertChangesText.className = "revert-button right";
17440
+ this.revertChangesText.innerText = window.Buttonizer.translate('revert.revert_changes');
17441
  this.revertChangesText.href = "javascript:void(0)";
17442
 
17443
  this.revertChangesText.addEventListener('click', () => {
17444
  new Modal({
17445
+ title: window.Buttonizer.translate('revert.revert_changes'),
17446
+ content: '<p>'+ window.Buttonizer.translate('revert.modal.intro') +'</p><p>'+ window.Buttonizer.translate('revert.modal.action') +'</p>',
17447
 
17448
  onConfirm: () =>
17449
  {
17451
  },
17452
 
17453
  buttons: [{
17454
+ text: window.Buttonizer.translate('modal.changed_my_mind'),
17455
  close: true,
17456
  focus: true
17457
  }, {
17458
+ text: window.Buttonizer.translate('revert.revert_changes'),
17459
  confirm: true
17460
  }]
17461
  });
17467
  this.alertText = document.createElement("a");
17468
  this.alertText.className = "alert-text";
17469
  this.alertText.showSaving = () => {
17470
+ this.alertText.innerHTML = '<i class="fas fa-mug-hot"></i> ' + window.Buttonizer.translate('saving.saving');
17471
  this.alertText.hidden = false;
17472
  };
17473
  this.alertText.showSaved = () => {
17474
+ this.alertText.innerHTML = '<i class="fas fa-check"></i> ' + window.Buttonizer.translate('saving.completed')
17475
  setTimeout(() => {
17476
  this.alertText.hidden = true;
17477
  }, 2000);
17495
  if(value){
17496
  this.publishButton.enable();
17497
  } else {
17498
+ this.publishButton.disable(window.Buttonizer.translate('common.published'));
17499
  }
17500
  }
17501
  }
17506
 
17507
 
17508
 
17509
+ class Bar_Bar
17510
  {
17511
  // Send object to Buttonizer
17512
  constructor(buttonizer)
17585
  let titlewrapper = document.createElement('div');
17586
  titlewrapper.className = 'title-wrapper';
17587
  let title = document.createElement('h4');
17588
+ title.innerHTML = window.Buttonizer.translate('bar.buttons.now_editing');
17589
 
17590
  let smallTitle = document.createElement('h2');
17591
  smallTitle.innerHTML = 'nothing!';
17644
  let addGroup = document.createElement("a");
17645
  addGroup.href = "javascript:void(0)";
17646
  addGroup.className = "create-new-button is-create-group buttonizer-premium-gray-out";
17647
+ addGroup.innerHTML = window.Buttonizer.translate('utils.add_group') + '+ <span class="buttonizer-premium">PRO</span>';
17648
+ addGroup.addEventListener("click", () => window.Buttonizer.showPremiumPopup("You are able to add multiple groups on different positions.", 'Qxs1oGCVATU'));
17649
 
17650
  return addGroup;
17651
  }
17701
  document.querySelector(".buttonizer-frame").className = 'buttonizer-frame';
17702
  });
17703
 
17704
+ index_all(buttonDesktop, {
17705
+ content: window.Buttonizer.translate('bar.preview.desktop'),
17706
+ animation: 'shift-away',
17707
+ arrow: false,
17708
+ placement: "top"
17709
+ });
17710
+
17711
  devicePreviewContainer.appendChild(buttonDesktop);
17712
 
17713
  // Tablet button
17723
  document.querySelector(".buttonizer-frame").className = 'buttonizer-frame frame-size-tablet';
17724
  });
17725
 
17726
+ index_all(buttonTablet, {
17727
+ content: window.Buttonizer.translate('bar.preview.tablet'),
17728
+ animation: 'shift-away',
17729
+ arrow: false,
17730
+ placement: "top"
17731
+ });
17732
+
17733
  devicePreviewContainer.appendChild(buttonTablet);
17734
 
17735
  // Mobile button
17745
  document.querySelector(".buttonizer-frame").className = 'buttonizer-frame frame-size-mobile';
17746
  });
17747
 
17748
+ index_all(buttonMobile, {
17749
+ content: window.Buttonizer.translate('bar.preview.mobile'),
17750
+ animation: 'shift-away',
17751
+ arrow: false,
17752
+ placement: "top"
17753
+ });
17754
+
17755
  devicePreviewContainer.appendChild(buttonMobile);
17756
 
17757
  footer.appendChild(devicePreviewContainer);
17760
  }
17761
  }
17762
 
17763
+ /* harmony default export */ var ui_Bar = (Bar_Bar);
17764
  // CONCATENATED MODULE: ./src/js/admin/ui/Loader.js
17765
 
17766
 
17913
  this.isUpdating = true;
17914
 
17915
  window.Buttonizer.buttonChanges = false;
17916
+ window.Buttonizer.topBar.publishButton.disable(window.Buttonizer.translate('common.publishing'));
17917
 
17918
  jQuery.ajax({
17919
  url: buttonizer_admin.ajax + '?action=buttonizer_backend&request=SaveData&save=publish',
17928
  if(data.status !== "success")
17929
  {
17930
  new Modal({
17931
+ title: window.Buttonizer.translate('errors.saving.title'),
17932
+ content: `<p>${window.Buttonizer.translate('errors.saving.message')}.</p><p>${data.message}</p>`,
17933
  buttons: [{
17934
  text: "Close",
17935
  close: true
17938
  return;
17939
  }
17940
 
17941
+ window.Buttonizer.topBar.publishButton.disable(window.Buttonizer.translate('common.published'));
17942
  },
17943
  error: (err, msg, data) => {
17944
 
17959
  return;
17960
  }
17961
 
17962
+ window.Buttonizer.loader.show(window.Buttonizer.translate('revert.reverting'));
17963
 
17964
  this.isUpdating = true;
17965
  window.Buttonizer.buttonChanges = false;
17979
  window.Buttonizer.loader.hide();
17980
 
17981
  new Modal({
17982
+ title: window.Buttonizer.translate('revert.error.title'),
17983
+ content: `<p>${window.Buttonizer.translate('revert.error.message')}</p><p>${data.message}</p>`,
17984
  buttons: [{
17985
  text: "Close",
17986
  close: true
18082
  versions: [
18083
  {
18084
  id: '5.free',
18085
+ name: "Font Awesome 5 - "+ window.Buttonizer.translate('settings_window.icon_library.free') +" - " + window.Buttonizer.translate('settings_window.icon_library.latest'),
18086
  free: true
18087
  },
18088
  {
18089
  id: '5.paid',
18090
+ name: "Font Awesome 5 - Pro - " + window.Buttonizer.translate('settings_window.icon_library.latest'),
18091
  free: false
18092
  },
18093
  {
18217
 
18218
  // Info
18219
  let info = document.createElement("div");
18220
+ info.innerHTML = window.Buttonizer.translate('settings_window.icon_library.info');
18221
 
18222
 
18223
  // Icon library
18224
  let librarySelector = new Table();
18225
+ librarySelector.addColumnHTML("<h2>"+ window.Buttonizer.translate('settings_window.icon_library.title') +"</h2>");
18226
  librarySelector.addColumn(libraryDropdown, "", "370");
18227
  librarySelector.newRow();
18228
  librarySelector.addColumnText("");
18265
 
18266
  // Info
18267
  let info = document.createElement("div");
18268
+ info.innerHTML = window.Buttonizer.translate('settings_window.icon_library.select_version.info');
18269
 
18270
  // Table
18271
  let fontAwesomeVersion = new Table();
18272
+ fontAwesomeVersion.addColumnHTML("<h2>"+ window.Buttonizer.translate('settings_window.icon_library.select_version.title') +"</h2>");
18273
  fontAwesomeVersion.addColumn(this.versionDropdown, "", "370");
18274
  fontAwesomeVersion.newRow();
18275
  fontAwesomeVersion.addColumnText("");
18312
  {
18313
  // Info
18314
  let licenseInfo = document.createElement("div");
18315
+ licenseInfo.innerHTML = window.Buttonizer.translate('settings_window.icon_library.library_license_key.info') + '<a href="" target="_blank" class="link-add-more" style="display: inline">'+ window.Buttonizer.translate('settings_window.icon_library.library_license_key.how_does_it_work') +'</a>';
18316
 
18317
 
18318
  let input = document.createElement("input");
18319
+ input.placeholder = window.Buttonizer.translate('settings_window.icon_library.library_license_key.enter_integrity_code');
18320
  input.className = 'window-select';
18321
  input.value = this.currentSelectedPremiumCode;
18322
 
18395
 
18396
  // Info
18397
  let info = document.createElement("div");
18398
+ info.innerHTML = window.Buttonizer.translate('settings_window.icon_library.import_library.info');
18399
 
18400
  // Table
18401
  let importIconLibrary = new Table();
18402
+ importIconLibrary.addColumnHTML("<h2>"+ window.Buttonizer.translate('settings_window.icon_library.import_library.title') +"</h2>");
18403
  importIconLibrary.addColumn(boolean.build(), "", "370");
18404
  importIconLibrary.newRow();
18405
  importIconLibrary.addColumnText("");
18438
 
18439
  data.appendChild(this.input())
18440
 
18441
+ let link = document.createElement("a");
18442
+ link.href = 'https://community.buttonizer.pro/knowledgebase/17';
18443
+ link.target = '_blank';
18444
+ link.className = 'info-link text-big';
18445
+ link.innerHTML = '<i class="fas fa-info"></i> ' + window.Buttonizer.translate('settings_window.google_analytics.info');
18446
+ link.style.marginTop = '40px';
18447
+ link.style.textAlign = 'center';
18448
+ data.appendChild(link);
 
 
 
 
 
 
 
 
 
 
 
 
18449
 
18450
  return data;
18451
  }
18467
 
18468
  // Info
18469
  let info = document.createElement("div");
18470
+ info.innerHTML = window.Buttonizer.translate('settings_window.google_analytics.input_info');
18471
 
18472
  // Table
18473
  let analytics = new Table();
18493
  let data = document.createElement("div");
18494
  let info = document.createElement("div");
18495
  info.className = 'settings-window-information';
18496
+ info.innerHTML = '<p>'+ window.Buttonizer.translate('settings_window.reset.info') + '</p>';
18497
 
18498
  data.appendChild(info);
18499
 
18512
  let data = document.createElement("div");
18513
  let title = document.createElement("div");
18514
  title.className = 'window-splitter';
18515
+ title.innerHTML = window.Buttonizer.translate('settings_window.reset.what_will_happen.title');
18516
  title.style.marginBottom = '20px';
18517
 
18518
  data.appendChild(title);
18519
 
18520
  let info = document.createElement("div");
18521
  info.className = 'settings-window-information';
18522
+ info.innerHTML = '<p>'+ window.Buttonizer.translate('settings_window.reset.what_will_happen.info') +'</p>';
18523
 
18524
  data.appendChild(info);
18525
  return data;
18531
  let data = document.createElement("div");
18532
  let title = document.createElement("div");
18533
  title.className = 'window-splitter';
18534
+ title.innerHTML = window.Buttonizer.translate('settings_window.reset.why.title');
18535
  title.style.marginBottom = '20px';
18536
 
18537
  data.appendChild(title);
18538
 
18539
  let info = document.createElement("div");
18540
  info.className = 'settings-window-information';
18541
+ info.innerHTML = '<p>'+ window.Buttonizer.translate('settings_window.reset.why.info') +'</p>';
18542
 
18543
  data.appendChild(info);
18544
  return data;
18550
  let data = document.createElement("div");
18551
  let title = document.createElement("div");
18552
  title.className = 'window-splitter';
18553
+ title.innerHTML = window.Buttonizer.translate('settings_window.reset.license.title');
18554
  title.style.marginBottom = '20px';
18555
 
18556
  data.appendChild(title);
18558
  let info = document.createElement("div");
18559
  info.className = 'settings-window-information';
18560
  info.innerHTML = `
18561
+ <p>${window.Buttonizer.translate('settings_window.reset.license.info')}</p>
18562
  <p>
18563
  <ul>
18564
+ <li>${window.Buttonizer.translate('settings_window.reset.license.list.buttons')}</li>
18565
+ <li>${window.Buttonizer.translate('settings_window.reset.license.list.groups')}</li>
18566
+ <li>${window.Buttonizer.translate('settings_window.reset.license.list.time_schedules')}</li>
18567
+ <li>${window.Buttonizer.translate('settings_window.reset.license.list.page_rules')}</li>
18568
+ <li>${window.Buttonizer.translate('settings_window.reset.license.list.settings')}</li>
18569
+ <li>${window.Buttonizer.translate('settings_window.reset.license.list.published')}</li>
18570
  </ul>
18571
  </p>
18572
  `;
18575
  return data;
18576
  }
18577
 
18578
+ // And then?
18579
+ andThen()
18580
+ {
18581
+ let data = document.createElement("div");
18582
+ let title = document.createElement("div");
18583
+ title.className = 'window-splitter';
18584
+ title.innerHTML = window.Buttonizer.translate('settings_window.reset.default_settings.title');
18585
+ title.style.marginBottom = '20px';
18586
+
18587
+ data.appendChild(title);
18588
+
18589
+ let info = document.createElement("div");
18590
+ info.className = 'settings-window-information';
18591
+ info.innerHTML = '<p>'+ window.Buttonizer.translate('settings_window.reset.default_settings.info') +'</p>';
18592
+
18593
+ data.appendChild(info);
18594
+ return data;
18595
+ }
18596
+
18597
+ // Ready
18598
+ ready()
18599
+ {
18600
+ let data = document.createElement("div");
18601
+ let title = document.createElement("div");
18602
+ title.className = 'window-splitter';
18603
+ title.innerHTML = window.Buttonizer.translate('settings_window.reset.ready.title');
18604
+ title.style.marginBottom = '20px';
18605
+
18606
+ data.appendChild(title);
18607
+
18608
+ let info = document.createElement("div");
18609
+ info.className = 'settings-window-information';
18610
+ info.innerHTML = '<p>'+ window.Buttonizer.translate('settings_window.reset.ready.info') +'</p>';
18611
+
18612
+ data.appendChild(info);
18613
+
18614
+
18615
+ let button = document.createElement("a");
18616
+ button.className = 'button button-red button-centered-reset';
18617
+ button.innerHTML = '<i class="fas fa-sync"></i> ' + window.Buttonizer.translate('settings_window.reset.ready.button');
18618
+ button.href = 'javascript:void(0)';
18619
+
18620
+ button.addEventListener("click", () => this.countdown());
18621
+
18622
+ data.appendChild(button);
18623
+ return data;
18624
+ }
18625
+
18626
+ // Countdown
18627
+ countdown()
18628
+ {
18629
+ window.Buttonizer.loader.show(window.Buttonizer.translate('loading.initializing'));
18630
+
18631
+ setTimeout(() => {
18632
+ window.Buttonizer.loader.show(window.Buttonizer.translate('loading.resetting'));
18633
+ this.reset();
18634
+ }, 1500);
18635
+ }
18636
+
18637
+ // Okay, reset
18638
+ reset()
18639
+ {
18640
+ jQuery.ajax({
18641
+ url: buttonizer_admin.ajax + '?action=buttonizer_backend&request=SaveData&save=reset-buttonizer',
18642
+ dataType: 'json',
18643
+ method: 'post',
18644
+ data: {
18645
+ security: buttonizer_admin.security
18646
+ },
18647
+ success: (data) => {
18648
+ if (data.status === "success") {
18649
+ window.Buttonizer.loader.show(window.Buttonizer.translate('loading.finishing'));
18650
+
18651
+ setTimeout(() => {
18652
+ document.location.reload();
18653
+ }, 500);
18654
+ } else {
18655
+ window.Buttonizer.loader.hide();
18656
+
18657
+ window.Buttonizer.savingError(data.message);
18658
+ }
18659
+ },
18660
+ error: (err, msg, data) => {
18661
+ window.Buttonizer.loader.hide();
18662
+ window.Buttonizer.savingError(msg);
18663
+ }
18664
+ });
18665
+ }
18666
+
18667
+ error() {
18668
+
18669
+ }
18670
+ }
18671
+ // CONCATENATED MODULE: ./src/js/admin/ui/Settings/Settings/Remigrate.js
18672
+ class Remigrate
18673
+ {
18674
+ constructor()
18675
+ {
18676
+
18677
+ }
18678
+
18679
+ build()
18680
+ {
18681
+ let data = document.createElement("div");
18682
+ let info = document.createElement("div");
18683
+ info.className = 'settings-window-information';
18684
+ info.innerHTML = `<p>We have fixed the migration issues in the last couple updates.
18685
+ If you lost buttons when updating to version 2.0,
18686
+ you can try migrating your old buttons again!</p>`;
18687
+
18688
+ data.appendChild(info);
18689
+
18690
+ data.appendChild(this.whatWillHappen());
18691
+ data.appendChild(this.why());
18692
+ data.appendChild(this.caution());
18693
+ data.appendChild(this.ready());
18694
+
18695
+ return data;
18696
+ }
18697
+
18698
+ // What will happen
18699
+ whatWillHappen()
18700
+ {
18701
+ let data = document.createElement("div");
18702
+ let title = document.createElement("div");
18703
+ title.className = 'window-splitter';
18704
+ title.innerHTML = 'What happens when I click the red button below?';
18705
+ title.style.marginBottom = '20px';
18706
+
18707
+ data.appendChild(title);
18708
+
18709
+ let info = document.createElement("div");
18710
+ info.className = 'settings-window-information';
18711
+ info.innerHTML = `<p>Buttonizer made a backup of your buttons from version 1.5.x in your database.
18712
+ When you click on the button below, it will convert that backup into buttons suitable for version 2.0.
18713
+ It will not remove the backup so that you can still revert back to version 1.5.7 if you want!</p>`;
18714
+
18715
+ data.appendChild(info);
18716
+ return data;
18717
+ }
18718
+
18719
+ // Why
18720
+ why()
18721
+ {
18722
+ let data = document.createElement("div");
18723
+ let title = document.createElement("div");
18724
+ title.className = 'window-splitter';
18725
+ title.innerHTML = 'Why would I do that?';
18726
+ title.style.marginBottom = '20px';
18727
+
18728
+ data.appendChild(title);
18729
+
18730
+ let info = document.createElement("div");
18731
+ info.className = 'settings-window-information';
18732
+ info.innerHTML = `<p>During the first update to version 2.0, a couple of users lost their settings or buttons!
18733
+ Since then we've fixed all the reported migration issues.
18734
+ <b>This is a chance for those who lost their buttons to try and see if they can migrate their old buttons again.</b></p>`;
18735
+
18736
+ data.appendChild(info);
18737
+ return data;
18738
+ }
18739
+
18740
+ // My license
18741
+ caution()
18742
+ {
18743
+ let data = document.createElement("div");
18744
+ let title = document.createElement("div");
18745
+ title.className = 'window-splitter';
18746
+ title.innerHTML = 'Extra! Extra!';
18747
+ title.style.marginBottom = '20px';
18748
+
18749
+ data.appendChild(title);
18750
+
18751
+ let info = document.createElement("div");
18752
+ info.className = 'settings-window-information';
18753
+ info.innerHTML = `
18754
+ <p>A little warning!
18755
+ This will remove your current Buttonizer version 2.0 buttons/settings.
18756
+ <b>It will not make a backup!</b></p>`;
18757
+
18758
+ data.appendChild(info);
18759
+ return data;
18760
+ }
18761
+
18762
  // And then?
18763
  andThen()
18764
  {
18791
 
18792
  let info = document.createElement("div");
18793
  info.className = 'settings-window-information';
18794
+ info.innerHTML = `<p>Press the red button below to re-migrate old data. There will be no more warnings.</p>`;
18795
 
18796
  data.appendChild(info);
18797
 
18798
 
18799
  let button = document.createElement("a");
18800
  button.className = 'button button-red button-centered-reset';
18801
+ button.innerHTML = '<i class="fas fa-sync"></i> Re-migrate old data!';
18802
  button.href = 'javascript:void(0)';
18803
 
18804
  button.addEventListener("click", () => this.countdown());
18813
  window.Buttonizer.loader.show("Initializing...");
18814
 
18815
  setTimeout(() => {
18816
+ window.Buttonizer.loader.show("Running migration...");
18817
+ this.remigrate();
18818
  }, 1500);
18819
  }
18820
 
18821
  // Okay, reset
18822
+ remigrate()
18823
  {
18824
  jQuery.ajax({
18825
+ url: buttonizer_admin.ajax + '?action=buttonizer_backend&request=SaveData&save=remigrate-buttonizer',
18826
  dataType: 'json',
18827
  method: 'post',
18828
  data: {
18837
  }, 500);
18838
  } else {
18839
  window.Buttonizer.loader.hide();
 
18840
  window.Buttonizer.savingError(data.message);
18841
  }
18842
  },
18884
 
18885
  // Table
18886
  let adminBarButtonTable = new Table();
18887
+ adminBarButtonTable.addColumnHTML("<h2>"+ window.Buttonizer.translate('settings_window.other_settings.admin_button.title') +"</h2>");
18888
  adminBarButtonTable.addColumn(boolean.build(), "", "370");
18889
  adminBarButtonTable.newRow();
18890
  adminBarButtonTable.addColumnText("");
18891
+ adminBarButtonTable.addColumnText(window.Buttonizer.translate('settings_window.other_settings.admin_button.info'));
18892
 
18893
  return adminBarButtonTable.build();
18894
  }
18910
 
18911
  // Table
18912
  let tooltipsTable = new Table();
18913
+ tooltipsTable.addColumnHTML("<h2>"+ window.Buttonizer.translate('settings_window.other_settings.tooltips.title') +"</h2>");
18914
  tooltipsTable.addColumn(boolean.build(), "", "370");
18915
  tooltipsTable.newRow();
18916
  tooltipsTable.addColumnText("");
18917
+ tooltipsTable.addColumnText(window.Buttonizer.translate('settings_window.other_settings.tooltips.info'));
18918
 
18919
  return tooltipsTable.build();
18920
  }
18936
 
18937
  // Table
18938
  let adminBarButtonTable = new Table();
18939
+ adminBarButtonTable.addColumnHTML("<h2>"+ window.Buttonizer.translate('settings_window.other_settings.subdomain.title') +"</h2>");
18940
  adminBarButtonTable.addColumn(boolean.build(), "", "370");
18941
  adminBarButtonTable.newRow();
18942
  adminBarButtonTable.addColumnText("");
18943
+ adminBarButtonTable.addColumnText(window.Buttonizer.translate('settings_window.other_settings.subdomain.info'));
18944
 
18945
  return adminBarButtonTable.build();
18946
  }
18952
 
18953
 
18954
 
18955
+
18956
  /* harmony default export */ var Settings = (class extends SettingsWindow
18957
  {
18958
  constructor() {
18959
+ super({}, window.Buttonizer.translate('settings_window.title'));
18960
  }
18961
 
18962
  render()
18964
  this.fontAwesome();
18965
  this.analytics();
18966
  this.mainSettings();
18967
+ // this.remigrate();
18968
  this.reset();
18969
  }
18970
 
18971
  fontAwesome()
18972
  {
18973
+ super.addItem(window.Buttonizer.translate('settings_window.icon_library.title'), new IconLibrary().build());
18974
  }
18975
 
18976
  analytics()
18980
 
18981
  mainSettings()
18982
  {
18983
+ super.addItem(window.Buttonizer.translate('settings_window.other_settings.title'), new ButtonizerMainSettings_ButtonizerMainSettings().build());
18984
+ }
18985
+
18986
+ remigrate()
18987
+ {
18988
+ super.addItem("Re-migrate", new Remigrate().build());
18989
  }
18990
 
18991
  reset()
18992
  {
18993
+ super.addItem(window.Buttonizer.translate('settings_window.reset.title'), new ResetButtonizer().build());
18994
  }
18995
  });
18996
 
19135
 
19136
  let searchInput = document.createElement("input");
19137
  searchInput.className = 'icon-selector-searchbar';
19138
+ searchInput.placeholder = window.Buttonizer.translate('utils.search_icons');
19139
  searchInput.addEventListener("keyup", () => {
19140
  // First clear timeout
19141
  clearTimeout(this.searchTimeout);
19253
  }
19254
  }else {
19255
  this.iframeContent.height = '50px';
19256
+ this.searchList.innerHTML = `<p>${window.Buttonizer.translate('utils.search_not_found')} <b>${keyword}</b></p>`;
19257
  }
19258
  }
19259
 
19595
  this.tour._introItems[13].element = jQuery('.button-group-styling:visible')[0].querySelector('.style-button');
19596
  this.tour._introItems[14].element = jQuery('.button-group-styling:visible')[0].querySelector('.style-icon');
19597
  this.tour._introItems[15].element = jQuery('.button-group-styling:visible')[0].querySelector('.style-label');
19598
+ // console.log(this.tour._introItems[11]);
19599
  Object(main["setTimeout"])(() => {
19600
  document.querySelector('.introjs-tooltipReferenceLayer').setAttribute('style', 'width: 385px; height: 966px; top: 46px; left: -5px;');
19601
  }, 100);
19912
  this.tour.setOptions({
19913
  showBullets: false,
19914
  exitOnOverlayClick: false,
19915
+ skipLabel: window.Buttonizer.translate('welcome.exit_tour'),
19916
+ doneLabel: window.Buttonizer.translate('welcome.exit_tour'),
19917
+ nextLabel: window.Buttonizer.translate('common.next') + ' →',
19918
+ prevLabel: '← ' + window.Buttonizer.translate('common.previous'),
19919
  scrollToElement: true,
19920
  showStepNumbers: false,
19921
+ disableInteraction: true
 
 
19922
  });
19923
 
19924
  this.tour.setOptions({
19925
  steps: [
19926
  // STEP 0
19927
  {
19928
+ intro: "<h2><b>"+ window.Buttonizer.translate('welcome.tour-steps.step-0.title') +"</b></h2> " +
19929
+ window.Buttonizer.translate('welcome.tour-steps.step-0.description') + '<br /><br />' +
19930
+ window.Buttonizer.translate('welcome.tour-steps.step-0.keyboard'),
19931
  position: 'left',
19932
  tooltipClass: 'max-width'
19933
  },
19934
  // STEP 1
19935
  {
19936
  element: document.querySelector('.buttonizer-bar'),
19937
+ intro: "<h2><b>"+ window.Buttonizer.translate('welcome.tour-steps.step-1.title') +"</b></h2> " + window.Buttonizer.translate('welcome.tour-steps.step-1.description'),
19938
  position: 'left'
19939
  },
19940
  // STEP 2
19941
  {
19942
  element: document.querySelector('.buttonizer-frame'),
19943
+ intro: "<h2><b>"+ window.Buttonizer.translate('welcome.tour-steps.step-2.title') +"</b></h2> " + window.Buttonizer.translate('welcome.tour-steps.step-2.description'),
19944
  position: 'left'
19945
  },
19946
  // STEP 3
19947
  {
19948
  element: document.querySelector('.buttonizer-topbar'),
19949
+ intro: "<h2><b>"+ window.Buttonizer.translate('welcome.tour-steps.step-3.title') +"</b></h2> " + window.Buttonizer.translate('welcome.tour-steps.step-3.description') + `
19950
 
19951
  <h4 style="font-weight:400;text-align:left;padding:0 15px">
19952
+ 1. ${window.Buttonizer.translate('welcome.tour-steps.step-3.list.close')}<br>
19953
+ 2. ${window.Buttonizer.translate('welcome.tour-steps.step-3.list.revert')}<br>
19954
+ 3. ${window.Buttonizer.translate('welcome.tour-steps.step-3.list.publish')}<br>
19955
+ 4. ${window.Buttonizer.translate('welcome.tour-steps.step-3.list.general-settings')}
19956
  </h4>`,
19957
  position: 'left',
19958
  tooltipClass: 'middle',
19960
  // STEP 4
19961
  {
19962
  element: document.querySelector('.buttonizer-topbar .options-button'),
19963
+ intro: window.Buttonizer.translate('welcome.tour-steps.step-4.description'),
19964
  position: 'left',
19965
  disableInteraction: false,
19966
  },
19967
  // STEP 5
19968
  {
19969
  element: document.querySelector('.options-window'),
19970
+ intro: "<h2><b>"+ window.Buttonizer.translate('welcome.tour-steps.step-5.title') +"</b></h2>" +
19971
+ "<b>"+ window.Buttonizer.translate('bar.menu.knowledgebase.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-5.list.knowledgebase') +"<br>" +
19972
+ "<b>"+ window.Buttonizer.translate('bar.menu.support.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-5.list.support') +"<br>" +
19973
+ "<b>"+ window.Buttonizer.translate('bar.menu.community.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-5.list.community') +"<br>" +
19974
+ "<b>"+ window.Buttonizer.translate('bar.menu.account.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-5.list.account') +"<br>" +
19975
+ "<b>"+ window.Buttonizer.translate('bar.menu.upgrade.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-5.list.upgrade') +"<br>" +
19976
+ "<b>"+ window.Buttonizer.translate('bar.menu.affiliation.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-5.list.affiliation') +"<br>" +
19977
+ "<b>"+ window.Buttonizer.translate('bar.menu.options.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-5.list.options'),
 
19978
  position: 'left',
19979
  tooltipClass: 'wider',
19980
  },
19981
  // STEP 6
19982
  {
19983
  element: window.Buttonizer.topBar.optionsWindow.querySelector('.single-button'),
19984
+ intro: window.Buttonizer.translate('welcome.tour-steps.step-6.description') + ' &rarr;',
19985
  position: 'left',
19986
  disableInteraction: false,
19987
  highlightClass: 'introjs-custom-hidden',
19989
  // STEP 7
19990
  {
19991
  element: window.Buttonizer.settingsWindow.title.parentElement.parentElement.querySelector('.window-menu'),
19992
+ intro:
19993
+ "<h2><b>"+ window.Buttonizer.translate('welcome.tour-steps.step-7.title') +"</b></h2>" +
19994
+ "<b>"+ window.Buttonizer.translate('settings_window.icon_library.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-7.list.icon-library') +"<br>" +
19995
+ "<b>Google Analytics:</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-7.list.google-analytics') +"<br>" +
19996
+ "<b>"+ window.Buttonizer.translate('settings_window.reset.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-7.list.reset') +"<br>",
19997
  position: 'left',
19998
  highlightClass: 'introjs-custom-hidden',
19999
  tooltipClass: 'wider',
20001
  // STEP 8
20002
  {
20003
  element: window.Buttonizer.bar.groupHolder.querySelector('.button-group-holder'),
20004
+ intro:
20005
+ "<h2><b>"+ window.Buttonizer.translate('welcome.tour-steps.step-8.title') +"</b></h2>" +
20006
+ window.Buttonizer.translate('welcome.tour-steps.step-8.multiple_buttons') + "<br><br>" +
20007
+ window.Buttonizer.translate('welcome.tour-steps.step-8.visible') + "<br><br>" +
20008
+ window.Buttonizer.translate('welcome.tour-steps.step-8.position') + "<br>",
20009
  position: 'right',
20010
  tooltipClass: 'max-width'
20011
  },
20012
  // STEP 9
20013
  {
20014
  element: window.Buttonizer.bar.groupHolder.querySelector('.button-group-holder').querySelector('.group-style'),
20015
+ intro: '<b>&larr;</b> ' + window.Buttonizer.translate('welcome.tour-steps.step-9.description'),
 
20016
  position: 'right',
20017
  disableInteraction: false,
20018
  },
20019
  // STEP 10
20020
  {
20021
  element: window.Buttonizer.bar.settingContainer,
20022
+ intro:
20023
+ "<h2><b>"+ window.Buttonizer.translate('welcome.tour-steps.step-10.title') +"</b></h2>" +
20024
+ window.Buttonizer.translate('welcome.tour-steps.step-10.description') + "<br><br>" +
20025
+ window.Buttonizer.translate('welcome.tour-steps.step-10.action'),
20026
  position: 'right',
20027
  disableInteraction: false,
20028
  highlightClass: 'introjs-custom-gone',
20033
  // STEP 11
20034
  {
20035
  element: this.getAmount() === 1 ? jQuery('.button-group-styling')[1].querySelector('.style-top') : window.Buttonizer.buttonGroups[0].stylingObject.querySelector('.style-top'),
20036
+ intro:
20037
+ "<h2><b>"+ window.Buttonizer.translate('welcome.tour-steps.step-11.title') +"</b></h2>" +
20038
+ "<b>"+ window.Buttonizer.translate('settings.menu_position.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-11.position') +"<br>" +
20039
+ "<b>"+ window.Buttonizer.translate('settings.show_mobile_desktop.title') +"</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-11.visibility') +"<br>",
20040
  position: 'right',
20041
  disableInteraction: false,
20042
  scrollTo: false,
20046
  // STEP 12
20047
  {
20048
  element: this.getAmount() === 1 ? jQuery('.button-group-styling')[1].querySelector('.style-menu') : window.Buttonizer.buttonGroups[0].stylingObject.querySelector('.style-menu'),
20049
+ intro:
20050
+ "<h2><b>"+ window.Buttonizer.translate('welcome.tour-steps.step-12.title') +"</b></h2>" +
20051
+ "<b>"+ window.Buttonizer.translate('settings.start_opened.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-12.start_opened') +"<br>" +
20052
+ "<b>"+ window.Buttonizer.translate('settings.menu_style.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-12.menu_style') +"<br>" +
20053
+ "<b>"+ window.Buttonizer.translate('settings.menu_animation.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-12.animation') +"<br>",
20054
  position: 'right',
20055
  disableInteraction: false,
20056
  scrollTo: false,
20060
  // STEP 13
20061
  {
20062
  element: this.getAmount() === 1 ? jQuery('.button-group-styling')[1].querySelector('.style-button') : window.Buttonizer.buttonGroups[0].stylingObject.querySelector('.style-button'),
20063
+ intro:
20064
+ "<h2><b>"+ window.Buttonizer.translate('welcome.tour-steps.step-13.title') +"</b></h2>" +
20065
+ "<b>"+ window.Buttonizer.translate('settings.background_color.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-13.background_color') +"<br>" +
20066
+ "<b>"+ window.Buttonizer.translate('settings.border_radius.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-13.border_radius') +"<br>" +
20067
+ "<b>"+ window.Buttonizer.translate('settings.background_image.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-13.background_image') +"<br>",
20068
  position: 'right',
20069
  disableInteraction: false,
20070
  scrollTo: false,
20074
  // STEP 14
20075
  {
20076
  element: this.getAmount() === 1 ? jQuery('.button-group-styling')[1].querySelector('.style-icon') : window.Buttonizer.buttonGroups[0].stylingObject.querySelector('.style-icon'),
20077
+ intro:
20078
+ "<h2><b>"+ window.Buttonizer.translate('settings.setting_categories.group_icon') +"</b></h2>" +
20079
+ "<b>"+ window.Buttonizer.translate('settings.icon_or_image.title') +":</b> "+ window.Buttonizer.translate('settings.icon_or_image.description') +"<br>" +
20080
+ "<h2 style=\"margin: 1em 0 0 0;\"><b>"+ window.Buttonizer.translate('settings.icon.title') +"</b></h2>" +
20081
+ "<b>"+ window.Buttonizer.translate('settings.icon.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-14.icon') +"<br>" +
20082
+ "<b>"+ window.Buttonizer.translate('settings.icon_color.title') +":</b> "+ window.Buttonizer.translate('settings.icon_color.description') +"<br>" +
20083
+ "<b>"+ window.Buttonizer.translate('settings.icon_size.title') +":</b> "+ window.Buttonizer.translate('settings.icon_size.description') +"<br>" +
20084
+ "<h2 style=\"margin: 1em 0 0 0;\"><b>"+ window.Buttonizer.translate('utils.image') +"</b></h2>" +
20085
+ "<b>"+ window.Buttonizer.translate('settings.icon_image_select.title') +":</b> "+ window.Buttonizer.translate('settings.icon_image_select.description') +"<br>" +
20086
+ "<b>"+ window.Buttonizer.translate('settings.icon_image_border_radius.title') +":</b> "+ window.Buttonizer.translate('settings.icon_image_border_radius.description') +"<br>" +
20087
+ "<b>"+ window.Buttonizer.translate('settings.icon_image_size.title') +":</b> "+ window.Buttonizer.translate('settings.icon_image_size.description') +"<br>",
20088
+
20089
  position: 'right',
20090
  disableInteraction: false,
20091
  scrollTo: false,
20095
  // STEP 15
20096
  {
20097
  element: this.getAmount() === 1 ? jQuery('.button-group-styling')[1].querySelector('.style-label') : window.Buttonizer.buttonGroups[0].stylingObject.querySelector('.style-label'),
20098
+
20099
+ intro:
20100
+ "<h2><b>"+ window.Buttonizer.translate('settings.setting_categories.label') +"</b></h2>" +
20101
+ "<b>"+ window.Buttonizer.translate('settings.label.title') +":</b> "+ window.Buttonizer.translate('settings.label.description') +"<br>" +
20102
+ "<b>"+ window.Buttonizer.translate('settings.label_desktop.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-15.label_visibility') +"<br>" +
20103
+ "<b>"+ window.Buttonizer.translate('settings.label_color.title') +":</b> "+ window.Buttonizer.translate('settings.label_color.description') +"<br>" +
20104
+ "<b>"+ window.Buttonizer.translate('settings.font_size_border_radius.title') +":</b> "+ window.Buttonizer.translate('settings.font_size_border_radius.description') +"<br>",
20105
  position: 'right',
20106
  disableInteraction: false,
20107
  scrollTo: false,
20112
  // STEP 16
20113
  {
20114
  element: window.Buttonizer.buttonGroups[0].groupObject.querySelector('.create-new-button'),
20115
+ intro: '<h2><b>'+ window.Buttonizer.translate('utils.new_button') +'</b></h2>&larr; ' + window.Buttonizer.translate('welcome.tour-steps.step-before-button.action'),
 
 
 
20116
  position: 'right',
20117
  disableInteraction: false,
20118
  },
20119
  // STEP 17
20120
  {
20121
  element: window.Buttonizer.buttonGroups[0].groupObject.querySelector('.create-new-button'),
20122
+ intro: window.Buttonizer.translate('welcome.tour-steps.step-before-button.msg1'),
20123
  position: 'right',
20124
  disableInteraction: false,
20125
  },
20126
  // STEP 18
20127
  {
20128
  element: window.Buttonizer.buttonGroups[0].groupObject.querySelector('.create-new-button'),
20129
+ intro: window.Buttonizer.translate('welcome.tour-steps.step-before-button.msg2'),
20130
  position: 'right',
20131
  disableInteraction: false,
20132
  },
20133
  // STEP 19
20134
  {
20135
  element: window.Buttonizer.buttonGroups[0].groupObject.querySelector('.create-new-button'),
20136
+ intro: window.Buttonizer.translate('welcome.tour-steps.step-before-button.msg3'),
20137
  position: 'right',
20138
  disableInteraction: false,
20139
  },
20147
  // STEP 21
20148
  {
20149
  position: 'bottom',
20150
+ intro: window.Buttonizer.translate('welcome.tour-steps.step-before-button.msg4'),
20151
  disableInteraction: false,
20152
  highlightClass: 'introjs-custom-gone',
20153
  tooltipClass: 'introjs-custom-gone',
20175
  this.tour.setOptions({
20176
  showBullets: false,
20177
  exitOnOverlayClick: false,
20178
+ skipLabel: window.Buttonizer.translate('welcome.exit_tour'),
20179
+ doneLabel: window.Buttonizer.translate('welcome.exit_tour'),
20180
+ nextLabel: window.Buttonizer.translate('common.next') + ' →',
20181
+ prevLabel: '← ' + window.Buttonizer.translate('common.previous'),
20182
  scrollToElement: true,
20183
  showStepNumbers: false,
20184
  disableInteraction: true,
 
20185
 
20186
  });
20187
 
20193
  // STEP 0
20194
  {
20195
  element: newButt,
20196
+ intro: "<h2><b>"+ window.Buttonizer.translate('common.button') +"</b></h2> " + window.Buttonizer.translate('welcome.tour-steps.step-23'),
20197
  position: 'right',
20198
  },
20199
  // STEP 1
20200
  {
20201
  element: this.amount <= 7 ? newButt.querySelector('.group-title') : newButt,
20202
+ intro: "<h2><b>"+ window.Buttonizer.translate('settings.name.title') +"</b></h2> " + window.Buttonizer.translate('settings.name.description'),
20203
  position: 'bottom',
20204
  scrollToElement: false,
20205
  highlightClass: 'introjs-custom-gone',
20207
  // STEP 2
20208
  {
20209
  element: this.amount <= 7 ? newButt.querySelector('.mobile-desktop') : newButt,
20210
+ intro: "<h2><b>"+ window.Buttonizer.translate('settings.label_desktop.title') +"</b></h2> " + window.Buttonizer.translate('welcome.tour-steps.step-15'),
20211
  position: 'bottom',
20212
  highlightClass: 'introjs-custom-gone',
20213
 
20215
  // STEP 3
20216
  {
20217
  element: this.amount <= 7 ? newButt.querySelector('.holder-button') : newButt,
20218
+ intro: "&larr; " + window.Buttonizer.translate('welcome.tour-steps.step-26'),
20219
  position: 'right',
20220
  highlightClass: 'introjs-custom-gone',
20221
  disableInteraction: false,
20223
  // STEP 4
20224
  {
20225
  element: this.amount <= 7 ? newButt.querySelector('.group-holder-quick-menu') : newButt,
20226
+ intro: '<h2><b>Menu</b></h2>' +
20227
+ '<p style="text-align: left;">' +
20228
+ '<b>'+ window.Buttonizer.translate('common.settings') +':</b> '+ window.Buttonizer.translate('welcome.tour-steps.step-27.edit_button') +'<br>' +
20229
+ '<b>'+ window.Buttonizer.translate('utils.advanced_settings') +':</b> '+ window.Buttonizer.translate('welcome.tour-steps.step-27.advanced_settings') +'<br>' +
20230
+ '<b>'+ window.Buttonizer.translate('utils.rename') +':</b> '+ window.Buttonizer.translate('welcome.tour-steps.step-27.rename') +'<br>' +
20231
+ '<b>'+ window.Buttonizer.translate('utils.duplicate') +':</b> '+ window.Buttonizer.translate('welcome.tour-steps.step-27.duplicate') + '<br>' +
20232
+ '<b>'+ window.Buttonizer.translate('utils.delete') +':</b> '+ window.Buttonizer.translate('welcome.tour-steps.step-27.delete') + '<br>' +
20233
+ '</p>',
20234
+
20235
  position: 'right',
20236
  highlightClass: 'introjs-custom-gone',
20237
  },
20238
  // STEP 5
20239
  {
20240
  element: this.amount <= 7 ? newButt.querySelector('.group-holder-quick-menu').querySelector('.settings') : newButt,
20241
+ intro: "&larr; " + window.Buttonizer.translate('welcome.tour-steps.step-28'),
20242
  position: 'right',
20243
  disableInteraction: false,
20244
  highlightClass: 'introjs-custom-hidden',
20246
  // STEP 6
20247
  {
20248
  element: window.Buttonizer.bar.settingContainer,
20249
+ intro: "<b><h2>"+ window.Buttonizer.translate('welcome.tour-steps.step-29.title') +"</h2></b> " + window.Buttonizer.translate('welcome.tour-steps.step-29.description'),
20250
  position: 'right',
20251
  disableInteraction: false,
20252
  highlightClass: 'introjs-custom-gone',
20254
  // STEP 7
20255
  {
20256
  element: set.querySelectorAll('.style-top')[set.querySelectorAll('.style-top').length -1],
20257
+ intro:
20258
+ "<h2><b>"+ window.Buttonizer.translate('welcome.tour-steps.step-30.title') +"</b></h2>" +
20259
+ "<b>"+ window.Buttonizer.translate('settings.button_action.title') +":</b> "+ window.Buttonizer.translate('settings.button_action.description') +"<br>" +
20260
+ "<b>"+ window.Buttonizer.translate('settings.show_mobile_desktop.device_visibility') +":</b> "+ window.Buttonizer.translate('settings.show_mobile_desktop.description'),
20261
  position: 'right',
20262
  disableInteraction: false,
20263
  highlightClass: 'introjs-custom-gone',
20266
  // STEP 8
20267
  {
20268
  element: set.querySelectorAll('.style-button')[set.querySelectorAll('.style-button').length -1],
20269
+ intro: "<h2><b>"+ window.Buttonizer.translate('settings.setting_categories.button_style') +"</b></h2>" +
20270
+ window.Buttonizer.translate('welcome.tour-steps.step-31.enabled') + "<br>" +
20271
+ window.Buttonizer.translate('welcome.tour-steps.step-31.turning_off'),
 
20272
  position: 'right',
20273
  disableInteraction: false,
20274
  highlightClass: 'introjs-custom-gone',
20277
  // STEP 9
20278
  {
20279
  element: set.querySelectorAll('.style-icon')[set.querySelectorAll('.style-icon').length -1],
20280
+ intro:
20281
+ "<h2><b>"+ window.Buttonizer.translate('settings.setting_categories.button_icon') +"</b></h2>" +
20282
+ "<b>"+ window.Buttonizer.translate('settings.icon_or_image.title') +":</b> "+ window.Buttonizer.translate('settings.icon_or_image.description') +"<br>" +
20283
+ "<h2 style=\"margin: 1em 0 0 0;\"><b>"+ window.Buttonizer.translate('settings.icon.title') +"</b></h2>" +
20284
+ "<b>"+ window.Buttonizer.translate('settings.icon.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-14.icon') +"<br>" +
20285
+ "<b>"+ window.Buttonizer.translate('settings.icon_color.title') +":</b> "+ window.Buttonizer.translate('settings.icon_color.description') +"<br>" +
20286
+ "<b>"+ window.Buttonizer.translate('settings.icon_size.title') +":</b> "+ window.Buttonizer.translate('settings.icon_size.description') +"<br>" +
20287
+ "<h2 style=\"margin: 1em 0 0 0;\"><b>"+ window.Buttonizer.translate('utils.image') +"</b></h2>" +
20288
+ "<b>"+ window.Buttonizer.translate('settings.icon_image_select.title') +":</b> "+ window.Buttonizer.translate('settings.icon_image_select.description') +"<br>" +
20289
+ "<b>"+ window.Buttonizer.translate('settings.icon_image_border_radius.title') +":</b> "+ window.Buttonizer.translate('settings.icon_image_border_radius.description') +"<br>" +
20290
+ "<b>"+ window.Buttonizer.translate('settings.icon_image_size.title') +":</b> "+ window.Buttonizer.translate('settings.icon_image_size.description') +"<br>",
20291
  position: 'right',
20292
  disableInteraction: false,
20293
  highlightClass: 'introjs-custom-gone',
20296
  // STEP 10
20297
  {
20298
  element: set.querySelectorAll('.style-label')[set.querySelectorAll('.style-label').length -1],
20299
+ intro:
20300
+ "<h2><b>"+ window.Buttonizer.translate('settings.setting_categories.label') +"</b></h2>" +
20301
+ "<b>"+ window.Buttonizer.translate('settings.label.title') +":</b> "+ window.Buttonizer.translate('settings.label.description') +"<br>" +
20302
+ "<b>"+ window.Buttonizer.translate('settings.label_desktop.title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-15.label_visibility') +"<br>" +
20303
+ "<b>"+ window.Buttonizer.translate('settings.label_color.title') +":</b> "+ window.Buttonizer.translate('settings.label_color.description') +"<br>" +
20304
+ "<b>"+ window.Buttonizer.translate('settings.font_size_border_radius.title') +":</b> "+ window.Buttonizer.translate('settings.font_size_border_radius.description') +"<br>",
20305
  position: 'right',
20306
  disableInteraction: false,
20307
  highlightClass: 'introjs-custom-gone',
20310
  // STEP 11
20311
  {
20312
  element: window.Buttonizer.topBar.topBarElement.querySelector('.revert-save'),
20313
+ intro: "<h2><b>"+ window.Buttonizer.translate('welcome.tour-steps.step-34.title') +"</b></h2>" +
20314
+ "<b>"+ window.Buttonizer.translate('welcome.tour-steps.step-34.revert_title') +":</b> "+ window.Buttonizer.translate('welcome.tour-steps.step-34.revert_description') +"<br><br>" +
20315
+ "<b>"+ window.Buttonizer.translate('welcome.tour-steps.step-34.save_title') +":</b> " + window.Buttonizer.translate('welcome.tour-steps.step-34.save_description'),
 
20316
  position: 'right',
20317
  disableInteraction: true,
20318
  tooltipClass: 'right',
20319
  },
20320
  // Thanking user
20321
  {
20322
+ intro: "<h2><b>"+ window.Buttonizer.translate('welcome.tour-steps.final.title') +"</b></h2>" +
20323
+ window.Buttonizer.translate('welcome.tour-steps.final.intro') + "<br /><br />" + window.Buttonizer.translate('welcome.tour-steps.final.outro'),
 
 
 
20324
  position: 'left',
20325
  tooltipClass: 'max-width'
20326
  },
20349
 
20350
 
20351
 
20352
+ __webpack_require__(13);
20353
 
20354
  window.bdebug = new components_Debug();
20355
 
20429
  document.head.appendChild(favicon);
20430
 
20431
  this.loader = new ui_Loader();
20432
+ this.loader.show(this.translate('loading.settings'));
20433
  this.savingMechanism = new ui_Saving();
20434
 
20435
  bdebug.warning("Buttonizer settings loading");
20557
  onShow: () => this.getSetting('show_tooltips', 'true') === 'true' || this.getSetting('show_tooltips') === true
20558
  });
20559
 
20560
+ this.loader.show(this.translate('loading.bar'));
20561
 
20562
  // Setup
20563
  this.topBar = new ui_TopBar(this);
20566
 
20567
  this.changes = data.changes;
20568
  if (data.changes) {
20569
+ this.topBar.alertText.alert(this.translate('bar.previous_session'));
20570
  }
20571
 
20572
  this.initializeSettings(data.settings);
20617
  this.topBar.updateEventLogs(event.data.message);
20618
  } else if (event.data.messageType === 'javascript_error') {
20619
  new Modal({
20620
+ title: this.translate('errors.custom_javascript.title'),
20621
  content: `
20622
+ <p>${this.translate('errors.custom_javascript.message')}</p> <p><code style="display: block; padding: 15px;">${event.data.message}</code></p>
20623
  `,
20624
  buttons: [{
20625
+ text: this.translate('common.ok_fix'),
20626
  confirm: true,
20627
  }]
20628
  });
20688
 
20689
  // Update iframe path
20690
 
20691
+ this.loader.show(this.translate('loading.website'), 'site-loading');
20692
 
20693
  setTimeout(() => {
20694
  if (!this.iframeLoaded) {
20695
+ this.loader.show(this.translate('loading.website') + "<br /><br /><small>"+ this.translate('loading.website_slow') +"<br /><br /><a href='javascript:void(0)' onclick='window.Buttonizer.loader.hide()'>"+ this.translate('loading.website_skip') +"</a></small>");
20696
  }
20697
  }, 5000);
20698
 
20715
  this.loader.hide();
20716
 
20717
  new Modal({
20718
+ title: this.translate('welcome.title') + " " + this.version,
20719
  content: `
20720
  <img src="${buttonizer_admin.assets}/images/plugin-icon.png" width="100" align="left" style="margin-right: 20px; margin-bottom: 10px;" />
20721
+ <p>${this.translate('welcome.intro')}</p>
20722
+ <p>${this.translate('welcome.tour')}</p>
20723
  `,
20724
 
20725
  onClose: () => {
20733
  },
20734
 
20735
  buttons: [{
20736
+ text: this.translate("welcome.already_know") + " <i class=\"fa fa-chevron-right\" style=\"margin-left: 10px; vertical-align: middle;\" aria-hidden=\"true\"></i>",
20737
  close: true,
20738
  }, {
20739
+ text: this.translate('welcome.take_tour') + " <i class=\"fa fa-chevron-right\" style=\"margin-left: 10px; vertical-align: middle;\" aria-hidden=\"true\"></i>",
20740
  confirm: true,
20741
  }]
20742
  });
20747
  */
20748
  updateButtonsTo2Point0() {
20749
  new Modal({
20750
+ title: this.translate("migration_modal.title"),
20751
  content: `
20752
+ <p>${this.translate("migration_modal.intro")}</p>
20753
+ <p>${this.translate("migration_modal.convert")}</p>
20754
 
20755
+ <p>${this.translate("migration_modal.popping_up")}</p>
20756
  `,
20757
 
20758
  onConfirm: () => {
20759
+ window.Buttonizer.loader.show(this.translate("loading.running_migration"));
20760
 
20761
  jQuery.ajax({
20762
  url: buttonizer_admin.ajax + '?action=buttonizer_backend&request=SaveData&save=migrate-buttonizer',
20767
  },
20768
  success: (data) => {
20769
  if (data.status === "success") {
20770
+ window.Buttonizer.loader.show(this.translate("loading.finishing"));
20771
 
20772
  setTimeout(() => {
20773
  document.location.reload();
20785
  },
20786
 
20787
  buttons: [{
20788
+ text: this.translate('modal.no_thanks'),
20789
  close: true,
20790
  }, {
20791
+ text: this.translate('migration_modal.convert_buttons') + " <i class=\"fa fa-chevron-right\" style=\"margin-left: 10px; vertical-align: middle;\" aria-hidden=\"true\"></i>",
20792
  confirm: true,
20793
  }]
20794
  });
20800
  leftButtonizerWarning() {
20801
  let warning = document.createElement("div");
20802
  warning.className = 'buttonizer-warning warning-red';
20803
+ warning.innerHTML = this.translate('bar.preview.no_changes');
20804
 
20805
  let button = document.createElement("a");
20806
  button.href = 'javascript:void(0)';
20807
  button.className = 'buttonizer-warning-button';
20808
+ button.innerText = this.translate('bar.preview.return');
20809
 
20810
  button.addEventListener("click", () => {
20811
  document.body.className = document.body.className.replace('warning-left-preview-window', '');
20831
  */
20832
  saveSettings(newSetting, showLoadingScreen) {
20833
  if (showLoadingScreen) {
20834
+ this.loader.show(this.translate('common.saving_settings'));
20835
  }
20836
 
20837
  Object.assign(this.settings, newSetting);
20944
  /**
20945
  *
20946
  */
20947
+ showPremiumPopup(description, video) {
20948
  new Modal({
20949
+ title: `<i class="far fa-gem window-icon"></i> ` + this.translate('premium.modal.title'),
20950
  content: `
20951
+ <p>${this.translate('premium.modal.describe')}</p>
20952
  <code style="display: block; margin-bottom: 5px; padding: 10px;">${description}</code>
20953
+ <p><b>${this.translate('premium.modal.what_do_i_get')}</b></p>
20954
 
20955
  <ul class="buttonizer-pro-checklist">
20956
+ <li><i class="fas fa-check"></i> ${this.translate('premium.modal.list.time_schedules')}</li>
20957
+ <li><i class="fas fa-check"></i> ${this.translate('premium.modal.list.page_rules')}</li>
20958
+ <li><i class="fas fa-check"></i> ${this.translate('premium.modal.list.button_groups')}</li>
20959
+ <li><i class="fas fa-check"></i> ${this.translate('premium.modal.list.custom_images')}</li>
20960
+ <li><i class="fas fa-check"></i> ${this.translate('premium.modal.list.exit_intent')}</li>
20961
+ <li><i class="fas fa-check"></i> ${this.translate('premium.modal.list.show_on_scroll')}</li>
20962
+ <li><i class="fas fa-check"></i> ${this.translate('premium.modal.list.show_on_timeout')}</li>
20963
+ <li><i class="fas fa-check"></i> ${this.translate('premium.modal.list.custom_class')}</li>
20964
+ <li><i class="fas fa-check"></i> ${this.translate('premium.modal.list.javascript')}</li>
 
20965
  </ul>`,
20966
  onConfirm: () => {
20967
  document.location.href = buttonizer_admin.admin + '?page=Buttonizer-pricing';
20968
  },
20969
+ video: video,
20970
  buttons: [{
20971
+ text: this.translate('modal.close'),
20972
  close: true
20973
  }, {
20974
+ text: this.translate('premium.modal.go_pro') + ' <i class="fas fa-chevron-right" style="margin-left: 5px;vertical-align: middle;"></i>',
20975
  confirm: true,
20976
  close: true,
20977
  focus: true
21020
  */
21021
  savingError(message) {
21022
  new Modal({
21023
+ title: this.translate('errors.saving.title'),
21024
+ content: `<p>${this.translate('errors.saving.message')}.</p><p>${message}</p>`,
21025
  buttons: [{
21026
+ text: this.translate('modal.close'),
21027
  close: true
21028
  }]
21029
  });
21064
  },
21065
  [
21066
  {
21067
+ name: window.Buttonizer.translate('utils.first_button'),
21068
  show_mobile: true,
21069
  show_desktop: true
21070
  },
21071
  {
21072
+ name: window.Buttonizer.translate('utils.second_button'),
21073
  show_mobile: true,
21074
  show_desktop: true
21075
  }
21085
 
21086
  new ButtonGroup(this.buttonizerInitData.groups[0].data, this.buttonizerInitData.groups[0].buttons);
21087
  }
21088
+
21089
+ /**
21090
+ * Translate string
21091
+ *
21092
+ * @param prop
21093
+ */
21094
+ translate(prop = '') {
21095
+ let localization_array = prop.split('.');
21096
+
21097
+ // First not found
21098
+ if(typeof buttonizer_translations[localization_array[0]] === "undefined") {
21099
+ console.error("Localization not found: " + prop);
21100
+ return prop;
21101
+ }
21102
+
21103
+ let result = buttonizer_translations[localization_array[0]];
21104
+
21105
+ for(let i = 1, len = localization_array.length; i < len; i++) {
21106
+ if(typeof result[localization_array[i]] === "undefined") {
21107
+ console.error("Localization not found: " + prop);
21108
+ return prop;
21109
+ }
21110
+
21111
+ result = result[localization_array[i]];
21112
+ }
21113
+
21114
+ return result;
21115
+ }
21116
+
21117
+ /**
21118
+ *
21119
+ * @param prop
21120
+ * @returns {string}
21121
+ */
21122
+ __(prop = '') {
21123
+ return this.translate(prop);
21124
+ }
21125
+ }
21126
+
21127
+ // Translation helper
21128
+ if (!String.prototype.format) {
21129
+ String.prototype.format = function() {
21130
+ var args = arguments;
21131
+ return this.replace(/{(\d+)}/g, function(match, number) {
21132
+ return typeof args[number] != 'undefined'
21133
+ ? args[number]
21134
+ : match
21135
+ ;
21136
+ });
21137
+ };
21138
  }
21139
 
21140
  window.Buttonizer = new Buttonizer_Buttonizer();
21141
 
21142
 
21143
  /***/ }),
21144
+ /* 17 */,
21145
+ /* 18 */
21146
  /***/ (function(module, exports) {
21147
 
21148
  // removed by extract-text-webpack-plugin
assets/dashboard.min.js CHANGED
@@ -10,7 +10,7 @@
10
  *
11
  * (C) 2017-2019 Buttonizer
12
  *
13
- */!function(t){var e={};function n(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return t[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(i,o,function(e){return t[e]}.bind(null,o));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=15)}([function(t,e,n){(function(t){var i=void 0!==t&&t||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function r(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new r(o.call(setTimeout,i,arguments),clearTimeout)},e.setInterval=function(){return new r(o.call(setInterval,i,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},r.prototype.unref=r.prototype.ref=function(){},r.prototype.close=function(){this._clearFn.call(i,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(11),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,n(1))},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){
14
  /*!
15
  * drag-tracker v1.0.0
16
  * https://github.com/Sphinxxxx/drag-tracker#readme
@@ -18,7 +18,7 @@
18
  * Copyright 2017-2018 Andreas Borgen
19
  * Released under the MIT license.
20
  */
21
- t.exports=function(){"use strict";var t=window;return function(e){var n=Element.prototype;n.matches||(n.matches=n.msMatchesSelector||n.webkitMatchesSelector),n.closest||(n.closest=function(t){var e=this;do{if(e.matches(t))return e;e="svg"===e.tagName?e.parentNode:e.parentElement}while(e);return null});var i=(e=e||{}).container||document.documentElement,o=e.selector,r=e.callback||console.log,s=e.callbackDragStart,a=e.callbackDragEnd,l=e.callbackClick,c=e.propagateEvents,u=!1!==e.roundCoords,d=!1!==e.dragOutside,p=e.handleOffset||!1!==e.handleOffset,h=null;switch(p){case"center":h=!0;break;case"topleft":case"top-left":h=!1}var m=void 0;function b(t,e,n,o){var r=t.clientX,s=t.clientY;function a(t,e,n){return Math.max(e,Math.min(t,n))}if(e){var l=e.getBoundingClientRect();if(r-=l.left,s-=l.top,n&&(r-=n[0],s-=n[1]),o&&(r=a(r,0,l.width),s=a(s,0,l.height)),e!==i){var c=null!==h?h:"circle"===e.nodeName||"ellipse"===e.nodeName;c&&(r-=l.width/2,s-=l.height/2)}}return u?[Math.round(r),Math.round(s)]:[r,s]}function f(t){t.preventDefault(),c||t.stopPropagation()}function g(t){var e=void 0;if(e=o?o instanceof Element?o.contains(t.target)?o:null:t.target.closest(o):{}){f(t);var n=o&&p?b(t,e):[0,0],r=b(t,i,n);m={target:e,mouseOffset:n,startPos:r,actuallyDragged:!1},s&&s(e,r)}}function y(t){if(m){f(t);var e=m.startPos,n=b(t,i,m.mouseOffset,!d);m.actuallyDragged=m.actuallyDragged||e[0]!==n[0]||e[1]!==n[1],r(m.target,n,e)}}function w(t,e){if(m){if(a||l){var n=!m.actuallyDragged,o=n?m.startPos:b(t,i,m.mouseOffset,!d);l&&n&&!e&&l(m.target,o),a&&a(m.target,o,m.startPos,e||n&&l)}m=null}}function v(t,e){w(x(t),e)}function k(t,e,n){t.addEventListener(e,n)}function E(t){return void 0!==t.buttons?1===t.buttons:1===t.which}function C(t,e){1===t.touches.length?e(x(t)):w(t,!0)}function x(t){var e=t.targetTouches[0];return e||(e=t.changedTouches[0]),e.preventDefault=t.preventDefault.bind(t),e.stopPropagation=t.stopPropagation.bind(t),e}k(i,"mousedown",function(t){E(t)?g(t):w(t,!0)}),k(i,"touchstart",function(t){return C(t,g)}),k(t,"mousemove",function(t){m&&(E(t)?y(t):w(t))}),k(t,"touchmove",function(t){return C(t,y)}),k(i,"mouseup",function(t){m&&!E(t)&&w(t)}),k(i,"touchend",function(t){return v(t)}),k(i,"touchcancel",function(t){return v(t,!0)})}}()},function(t,e){var n,i,o=t.exports={};function r(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(t){if(n===setTimeout)return setTimeout(t,0);if((n===r||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:r}catch(t){n=r}try{i="function"==typeof clearTimeout?clearTimeout:s}catch(t){i=s}}();var l,c=[],u=!1,d=-1;function p(){u&&l&&(u=!1,l.length?c=l.concat(c):d=-1,c.length&&h())}function h(){if(!u){var t=a(p);u=!0;for(var e=c.length;e;){for(l=c,c=[];++d<e;)l&&l[d].run();d=-1,e=c.length}l=null,u=!1,function(t){if(i===clearTimeout)return clearTimeout(t);if((i===s||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(t);try{i(t)}catch(e){try{return i.call(null,t)}catch(e){return i.call(this,t)}}}(t)}}function m(t,e){this.fun=t,this.array=e}function b(){}o.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];c.push(new m(t,e)),1!==c.length||u||a(h)},m.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=b,o.addListener=b,o.once=b,o.off=b,o.removeListener=b,o.removeAllListeners=b,o.emit=b,o.prependListener=b,o.prependOnceListener=b,o.listeners=function(t){return[]},o.binding=function(t){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(t){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(t,e,n){"use strict";(function(t){for(
22
  /**!
23
  * @fileOverview Kickass library to create and place poppers near their reference elements.
24
  * @version 1.15.0
@@ -43,7 +43,7 @@ t.exports=function(){"use strict";var t=window;return function(e){var n=Element.
43
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
44
  * SOFTWARE.
45
  */
46
- var n="undefined"!=typeof window&&"undefined"!=typeof document,i=["Edge","Trident","Firefox"],o=0,r=0;r<i.length;r+=1)if(n&&navigator.userAgent.indexOf(i[r])>=0){o=1;break}var s=n&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},o))}};function a(t){return t&&"[object Function]"==={}.toString.call(t)}function l(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function c(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function u(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=l(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:u(c(t))}var d=n&&!(!window.MSInputMethodContext||!document.documentMode),p=n&&/MSIE 10/.test(navigator.userAgent);function h(t){return 11===t?d:10===t?p:d||p}function m(t){if(!t)return document.documentElement;for(var e=h(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===l(n,"position")?m(n):n:t?t.ownerDocument.documentElement:document.documentElement}function b(t){return null!==t.parentNode?b(t.parentNode):t}function f(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var s,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||i.contains(o))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&m(s.firstElementChild)!==s?m(l):l;var c=b(t);return c.host?f(c.host,e):f(t,b(e).host)}function g(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var i=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||i)[e]}return t[e]}function y(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"],10)+parseFloat(t["border"+i+"Width"],10)}function w(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],h(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function v(t){var e=t.body,n=t.documentElement,i=h(10)&&getComputedStyle(n);return{height:w("Height",e,n,i),width:w("Width",e,n,i)}}var k=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},E=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),C=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},x=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function S(t){return x({},t,{right:t.left+t.width,bottom:t.top+t.height})}function j(t){var e={};try{if(h(10)){e=t.getBoundingClientRect();var n=g(t,"top"),i=g(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},r="HTML"===t.nodeName?v(t.ownerDocument):{},s=r.width||t.clientWidth||o.right-o.left,a=r.height||t.clientHeight||o.bottom-o.top,c=t.offsetWidth-s,u=t.offsetHeight-a;if(c||u){var d=l(t);c-=y(d,"x"),u-=y(d,"y"),o.width-=c,o.height-=u}return S(o)}function _(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=h(10),o="HTML"===e.nodeName,r=j(t),s=j(e),a=u(t),c=l(e),d=parseFloat(c.borderTopWidth,10),p=parseFloat(c.borderLeftWidth,10);n&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var m=S({top:r.top-s.top-d,left:r.left-s.left-p,width:r.width,height:r.height});if(m.marginTop=0,m.marginLeft=0,!i&&o){var b=parseFloat(c.marginTop,10),f=parseFloat(c.marginLeft,10);m.top-=d-b,m.bottom-=d-b,m.left-=p-f,m.right-=p-f,m.marginTop=b,m.marginLeft=f}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(m=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=g(e,"top"),o=g(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}(m,e)),m}function O(t){if(!t||!t.parentElement||h())return document.documentElement;for(var e=t.parentElement;e&&"none"===l(e,"transform");)e=e.parentElement;return e||document.documentElement}function L(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?O(t):f(t,e);if("viewport"===i)r=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=_(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:g(n),a=e?0:g(n,"left");return S({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r})}(s,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=u(c(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var d=_(a,s,o);if("HTML"!==a.nodeName||function t(e){var n=e.nodeName;if("BODY"===n||"HTML"===n)return!1;if("fixed"===l(e,"position"))return!0;var i=c(e);return!!i&&t(i)}(s))r=d;else{var p=v(t.ownerDocument),h=p.height,m=p.width;r.top+=d.top-d.marginTop,r.bottom=h+d.top,r.left+=d.left-d.marginLeft,r.right=m+d.left}}var b="number"==typeof(n=n||0);return r.left+=b?n:n.left||0,r.top+=b?n:n.top||0,r.right-=b?n:n.right||0,r.bottom-=b?n:n.bottom||0,r}function T(t,e,n,i,o){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=L(n,i,r,o),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map(function(t){return x({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight}),u=c.length>0?c[0].key:l[0].key,d=t.split("-")[1];return u+(d?"-"+d:"")}function B(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return _(n,i?O(e):f(e,n),i)}function z(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function A(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function I(t,e,n){n=n.split("-")[0];var i=z(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",c=r?"width":"height";return o[s]=e[s]+e[l]/2-i[l]/2,o[a]=n===a?e[a]-i[c]:e[A(a)],o}function N(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function M(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var i=N(t,function(t){return t[e]===n});return t.indexOf(i)}(t,"name",n))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&a(n)&&(e.offsets.popper=S(e.offsets.popper),e.offsets.reference=S(e.offsets.reference),e=n(e,t))}),e}function H(t,e){return t.some(function(t){var n=t.name;return t.enabled&&n===e})}function q(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var o=e[i],r=o?""+o+n:t;if(void 0!==document.body.style[r])return r}return null}function P(t){var e=t.ownerDocument;return e?e.defaultView:window}function D(t,e,n,i){n.updateBound=i,P(t).addEventListener("resize",n.updateBound,{passive:!0});var o=u(t);return function t(e,n,i,o){var r="BODY"===e.nodeName,s=r?e.ownerDocument.defaultView:e;s.addEventListener(n,i,{passive:!0}),r||t(u(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function R(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,P(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function F(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function W(t,e){Object.keys(e).forEach(function(n){var i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&F(e[n])&&(i="px"),t.style[n]=e[n]+i})}var Y=n&&/Firefox/i.test(navigator.userAgent);function U(t,e,n){var i=N(t,function(t){return t.name===e}),o=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});if(!o){var r="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+r+" modifier in order to work, be sure to include it before "+r+"!")}return o}var G=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],Q=G.slice(3);function V(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Q.indexOf(t),i=Q.slice(n+1).concat(Q.slice(0,n));return e?i.reverse():i}var X={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function $(t,e,n,i){var o=[0,0],r=-1!==["right","left"].indexOf(i),s=t.split(/(\+|\-)/).map(function(t){return t.trim()}),a=s.indexOf(N(s,function(t){return-1!==t.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];return(c=c.map(function(t,i){var o=(1===i?!r:r)?"height":"width",s=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,n,i){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],s=o[2];if(!r)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return S(a)[e]/100*r}if("vh"===s||"vw"===s)return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r;return r}(t,o,e,n)})})).forEach(function(t,e){t.forEach(function(n,i){F(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))})}),o}var J={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,r=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",u={start:C({},l,r[l]),end:C({},l,r[l]+r[c]-s[c])};t.offsets.popper=x({},s,u[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=t.offsets,r=o.popper,s=o.reference,a=i.split("-")[0],l=void 0;return l=F(+n)?[+n,0]:$(n,r,s,a),"left"===a?(r.top+=l[0],r.left-=l[1]):"right"===a?(r.top+=l[0],r.left+=l[1]):"top"===a?(r.left+=l[0],r.top-=l[1]):"bottom"===a&&(r.left+=l[0],r.top+=l[1]),t.popper=r,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||m(t.instance.popper);t.instance.reference===n&&(n=m(n));var i=q("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[i];o.top="",o.left="",o[i]="";var l=L(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=r,o.left=s,o[i]=a,e.boundaries=l;var c=e.priority,u=t.offsets.popper,d={primary:function(t){var n=u[t];return u[t]<l[t]&&!e.escapeWithReference&&(n=Math.max(u[t],l[t])),C({},t,n)},secondary:function(t){var n="right"===t?"left":"top",i=u[n];return u[t]>l[t]&&!e.escapeWithReference&&(i=Math.min(u[n],l[t]-("right"===t?u.width:u.height))),C({},n,i)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";u=x({},u,d[e](t))}),t.offsets.popper=u,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<r(i[l])&&(t.offsets.popper[l]=r(i[l])-n[c]),n[l]>r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!U(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,c=-1!==["left","right"].indexOf(o),u=c?"height":"width",d=c?"Top":"Left",p=d.toLowerCase(),h=c?"left":"top",m=c?"bottom":"right",b=z(i)[u];a[m]-b<s[p]&&(t.offsets.popper[p]-=s[p]-(a[m]-b)),a[p]+b>s[m]&&(t.offsets.popper[p]+=a[p]+b-s[m]),t.offsets.popper=S(t.offsets.popper);var f=a[p]+a[u]/2-b/2,g=l(t.instance.popper),y=parseFloat(g["margin"+d],10),w=parseFloat(g["border"+d+"Width"],10),v=f-t.offsets.popper[p]-y-w;return v=Math.max(Math.min(s[u]-b,v),0),t.arrowElement=i,t.offsets.arrow=(C(n={},p,Math.round(v)),C(n,h,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(H(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=L(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=A(i),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case X.FLIP:s=[i,o];break;case X.CLOCKWISE:s=V(i);break;case X.COUNTERCLOCKWISE:s=V(i,!0);break;default:s=e.behavior}return s.forEach(function(a,l){if(i!==a||s.length===l+1)return t;i=t.placement.split("-")[0],o=A(i);var c=t.offsets.popper,u=t.offsets.reference,d=Math.floor,p="left"===i&&d(c.right)>d(u.left)||"right"===i&&d(c.left)<d(u.right)||"top"===i&&d(c.bottom)>d(u.top)||"bottom"===i&&d(c.top)<d(u.bottom),h=d(c.left)<d(n.left),m=d(c.right)>d(n.right),b=d(c.top)<d(n.top),f=d(c.bottom)>d(n.bottom),g="left"===i&&h||"right"===i&&m||"top"===i&&b||"bottom"===i&&f,y=-1!==["top","bottom"].indexOf(i),w=!!e.flipVariations&&(y&&"start"===r&&h||y&&"end"===r&&m||!y&&"start"===r&&b||!y&&"end"===r&&f),v=!!e.flipVariationsByContent&&(y&&"start"===r&&m||y&&"end"===r&&h||!y&&"start"===r&&f||!y&&"end"===r&&b),k=w||v;(p||g||k)&&(t.flipped=!0,(p||g)&&(i=s[l+1]),k&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=x({},t.offsets.popper,I(t.instance.popper,t.offsets.reference,t.placement)),t=M(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[s?"left":"top"]=r[n]-(a?o[s?"width":"height"]:0),t.placement=A(e),t.offsets.popper=S(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!U(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=N(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,o=t.offsets.popper,r=N(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==r&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==r?r:e.gpuAcceleration,a=m(t.instance.popper),l=j(a),c={position:o.position},u=function(t,e){var n=t.offsets,i=n.popper,o=n.reference,r=Math.round,s=Math.floor,a=function(t){return t},l=r(o.width),c=r(i.width),u=-1!==["left","right"].indexOf(t.placement),d=-1!==t.placement.indexOf("-"),p=e?u||d||l%2==c%2?r:s:a,h=e?r:a;return{left:p(l%2==1&&c%2==1&&!d&&e?i.left-1:i.left),top:h(i.top),bottom:h(i.bottom),right:p(i.right)}}(t,window.devicePixelRatio<2||!Y),d="bottom"===n?"top":"bottom",p="right"===i?"left":"right",h=q("transform"),b=void 0,f=void 0;if(f="bottom"===d?"HTML"===a.nodeName?-a.clientHeight+u.bottom:-l.height+u.bottom:u.top,b="right"===p?"HTML"===a.nodeName?-a.clientWidth+u.right:-l.width+u.right:u.left,s&&h)c[h]="translate3d("+b+"px, "+f+"px, 0)",c[d]=0,c[p]=0,c.willChange="transform";else{var g="bottom"===d?-1:1,y="right"===p?-1:1;c[d]=f*g,c[p]=b*y,c.willChange=d+", "+p}var w={"x-placement":t.placement};return t.attributes=x({},w,t.attributes),t.styles=x({},c,t.styles),t.arrowStyles=x({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return W(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&W(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){var r=B(o,e,t,n.positionFixed),s=T(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),W(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},K=function(){function t(e,n){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};k(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=s(this.update.bind(this)),this.options=x({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(x({},t.Defaults.modifiers,o.modifiers)).forEach(function(e){i.options.modifiers[e]=x({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return x({name:t},i.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&a(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return E(t,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=B(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=T(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=I(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=M(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,H(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[q("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=D(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return R.call(this)}}]),t}();K.Utils=("undefined"!=typeof window?window:t).PopperUtils,K.placements=G,K.Defaults=J,e.a=K}).call(this,n(1))},function(t,e,n){
47
  /*!
48
  * @sphinxxxx/color-conversion v2.2.1
49
  * https://github.com/Sphinxxxx/color-conversion
@@ -51,16 +51,28 @@ var n="undefined"!=typeof window&&"undefined"!=typeof document,i=["Edge","Triden
51
  * Copyright 2017-2019 Joudee (https://github.com/Joudee), Andreas Borgen (https://github.com/Sphinxxxx), Michael Jackson (https://github.com/mjackson)
52
  * Released under the ISC license.
53
  */
54
- t.exports=function(){"use strict";var t=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},e=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),n=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var n=[],i=!0,o=!1,r=void 0;try{for(var s,a=t[Symbol.iterator]();!(i=(s=a.next()).done)&&(n.push(s.value),!e||n.length!==e);i=!0);}catch(t){o=!0,r=t}finally{try{!i&&a.return&&a.return()}finally{if(o)throw r}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")};String.prototype.startsWith=String.prototype.startsWith||function(t){return 0===this.indexOf(t)},String.prototype.padStart=String.prototype.padStart||function(t,e){for(var n=this;n.length<t;)n=e+n;return n};var i={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function o(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=e>0?t.toFixed(e).replace(/0+$/,"").replace(/\.$/,""):t.toString();return n||"0"}return function(){function r(e,i,o,s){t(this,r);var a=this;if(void 0===e);else if(Array.isArray(e))this.rgba=e;else if(void 0===o){var l=e&&""+e;l&&function(t){if(t.startsWith("hsl")){var e=t.match(/([\-\d\.e]+)/g).map(Number),i=n(e,4),o=i[0],s=i[1],l=i[2],c=i[3];void 0===c&&(c=1),o/=360,s/=100,l/=100,a.hsla=[o,s,l,c]}else if(t.startsWith("rgb")){var u=t.match(/([\-\d\.e]+)/g).map(Number),d=n(u,4),p=d[0],h=d[1],m=d[2],b=d[3];void 0===b&&(b=1),a.rgba=[p,h,m,b]}else t.startsWith("#")?a.rgba=r.hexToRgb(t):a.rgba=r.nameToRgb(t)||r.hexToRgb(t)}(l.toLowerCase())}else this.rgba=[e,i,o,void 0===s?1:s]}return e(r,[{key:"printRGB",value:function(t){var e=t?this.rgba:this.rgba.slice(0,3),n=e.map(function(t,e){return o(t,3===e?3:0)});return t?"rgba("+n+")":"rgb("+n+")"}},{key:"printHSL",value:function(t){var e=[360,100,100,1],n=["","%","%",""],i=t?this.hsla:this.hsla.slice(0,3),r=i.map(function(t,i){return o(t*e[i],3===i?3:1)+n[i]});return t?"hsla("+r+")":"hsl("+r+")"}},{key:"printHex",value:function(t){var e=this.hex;return t?e:e.substring(0,7)}},{key:"rgba",get:function(){if(this._rgba)return this._rgba;if(!this._hsla)throw new Error("No color is set");return this._rgba=r.hslToRgb(this._hsla)},set:function(t){3===t.length&&(t[3]=1),this._rgba=t,this._hsla=null}},{key:"rgbString",get:function(){return this.printRGB()}},{key:"rgbaString",get:function(){return this.printRGB(!0)}},{key:"hsla",get:function(){if(this._hsla)return this._hsla;if(!this._rgba)throw new Error("No color is set");return this._hsla=r.rgbToHsl(this._rgba)},set:function(t){3===t.length&&(t[3]=1),this._hsla=t,this._rgba=null}},{key:"hslString",get:function(){return this.printHSL()}},{key:"hslaString",get:function(){return this.printHSL(!0)}},{key:"hex",get:function(){var t=this.rgba,e=t.map(function(t,e){return e<3?t.toString(16):Math.round(255*t).toString(16)});return"#"+e.map(function(t){return t.padStart(2,"0")}).join("")},set:function(t){this.rgba=r.hexToRgb(t)}}],[{key:"hexToRgb",value:function(t){var e=(t.startsWith("#")?t.slice(1):t).replace(/^(\w{3})$/,"$1F").replace(/^(\w)(\w)(\w)(\w)$/,"$1$1$2$2$3$3$4$4").replace(/^(\w{6})$/,"$1FF");if(!e.match(/^([0-9a-fA-F]{8})$/))throw new Error("Unknown hex color; "+t);var n=e.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1).map(function(t){return parseInt(t,16)});return n[3]=n[3]/255,n}},{key:"nameToRgb",value:function(t){var e=i[t];if(e)return r.hexToRgb(e)}},{key:"rgbToHsl",value:function(t){var e=n(t,4),i=e[0],o=e[1],r=e[2],s=e[3];i/=255,o/=255,r/=255;var a=Math.max(i,o,r),l=Math.min(i,o,r),c=void 0,u=void 0,d=(a+l)/2;if(a===l)c=u=0;else{var p=a-l;switch(u=d>.5?p/(2-a-l):p/(a+l),a){case i:c=(o-r)/p+(o<r?6:0);break;case o:c=(r-i)/p+2;break;case r:c=(i-o)/p+4}c/=6}return[c,u,d,s]}},{key:"hslToRgb",value:function(t){var e=n(t,4),i=e[0],o=e[1],r=e[2],s=e[3],a=void 0,l=void 0,c=void 0;if(0===o)a=l=c=r;else{var u=function(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t},d=r<.5?r*(1+o):r+o-r*o,p=2*r-d;a=u(p,d,i+1/3),l=u(p,d,i),c=u(p,d,i-1/3)}var h=[255*a,255*l,255*c].map(Math.round);return h[3]=s,h}}]),r}()}()},function(t,e){},function(t,e,n){"use strict";(function(e){
55
  /*!
56
  * The buffer module from node.js, for the browser.
57
  *
58
  * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
59
  * @license MIT
60
  */
61
- function i(t,e){if(t===e)return 0;for(var n=t.length,i=e.length,o=0,r=Math.min(n,i);o<r;++o)if(t[o]!==e[o]){n=t[o],i=e[o];break}return n<i?-1:i<n?1:0}function o(t){return e.Buffer&&"function"==typeof e.Buffer.isBuffer?e.Buffer.isBuffer(t):!(null==t||!t._isBuffer)}var r=n(8),s=Object.prototype.hasOwnProperty,a=Array.prototype.slice,l="foo"===function(){}.name;function c(t){return Object.prototype.toString.call(t)}function u(t){return!o(t)&&("function"==typeof e.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):!!t&&(t instanceof DataView||!!(t.buffer&&t.buffer instanceof ArrayBuffer))))}var d=t.exports=g,p=/\s*function\s+([^\(\s]*)\s*/;function h(t){if(r.isFunction(t)){if(l)return t.name;var e=t.toString().match(p);return e&&e[1]}}function m(t,e){return"string"==typeof t?t.length<e?t:t.slice(0,e):t}function b(t){if(l||!r.isFunction(t))return r.inspect(t);var e=h(t);return"[Function"+(e?": "+e:"")+"]"}function f(t,e,n,i,o){throw new d.AssertionError({message:n,actual:t,expected:e,operator:i,stackStartFunction:o})}function g(t,e){t||f(t,!0,e,"==",d.ok)}function y(t,e,n,s){if(t===e)return!0;if(o(t)&&o(e))return 0===i(t,e);if(r.isDate(t)&&r.isDate(e))return t.getTime()===e.getTime();if(r.isRegExp(t)&&r.isRegExp(e))return t.source===e.source&&t.global===e.global&&t.multiline===e.multiline&&t.lastIndex===e.lastIndex&&t.ignoreCase===e.ignoreCase;if(null!==t&&"object"==typeof t||null!==e&&"object"==typeof e){if(u(t)&&u(e)&&c(t)===c(e)&&!(t instanceof Float32Array||t instanceof Float64Array))return 0===i(new Uint8Array(t.buffer),new Uint8Array(e.buffer));if(o(t)!==o(e))return!1;var l=(s=s||{actual:[],expected:[]}).actual.indexOf(t);return-1!==l&&l===s.expected.indexOf(e)||(s.actual.push(t),s.expected.push(e),function(t,e,n,i){if(null==t||null==e)return!1;if(r.isPrimitive(t)||r.isPrimitive(e))return t===e;if(n&&Object.getPrototypeOf(t)!==Object.getPrototypeOf(e))return!1;var o=w(t),s=w(e);if(o&&!s||!o&&s)return!1;if(o)return t=a.call(t),e=a.call(e),y(t,e,n);var l,c,u=E(t),d=E(e);if(u.length!==d.length)return!1;for(u.sort(),d.sort(),c=u.length-1;c>=0;c--)if(u[c]!==d[c])return!1;for(c=u.length-1;c>=0;c--)if(l=u[c],!y(t[l],e[l],n,i))return!1;return!0}(t,e,n,s))}return n?t===e:t==e}function w(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function v(t,e){if(!t||!e)return!1;if("[object RegExp]"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(t){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function k(t,e,n,i){var o;if("function"!=typeof e)throw new TypeError('"block" argument must be a function');"string"==typeof n&&(i=n,n=null),o=function(t){var e;try{t()}catch(t){e=t}return e}(e),i=(n&&n.name?" ("+n.name+").":".")+(i?" "+i:"."),t&&!o&&f(o,n,"Missing expected exception"+i);var s="string"==typeof i,a=!t&&o&&!n;if((!t&&r.isError(o)&&s&&v(o,n)||a)&&f(o,n,"Got unwanted exception"+i),t&&o&&n&&!v(o,n)||!t&&o)throw o}d.AssertionError=function(t){var e;this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=m(b((e=this).actual),128)+" "+e.operator+" "+m(b(e.expected),128),this.generatedMessage=!0);var n=t.stackStartFunction||f;if(Error.captureStackTrace)Error.captureStackTrace(this,n);else{var i=new Error;if(i.stack){var o=i.stack,r=h(n),s=o.indexOf("\n"+r);if(s>=0){var a=o.indexOf("\n",s+1);o=o.substring(a+1)}this.stack=o}}},r.inherits(d.AssertionError,Error),d.fail=f,d.ok=g,d.equal=function(t,e,n){t!=e&&f(t,e,n,"==",d.equal)},d.notEqual=function(t,e,n){t==e&&f(t,e,n,"!=",d.notEqual)},d.deepEqual=function(t,e,n){y(t,e,!1)||f(t,e,n,"deepEqual",d.deepEqual)},d.deepStrictEqual=function(t,e,n){y(t,e,!0)||f(t,e,n,"deepStrictEqual",d.deepStrictEqual)},d.notDeepEqual=function(t,e,n){y(t,e,!1)&&f(t,e,n,"notDeepEqual",d.notDeepEqual)},d.notDeepStrictEqual=function t(e,n,i){y(e,n,!0)&&f(e,n,i,"notDeepStrictEqual",t)},d.strictEqual=function(t,e,n){t!==e&&f(t,e,n,"===",d.strictEqual)},d.notStrictEqual=function(t,e,n){t===e&&f(t,e,n,"!==",d.notStrictEqual)},d.throws=function(t,e,n){k(!0,t,e,n)},d.doesNotThrow=function(t,e,n){k(!1,t,e,n)},d.ifError=function(t){if(t)throw t};var E=Object.keys||function(t){var e=[];for(var n in t)s.call(t,n)&&e.push(n);return e}}).call(this,n(1))},function(t,e,n){(function(t){var i=Object.getOwnPropertyDescriptors||function(t){for(var e=Object.keys(t),n={},i=0;i<e.length;i++)n[e[i]]=Object.getOwnPropertyDescriptor(t,e[i]);return n},o=/%[sdj%]/g;e.format=function(t){if(!g(t)){for(var e=[],n=0;n<arguments.length;n++)e.push(a(arguments[n]));return e.join(" ")}n=1;for(var i=arguments,r=i.length,s=String(t).replace(o,function(t){if("%%"===t)return"%";if(n>=r)return t;switch(t){case"%s":return String(i[n++]);case"%d":return Number(i[n++]);case"%j":try{return JSON.stringify(i[n++])}catch(t){return"[Circular]"}default:return t}}),l=i[n];n<r;l=i[++n])b(l)||!v(l)?s+=" "+l:s+=" "+a(l);return s},e.deprecate=function(n,i){if(void 0!==t&&!0===t.noDeprecation)return n;if(void 0===t)return function(){return e.deprecate(n,i).apply(this,arguments)};var o=!1;return function(){if(!o){if(t.throwDeprecation)throw new Error(i);t.traceDeprecation?console.trace(i):console.error(i),o=!0}return n.apply(this,arguments)}};var r,s={};function a(t,n){var i={seen:[],stylize:c};return arguments.length>=3&&(i.depth=arguments[2]),arguments.length>=4&&(i.colors=arguments[3]),m(n)?i.showHidden=n:n&&e._extend(i,n),y(i.showHidden)&&(i.showHidden=!1),y(i.depth)&&(i.depth=2),y(i.colors)&&(i.colors=!1),y(i.customInspect)&&(i.customInspect=!0),i.colors&&(i.stylize=l),u(i,t,i.depth)}function l(t,e){var n=a.styles[e];return n?"["+a.colors[n][0]+"m"+t+"["+a.colors[n][1]+"m":t}function c(t,e){return t}function u(t,n,i){if(t.customInspect&&n&&C(n.inspect)&&n.inspect!==e.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(i,t);return g(o)||(o=u(t,o,i)),o}var r=function(t,e){if(y(e))return t.stylize("undefined","undefined");if(g(e)){var n="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(n,"string")}if(f(e))return t.stylize(""+e,"number");if(m(e))return t.stylize(""+e,"boolean");if(b(e))return t.stylize("null","null")}(t,n);if(r)return r;var s=Object.keys(n),a=function(t){var e={};return t.forEach(function(t,n){e[t]=!0}),e}(s);if(t.showHidden&&(s=Object.getOwnPropertyNames(n)),E(n)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return d(n);if(0===s.length){if(C(n)){var l=n.name?": "+n.name:"";return t.stylize("[Function"+l+"]","special")}if(w(n))return t.stylize(RegExp.prototype.toString.call(n),"regexp");if(k(n))return t.stylize(Date.prototype.toString.call(n),"date");if(E(n))return d(n)}var c,v="",x=!1,S=["{","}"];(h(n)&&(x=!0,S=["[","]"]),C(n))&&(v=" [Function"+(n.name?": "+n.name:"")+"]");return w(n)&&(v=" "+RegExp.prototype.toString.call(n)),k(n)&&(v=" "+Date.prototype.toUTCString.call(n)),E(n)&&(v=" "+d(n)),0!==s.length||x&&0!=n.length?i<0?w(n)?t.stylize(RegExp.prototype.toString.call(n),"regexp"):t.stylize("[Object]","special"):(t.seen.push(n),c=x?function(t,e,n,i,o){for(var r=[],s=0,a=e.length;s<a;++s)_(e,String(s))?r.push(p(t,e,n,i,String(s),!0)):r.push("");return o.forEach(function(o){o.match(/^\d+$/)||r.push(p(t,e,n,i,o,!0))}),r}(t,n,i,a,s):s.map(function(e){return p(t,n,i,a,e,x)}),t.seen.pop(),function(t,e,n){if(t.reduce(function(t,e){return 0,e.indexOf("\n")>=0&&0,t+e.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60)return n[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+n[1];return n[0]+e+" "+t.join(", ")+" "+n[1]}(c,v,S)):S[0]+v+S[1]}function d(t){return"["+Error.prototype.toString.call(t)+"]"}function p(t,e,n,i,o,r){var s,a,l;if((l=Object.getOwnPropertyDescriptor(e,o)||{value:e[o]}).get?a=l.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):l.set&&(a=t.stylize("[Setter]","special")),_(i,o)||(s="["+o+"]"),a||(t.seen.indexOf(l.value)<0?(a=b(n)?u(t,l.value,null):u(t,l.value,n-1)).indexOf("\n")>-1&&(a=r?a.split("\n").map(function(t){return" "+t}).join("\n").substr(2):"\n"+a.split("\n").map(function(t){return" "+t}).join("\n")):a=t.stylize("[Circular]","special")),y(s)){if(r&&o.match(/^\d+$/))return a;(s=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=t.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=t.stylize(s,"string"))}return s+": "+a}function h(t){return Array.isArray(t)}function m(t){return"boolean"==typeof t}function b(t){return null===t}function f(t){return"number"==typeof t}function g(t){return"string"==typeof t}function y(t){return void 0===t}function w(t){return v(t)&&"[object RegExp]"===x(t)}function v(t){return"object"==typeof t&&null!==t}function k(t){return v(t)&&"[object Date]"===x(t)}function E(t){return v(t)&&("[object Error]"===x(t)||t instanceof Error)}function C(t){return"function"==typeof t}function x(t){return Object.prototype.toString.call(t)}function S(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(n){if(y(r)&&(r=t.env.NODE_DEBUG||""),n=n.toUpperCase(),!s[n])if(new RegExp("\\b"+n+"\\b","i").test(r)){var i=t.pid;s[n]=function(){var t=e.format.apply(e,arguments);console.error("%s %d: %s",n,i,t)}}else s[n]=function(){};return s[n]},e.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.isArray=h,e.isBoolean=m,e.isNull=b,e.isNullOrUndefined=function(t){return null==t},e.isNumber=f,e.isString=g,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=y,e.isRegExp=w,e.isObject=v,e.isDate=k,e.isError=E,e.isFunction=C,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=n(9);var j=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function _(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){var t,n;console.log("%s - %s",(t=new Date,n=[S(t.getHours()),S(t.getMinutes()),S(t.getSeconds())].join(":"),[t.getDate(),j[t.getMonth()],n].join(" ")),e.format.apply(e,arguments))},e.inherits=n(10),e._extend=function(t,e){if(!e||!v(e))return t;for(var n=Object.keys(e),i=n.length;i--;)t[n[i]]=e[n[i]];return t};var O="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function L(t,e){if(!t){var n=new Error("Promise was rejected with a falsy value");n.reason=t,t=n}return e(t)}e.promisify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');if(O&&t[O]){var e;if("function"!=typeof(e=t[O]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(e,O,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var e,n,i=new Promise(function(t,i){e=t,n=i}),o=[],r=0;r<arguments.length;r++)o.push(arguments[r]);o.push(function(t,i){t?n(t):e(i)});try{t.apply(this,o)}catch(t){n(t)}return i}return Object.setPrototypeOf(e,Object.getPrototypeOf(t)),O&&Object.defineProperty(e,O,{value:e,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(e,i(t))},e.promisify.custom=O,e.callbackify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');function n(){for(var n=[],i=0;i<arguments.length;i++)n.push(arguments[i]);var o=n.pop();if("function"!=typeof o)throw new TypeError("The last argument must be of type Function");var r=this,s=function(){return o.apply(r,arguments)};e.apply(this,n).then(function(e){t.nextTick(s,null,e)},function(e){t.nextTick(L,e,s)})}return Object.setPrototypeOf(n,Object.getPrototypeOf(e)),Object.defineProperties(n,i(e)),n}}).call(this,n(3))},function(t,e){t.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},function(t,e){"function"==typeof Object.create?t.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}},function(t,e,n){(function(t,e){!function(t,n){"use strict";if(!t.setImmediate){var i,o,r,s,a,l=1,c={},u=!1,d=t.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(t);p=p&&p.setTimeout?p:t,"[object process]"==={}.toString.call(t.process)?i=function(t){e.nextTick(function(){m(t)})}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?t.MessageChannel?((r=new MessageChannel).port1.onmessage=function(t){m(t.data)},i=function(t){r.port2.postMessage(t)}):d&&"onreadystatechange"in d.createElement("script")?(o=d.documentElement,i=function(t){var e=d.createElement("script");e.onreadystatechange=function(){m(t),e.onreadystatechange=null,o.removeChild(e),e=null},o.appendChild(e)}):i=function(t){setTimeout(m,0,t)}:(s="setImmediate$"+Math.random()+"$",a=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(s)&&m(+e.data.slice(s.length))},t.addEventListener?t.addEventListener("message",a,!1):t.attachEvent("onmessage",a),i=function(e){t.postMessage(s+e,"*")}),p.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var o={callback:t,args:e};return c[l]=o,i(l),l++},p.clearImmediate=h}function h(t){delete c[t]}function m(t){if(u)setTimeout(m,0,t);else{var e=c[t];if(e){u=!0;try{!function(t){var e=t.callback,i=t.args;switch(i.length){case 0:e();break;case 1:e(i[0]);break;case 2:e(i[0],i[1]);break;case 3:e(i[0],i[1],i[2]);break;default:e.apply(n,i)}}(e)}finally{h(t),u=!1}}}}}("undefined"==typeof self?void 0===t?this:t:self)}).call(this,n(1),n(3))},function(t,e,n){var i;i=function(){function t(t){this._targetElement=t,this._introItems=[],this._options={nextLabel:"Next &rarr;",prevLabel:"&larr; Back",skipLabel:"Skip",doneLabel:"Done",hidePrev:!1,hideNext:!1,tooltipPosition:"bottom",tooltipClass:"",highlightClass:"",exitOnEsc:!0,exitOnOverlayClick:!0,showStepNumbers:!0,keyboardNavigation:!0,showButtons:!0,showBullets:!0,showProgress:!1,scrollToElement:!0,scrollTo:"element",scrollPadding:30,overlayOpacity:.8,positionPrecedence:["bottom","top","right","left"],disableInteraction:!1,helperElementPadding:10,hintPosition:"top-middle",hintButtonLabel:"Got it",hintAnimation:!0,buttonClass:"introjs-button"}}function e(t,e){var s=t.querySelectorAll("*[data-intro]"),l=[];if(this._options.steps)g(this._options.steps,function(t){var e=o(t);if(e.step=l.length+1,"string"==typeof e.element&&(e.element=document.querySelector(e.element)),void 0===e.element||null===e.element){var n=document.querySelector(".introjsFloatingElement");null===n&&((n=document.createElement("div")).className="introjsFloatingElement",document.body.appendChild(n)),e.element=n,e.position="floating"}e.scrollTo=e.scrollTo||this._options.scrollTo,void 0===e.disableInteraction&&(e.disableInteraction=this._options.disableInteraction),null!==e.element&&l.push(e)}.bind(this));else{var c;if(s.length<1)return!1;g(s,function(t){if((!e||t.getAttribute("data-intro-group")===e)&&"none"!==t.style.display){var n=parseInt(t.getAttribute("data-step"),10);c=void 0!==t.getAttribute("data-disable-interaction")?!!t.getAttribute("data-disable-interaction"):this._options.disableInteraction,n>0&&(l[n-1]={element:t,intro:t.getAttribute("data-intro"),step:parseInt(t.getAttribute("data-step"),10),tooltipClass:t.getAttribute("data-tooltipclass"),highlightClass:t.getAttribute("data-highlightclass"),position:t.getAttribute("data-position")||this._options.tooltipPosition,scrollTo:t.getAttribute("data-scrollto")||this._options.scrollTo,disableInteraction:c})}}.bind(this));var u=0;g(s,function(t){if((!e||t.getAttribute("data-intro-group")===e)&&null===t.getAttribute("data-step")){for(;void 0!==l[u];)u++;c=void 0!==t.getAttribute("data-disable-interaction")?!!t.getAttribute("data-disable-interaction"):this._options.disableInteraction,l[u]={element:t,intro:t.getAttribute("data-intro"),step:u+1,tooltipClass:t.getAttribute("data-tooltipclass"),highlightClass:t.getAttribute("data-highlightclass"),position:t.getAttribute("data-position")||this._options.tooltipPosition,scrollTo:t.getAttribute("data-scrollto")||this._options.scrollTo,disableInteraction:c}}}.bind(this))}for(var d=[],p=0;p<l.length;p++)l[p]&&d.push(l[p]);return(l=d).sort(function(t,e){return t.step-e.step}),this._introItems=l,function(t){var e=document.createElement("div"),n="",i=this;if(e.className="introjs-overlay",t.tagName&&"body"!==t.tagName.toLowerCase()){var o=N(t);o&&(n+="width: "+o.width+"px; height:"+o.height+"px; top:"+o.top+"px;left: "+o.left+"px;",e.style.cssText=n)}else n+="top: 0;bottom: 0; left: 0;right: 0;position: fixed;",e.style.cssText=n;return t.appendChild(e),e.onclick=function(){!0===i._options.exitOnOverlayClick&&a.call(i,t)},window.setTimeout(function(){n+="opacity: "+i._options.overlayOpacity.toString()+";",e.style.cssText=n},10),!0}.call(this,t)&&(r.call(this),this._options.keyboardNavigation&&v.on(window,"keydown",i,this,!0),v.on(window,"resize",n,this,!0)),!1}function n(){this.refresh.call(this)}function i(t){var e=null===t.code?t.which:t.code;if(null===e&&(e=null===t.charCode?t.keyCode:t.charCode),"Escape"!==e&&27!==e||!0!==this._options.exitOnEsc){if("ArrowLeft"===e||37===e)s.call(this);else if("ArrowRight"===e||39===e)r.call(this);else if("Enter"===e||13===e){var n=t.target||t.srcElement;n&&n.className.match("introjs-prevbutton")?s.call(this):n&&n.className.match("introjs-skipbutton")?(this._introItems.length-1===this._currentStep&&"function"==typeof this._introCompleteCallback&&this._introCompleteCallback.call(this),a.call(this,this._targetElement)):n&&n.getAttribute("data-stepnumber")?n.click():r.call(this),t.preventDefault?t.preventDefault():t.returnValue=!1}}else a.call(this,this._targetElement)}function o(t){if(null===t||"object"!=typeof t||void 0!==t.nodeType)return t;var e={};for(var n in t)void 0!==window.jQuery&&t[n]instanceof window.jQuery?e[n]=t[n]:e[n]=o(t[n]);return e}function r(){this._direction="forward",void 0!==this._currentStepNumber&&g(this._introItems,function(t,e){t.step===this._currentStepNumber&&(this._currentStep=e-1,this._currentStepNumber=void 0)}.bind(this)),void 0===this._currentStep?this._currentStep=0:++this._currentStep;var t=this._introItems[this._currentStep],e=!0;return void 0!==this._introBeforeChangeCallback&&(e=this._introBeforeChangeCallback.call(this,t.element)),!1===e?(--this._currentStep,!1):this._introItems.length<=this._currentStep?("function"==typeof this._introCompleteCallback&&this._introCompleteCallback.call(this),void a.call(this,this._targetElement)):void m.call(this,t)}function s(){if(this._direction="backward",0===this._currentStep)return!1;--this._currentStep;var t=this._introItems[this._currentStep],e=!0;if(void 0!==this._introBeforeChangeCallback&&(e=this._introBeforeChangeCallback.call(this,t.element)),!1===e)return++this._currentStep,!1;m.call(this,t)}function a(t,e){var o=!0;if(void 0!==this._introBeforeExitCallback&&(o=this._introBeforeExitCallback.call(this)),e||!1!==o){var r=t.querySelectorAll(".introjs-overlay");r&&r.length&&g(r,function(t){t.style.opacity=0,window.setTimeout(function(){this.parentNode&&this.parentNode.removeChild(this)}.bind(t),500)}.bind(this));var s=t.querySelector(".introjs-helperLayer");s&&s.parentNode.removeChild(s);var a=t.querySelector(".introjs-tooltipReferenceLayer");a&&a.parentNode.removeChild(a);var l=t.querySelector(".introjs-disableInteraction");l&&l.parentNode.removeChild(l);var c=document.querySelector(".introjsFloatingElement");c&&c.parentNode.removeChild(c),f(),g(document.querySelectorAll(".introjs-fixParent"),function(t){E(t,/introjs-fixParent/g)}),v.off(window,"keydown",i,this,!0),v.off(window,"resize",n,this,!0),void 0!==this._introExitCallback&&this._introExitCallback.call(this),this._currentStep=void 0}}function l(t,e,n,i,o){var r,s,a,l,p,h="";if(o=o||!1,e.style.top=null,e.style.right=null,e.style.bottom=null,e.style.left=null,e.style.marginLeft=null,e.style.marginTop=null,n.style.display="inherit",null!=i&&(i.style.top=null,i.style.left=null),this._introItems[this._currentStep])switch(h="string"==typeof(r=this._introItems[this._currentStep]).tooltipClass?r.tooltipClass:this._options.tooltipClass,e.className=("introjs-tooltip "+h).replace(/^\s+|\s+$/g,""),e.setAttribute("role","dialog"),"floating"!==(p=this._introItems[this._currentStep].position)&&(p=function(t,e,n){var i=this._options.positionPrecedence.slice(),o=S(),r=N(e).height+10,s=N(e).width+20,a=t.getBoundingClientRect(),l="floating";a.bottom+r+r>o.height&&d(i,"bottom");a.top-r<0&&d(i,"top");a.right+s>o.width&&d(i,"right");a.left-s<0&&d(i,"left");var c=(u=n||"",p=u.indexOf("-"),-1!==p?u.substr(p):"");var u,p;n&&(n=n.split("-")[0]);i.length&&(l="auto"!==n&&i.indexOf(n)>-1?n:i[0]);-1!==["top","bottom"].indexOf(l)&&(l+=function(t,e,n,i){var o=e/2,r=Math.min(n.width,window.screen.width),s=["-left-aligned","-middle-aligned","-right-aligned"],a="";r-t<e&&d(s,"-left-aligned");(t<o||r-t<o)&&d(s,"-middle-aligned");t<e&&d(s,"-right-aligned");a=s.length?-1!==s.indexOf(i)?i:s[0]:"-middle-aligned";return a}(a.left,s,o,c));return l}.call(this,t,e,p)),a=N(t),s=N(e),l=S(),k(e,"introjs-"+p),p){case"top-right-aligned":n.className="introjs-arrow bottom-right";var m=0;u(a,m,s,e),e.style.bottom=a.height+20+"px";break;case"top-middle-aligned":n.className="introjs-arrow bottom-middle";var b=a.width/2-s.width/2;o&&(b+=5),u(a,b,s,e)&&(e.style.right=null,c(a,b,s,l,e)),e.style.bottom=a.height+20+"px";break;case"top-left-aligned":case"top":n.className="introjs-arrow bottom",c(a,o?0:15,s,l,e),e.style.bottom=a.height+20+"px";break;case"right":e.style.left=a.width+20+"px",a.top+s.height>l.height?(n.className="introjs-arrow left-bottom",e.style.top="-"+(s.height-a.height-20)+"px"):n.className="introjs-arrow left";break;case"left":o||!0!==this._options.showStepNumbers||(e.style.top="15px"),a.top+s.height>l.height?(e.style.top="-"+(s.height-a.height-20)+"px",n.className="introjs-arrow right-bottom"):n.className="introjs-arrow right",e.style.right=a.width+20+"px";break;case"floating":n.style.display="none",e.style.left="50%",e.style.top="50%",e.style.marginLeft="-"+s.width/2+"px",e.style.marginTop="-"+s.height/2+"px",null!=i&&(i.style.left="-"+(s.width/2+18)+"px",i.style.top="-"+(s.height/2+18)+"px");break;case"bottom-right-aligned":n.className="introjs-arrow top-right",u(a,m=0,s,e),e.style.top=a.height+20+"px";break;case"bottom-middle-aligned":n.className="introjs-arrow top-middle",b=a.width/2-s.width/2,o&&(b+=5),u(a,b,s,e)&&(e.style.right=null,c(a,b,s,l,e)),e.style.top=a.height+20+"px";break;default:n.className="introjs-arrow top",c(a,0,s,l,e),e.style.top=a.height+20+"px"}}function c(t,e,n,i,o){return t.left+e+n.width>i.width?(o.style.left=i.width-n.width-t.left+"px",!1):(o.style.left=e+"px",!0)}function u(t,e,n,i){return t.left+t.width-e-n.width<0?(i.style.left=-t.left+"px",!1):(i.style.right=e+"px",!0)}function d(t,e){t.indexOf(e)>-1&&t.splice(t.indexOf(e),1)}function p(t){if(t){if(!this._introItems[this._currentStep])return;var e=this._introItems[this._currentStep],n=N(e.element),i=this._options.helperElementPadding;x(e.element)?k(t,"introjs-fixedTooltip"):E(t,"introjs-fixedTooltip"),"floating"===e.position&&(i=0),t.style.cssText="width: "+(n.width+i)+"px; height:"+(n.height+i)+"px; top:"+(n.top-i/2)+"px;left: "+(n.left-i/2)+"px;"}}function h(t){t.setAttribute("role","button"),t.tabIndex=0}function m(t){void 0!==this._introChangeCallback&&this._introChangeCallback.call(this,t.element);var e,n,i,o,c=this,u=document.querySelector(".introjs-helperLayer"),d=document.querySelector(".introjs-tooltipReferenceLayer"),m="introjs-helperLayer";if("string"==typeof t.highlightClass&&(m+=" "+t.highlightClass),"string"==typeof this._options.highlightClass&&(m+=" "+this._options.highlightClass),null!==u){var y=d.querySelector(".introjs-helperNumberLayer"),w=d.querySelector(".introjs-tooltiptext"),v=d.querySelector(".introjs-arrow"),x=d.querySelector(".introjs-tooltip");if(i=d.querySelector(".introjs-skipbutton"),n=d.querySelector(".introjs-prevbutton"),e=d.querySelector(".introjs-nextbutton"),u.className=m,x.style.opacity=0,x.style.display="none",null!==y){var S=this._introItems[t.step-2>=0?t.step-2:0];(null!==S&&"forward"===this._direction&&"floating"===S.position||"backward"===this._direction&&"floating"===t.position)&&(y.style.opacity=0)}(o=M(t.element))!==document.body&&H(o,t.element),p.call(c,u),p.call(c,d),g(document.querySelectorAll(".introjs-fixParent"),function(t){E(t,/introjs-fixParent/g)}),f(),c._lastShowElementTimer&&window.clearTimeout(c._lastShowElementTimer),c._lastShowElementTimer=window.setTimeout(function(){null!==y&&(y.innerHTML=t.step),w.innerHTML=t.intro,x.style.display="block",l.call(c,t.element,x,v,y),c._options.showBullets&&(d.querySelector(".introjs-bullets li > a.active").className="",d.querySelector('.introjs-bullets li > a[data-stepnumber="'+t.step+'"]').className="active"),d.querySelector(".introjs-progress .introjs-progressbar").style.cssText="width:"+q.call(c)+"%;",d.querySelector(".introjs-progress .introjs-progressbar").setAttribute("aria-valuenow",q.call(c)),x.style.opacity=1,y&&(y.style.opacity=1),null!=i&&/introjs-donebutton/gi.test(i.className)?i.focus():null!=e&&e.focus(),b.call(c,t.scrollTo,t,w)},350)}else{var j=document.createElement("div"),_=document.createElement("div"),O=document.createElement("div"),L=document.createElement("div"),T=document.createElement("div"),B=document.createElement("div"),z=document.createElement("div"),A=document.createElement("div");j.className=m,_.className="introjs-tooltipReferenceLayer",(o=M(t.element))!==document.body&&H(o,t.element),p.call(c,j),p.call(c,_),this._targetElement.appendChild(j),this._targetElement.appendChild(_),O.className="introjs-arrow",T.className="introjs-tooltiptext",T.innerHTML=t.intro,B.className="introjs-bullets",!1===this._options.showBullets&&(B.style.display="none");var I=document.createElement("ul");I.setAttribute("role","tablist");var N=function(){c.goToStep(this.getAttribute("data-stepnumber"))};g(this._introItems,function(e,n){var i=document.createElement("li"),o=document.createElement("a");i.setAttribute("role","presentation"),o.setAttribute("role","tab"),o.onclick=N,n===t.step-1&&(o.className="active"),h(o),o.innerHTML="&nbsp;",o.setAttribute("data-stepnumber",e.step),i.appendChild(o),I.appendChild(i)}),B.appendChild(I),z.className="introjs-progress",!1===this._options.showProgress&&(z.style.display="none");var P=document.createElement("div");P.className="introjs-progressbar",P.setAttribute("role","progress"),P.setAttribute("aria-valuemin",0),P.setAttribute("aria-valuemax",100),P.setAttribute("aria-valuenow",q.call(this)),P.style.cssText="width:"+q.call(this)+"%;",z.appendChild(P),A.className="introjs-tooltipbuttons",!1===this._options.showButtons&&(A.style.display="none"),L.className="introjs-tooltip",L.appendChild(T),L.appendChild(B),L.appendChild(z);var D=document.createElement("span");!0===this._options.showStepNumbers&&(D.className="introjs-helperNumberLayer",D.innerHTML=t.step,_.appendChild(D)),L.appendChild(O),_.appendChild(L),(e=document.createElement("a")).onclick=function(){c._introItems.length-1!==c._currentStep&&r.call(c)},h(e),e.innerHTML=this._options.nextLabel,(n=document.createElement("a")).onclick=function(){0!==c._currentStep&&s.call(c)},h(n),n.innerHTML=this._options.prevLabel,(i=document.createElement("a")).className=this._options.buttonClass+" introjs-skipbutton ",h(i),i.innerHTML=this._options.skipLabel,i.onclick=function(){c._introItems.length-1===c._currentStep&&"function"==typeof c._introCompleteCallback&&c._introCompleteCallback.call(c),c._introItems.length-1!==c._currentStep&&"function"==typeof c._introExitCallback&&c._introExitCallback.call(c),"function"==typeof c._introSkipCallback&&c._introSkipCallback.call(c),a.call(c,c._targetElement)},A.appendChild(i),this._introItems.length>1&&(A.appendChild(n),A.appendChild(e)),L.appendChild(A),l.call(c,t.element,L,O,D),b.call(this,t.scrollTo,t,L)}var R=c._targetElement.querySelector(".introjs-disableInteraction");R&&R.parentNode.removeChild(R),t.disableInteraction&&function(){var t=document.querySelector(".introjs-disableInteraction");null===t&&((t=document.createElement("div")).className="introjs-disableInteraction",this._targetElement.appendChild(t)),p.call(this,t)}.call(c),0===this._currentStep&&this._introItems.length>1?(null!=i&&(i.className=this._options.buttonClass+" introjs-skipbutton"),null!=e&&(e.className=this._options.buttonClass+" introjs-nextbutton"),!0===this._options.hidePrev?(null!=n&&(n.className=this._options.buttonClass+" introjs-prevbutton introjs-hidden"),null!=e&&k(e,"introjs-fullbutton")):null!=n&&(n.className=this._options.buttonClass+" introjs-prevbutton introjs-disabled"),null!=i&&(i.innerHTML=this._options.skipLabel)):this._introItems.length-1===this._currentStep||1===this._introItems.length?(null!=i&&(i.innerHTML=this._options.doneLabel,k(i,"introjs-donebutton")),null!=n&&(n.className=this._options.buttonClass+" introjs-prevbutton"),!0===this._options.hideNext?(null!=e&&(e.className=this._options.buttonClass+" introjs-nextbutton introjs-hidden"),null!=n&&k(n,"introjs-fullbutton")):null!=e&&(e.className=this._options.buttonClass+" introjs-nextbutton introjs-disabled")):(null!=i&&(i.className=this._options.buttonClass+" introjs-skipbutton"),null!=n&&(n.className=this._options.buttonClass+" introjs-prevbutton"),null!=e&&(e.className=this._options.buttonClass+" introjs-nextbutton"),null!=i&&(i.innerHTML=this._options.skipLabel)),n.setAttribute("role","button"),e.setAttribute("role","button"),i.setAttribute("role","button"),null!=e&&e.focus(),function(t){var e;if(t.element instanceof SVGElement)for(e=t.element.parentNode;null!==t.element.parentNode&&e.tagName&&"body"!==e.tagName.toLowerCase();)"svg"===e.tagName.toLowerCase()&&k(e,"introjs-showElement introjs-relativePosition"),e=e.parentNode;k(t.element,"introjs-showElement");var n=C(t.element,"position");"absolute"!==n&&"relative"!==n&&"fixed"!==n&&k(t.element,"introjs-relativePosition");e=t.element.parentNode;for(;null!==e&&e.tagName&&"body"!==e.tagName.toLowerCase();){var i=C(e,"z-index"),o=parseFloat(C(e,"opacity")),r=C(e,"transform")||C(e,"-webkit-transform")||C(e,"-moz-transform")||C(e,"-ms-transform")||C(e,"-o-transform");(/[0-9]+/.test(i)||o<1||"none"!==r&&void 0!==r)&&k(e,"introjs-fixParent"),e=e.parentNode}}(t),void 0!==this._introAfterChangeCallback&&this._introAfterChangeCallback.call(this,t.element)}function b(t,e,n){var i;if("off"!==t&&(this._options.scrollToElement&&(i="tooltip"===t?n.getBoundingClientRect():e.element.getBoundingClientRect(),!function(t){var e=t.getBoundingClientRect();return e.top>=0&&e.left>=0&&e.bottom+80<=window.innerHeight&&e.right<=window.innerWidth}(e.element)))){var o=S().height;i.bottom-(i.bottom-i.top)<0||e.element.clientHeight>o?window.scrollBy(0,i.top-(o/2-i.height/2)-this._options.scrollPadding):window.scrollBy(0,i.top-(o/2-i.height/2)+this._options.scrollPadding)}}function f(){g(document.querySelectorAll(".introjs-showElement"),function(t){E(t,/introjs-[a-zA-Z]+/g)})}function g(t,e,n){if(t)for(var i=0,o=t.length;i<o;i++)e(t[i],i);"function"==typeof n&&n()}var y,w=(y={},function(t,e){return y[e=e||"introjs-stamp"]=y[e]||0,void 0===t[e]&&(t[e]=y[e]++),t[e]}),v=function(){return new function(){var t="introjs_event";this._id=function(t,e,n,i){return e+w(n)+(i?"_"+w(i):"")},this.on=function(e,n,i,o,r){var s=this._id.apply(this,arguments),a=function(t){return i.call(o||e,t||window.event)};"addEventListener"in e?e.addEventListener(n,a,r):"attachEvent"in e&&e.attachEvent("on"+n,a),e[t]=e[t]||{},e[t][s]=a},this.off=function(e,n,i,o,r){var s=this._id.apply(this,arguments),a=e[t]&&e[t][s];a&&("removeEventListener"in e?e.removeEventListener(n,a,r):"detachEvent"in e&&e.detachEvent("on"+n,a),e[t][s]=null)}}}();function k(t,e){if(t instanceof SVGElement){var n=t.getAttribute("class")||"";t.setAttribute("class",n+" "+e)}else{if(void 0!==t.classList)g(e.split(" "),function(e){t.classList.add(e)});else t.className.match(e)||(t.className+=" "+e)}}function E(t,e){if(t instanceof SVGElement){var n=t.getAttribute("class")||"";t.setAttribute("class",n.replace(e,"").replace(/^\s+|\s+$/g,""))}else t.className=t.className.replace(e,"").replace(/^\s+|\s+$/g,"")}function C(t,e){var n="";return t.currentStyle?n=t.currentStyle[e]:document.defaultView&&document.defaultView.getComputedStyle&&(n=document.defaultView.getComputedStyle(t,null).getPropertyValue(e)),n&&n.toLowerCase?n.toLowerCase():n}function x(t){var e=t.parentNode;return!(!e||"HTML"===e.nodeName)&&("fixed"===C(t,"position")||x(e))}function S(){if(void 0!==window.innerWidth)return{width:window.innerWidth,height:window.innerHeight};var t=document.documentElement;return{width:t.clientWidth,height:t.clientHeight}}function j(){var t=document.querySelector(".introjs-hintReference");if(t){var e=t.getAttribute("data-step");return t.parentNode.removeChild(t),e}}function _(t){if(this._introItems=[],this._options.hints)g(this._options.hints,function(t){var e=o(t);"string"==typeof e.element&&(e.element=document.querySelector(e.element)),e.hintPosition=e.hintPosition||this._options.hintPosition,e.hintAnimation=e.hintAnimation||this._options.hintAnimation,null!==e.element&&this._introItems.push(e)}.bind(this));else{var e=t.querySelectorAll("*[data-hint]");if(!e||!e.length)return!1;g(e,function(t){var e=t.getAttribute("data-hintanimation");e=e?"true"===e:this._options.hintAnimation,this._introItems.push({element:t,hint:t.getAttribute("data-hint"),hintPosition:t.getAttribute("data-hintposition")||this._options.hintPosition,hintAnimation:e,tooltipClass:t.getAttribute("data-tooltipclass"),position:t.getAttribute("data-position")||this._options.tooltipPosition})}.bind(this))}(function(){var t=this,e=document.querySelector(".introjs-hints");null===e&&((e=document.createElement("div")).className="introjs-hints");g(this._introItems,function(n,i){if(!document.querySelector('.introjs-hint[data-step="'+i+'"]')){var o=document.createElement("a");h(o),o.onclick=function(e){return function(n){var i=n||window.event;i.stopPropagation&&i.stopPropagation(),null!==i.cancelBubble&&(i.cancelBubble=!0),I.call(t,e)}}(i),o.className="introjs-hint",n.hintAnimation||k(o,"introjs-hint-no-anim"),x(n.element)&&k(o,"introjs-fixedhint");var r=document.createElement("div");r.className="introjs-hint-dot";var s=document.createElement("div");s.className="introjs-hint-pulse",o.appendChild(r),o.appendChild(s),o.setAttribute("data-step",i),n.targetElement=n.element,n.element=o,A.call(this,n.hintPosition,o,n.targetElement),e.appendChild(o)}}.bind(this)),document.body.appendChild(e),void 0!==this._hintsAddedCallback&&this._hintsAddedCallback.call(this)}).call(this),v.on(document,"click",j,this,!1),v.on(window,"resize",O,this,!0)}function O(){g(this._introItems,function(t){void 0!==t.targetElement&&A.call(this,t.hintPosition,t.element,t.targetElement)}.bind(this))}function L(t){var e=document.querySelector(".introjs-hints");return e?e.querySelectorAll(t):[]}function T(t){var e=L('.introjs-hint[data-step="'+t+'"]')[0];j.call(this),e&&k(e,"introjs-hidehint"),void 0!==this._hintCloseCallback&&this._hintCloseCallback.call(this,t)}function B(t){var e=L('.introjs-hint[data-step="'+t+'"]')[0];e&&E(e,/introjs-hidehint/g)}function z(t){var e=L('.introjs-hint[data-step="'+t+'"]')[0];e&&e.parentNode.removeChild(e)}function A(t,e,n){var i=N.call(this,n);switch(t){default:case"top-left":e.style.left=i.left+"px",e.style.top=i.top+"px";break;case"top-right":e.style.left=i.left+i.width-20+"px",e.style.top=i.top+"px";break;case"bottom-left":e.style.left=i.left+"px",e.style.top=i.top+i.height-20+"px";break;case"bottom-right":e.style.left=i.left+i.width-20+"px",e.style.top=i.top+i.height-20+"px";break;case"middle-left":e.style.left=i.left+"px",e.style.top=i.top+(i.height-20)/2+"px";break;case"middle-right":e.style.left=i.left+i.width-20+"px",e.style.top=i.top+(i.height-20)/2+"px";break;case"middle-middle":e.style.left=i.left+(i.width-20)/2+"px",e.style.top=i.top+(i.height-20)/2+"px";break;case"bottom-middle":e.style.left=i.left+(i.width-20)/2+"px",e.style.top=i.top+i.height-20+"px";break;case"top-middle":e.style.left=i.left+(i.width-20)/2+"px",e.style.top=i.top+"px"}}function I(t){var e=document.querySelector('.introjs-hint[data-step="'+t+'"]'),n=this._introItems[t];void 0!==this._hintClickCallback&&this._hintClickCallback.call(this,e,n,t);var i=j.call(this);if(parseInt(i,10)!==t){var o=document.createElement("div"),r=document.createElement("div"),s=document.createElement("div"),a=document.createElement("div");o.className="introjs-tooltip",o.onclick=function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0},r.className="introjs-tooltiptext";var c=document.createElement("p");c.innerHTML=n.hint;var u=document.createElement("a");u.className=this._options.buttonClass,u.setAttribute("role","button"),u.innerHTML=this._options.hintButtonLabel,u.onclick=T.bind(this,t),r.appendChild(c),r.appendChild(u),s.className="introjs-arrow",o.appendChild(s),o.appendChild(r),this._currentStep=e.getAttribute("data-step"),a.className="introjs-tooltipReferenceLayer introjs-hintReference",a.setAttribute("data-step",e.getAttribute("data-step")),p.call(this,a),a.appendChild(o),document.body.appendChild(a),l.call(this,e,o,s,null,!0)}}function N(t){var e=document.body,n=document.documentElement,i=window.pageYOffset||n.scrollTop||e.scrollTop,o=window.pageXOffset||n.scrollLeft||e.scrollLeft,r=t.getBoundingClientRect();return{top:r.top+i,width:r.width,height:r.height,left:r.left+o}}function M(t){var e=window.getComputedStyle(t),n="absolute"===e.position,i=/(auto|scroll)/;if("fixed"===e.position)return document.body;for(var o=t;o=o.parentElement;)if(e=window.getComputedStyle(o),(!n||"static"!==e.position)&&i.test(e.overflow+e.overflowY+e.overflowX))return o;return document.body}function H(t,e){t.scrollTop=e.offsetTop-t.offsetTop}function q(){return parseInt(this._currentStep+1,10)/this._introItems.length*100}var P=function(e){var n;if("object"==typeof e)n=new t(e);else if("string"==typeof e){var i=document.querySelector(e);if(!i)throw new Error("There is no element with given selector.");n=new t(i)}else n=new t(document.body);return P.instances[w(n,"introjs-instance")]=n,n};return P.version="2.9.3",P.instances={},P.fn=t.prototype={clone:function(){return new t(this)},setOption:function(t,e){return this._options[t]=e,this},setOptions:function(t){return this._options=function(t,e){var n,i={};for(n in t)i[n]=t[n];for(n in e)i[n]=e[n];return i}(this._options,t),this},start:function(t){return e.call(this,this._targetElement,t),this},goToStep:function(t){return function(t){this._currentStep=t-2,void 0!==this._introItems&&r.call(this)}.call(this,t),this},addStep:function(t){return this._options.steps||(this._options.steps=[]),this._options.steps.push(t),this},addSteps:function(t){if(t.length){for(var e=0;e<t.length;e++)this.addStep(t[e]);return this}},goToStepNumber:function(t){return function(t){this._currentStepNumber=t,void 0!==this._introItems&&r.call(this)}.call(this,t),this},nextStep:function(){return r.call(this),this},previousStep:function(){return s.call(this),this},exit:function(t){return a.call(this,this._targetElement,t),this},refresh:function(){return function(){if(p.call(this,document.querySelector(".introjs-helperLayer")),p.call(this,document.querySelector(".introjs-tooltipReferenceLayer")),p.call(this,document.querySelector(".introjs-disableInteraction")),void 0!==this._currentStep&&null!==this._currentStep){var t=document.querySelector(".introjs-helperNumberLayer"),e=document.querySelector(".introjs-arrow"),n=document.querySelector(".introjs-tooltip");l.call(this,this._introItems[this._currentStep].element,n,e,t)}return O.call(this),this}.call(this),this},onbeforechange:function(t){if("function"!=typeof t)throw new Error("Provided callback for onbeforechange was not a function");return this._introBeforeChangeCallback=t,this},onchange:function(t){if("function"!=typeof t)throw new Error("Provided callback for onchange was not a function.");return this._introChangeCallback=t,this},onafterchange:function(t){if("function"!=typeof t)throw new Error("Provided callback for onafterchange was not a function");return this._introAfterChangeCallback=t,this},oncomplete:function(t){if("function"!=typeof t)throw new Error("Provided callback for oncomplete was not a function.");return this._introCompleteCallback=t,this},onhintsadded:function(t){if("function"!=typeof t)throw new Error("Provided callback for onhintsadded was not a function.");return this._hintsAddedCallback=t,this},onhintclick:function(t){if("function"!=typeof t)throw new Error("Provided callback for onhintclick was not a function.");return this._hintClickCallback=t,this},onhintclose:function(t){if("function"!=typeof t)throw new Error("Provided callback for onhintclose was not a function.");return this._hintCloseCallback=t,this},onexit:function(t){if("function"!=typeof t)throw new Error("Provided callback for onexit was not a function.");return this._introExitCallback=t,this},onskip:function(t){if("function"!=typeof t)throw new Error("Provided callback for onskip was not a function.");return this._introSkipCallback=t,this},onbeforeexit:function(t){if("function"!=typeof t)throw new Error("Provided callback for onbeforeexit was not a function.");return this._introBeforeExitCallback=t,this},addHints:function(){return _.call(this,this._targetElement),this},hideHint:function(t){return T.call(this,t),this},hideHints:function(){return function(){g(L(".introjs-hint"),function(t){T.call(this,t.getAttribute("data-step"))}.bind(this))}.call(this),this},showHint:function(t){return B.call(this,t),this},showHints:function(){return function(){var t=L(".introjs-hint");t&&t.length?g(t,function(t){B.call(this,t.getAttribute("data-step"))}.bind(this)):_.call(this,this._targetElement)}.call(this),this},removeHints:function(){return function(){g(L(".introjs-hint"),function(t){z.call(this,t.getAttribute("data-step"))}.bind(this))}.call(this),this},removeHint:function(t){return z.call(this,t),this},showHintDialog:function(t){return I.call(this,t),this}},P},t.exports=i(),t.exports.introJs=function(){return console.warn('Deprecated: please use require("intro.js") directly, instead of the introJs method of the function'),i().apply(this,arguments)}},,,function(t,e,n){"use strict";n.r(e);n(17);var i=class{startDebugging(){this.debugging=!0,this.log({data:"Buttonizer is debugging!",style:"font-size: 30px; color: #FF0000;"})}welcomeToTheConsole(){this.debugging=!0,this.log({data:"Welcome to Buttonizer. Please do not continue without any knowledge.",style:"font-size: 30px; color: #FF0000;"}),this.log({data:"You can find errors down here. If there is any error that is related to Buttonizer you can contact us at contact@buttonizer.pro",style:"font-size: 18px; color: #FF0000;"}),this.log({data:"Check https://community.buttonizer.pro",style:"font-size: 18px; color: #FF0000;"}),this.log({data:" ",style:"font-size: 18px; color: #FF0000;"}),this.log({data:" ",style:"font-size: 18px; color: #FF0000;"}),this.log({data:"----- Logs: -----",style:"font-size: 18px; color: #FF0000;"}),this.debugging=!1}log(t){this.debugging&&t.data&&(t.color&&(t.style=""),t.color||t.style?console.log("%c "+t.data,t.style):console.log(t.data))}warning(t){this.debugging&&console.warn(t)}warn(t){this.debugging&&console.warn(t)}error(t){console.error(t)}};var o=class{constructor(t,e){this.data=t,this.modal=e,this.validate()}validate(){void 0===this.data.onClick&&(this.data.onClick=function(){}),void 0===this.data.text&&(this.data.text="Button"),void 0===this.data.confirm&&(this.data.confirm=!1),void 0===this.data.focus&&(this.data.focus=!1)}render(){let t=document.createElement("a");return t.href="javascript:void(0)",t.innerHTML=this.data.text,t.className="button",t.style.marginLeft="5px",this.data.confirm&&(t.className+=" button-primary"),t.addEventListener("click",()=>{this.data.close&&this.modal.closeDialog(),this.data.confirm&&this.modal.confirmDialog(),this.data.cancel&&this.modal.cancelDialog(),this.data.onClick()}),setTimeout(()=>{this.data.focus&&t.focus()},50),t}};var r=class{constructor(t){this.data=t,this.element=HTMLElement,"function"==typeof this.data.onConfirm?this.onConfirm=this.data.onConfirm:this.onConfirm=function(){},"function"==typeof this.data.onCancel?this.onCancel=this.data.onCancel:this.onCancel=function(){},"function"==typeof this.data.onClose?this.onClose=this.data.onClose:this.onClose=function(){},void 0===this.data.class?this.class="":this.class=this.data.class,this.render()}render(){this.element=document.createElement("div"),this.element.classList="fs-modal active"+(""!==this.class?" "+this.class:"");let t=document.createElement("div");t.classList="fs-modal-dialog",t.appendChild(this.modalHeader()),t.appendChild(this.modalBody()),t.appendChild(this.modalFooter()),this.element.appendChild(t),document.body.appendChild(this.element)}modalHeader(){let t=document.createElement("div");t.classList="fs-modal-header";let e=document.createElement("h4");e.innerHTML=this.data.title,t.appendChild(e);let n=document.createElement("a");return n.className="fs-close",n.href="javascript:void(0)",n.innerHTML='<i class="dashicons dashicons-no" title="Dismiss"></i>',n.addEventListener("click",()=>{this.closeDialog()}),t.appendChild(n),t}modalBody(){let t=document.createElement("div");t.className="fs-modal-body";let e=document.createElement("div");return e.className="fs-modal-panel active","object"==typeof this.data.content?e.appendChild(this.data.content):e.innerHTML=this.data.content,t.appendChild(e),t}modalFooter(){let t=document.createElement("div");return t.className="fs-modal-footer",this.data.buttons&&t.appendChild(this.renderButtons()),t}renderButtons(){let t=document.createElement("div");for(var e=0;e<this.data.buttons.length;e++){let n=new o(this.data.buttons[e],this);t.appendChild(n.render())}return t}cancelDialog(){this.onCancel(),this.closeDialog()}confirmDialog(){this.onConfirm(),this.closeDialog()}closeDialog(){this.onClose(),this.element.remove()}};class s{constructor(t){this.table=document.createElement("table"),this.table.width="100%",""!==t&&(this.table.className=t),this.currentRow=document.createElement("tr")}newRow(){return this.table.appendChild(this.currentRow),this.currentRow=document.createElement("tr"),this}addColumn(t,e,n){let i=document.createElement("td");return i.appendChild(t),"undefined"!==e&&(i.className=e),"undefined"!==n&&(i.width=n),this.currentRow.appendChild(i),this}addColumnText(t,e,n){let i=document.createElement("td");return i.innerText=t,"undefined"!==e&&(i.className=""+e),"undefined"!==n&&(i.width=n),this.currentRow.appendChild(i),this}addColumnHTML(t,e,n){let i=document.createElement("td");return i.innerHTML=t,"undefined"!==e&&(i.className=e),"undefined"!==n&&(i.width=n),this.currentRow.appendChild(i),this}build(){return this.table.appendChild(this.currentRow),this.table}}class a{constructor(t){this.windowObject=t}build(){let t=document.createElement("input");t.className="window-select",t.placeholder="Add class";let e=new s("table-relative");return e.addColumnHTML("<h2>Custom class <span class='buttonizer-premium premium-right'>PRO</span></h2>","table-align-top",""),t.addEventListener("mousedown",()=>window.Buttonizer.showPremiumPopup("You can add a custom class to each button for styling purposes.")),e.addColumn(t,"","370"),e.build()}}class l{constructor(t){this.windowObject=t}build(){let t=document.createElement("input");t.className="window-select",t.placeholder="Add ID";let e=new s("table-relative");return e.addColumnHTML("<h2>Custom ID <span class='buttonizer-premium premium-right'>PRO</span></h2>"),t.addEventListener("mousedown",()=>window.Buttonizer.showPremiumPopup("You can add a custom ID to each button for styling purposes.")),e.addColumn(t,"","370"),e.build()}}class c{constructor(t){this.windowObject=t,this.onTriggerContainer=null,this.dropdown=document.createElement("select"),this.dropdown.className="window-select"}build(){let t=document.createElement("div");t.appendChild(this.dropdown),this.onChange();let e=new s("table-relative");return e.addColumnHTML("<h2>Time schedule"+(window.Buttonizer.hasPremium()?"":' <span class="buttonizer-premium premium-right">PRO</span>')+"</h2>","table-align-top",""),e.addColumn(t,"","370"),e.newRow(),e.build()}onChange(){this.dropdown.innerHTML="<option>Show on all times</option>",this.dropdown.readonly=!0,this.dropdown.addEventListener("click",()=>window.Buttonizer.showPremiumPopup("You can setup time schedules that will get triggered on specific times of a day you setup, it is even possible to change the schedule actions for specific days. You can create unlimited amount of schedules."))}}class u{constructor(t){this.state=void 0!==t.state&&"true"==t.state,this.onChange=void 0===t.onChange?function(){console.log("FormBoolean: No binding. Use FormBoolean.onChange()")}:t.onChange,this.disabled=void 0!==t.disabled&&t.disabled,this.visible=void 0===t.visible||t.visible,this.element=HTMLElement}build(){this.element=document.createElement("a"),this.element.href="javascript:void(0)",this.element.className="buttonizer-boolean "+(!0===this.state?"boolean-selected":""),this.element.addEventListener("click",()=>this.toggle());let t=document.createElement("div");return t.className="buttonizer-boolean-circle",this.element.appendChild(t),this.element}hide(){this.element.style.display="none"}show(){this.element.style.display="block"}onToggle(t){this.onChange=t}toggle(){this.disabled?console.log("Sorry, you're not able to edit this"):(this.state=!this.state,!0===this.state?this.element.classList.add("boolean-selected"):this.element.classList.remove("boolean-selected"),this.onChange(this.state))}}class d{constructor(t){this.windowObject=t,this.onTriggerContainer=null,this.dropdown=document.createElement("select"),this.dropdown.className="window-select"}build(){let t=document.createElement("div");t.appendChild(this.dropdown),this.onChange();let e=new s("table-relative");return e.addColumnHTML("<h2>Page rule"+(window.Buttonizer.hasPremium()?"":' <span class="buttonizer-premium premium-right">PRO</span>')+"</h2>","table-align-top",""),e.addColumn(t,"","370"),e.newRow(),e.build()}onChange(){this.dropdown.innerHTML="<option>Show on all pages</option>",this.dropdown.readonly=!0,this.dropdown.addEventListener("click",()=>window.Buttonizer.showPremiumPopup("You can setup page rules that will get triggered on specific pages or user roles. You can create unlimited page rules with multiple rules to trigger."))}}class p{constructor(t){this.windowObject=t}build(){let t=this.buildElements();return window.Buttonizer.hasPremium()||t.addEventListener("click",()=>{window.Buttonizer.showPremiumPopup("With this setting, you can make your button appear/hide after certain amount of time.")}),t}buildElements(){let t=document.createElement("input");t.type="checkbox",t.className="buttonizer-timeout-checkbox",t.checked=void 0!==this.windowObject.objectOwner.data.advanced_timeout&&!isNaN(this.windowObject.objectOwner.data.advanced_timeout)&&this.windowObject.objectOwner.data.advanced_timeout>0;let e=document.createElement("input");e.type="number",e.value=void 0===this.windowObject.objectOwner.data.advanced_timeout?"":this.windowObject.objectOwner.data.advanced_timeout,e.className="window-select",e.placeholder="miliseconds";let n=document.createElement("div");n.innerHTML=` Show Buttonizer after <b>${e.value/1e3}</b> seconds`,window.Buttonizer.hasPremium()||(t.setAttribute("disabled",""),e.setAttribute("readonly",""),e.value="",e.style.opacity="0.5",n.style.opacity="0.5");let i=new s("table-relative");return i.addColumnHTML("<h2>Timeout</h2>"+(window.Buttonizer.hasPremium()?"":'<span class="buttonizer-premium premium-right">PRO</span>')),i.addColumn(t,"","10"),i.addColumn(e,"","360"),i.newRow(),i.addColumnText(""),i.addColumnText(""),i.addColumn(n),i.build()}}class h{constructor(t){this.windowObject=t,this.checkbox,this.input,this.toggle,this.hide,this.toggleHide,this.select,this.info}build(){let t=this.elements().build();return window.Buttonizer.hasPremium()||t.addEventListener("click",()=>{window.Buttonizer.showPremiumPopup("With this setting, you can make your button appear/hide after scrolling for a certain amount.")}),t}elements(){this.checkbox=document.createElement("input"),this.checkbox.type="checkbox",this.checkbox.className="buttonizer-scroll-checkbox",this.input=document.createElement("input"),this.input.type="number",this.input.className="window-select",this.input.placeholder="0",this.toggle=document.createElement("input"),this.toggle.type="checkbox",this.toggle.className="buttonizer-switch",this.toggle.style.display="inline-block",this.hide=document.createElement("div"),this.hide.style.display="inline-block",window.Buttonizer.hasPremium()||(this.hide.innerHTML="Starting visibility: <b>Show</b>"),this.toggleHide=document.createElement("div"),this.toggleHide.appendChild(this.toggle),this.toggleHide.appendChild(this.hide),this.select=document.createElement("select");let t=document.createElement("option");t.value="px",t.innerHTML="px";let e=document.createElement("option");e.value="%",e.innerHTML="%",this.select.classList="window-select",this.select.appendChild(e),this.select.appendChild(t),this.info=document.createElement("div"),this.info.innerHTML=` Scroll <b>${this.input.value<=0?"0":this.input.value} ${this.select.value}</b> from top of page to <b>${"true"==this.windowObject.objectOwner.data.advanced_scroll_hide?"hide":"show"}</b> Buttonizer`,window.Buttonizer.hasPremium()||(this.checkbox.setAttribute("disabled",""),this.input.setAttribute("readonly",""),this.toggle.setAttribute("disabled",""),this.select.setAttribute("disabled",""),this.input.value="",this.input.style.opacity="0.5",this.select.style.opacity="0.5",this.info.style.opacity="0.5",this.toggleHide.style.opacity="0.5");let n=new s("table-relative");return n.addColumnHTML("<h2>Scroll</h2>"+(window.Buttonizer.hasPremium()?"":'<span class="buttonizer-premium premium-right">PRO</span>')),n.addColumn(this.checkbox,"","10"),n.addColumn(this.input,"","284"),n.addColumn(this.select,"","70"),n.newRow(),n.addColumnText(""),n.addColumnText(""),n.addColumn(this.toggleHide),n.newRow(),n.addColumnText(""),n.addColumnText(""),n.addColumn(this.info),n}}class m{constructor(t,e){this.window=HTMLElement,this.body=HTMLElement,this.footer=HTMLElement,this.background=document.createElement("div"),this.background.className="background",this.background.addEventListener("click",()=>{this.hide()}),this.title=document.createElement("div"),this.title.innerHTML=e,this.settings={},this.objectOwner=t,this.menuItems=[],this.buttonFilter=document.createElement("div"),this.build()}header(){let t=document.createElement("div");t.className="header";let e=document.createElement("a");e.className="close-btn",e.href="javascript:void(0)";let n=document.createElement("i");return n.className="fa fa-times",e.appendChild(n),e.addEventListener("click",()=>{this.hide()}),t.appendChild(e),t.appendChild(this.title),t}createBody(){let t=document.createElement("div"),e=document.createElement("div");return e.className="window-menu",this.bodyMenu=e,this.body=document.createElement("div"),this.body.className="window-body",t.appendChild(this.bodyMenu),t.appendChild(this.body),t}build(){let t=document.createElement("div");t.className="buttonizer-settings-window",t.style.display="none",t.style.top="500px",t.appendChild(this.header()),t.appendChild(this.createBody()),t.appendChild(this.background),this.window=t,document.body.appendChild(this.window),jQuery(this.window).draggable({handle:".header",containment:"body",start:()=>this.topMeUp()}),this.window.addEventListener("click",()=>this.topMeUp()),this.afterBuild(),this.render()}addItem(t,e){let n=document.createElement("a");n.href="javascript:void(0)",n.innerHTML=t;let i=document.createElement("div");i.className="body-inner animated pulse",this.menuItems.length>=1&&(i.style.display="none"),i.appendChild(e),n.addEventListener("click",()=>{this.openMenuItem(t)}),0===this.menuItems.length&&n.classList.add("selected"),this.menuItems.push({unique:t,menu:n,body:i}),this.bodyMenu.appendChild(n),this.body.appendChild(i)}openMenuItem(t){for(let e=0;e<this.menuItems.length;e++)this.menuItems[e].unique===t?(this.menuItems[e].menu.classList.add("selected"),this.menuItems[e].body.style.display="block"):(this.menuItems[e].menu.classList.remove("selected"),this.menuItems[e].body.style.display="none")}show(){this.window.style.display="block"}hide(){this.window.style.display="none"}toggle(){"block"===this.window.style.display?this.hide():this.show()}topMeUp(){Buttonizer.windowsZindex!==this.window.style.zIndex&&(Buttonizer.windowsZindex++,this.window.style.zIndex=Buttonizer.windowsZindex)}render(){}afterBuild(){}}class b extends m{constructor(t){super(t,"Advanced settings - "+t.data.name+(window.Buttonizer.hasPremium()?"":" (premium)"))}render(){this.filter(),this.styling(),this.delay()}filter(){let t=document.createElement("div");this.pageRuleSelect=new d(this),this.timeSchedule=new c(this),t.appendChild(this.timeSchedule.build()),t.appendChild(this.pageRuleSelect.build()),super.addItem("Filters",t)}styling(){let t=document.createElement("div");t.appendChild(new a(this).build()),t.appendChild(new l(this).build()),super.addItem("Styling",t)}delay(){let t=document.createElement("div");t.appendChild(new p(this.objectOwner.groupObject.windowObject).build()),t.appendChild(new h(this.objectOwner.groupObject.windowObject).build()),this.addItem("Timeout & Scroll",t),this.menuItems.forEach(t=>{"Timeout & Scroll"===t.unique&&(t.menu.style.display="none")})}}var f=n(4);
 
 
 
 
 
 
 
 
 
 
 
 
62
  /**!
63
  * tippy.js v4.3.0
64
  * (c) 2017-2019 atomiks
65
  * MIT License
66
- */function g(){return(g=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}).apply(this,arguments)}var y="undefined"!=typeof window&&"undefined"!=typeof document,w=y?navigator.userAgent:"",v=/MSIE |Trident\//.test(w),k=/UCBrowser\//.test(w),E=y&&/iPhone|iPad|iPod/.test(navigator.platform)&&!window.MSStream,C={a11y:!0,allowHTML:!0,animateFill:!0,animation:"shift-away",appendTo:function(){return document.body},aria:"describedby",arrow:!1,arrowType:"sharp",boundary:"scrollParent",content:"",delay:0,distance:10,duration:[325,275],flip:!0,flipBehavior:"flip",flipOnUpdate:!1,followCursor:!1,hideOnClick:!0,ignoreAttributes:!1,inertia:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,lazy:!0,maxWidth:350,multiple:!1,offset:0,onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},placement:"top",popperOptions:{},role:"tooltip",showOnInit:!1,size:"regular",sticky:!1,target:"",theme:"dark",touch:!0,touchHold:!1,trigger:"mouseenter focus",triggerTarget:null,updateDuration:0,wait:null,zIndex:9999},x=["arrow","arrowType","boundary","distance","flip","flipBehavior","flipOnUpdate","offset","placement","popperOptions"],S=y?Element.prototype:{},j=S.matches||S.matchesSelector||S.webkitMatchesSelector||S.mozMatchesSelector||S.msMatchesSelector;function _(t){return[].slice.call(t)}function O(t,e){return L(t,function(t){return j.call(t,e)})}function L(t,e){for(;t;){if(e(t))return t;t=t.parentElement}return null}var T={passive:!0},B=4,z="x-placement",A="x-out-of-boundaries",I="tippy-iOS",N="tippy-active",M=".tippy-popper",H=".tippy-tooltip",q=".tippy-content",P=".tippy-backdrop",D=".tippy-arrow",R=".tippy-roundarrow",F=Object.keys(C);function W(t,e){return{}.hasOwnProperty.call(t,e)}function Y(t,e,n){if(Array.isArray(t)){var i=t[e];return null==i?n:i}return t}function U(t,e){var n;return function(){var i=this,o=arguments;clearTimeout(n),n=setTimeout(function(){return t.apply(i,o)},e)}}function G(t,e){return t&&t.modifiers&&t.modifiers[e]}function Q(t,e){return t.indexOf(e)>-1}function V(t){return t instanceof Element}function X(t){return!(!t||!W(t,"isVirtual"))||V(t)}function $(t,e){return"function"==typeof t?t.apply(null,e):t}function J(t,e){t.filter(function(t){return"flip"===t.name})[0].enabled=e}function K(){return document.createElement("div")}function Z(t,e){t.forEach(function(t){t&&(t.style.transitionDuration="".concat(e,"ms"))})}function tt(t,e){t.forEach(function(t){t&&t.setAttribute("data-state",e)})}function et(t,e){var n=g({},e,{content:$(e.content,[t])},e.ignoreAttributes?{}:function(t){return F.reduce(function(e,n){var i=(t.getAttribute("data-tippy-".concat(n))||"").trim();if(!i)return e;if("content"===n)e[n]=i;else try{e[n]=JSON.parse(i)}catch(t){e[n]=i}return e},{})}(t));return(n.arrow||k)&&(n.animateFill=!1),n}function nt(t,e){Object.keys(t).forEach(function(t){if(!W(e,t))throw new Error("[tippy]: `".concat(t,"` is not a valid option"))})}function it(t,e){t.innerHTML=e instanceof Element?e.innerHTML:e}function ot(t,e){if(e.content instanceof Element)it(t,""),t.appendChild(e.content);else if("function"!=typeof e.content){t[e.allowHTML?"innerHTML":"textContent"]=e.content}}function rt(t){return{tooltip:t.querySelector(H),backdrop:t.querySelector(P),content:t.querySelector(q),arrow:t.querySelector(D)||t.querySelector(R)}}function st(t){t.setAttribute("data-inertia","")}function at(t){var e=K();return"round"===t?(e.className="tippy-roundarrow",it(e,'<svg viewBox="0 0 18 7" xmlns="http://www.w3.org/2000/svg"><path d="M0 7s2.021-.015 5.253-4.218C6.584 1.051 7.797.007 9 0c1.203-.007 2.416 1.035 3.761 2.782C16.012 7.005 18 7 18 7H0z"/></svg>')):e.className="tippy-arrow",e}function lt(){var t=K();return t.className="tippy-backdrop",t.setAttribute("data-state","hidden"),t}function ct(t,e){t.setAttribute("tabindex","-1"),e.setAttribute("data-interactive","")}function ut(t,e,n){var i=k&&void 0!==document.body.style.webkitTransition?"webkitTransitionEnd":"transitionend";t[e+"EventListener"](i,n)}function dt(t){var e=t.getAttribute(z);return e?e.split("-")[0]:""}function pt(t,e,n){n.split(" ").forEach(function(n){t.classList[e](n+"-theme")})}function ht(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.checkHideOnClick,n=t.exclude,i=t.duration;_(document.querySelectorAll(M)).forEach(function(t){var o,r=t._tippy;if(r){var s=!e||!0===r.props.hideOnClick,a=!1;n&&(a=(o=n)._tippy&&!j.call(o,M)?r.reference===n:t===n.popper),s&&!a&&r.hide(i)}})}var mt=!1;function bt(){mt||(mt=!0,E&&document.body.classList.add(I),window.performance&&document.addEventListener("mousemove",gt))}var ft=0;function gt(){var t=performance.now();t-ft<20&&(mt=!1,document.removeEventListener("mousemove",gt),E||document.body.classList.remove(I)),ft=t}function yt(t){if(!(t.target instanceof Element))return ht();var e=O(t.target,M);if(!(e&&e._tippy&&e._tippy.props.interactive)){var n=L(t.target,function(t){return t._tippy&&t._tippy.reference===t});if(n){var i=n._tippy;if(i){var o=Q(i.props.trigger||"","click");if(mt||o)return ht({exclude:n,checkHideOnClick:!0});if(!0!==i.props.hideOnClick||o)return;i.clearDelayTimeouts()}}ht({checkHideOnClick:!0})}}function wt(){var t=document.activeElement;t&&t.blur&&t._tippy&&t.blur()}var vt=1;function kt(t,e){var n,i,o,r,s,a=et(t,e);if(!a.multiple&&t._tippy)return null;var l,c,u,d,p,h,m=!1,b=!1,y=!1,w=[],k=a.interactiveDebounce>0?U(wt,a.interactiveDebounce):wt,E=vt++,S=function(t,e){var n=K();n.className="tippy-popper",n.id="tippy-".concat(t),n.style.zIndex=""+e.zIndex,e.role&&n.setAttribute("role",e.role);var i=K();i.className="tippy-tooltip",i.style.maxWidth=e.maxWidth+("number"==typeof e.maxWidth?"px":""),i.setAttribute("data-size",e.size),i.setAttribute("data-animation",e.animation),i.setAttribute("data-state","hidden"),pt(i,"add",e.theme);var o=K();return o.className="tippy-content",o.setAttribute("data-state","hidden"),e.interactive&&ct(n,i),e.arrow&&i.appendChild(at(e.arrowType)),e.animateFill&&(i.appendChild(lt()),i.setAttribute("data-animatefill","")),e.inertia&&st(i),ot(o,e),i.appendChild(o),n.appendChild(i),n}(E,a),I=rt(S),H={id:E,reference:t,popper:S,popperChildren:I,popperInstance:null,props:a,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},clearDelayTimeouts:Bt,set:zt,setContent:function(t){zt({content:t})},show:At,hide:It,enable:function(){H.state.isEnabled=!0},disable:function(){H.state.isEnabled=!1},destroy:function(e){if(H.state.isDestroyed)return;H.state.isMounted&&It(0);bt(),delete t._tippy,delete D()._tippy;var n=H.props.target;n&&e&&V(t)&&_(t.querySelectorAll(n)).forEach(function(t){t._tippy&&t._tippy.destroy()});H.popperInstance&&H.popperInstance.destroy();H.state.isDestroyed=!0}};return t._tippy=H,S._tippy=H,D()._tippy=H,ht(),a.lazy||Ot(),a.showOnInit&&Lt(),a.a11y&&!a.target&&((h=t)instanceof Element&&(!j.call(h,"a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]")||h.hasAttribute("disabled")))&&D().setAttribute("tabindex","0"),S.addEventListener("mouseenter",function(t){H.props.interactive&&H.state.isVisible&&"mouseenter"===n&&Lt(t,!0)}),S.addEventListener("mouseleave",function(){H.props.interactive&&"mouseenter"===n&&document.addEventListener("mousemove",k)}),H;function q(){document.removeEventListener("mousemove",gt)}function P(){document.body.removeEventListener("mouseleave",Tt),document.removeEventListener("mousemove",k)}function D(){return H.props.triggerTarget||t}function R(){return[H.popperChildren.tooltip,H.popperChildren.backdrop,H.popperChildren.content]}function F(){return H.props.followCursor&&!mt&&"focus"!==n}function X(t,e){var n=H.popperChildren.tooltip;function i(t){t.target===n&&(ut(n,"remove",i),e())}if(0===t)return e();ut(n,"remove",d),ut(n,"add",i),d=i}function it(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];D().addEventListener(t,e,n),w.push({eventType:t,handler:e,options:n})}function ht(){H.props.touchHold&&!H.props.target&&(it("touchstart",yt,T),it("touchend",Et,T)),H.props.trigger.trim().split(" ").forEach(function(t){if("manual"!==t)if(H.props.target)switch(t){case"mouseenter":it("mouseover",xt),it("mouseout",St);break;case"focus":it("focusin",xt),it("focusout",St);break;case"click":it(t,xt)}else switch(it(t,yt),t){case"mouseenter":it("mouseleave",Et);break;case"focus":it(v?"focusout":"blur",Ct)}})}function bt(){w.forEach(function(t){var e=t.eventType,n=t.handler,i=t.options;D().removeEventListener(e,n,i)}),w=[]}function ft(t){return H.props.arrow?p[t]+("round"===H.props.arrowType?18:16):p[t]}function gt(e){var n=i=e,o=n.clientX,r=n.clientY;if(p){var s=t.getBoundingClientRect(),a=H.props.followCursor,l="horizontal"===a,c="vertical"===a,u=dt(S),d=Q(["top","bottom"],u),h=Q(["left","right"],u),m=g({},p);d&&(m.left=ft("left"),m.right=ft("right")),h&&(m.top=ft("top"),m.bottom=ft("bottom"));var b=d?Math.max(m.left,o):o,f=h?Math.max(m.top,r):r;d&&b>m.right&&(b=Math.min(o,window.innerWidth-m.right)),h&&f>m.bottom&&(f=Math.min(r,window.innerHeight-m.bottom)),!L(e.target,function(e){return e===t})&&H.props.interactive||(H.popperInstance.reference=g({},H.popperInstance.reference,{getBoundingClientRect:function(){return{width:0,height:0,top:l?s.top:f,bottom:l?s.bottom:f,left:c?s.left:b,right:c?s.right:b}},clientWidth:0,clientHeight:0}),H.popperInstance.scheduleUpdate()),"initial"===a&&H.state.isVisible&&q()}}function yt(t){H.state.isEnabled&&!jt(t)&&(H.state.isVisible||(n=t.type,t instanceof MouseEvent&&(i=t)),"click"===t.type&&!1!==H.props.hideOnClick&&H.state.isVisible?Tt():Lt(t))}function wt(e){var n=L(e.target,function(t){return t._tippy});O(e.target,M)===S||n===t||function(t,e,n,i){if(!t)return!0;var o=n.clientX,r=n.clientY,s=i.interactiveBorder,a=i.distance,l=e.top-r>("top"===t?s+a:s),c=r-e.bottom>("bottom"===t?s+a:s),u=e.left-o>("left"===t?s+a:s),d=o-e.right>("right"===t?s+a:s);return l||c||u||d}(dt(S),S.getBoundingClientRect(),e,H.props)&&(P(),Tt())}function Et(t){if(!jt(t))return H.props.interactive?(document.body.addEventListener("mouseleave",Tt),void document.addEventListener("mousemove",k)):void Tt()}function Ct(t){t.target===D()&&(H.props.interactive&&t.relatedTarget&&S.contains(t.relatedTarget)||Tt())}function xt(t){O(t.target,H.props.target)&&Lt(t)}function St(t){O(t.target,H.props.target)&&Tt()}function jt(t){var e="ontouchstart"in window,n=Q(t.type,"touch"),i=H.props.touchHold;return e&&mt&&i&&!n||mt&&!i&&n}function _t(){!y&&u&&(y=!0,function(t){t.offsetHeight}(S),u())}function Ot(){var e=H.props.popperOptions,n=H.popperChildren,i=n.tooltip,o=n.arrow,r=G(e,"preventOverflow");function s(t){H.props.flip&&!H.props.flipOnUpdate&&(t.flipped&&(H.popperInstance.options.placement=t.placement),J(H.popperInstance.modifiers,!1)),i.setAttribute(z,t.placement),!1!==t.attributes[A]?i.setAttribute(A,""):i.removeAttribute(A),c&&c!==t.placement&&b&&(i.style.transition="none",requestAnimationFrame(function(){i.style.transition=""})),c=t.placement,b=H.state.isVisible;var e=dt(S),n=i.style;n.top=n.bottom=n.left=n.right="",n[e]=-(H.props.distance-10)+"px";var o=r&&void 0!==r.padding?r.padding:B,s="number"==typeof o,a=g({top:s?o:o.top,bottom:s?o:o.bottom,left:s?o:o.left,right:s?o:o.right},!s&&o);a[e]=s?o+H.props.distance:(o[e]||0)+H.props.distance,H.popperInstance.modifiers.filter(function(t){return"preventOverflow"===t.name})[0].padding=a,p=a}var a=g({eventsEnabled:!1,placement:H.props.placement},e,{modifiers:g({},e?e.modifiers:{},{preventOverflow:g({boundariesElement:H.props.boundary,padding:B},r),arrow:g({element:o,enabled:!!o},G(e,"arrow")),flip:g({enabled:H.props.flip,padding:H.props.distance+B,behavior:H.props.flipBehavior},G(e,"flip")),offset:g({offset:H.props.offset},G(e,"offset"))}),onCreate:function(t){_t(),s(t),e&&e.onCreate&&e.onCreate(t)},onUpdate:function(t){_t(),s(t),e&&e.onUpdate&&e.onUpdate(t)}});H.popperInstance=new f.a(t,S,a)}function Lt(t,n){if(Bt(),!H.state.isVisible){if(H.props.target)return function(t){if(t){var n=O(t.target,H.props.target);n&&!n._tippy&&kt(n,g({},H.props,{content:$(e.content,[n]),appendTo:e.appendTo,target:"",showOnInit:!0}))}}(t);if(m=!0,t&&!n&&H.props.onTrigger(H,t),H.props.wait)return H.props.wait(H,t);F()&&!H.state.isMounted&&(H.popperInstance||Ot(),document.addEventListener("mousemove",gt));var i=Y(H.props.delay,0,C.delay);i?o=setTimeout(function(){At()},i):At()}}function Tt(){if(Bt(),!H.state.isVisible)return q();m=!1;var t=Y(H.props.delay,1,C.delay);t?r=setTimeout(function(){H.state.isVisible&&It()},t):s=requestAnimationFrame(function(){It()})}function Bt(){clearTimeout(o),clearTimeout(r),cancelAnimationFrame(s)}function zt(e){nt(e=e||{},C),bt(),H.props.triggerTarget&&delete H.props.triggerTarget._tippy;var n=H.props,o=et(t,g({},H.props,e,{ignoreAttributes:!0}));o.ignoreAttributes=W(e,"ignoreAttributes")?e.ignoreAttributes||!1:n.ignoreAttributes,H.props=o,D()._tippy=H,ht(),P(),k=U(wt,e.interactiveDebounce||0),function(t,e,n){var i=rt(t),o=i.tooltip,r=i.content,s=i.backdrop,a=i.arrow;t.style.zIndex=""+n.zIndex,o.setAttribute("data-size",n.size),o.setAttribute("data-animation",n.animation),o.style.maxWidth=n.maxWidth+("number"==typeof n.maxWidth?"px":""),n.role?t.setAttribute("role",n.role):t.removeAttribute("role"),e.content!==n.content&&ot(r,n),!e.animateFill&&n.animateFill?(o.appendChild(lt()),o.setAttribute("data-animatefill","")):e.animateFill&&!n.animateFill&&(o.removeChild(s),o.removeAttribute("data-animatefill")),!e.arrow&&n.arrow?o.appendChild(at(n.arrowType)):e.arrow&&!n.arrow&&o.removeChild(a),e.arrow&&n.arrow&&e.arrowType!==n.arrowType&&o.replaceChild(at(n.arrowType),a),!e.interactive&&n.interactive?ct(t,o):e.interactive&&!n.interactive&&function(t,e){t.removeAttribute("tabindex"),e.removeAttribute("data-interactive")}(t,o),!e.inertia&&n.inertia?st(o):e.inertia&&!n.inertia&&function(t){t.removeAttribute("data-inertia")}(o),e.theme!==n.theme&&(pt(o,"remove",e.theme),pt(o,"add",n.theme))}(S,n,o),H.popperChildren=rt(S),H.popperInstance&&(H.popperInstance.update(),x.some(function(t){return W(e,t)&&e[t]!==n[t]})&&(H.popperInstance.destroy(),Ot(),H.state.isVisible&&H.popperInstance.enableEventListeners(),H.props.followCursor&&i&&gt(i)))}function At(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Y(H.props.duration,0,C.duration[1]);if(!H.state.isDestroyed&&H.state.isEnabled&&(!mt||H.props.touch)&&!D().hasAttribute("disabled")&&!1!==H.props.onShow(H)){S.style.visibility="visible",H.state.isVisible=!0,H.props.interactive&&D().classList.add(N);var n=R();Z(n.concat(S),0),u=function(){H.state.isVisible&&(F()||H.popperInstance.update(),H.popperChildren.backdrop&&(H.popperChildren.content.style.transitionDelay=Math.round(e/12)+"ms"),H.props.sticky&&(Z([S],v?0:H.props.updateDuration),function t(){H.popperInstance.scheduleUpdate(),H.state.isMounted?requestAnimationFrame(t):Z([S],0)}()),Z([S],H.props.updateDuration),Z(n,e),tt(n,"visible"),function(t,e){X(t,e)}(e,function(){H.props.aria&&D().setAttribute("aria-".concat(H.props.aria),S.id),H.props.onShown(H),H.state.isShown=!0}))},function(){y=!1;var e=!(F()||"initial"===H.props.followCursor&&mt);H.popperInstance?(F()||(H.popperInstance.scheduleUpdate(),e&&H.popperInstance.enableEventListeners()),J(H.popperInstance.modifiers,H.props.flip)):(Ot(),e&&H.popperInstance.enableEventListeners()),H.popperInstance.reference=t;var n=H.popperChildren.arrow;F()?(n&&(n.style.margin="0"),i&&gt(i)):n&&(n.style.margin=""),mt&&i&&"initial"===H.props.followCursor&&(gt(i),n&&(n.style.margin="0"));var o=H.props.appendTo;(l="parent"===o?t.parentNode:$(o,[t])).contains(S)||(l.appendChild(S),H.props.onMount(H),H.state.isMounted=!0)}()}}function It(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Y(H.props.duration,1,C.duration[1]);if(!H.state.isDestroyed&&H.state.isEnabled&&!1!==H.props.onHide(H)){S.style.visibility="hidden",H.state.isVisible=!1,H.state.isShown=!1,b=!1,H.props.interactive&&D().classList.remove(N);var e=R();Z(e,t),tt(e,"hidden"),function(t,e){X(t,function(){!H.state.isVisible&&l&&l.contains(S)&&e()})}(t,function(){m||q(),H.props.aria&&D().removeAttribute("aria-".concat(H.props.aria)),H.popperInstance.disableEventListeners(),H.popperInstance.options.placement=H.props.placement,l.removeChild(S),H.props.onHidden(H),H.state.isMounted=!1})}}}var Et=!1;function Ct(t,e){nt(e||{},C),Et||(document.addEventListener("click",yt,!0),document.addEventListener("touchstart",bt,T),window.addEventListener("blur",wt),Et=!0);var n,i=g({},C,e);n=t,"[object Object]"!=={}.toString.call(n)||n.addEventListener||function(t){var e={isVirtual:!0,attributes:t.attributes||{},setAttribute:function(e,n){t.attributes[e]=n},getAttribute:function(e){return t.attributes[e]},removeAttribute:function(e){delete t.attributes[e]},hasAttribute:function(e){return e in t.attributes},addEventListener:function(){},removeEventListener:function(){},classList:{classNames:{},add:function(e){t.classList.classNames[e]=!0},remove:function(e){delete t.classList.classNames[e]},contains:function(e){return e in t.classList.classNames}}};for(var n in e)t[n]=e[n]}(t);var o=function(t){if(X(t))return[t];if(t instanceof NodeList)return _(t);if(Array.isArray(t))return t;try{return _(document.querySelectorAll(t))}catch(t){return[]}}(t).reduce(function(t,e){var n=e&&kt(e,i);return n&&t.push(n),t},[]);return X(t)?o[0]:o}Ct.version="4.3.0",Ct.defaults=C,Ct.setDefaults=function(t){Object.keys(t).forEach(function(e){C[e]=t[e]})},Ct.hideAll=ht,Ct.group=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.delay,i=void 0===n?t[0].props.delay:n,o=e.duration,r=void 0===o?0:o,s=!1;function a(t){s=t,d()}function l(e){e._originalProps.onShow(e),t.forEach(function(t){t.set({duration:r}),t.hide()}),a(!0)}function c(t){t._originalProps.onHide(t),a(!1)}function u(t){t._originalProps.onShown(t),t.set({duration:t._originalProps.duration})}function d(){t.forEach(function(t){t.set({onShow:l,onShown:u,onHide:c,delay:s?[0,Array.isArray(i)?i[1]:i]:i,duration:s?r:t._originalProps.duration})})}t.forEach(function(t){t._originalProps?t.set(t._originalProps):t._originalProps=g({},t.props)}),d()},y&&setTimeout(function(){_(document.querySelectorAll("[data-tippy]")).forEach(function(t){var e=t.getAttribute("data-tippy");e&&Ct(t,{content:e})})}),function(t){if(y){var e=document.createElement("style");e.type="text/css",e.textContent=t;var n=document.head,i=n.firstChild;i?n.insertBefore(e,i):n.appendChild(e)}}('.tippy-iOS{cursor:pointer!important;-webkit-tap-highlight-color:transparent}.tippy-popper{transition-timing-function:cubic-bezier(.165,.84,.44,1);max-width:calc(100% - 8px);pointer-events:none;outline:0}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-7px;bottom:-6.5px;-webkit-transform-origin:50% 0;transform-origin:50% 0;margin:0 3px}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;bottom:-7px;margin:0 3px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 25%;transform-origin:0 25%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-55%);transform:scale(1) translate(-50%,-55%)}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%,-45%);transform:scale(.2) translate(-50%,-45%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(-10px) rotateX(0);transform:perspective(700px) translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(60deg);transform:perspective(700px) translateY(0) rotateX(60deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px) scale(.5);transform:translateY(-10px) scale(.5)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-7px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;margin:0 3px}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;top:-7px;margin:0 3px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-45%);transform:scale(1) translate(-50%,-45%)}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%);transform:scale(.2) translate(-50%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(10px) rotateX(0);transform:perspective(700px) translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(-60deg);transform:perspective(700px) translateY(0) rotateX(-60deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px) scale(.5);transform:translateY(10px) scale(.5)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-12px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%;margin:3px 0}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-75%,-50%);transform:scale(.2) translate(-75%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(-10px) rotateY(0);transform:perspective(700px) translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(-60deg);transform:perspective(700px) translateX(0) rotateY(-60deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px) scale(.5);transform:translateX(-10px) scale(.5)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-12px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%;margin:3px 0}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-25%,-50%);transform:scale(.2) translate(-25%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(10px) rotateY(0);transform:perspective(700px) translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(60deg);transform:perspective(700px) translateX(0) rotateY(60deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px) scale(.5);transform:translateX(10px) scale(.5)}.tippy-tooltip{position:relative;color:#fff;border-radius:.25rem;font-size:.875rem;padding:.3125rem .5625rem;line-height:1.4;text-align:center;background-color:#333}.tippy-tooltip[data-size=small]{padding:.1875rem .375rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.375rem .75rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:18px;height:7px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;background-color:#333;border-radius:50%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:"";float:left;padding-top:100%}.tippy-backdrop+.tippy-content{transition-property:opacity;will-change:opacity}.tippy-backdrop+.tippy-content[data-state=visible]{opacity:1}.tippy-backdrop+.tippy-content[data-state=hidden]{opacity:0}');var xt=Ct;var St=class{constructor(t){this.buttonObject=t,this.buttonObject.stylingObject=this,this.groupHolder=null,this.buttonTitle=null,this.manageButtonMenu=null}build(){let t=document.createElement("div");return t.className="button-group-holder",t.appendChild(this.createTitleField()),t.appendChild(this.createButtonMobileDesktop()),t.appendChild(this.createButtonHolderButton()),t.appendChild(this.createQuickMenu()),this.groupHolder=t,t}createButtonHolderButton(){let t=document.createElement("a");t.href="javascript:void(0)",t.className="holder-button";let e=document.createElement("i");return e.className="fas fa-ellipsis-v",t.appendChild(e),t.addEventListener("click",()=>{let t=this.groupHolder.className.indexOf("holder-show-quick-menu");jQuery(".holder-show-quick-menu").removeClass("holder-show-quick-menu"),-1===t&&this.groupHolder.classList.add("holder-show-quick-menu")}),t}createQuickMenu(){let t=document.createElement("div");return t.className="group-holder-quick-menu",t.addEventListener("click",()=>{this.groupHolder.classList.remove("holder-show-quick-menu")}),t.appendChild(this.createQuickMenuButton("fas fa-wrench","Button settings",()=>this.revealSettings(),"settings")),t.appendChild(this.createQuickMenuButton("fas fa-cog","Advanced settings",()=>this.buttonObject.windowObject.toggle(),window.Buttonizer.hasPremium()?"":"buttonizer-premium-gray-out")),t.appendChild(this.createQuickMenuButton("fas fa-pencil-alt","Rename button",()=>this.buttonRename(),"")),t.appendChild(this.createQuickMenuButton("far fa-copy","Duplicate button",()=>this.buttonDuplicate(),"")),t.appendChild(this.createQuickMenuButton("far fa-trash-alt","Delete button",()=>this.buttonDelete(),"delete")),this.manageButtonMenu=t,t}createQuickMenuButton(t,e,n,i=""){let o=document.createElement("a");o.href="javascript:void(0)",o.className=i;let r=document.createElement("i");return r.className=t,o.appendChild(r),o.innerHTML+=e,o.addEventListener("click",t=>n(t)),o}createTitleField(){let t=document.createElement("div");t.className+="button-title-holder";let e=document.createElement("input");e.type="text",e.className="group-title",e.value=this.buttonObject.data.name,e.setAttribute("readonly",""),e.id="buttonizer-button-title";let n=document.createElement("a");return n.href="javascript:void(0)",n.className="group-rename",n.innerHTML="<i class='fa fa-pencil-alt'></i>",e.addEventListener("change",()=>this.updateTitle()),e.addEventListener("keyup",t=>{13===t.keyCode?this.updateTitle():27===t.keyCode&&(e.value=this.buttonObject.data.name,e.setAttribute("readonly",""))}),e.addEventListener("click",t=>{jQuery(".holder-show-quick-menu").removeClass("holder-show-quick-menu"),t.isTrusted&&e.hasAttribute("readonly")&&this.revealSettings()}),this.buttonTitle=e,t.appendChild(e),t.appendChild(n),e}updateTitle(){this.buttonObject.data.name=this.buttonTitle.value,window.Buttonizer.buttonChanges=!0,this.buttonTitle.setAttribute("readonly","")}buttonRename(){this.buttonTitle.hasAttribute("readonly")&&(this.buttonTitle.removeAttribute("readonly"),this.buttonTitle.focus())}buttonDelete(){1!==this.buttonObject.groupObject.getButtonsAlive()?new r({title:"Remove button",content:"<p>Are you very sure you want to remove this button called '"+this.buttonObject.data.name+"'?</p>",onConfirm:()=>{this.buttonObject.removeButton()},buttons:[{text:"Never mind",close:!0,focus:!0},{text:"Remove",confirm:!0}]}):new r({title:"Warning",content:"<p>You cannot remove this button because this the only button left in the group.</p><p>Please remove the group if you do not use it anymore.</p>",buttons:[{text:"Dismiss",close:!0,focus:!0,confirm:!0}]})}buttonDuplicate(){let t=new RegExp(this.buttonObject.data.name+" - Copy \\([0-9]+\\)"),e=this.buttonObject.data.name+" - Copy";for(let n=0;n<this.buttonObject.groupObject.buttons.length;n++)if(this.buttonObject.groupObject.buttons[n].data.name.match(t)){let i=this.buttonObject.groupObject.buttons[n].data.name.match(t).toString().match(/- Copy \([0-9]+\)/).toString(),o=parseInt(i.replace(/\D/g,""));e=this.buttonObject.data.name+` - Copy (${o+1})`}else this.buttonObject.groupObject.buttons[n].data.name!==e||this.buttonObject.groupObject.buttons[n].data.name.match(t)||(e+=" (2)");let n={};for(let t in this.buttonObject.data)n[t]=this.buttonObject.data[t];n.name=e,new be(this.buttonObject.groupObject,n),window.Buttonizer.buttonChanges=!0}createButtonMobileDesktop(){let t=document.createElement("a");t.href="javascript:void(0)",t.className="mobile-desktop",t.innerHTML="&nbsp;";let e=document.createElement("i");e.className="mobile-preview",e.innerHTML='<i class="fa fa-mobile-alt"></i>';let n=document.createElement("i");n.className="desktop-preview",n.innerHTML='<i class="fa fa-desktop"></i>',"true"!==this.buttonObject.data.show_mobile&&void 0!==this.buttonObject.data.show_mobile||(e.className+=" selected"),"true"!==this.buttonObject.data.show_desktop&&void 0!==this.buttonObject.data.show_desktop||(n.className+=" selected");let i=document.createElement("div");return i.className="new-button-visibility",i.appendChild(this.createMobile(e)),i.appendChild(this.createDesktop(n)),t.appendChild(i),t.appendChild(e),t.appendChild(n),t}createMobile(t){let e=document.createElement("a");e.href="javascript:void(0)",e.className="visibility-deskmobi";let n=document.createElement("i");return n.className="fa fa-mobile-alt",e.appendChild(n),this.buttonObject.registerUI("show_mobile",{update:n=>{!0===n||"true"===n?(e.classList.add("selected"),t.classList.add("selected")):(e.classList.remove("selected"),t.classList.remove("selected"))}}),this.buttonObject.getUI("show_mobile").forEach(t=>t.update(this.buttonObject.get("show_mobile"))),e.addEventListener("click",()=>{let t=this.buttonObject.get("show_mobile",!0);this.buttonObject.set("show_mobile",!(!0===t||"true"===t))}),e}createDesktop(t){let e=document.createElement("a");e.href="javascript:void(0)",e.className="visibility-deskmobi";let n=document.createElement("i");return n.className="fa fa-desktop",e.appendChild(n),this.buttonObject.registerUI("show_desktop",{update:n=>{!0===n||"true"===n?(e.classList.add("selected"),t.classList.add("selected")):(e.classList.remove("selected"),t.classList.remove("selected"))}}),this.buttonObject.getUI("show_desktop").forEach(t=>t.update(this.buttonObject.get("show_desktop"))),e.addEventListener("click",()=>{let t=this.buttonObject.get("show_desktop",!0);this.buttonObject.set("show_desktop",!(!0===t||"true"===t))}),e}revealSettings(){this.buttonObject.revealSettings()}};class jt{constructor(t,e,n){this.title=t,this.settingHolderContent=e,this.className=void 0!==n&&n}build(){let t=document.createElement("div");t.className="buttonizer-setting-row "+(!1===this.className?"":this.className),t.style.marginTop="10px";let e=document.createElement("div");e.className="buttonizer-setting-row-c1",e.innerHTML=this.title;let n=document.createElement("div");return n.className="buttonizer-setting-row-c2",n.appendChild(this.settingHolderContent),t.appendChild(e),t.appendChild(n),t}}class _t{constructor(t){this.buttonAction=t}build(){let t=this.buttonAction.inputText();return t.placeholder="https://www.domain.ltd/page",t.addEventListener("keyup",()=>this.change(t.value)),""!==this.buttonAction.value&&(t.value=this.buttonAction.value),t}change(t){this.valid(t)&&this.buttonAction.removeError(),this.buttonAction.updateButtonActionValue(t)}valid(t){let e=!1;return/(http|https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%!\-\/]))?/.test(t)||"?"===t.substring(0,1)||"#"===t.substring(0,1)?-1===t.indexOf("https://")&&"#"!==t.substring(0,1)&&(e='<p><b>Insecure URL:</b> Sorry to interupt, but we advice you to choose HTTPS for your URLS as this is a safer way to transport data.</p><p><a href="https://community.buttonizer.pro/d/19" target="_blank" style="text-decoration: none;">More info &raquo;</a><br /><br /><a href="" style="text-decoration: none;"><small>Do not show this message again.</small></a></p>'):e="<p>This looks like an invalid URL. The button may not work as expected.</p><p>Do you miss <b>http://</b> or <b>https://</b>? A space somewhere on the wrong place?</p>",!1===e||(this.buttonAction.addError(e),!1)}}class Ot{constructor(t){this.buttonAction=t}build(){let t=this.buttonAction.inputText();return t.placeholder="(000) 123 456 78",t.addEventListener("keyup",()=>this.change(t.value)),""!==this.buttonAction.value&&(t.value=this.buttonAction.value),t}change(t){this.valid(t)&&this.buttonAction.removeError(),this.buttonAction.updateButtonActionValue(t)}valid(t){let e=!1;return t=(t=t.replace("+","")).replace(" ",""),/^(?=.*\d)[\d ]+$/.test(t)||(e="<p>Invalid phone number. Please use only the number format. Omit any zeroes, brackets or dashes when adding the phone number in international format.</p>"),!1===e||(this.buttonAction.addError(e),!1)}}class Lt{constructor(t){this.buttonAction=t}build(){let t=this.buttonAction.inputText();return t.placeholder="account@domain.tld",t.addEventListener("keyup",()=>this.change(t.value)),""!==this.buttonAction.value&&(t.value=this.buttonAction.value),t}change(t){this.valid(t)&&this.buttonAction.removeError(),this.buttonAction.updateButtonActionValue(t)}valid(t){let e=!1;return t=(t=t.replace("+","")).replace(" ",""),/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,10})+$/.test(t)||(e="<p>Invalid email address.</p>"),!1===e||(this.buttonAction.addError(e),!1)}}n(6);class Tt{constructor(t){this.buttonAction=t}build(){let t=document.createElement("select");return t.className="buttonizer-select-action",t.appendChild(this.add("facebook","Share on Facebook")),t.appendChild(this.add("twitter","Share on Twitter")),t.appendChild(this.add("whatsapp","Share on Whatsapp")),t.appendChild(this.add("linkedin","Share on LinkedIn")),t.appendChild(this.add("pinterest","Share on Pinterest")),t.appendChild(this.add("mail","Share via email")),t.addEventListener("change",()=>{this.buttonAction.updateButtonActionValue(t.value)}),t}add(t,e){let n=document.createElement("option");return n.text=e,t===this.buttonAction.value&&(n.selected=!0),n.value=t,n}}class Bt{constructor(t){this.element=document.createElement("div"),this.errorElement=document.createElement("div"),this.buttonSettingsObject=t,this.dropdown=null,this.value=void 0!==this.buttonSettingsObject.buttonObject.data.action?this.buttonSettingsObject.buttonObject.data.action:""}build(){this.element.style.marginTop="10px",this.dropdown=document.createElement("select"),this.dropdown.style.width="199px",this.dropdown.className="buttonizer-select-action",this.dropdown.appendChild(this.add("url","Website URL")),this.dropdown.appendChild(this.add("phone","Phone number")),this.dropdown.appendChild(this.add("mail","Mail")),this.dropdown.appendChild(this.add("backtotop","Back to top")),this.dropdown.appendChild(this.add("gobackpage","Go back one page")),this.dropdown.appendChild(this.add("socialsharing","Social Sharing")),this.dropdown.appendChild(this.add("whatsapp","Open whatsapp (phone number)")),this.dropdown.appendChild(this.add("javascript_pro","Javascript function")),this.dropdown.addEventListener("change",()=>this.update(this.dropdown.value));let t=document.createElement("div");return xt(t.appendChild(new jt("<label for='label-always-open'>Button Action</label>",this.dropdown).build()).firstChild.firstChild,{content:"Choose the click action that you want this button to make",animation:"shift-away",arrow:!0,hideOnClick:!1}),t.appendChild(this.element),t.appendChild(this.errorElement),this.changeForm(this.buttonSettingsObject.buttonObject.data.type),t}add(t,e){let n=document.createElement("option");return n.text=e,t===this.buttonSettingsObject.buttonObject.data.type&&(n.selected=!0),-1===t.indexOf("pro")||window.Buttonizer.hasPremium()?n.value=t:(n.disabled=!0,n.text+=" (PRO ONLY)"),n}update(t,e=!1){if("javascript_pro"===this.buttonSettingsObject.buttonObject.data.type&&"javascript_pro"!==t){if(!e)return void new r({title:"<i class='fas fa-exclamation window-icon'></i> Warning! Hold on!",content:"<p>You are changing this button action from custom javascript to another action. Your javascript changes will be lost.</p><p>Are you sure you want to proceed?</p>",class:"warning-red",buttons:[{text:"Yes, I am sure",close:!0,confirm:!0},{text:"Cancel",close:!0,focus:!0,cancel:!0}],onConfirm:()=>{this.value="",this.update(t,!0)},onCancel:()=>{this.buttonSettingsObject.buttonObject.data.type="javascript_pro",jQuery(this.dropdown).val("javascript_pro")}})}else"socialsharing"===t?this.buttonSettingsObject.buttonObject.data.action="facebook":"socialsharing"===this.buttonSettingsObject.buttonObject.data.type&&(this.value="");this.buttonSettingsObject.buttonObject.data.type=t,window.Buttonizer.buttonChanges=!0,this.removeError(),this.changeForm(t)}updateButtonActionValue(t){this.buttonSettingsObject.buttonObject.data.action=t,window.Buttonizer.buttonChanges=!0,this.value=t}changeForm(t){this.element.innerHTML="";let e=new u({state:void 0===typeof this.buttonSettingsObject.buttonObject.data.action_new_tab?"false":this.buttonSettingsObject.buttonObject.data.action_new_tab});if(e.onToggle(t=>{this.buttonSettingsObject.buttonObject.data.action_new_tab=t,window.Buttonizer.buttonChanges=!0}),"phone"===t)this.element.appendChild(new Ot(this).build());else if("mail"===t)this.element.appendChild(new Lt(this).build());else if("whatsapp_pro"===t||"whatsapp"===t){this.element.appendChild(new Ot(this).build());let t=document.createElement("div");t.innerHTML="",this.element.appendChild(t)}else if("socialsharing"===t)this.element.appendChild(new Tt(this).build());else{if("backtotop"===t||"gobackpage"===t)return;this.element.appendChild(new _t(this).build()),xt(this.element.appendChild(new jt("<label for='label-always-open'>Open new tab:</label>",e.build(),"is-boolean-only").build()).firstChild.firstChild,{content:"When the button is clicked, open in new tab",animation:"shift-away",arrow:!0,hideOnClick:!1})}}inputText(){let t=document.createElement("input");return t.type="text",t.style.display="block",t.style.width="100%",t.className="buttonizer-input-action",t}addError(t){this.errorElement.innerHTML="";let e=document.createElement("div");e.innerHTML=t,e.style.border="1px solid rgb(170, 44, 44)",e.style.background="rgb(255, 238, 236)",e.style.color="#ff0000",e.style.marginTop="10px",e.style.padding="9px 15px",this.errorElement.appendChild(e)}removeError(){this.errorElement.innerHTML=""}}class zt{constructor(t){this.parentObject=void 0!==t.parentObject?t.parentObject:null,this.rowName=void 0!==t.rowName?t.rowName:null,this.title=void 0!==t.title?t.title:"",this.description=void 0!==t.description?t.description:null,this.wrap=void 0!==t.wrap&&t.wrap,this.content=void 0!==t.content?t.content:[],this.className=void 0!==t.class?t.class:[],this.customBuild=void 0!==t.useCustomBuild&&t.useCustomBuild,this.hidden=void 0!==t.hidden&&t.hidden,this.element=document.createElement("div"),null!==this.parentObject?null!==this.rowName&&this.parentObject.registerUI(this.rowName+"-container",this):null!==this.rowName&&null===this.parentObject&&console.error("Row name '"+this.rowName+"' is set, but no parent has been set")}build(){this.element.className="buttonizer-setting-row "+(!1===this.className?"":this.className),this.element.style.marginTop="10px",this.hidden&&(this.element.style.display="none");let t=document.createElement("div");t.className="buttonizer-setting-row-c1";let e=document.createElement("label");e.innerHTML=this.title,null!==this.description&&xt(e,{content:this.description,animation:"shift-away",arrow:!0,hideOnClick:!1}),t.appendChild(e);let n=document.createElement("div");n.className="buttonizer-setting-row-c2";for(const t in this.content)n.appendChild(this.customBuild?this.content[t]():this.content[t].build());return this.wrap&&(n.style["flex-wrap"]="wrap"),this.element.appendChild(t),this.element.appendChild(n),this.element}hide(){this.element.style.display="none"}show(){this.element.style.display=""}}class At{constructor(t){this.parent=t.parentObject,this.element=document.createElement("div"),this.dataEntry=t.dataEntry,this.default=void 0===t.default?"":t.default,this.callback=void 0===t.callback?()=>{}:t.callback,this.onClick=void 0===t.onClick?null:t.onClick,this.input=HTMLElement,this.onlyNumbers=void 0!==t.onlyNumbers&&t.onlyNumbers,this.parent.registerUI(this.dataEntry,this),this.placeholder=void 0===t.placeholder?"":t.placeholder,this.title=void 0===t.title?"":t.title,this.fieldWidth=void 0===t.width?"default":t.width,this.hidden=void 0!==t.hidden&&t.hidden}build(){this.element=document.createElement("div"),this.element.className="buttonizer-input-container is-textfield input-field-width-"+this.fieldWidth,this.element.style.marginRight="7px";let t=document.createElement("div");t.className="buttonizer-input-item";let e=document.createElement("input");e.type="text",e.value=this.parent.get(this.dataEntry,this.default),this.onlyNumbers&&e.addEventListener("keyup",t=>{(isNaN(e.value)||e.value<0)&&(e.value=this.default,new r({title:"Only numbers",content:"<p>For this input, only positive numbers are allowed.</p>",buttons:[{text:"Close",close:!0}]}))}),null!==this.onClick&&e.addEventListener("click",t=>this.onClick(t,e)),e.addEventListener("change",()=>{this.onlyNumbers&&(isNaN(e.value)||e.value<0)&&(e.value=this.default),this.parent.set(this.dataEntry,e.value)}),""!==this.placeholder&&e.setAttribute("placeholder",this.placeholder),t.appendChild(e),this.element.appendChild(t);let n=document.createElement("div");return n.className="buttonizer-input-info",n.innerHTML=this.title,this.element.appendChild(n),this.input=e,this.hidden&&this.hide(),""!==this.title?this.element:(this.input.className="buttonizer-input-only",this.input)}hide(){this.element.style.display="none",this.input.style.display="none"}show(){this.element.style.display="",this.input.style.display=""}update(t){this.input.value=t,this.callback(t)}}class It{constructor(t){this.parentObject=t.parentObject,this.element=document.createElement("a"),this.dataEntry=t.dataEntry,this.state=this.parentObject.get(this.dataEntry,t.default),this.parentObject.registerUI(this.dataEntry,this),this.disabled=void 0!==t.disabled&&t.disabled,this.visible=void 0===t.visible||t.visible,this.callback=void 0!==t.callback?t.callback:t=>{}}build(){this.element.href="javascript:void(0)",this.element.className="buttonizer-boolean "+(!0===this.state||"true"===this.state?"boolean-selected":""),this.element.addEventListener("click",()=>this.toggle());let t=document.createElement("div");return t.className="buttonizer-boolean-circle",this.element.appendChild(t),this.element}hide(){this.element.style.display="none"}show(){this.element.style.display="block"}toggle(){this.disabled?console.log("Sorry, you're not able to edit this"):(!0===this.state||"true"===this.state?this.state=!1:this.state=!0,this.parentObject.set(this.dataEntry,this.state),void 0!==this.callback&&this.callback(this.state))}update(t){this.state=t,!0===t||"true"===t?this.element.classList.contains("boolean-selected")||this.element.classList.add("boolean-selected"):this.element.classList.contains("boolean-selected")&&this.element.classList.remove("boolean-selected"),this.callback(t)}}class Nt extends zt{constructor(t){super({title:"Label",description:"Change the label of this button",wrap:!0,class:"form-has-extra-fields",content:[new At({parentObject:t,dataEntry:"label",default:t.get("label"),placeholder:"Label text"})]})}}var Mt=n(5),Ht=n(2);const qt="url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2'%3E%3Cpath d='M1,0H0V1H2V2H1' fill='lightgrey'/%3E%3C/svg%3E\")",Pt=360,Dt="keydown",Rt="mousedown",Ft="focusin";function Wt(t,e){return(e||document).querySelector(t)}function Yt(t,e,n){t.addEventListener(e,n,!1)}function Ut(t){t.preventDefault(),t.stopPropagation()}function Gt(t,e,n,i){Yt(t,Dt,function(t){e.indexOf(t.key)>=0&&(i&&Ut(t),n(t))})}const Qt=document.createElement("style");Qt.textContent=".picker_wrapper.no_alpha .picker_alpha{display:none}.picker_wrapper.no_editor .picker_editor{position:absolute;z-index:-1;opacity:0}.layout_default.picker_wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{margin:.5em}.layout_default.picker_wrapper::before{content:'';display:block;width:100%;height:0;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.layout_default .picker_sl::before{content:'';display:block;padding-bottom:100%}.layout_default .picker_editor{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1;width:6rem}.layout_default .picker_editor input{width:calc(100% + 2px);height:calc(100% + 2px)}.layout_default .picker_sample{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.layout_default .picker_done{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.picker_wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;background:#f2f2f2;-webkit-box-shadow:0 0 0 1px silver;box-shadow:0 0 0 1px silver;cursor:default;font-family:sans-serif;color:#444;pointer-events:auto}.picker_wrapper:focus{outline:none}.picker_wrapper button,.picker_wrapper input{margin:-1px}.picker_selector{position:absolute;z-index:1;display:block;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border:2px solid white;border-radius:100%;-webkit-box-shadow:0 0 3px 1px #67b9ff;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:-webkit-gradient(linear, left top, right top, from(red), color-stop(yellow), color-stop(lime), color-stop(cyan), color-stop(blue), color-stop(magenta), to(red));background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);-webkit-box-shadow:0 0 0 1px silver;box-shadow:0 0 0 1px silver}.picker_sl{position:relative;-webkit-box-shadow:0 0 0 1px silver;box-shadow:0 0 0 1px silver;background-image:-webkit-gradient(linear, left top, left bottom, from(white), color-stop(50%, rgba(255,255,255,0))),-webkit-gradient(linear, left bottom, left top, from(black), color-stop(50%, rgba(0,0,0,0))),-webkit-gradient(linear, left top, right top, from(gray), to(rgba(128,128,128,0)));background-image:linear-gradient(180deg, white, rgba(255,255,255,0) 50%),linear-gradient(0deg, black, rgba(0,0,0,0) 50%),linear-gradient(90deg, gray, rgba(128,128,128,0))}.picker_alpha,.picker_sample{position:relative;background:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2'%3E%3Cpath d='M1,0H0V1H2V2H1' fill='lightgrey'/%3E%3C/svg%3E\") left top/contain white;-webkit-box-shadow:0 0 0 1px silver;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:monospace;padding:.1em .2em}.picker_sample::before{content:'';position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_done button{-webkit-box-sizing:border-box;box-sizing:border-box;padding:.2em .5em;cursor:pointer}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;-webkit-box-shadow:0 0 10px 1px rgba(0,0,0,0.4);box-shadow:0 0 10px 1px rgba(0,0,0,0.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:\"\";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;-webkit-transform:skew(45deg);transform:skew(45deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;-webkit-box-shadow:none;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;-webkit-transform:rotate(90deg) scale(1, -1);transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}",document.documentElement.firstElementChild.appendChild(Qt);var Vt=class{constructor(t){this.settings={popup:"right",layout:"default",alpha:!0,editor:!0,editorFormat:"hex"},this._openProxy=(t=>this.openHandler(t)),this.onChange=null,this.onDone=null,this.onOpen=null,this.onClose=null,this.setOptions(t)}setOptions(t){if(!t)return;const e=this.settings;if(t instanceof HTMLElement)e.parent=t;else{e.parent&&t.parent&&e.parent!==t.parent&&(e.parent.removeEventListener("click",this._openProxy,!1),this._popupInited=!1),function(t,e,n){for(const i in t)n&&n.indexOf(i)>=0||(e[i]=t[i])}(t,e),t.onChange&&(this.onChange=t.onChange),t.onDone&&(this.onDone=t.onDone),t.onOpen&&(this.onOpen=t.onOpen),t.onClose&&(this.onClose=t.onClose);const n=t.color||t.colour;n&&this._setColor(n)}const n=e.parent;n&&e.popup&&!this._popupInited?(Yt(n,"click",this._openProxy),Gt(n,[" ","Spacebar","Enter"],this._openProxy),this._popupInited=!0):t.parent&&!e.popup&&this.show()}openHandler(t){if(this.show()){t&&t.preventDefault(),this.settings.parent.style.pointerEvents="none";const e=t&&t.type===Dt?this._domEdit:this.domElement;setTimeout(()=>e.focus(),100),this.onOpen&&this.onOpen(this.colour)}}closeHandler(t){const e=t&&t.type;let n=!1;t?("click"!==e&&e!==Dt||Ut(t),n=!0):n=!0,n&&this.hide()&&(this.settings.parent.style.pointerEvents="",e!==Rt&&this.settings.parent.focus(),this.onClose&&this.onClose(this.colour))}movePopup(t,e){this.closeHandler(),this.setOptions(t),e&&this.openHandler()}setColor(t,e){this._setColor(t,{silent:e})}_setColor(t,e){if("string"==typeof t&&(t=t.trim()),!t)return;let n;e=e||{};try{n=new Mt(t)}catch(t){if(e.failSilently)return;throw t}if(!this.settings.alpha){const t=n.hsla;t[3]=1,n.hsla=t}this.colour=this.color=n,this._setHSLA(null,null,null,null,e)}setColour(t,e){this.setColor(t,e)}show(){if(!this.settings.parent)return!1;if(this.domElement){const t=this._toggleDOM(!0);return this._setPosition(),t}const t=function(t){const e=document.createElement("div");return e.innerHTML=t,e.firstElementChild}(this.settings.template||'<div class="picker_wrapper" tabindex="-1"><div class="picker_arrow"></div><div class="picker_hue picker_slider"><div class="picker_selector"></div></div><div class="picker_sl"><div class="picker_selector"></div></div><div class="picker_alpha picker_slider"><div class="picker_selector"></div></div><div class="picker_editor"><input aria-label="Type a color name or hex value"/></div><div class="picker_sample"></div><div class="picker_done"><button>Ok</button></div></div>');return this.domElement=t,this._domH=Wt(".picker_hue",t),this._domSL=Wt(".picker_sl",t),this._domA=Wt(".picker_alpha",t),this._domEdit=Wt(".picker_editor input",t),this._domSample=Wt(".picker_sample",t),this._domOkay=Wt(".picker_done button",t),t.classList.add("layout_"+this.settings.layout),this.settings.alpha||t.classList.add("no_alpha"),this.settings.editor||t.classList.add("no_editor"),this._ifPopup(()=>t.classList.add("popup")),this._setPosition(),this.colour?this._updateUI():this._setColor("#0cf"),this._bindEvents(),!0}hide(){return this._toggleDOM(!1)}_bindEvents(){const t=this,e=this.domElement;function n(t,e){function n(n,i){const o=i[0]/t.clientWidth,r=i[1]/t.clientHeight;e(o,r)}return{container:t,dragOutside:!1,callback:n,callbackDragStart:n,propagateEvents:!0}}Yt(e,"click",t=>t.preventDefault()),Ht(n(this._domH,(e,n)=>t._setHSLA(e))),Ht(n(this._domSL,(e,n)=>t._setHSLA(null,e,1-n))),this.settings.alpha&&Ht(n(this._domA,(e,n)=>t._setHSLA(null,null,null,1-n)));const i=this._domEdit;Yt(i,"input",function(e){t._setColor(this.value,{fromEditor:!0,failSilently:!0})}),Yt(i,"focus",function(t){const e=this;e.selectionStart===e.selectionEnd&&e.select()});const o=t=>{this._ifPopup(()=>this.closeHandler(t)),this.onDone&&this.onDone(this.colour)};this._ifPopup(()=>{const t=t=>this.closeHandler(t);Yt(window,Rt,t),Yt(window,Ft,t),Gt(e,["Esc","Escape"],t),Yt(e,Rt,Ut),Yt(e,Ft,Ut),Yt(this._domEdit,Rt,t=>this._domEdit.focus())}),Yt(this._domOkay,"click",o),Gt(e,["Enter"],o)}_setPosition(){const t=this.settings.parent,e=this.domElement;t!==e.parentNode&&t.appendChild(e),this._ifPopup(n=>{"static"===getComputedStyle(t).position&&(t.style.position="relative");const i=!0===n?"popup_right":"popup_"+n;["popup_top","popup_bottom","popup_left","popup_right"].forEach(t=>{t===i?e.classList.add(t):e.classList.remove(t)}),e.classList.add(i)})}_setHSLA(t,e,n,i,o){o=o||{};const r=this.colour,s=r.hsla;[t,e,n,i].forEach((t,e)=>{(t||0===t)&&(s[e]=t)}),r.hsla=s,this._updateUI(o),this.onChange&&!o.silent&&this.onChange(r)}_updateUI(t){if(!this.domElement)return;t=t||{};const e=this.colour,n=e.hsla,i=`hsl(${n[0]*Pt}, 100%, 50%)`,o=e.hslString,r=e.hslaString,s=this._domH,a=this._domSL,l=this._domA,c=Wt(".picker_selector",s),u=Wt(".picker_selector",a),d=Wt(".picker_selector",l);function p(t,e,n){e.style.left=100*n+"%"}function h(t,e,n){e.style.top=100*n+"%"}p(0,c,n[0]),this._domSL.style.backgroundColor=this._domH.style.color=i,p(0,u,n[1]),h(0,u,1-n[2]),a.style.color=o,h(0,d,1-n[3]);const m=o,b=m.replace("hsl","hsla").replace(")",", 0)"),f=`linear-gradient(${[m,b]})`;if(this._domA.style.backgroundImage=f+", "+qt,!t.fromEditor){const t=this.settings.editorFormat,n=this.settings.alpha;let i;switch(t){case"rgb":i=e.printRGB(n);break;case"hsl":i=e.printHSL(n);break;default:i=e.printHex(n)}this._domEdit.value=i}this._domSample.style.color=r}_ifPopup(t,e){this.settings.parent&&this.settings.popup?t&&t(this.settings.popup):e&&e()}_toggleDOM(t){const e=this.domElement;if(!e)return!1;const n=t?"":"none",i=e.style.display!==n;return i&&(e.style.display=n),i}static get StyleElement(){return Qt}};class Xt{constructor(t){this.parent=t.parentObject,this.element=document.createElement("div"),this.dataEntry=t.dataEntry,this.default=void 0===t.default?"":t.default,this.callback=void 0===t.callback?()=>{}:t.callback,this.style=void 0===t.style?{}:t.style,this.parent.registerUI(this.dataEntry,this),this.currentColor=this.parent.get(this.dataEntry,this.default),this.title=void 0===t.title?"Color":t.title,this.timer=setTimeout(()=>{},0),this.opened=!1,this.element=HTMLElement,this.colorView=HTMLElement,this.colorPicker=HTMLElement,("#fffff"===this.currentColor||"#FFFFF"===this.currentColor||this.currentColor.length<=6)&&(this.currentColor="#FFFFFF")}build(){this.buildVisiblePicker();let t=new Vt({parent:this.element,popup:"bottom",alpha:!0,color:this.currentColor,onChange:t=>{this.currentColor!==t.rgbaString&&(this.currentColor=t.rgbaString,this.parent.set(this.dataEntry,t.rgbaString))}});return this.element.addEventListener("click",()=>{t.show()}),this.colorPicker=t,this.element}buildVisiblePicker(){this.element=document.createElement("div"),this.element.className="buttonizer-input-container is-color-picker",this.element.style.marginRight="7px";let t=document.createElement("div");t.className="buttonizer-input-item",this.colorView=document.createElement("div"),this.colorView.style.background=this.currentColor,this.colorView.className="colored-background",t.appendChild(this.colorView),this.element.appendChild(t);let e=document.createElement("div");e.className="buttonizer-input-info",e.innerHTML=this.title,this.element.appendChild(e)}onSelect(t){this.callback=t}hide(){this.element.style.display="none"}show(){this.element.style.display="block"}update(t){clearTimeout(this.timer),this.colorView.style.background=t,this.colorPicker.color=t,this.timer=setTimeout(()=>this.callback(t),1500)}}class $t extends zt{constructor(t){super({title:"Icon color",description:"Change the icon color of this button",rowName:"icon-color",parentObject:t,hidden:window.Buttonizer.hasPremium()&&"true"==t.get("icon_is_image"),content:[new Xt({parentObject:t,dataEntry:"icon_color",title:"Base",default:"#FFFFFF",width:"space"}),new Xt({parentObject:t,dataEntry:"icon_color_interaction",title:"Interaction",default:"#FFFFFF",width:"space"})]})}}class Jt extends zt{constructor(t){super({title:"Icon size",description:"Change the icon size of this button",rowName:"icon-size",parentObject:t,hidden:window.Buttonizer.hasPremium()&&"true"==t.get("icon_is_image"),content:[new At({title:"px",placeholder:"button"===t.type?16:25,width:"space",dataEntry:"icon_size",parentObject:t,onlyNumbers:!0,default:"button"===t.type?16:25})]})}}class Kt extends zt{constructor(t){super({title:"Border radius",description:"Change the roundness of this button group",hidden:"button"===t.type&&"false"!==t.get("use_main_button_style"),rowName:"border-radius",parentObject:t,content:[new At({parentObject:t,dataEntry:"border_radius",default:"",placeholder:50,title:"%",width:"space",onlyNumbers:!0})]})}}class Zt extends zt{constructor(t){super({title:"Font size &amp;<br>border radius",description:"Change the font size and border radius of the label for this button group",content:[new At({title:"px",placeholder:12,width:"space",dataEntry:"label_font_size",parentObject:t,onlyNumbers:!0}),new At({title:"px",placeholder:12,width:"space",dataEntry:"label_border_radius",parentObject:t,onlyNumbers:!0})]})}}class te{constructor(t){this.parentObject=t.parentObject,this.element=document.createElement("a"),this.dataEntry=t.dataEntry,this.default=t.default,this.callback=t.callback,this.type=t.type,this.data=t,this.title=t.title,this.state=this.parentObject.get(this.dataEntry,this.default),this.parentObject.registerUI(this.dataEntry,this),this.disabled=void 0!==t.disabled&&t.disabled,this.visible=void 0===t.visible||t.visible}build(){this.element.href="javascript:void(0)",this.element.className=`buttonizer-checkbox ${"Mobile"===this.title?"mobile-checkbox":"desktop-checkbox"}`;let t=document.createElement("div");t.className="buttonizer-checkbox-box",t.innerHTML="&#10003;",this.element.appendChild(t),this.element.addEventListener("click",()=>this.toggle());let e=document.createElement("div");return e.className="buttonizer-checkbox-text",e.innerHTML=this.title,this.element.appendChild(e),this.update(this.state),this.eventListener(this.type),this.element}hide(){this.element.style.display="none"}show(){this.element.style.display="block"}toggle(){this.disabled?console.log("Sorry, you're not able to edit this"):(!0===this.state||"true"===this.state?this.parentObject.set(this.dataEntry,!1):this.parentObject.set(this.dataEntry,!0),"undefined"!=typeof callback&&this.callback(this.state))}update(t){this.state=t,!0===t||"true"===t?this.element.classList.contains("checkbox-selected")||this.element.classList.add("checkbox-selected"):this.element.classList.contains("checkbox-selected")&&this.element.classList.remove("checkbox-selected")}eventListener(t){"button"===t&&this.element.addEventListener("click",()=>{let t=this.parentObject.buttonHTMLObject.querySelector(".mobile-preview"),e=this.parentObject.buttonHTMLObject.querySelector(".fa-mobile-alt").parentElement,n=this.parentObject.buttonHTMLObject.querySelector(".desktop-preview"),i=this.parentObject.buttonHTMLObject.querySelector(".fa-desktop").parentElement;"Mobile"===this.title?t.classList.contains("selected")&&!1===this.state?(t.classList.remove("selected"),e.classList.remove("selected")):t.classList.contains("selected")||!0!==this.state||(t.classList+=" selected",e.classList+=" selected"):"Desktop"===this.title&&(n.classList.contains("selected")&&!1===this.state?(n.classList.remove("selected"),i.classList.remove("selected")):n.classList.contains("selected")||!0!==this.state||(n.classList+=" selected",i.classList+=" selected"))})}}class ee extends zt{constructor(t){super({title:"Show on:",description:"Choose if you want to make this button group visible on desktop and mobile devices",content:[new te({parentObject:t,dataEntry:"show_mobile",title:"Mobile",default:!0,type:"button"===t.type?"button":"group"}),new te({parentObject:t,dataEntry:"show_desktop",title:"Desktop",default:!0,type:"button"===t.type?"button":"group"})]})}}class ne extends zt{constructor(t){super({title:"Button color",description:"This is the color of your button group and also the default color for your buttons within this group.",hidden:"button"===t.type&&"false"!==t.get("use_main_button_style"),rowName:"background-color",parentObject:t,content:[new Xt({parentObject:t,dataEntry:"background_color",title:"Base",default:"#f08419"}),new Xt({parentObject:t,dataEntry:"background_color_interaction",title:"Interaction",default:"#ff9d3c"})]})}}class ie{constructor(t){this.parentObject=t.parentObject,this.element=document.createElement("select"),this.dataEntry=t.dataEntry,this.default=t.default,this.callback=t.callback,this.style=t.style,this.list=t.list,this.width=void 0===t.width?"199px":t.width,this.class=void 0===t.class?"buttonizer-select-drawer":t.class,this.parentObject.registerUI(this.dataEntry,this)}build(){this.element.style.width=this.width,this.element.className=this.class,this.element.addEventListener("change",t=>{this.parentObject.set(this.dataEntry,this.element.value)});for(let t in this.list){let e=this.list[t],n=document.createElement("option");n.text=e.text,n.value=e.value,n.selected=void 0!==typeof this.selected&&this.selected===e.value,this.element.appendChild(n)}return this.element.value=this.parentObject.get(this.dataEntry,this.default),this.element}hide(){this.element.style.display="none"}show(){this.element.style.display="block"}update(t){this.element.value=t,void 0!==this.callback&&this.callback(t,this)}}class oe extends zt{constructor(t){super({title:'<span class="setting-icon"><i class="fa fa-desktop"></i></span> Visibility',description:"Always show the label, show the label on hover or hide the label on <u>desktop devices</u>",content:[new ie({parentObject:t,dataEntry:"show_label_desktop",default:"always",list:[{value:"always",text:"Always show label"},{value:"hover",text:"Show label on hover"},{value:"hide",text:"Hide label"}]})]})}}class re extends zt{constructor(t){super({title:'<span class="setting-icon"><i class="fa fa-mobile-alt"></i></span> Visibility',description:"Always show the label, show the label on hover or hide the label on <u>mobile devices</u>",content:[new ie({parentObject:t,dataEntry:"show_label_mobile",default:"always",list:[{value:"always",text:"Always show label"},{value:"hide",text:"Hide label"}]})]})}}class se extends zt{constructor(t){super({title:"Label color",description:"Change the text and background color of the label for this button or group.",hidden:"button"===t.type&&"false"!==t.get("use_main_button_style"),rowName:"label-color",parentObject:t,content:[new Xt({parentObject:t,dataEntry:"label_color",title:"Text",default:"#FFFFFF"}),new Xt({parentObject:t,dataEntry:"label_background_color",title:"Background",default:"#4E4C4C"})]})}}class ae extends zt{constructor(t){super({title:"Icon",description:"Choose an icon from an icon library",rowName:"icon",parentObject:t,hidden:window.Buttonizer.hasPremium()&&"true"==t.get("icon_is_image"),content:[new At({parentObject:t,dataEntry:"icon",default:"fa fa-user",onClick:(t,e)=>{window.Buttonizer.iconSelector.open(e)}})]})}}class le{constructor(t){this.parentObject=t.parentObject,this.button=null,this.selectedImage=null,this.dataEntry=void 0===t.dataEntry?null:t.dataEntry,this.default=void 0===t.default?"":t.default,this.value=t.parentObject.get(t.dataEntry,""),this.callback=t.callback,this.parentObject.registerUI(this.dataEntry,this)}build(){return this.buildFree()}buildFree(){let t=document.createElement("a");return t.className="button",t.href="javascript:void(0)",t.innerHTML='<i class="fa fa-image"></i>&nbsp;&nbsp;Select image <small>(premium)</small>',t.addEventListener("click",()=>{window.Buttonizer.showPremiumPopup("You can select images and set them as icon or as button background image.")}),t}}class ce extends zt{constructor(t){super({title:"Background image",description:"Upload an image if you want an image as background instead of a color. Recommended aspect ratio: square (1:1)",hidden:"button"===t.type&&"false"!==t.get("use_main_button_style"),rowName:"background-image",parentObject:t,content:[new le({parentObject:t,dataEntry:"background_image"})]})}}class ue extends zt{constructor(t){super({parentObject:t,title:"Use the same style of main button",description:"This option makes this button use the group's button style",class:"is-boolean-only",rowName:"use_main_button_style",content:[new It({parentObject:t,dataEntry:"use_main_button_style",default:"true",callback:t=>this.update(t)})]}),this.parent=t}update(t){!0===t||"true"===t?(this.parent.getUI("background-color-container").forEach(t=>{t.hide()}),this.parent.getUI("label-color-container").forEach(t=>{t.hide()}),this.parent.getUI("border-radius-container").forEach(t=>{t.hide()}),this.parent.getUI("background-image-container").forEach(t=>{t.hide()})):(this.parent.getUI("background-color-container").forEach(t=>{t.show()}),this.parent.getUI("label-color-container").forEach(t=>{t.show()}),this.parent.getUI("border-radius-container").forEach(t=>{t.show()}),this.parent.getUI("background-image-container").forEach(t=>{t.show()}))}}class de{constructor(t){this.parentObject=t.parentObject,this.element=document.createElement("div"),this.dataEntry=void 0===t.dataEntry?null:t.dataEntry,this.default=void 0!==t.default&&t.default,this.state=void 0!==t.state&&"true"==t.state,this.first=void 0===t.first?"First":t.first,this.second=void 0===t.second?"Second":t.second,this.callback=t.callback,null!==this.dataEntry&&this.parentObject.registerUI(this.dataEntry,this)}build(){this.element.className="buttonizer-toggle"+(!0===this.state?" right-selected":" left-selected");let t=document.createElement("a");t.href="javascript:void(0)",t.innerHTML=this.first,t.addEventListener("click",()=>this.toggle()),this.element.appendChild(t);let e=document.createElement("a");return e.href="javascript:void(0)",e.innerHTML=this.second,e.addEventListener("click",()=>this.toggle()),this.element.appendChild(e),this.element}toggle(){null!==this.dataEntry?this.parentObject.set(this.dataEntry,!this.state):this.callback(!1)}update(t){this.state=t,!1===t?(this.element.classList.add("left-selected"),this.element.classList.remove("right-selected")):(this.element.classList.remove("left-selected"),this.element.classList.add("right-selected")),this.callback(t)}hide(){this.element.style.display="none"}show(){this.element.style.display="block"}}class pe extends zt{constructor(t){super({title:"Graphic",description:"Choose whether to use an Icon or an Image as this button's icon",useCustomBuild:!0,content:[()=>this.buildBoolean()]}),this.parent=t}buildBoolean(){return new de({parentObject:this.parent,state:!1,first:"Icon",second:"Image <small>(premium)</small>",callback:()=>{window.Buttonizer.showPremiumPopup("You can select an custom image as icon for your buttons and groups.")}}).build()}}class he extends zt{constructor(t){super({parentObject:t,title:"Position",description:"Change the position of this button group",wrap:!0,class:"form-has-extra-fields",rowName:"position",content:[new ie({parentObject:t,dataEntry:"position",default:"bottomright",callback:t=>this.changePosition(t),list:[{value:"bottomright",text:"Bottom Right"},{value:"bottomleft",text:"Bottom Left"},{value:"topright",text:"Top Right"},{value:"topleft",text:"Top Left"},{value:"advanced",text:"Custom"}]}),new At({parentObject:t,dataEntry:"horizontal",title:"X&nbsp;&lpar;&percnt;&rpar;",width:"space",hidden:"advanced"!==t.get("position"),onlyNumbers:!0}),new At({parentObject:t,dataEntry:"vertical",title:"Y&nbsp;&lpar;&percnt;&rpar;",width:"space",hidden:"advanced"!==t.get("position"),onlyNumbers:!0})]}),this.translatedPositions={topleft:{x:95,y:95},topright:{x:5,y:95},bottomleft:{x:95,y:5},bottomright:{x:5,y:5}},this.parentObject=t}changePosition(t){"advanced"===t?(this.parentObject.getUI("horizontal").forEach(t=>t.show()),this.parentObject.getUI("vertical").forEach(t=>t.show())):(this.parentObject.getUI("horizontal").forEach(t=>t.hide()),this.parentObject.getUI("vertical").forEach(t=>t.hide()),this.parentObject.set("horizontal",this.translatedPositions[t].x),this.parentObject.set("vertical",this.translatedPositions[t].y))}}class me{constructor(t){this.buttonObject=t,this.groupSetting=HTMLElement,this.formElements={useMainButtonStyle:void 0,buttonColor:void 0,borderColor:void 0,borderRadius:void 0,backgroundImage:void 0,buttonIconSelect:void 0,buttonIconColor:void 0,buttonIconSize:void 0,buttonImageSelect:void 0,buttonImageIcon:void 0,buttonImageIconSelect:void 0,imageBorderRadius:void 0,imageSize:void 0,label:void 0,labelColor:void 0,labelFontSizeBorderRadius:void 0,show_label:void 0,showOnOpeningTimes:void 0,buttonCustomClass:void 0}}build(){let t=document.createElement("div");return t.className="button-group-styling",t.style.display="none",this.element=t,this.buildForm(),this.buttonObject.stylingObject=t,this.element}buildForm(){this.element.appendChild(this.generalSetting()),this.element.appendChild(this.buttonStyle()),this.element.appendChild(this.iconStyle()),this.element.appendChild(this.labelStyle()),this.element.appendChild(this.advancedSettings())}advancedSettings(){let t=document.createElement("a");return t.href="javascript:void(0)",t.className="advanced-settings"+(window.Buttonizer.hasPremium()?"":" buttonizer-premium-gray-out"),t.innerHTML="<i></i> Advanced settings"+(window.Buttonizer.hasPremium()?"":" <span class='buttonizer-premium'>PRO</span>"),t.addEventListener("click",()=>{this.buttonObject.windowObject.toggle()}),t}generalSetting(){let t=document.createElement("div");return t.className="style-top",this.groupSetting=document.createElement("div"),this.groupSetting.className="style-group",this.formElements.menuPosition=new he(this.buttonObject.groupObject),this.groupSetting.appendChild(this.formElements.menuPosition.build()),this.formElements.menuPosition.element.style.display="none",t.appendChild(this.groupSetting),this.formElements.buttonAction=new Bt(this),t.appendChild(this.formElements.buttonAction.build()),this.formElements.isMobile=new ee(this.buttonObject),t.appendChild(this.formElements.isMobile.build()),t}buttonStyle(){let t=document.createElement("div");t.className="style-button";let e=document.createElement("h2");return e.innerHTML="<i></i><span>Button style</span>",t.appendChild(e),this.formElements.useMainButtonStyle=new ue(this.buttonObject),t.appendChild(this.formElements.useMainButtonStyle.build()),this.formElements.buttonColor=new ne(this.buttonObject),t.appendChild(this.formElements.buttonColor.build()),this.formElements.labelColor=new se(this.buttonObject),t.appendChild(this.formElements.labelColor.build()),this.formElements.borderRadius=new Kt(this.buttonObject),t.appendChild(this.formElements.borderRadius.build()),this.formElements.backgroundImage=new ce(this.buttonObject),t.appendChild(this.formElements.backgroundImage.build()),t}iconStyle(){let t=document.createElement("div");t.className="style-icon";let e=document.createElement("h2");return e.innerHTML="<i></i><span>Button Icon</span>",t.appendChild(e),this.formElements.buttonIconOrImage=new pe(this.buttonObject),t.appendChild(this.formElements.buttonIconOrImage.build()),this.formElements.buttonIconSelect=new ae(this.buttonObject),t.appendChild(this.formElements.buttonIconSelect.build()),this.formElements.buttonIconColor=new $t(this.buttonObject),t.appendChild(this.formElements.buttonIconColor.build()),this.formElements.buttonIconSize=new Jt(this.buttonObject),t.appendChild(this.formElements.buttonIconSize.build()),t}labelStyle(){let t=document.createElement("div");t.className="style-label";let e=document.createElement("h2");return e.innerHTML="<i></i><span>Label</span>",t.appendChild(e),this.formElements.buttonLabel=new Nt(this.buttonObject),t.appendChild(this.formElements.buttonLabel.build()),this.formElements.show_label=new oe(this.buttonObject),t.appendChild(this.formElements.show_label.build()),this.formElements.show_label_mobile=new re(this.buttonObject),t.appendChild(this.formElements.show_label_mobile.build()),this.formElements.buttonLabelFontSizeBorderRadius=new Zt(this.buttonObject),t.appendChild(this.formElements.buttonLabelFontSizeBorderRadius.build()),t}}var be=class{constructor(t,e){this.type="button",this.groupObject=t,this.alive=!0,this.data=e,this.ui=[],this.buttonName=e.name,this.id=-1,this.settingsOpened=!1,this.buttonHTMLObject=HTMLElement,this.buttonIconObject=HTMLElement,this.buttonTitleObject=HTMLElement,this.windowObject=HTMLElement,this.stylingObject=void 0,this.stylingObject=HTMLElement,this.settingsObject={},this.buildButton(),this.windowObject=new b(this),this.groupObject.registerButton(this)}buildButton(){let t=document.createElement("div");t.className="buttonizer-button-group group-button",t.appendChild(new St(this).build()),this.settingsObject=new me(this),Buttonizer.bar.settingContent.appendChild(this.settingsObject.build());var e=!1,n=!1;const i=xt(t,{content:"You can't drag the only button left in a group!",animation:"shift-away",arrow:!0,hideOnClick:!1,trigger:"manual",onShow:()=>{n=!0,setTimeout(()=>{n=!1,i.hide()},5e3)}});t.addEventListener("mousedown",()=>{n||(e=!0)}),t.addEventListener("mouseout",()=>{e&&null!==jQuery(this.groupObject.groupBody).sortable("option","cancel")&&(e=!1,i.show())}),t.addEventListener("mouseup",()=>{e=!1}),this.buttonHTMLObject=t,this.groupObject.groupBody.appendChild(this.buttonHTMLObject)}removeButton(){this.alive=!1,this.buttonHTMLObject.remove(),window.Buttonizer.buttonChanges=!0,this.groupObject.buttonsAmount<=1&&jQuery(this.groupObject.groupBody).sortable("option","cancel",".group-button"),1===this.groupObject.getButtonsAlive()!==this.groupObject.singleButtonMode&&(this.groupObject.singleButtonMode=1===this.groupObject.getButtonsAlive(),this.groupObject.getButtons()[0].set("icon_size","25"),this.groupObject.groupHolder.setSingleButtonMode())}set(t,e){this.data[t]=e,this.ui[t].forEach(t=>t.update(e)),window.Buttonizer.buttonChanges=!0}get(t,e){return void 0!==this.data[t]?this.data[t]:(this.data[t]=e,window.Buttonizer.buttonChanges=!0,e)}registerUI(t,e){void 0!==this.ui[t]?this.ui[t].push(e):this.ui[t]=[e]}getUI(t){return void 0!==this.ui[t]&&this.ui[t]}revealSettings(){this.buttonHTMLObject.classList.add("opened"),this.stylingObject.style.display="block",Buttonizer.bar.showSettings(this.get("name"),()=>this.closeSettings())}closeSettings(){this.stylingObject.style.display="none",this.buttonHTMLObject.classList.remove("opened")}};var fe=class{constructor(t){this.groupObject=t,this.groupObject.stylingObject=this,this.groupHolder=null,this.titleElement=null,this.arrow=HTMLElement}build(){let t=document.createElement("div");return t.className="button-group-holder",t.appendChild(this.groupArrow()),t.appendChild(this.createTitle()),t.appendChild(this.groupSettingsButton()),t.appendChild(this.createButtonHolderButton()),t.appendChild(this.createQuickMenu()),this.groupHolder=t,t}createButtonHolderButton(){let t=document.createElement("a");t.href="javascript:void(0)",t.className="holder-button";let e=document.createElement("i");return e.className="fas fa-ellipsis-v",t.appendChild(e),t.addEventListener("click",()=>{let t=this.groupHolder.className.indexOf("holder-show-quick-menu");jQuery(".holder-show-quick-menu").removeClass("holder-show-quick-menu"),-1===t&&this.groupHolder.classList.add("holder-show-quick-menu")}),t}createQuickMenu(){let t=document.createElement("div");return t.className="group-holder-quick-menu",t.addEventListener("click",()=>{this.groupHolder.classList.remove("holder-show-quick-menu")}),t.appendChild(this.createQuickMenuButton("fas fa-plus","Convert to group",()=>{new be(this.groupObject,{name:"Button 2",show_mobile:"true",show_desktop:"true"}),this.groupObject.getButtons()[0].set("icon_size","16"),jQuery(this.groupObject.groupBody).sortable("option","cancel",null)},"convert-button")),t.appendChild(this.createQuickMenuButton("fas fa-wrench","Settings",()=>this.toggleStyling(),"")),t.appendChild(this.createQuickMenuButton("fas fa-cog","Advanced settings",()=>{this.groupObject.singleButtonMode?this.groupObject.getButtons()[0].windowObject.toggle():this.groupObject.windowObject.toggle()},window.Buttonizer.hasPremium()?"":"buttonizer-premium-gray-out")),t.appendChild(this.createQuickMenuButton("fas fa-pencil-alt","Rename",()=>this.groupRename(),"")),t.appendChild(this.createQuickMenuButton("far fa-trash-alt","Delete",()=>this.groupDelete(),"delete")),t.firstChild.style.display="none",this.quickMenu=t,t}createQuickMenuButton(t,e,n,i=""){let o=document.createElement("a");o.href="javascript:void(0)",o.className=i;let r=document.createElement("i");return r.className=t,o.appendChild(r),o.innerHTML+=e,o.addEventListener("click",t=>n(t)),o}groupArrow(){let t=document.createElement("a");t.href="javascript:void(0)",t.className="holder-button pull-left has-background group-arrow";let e=document.createElement("i");e.className="fa fa-angle-down buttonizer-arrow-down",t.appendChild(e);let n=document.createElement("i");return n.className="fa fa-angle-up buttonizer-arrow-up",t.appendChild(n),t.addEventListener("click",()=>this.revealButtons()),this.arrow=t,t}createTitle(){let t=document.createElement("input");return t.type="text",t.className="group-title",t.value=this.groupObject.get("name"),t.setAttribute("readonly",""),t.id="buttonizer-group-title",this.titleElement=t,t.addEventListener("blur",()=>this.updateTitle()),t.addEventListener("keyup",e=>{e.preventDefault(),13===e.keyCode?this.updateTitle():27===e.keyCode&&(t.value=this.groupObject.singleButtonMode?this.groupObject.getButtons()[0].data.name:this.groupObject.data.name,t.setAttribute("readonly",""))}),t.addEventListener("click",e=>{jQuery(".holder-show-quick-menu").removeClass("holder-show-quick-menu"),e.isTrusted&&t.hasAttribute("readonly")&&(this.groupObject.singleButtonMode?this.toggleStyling():this.revealButtons())}),t}updateTitle(){(this.groupObject.singleButtonMode?this.groupObject.getButtons()[0]:this.groupObject).data.name=this.titleElement.value,window.Buttonizer.buttonChanges=!0,this.titleElement.setAttribute("readonly","")}groupRename(){this.titleElement.hasAttribute("readonly")&&(this.titleElement.removeAttribute("readonly"),this.titleElement.focus())}groupSettingsButton(){let t=document.createElement("a");t.href="javascript:void(0)",t.className="holder-button group-style";let e=document.createElement("i");return e.className="fas fa-wrench",t.appendChild(e),t.addEventListener("click",t=>{jQuery(".holder-show-quick-menu").removeClass("holder-show-quick-menu"),this.toggleStyling()}),t}toggleStyling(){this.groupObject.singleButtonMode?this.groupObject.getButtons()[0].revealSettings():this.groupObject.groupSettings.show()}groupDelete(){if(this.groupObject.singleButtonMode)return window.Buttonizer.buttonGroups.length<=1?void new r({title:"Warning",content:"<p>You cannot remove this button because this the only group/button left.</p>",buttons:[{text:"Dismiss",close:!0,focus:!0,confirm:!0}]}):void new r({title:"Remove button",content:"<p>Are you very sure you want to remove this button?</p>",onConfirm:()=>{this.groupObject.removeGroup(),window.Buttonizer.buttonChanges=!0},buttons:[{text:"Never mind",close:!0,focus:!0},{text:"Remove",confirm:!0}]});window.Buttonizer.buttonGroups.length<=1?new r({title:"Warning",content:"<p>You cannot remove this group because this the only group left.</p>",buttons:[{text:"Dismiss",close:!0,focus:!0,confirm:!0}]}):new r({title:"Remove group",content:"<p>Are you very sure you want to remove this full group? It contains "+this.groupObject.getButtonsAlive()+" buttons.</p>",onConfirm:()=>{this.groupObject.removeGroup(),window.Buttonizer.buttonChanges=!0},buttons:[{text:"Never mind",close:!0,focus:!0},{text:"Remove",confirm:!0}]})}revealButtons(){this.groupObject.groupOpened=!this.groupObject.groupOpened,this.groupObject.groupOpened?(this.groupObject.groupObject.classList.add("opened"),jQuery(this.groupObject.groupBody).sortable("enable")):(this.groupObject.groupObject.classList.remove("opened"),jQuery(this.groupObject.groupBody).sortable("disable")),this.groupObject.groupBody.style.display=this.groupObject.groupOpened?"block":"none"}setSingleButtonMode(){this.groupObject.singleButtonMode?(this.quickMenu.firstChild.style.display="",this.titleElement.value=void 0===this.groupObject.getButtons()[0]?this.groupObject.firstButtonName:this.groupObject.getButtons()[0].data.name,this.groupHolder.classList.add("single-button"),this.groupObject.groupOpened&&this.revealButtons(),this.groupObject.getButtons()[0].set("use_main_button_style","false"),this.groupObject.getButtons()[0].getUI("use_main_button_style-container")[0].element.style.display="none",this.groupObject.getUI("position-container")[1].element.style.display="",this.groupObject.set("single_button_mode","true")):(this.quickMenu.firstChild.style.display="none",this.groupObject.getUI("position-container")[1].element.style.display="none",this.groupObject.getButtons()[0].set("use_main_button_style","true"),this.groupObject.getButtons()[0].getUI("use_main_button_style-container")[0].element.style.display="",this.titleElement.value=this.groupObject.data.name,this.groupHolder.classList.remove("single-button"),this.groupObject.set("single_button_mode","false"))}};class ge extends zt{constructor(t){super({title:"Start opened",description:"This button group starts opened when this setting is active",class:"is-boolean-only",content:[new It({parentObject:t,dataEntry:"start_opened",default:"false"})]})}}class ye extends zt{constructor(t){super({title:"Menu Style",description:"Change the opening animation of this button group",content:[new ie({parentObject:t,dataEntry:"menu_style",default:"default",list:[{value:"default",text:"Default"},{value:"faded",text:"Faded"},{value:"corner-circle",text:"Corner Circle"},{value:"building-up",text:"Build Up"},{value:"pop",text:"Pop"},{value:"square",text:"Square"}]})]})}}class we extends zt{constructor(t){super({title:"Animation",description:"This will animate this button group to get the attention of the visitor. The animation repeats every 10 seconds",content:[new ie({parentObject:t,dataEntry:"menu_animation",default:"none",list:[{value:"none",text:"No Animation"},{value:"hello",text:"Buttonizer Hello"},{value:"bounce",text:"Bounce"}]})]})}}var ve=class{constructor(t){this.groupObject=t,this.open=!1,this.formElements={alwaysOpen:void 0,menuStyle:void 0,isMobile:void 0,isDesktop:void 0,attentionAnimation:void 0,buttonColor:void 0,borderRadius:void 0,backgroundImage:void 0,groupPosition:void 0,buttonIconSelect:void 0,buttonIconColor:void 0,buttonIconSize:void 0,buttonImageSelect:void 0,buttonImageBackground:void 0,buttonImageIconSelect:void 0,imageSize:void 0,imageBorderRadius:void 0,buttonLabel:void 0,buttonLabelColor:void 0,buttonLabelSize:void 0,show_label:void 0},this.element=HTMLElement}build(){let t=document.createElement("div");return t.className="button-group-styling hidden",this.element=t,this.hide(),this.buildTop(),this.buildForm(),this.groupObject.stylingObject=t,this.element}buildForm(){this.element.appendChild(this.top()),this.element.appendChild(this.menuStyle()),this.element.appendChild(this.buttonStyle()),this.element.appendChild(this.iconStyle()),this.element.appendChild(this.labelStyle());let t=document.createElement("a");t.href="javascript:void(0)",t.className="advanced-settings"+(window.Buttonizer.hasPremium()?"":" buttonizer-premium-gray-out"),t.innerHTML="<i></i> Advanced settings"+(window.Buttonizer.hasPremium()?"":" <span class='buttonizer-premium'>PRO</span>"),t.addEventListener("click",()=>{this.groupObject.windowObject.toggle()}),this.element.appendChild(t)}addError(){let t=document.createElement("div");t.innerHTML="";let e=document.createElement("div");return e.innerHTML="<p><b><u>THESE SETTINGS ARE FOR THE GROUP BUTTON.</u></b></br> The group button will not be visible until </br><b><u>2 or more buttons</u></b> are visible.</p>",e.style.border="1px solid rgb(170, 44, 44)",e.style.background="rgb(255, 238, 236)",e.style.color="#ff0000",e.style.marginTop="10px",e.style.padding="9px 15px",e.style.display="none",this.groupObject.buttonsAmount<=1&&(e.style.display="block"),t.appendChild(e),t}top(){let t=document.createElement("div");return t.className="style-top",this.formElements.menuPosition=new he(this.groupObject),t.appendChild(this.formElements.menuPosition.build()),this.formElements.isMobile=new ee(this.groupObject),t.appendChild(this.formElements.isMobile.build()),t}menuStyle(){let t=document.createElement("div");t.className="style-menu";let e=document.createElement("h2");return e.innerHTML="<i></i><span>Menu style</span>",t.appendChild(e),this.formElements.alwaysOpen=new ge(this.groupObject),t.appendChild(this.formElements.alwaysOpen.build()),this.formElements.menuStyle=new ye(this.groupObject),t.appendChild(this.formElements.menuStyle.build()),this.formElements.attentionAnimation=new we(this.groupObject),t.appendChild(this.formElements.attentionAnimation.build()),t}buttonStyle(){let t=document.createElement("div");t.className="style-button";let e=document.createElement("h2");return e.innerHTML="<i></i><span>Group button style</span>",t.appendChild(e),this.formElements.buttonColor=new ne(this.groupObject),t.appendChild(this.formElements.buttonColor.build()),this.formElements.borderRadius=new Kt(this.groupObject),t.appendChild(this.formElements.borderRadius.build()),this.formElements.backgroundImage=new ce(this.groupObject),t.appendChild(this.formElements.backgroundImage.build()),t}iconStyle(){let t=document.createElement("div");t.className="style-icon";let e=document.createElement("h2");return e.innerHTML="<i></i><span>Group icon</span>",t.appendChild(e),this.formElements.buttonIcon=new pe(this.groupObject),t.appendChild(this.formElements.buttonIcon.build()),this.formElements.buttonIconSelect=new ae(this.groupObject),t.appendChild(this.formElements.buttonIconSelect.build()),this.formElements.buttonIconColor=new $t(this.groupObject),t.appendChild(this.formElements.buttonIconColor.build()),this.formElements.buttonIconSize=new Jt(this.groupObject),t.appendChild(this.formElements.buttonIconSize.build()),t}labelStyle(){let t=document.createElement("div");t.className="style-label";let e=document.createElement("h2");return e.innerHTML="<i></i><span>Label</span>",t.appendChild(e),this.formElements.buttonLabel=new Nt(this.groupObject),t.appendChild(this.formElements.buttonLabel.build()),this.formElements.show_label=new oe(this.groupObject),t.appendChild(this.formElements.show_label.build()),this.formElements.show_label_mobile=new re(this.groupObject),t.appendChild(this.formElements.show_label_mobile.build()),this.formElements.buttonLabelColor=new se(this.groupObject),t.appendChild(this.formElements.buttonLabelColor.build()),this.formElements.buttonLabelFontSizeBorderRadius=new Zt(this.groupObject),t.appendChild(this.formElements.buttonLabelFontSizeBorderRadius.build()),t}buildTop(){}toggle(){(this.open=!0)?(this.open=!1,this.hide()):(this.open=!0,this.show())}show(){this.element.className="button-group-styling",Buttonizer.bar.showSettings(this.groupObject.get("name"),()=>this.hide())}hide(){this.element.className="button-group-styling hidden"}};class ke{constructor(t){this.windowObject=t,this.onTriggerContainer=null,this.dropdown=document.createElement("select"),this.dropdown.className="window-select"}build(){let t=document.createElement("div");t.appendChild(this.dropdown),this.onChange();let e=new s("table-relative");return e.addColumnHTML("<h2>Page rule"+(window.Buttonizer.hasPremium()?"":' <span class="buttonizer-premium premium-right">PRO</span>')+"</h2>","table-align-top",""),e.addColumn(t,"","370"),e.newRow(),e.build()}onChange(){this.dropdown.innerHTML="<option>Show on all pages</option>",this.dropdown.readonly=!0,this.dropdown.addEventListener("click",()=>window.Buttonizer.showPremiumPopup("You can setup page rules that will get triggered on specific pages or user roles. You can create unlimited page rules with multiple rules to trigger."))}}class Ee{constructor(t){this.windowObject=t,this.onTriggerContainer=null,this.dropdown=document.createElement("select"),this.dropdown.className="window-select"}build(){let t=document.createElement("div");t.appendChild(this.dropdown),this.onChange();let e=new s("table-relative");return e.addColumnHTML("<h2>Time schedule"+(window.Buttonizer.hasPremium()?"":' <span class="buttonizer-premium premium-right">PRO</span>')+"</h2>","table-align-top",""),e.addColumn(t,"","370"),e.newRow(),e.build()}onChange(){this.dropdown.innerHTML="<option>Show on all times</option>",this.dropdown.readonly=!0,this.dropdown.addEventListener("click",()=>window.Buttonizer.showPremiumPopup("You can setup time schedules that will get triggered on specific times of a day you setup, it is even possible to change the schedule actions for specific days. You can create unlimited amount of schedules."))}}class Ce{constructor(t){this.windowObject=t}build(){let t=document.createElement("input");t.className="window-select",t.placeholder="Add class";let e=new s("table-relative");return e.addColumnHTML("<h2>Custom class <span class='buttonizer-premium premium-right'>PRO</span></h2>","table-align-top",""),t.addEventListener("mousedown",()=>window.Buttonizer.showPremiumPopup("You can add a custom class to each button for styling purposes.")),e.addColumn(t,"","370"),e.build()}}class xe{constructor(t){this.windowObject=t}build(){let t=document.createElement("input");t.className="window-select",t.placeholder="Add ID";let e=new s("table-relative");return e.addColumnHTML("<h2>Custom ID <span class='buttonizer-premium premium-right'>PRO</span></h2>"),t.addEventListener("mousedown",()=>window.Buttonizer.showPremiumPopup("You can add a custom ID to each button for styling purposes.")),e.addColumn(t,"","370"),e.build()}}class Se extends m{constructor(t){super(t,"Advanced settings - Group "+t.data.name+(window.Buttonizer.hasPremium()?"":" (premium)"))}render(){this.filter(),this.delay(),this.styling()}filter(){let t=document.createElement("div");t.appendChild(new Ee(this).build()),t.appendChild(new ke(this).build()),super.addItem("Filter",t)}position(){let t=document.createElement("div");t.innerHTML="Testinhoud van <b>POSITIE</b>!!!",super.addItem("Position",t)}delay(){let t=document.createElement("div");t.appendChild(new p(this).build()),t.appendChild(new h(this).build()),super.addItem("Timeout & Scroll",t)}styling(){let t=document.createElement("div");t.appendChild(new Ce(this).build()),t.appendChild(new xe(this).build()),super.addItem("Styling",t)}}class je{constructor(t,e){e||(e=[]),this.type="group",this.groupOpened=!1,this.data=t,this.ui={},this.groupObject=HTMLElement,this.groupID=window.Buttonizer.buttonGroups.length,this.stylingOpened=!1,this.stylingObject=HTMLElement,this.groupBody=HTMLElement,this.windowObject=HTMLElement,this.buttons=[],this.buttonsLength=e.length,this.singleButtonMode=!1,this.buildGroup(),this.windowObject=new Se(this);for(let t in e)new be(this,e[t]);this.appendAddButton(),window.Buttonizer.buttonGroups.push(this)}get buttonsAmount(){return this.getButtonsAlive()}buildGroup(){let t=document.createElement("div");t.className="buttonizer-button-group is-group",this.groupObject=t,this.groupHolder=new fe(this),t.appendChild(this.groupHolder.build()),this.groupSettings=new ve(this),Buttonizer.bar.settingContent.appendChild(this.groupSettings.build()),this.appendAddButton(),this.groupBody=document.createElement("div"),this.groupBody.style.display="none",this.groupBody.className="button-group-body",t.appendChild(this.groupBody),jQuery(this.groupBody).sortable({items:"> div",axis:"y",cursor:"move",delay:150,handle:"#buttonizer-button-title",helper:"clone",cancel:this.buttonsLength<=1?".group-button":null,connectWith:".button-group-body",disabled:!0,start:(t,e)=>{jQuery(e.item).attr("previndex",e.item.index()),jQuery(e.item).attr("prevgroup",jQuery(this.groupBody).parent().index())},stop:(t,e)=>{jQuery(e.item).removeAttr("previndex"),jQuery(e.item).removeAttr("prevgroup")},update:function(t,e){if(this===e.item.parent()[0]){let t=e.item.index(),n=jQuery(e.item).attr("previndex"),i=jQuery(this).parent().index(),o=jQuery(e.item).attr("prevgroup");e.sender&&jQuery(this).sortable("option","cancel",null),window.Buttonizer.updateButtonList(t,n,i,o),jQuery(e.item).removeAttr("previndex"),jQuery(e.item).removeAttr("prevgroup")}}}),jQuery(this.groupBody).disableSelection(),jQuery(".group-title").disableSelection(),Buttonizer.bar.groupHolder.appendChild(this.groupObject)}duplicate(){new je(this.data,this.buttons)}appendAddButton(){let t=document.createElement("a");t.href="javascript:void(0)",t.className="create-new-button",t.innerHTML="Add button +",t.addEventListener("click",()=>{new be(this,{name:"Button "+(this.getButtonsAlive()+1),show_mobile:"true",show_desktop:"true"}),jQuery(this.groupBody).sortable("option","cancel",null)}),this.groupObject.appendChild(t)}registerButton(t){this.buttons.push(t),1===this.getButtonsAlive()!==this.singleButtonMode&&(this.singleButtonMode=1===this.getButtonsAlive(),this.groupHolder.setSingleButtonMode())}removeGroup(){let t=window.Buttonizer.buttonGroups.indexOf(this);window.Buttonizer.buttonGroups.splice(t,1),this.groupObject.remove()}set(t,e){this.data[t]=e,void 0!==this.ui[t]&&this.ui[t].forEach(t=>t.update(e)),window.Buttonizer.buttonChanges=!0}get(t,e){return void 0!==this.data[t]?this.data[t]:(this.data[t]=e,window.Buttonizer.buttonChanges=!0,e)}getButtonsAlive(){let t=0;return this.buttons.forEach(e=>{e.alive&&t++}),t}getButtons(){return this.buttons.filter(t=>t.alive)}registerUI(t,e){void 0!==this.ui[t]?this.ui[t].push(e):this.ui[t]=[e]}getUI(t){return void 0!==this.ui[t]&&this.ui[t]}}var _e=je;var Oe=class{constructor(t){this.buttonizerObject=t,this.topBarElement=HTMLElement,this.optionsWindow=HTMLElement,this.publishButton=HTMLElement,this.revertChangesText=HTMLElement,this.alertText=HTMLElement,this.eventListCache=[],this.eventTrackerMenuItem=null,this.eventTracker=null,this.windowOptions=[{buttons:[{title:"Buttonizer",description:`Version ${window.Buttonizer.buttonizerInitData.version}`,callback:()=>{window.open("https://www.buttonizer.pro/")}},{title:"Knowledgebase",description:"A deep dive in all the Buttonizer possibilities",callback:()=>{window.open("https://community.buttonizer.pro/t/knowledgebase")}}]},{title:"Support",buttons:[{title:"I need support",description:"Direct support with Buttonizer developers",callback:()=>{window.open("https://community.buttonizer.pro/t/support")}},{title:"Community",description:"Interact with other Buttonizers",callback:()=>{window.open("https://community.buttonizer.pro/")}},{title:"Buttonizer tour (recommended!)",description:"Start the 2 minute tour",callback:()=>{window.Buttonizer.startTour()}}]},{title:"Buttonizer account",buttons:[{title:"My Account",callback:()=>{window.open(buttonizer_admin.admin+"?page=Buttonizer-account")}},{title:"Upgrade or pricing",callback:()=>{window.open(buttonizer_admin.admin+"?page=Buttonizer-pricing")}},{title:"Affiliation",description:"Earn $ by promoting Buttonizer",callback:()=>{window.open(buttonizer_admin.admin+"?page=Buttonizer-affiliation")}}]},{buttons:[{title:"Options",icon:"fa fa-cogs",class:"single-button",callback:()=>{this.buttonizerObject.settingsWindow.toggle()}}]}],document.body.appendChild(this.buildTopBar())}buildTopBar(){let t=document.createElement("div");t.className="buttonizer-topbar";let e=document.createElement("div");return e.className="revert-save",e.style.display="inline-block",e.appendChild(this.createRevertChangesButton()),e.appendChild(this.createPublishButton()),t.appendChild(this.createBackButton()),t.appendChild(this.createLogo()),t.appendChild(e),t.appendChild(this.createOptionsButton()),t.appendChild(this.createAlertText()),t.appendChild(this.createOptionsWindow()),t.appendChild(this.createEventMenuItem()),t.appendChild(this.createEventWindow()),this.topBarElement=t,t}createOptionsButton(){let t=document.createElement("a");return t.className="options-button button right fas fa-cog",t.addEventListener("click",()=>{this.optionsWindow.toggle()}),t}createEventMenuItem(){let t=document.createElement("a");return t.href="javascript:void(0)",t.className="event-tracker-button",t.style.display="none",t.innerHTML="",t.addEventListener("click",()=>{"block"===this.eventTracker.container.style.display?this.eventTracker.container.style.display="none":this.eventTracker.container.style.display="block"}),this.eventTrackerMenuItem=t,t}createEventWindow(){let t=document.createElement("div");t.className="event-track-window",t.style.display="none",t.innerHTML='<div class="track-window-title">Event tracker (experimental)</div>';let e=document.createElement("a");e.href="javascript:void(0)",e.className="close",e.innerHTML='<i class="fas fa-times"></i>',e.addEventListener("click",()=>{t.style.display="none"}),t.appendChild(e);let n=document.createElement("div");return n.className="list-container",n.innerHTML="",t.appendChild(n),this.eventTracker={container:t,list:n},t}updateEventLogs(t){if(0!==t.length){if(this.eventListCache!==t){this.eventTrackerMenuItem.style.display="block",this.eventTrackerMenuItem.innerHTML='<i class="fas fa-info"></i> ('+t.length+") Event tracker",this.eventTracker.list.innerHTML="";for(let e=0;e<t.length;e++){let n=document.createElement("div");n.className="event-element event-"+t[e].type,n.innerHTML=t[e].message,this.eventTracker.list.appendChild(n)}}}else this.eventTrackerMenuItem.style.display="none"}createOptionsWindow(){this.optionsWindow=document.createElement("div"),this.optionsWindow.className="options-window",this.optionsWindow.hidden=!0,this.optionsWindow.toggle=(()=>{this.optionsWindow.hidden=!this.optionsWindow.hidden});let t=document.createElement("ul");for(let e=0;e<this.windowOptions.length;e++){let n=document.createElement("li");if(n.className="group-container","string"==typeof this.windowOptions[e].title){let t=document.createElement("div");t.className="group-title",t.innerHTML=this.windowOptions[e].title,n.appendChild(t)}for(let t=0;t<this.windowOptions[e].buttons.length;t++)n.appendChild(this.barMenuItem(this.windowOptions[e].buttons[t]));t.appendChild(n)}return this.optionsWindow.appendChild(t),this.optionsWindow}barMenuItem(t){let e=document.createElement("a");e.href="javascript:void(0)",e.className=t.class?"option "+t.class:"option";let n=document.createElement("span");if(n.className="button-title",n.innerHTML=t.title?t.title:"Default title",e.appendChild(n),t.hasOwnProperty("description")){let n=document.createElement("span");n.className="button-description",n.innerHTML=t.description?t.description:"",e.appendChild(n)}if(t.hasOwnProperty("icon")){let n=document.createElement("i");n.className=t.icon,e.appendChild(n)}return t.hasOwnProperty("callback")&&e.addEventListener("click",()=>{this.optionsWindow.toggle(),t.callback()}),e}createBackButton(){let t=document.createElement("a");return t.className="close-button fa fa-times",t.addEventListener("click",()=>{document.location.href=window.Buttonizer.buttonizerInitData.wordpress.admin_base}),t}createLogo(){let t=document.createElement("img");return t.className="buttonizer-logo",t.src=buttonizer_admin.assets+"/images/logo.png",t}createPublishButton(){return this.publishButton=document.createElement("a"),this.publishButton.className="publish-button button-primary right",this.publishButton.innerText="Save & Publish",this.publishButton.enabled=!0,this.publishButton.addEventListener("click",()=>{this.publishButton.enabled&&this.buttonizerObject.savingMechanism.publish()}),this.publishButton.enable=(()=>{this.publishButton.enabled=!0,this.revertChangesText.hidden=!1,this.publishButton.innerText="Save & Publish",this.publishButton.className=this.publishButton.className.replace(" disabled","")}),this.publishButton.disable=(t=>{this.publishButton.enabled=!1,this.revertChangesText.hidden=!0,this.publishButton.innerText=t,this.publishButton.className.includes(" disabled")||(this.publishButton.className+=" disabled")}),this.publishButton}createRevertChangesButton(){return this.revertChangesText=document.createElement("a"),this.revertChangesText.className="revert-button right",this.revertChangesText.innerText="Revert changes",this.revertChangesText.href="javascript:void(0)",this.revertChangesText.addEventListener("click",()=>{new r({title:"Revert changes",content:"<p>Are you sure you want to revert your changes?</p><p>The current changes will be overwritten by the current published buttons and settings.</p>",onConfirm:()=>{this.buttonizerObject.savingMechanism.revert()},buttons:[{text:"Never mind",close:!0,focus:!0},{text:"Revert changes",confirm:!0}]})}),this.revertChangesText}createAlertText(){return this.alertText=document.createElement("a"),this.alertText.className="alert-text",this.alertText.showSaving=(()=>{this.alertText.innerHTML='<i class="fas fa-mug-hot"></i> Saving changes...',this.alertText.hidden=!1}),this.alertText.showSaved=(()=>{this.alertText.innerHTML='<i class="fas fa-check"></i> Saving complete.',setTimeout(()=>{this.alertText.hidden=!0},2e3)}),this.alertText.alert=(t=>{this.alertText.innerText=t,this.alertText.hidden=!1,setTimeout(()=>{this.alertText.hidden=!0},2e3)}),this.alertText.hidden=!0,this.alertText}set changes(t){t?this.publishButton.enable():this.publishButton.disable("Published")}};var Le=class{constructor(t){this.buttonizerObject=t,this.barElement=HTMLElement,this.groupContainer=HTMLElement,this.settingBar=HTMLElement,this.settingContainer=HTMLElement,this.settingContent=HTMLElement,this.settingTitle=HTMLElement,this.settingCallback=(()=>console.log("huh?")),document.body.appendChild(this.buildBar()),jQuery(this.groupContainer).scrollbar(),jQuery(this.settingContent).scrollbar()}buildBar(){let t=document.createElement("div");t.className="buttonizer-bar";let e=document.createElement("div");e.className="group-container container",e.appendChild(this.createButtonHolder()),e.appendChild(this.addButtonGroup()),t.appendChild(e),t.appendChild(this.createBarFooter()),this.barElement=t,this.groupContainer=e;let n=document.createElement("div"),i=document.createElement("div");i.className="settings-content";let o=document.createElement("div");return o.className="settings-container container hidden",o.appendChild(this.createSettingBar()),i.appendChild(n),o.appendChild(i),t.appendChild(o),this.settingContent=n,this.settingContainer=o,t}createSettingBar(){let t=document.createElement("div");t.className="top";let e=document.createElement("a");e.className="back-button fa fa-angle-left",e.addEventListener("click",()=>{jQuery(".settings-container").addClass("hidden"),jQuery(".group-container").removeClass("hidden"),setTimeout(()=>this.settingCallback(),250)}),t.appendChild(e);let n=document.createElement("div");n.className="title-wrapper";let i=document.createElement("h4");i.innerHTML="Now editing:";let o=document.createElement("h2");return o.innerHTML="nothing!",n.appendChild(i),n.appendChild(o),t.appendChild(n),this.settingBar=t,this.settingTitle=o,t}createButtonHolder(){return this.groupHolder=document.createElement("div"),this.groupHolder.className="buttonizer-group-holder",jQuery(this.groupHolder).sortable({items:"> div",axis:"y",cursor:"move",delay:150,handle:"#buttonizer-group-title",helper:"clone",start:function(t,e){jQuery(this).attr("data-previndex",e.item.index())},stop:function(t,e){jQuery(this).removeAttr("data-previndex")},update:function(t,e){var n=e.item.index(),i=jQuery(this).attr("data-previndex");window.Buttonizer.updateButtonGroupList(n,i),jQuery(this).removeAttr("data-previndex")},cancel:null}),jQuery(this.groupHolder).disableSelection(),jQuery(".group-title").disableSelection(),this.groupHolder}addButtonGroup(){let t=document.createElement("a");return t.href="javascript:void(0)",t.className="create-new-button is-create-group buttonizer-premium-gray-out",t.innerHTML="Add group + <span class='buttonizer-premium'>PRO</span>",t.addEventListener("click",()=>window.Buttonizer.showPremiumPopup("You are able to add multiple groups on different positions.")),t}generateLink(t,e,n,i){i||(i="");let o=document.createElement("a");return o.href="javascript:void(0)",o.className=i,o.innerHTML='<i class="'+t+'"></i> '+e,o.addEventListener("click",n),o}showSettings(t,e){jQuery(".buttonizer-bar .settings-container").removeClass("hidden"),jQuery(".buttonizer-bar .group-container").addClass("hidden"),this.settingTitle.innerHTML=t,this.settingCallback=e}createBarFooter(){let t=document.createElement("div");t.className="bar-footer";let e=document.createElement("div");e.className="footer-device-selector";let n=document.createElement("a");n.href="javascript:void(0)",n.className="active",n.innerHTML='<span class="dashicons-before dashicons-desktop"></span>',n.addEventListener("click",()=>{n.classList.add("active"),i.classList.remove("active"),o.classList.remove("active"),document.querySelector(".buttonizer-frame").className="buttonizer-frame"}),e.appendChild(n);let i=document.createElement("a");i.href="javascript:void(0)",i.innerHTML='<span class="dashicons-before dashicons-tablet"></span>',i.addEventListener("click",()=>{n.classList.remove("active"),i.classList.add("active"),o.classList.remove("active"),document.querySelector(".buttonizer-frame").className="buttonizer-frame frame-size-tablet"}),e.appendChild(i);let o=document.createElement("a");return o.href="javascript:void(0)",o.innerHTML='<span class="dashicons-before dashicons-smartphone"></span>',o.addEventListener("click",()=>{n.classList.remove("active"),i.classList.remove("active"),o.classList.add("active"),document.querySelector(".buttonizer-frame").className="buttonizer-frame frame-size-mobile"}),e.appendChild(o),t.appendChild(e),t}};var Te=class{constructor(){this.element=document.createElement("div"),this.element.className="buttonizer-loading";let t=document.createElement("div");t.className="middle";let e=document.createElement("img");e.src=buttonizer_admin.assets+"/images/buttonizer-loading.png",t.innerHTML=this.svg(),t.appendChild(e),this.textElement=document.createElement("div"),this.textElement.className="loader-text",t.appendChild(this.textElement),this.element.appendChild(t),document.body.appendChild(this.element)}svg(){return'<svg width="165" height="165" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" class="lds-rolling"><circle cx="50" cy="50" fill="none" stroke="#2f788a" stroke-width="7" r="35" stroke-dasharray="164.93361431346415 56.97787143782138" transform="rotate(300 50 50)">\x3c!--animateTransform attributeName="transform" type="rotate" calcMode="linear" values="0 50 50;360 50 50" keyTimes="0;1" dur="1s" begin="0s" repeatCount="indefinite"--\x3e</animateTransform></circle></svg>'}show(t,e=""){t||(t=""),this.textElement.innerHTML=t,this.element.className="buttonizer-loading "+e,this.element.style.display="block"}hide(){this.element.style.display="none"}};var Be=class{constructor(){this.updateTimer=setTimeout(()=>{},0),this.isUpdating=!1,this.tempButtons={},this.savingObject=HTMLElement,this.savedObject=HTMLElement,setInterval(()=>this.checkUpdates(),500)}checkUpdates(){window.Buttonizer.buttonChanges&&!this.isUpdating&&(window.Buttonizer.buttonChanges=!1,clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this.save(),1e3))}save(){window.Buttonizer.buttonChanges||(this.isUpdating=!0,window.Buttonizer.buttonChanges=!1,window.Buttonizer.topBar.alertText.showSaving(),console.log("[BUG DEBUG SAVING AND RELOADING] button changes!"),jQuery.ajax({url:buttonizer_admin.ajax+"?action=buttonizer_backend&request=SaveData&save=buttons",dataType:"json",method:"post",data:{security:buttonizer_admin.security,buttons:this.generateJSONObject()},success:t=>{this.isUpdating=!1,"success"===t.status?(console.log("[BUG DEBUG SAVING AND RELOADING] saved!"),window.Buttonizer.topBar.alertText.showSaved(),this.reloadPreview(),window.Buttonizer.changes=!0):window.Buttonizer.savingError(t.message)},error:t=>{this.isUpdating=!1,window.Buttonizer.savingError(t)}}))}publish(){window.Buttonizer.buttonChanges||this.isUpdating||(this.isUpdating=!0,window.Buttonizer.buttonChanges=!1,window.Buttonizer.topBar.publishButton.disable("Publishing..."),jQuery.ajax({url:buttonizer_admin.ajax+"?action=buttonizer_backend&request=SaveData&save=publish",dataType:"json",data:{security:buttonizer_admin.security},method:"post",success:t=>{this.isUpdating=!1,"success"===t.status?window.Buttonizer.topBar.publishButton.disable("Published"):new r({title:"Could not save settings",content:`<p>Something went wrong while saving your settings.</p><p>${t.message}</p>`,buttons:[{text:"Close",close:!0}]})},error:(t,e,n)=>{this.isUpdating=!1,window.Buttonizer.topBar.publishButton.enable(),window.bdebug.error("Couldn't complete saving: "+t)}}))}revert(){window.Buttonizer.buttonChanges||(window.Buttonizer.loader.show("Reverting..."),this.isUpdating=!0,window.Buttonizer.buttonChanges=!1,jQuery.ajax({url:buttonizer_admin.ajax+"?action=buttonizer_backend&request=SaveData&save=revert",dataType:"json",method:"post",data:{security:buttonizer_admin.security},success:t=>{if(this.isUpdating=!1,"success"!==t.status)return window.Buttonizer.loader.hide(),void new r({title:"Could not revert settings",content:`<p>Something went wrong while reverting your settings.</p><p>${t.message}</p>`,buttons:[{text:"Close",close:!0}]});document.location.reload()},error:(t,e,n)=>{this.isUpdating=!1,window.bdebug.error("Couldn't complete saving: "+t)}}))}reloadPreview(){console.log("[BUG DEBUG SAVING AND RELOADING] requested!");try{document.getElementById("buttonizer-iframe").contentWindow.postMessage({eventType:"buttonizer",messageType:"preview-reload"},document.location.origin)}catch(t){console.log("Buttonizer tried to auto update the Buttonizer Buttons. But the message didn't came through. Well. Doesn't matter, it's just an extra function. It's nice to have."),console.log(t),document.getElementById("buttonizer-iframe").contentWindow.location.reload()}}generateJSONObject(){let t=window.Buttonizer.buttonGroups,e=[];for(let n=0;n<t.length;n++){let i=t[n].buttons,o=[];for(let t=0;t<i.length;t++)i[t].alive&&o.push(i[t].data);e.push({data:t[n].data,buttons:o})}return e}},ze=class{constructor(){this.versionDropdown={},this.libraryPremiumCode={},this.currentSelected=window.Buttonizer.getSetting("icon_library","fontawesome"),this.currentSelectedIndex=null,this.currentSelectedVersion=window.Buttonizer.getSetting("icon_library_version","5.free"),this.currentSelectedVersionIndex=null,this.currentSelectedPremiumCode=window.Buttonizer.getSetting("icon_library_code",""),this.cachedPremium=[],this.libraries=[{name:"Font Awesome",id:"fontawesome",versions:[{id:"5.free",name:"Font Awesome 5 - Free - Latest (automatic)",free:!0},{id:"5.paid",name:"Font Awesome 5 - Pro - Latest (automatic)",free:!1},{id:"4.7.0",name:"Font Awesome 4.7",free:!0}]}]}build(){let t=document.createElement("div");return t.appendChild(this.iconLibrary()),t.appendChild(this.versionSelector()),t.appendChild(this.importIconLibrary()),t}showPremiumIcons(){return!0}iconLibrary(){let t=document.createElement("select");t.className="window-select";for(let e=0;e<this.libraries.length;e++){let n=document.createElement("option");n.value=e,n.text=this.libraries[e].name,n.setAttribute("data-index",e.toString()),this.currentSelected===this.libraries[e].id&&(n.selected=!0,this.currentSelectedIndex=e),t.appendChild(n)}t.addEventListener("change",()=>{this.currentSelected=t.value,this.currentSelectedIndex=Number(t.getAttribute("data-index")),this.currentSelectedVersion=0,window.Buttonizer.saveSettings({icon_library:t.value,icon_library_version:this.libraries[this.currentSelectedIndex].versions[0]},!1),this.buildVersionSelector(),this.reloadIframe()});let e=document.createElement("div");e.innerHTML="If your theme automatically loads in a library you just have to select the correct icon library.";let n=new s;return n.addColumnHTML("<h2>Icon library</h2>"),n.addColumn(t,"","370"),n.newRow(),n.addColumnText(""),n.addColumn(e),n.build()}versionSelector(){this.versionDropdown=document.createElement("select"),this.versionDropdown.className="window-select",this.versionDropdown.addEventListener("change",()=>{this.currentSelectedVersion=this.versionDropdown.value,window.Buttonizer.saveSettings({icon_library_version:this.currentSelectedVersion},!1),this.currentSelectedVersion.indexOf("paid")>=0?(this.libraryPremiumCode.style.display="block",""!==this.currentSelectedPremiumCode&&this.reloadIcons()):(this.libraryPremiumCode.style.display="none",this.reloadIcons())});let t=document.createElement("div");t.innerHTML="Select the correct version of the library. So Buttonizer can help you choosing icons.";let e=new s;e.addColumnHTML("<h2>Select version</h2>"),e.addColumn(this.versionDropdown,"","370"),e.newRow(),e.addColumnText(""),e.addColumn(t);let n=document.createElement("div");return n.appendChild(e.build()),n.appendChild(this.libraryLicenseKey()),this.buildVersionSelector(),n}reloadIcons(){window.Buttonizer.iconSelector.iconListener.onReady(()=>{window.Buttonizer.iconSelector.rebuild(),window.Buttonizer.addIconLibrary(),this.reloadIframe()}),window.Buttonizer.iconSelector.iconListener.loadIcons()}libraryLicenseKey(){let t=document.createElement("div");t.innerHTML='You have selected an icon library that has premium icons, enter the library license to show them. <a href="" target="_blank" class="link-add-more" style="display: inline">How does this work?</a>';let e=document.createElement("input");e.placeholder="Enter integrity code",e.className="window-select",e.value=this.currentSelectedPremiumCode,e.addEventListener("change",()=>{window.Buttonizer.saveSettings({icon_library_code:e.value},!1),this.reloadIcons()});let n=new s;return n.addColumnHTML(" "),n.addColumn(e,"","370"),n.newRow(),n.addColumnText(""),n.addColumn(t),this.libraryPremiumCode=n.build(),this.libraryPremiumCode}buildVersionSelector(){this.versionDropdown.innerHTML="";let t=!1;for(let e=0;e<this.libraries[this.currentSelectedIndex].versions.length;e++){let n=document.createElement("option");n.value=this.libraries[this.currentSelectedIndex].versions[e].id,n.text=this.libraries[this.currentSelectedIndex].versions[e].name,this.currentSelectedVersion===n.value&&(n.selected=!0,this.libraries[this.currentSelectedIndex].versions[e].free||(t=!0)),this.versionDropdown.appendChild(n)}this.libraryPremiumCode.style.display=t?"block":"none"}importIconLibrary(){let t=new u({state:window.Buttonizer.getSetting("import_icon_library",!0)});t.onToggle(t=>{window.Buttonizer.saveSettings({import_icon_library:t},!1),this.reloadIframe()});let e=document.createElement("div");e.innerHTML="Should Buttonizer import the icon library into your theme? When your theme already imports the library you can disable this.";let n=new s;return n.addColumnHTML("<h2>Import icon library</h2>"),n.addColumn(t.build(),"","370"),n.newRow(),n.addColumnText(""),n.addColumn(e),this.buildVersionSelector(),n.build()}reloadIframe(){setTimeout(()=>{document.getElementById("buttonizer-iframe").contentWindow.location.reload()},1500)}};class Ae{constructor(){this.versionDropdown={},this.currentSelected=window.Buttonizer.getSetting("google_analytics","")}build(){let t=document.createElement("div");t.appendChild(this.input());let e=document.createElement("div");e.className="window-splitter",e.innerHTML="Where can I see my click data of my buttons in Google Analytics?",e.style.marginBottom="20px",t.appendChild(e);let n=document.createElement("div");return n.className="settings-window-information",n.innerHTML='\n<p>All the click data of each button is displayed in the Google Analytics account you have set for your website. When you go to the <b>Behavior section</b> (left side of your screen in Google Analytics) and then click on <b>events overview</b> you will see that there is an <b>Event category</b> called <b>Buttonizer</b>.</p>\n\n<p><b>Event Category</b>: Each button you have set on Buttonizer will get the event category \'Buttonizer\'<br />\n<b>Event Label</b>: This will be the name that you have given your button in the back-end in WordPress <i class="fa fa-caret-right"></i> This way you will recognize which buttons perform better<br />\n<b>Event Action</b>: This will be the page on which the button is clicked</p>\n\n<p>If you want to test if the Google Analytics tracking is working. You go to <b>Real Time <i class="fa fa-caret-right"></i> Events</b>, open another tab, go to your website and click on the button. You should see hits coming in :)</p>\n',t.appendChild(n),t}input(){let t=document.createElement("input");t.value=this.currentSelected,t.className="window-select",t.placeholder="UA-XXXXXX-Y",t.addEventListener("change",()=>{window.Buttonizer.saveSettings({google_analytics:t.value},!1)});let e=document.createElement("div");e.innerHTML="Insert here the Google Analytics tracking code. Like UA-000000-2";let n=new s;return n.addColumnHTML("<h2>Google Analytics</h2>"),n.addColumn(t,"","375"),n.newRow(),n.addColumnText(""),n.addColumn(e),n.build()}}class Ie{constructor(){}build(){let t=document.createElement("div"),e=document.createElement("div");return e.className="settings-window-information",e.innerHTML="<p>Nothing really special here, just a way to reset the buttonizer to the default settings</p>",t.appendChild(e),t.appendChild(this.whatWillHappen()),t.appendChild(this.why()),t.appendChild(this.myLicense()),t.appendChild(this.andThen()),t.appendChild(this.ready()),t}whatWillHappen(){let t=document.createElement("div"),e=document.createElement("div");e.className="window-splitter",e.innerHTML="What happens when I click the red button below?",e.style.marginBottom="20px",t.appendChild(e);let n=document.createElement("div");return n.className="settings-window-information",n.innerHTML="<p>What will happen is that the plugin will get a 'factory reset'. All settings to Buttonizer will get removed as you just installed and activated Buttonizer. From then you can start all-over again.</p>",t.appendChild(n),t}why(){let t=document.createElement("div"),e=document.createElement("div");e.className="window-splitter",e.innerHTML="Why would I do that?",e.style.marginBottom="20px",t.appendChild(e);let n=document.createElement("div");return n.className="settings-window-information",n.innerHTML="<p>There are many reasons to reset Buttonizer. One could be, you ruined your Buttonizer buttons, the settings, categories. Or maybe you just want to try this reset button?</p>",t.appendChild(n),t}myLicense(){let t=document.createElement("div"),e=document.createElement("div");e.className="window-splitter",e.innerHTML="I have a license, what about that?",e.style.marginBottom="20px",t.appendChild(e);let n=document.createElement("div");return n.className="settings-window-information",n.innerHTML="\n<p>No worries! Nothing will happen with your license! It only wipe out the following:</p>\n<p>\n<ul>\n <li>Your buttons</li>\n <li>Your button groups</li>\n <li>All time schedules</li>\n <li>All page rules</li>\n <li>All other settings of Buttonizer</li>\n <li>All publishes settings</li>\n</ul>\n</p>\n",t.appendChild(n),t}andThen(){let t=document.createElement("div"),e=document.createElement("div");e.className="window-splitter",e.innerHTML="Okay, sounds good. What then?",e.style.marginBottom="20px",t.appendChild(e);let n=document.createElement("div");return n.className="settings-window-information",n.innerHTML="<p>Buttonizer will go back to the default settings and will behave like a fresh installation. That's all.</p>",t.appendChild(n),t}ready(){let t=document.createElement("div"),e=document.createElement("div");e.className="window-splitter",e.innerHTML="Okay, I'm ready!",e.style.marginBottom="20px",t.appendChild(e);let n=document.createElement("div");n.className="settings-window-information",n.innerHTML="<p>Press the red button below to reset buttonizer. There will be no more warnings.</p>",t.appendChild(n);let i=document.createElement("a");return i.className="button button-red button-centered-reset",i.innerHTML='<i class="fas fa-sync"></i> Reset Buttonizer!',i.href="javascript:void(0)",i.addEventListener("click",()=>this.countdown()),t.appendChild(i),t}countdown(){window.Buttonizer.loader.show("Initializing..."),setTimeout(()=>{window.Buttonizer.loader.show("Resetting..."),this.reset()},1500)}reset(){jQuery.ajax({url:buttonizer_admin.ajax+"?action=buttonizer_backend&request=SaveData&save=reset-buttonizer",dataType:"json",method:"post",data:{security:buttonizer_admin.security},success:t=>{"success"===t.status?(window.Buttonizer.loader.show("Finishing..."),setTimeout(()=>{document.location.reload()},500)):(window.Buttonizer.loader.hide(),window.Buttonizer.savingError(t.message))},error:(t,e,n)=>{window.Buttonizer.loader.hide(),window.Buttonizer.savingError(e)}})}error(){}}class Ne{build(){let t=document.createElement("div");return t.appendChild(this.showWPAdminTopBarButton()),t.appendChild(this.showTooltips()),t.appendChild(this.allowRequestsFromSubdomains()),t}showWPAdminTopBarButton(){let t=new u({state:window.Buttonizer.getSetting("admin_top_bar_show_button","true")});t.onToggle(t=>{window.Buttonizer.saveSettings({admin_top_bar_show_button:t},!1)});let e=new s;return e.addColumnHTML("<h2>Admin topbar button</h2>"),e.addColumn(t.build(),"","370"),e.newRow(),e.addColumnText(""),e.addColumnText("You can hide the button in the admin top bar by using this toggle"),e.build()}showTooltips(){let t=new u({state:window.Buttonizer.getSetting("show_tooltips")});t.onToggle(t=>{window.Buttonizer.saveSettings({show_tooltips:t},!1)});let e=new s;return e.addColumnHTML("<h2>Show tooltips</h2>"),e.addColumn(t.build(),"","370"),e.newRow(),e.addColumnText(""),e.addColumnText("You can hide or show all the tooltips by changing this setting"),e.build()}allowRequestsFromSubdomains(){let t=new u({state:window.Buttonizer.getSetting("allow_subdomains","false")});t.onToggle(t=>{window.Buttonizer.saveSettings({allow_subdomains:t},!1)});let e=new s;return e.addColumnHTML("<h2>Subdomain support</h2>"),e.addColumn(t.build(),"","370"),e.newRow(),e.addColumnText(""),e.addColumnText("Some WordPress websites use subdomains to serve content on their website. To allow Buttonizer to load on your subdomains, you can enable this here. Only enable this when you need it."),e.build()}}var Me=class extends m{constructor(){super({},"Buttonizer settings")}render(){this.fontAwesome(),this.analytics(),this.mainSettings(),this.reset()}fontAwesome(){super.addItem("Icon library",(new ze).build())}analytics(){super.addItem("Google Analytics",(new Ae).build())}mainSettings(){super.addItem("Other settings",(new Ne).build())}reset(){super.addItem("Reset",(new Ie).build())}},He=class{constructor(){this.element=null,this.itemList=null,this.searchList=null,this.searchInput=null,this.fontAwesomeStylesheet=null,this.iframeContent=null,this.mayClose(),this.build(),this.iconListener=new class{constructor(){this.icons=[],this.callback=(()=>{}),this.searchResultCache=[],this.loadIcons()}onReady(t){this.callback=t}getIcons(){return this.icons}search(t){if(void 0!==this.searchResultCache[t])return this.searchResultCache[t];let e=[];for(let n=0;n<this.icons.length;n++){let i=this.icons[n];(i.searchTerms.indexOf(t)>=0||i.name.indexOf(t)>=0)&&e.push(i)}return this.searchResultCache[t]=e,e}loadIcons(){this.searchResultCache=[],this.icons=[];let t=window.Buttonizer.settings.icon_library,e=window.Buttonizer.settings.icon_library_version;jQuery.ajax({url:buttonizer_admin.assets+"/icon_definitions/"+t+"."+e+".json?buttonizer-icon-cache="+window.Buttonizer.version,dataType:"json",method:"get",success:n=>{this.icons=n,console.log("Finished loading icon library '"+t+"' version "+e),this.callback()},error:()=>{console.error("Could not load icon library '"+t+"' version "+e)}})}},this.iconLibrary=new ze,this.currentInput=null,this.currentInputJ=null,this.searchTimeout=setTimeout(()=>{},1),setInterval(()=>this.stayOnPlace(),100),this.firstBuild=!0,this.opened=!1}build(){let t=document.createElement("div");t.className="buttonizer-icon-selector";let e=document.createElement("div");e.className="icon-selector-searchbar";let n=document.createElement("input");n.className="icon-selector-searchbar",n.placeholder="Search to icons...",n.addEventListener("keyup",()=>{clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(()=>{this.search(n.value)},200)}),this.searchInput=n,e.appendChild(this.searchInput),t.appendChild(e);let i=document.createElement("iframe");i.height="350px",i.width="100%",i.src="about:blank",i.frameborder=0,i.addEventListener("load",()=>{i.contentDocument.querySelector("head").appendChild(window.Buttonizer.iconLibraryStylesheet);let t=document.createElement("style");t.innerText='\nbody, html {\n background-color: #f5f5f5;\n margin: 0;\n padding: 0;\n font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;\n font-size: 14px;\n}\n\n.icon-selector-list {\n border-top: 1px solid #e7e7e7;\n overflow: auto;\n text-align: center;\n}\n\n.icon-selector-list a {\n background-color: #f5f5f5;\n color: #464646;\n font-size: 19px;\n width: 16%;\n height: 50px;\n line-height: 50px;\n text-decoration: none;\n display: inline-block;\n text-align: center;\n outline: none;\n}\n\n.icon-selector-list a:hover {\n background-color: #e7e7e7;\n}\n\n.icon-selector-list a:focus {\n box-shadow: none !important;\n}\n\n.fa, .fal, .far, .fas, .fab {\n line-height: 50px !important;\n}',i.contentDocument.querySelector("head").appendChild(t),this.itemList=document.createElement("div"),this.itemList.className="icon-selector-list",i.contentDocument.body.appendChild(this.itemList),this.searchList=document.createElement("div"),this.searchList.className="icon-selector-list search-list",this.searchList.style.display="none",i.contentDocument.body.appendChild(this.searchList)}),this.iframeContent=i,t.appendChild(this.iframeContent),this.element=t,document.body.appendChild(this.element)}search(t){if(""===t)return this.searchList.style.display="none",this.itemList.style.display="block",void(this.iframeContent.height="350px");this.searchList.style.display="block",this.itemList.style.display="none";let e=this.iconListener.search(t);e.length>0?(this.searchList.innerHTML="",this.showIcons(this.searchList,e),jQuery(this.searchList).height()>350?this.iframeContent.height="350px":this.iframeContent.height=jQuery(this.searchList).height()+5+"px"):(this.iframeContent.height="50px",this.searchList.innerHTML=`<p>Sorry, no results found for <b>${t}</b></p>`)}rebuild(){this.itemList.innerHTML="",this.searchList.innerHTML="",this.showIcons(this.itemList,this.iconListener.getIcons())}showIcons(t,e){for(let n=0;n<e.length;n++){let i=e[n];for(let e=0;e<i.icons.length;e++){let n=document.createElement("a");n.innerHTML=`<i class="${i.icons[e].icon}"></i>`,n.href="javascript:void(0)",n.title=i.name+" ("+i.icons[e].type+")",n.addEventListener("click",()=>{if(null!==this.currentInput){if(this.currentInput.value=i.icons[e].icon,"createEvent"in document){let t=document.createEvent("HTMLEvents");t.initEvent("change",!1,!0),this.currentInput.dispatchEvent(t)}else this.currentInput.fireEvent("onchange");this.close()}}),t.appendChild(n)}}}open(t){this.currentInput=t,this.currentInputJ=jQuery(this.currentInput),this.searchInput.value="",this.searchList.style.display="none",this.itemList.style.display="block",this.element.style.display="block",setTimeout(()=>{this.searchInput.focus(),this.opened=!0,this.stayOnPlace(),setTimeout(()=>{this.element.className="buttonizer-icon-selector selector-animated",this.firstBuild&&(this.firstBuild=!1,this.rebuild())},250)},50)}mayClose(){document.querySelector("body").addEventListener("click",t=>{this.opened&&"icon-selector-searchbar"!==t.target.className&&(this.element.style.display="none",this.element.className="buttonizer-icon-selector",this.opened=!1)})}close(){this.element.style.display="none",this.opened=!1}stayOnPlace(){if(this.opened){let t=this.currentInputJ.offset().top+this.currentInputJ.height()+10+"px";t!==this.element.style.top&&(this.element.style.top=t,this.element.style.left=this.currentInputJ.offset().left+"px")}}},qe=(n(7),n(0));const Pe=n(12);class De{constructor(){this.tour=null,this.amount=window.Buttonizer.buttonGroups[0].groupObject.querySelectorAll(".group-button").length,this.single="",this.setupStep5=!1,this.setupStep6=!1,this.setupStep7=!1,this.setupStep10=!1,this.setupStep11=!1,this.setup2Step4=!1,this.setup2Step6=!1,this.setup2Step7=!1,this.setup2Step12=!1}build(){let t=this.intro();t.onchange(e=>this.conditions(t._currentStep,e,1)),t.start(),t.onbeforeexit(()=>this.onExit(t._currentStep,1)),t.onexit(()=>{this.tour=null,this.amount=window.Buttonizer.buttonGroups[0].groupObject.querySelectorAll(".group-button").length,this.setupStep5=!1,this.setupStep6=!1,this.setupStep7=!1,this.setupStep10=!1,this.setupStep11=!1,this.setup2Step4=!1,this.setup2Step6=!1,this.setup2Step7=!1,this.setup2Step12=!1,20===t._currentStep&&window.Buttonizer.bar.groupHolder.querySelector(".create-new-button").click()})}getAmount(){return this.amount=window.Buttonizer.buttonGroups[0].groupObject.querySelectorAll(".group-button").length,this.amount}conditions(t,e,n){if(this.amount=window.Buttonizer.buttonGroups[0].groupObject.querySelectorAll(".group-button").length,1===n)if(0===t)window.Buttonizer.bar.settingContainer.classList.contains("hidden")||window.Buttonizer.bar.settingContainer.querySelector(".back-button").click();else if(4===t){if(!this.setupStep5){this.setupStep5=!0,document.querySelector(".options-button").addEventListener("click",()=>{null!==this.tour&&this.tour.goToStep(6)})}"backward"===this.tour._direction&&(document.querySelector(".options-window").hasAttribute("hidden")||document.querySelector(".options-window").setAttribute("hidden",""))}else if(5===t)document.querySelector(".options-window").hasAttribute("hidden")&&document.querySelector(".options-window").removeAttribute("hidden"),"backward"===this.tour._direction&&document.querySelector(".options-window").classList.remove("disabled");else if(6===t){document.querySelector(".options-window").hasAttribute("hidden")&&document.querySelector(".options-window").removeAttribute("hidden"),document.querySelector(".options-window").setAttribute("style","z-index:9999999 !important"),document.querySelector(".options-window").classList+=" disabled";let t=window.Buttonizer.topBar.optionsWindow.querySelector(".single-button");t.style.pointerEvents="all",t.style.cursor="pointer",this.setupStep7||(this.setupStep7=!0,t.addEventListener("click",()=>{null!==this.tour&&this.tour.nextStep()})),"backward"===this.tour._direction&&(window.Buttonizer.settingsWindow.title.parentElement.parentElement.style.display="none")}else if(7===t)document.querySelector(".options-window").removeAttribute("style","z-index:9999999 !important"),document.querySelector(".options-window").classList.remove("disabled"),window.Buttonizer.settingsWindow.title.parentElement.parentElement.style.display="block",window.Buttonizer.settingsWindow.title.parentElement.parentElement.setAttribute("style","z-index:9999999 !important;pointer-events: none;"),document.querySelector(".options-window").hasAttribute("hidden")||document.querySelector(".options-window").setAttribute("hidden","");else if(8===t)window.Buttonizer.settingsWindow.title.parentElement.parentElement.removeAttribute("style","z-index:9999999 !important"),window.Buttonizer.settingsWindow.title.parentElement.parentElement.style.display="none";else if(9===t){if(!this.setupStep10){this.setupStep10=!0,window.Buttonizer.bar.groupHolder.querySelector(".button-group-holder").querySelector(".group-style").addEventListener("click",()=>{null!==this.tour&&!1===this.setupStep11&&this.tour.nextStep()})}"backward"===this.tour._direction&&(this.setupStep11=!1,Object(qe.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style","width: 50px; height: 60px; top: 67px; left: 276px;"),document.querySelector(".introjs-helperLayer").setAttribute("style","width: 50px; height: 60px; top: 67px; left: 276px;")},100),window.Buttonizer.bar.settingContainer.querySelector(".back-button").click())}else if(10===t)"forward"===this.tour._direction&&(0==this.setupStep11&&(this.setupStep11=!0,window.Buttonizer.buttonGroups[0].groupHolder.toggleStyling()),this.tour._introItems[11].element=jQuery(".button-group-styling:visible")[0].querySelector(".style-top"),this.tour._introItems[13].element=jQuery(".button-group-styling:visible")[0].querySelector(".style-button"),this.tour._introItems[14].element=jQuery(".button-group-styling:visible")[0].querySelector(".style-icon"),this.tour._introItems[15].element=jQuery(".button-group-styling:visible")[0].querySelector(".style-label"),console.log(this.tour._introItems[11]),Object(qe.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style","width: 385px; height: 966px; top: 46px; left: -5px;")},100),window.Buttonizer.bar.settingContainer.querySelector(".back-button").style.pointerEvents="none");else if(12===t)1===this.amount&&("forward"===this.tour._direction?Object(qe.setTimeout)(()=>{this.tour.nextStep()},100):"backward"===this.tour._direction&&Object(qe.setTimeout)(()=>{this.tour.previousStep()},100));else if(15===t)"backward"===this.tour._direction&&(window.Buttonizer.buttonGroups[0].groupHolder.toggleStyling(),Object(qe.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style","width: 371px; height: 263px; top: 688px; left: 2px;")},100));else if(16===t||17===t||18===t||19===t){window.Buttonizer.bar.settingContainer.querySelector(".back-button").click(),window.Buttonizer.bar.groupHolder.querySelector(".create-new-button").addEventListener("click",()=>{null!==this.tour&&this.tour.goToStep(21)}),16===t&&(this.tour._direction="forward")&&(1===this.getAmount()&&window.Buttonizer.buttonGroups[0].groupHolder.quickMenu.querySelector(".convert-button").click(),window.Buttonizer.buttonGroups[0].groupObject.classList.contains("opened")||window.Buttonizer.buttonGroups[0].groupHolder.revealButtons(),Object(qe.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style",document.querySelector(".introjs-tooltipReferenceLayer").getAttribute("style")+"width: 333px !important; height: 48px !important; left: 36px !important;"),document.querySelector(".introjs-helperLayer").setAttribute("style",document.querySelector(".introjs-tooltipReferenceLayer").getAttribute("style")+"width: 333px !important; height: 48px !important; left: 36px !important;")},100))}else 20===t&&Object(qe.setTimeout)(()=>{this.tour.exit()},100);else if(2===n){let e=window.Buttonizer.buttonGroups[0].groupBody.querySelectorAll(".buttonizer-button-group")[window.Buttonizer.buttonGroups[0].groupBody.querySelectorAll(".buttonizer-button-group").length-1];if(0===t);else if(2===t)Object(qe.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style",document.querySelector(".introjs-tooltipReferenceLayer").getAttribute("style")+"left: 276px !important;")},100);else if(2===t)"backward"===this.tour._direction&&(e.querySelector(".group-title").style.pointerEvents="all",e.querySelector(".mobile-desktop").style.pointerEvents="all");else if(3===t)(e.querySelector(".group-holder-quick-menu").style.visibility="visible")&&(e.querySelector(".group-holder-quick-menu").style.visibility="hidden",e.querySelector(".group-holder-quick-menu").style.top="45px",e.querySelector(".group-holder-quick-menu").style.opacity="0"),Object(qe.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style",document.querySelector(".introjs-tooltipReferenceLayer").getAttribute("style"))},100),e.querySelector(".group-title").style.pointerEvents="none",e.querySelector(".mobile-desktop").style.pointerEvents="none",this.setup2Step4||(this.setup2Step4=!0,e.querySelector(".holder-button").addEventListener("click",()=>{null!==this.tour&&this.tour.nextStep()})),e.querySelector(".holder-button").style.backgroundColor="rgb(255, 255, 255)";else if(4===t){if((e.querySelector(".group-holder-quick-menu").style.visibility="hidden")&&(e.querySelector(".group-holder-quick-menu").style.visibility="visible",e.querySelector(".group-holder-quick-menu").style.top="50px",e.querySelector(".group-holder-quick-menu").style.opacity="1"),"backward"===this.tour._direction){e.querySelector(".fa-wrench").parentElement.style.pointerEvents="none",e.querySelector(".group-holder-quick-menu").style.pointerEvents="none"}else"forward"===this.tour._direction&&(e.querySelector(".group-holder-quick-menu").style.pointerEvents="none");this.amount>=8&&Object(qe.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style",document.querySelector(".introjs-tooltipReferenceLayer").getAttribute("style")+"top: 684px !important;")},100)}else if(5===t){"backward"===this.tour._direction&&(this.setup2Step7=!1,e.querySelector(".group-holder-quick-menu").style.visibility="visible",e.querySelector(".group-holder-quick-menu").style.top="50px",e.querySelector(".group-holder-quick-menu").style.opacity="1",window.Buttonizer.bar.settingContainer.querySelector(".back-button").click(),Object(qe.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style",document.querySelector(".introjs-tooltipReferenceLayer").getAttribute("style")+"left: 36px !important;")},100)),this.amount>=8&&Object(qe.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style",document.querySelector(".introjs-tooltipReferenceLayer").getAttribute("style")+"top: 692px !important;")},100),e.querySelector(".group-holder-quick-menu").setAttribute("style",e.querySelector(".group-holder-quick-menu").getAttribute("style")+"z-index: 99999999 !important;");let t=e.querySelector(".fa-wrench").parentElement;t.style.pointerEvents="all",t.style.cursor="pointer",this.setup2Step6||(this.setup2Step6=!0,e.querySelector(".fa-wrench").parentElement.addEventListener("click",()=>{null!==this.tour&&!1===this.setup2Step7&&this.tour.nextStep()}))}else 6===t?("forward"===this.tour._direction&&(0==this.setup2Step7&&(this.setup2Step7=!0,e.querySelector(".settings").click()),Object(qe.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style","width: 385px; height: 966px; top: 46px; left: -5px;")},100)),e.querySelector(".group-holder-quick-menu").style.visibility="hidden",e.querySelector(".group-holder-quick-menu").style.top="45px",e.querySelector(".group-holder-quick-menu").style.opacity="0"):10===t?(e.querySelector(".settings").click(),"backward"===this.tour._direction&&Object(qe.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style","width: 371px; height: 224px; top: 630px; left: 2px;")},100)):11===t&&(window.Buttonizer.bar.settingContainer.querySelector(".back-button").click(),this.setup2Step12||(this.setup2Step12=!0,window.Buttonizer.topBar.topBarElement.querySelector(".revert-save").addEventListener("click",()=>{null!==this.tour&&this.tour.nextStep()})))}}onExit(t,e){if(this.tour=null,this.amount=window.Buttonizer.buttonGroups[0].groupObject.querySelectorAll(".group-button").length,this.setupStep5=!1,this.setupStep6=!1,this.setupStep7=!1,this.setupStep10=!1,this.setupStep11=!1,this.setup2Step4=!1,this.setup2Step6=!1,this.setup2Step7=!1,this.setup2Step12=!1,1===e)(window.Buttonizer.bar.settingContainer.querySelector(".back-button").style.pointerEvents="none")&&(window.Buttonizer.bar.settingContainer.querySelector(".back-button").style.pointerEvents="all"),5===t?document.querySelector(".options-window").setAttribute("hidden",""):6===t?document.querySelector(".options-window").classList.remove("disabled"):7===t?window.Buttonizer.settingsWindow.title.parentElement.parentElement.removeAttribute("style","z-index:9999999 !important;pointer-events: none;"):20===t&&Object(qe.setTimeout)(()=>{let t=this.intro2();t.onchange(e=>this.conditions(t._currentStep,e,2)),t.start(),t.onbeforeexit(()=>this.onExit(t._currentStep,2)),t.onexit(()=>{this.tour=null,this.amount=window.Buttonizer.buttonGroups[0].groupObject.querySelectorAll(".group-button").length,this.setupStep5=!1,this.setupStep6=!1,this.setupStep7=!1,this.setupStep10=!1,this.setupStep11=!1,this.setup2Step4=!1,this.setup2Step6=!1,this.setup2Step7=!1,this.setup2Step12=!1,20===t._currentStep&&window.Buttonizer.bar.groupHolder.querySelector(".create-new-button").click()})},300);else if(2===e){let e=window.Buttonizer.buttonGroups[0].groupBody.querySelectorAll(".buttonizer-button-group")[window.Buttonizer.buttonGroups[0].groupBody.querySelectorAll(".buttonizer-button-group").length-1];3===t&&(e.querySelector(".group-title").style.pointerEvents="all",e.querySelector(".mobile-desktop").style.pointerEvents="all"),e.querySelector(".group-holder-quick-menu").hasAttribute("style")&&e.querySelector(".group-holder-quick-menu").setAttribute("style",""),e.querySelector(".group-holder-quick-menu").classList.contains("disabled")&&e.querySelector(".group-holder-quick-menu").classList.remove("disabled"),(e.querySelector(".group-holder-quick-menu").style.pointerEvents="none")&&(e.querySelector(".group-holder-quick-menu").style.pointerEvents="all"),(e.querySelector(".group-title").style.pointerEvents="none")&&(e.querySelector(".group-title").style.pointerEvents="all"),(e.querySelector(".mobile-desktop").style.pointerEvents="none")&&(e.querySelector(".mobile-desktop").style.pointerEvents="all"),(e.querySelector(".fa-wrench").parentElement.style.pointerEvents="none")&&(e.querySelector(".fa-wrench").parentElement.style.pointerEvents="all")}}intro(){return this.tour=Pe(),this.tour.setOptions({showBullets:!1,exitOnOverlayClick:!1,skipLabel:"Exit tour",doneLabel:"Exit tour",scrollToElement:!0,showStepNumbers:!1,disableInteraction:!0,keyboardNavigation:!1}),this.tour.setOptions({steps:[{intro:"<b><h2>Welcome to the Buttonizer tour!</h2></b> \n Start the tour and save time. Master the Buttonizer skills in only two minutes",position:"left",tooltipClass:"max-width"},{element:document.querySelector(".buttonizer-bar"),intro:"<b><h2>Buttonizer bar</h2></b> Manage all your Floating Action Button and Floating menu's in the Buttonizer bar.",position:"left"},{element:document.querySelector(".buttonizer-frame"),intro:"<b><h2>Preview</h2></b> Watch the impact of your changes in the preview pane. Your buttons will only be visible to your website visitor after you click on 'Publish'.",position:"left"},{element:document.querySelector(".buttonizer-topbar"),intro:"<b><h2>Top bar</h2></b> In the top bar, you can:</br>\n\n <h4 style=\"font-weight:400;text-align:left;padding:0 15px\">\n 1. Click the <b>'X'</b> to go back to WordPress</br>\n 2. <b>Revert</b> changes you have made</br>\n 3. <b>Publish</b> all your changes</br>\n 4. Access the <b>general settings</b>.\n </h4>",position:"left",tooltipClass:"middle"},{element:document.querySelector(".buttonizer-topbar .options-button"),intro:"Click here <b>&rarr;</b> </br> to go to Buttonizer's general settings.",position:"left",disableInteraction:!1},{element:document.querySelector(".options-window"),intro:"<b><h2>Menu</h2></b>\n <b>Knowledgebase: </b>Want to know what you can do with Buttonizer? Take a look at our Knowledgebase!</br>\n <b>I need support: </b>Visit our support page and ask for help from us or other users.</br>\n <b>Community: </b>Visit our community page and interact with other Buttonizer users!</br>\n <b>My account: </b>View your account details and license.</br>\n <b>Upgrade or pricing: </b>Upgrade or extend your license.</br>\n <b>Affiliation: </b>Like the plugin? Become our ambassador and earn cash ;-)</br>\n <b>Options: </b>Change general settings like icon libraries and Google Analytics.</br>\n ",position:"left",tooltipClass:"wider"},{element:window.Buttonizer.topBar.optionsWindow.querySelector(".single-button"),intro:"Click on <b>Options</b> to open Buttonizer's general settings &rarr;",position:"left",disableInteraction:!1,highlightClass:"introjs-custom-hidden"},{element:window.Buttonizer.settingsWindow.title.parentElement.parentElement.querySelector(".window-menu"),intro:"<b><h2>Buttonizer settings</h2></b>\n <b>Icon library:</b> In this section, you will be able to choose other icon libraries, the icon library version and whether Buttonizer should import the icon library.</br>\n <b>Google Analytics:</b> Want to track your button events? Place your Google Analytics code here!</br>\n <b>Reset:</b> Comletely reset Buttonizer's data.</br>\n ",position:"left",highlightClass:"introjs-custom-hidden",tooltipClass:"wider"},{element:window.Buttonizer.bar.groupHolder.querySelector(".button-group-holder"),intro:"<b><h2>Button group</h2></b>\n A button group contains buttons.</br>\n Button groups are only visible when there are <u><b>2 or more buttons</b></u> within the group.</br></br>\n The buttons in a button group are dedicated to one position. Add multiple button groups if you want to create more floating action buttons dedicated to different positions.\n ",position:"right",tooltipClass:"max-width"},{element:window.Buttonizer.bar.groupHolder.querySelector(".button-group-holder").querySelector(".group-style"),intro:"<b>&larr;</b> Click here</br>\n to show group settings.",position:"right",disableInteraction:!1},{element:window.Buttonizer.bar.settingContainer,intro:"<b><h2>Group settings</h2></b>\n You can change the style of the button group here.</br>\n Click on the left arrow to go back.\n ",position:"right",disableInteraction:!1,highlightClass:"introjs-custom-gone",scrollTo:!1,tooltipClass:"intojs-foff-height"},{element:1===this.getAmount()?jQuery(".button-group-styling")[1].querySelector(".style-top"):window.Buttonizer.buttonGroups[0].stylingObject.querySelector(".style-top"),intro:"<b><h2>Position & device visibility</h2></b>\n <b>Postion:</b> When you change the position of the button group it will move the whole group, including the buttons.</br> \n <b>Device visibilty:</b> You can choose whether you want the <b><u>whole group</u></b> to be visible on desktop or mobile devices.\n ",position:"right",disableInteraction:!1,scrollTo:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:1===this.getAmount()?jQuery(".button-group-styling")[1].querySelector(".style-menu"):window.Buttonizer.buttonGroups[0].stylingObject.querySelector(".style-menu"),intro:"<b><h2>Menu style</h2></b>\n <b>Start opened:</b> You can now set Buttonizer to automatically open! </br>\n <b>Menu style:</b> Change how your floating menu is shown.</br>\n <b>Animation:</b> Buttonizer will animate every 10 seconds to grab the attention of the user.</br>\n ",position:"right",disableInteraction:!1,scrollTo:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:1===this.getAmount()?jQuery(".button-group-styling")[1].querySelector(".style-button"):window.Buttonizer.buttonGroups[0].stylingObject.querySelector(".style-button"),intro:"<b><h2>Group button style</h2></b>\n <b>Button color:</b> Change the color of the button group.</br>\n <b>Border radius:</b> You can now change the border radius of the button group!</br>\n <b>Background image:</b> Choose an image to use as a background of the button group.</br>\n ",position:"right",disableInteraction:!1,scrollTo:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:1===this.getAmount()?jQuery(".button-group-styling")[1].querySelector(".style-icon"):window.Buttonizer.buttonGroups[0].stylingObject.querySelector(".style-icon"),intro:'<b><h2>Group icon</h2></b>\n <b>Graphic:</b> Choose whether to use an <u><b>icon</b></u> or an <u><b>image</b></u> as an icon.</br>\n <b><h2 style="margin: 1em 0 0 0;">Icon</h2></b>\n <b>Icon:</b> Choose you favorite icon from your selected icon library.</br>\n <b>Icon color:</b> Change the color of the icon.</br>\n <b>Icon size:</b> Change the size of the icon.</br>\n <b><h2 style="margin: 1em 0 0 0;">Image</h2></b>\n <b>Icon image:</b> Choose an image to use as an icon for the button group.</br>\n <b>Border radius:</b> You can change the border radius of the image.</br>\n <b>Image size:</b> Change the size of the image icon.</br>\n ',position:"right",disableInteraction:!1,scrollTo:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:1===this.getAmount()?jQuery(".button-group-styling")[1].querySelector(".style-label"):window.Buttonizer.buttonGroups[0].stylingObject.querySelector(".style-label"),intro:"<b><h2>Label style</h2></b>\n <b>Label:</b> Change the label of the button group.</br>\n <b>Visibility:</b> Always show, show on hover or hide the label. Choose for desktop and mobile devices!</br>\n <b>Label color:</b> Change the text and label color of the label.</br>\n <b>Font size & border radius:</b> Change the font size and border radius of the label.</br>\n ",position:"right",disableInteraction:!1,scrollTo:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:window.Buttonizer.buttonGroups[0].groupObject.querySelector(".create-new-button"),intro:"<b><h2>Add new button</h2></b>\n &larr; Click here </br>\n to add a new button.\n ",position:"right",disableInteraction:!1},{element:window.Buttonizer.buttonGroups[0].groupObject.querySelector(".create-new-button"),intro:"Don't click on next but click on 'Add button +'",position:"right",disableInteraction:!1},{element:window.Buttonizer.buttonGroups[0].groupObject.querySelector(".create-new-button"),intro:"If you don't want to click add button I can do you the honor :)",position:"right",disableInteraction:!1},{element:window.Buttonizer.buttonGroups[0].groupObject.querySelector(".create-new-button"),intro:"Here, on the left... If you won't click it, I will click it >:-)",position:"right",disableInteraction:!1},{position:"bottom",disableInteraction:!1,highlightClass:"introjs-custom-gone",tooltipClass:"introjs-custom-gone"},{position:"bottom",intro:"Hello? Please click that button...",disableInteraction:!1,highlightClass:"introjs-custom-gone",tooltipClass:"introjs-custom-gone"},{position:"bottom",disableInteraction:!1,highlightClass:"introjs-custom-gone",tooltipClass:"introjs-custom-gone"}]}),this.tour}intro2(){this.tour=Pe(),this.tour.setOptions({showBullets:!1,exitOnOverlayClick:!1,skipLabel:"Exit tour",doneLabel:"Exit tour",scrollToElement:!0,showStepNumbers:!1,disableInteraction:!0,keyboardNavigation:!1});let t=window.Buttonizer.buttonGroups[0].groupBody.querySelectorAll(".buttonizer-button-group")[window.Buttonizer.buttonGroups[0].groupBody.querySelectorAll(".buttonizer-button-group").length-1],e=window.Buttonizer.bar.settingContainer;return this.tour.setOptions({steps:[{element:t,intro:"<b><h2>Button</h2></b> You have created a new button! This is a button. Buttons are contained within a group.",position:"right"},{element:this.amount<=7?t.querySelector(".group-title"):t,intro:"<b><h2>Button name</h2></b> This is the name of the button.",position:"bottom",scrollToElement:!1,highlightClass:"introjs-custom-gone"},{element:this.amount<=7?t.querySelector(".mobile-desktop"):t,intro:"<b><h2>Visibility</h2></b> You can quickly change the visibility of a button! Show or hide the button on desktop or mobile.",position:"bottom",highlightClass:"introjs-custom-gone"},{element:this.amount<=7?t.querySelector(".holder-button"):t,intro:"&larr; Click here <br> to show the menu",position:"right",highlightClass:"introjs-custom-gone",disableInteraction:!1},{element:this.amount<=7?t.querySelector(".group-holder-quick-menu"):t,intro:'<b><h2>Menu</h2></b>\n <p style="text-align: left;">\n <b>Button settings:</b> Edit the style of the button.</br>\n <b>Advanced settings:</b> Make the button appear/hide on certain pages and time! (only for our premium users).</br>\n <b>Rename button:</b> Rename the button.</br>\n <b>Duplicate button:</b> Make a copy of the button.</br>\n <b>Delete button:</b> Delete the button.</br></p>\n ',position:"right",highlightClass:"introjs-custom-gone"},{element:this.amount<=7?t.querySelector(".group-holder-quick-menu").querySelector(".settings"):t,intro:"&larr; Click here </br> to show the button settings",position:"right",disableInteraction:!1,highlightClass:"introjs-custom-hidden"},{element:window.Buttonizer.bar.settingContainer,intro:"<b><h2>Button settings</h2></b> These are the button settings. Pretty similar to the group settings.",position:"right",disableInteraction:!1,highlightClass:"introjs-custom-gone"},{element:e.querySelectorAll(".style-top")[e.querySelectorAll(".style-top").length-1],intro:"<b><h2>Position & device visibility</h2></b>\n <b>Button action:</b> Choose the action of the button.</br>\n <b>Device visibility:</b> You can choose whether you want the button to be visible on desktop or mobile devices.</br>\n ",position:"right",disableInteraction:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:e.querySelectorAll(".style-button")[e.querySelectorAll(".style-button").length-1],intro:"<b><h2>Button style</h2></b>\n When enabled, the button will copy the button and label style of the group. </br>\n Turn it off to change the style of the button!\n ",position:"right",disableInteraction:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:e.querySelectorAll(".style-icon")[e.querySelectorAll(".style-icon").length-1],intro:"<b><h2>Icon style</h2></b>\n <b>Graphic:</b> Choose whether to use an <u><b>icon</b></u> or an <u><b>image</b></u> as an icon.</br>\n <b><h2>Icon</h2></b>\n <b>Icon:</b> Choose an icon from your selected icon library.</br>\n <b>Icon color:</b> Change the color of the icon.</br>\n <b>Icon size:</b> Change the size of the icon.</br>\n <b><h2>Image</h2></b>\n <b>Icon image:</b> Choose an image to use as an icon for the button.</br>\n <b>Border radius:</b> You can change the border radius of the image.</br>\n <b>Image size:</b> Change the size of the image icon.</br>\n ",position:"right",disableInteraction:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:e.querySelectorAll(".style-label")[e.querySelectorAll(".style-label").length-1],intro:"<b><h2>Label style</h2></b>\n <b>Label:</b> Change the label of the button.<br>\n <b>Visibility:</b> Always show, show on hover or hide the label. Choose for desktop and mobile devices!</br>\n <b>Label color:</b> Change the label color.</br>\n <b>Font size & border radius:</b> Change the font size and border radius of the label.</br>\n ",position:"right",disableInteraction:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:window.Buttonizer.topBar.topBarElement.querySelector(".revert-save"),intro:"<b><h2>Revert or Save</h2></b>\n <b>Revert changes:</b> Delete all the changes you've made this session.</br>\n <b>Save & publish:</b> Save and publish the changes you've made this session.\n ",position:"right",disableInteraction:!0,tooltipClass:"right"},{intro:'<b><h2>That was it!</h2></b> \n Thank you for taking the tour, that\'s all folks! We hope that you now know how to use Buttonizer! If you have any questions left, ask them on the <a href="https://community.buttonizer.pro" target="_blank">Buttonizer Community</a> forums!<br />\n <br />\n If you have feedback regarding the Buttonizer Tour, let us know!\n ',position:"left",tooltipClass:"max-width"}]}),this.tour}}window.bdebug=new i;window.Buttonizer=new class{constructor(){this.loader={},this.topBar={},this.bar={},this.assetsLink=".",this.tour=null,this.version="-",this.settings={},this.buttonGroups=[],this.savingMechanism={},this.buttonizerInitData=[],this.timeSchedule={},this.pageRule={},this.windowsZindex=9999,this.bc,this.loading=!0,this.settingsWindow={},this.iframe=null,this.iframeLoaded=!1,this.iconLibraryLoaded=!1,this.ButtonizerStartedLoading=0,this.iconSelector=null,this.iconLibraryStylesheet=null,this.previewWarning=null,this.premium=!1,this.init(!0)}set buttonChanges(t){this.loading||(this.bc=t)}get buttonChanges(){return this.bc}init(t){document.body.className+=" buttonizer-initialized",bdebug.welcomeToTheConsole(),!0===t&&bdebug.startDebugging(),bdebug.warning("Buttonizer 2.0");let e=document.createElement("link");e.rel="shortcut icon",e.href=buttonizer_admin.dir+"/favicon.ico",document.head.appendChild(e),this.loader=new Te,this.loader.show("Loading settings..."),this.savingMechanism=new Be,bdebug.warning("Buttonizer settings loading"),this.ButtonizerStartedLoading=(new Date).getTime(),this.loadSettings()}loadSettings(){jQuery.ajax({url:buttonizer_admin.ajax+"?action=buttonizer_backend&request=ButtonizerInitializer",dataType:"json",method:"get",success:t=>{bdebug.warning("Buttonizer settings loaded: "+((new Date).getTime()-this.ButtonizerStartedLoading)/1e3+"s"),"success"===t.status?this.defineSettings(t):this.fatalErrorLoading("<b>"+t.message+"</b>","Buttonizer.loadSettings().success")},error:(t,e,n)=>{this.loader.hide(),this.fatalErrorLoading("<b>"+e.toUpperCase()+":</b><br />"+n,"Buttonizer.loadSettings().error")}})}fatalErrorLoading(t,e){new r({title:"Error!",content:`\n <p>Oh, that was not what I was expecting! Something went wrong while we tried to load all Buttonizer settings.</p>\n <p>Try to reload the webpage. If that did not work, send us a <a href="https://community.buttonizer.pro/" target="_blank">support request</a>.</p>\n <p>Report the following information:</p>\n <p style='color: #FF0000; display: block; border: 1px solid #FF0000; padding: 10px;'>${t}<br /><br />Function place: ${e}</p>`,onConfirm:()=>{document.location.reload()},buttons:[{text:"Reload webpage",confirm:!0}]})}fatalError(t){console.error(t);let e=document.createElement("div");e.innerHTML='<p>Oh, that was not what we were expecting! Something went wrong.</p>\n <p>Try to reload the webpage. If that did not work, send us a <a href="https://community.buttonizer.pro/" target="_blank">support request</a>.</p>';let n=document.createElement("p");n.innerHTML="Do you want to see technical details? <a href='javascript:void(0)'>Click here!</a>",e.appendChild(n);let i=document.createElement("code");i.style.overflowX="auto",i.style.whiteSpace="nowrap",i.innerText=`Error type: ${t.name}\n \n Stack trace:\n \n ${t.stack}`,i.style.display="none",e.appendChild(i),n.addEventListener("click",()=>{n.style.display="none",i.style.display="block"}),new r({title:"Error!?!?1?!1?!",content:e,buttons:[{text:"Close",confirm:!0}]})}defineSettings(t){this.settings=t.settings,this.version=t.version,this.buttonizerInitData=t,this.premium=t.premium,xt.setDefaults({onShow:()=>"true"===this.getSetting("show_tooltips","true")||!0===this.getSetting("show_tooltips")}),this.loader.show("Building bar..."),this.topBar=new Oe(this),this.bar=new Le(this),this.previewWarning=this.leftButtonizerWarning(),this.changes=t.changes,t.changes&&this.topBar.alertText.alert("Loaded changes from previous session"),this.initializeSettings(t.settings),this.initializeTimeSchedules(),this.initializePageRules(),this.loadButtonGroups(),this.loading=!1,this.settingsWindow=new Me,document.location.href.indexOf("open-settings")>=0&&this.settingsWindow.show(),this.iconSelector=new He,1!==this.buttonGroups.length||this.buttonGroups[0].singleButtonMode||this.buttonGroups[0].groupHolder.revealButtons(),this.createIframe();let e=document.createElement("link");e.rel="stylesheet",e.type="text/css",e.href="https://use.fontawesome.com/releases/v5.8.2/css/all.css",e.integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay",e.setAttribute("crossorigin","anonymous"),document.getElementsByTagName("head")[0].appendChild(e),window.addEventListener("message",t=>{t.isTrusted&&void 0!==t.data&&void 0!==t.data.eventType&&"buttonizer"===t.data.eventType&&("warning"===t.data.messageType?this.topBar.updateEventLogs(t.data.message):"javascript_error"===t.data.messageType?new r({title:"Custom javascript error",content:`\n <p>Your custom javascript ran into an error. Read the error below:</p> <p><code style="display: block; padding: 15px;">${t.data.message}</code></p>\n `,buttons:[{text:"OK, I'll fix this",confirm:!0}]}):"(re)loaded"===t.data.messageType&&console.log("[Buttonizer ADMIN] Buttonizer is (re)loaded! So last changes can be seen in the preview window."))},!1),document.location.href.indexOf("tour")>=0&&this.startTour()}startTour(){null===this.tour&&(this.tour=new De),this.tour.build()}createIframe(){let t=""===document.location.hash||"#open-settings"===document.location.hash?this.buttonizerInitData.wordpress.base:decodeURIComponent(document.location.hash.substr(1)),e=document.createElement("div");e.className="buttonizer-frame";let n=document.createElement("iframe");n.src=t+"?buttonizer-preview=1",n.id="buttonizer-iframe",n.setAttribute("frameborder","0"),n.setAttribute("width","100%"),n.setAttribute("height","100%"),n.addEventListener("load",t=>{this.iframeLoaded=!0,-1===t.target.contentWindow.location.href.indexOf("buttonizer-preview")&&-1===document.body.className.indexOf("warning-left-preview-window")&&(document.body.className+=" warning-left-preview-window",this.previewWarning.style.display="block")}),e.appendChild(n),document.body.appendChild(e),this.loader.show("Waiting for your website...","site-loading"),setTimeout(()=>{this.iframeLoaded||this.loader.show("Waiting for your website...<br /><br /><small>It's taking longer than usual, slow website?<br /><br /><a href='javascript:void(0)' onclick='window.Buttonizer.loader.hide()'>Skip this step</a></small>")},5e3);let i=setInterval(()=>{this.iframeLoaded&&this.iconLibraryLoaded&&(this.loader.hide(),document.body.className+=" buttonizer-loaded",clearInterval(i))})}welcome(){this.loader.hide(),new r({title:"Welcome to Buttonizer "+this.version,content:`\n <img src="${buttonizer_admin.assets}/images/plugin-icon.png" width="100" align="left" style="margin-right: 20px; margin-bottom: 10px;" />\n <p>We are pleased to welcome you to <b>Buttonizer 2.0</b>!</p>\n <p>We've created a tour for our new users, would you like to take the tour?</p>\n `,onClose:()=>{this.saveSettings({welcome:"false"},!0)},onConfirm:()=>{this.startTour()},buttons:[{text:'No thanks, I know how it works <i class="fa fa-chevron-right" style="margin-left: 10px; vertical-align: middle;" aria-hidden="true"></i>',close:!0},{text:'Yes please <i class="fa fa-chevron-right" style="margin-left: 10px; vertical-align: middle;" aria-hidden="true"></i>',confirm:!0}]})}updateButtonsTo2Point0(){new r({title:"Hi Buttonizer!",content:"\n <p>It seems like you've installed Buttonizer 2.0 before, but, you installed version 1.5 later again and then updated back to 2.0!</p>\n <p>The migration progress did not run, as it already ran back then. So, to convert your buttons, press the button below!</p>\n \n <p>If this window keeps popping up, even when you've tried to convert the buttons, try to reset Buttonizer. Go to the 'cog' icon (<i class=\"fas fa-cog\"></i>) on the bar on the top, then go to 'Options <i class=\"fas fa-cogs\"></i>' and go to the tab 'Reset' and follow the steps.</p> \n ",onConfirm:()=>{window.Buttonizer.loader.show("Running migration..."),jQuery.ajax({url:buttonizer_admin.ajax+"?action=buttonizer_backend&request=SaveData&save=migrate-buttonizer",dataType:"json",method:"post",data:{security:buttonizer_admin.security},success:t=>{"success"===t.status?(window.Buttonizer.loader.show("Finishing..."),setTimeout(()=>{document.location.reload()},500)):(window.Buttonizer.loader.hide(),window.Buttonizer.savingError(t.message))},error:(t,e,n)=>{window.Buttonizer.loader.hide(),window.Buttonizer.savingError(e)}})},buttons:[{text:"I am OK",close:!0},{text:'Convert my buttons! <i class="fa fa-chevron-right" style="margin-left: 10px; vertical-align: middle;" aria-hidden="true"></i>',confirm:!0}]})}leftButtonizerWarning(){let t=document.createElement("div");t.className="buttonizer-warning warning-red",t.innerHTML="You left the Buttonizer preview window. You will not see changes you make..";let e=document.createElement("a");return e.href="javascript:void(0)",e.className="buttonizer-warning-button",e.innerText="Return to preview",e.addEventListener("click",()=>{document.body.className=document.body.className.replace("warning-left-preview-window",""),this.previewWarning.style.display="none",document.getElementById("buttonizer-iframe").setAttribute("src",window.Buttonizer.buttonizerInitData.wordpress.base+"?buttonizer-preview=true")}),t.appendChild(e),document.body.appendChild(t),t}saveSettings(t,e){e&&this.loader.show("Saving settings..."),Object.assign(this.settings,t),jQuery.ajax({url:buttonizer_admin.ajax+"?action=buttonizer_backend&request=SaveData&save=settings",dataType:"json",method:"post",data:{data:this.settings,security:buttonizer_admin.security},success:t=>{this.loader.hide(),"success"!==t.status&&window.Buttonizer.savingError(t.message)},error:t=>{this.loader.hide(),window.Buttonizer.savingError(t)}})}registerButton(t){}saveButtons(){console.log(this.buttons)}initializeSettings(t){"true"===t.welcome.toString()&&this.welcome(),this.settings=t,this.addIconLibrary()}addIconLibrary(){let t=!1;null===this.iconLibraryStylesheet&&(this.iconLibraryStylesheet=document.createElement("link"),this.iconLibraryStylesheet.rel="stylesheet",this.iconLibraryStylesheet.type="text/css",t=!0),"fontawesome"!==this.settings.icon_library||"5.free"!==this.settings.icon_library_version&&"5.paid"!==this.settings.icon_library_version?"fontawesome"===this.settings.icon_library&&"4.7.0"===this.settings.icon_library_version&&(this.iconLibraryStylesheet.setAttribute("integrity",""),this.iconLibraryStylesheet.href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"):("5.paid"===this.settings.icon_library_version&&""!==this.settings.icon_library_code?this.iconLibraryStylesheet.setAttribute("integrity",this.settings.icon_library_code):this.iconLibraryStylesheet.setAttribute("integrity","sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"),this.iconLibraryStylesheet.setAttribute("crossorigin","anonymous"),this.iconLibraryStylesheet.href="https://"+("5.paid"===this.settings.icon_library_version?"pro":"use")+".fontawesome.com/releases/"+this.buttonizerInitData.fontawesome_current_version+"/css/all.css"),this.iconLibraryLoaded=!0}hasPremium(){return this.premium}showPremiumPopup(t){new r({title:'<i class="far fa-gem window-icon"></i> Premium feature',content:`\n <p>Hi there, this function is a premium feature. We will describe what this feature will do:</p>\n <code style="display: block; margin-bottom: 5px; padding: 10px;">${t}</code>\n <p><b>What do I get as a premium user?</b></p>\n \n <ul class="buttonizer-pro-checklist">\n <li><i class="fas fa-check"></i> Show button(groups) using the advanced time schedules</li>\n <li><i class="fas fa-check"></i> Show button(groups) on specific pages using advanced page rules</li>\n <li><i class="fas fa-check"></i> Create multiple button groups</li>\n <li><i class="fas fa-check"></i> Add custom button-icon and button background images</li>\n <li><i class="fas fa-check"></i> Exit intent</li>\n <li><i class="fas fa-check"></i> Show or hide on scroll</li>\n <li><i class="fas fa-check"></i> Show on timeout</li>\n <li><i class="fas fa-check"></i> Be able to set CSS class names and button IDs</li>\n <li><i class="fas fa-check"></i> Custom button background &amp; icon image</li>\n <li><i class="fas fa-check"></i> Execute javascript on button clicks</li>\n </ul>`,onConfirm:()=>{document.location.href=buttonizer_admin.admin+"?page=Buttonizer-pricing"},buttons:[{text:"Close",close:!0},{text:'Go pro <i class="fas fa-chevron-right" style="margin-left: 5px;vertical-align: middle;"></i>',confirm:!0,close:!0,focus:!0}]})}getSetting(t,e){return void 0!==this.settings[t]?this.settings[t]:e}set changes(t){this.topBar.changes=t}updateButtonGroupList(t,e){this.buttonGroups.splice(t,0,this.buttonGroups.splice(e,1)[0]),this.buttonChanges=!0}updateButtonList(t,e,n,i){this.buttonGroups[n].buttons.splice(t,0,this.buttonGroups[i].buttons.splice(e,1)[0]),this.buttonGroups[n].buttons[t].groupObject=this.buttonGroups[n],this.buttonChanges=!0,this.buttonGroups[i].buttons.length<=1&&jQuery(this.buttonGroups[i].groupBody).sortable("option","cancel",".group-button")}savingError(t){new r({title:"Could not save settings",content:`<p>Something went wrong while saving your settings.</p><p>${t}</p>`,buttons:[{text:"Close",close:!0}]})}initializeTimeSchedules(){}initializePageRules(){}loadButtonGroups(){if(void 0!==this.buttonizerInitData.groups.buttonorder&&this.updateButtonsTo2Point0(),0===this.buttonizerInitData.groups.length)return new _e({name:"Buttonizer",position:"bottomright",icon:"fa fa-plus",horizontal:5,vertical:5},[{name:"First button",show_mobile:!0,show_desktop:!0},{name:"Second button",show_mobile:!0,show_desktop:!0}]),void setTimeout(()=>{this.buttonChanges=!0},1e3);new _e(this.buttonizerInitData.groups[0].data,this.buttonizerInitData.groups[0].buttons)}}},,function(t,e){}]);
10
  *
11
  * (C) 2017-2019 Buttonizer
12
  *
13
+ */!function(t){var e={};function i(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)i.d(n,o,function(e){return t[e]}.bind(null,o));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=16)}([function(t,e,i){(function(t){var n=void 0!==t&&t||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function s(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new s(o.call(setTimeout,n,arguments),clearTimeout)},e.setInterval=function(){return new s(o.call(setInterval,n,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},s.prototype.unref=s.prototype.ref=function(){},s.prototype.close=function(){this._clearFn.call(n,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},i(11),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,i(1))},function(t,e){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,i){
14
  /*!
15
  * drag-tracker v1.0.0
16
  * https://github.com/Sphinxxxx/drag-tracker#readme
18
  * Copyright 2017-2018 Andreas Borgen
19
  * Released under the MIT license.
20
  */
21
+ t.exports=function(){"use strict";var t=window;return function(e){var i=Element.prototype;i.matches||(i.matches=i.msMatchesSelector||i.webkitMatchesSelector),i.closest||(i.closest=function(t){var e=this;do{if(e.matches(t))return e;e="svg"===e.tagName?e.parentNode:e.parentElement}while(e);return null});var n=(e=e||{}).container||document.documentElement,o=e.selector,s=e.callback||console.log,r=e.callbackDragStart,a=e.callbackDragEnd,l=e.callbackClick,u=e.propagateEvents,c=!1!==e.roundCoords,d=!1!==e.dragOutside,p=e.handleOffset||!1!==e.handleOffset,h=null;switch(p){case"center":h=!0;break;case"topleft":case"top-left":h=!1}var m=void 0;function b(t,e,i,o){var s=t.clientX,r=t.clientY;function a(t,e,i){return Math.max(e,Math.min(t,i))}if(e){var l=e.getBoundingClientRect();if(s-=l.left,r-=l.top,i&&(s-=i[0],r-=i[1]),o&&(s=a(s,0,l.width),r=a(r,0,l.height)),e!==n){var u=null!==h?h:"circle"===e.nodeName||"ellipse"===e.nodeName;u&&(s-=l.width/2,r-=l.height/2)}}return c?[Math.round(s),Math.round(r)]:[s,r]}function f(t){t.preventDefault(),u||t.stopPropagation()}function w(t){var e=void 0;if(e=o?o instanceof Element?o.contains(t.target)?o:null:t.target.closest(o):{}){f(t);var i=o&&p?b(t,e):[0,0],s=b(t,n,i);m={target:e,mouseOffset:i,startPos:s,actuallyDragged:!1},r&&r(e,s)}}function g(t){if(m){f(t);var e=m.startPos,i=b(t,n,m.mouseOffset,!d);m.actuallyDragged=m.actuallyDragged||e[0]!==i[0]||e[1]!==i[1],s(m.target,i,e)}}function y(t,e){if(m){if(a||l){var i=!m.actuallyDragged,o=i?m.startPos:b(t,n,m.mouseOffset,!d);l&&i&&!e&&l(m.target,o),a&&a(m.target,o,m.startPos,e||i&&l)}m=null}}function v(t,e){y(E(t),e)}function _(t,e,i){t.addEventListener(e,i)}function k(t){return void 0!==t.buttons?1===t.buttons:1===t.which}function x(t,e){1===t.touches.length?e(E(t)):y(t,!0)}function E(t){var e=t.targetTouches[0];return e||(e=t.changedTouches[0]),e.preventDefault=t.preventDefault.bind(t),e.stopPropagation=t.stopPropagation.bind(t),e}_(n,"mousedown",function(t){k(t)?w(t):y(t,!0)}),_(n,"touchstart",function(t){return x(t,w)}),_(t,"mousemove",function(t){m&&(k(t)?g(t):y(t))}),_(t,"touchmove",function(t){return x(t,g)}),_(n,"mouseup",function(t){m&&!k(t)&&y(t)}),_(n,"touchend",function(t){return v(t)}),_(n,"touchcancel",function(t){return v(t,!0)})}}()},function(t,e){var i,n,o=t.exports={};function s(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function a(t){if(i===setTimeout)return setTimeout(t,0);if((i===s||!i)&&setTimeout)return i=setTimeout,setTimeout(t,0);try{return i(t,0)}catch(e){try{return i.call(null,t,0)}catch(e){return i.call(this,t,0)}}}!function(){try{i="function"==typeof setTimeout?setTimeout:s}catch(t){i=s}try{n="function"==typeof clearTimeout?clearTimeout:r}catch(t){n=r}}();var l,u=[],c=!1,d=-1;function p(){c&&l&&(c=!1,l.length?u=l.concat(u):d=-1,u.length&&h())}function h(){if(!c){var t=a(p);c=!0;for(var e=u.length;e;){for(l=u,u=[];++d<e;)l&&l[d].run();d=-1,e=u.length}l=null,c=!1,function(t){if(n===clearTimeout)return clearTimeout(t);if((n===r||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(t);try{n(t)}catch(e){try{return n.call(null,t)}catch(e){return n.call(this,t)}}}(t)}}function m(t,e){this.fun=t,this.array=e}function b(){}o.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)e[i-1]=arguments[i];u.push(new m(t,e)),1!==u.length||c||a(h)},m.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=b,o.addListener=b,o.once=b,o.off=b,o.removeListener=b,o.removeAllListeners=b,o.emit=b,o.prependListener=b,o.prependOnceListener=b,o.listeners=function(t){return[]},o.binding=function(t){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(t){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(t,e,i){"use strict";(function(t){for(
22
  /**!
23
  * @fileOverview Kickass library to create and place poppers near their reference elements.
24
  * @version 1.15.0
43
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
44
  * SOFTWARE.
45
  */
46
+ var i="undefined"!=typeof window&&"undefined"!=typeof document,n=["Edge","Trident","Firefox"],o=0,s=0;s<n.length;s+=1)if(i&&navigator.userAgent.indexOf(n[s])>=0){o=1;break}var r=i&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},o))}};function a(t){return t&&"[object Function]"==={}.toString.call(t)}function l(t,e){if(1!==t.nodeType)return[];var i=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?i[e]:i}function u(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function c(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=l(t),i=e.overflow,n=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(i+o+n)?t:c(u(t))}var d=i&&!(!window.MSInputMethodContext||!document.documentMode),p=i&&/MSIE 10/.test(navigator.userAgent);function h(t){return 11===t?d:10===t?p:d||p}function m(t){if(!t)return document.documentElement;for(var e=h(10)?document.body:null,i=t.offsetParent||null;i===e&&t.nextElementSibling;)i=(t=t.nextElementSibling).offsetParent;var n=i&&i.nodeName;return n&&"BODY"!==n&&"HTML"!==n?-1!==["TH","TD","TABLE"].indexOf(i.nodeName)&&"static"===l(i,"position")?m(i):i:t?t.ownerDocument.documentElement:document.documentElement}function b(t){return null!==t.parentNode?b(t.parentNode):t}function f(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var i=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,n=i?t:e,o=i?e:t,s=document.createRange();s.setStart(n,0),s.setEnd(o,0);var r,a,l=s.commonAncestorContainer;if(t!==l&&e!==l||n.contains(o))return"BODY"===(a=(r=l).nodeName)||"HTML"!==a&&m(r.firstElementChild)!==r?m(l):l;var u=b(t);return u.host?f(u.host,e):f(t,b(e).host)}function w(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",i=t.nodeName;if("BODY"===i||"HTML"===i){var n=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||n)[e]}return t[e]}function g(t,e){var i="x"===e?"Left":"Top",n="Left"===i?"Right":"Bottom";return parseFloat(t["border"+i+"Width"],10)+parseFloat(t["border"+n+"Width"],10)}function y(t,e,i,n){return Math.max(e["offset"+t],e["scroll"+t],i["client"+t],i["offset"+t],i["scroll"+t],h(10)?parseInt(i["offset"+t])+parseInt(n["margin"+("Height"===t?"Top":"Left")])+parseInt(n["margin"+("Height"===t?"Bottom":"Right")]):0)}function v(t){var e=t.body,i=t.documentElement,n=h(10)&&getComputedStyle(i);return{height:y("Height",e,i,n),width:y("Width",e,i,n)}}var _=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},k=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),e}}(),x=function(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t},E=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t};function B(t){return E({},t,{right:t.left+t.width,bottom:t.top+t.height})}function z(t){var e={};try{if(h(10)){e=t.getBoundingClientRect();var i=w(t,"top"),n=w(t,"left");e.top+=i,e.left+=n,e.bottom+=i,e.right+=n}else e=t.getBoundingClientRect()}catch(t){}var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},s="HTML"===t.nodeName?v(t.ownerDocument):{},r=s.width||t.clientWidth||o.right-o.left,a=s.height||t.clientHeight||o.bottom-o.top,u=t.offsetWidth-r,c=t.offsetHeight-a;if(u||c){var d=l(t);u-=g(d,"x"),c-=g(d,"y"),o.width-=u,o.height-=c}return B(o)}function C(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=h(10),o="HTML"===e.nodeName,s=z(t),r=z(e),a=c(t),u=l(e),d=parseFloat(u.borderTopWidth,10),p=parseFloat(u.borderLeftWidth,10);i&&o&&(r.top=Math.max(r.top,0),r.left=Math.max(r.left,0));var m=B({top:s.top-r.top-d,left:s.left-r.left-p,width:s.width,height:s.height});if(m.marginTop=0,m.marginLeft=0,!n&&o){var b=parseFloat(u.marginTop,10),f=parseFloat(u.marginLeft,10);m.top-=d-b,m.bottom-=d-b,m.left-=p-f,m.right-=p-f,m.marginTop=b,m.marginLeft=f}return(n&&!i?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(m=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=w(e,"top"),o=w(e,"left"),s=i?-1:1;return t.top+=n*s,t.bottom+=n*s,t.left+=o*s,t.right+=o*s,t}(m,e)),m}function j(t){if(!t||!t.parentElement||h())return document.documentElement;for(var e=t.parentElement;e&&"none"===l(e,"transform");)e=e.parentElement;return e||document.documentElement}function S(t,e,i,n){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],s={top:0,left:0},r=o?j(t):f(t,e);if("viewport"===n)s=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=t.ownerDocument.documentElement,n=C(t,i),o=Math.max(i.clientWidth,window.innerWidth||0),s=Math.max(i.clientHeight,window.innerHeight||0),r=e?0:w(i),a=e?0:w(i,"left");return B({top:r-n.top+n.marginTop,left:a-n.left+n.marginLeft,width:o,height:s})}(r,o);else{var a=void 0;"scrollParent"===n?"BODY"===(a=c(u(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===n?t.ownerDocument.documentElement:n;var d=C(a,r,o);if("HTML"!==a.nodeName||function t(e){var i=e.nodeName;if("BODY"===i||"HTML"===i)return!1;if("fixed"===l(e,"position"))return!0;var n=u(e);return!!n&&t(n)}(r))s=d;else{var p=v(t.ownerDocument),h=p.height,m=p.width;s.top+=d.top-d.marginTop,s.bottom=h+d.top,s.left+=d.left-d.marginLeft,s.right=m+d.left}}var b="number"==typeof(i=i||0);return s.left+=b?i:i.left||0,s.top+=b?i:i.top||0,s.right-=b?i:i.right||0,s.bottom-=b?i:i.bottom||0,s}function L(t,e,i,n,o){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var r=S(i,n,s,o),a={top:{width:r.width,height:e.top-r.top},right:{width:r.right-e.right,height:r.height},bottom:{width:r.width,height:r.bottom-e.bottom},left:{width:e.left-r.left,height:r.height}},l=Object.keys(a).map(function(t){return E({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),u=l.filter(function(t){var e=t.width,n=t.height;return e>=i.clientWidth&&n>=i.clientHeight}),c=u.length>0?u[0].key:l[0].key,d=t.split("-")[1];return c+(d?"-"+d:"")}function O(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return C(i,n?j(e):f(e,i),n)}function T(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),i=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),n=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+n,height:t.offsetHeight+i}}function N(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function A(t,e,i){i=i.split("-")[0];var n=T(t),o={width:n.width,height:n.height},s=-1!==["right","left"].indexOf(i),r=s?"top":"left",a=s?"left":"top",l=s?"height":"width",u=s?"width":"height";return o[r]=e[r]+e[l]/2-n[l]/2,o[a]=i===a?e[a]-n[u]:e[N(a)],o}function I(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function M(t,e,i){return(void 0===i?t:t.slice(0,function(t,e,i){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===i});var n=I(t,function(t){return t[e]===i});return t.indexOf(n)}(t,"name",i))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var i=t.function||t.fn;t.enabled&&a(i)&&(e.offsets.popper=B(e.offsets.popper),e.offsets.reference=B(e.offsets.reference),e=i(e,t))}),e}function q(t,e){return t.some(function(t){var i=t.name;return t.enabled&&i===e})}function H(t){for(var e=[!1,"ms","Webkit","Moz","O"],i=t.charAt(0).toUpperCase()+t.slice(1),n=0;n<e.length;n++){var o=e[n],s=o?""+o+i:t;if(void 0!==document.body.style[s])return s}return null}function P(t){var e=t.ownerDocument;return e?e.defaultView:window}function D(t,e,i,n){i.updateBound=n,P(t).addEventListener("resize",i.updateBound,{passive:!0});var o=c(t);return function t(e,i,n,o){var s="BODY"===e.nodeName,r=s?e.ownerDocument.defaultView:e;r.addEventListener(i,n,{passive:!0}),s||t(c(r.parentNode),i,n,o),o.push(r)}(o,"scroll",i.updateBound,i.scrollParents),i.scrollElement=o,i.eventsEnabled=!0,i}function F(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,P(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function R(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function W(t,e){Object.keys(e).forEach(function(i){var n="";-1!==["width","height","top","right","bottom","left"].indexOf(i)&&R(e[i])&&(n="px"),t.style[i]=e[i]+n})}var U=i&&/Firefox/i.test(navigator.userAgent);function G(t,e,i){var n=I(t,function(t){return t.name===e}),o=!!n&&t.some(function(t){return t.name===i&&t.enabled&&t.order<n.order});if(!o){var s="`"+e+"`",r="`"+i+"`";console.warn(r+" modifier is required by "+s+" modifier in order to work, be sure to include it before "+s+"!")}return o}var Q=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],$=Q.slice(3);function Y(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=$.indexOf(t),n=$.slice(i+1).concat($.slice(0,i));return e?n.reverse():n}var V={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function X(t,e,i,n){var o=[0,0],s=-1!==["right","left"].indexOf(n),r=t.split(/(\+|\-)/).map(function(t){return t.trim()}),a=r.indexOf(I(r,function(t){return-1!==t.search(/,|\s/)}));r[a]&&-1===r[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,u=-1!==a?[r.slice(0,a).concat([r[a].split(l)[0]]),[r[a].split(l)[1]].concat(r.slice(a+1))]:[r];return(u=u.map(function(t,n){var o=(1===n?!s:s)?"height":"width",r=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,r=!0,t):r?(t[t.length-1]+=e,r=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,i,n){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),s=+o[1],r=o[2];if(!s)return t;if(0===r.indexOf("%")){var a=void 0;switch(r){case"%p":a=i;break;case"%":case"%r":default:a=n}return B(a)[e]/100*s}if("vh"===r||"vw"===r)return("vh"===r?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*s;return s}(t,o,e,i)})})).forEach(function(t,e){t.forEach(function(i,n){R(i)&&(o[e]+=i*("-"===t[n-1]?-1:1))})}),o}var K={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,i=e.split("-")[0],n=e.split("-")[1];if(n){var o=t.offsets,s=o.reference,r=o.popper,a=-1!==["bottom","top"].indexOf(i),l=a?"left":"top",u=a?"width":"height",c={start:x({},l,s[l]),end:x({},l,s[l]+s[u]-r[u])};t.offsets.popper=E({},r,c[n])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var i=e.offset,n=t.placement,o=t.offsets,s=o.popper,r=o.reference,a=n.split("-")[0],l=void 0;return l=R(+i)?[+i,0]:X(i,s,r,a),"left"===a?(s.top+=l[0],s.left-=l[1]):"right"===a?(s.top+=l[0],s.left+=l[1]):"top"===a?(s.left+=l[0],s.top-=l[1]):"bottom"===a&&(s.left+=l[0],s.top+=l[1]),t.popper=s,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var i=e.boundariesElement||m(t.instance.popper);t.instance.reference===i&&(i=m(i));var n=H("transform"),o=t.instance.popper.style,s=o.top,r=o.left,a=o[n];o.top="",o.left="",o[n]="";var l=S(t.instance.popper,t.instance.reference,e.padding,i,t.positionFixed);o.top=s,o.left=r,o[n]=a,e.boundaries=l;var u=e.priority,c=t.offsets.popper,d={primary:function(t){var i=c[t];return c[t]<l[t]&&!e.escapeWithReference&&(i=Math.max(c[t],l[t])),x({},t,i)},secondary:function(t){var i="right"===t?"left":"top",n=c[i];return c[t]>l[t]&&!e.escapeWithReference&&(n=Math.min(c[i],l[t]-("right"===t?c.width:c.height))),x({},i,n)}};return u.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";c=E({},c,d[e](t))}),t.offsets.popper=c,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,i=e.popper,n=e.reference,o=t.placement.split("-")[0],s=Math.floor,r=-1!==["top","bottom"].indexOf(o),a=r?"right":"bottom",l=r?"left":"top",u=r?"width":"height";return i[a]<s(n[l])&&(t.offsets.popper[l]=s(n[l])-i[u]),i[l]>s(n[a])&&(t.offsets.popper[l]=s(n[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var i;if(!G(t.instance.modifiers,"arrow","keepTogether"))return t;var n=e.element;if("string"==typeof n){if(!(n=t.instance.popper.querySelector(n)))return t}else if(!t.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],s=t.offsets,r=s.popper,a=s.reference,u=-1!==["left","right"].indexOf(o),c=u?"height":"width",d=u?"Top":"Left",p=d.toLowerCase(),h=u?"left":"top",m=u?"bottom":"right",b=T(n)[c];a[m]-b<r[p]&&(t.offsets.popper[p]-=r[p]-(a[m]-b)),a[p]+b>r[m]&&(t.offsets.popper[p]+=a[p]+b-r[m]),t.offsets.popper=B(t.offsets.popper);var f=a[p]+a[c]/2-b/2,w=l(t.instance.popper),g=parseFloat(w["margin"+d],10),y=parseFloat(w["border"+d+"Width"],10),v=f-t.offsets.popper[p]-g-y;return v=Math.max(Math.min(r[c]-b,v),0),t.arrowElement=n,t.offsets.arrow=(x(i={},p,Math.round(v)),x(i,h,""),i),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(q(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var i=S(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),n=t.placement.split("-")[0],o=N(n),s=t.placement.split("-")[1]||"",r=[];switch(e.behavior){case V.FLIP:r=[n,o];break;case V.CLOCKWISE:r=Y(n);break;case V.COUNTERCLOCKWISE:r=Y(n,!0);break;default:r=e.behavior}return r.forEach(function(a,l){if(n!==a||r.length===l+1)return t;n=t.placement.split("-")[0],o=N(n);var u=t.offsets.popper,c=t.offsets.reference,d=Math.floor,p="left"===n&&d(u.right)>d(c.left)||"right"===n&&d(u.left)<d(c.right)||"top"===n&&d(u.bottom)>d(c.top)||"bottom"===n&&d(u.top)<d(c.bottom),h=d(u.left)<d(i.left),m=d(u.right)>d(i.right),b=d(u.top)<d(i.top),f=d(u.bottom)>d(i.bottom),w="left"===n&&h||"right"===n&&m||"top"===n&&b||"bottom"===n&&f,g=-1!==["top","bottom"].indexOf(n),y=!!e.flipVariations&&(g&&"start"===s&&h||g&&"end"===s&&m||!g&&"start"===s&&b||!g&&"end"===s&&f),v=!!e.flipVariationsByContent&&(g&&"start"===s&&m||g&&"end"===s&&h||!g&&"start"===s&&f||!g&&"end"===s&&b),_=y||v;(p||w||_)&&(t.flipped=!0,(p||w)&&(n=r[l+1]),_&&(s=function(t){return"end"===t?"start":"start"===t?"end":t}(s)),t.placement=n+(s?"-"+s:""),t.offsets.popper=E({},t.offsets.popper,A(t.instance.popper,t.offsets.reference,t.placement)),t=M(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,i=e.split("-")[0],n=t.offsets,o=n.popper,s=n.reference,r=-1!==["left","right"].indexOf(i),a=-1===["top","left"].indexOf(i);return o[r?"left":"top"]=s[i]-(a?o[r?"width":"height"]:0),t.placement=N(e),t.offsets.popper=B(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!G(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,i=I(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<i.top||e.left>i.right||e.top>i.bottom||e.right<i.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var i=e.x,n=e.y,o=t.offsets.popper,s=I(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==s&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var r=void 0!==s?s:e.gpuAcceleration,a=m(t.instance.popper),l=z(a),u={position:o.position},c=function(t,e){var i=t.offsets,n=i.popper,o=i.reference,s=Math.round,r=Math.floor,a=function(t){return t},l=s(o.width),u=s(n.width),c=-1!==["left","right"].indexOf(t.placement),d=-1!==t.placement.indexOf("-"),p=e?c||d||l%2==u%2?s:r:a,h=e?s:a;return{left:p(l%2==1&&u%2==1&&!d&&e?n.left-1:n.left),top:h(n.top),bottom:h(n.bottom),right:p(n.right)}}(t,window.devicePixelRatio<2||!U),d="bottom"===i?"top":"bottom",p="right"===n?"left":"right",h=H("transform"),b=void 0,f=void 0;if(f="bottom"===d?"HTML"===a.nodeName?-a.clientHeight+c.bottom:-l.height+c.bottom:c.top,b="right"===p?"HTML"===a.nodeName?-a.clientWidth+c.right:-l.width+c.right:c.left,r&&h)u[h]="translate3d("+b+"px, "+f+"px, 0)",u[d]=0,u[p]=0,u.willChange="transform";else{var w="bottom"===d?-1:1,g="right"===p?-1:1;u[d]=f*w,u[p]=b*g,u.willChange=d+", "+p}var y={"x-placement":t.placement};return t.attributes=E({},y,t.attributes),t.styles=E({},u,t.styles),t.arrowStyles=E({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,i;return W(t.instance.popper,t.styles),e=t.instance.popper,i=t.attributes,Object.keys(i).forEach(function(t){!1!==i[t]?e.setAttribute(t,i[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&W(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,i,n,o){var s=O(o,e,t,i.positionFixed),r=L(i.placement,s,e,t,i.modifiers.flip.boundariesElement,i.modifiers.flip.padding);return e.setAttribute("x-placement",r),W(e,{position:i.positionFixed?"fixed":"absolute"}),i},gpuAcceleration:void 0}}},J=function(){function t(e,i){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};_(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=r(this.update.bind(this)),this.options=E({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=i&&i.jquery?i[0]:i,this.options.modifiers={},Object.keys(E({},t.Defaults.modifiers,o.modifiers)).forEach(function(e){n.options.modifiers[e]=E({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return E({name:t},n.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&a(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)}),this.update();var s=this.options.eventsEnabled;s&&this.enableEventListeners(),this.state.eventsEnabled=s}return k(t,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=O(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=L(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=A(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=M(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,q(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[H("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=D(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return F.call(this)}}]),t}();J.Utils=("undefined"!=typeof window?window:t).PopperUtils,J.placements=Q,J.Defaults=K,e.a=J}).call(this,i(1))},function(t,e,i){
47
  /*!
48
  * @sphinxxxx/color-conversion v2.2.1
49
  * https://github.com/Sphinxxxx/color-conversion
51
  * Copyright 2017-2019 Joudee (https://github.com/Joudee), Andreas Borgen (https://github.com/Sphinxxxx), Michael Jackson (https://github.com/mjackson)
52
  * Released under the ISC license.
53
  */
54
+ t.exports=function(){"use strict";var t=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},e=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),e}}(),i=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var i=[],n=!0,o=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(n=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);n=!0);}catch(t){o=!0,s=t}finally{try{!n&&a.return&&a.return()}finally{if(o)throw s}}return i}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")};String.prototype.startsWith=String.prototype.startsWith||function(t){return 0===this.indexOf(t)},String.prototype.padStart=String.prototype.padStart||function(t,e){for(var i=this;i.length<t;)i=e+i;return i};var n={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function o(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=e>0?t.toFixed(e).replace(/0+$/,"").replace(/\.$/,""):t.toString();return i||"0"}return function(){function s(e,n,o,r){t(this,s);var a=this;if(void 0===e);else if(Array.isArray(e))this.rgba=e;else if(void 0===o){var l=e&&""+e;l&&function(t){if(t.startsWith("hsl")){var e=t.match(/([\-\d\.e]+)/g).map(Number),n=i(e,4),o=n[0],r=n[1],l=n[2],u=n[3];void 0===u&&(u=1),o/=360,r/=100,l/=100,a.hsla=[o,r,l,u]}else if(t.startsWith("rgb")){var c=t.match(/([\-\d\.e]+)/g).map(Number),d=i(c,4),p=d[0],h=d[1],m=d[2],b=d[3];void 0===b&&(b=1),a.rgba=[p,h,m,b]}else t.startsWith("#")?a.rgba=s.hexToRgb(t):a.rgba=s.nameToRgb(t)||s.hexToRgb(t)}(l.toLowerCase())}else this.rgba=[e,n,o,void 0===r?1:r]}return e(s,[{key:"printRGB",value:function(t){var e=t?this.rgba:this.rgba.slice(0,3),i=e.map(function(t,e){return o(t,3===e?3:0)});return t?"rgba("+i+")":"rgb("+i+")"}},{key:"printHSL",value:function(t){var e=[360,100,100,1],i=["","%","%",""],n=t?this.hsla:this.hsla.slice(0,3),s=n.map(function(t,n){return o(t*e[n],3===n?3:1)+i[n]});return t?"hsla("+s+")":"hsl("+s+")"}},{key:"printHex",value:function(t){var e=this.hex;return t?e:e.substring(0,7)}},{key:"rgba",get:function(){if(this._rgba)return this._rgba;if(!this._hsla)throw new Error("No color is set");return this._rgba=s.hslToRgb(this._hsla)},set:function(t){3===t.length&&(t[3]=1),this._rgba=t,this._hsla=null}},{key:"rgbString",get:function(){return this.printRGB()}},{key:"rgbaString",get:function(){return this.printRGB(!0)}},{key:"hsla",get:function(){if(this._hsla)return this._hsla;if(!this._rgba)throw new Error("No color is set");return this._hsla=s.rgbToHsl(this._rgba)},set:function(t){3===t.length&&(t[3]=1),this._hsla=t,this._rgba=null}},{key:"hslString",get:function(){return this.printHSL()}},{key:"hslaString",get:function(){return this.printHSL(!0)}},{key:"hex",get:function(){var t=this.rgba,e=t.map(function(t,e){return e<3?t.toString(16):Math.round(255*t).toString(16)});return"#"+e.map(function(t){return t.padStart(2,"0")}).join("")},set:function(t){this.rgba=s.hexToRgb(t)}}],[{key:"hexToRgb",value:function(t){var e=(t.startsWith("#")?t.slice(1):t).replace(/^(\w{3})$/,"$1F").replace(/^(\w)(\w)(\w)(\w)$/,"$1$1$2$2$3$3$4$4").replace(/^(\w{6})$/,"$1FF");if(!e.match(/^([0-9a-fA-F]{8})$/))throw new Error("Unknown hex color; "+t);var i=e.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1).map(function(t){return parseInt(t,16)});return i[3]=i[3]/255,i}},{key:"nameToRgb",value:function(t){var e=n[t];if(e)return s.hexToRgb(e)}},{key:"rgbToHsl",value:function(t){var e=i(t,4),n=e[0],o=e[1],s=e[2],r=e[3];n/=255,o/=255,s/=255;var a=Math.max(n,o,s),l=Math.min(n,o,s),u=void 0,c=void 0,d=(a+l)/2;if(a===l)u=c=0;else{var p=a-l;switch(c=d>.5?p/(2-a-l):p/(a+l),a){case n:u=(o-s)/p+(o<s?6:0);break;case o:u=(s-n)/p+2;break;case s:u=(n-o)/p+4}u/=6}return[u,c,d,r]}},{key:"hslToRgb",value:function(t){var e=i(t,4),n=e[0],o=e[1],s=e[2],r=e[3],a=void 0,l=void 0,u=void 0;if(0===o)a=l=u=s;else{var c=function(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t},d=s<.5?s*(1+o):s+o-s*o,p=2*s-d;a=c(p,d,n+1/3),l=c(p,d,n),u=c(p,d,n-1/3)}var h=[255*a,255*l,255*u].map(Math.round);return h[3]=r,h}}]),s}()}()},function(t,e){},function(t,e,i){"use strict";(function(e){
55
  /*!
56
  * The buffer module from node.js, for the browser.
57
  *
58
  * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
59
  * @license MIT
60
  */
61
+ function n(t,e){if(t===e)return 0;for(var i=t.length,n=e.length,o=0,s=Math.min(i,n);o<s;++o)if(t[o]!==e[o]){i=t[o],n=e[o];break}return i<n?-1:n<i?1:0}function o(t){return e.Buffer&&"function"==typeof e.Buffer.isBuffer?e.Buffer.isBuffer(t):!(null==t||!t._isBuffer)}var s=i(8),r=Object.prototype.hasOwnProperty,a=Array.prototype.slice,l="foo"===function(){}.name;function u(t){return Object.prototype.toString.call(t)}function c(t){return!o(t)&&("function"==typeof e.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):!!t&&(t instanceof DataView||!!(t.buffer&&t.buffer instanceof ArrayBuffer))))}var d=t.exports=w,p=/\s*function\s+([^\(\s]*)\s*/;function h(t){if(s.isFunction(t)){if(l)return t.name;var e=t.toString().match(p);return e&&e[1]}}function m(t,e){return"string"==typeof t?t.length<e?t:t.slice(0,e):t}function b(t){if(l||!s.isFunction(t))return s.inspect(t);var e=h(t);return"[Function"+(e?": "+e:"")+"]"}function f(t,e,i,n,o){throw new d.AssertionError({message:i,actual:t,expected:e,operator:n,stackStartFunction:o})}function w(t,e){t||f(t,!0,e,"==",d.ok)}function g(t,e,i,r){if(t===e)return!0;if(o(t)&&o(e))return 0===n(t,e);if(s.isDate(t)&&s.isDate(e))return t.getTime()===e.getTime();if(s.isRegExp(t)&&s.isRegExp(e))return t.source===e.source&&t.global===e.global&&t.multiline===e.multiline&&t.lastIndex===e.lastIndex&&t.ignoreCase===e.ignoreCase;if(null!==t&&"object"==typeof t||null!==e&&"object"==typeof e){if(c(t)&&c(e)&&u(t)===u(e)&&!(t instanceof Float32Array||t instanceof Float64Array))return 0===n(new Uint8Array(t.buffer),new Uint8Array(e.buffer));if(o(t)!==o(e))return!1;var l=(r=r||{actual:[],expected:[]}).actual.indexOf(t);return-1!==l&&l===r.expected.indexOf(e)||(r.actual.push(t),r.expected.push(e),function(t,e,i,n){if(null==t||null==e)return!1;if(s.isPrimitive(t)||s.isPrimitive(e))return t===e;if(i&&Object.getPrototypeOf(t)!==Object.getPrototypeOf(e))return!1;var o=y(t),r=y(e);if(o&&!r||!o&&r)return!1;if(o)return t=a.call(t),e=a.call(e),g(t,e,i);var l,u,c=k(t),d=k(e);if(c.length!==d.length)return!1;for(c.sort(),d.sort(),u=c.length-1;u>=0;u--)if(c[u]!==d[u])return!1;for(u=c.length-1;u>=0;u--)if(l=c[u],!g(t[l],e[l],i,n))return!1;return!0}(t,e,i,r))}return i?t===e:t==e}function y(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function v(t,e){if(!t||!e)return!1;if("[object RegExp]"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(t){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function _(t,e,i,n){var o;if("function"!=typeof e)throw new TypeError('"block" argument must be a function');"string"==typeof i&&(n=i,i=null),o=function(t){var e;try{t()}catch(t){e=t}return e}(e),n=(i&&i.name?" ("+i.name+").":".")+(n?" "+n:"."),t&&!o&&f(o,i,"Missing expected exception"+n);var r="string"==typeof n,a=!t&&o&&!i;if((!t&&s.isError(o)&&r&&v(o,i)||a)&&f(o,i,"Got unwanted exception"+n),t&&o&&i&&!v(o,i)||!t&&o)throw o}d.AssertionError=function(t){var e;this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=m(b((e=this).actual),128)+" "+e.operator+" "+m(b(e.expected),128),this.generatedMessage=!0);var i=t.stackStartFunction||f;if(Error.captureStackTrace)Error.captureStackTrace(this,i);else{var n=new Error;if(n.stack){var o=n.stack,s=h(i),r=o.indexOf("\n"+s);if(r>=0){var a=o.indexOf("\n",r+1);o=o.substring(a+1)}this.stack=o}}},s.inherits(d.AssertionError,Error),d.fail=f,d.ok=w,d.equal=function(t,e,i){t!=e&&f(t,e,i,"==",d.equal)},d.notEqual=function(t,e,i){t==e&&f(t,e,i,"!=",d.notEqual)},d.deepEqual=function(t,e,i){g(t,e,!1)||f(t,e,i,"deepEqual",d.deepEqual)},d.deepStrictEqual=function(t,e,i){g(t,e,!0)||f(t,e,i,"deepStrictEqual",d.deepStrictEqual)},d.notDeepEqual=function(t,e,i){g(t,e,!1)&&f(t,e,i,"notDeepEqual",d.notDeepEqual)},d.notDeepStrictEqual=function t(e,i,n){g(e,i,!0)&&f(e,i,n,"notDeepStrictEqual",t)},d.strictEqual=function(t,e,i){t!==e&&f(t,e,i,"===",d.strictEqual)},d.notStrictEqual=function(t,e,i){t===e&&f(t,e,i,"!==",d.notStrictEqual)},d.throws=function(t,e,i){_(!0,t,e,i)},d.doesNotThrow=function(t,e,i){_(!1,t,e,i)},d.ifError=function(t){if(t)throw t};var k=Object.keys||function(t){var e=[];for(var i in t)r.call(t,i)&&e.push(i);return e}}).call(this,i(1))},function(t,e,i){(function(t){var n=Object.getOwnPropertyDescriptors||function(t){for(var e=Object.keys(t),i={},n=0;n<e.length;n++)i[e[n]]=Object.getOwnPropertyDescriptor(t,e[n]);return i},o=/%[sdj%]/g;e.format=function(t){if(!w(t)){for(var e=[],i=0;i<arguments.length;i++)e.push(a(arguments[i]));return e.join(" ")}i=1;for(var n=arguments,s=n.length,r=String(t).replace(o,function(t){if("%%"===t)return"%";if(i>=s)return t;switch(t){case"%s":return String(n[i++]);case"%d":return Number(n[i++]);case"%j":try{return JSON.stringify(n[i++])}catch(t){return"[Circular]"}default:return t}}),l=n[i];i<s;l=n[++i])b(l)||!v(l)?r+=" "+l:r+=" "+a(l);return r},e.deprecate=function(i,n){if(void 0!==t&&!0===t.noDeprecation)return i;if(void 0===t)return function(){return e.deprecate(i,n).apply(this,arguments)};var o=!1;return function(){if(!o){if(t.throwDeprecation)throw new Error(n);t.traceDeprecation?console.trace(n):console.error(n),o=!0}return i.apply(this,arguments)}};var s,r={};function a(t,i){var n={seen:[],stylize:u};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),m(i)?n.showHidden=i:i&&e._extend(n,i),g(n.showHidden)&&(n.showHidden=!1),g(n.depth)&&(n.depth=2),g(n.colors)&&(n.colors=!1),g(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=l),c(n,t,n.depth)}function l(t,e){var i=a.styles[e];return i?"["+a.colors[i][0]+"m"+t+"["+a.colors[i][1]+"m":t}function u(t,e){return t}function c(t,i,n){if(t.customInspect&&i&&x(i.inspect)&&i.inspect!==e.inspect&&(!i.constructor||i.constructor.prototype!==i)){var o=i.inspect(n,t);return w(o)||(o=c(t,o,n)),o}var s=function(t,e){if(g(e))return t.stylize("undefined","undefined");if(w(e)){var i="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(i,"string")}if(f(e))return t.stylize(""+e,"number");if(m(e))return t.stylize(""+e,"boolean");if(b(e))return t.stylize("null","null")}(t,i);if(s)return s;var r=Object.keys(i),a=function(t){var e={};return t.forEach(function(t,i){e[t]=!0}),e}(r);if(t.showHidden&&(r=Object.getOwnPropertyNames(i)),k(i)&&(r.indexOf("message")>=0||r.indexOf("description")>=0))return d(i);if(0===r.length){if(x(i)){var l=i.name?": "+i.name:"";return t.stylize("[Function"+l+"]","special")}if(y(i))return t.stylize(RegExp.prototype.toString.call(i),"regexp");if(_(i))return t.stylize(Date.prototype.toString.call(i),"date");if(k(i))return d(i)}var u,v="",E=!1,B=["{","}"];(h(i)&&(E=!0,B=["[","]"]),x(i))&&(v=" [Function"+(i.name?": "+i.name:"")+"]");return y(i)&&(v=" "+RegExp.prototype.toString.call(i)),_(i)&&(v=" "+Date.prototype.toUTCString.call(i)),k(i)&&(v=" "+d(i)),0!==r.length||E&&0!=i.length?n<0?y(i)?t.stylize(RegExp.prototype.toString.call(i),"regexp"):t.stylize("[Object]","special"):(t.seen.push(i),u=E?function(t,e,i,n,o){for(var s=[],r=0,a=e.length;r<a;++r)C(e,String(r))?s.push(p(t,e,i,n,String(r),!0)):s.push("");return o.forEach(function(o){o.match(/^\d+$/)||s.push(p(t,e,i,n,o,!0))}),s}(t,i,n,a,r):r.map(function(e){return p(t,i,n,a,e,E)}),t.seen.pop(),function(t,e,i){if(t.reduce(function(t,e){return 0,e.indexOf("\n")>=0&&0,t+e.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60)return i[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+i[1];return i[0]+e+" "+t.join(", ")+" "+i[1]}(u,v,B)):B[0]+v+B[1]}function d(t){return"["+Error.prototype.toString.call(t)+"]"}function p(t,e,i,n,o,s){var r,a,l;if((l=Object.getOwnPropertyDescriptor(e,o)||{value:e[o]}).get?a=l.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):l.set&&(a=t.stylize("[Setter]","special")),C(n,o)||(r="["+o+"]"),a||(t.seen.indexOf(l.value)<0?(a=b(i)?c(t,l.value,null):c(t,l.value,i-1)).indexOf("\n")>-1&&(a=s?a.split("\n").map(function(t){return" "+t}).join("\n").substr(2):"\n"+a.split("\n").map(function(t){return" "+t}).join("\n")):a=t.stylize("[Circular]","special")),g(r)){if(s&&o.match(/^\d+$/))return a;(r=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(r=r.substr(1,r.length-2),r=t.stylize(r,"name")):(r=r.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),r=t.stylize(r,"string"))}return r+": "+a}function h(t){return Array.isArray(t)}function m(t){return"boolean"==typeof t}function b(t){return null===t}function f(t){return"number"==typeof t}function w(t){return"string"==typeof t}function g(t){return void 0===t}function y(t){return v(t)&&"[object RegExp]"===E(t)}function v(t){return"object"==typeof t&&null!==t}function _(t){return v(t)&&"[object Date]"===E(t)}function k(t){return v(t)&&("[object Error]"===E(t)||t instanceof Error)}function x(t){return"function"==typeof t}function E(t){return Object.prototype.toString.call(t)}function B(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(i){if(g(s)&&(s=t.env.NODE_DEBUG||""),i=i.toUpperCase(),!r[i])if(new RegExp("\\b"+i+"\\b","i").test(s)){var n=t.pid;r[i]=function(){var t=e.format.apply(e,arguments);console.error("%s %d: %s",i,n,t)}}else r[i]=function(){};return r[i]},e.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.isArray=h,e.isBoolean=m,e.isNull=b,e.isNullOrUndefined=function(t){return null==t},e.isNumber=f,e.isString=w,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=g,e.isRegExp=y,e.isObject=v,e.isDate=_,e.isError=k,e.isFunction=x,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=i(9);var z=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function C(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){var t,i;console.log("%s - %s",(t=new Date,i=[B(t.getHours()),B(t.getMinutes()),B(t.getSeconds())].join(":"),[t.getDate(),z[t.getMonth()],i].join(" ")),e.format.apply(e,arguments))},e.inherits=i(10),e._extend=function(t,e){if(!e||!v(e))return t;for(var i=Object.keys(e),n=i.length;n--;)t[i[n]]=e[i[n]];return t};var j="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function S(t,e){if(!t){var i=new Error("Promise was rejected with a falsy value");i.reason=t,t=i}return e(t)}e.promisify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');if(j&&t[j]){var e;if("function"!=typeof(e=t[j]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(e,j,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var e,i,n=new Promise(function(t,n){e=t,i=n}),o=[],s=0;s<arguments.length;s++)o.push(arguments[s]);o.push(function(t,n){t?i(t):e(n)});try{t.apply(this,o)}catch(t){i(t)}return n}return Object.setPrototypeOf(e,Object.getPrototypeOf(t)),j&&Object.defineProperty(e,j,{value:e,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(e,n(t))},e.promisify.custom=j,e.callbackify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');function i(){for(var i=[],n=0;n<arguments.length;n++)i.push(arguments[n]);var o=i.pop();if("function"!=typeof o)throw new TypeError("The last argument must be of type Function");var s=this,r=function(){return o.apply(s,arguments)};e.apply(this,i).then(function(e){t.nextTick(r,null,e)},function(e){t.nextTick(S,e,r)})}return Object.setPrototypeOf(i,Object.getPrototypeOf(e)),Object.defineProperties(i,n(e)),i}}).call(this,i(3))},function(t,e){t.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},function(t,e){"function"==typeof Object.create?t.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}},function(t,e,i){(function(t,e){!function(t,i){"use strict";if(!t.setImmediate){var n,o,s,r,a,l=1,u={},c=!1,d=t.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(t);p=p&&p.setTimeout?p:t,"[object process]"==={}.toString.call(t.process)?n=function(t){e.nextTick(function(){m(t)})}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,i=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=i,e}}()?t.MessageChannel?((s=new MessageChannel).port1.onmessage=function(t){m(t.data)},n=function(t){s.port2.postMessage(t)}):d&&"onreadystatechange"in d.createElement("script")?(o=d.documentElement,n=function(t){var e=d.createElement("script");e.onreadystatechange=function(){m(t),e.onreadystatechange=null,o.removeChild(e),e=null},o.appendChild(e)}):n=function(t){setTimeout(m,0,t)}:(r="setImmediate$"+Math.random()+"$",a=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(r)&&m(+e.data.slice(r.length))},t.addEventListener?t.addEventListener("message",a,!1):t.attachEvent("onmessage",a),n=function(e){t.postMessage(r+e,"*")}),p.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),i=0;i<e.length;i++)e[i]=arguments[i+1];var o={callback:t,args:e};return u[l]=o,n(l),l++},p.clearImmediate=h}function h(t){delete u[t]}function m(t){if(c)setTimeout(m,0,t);else{var e=u[t];if(e){c=!0;try{!function(t){var e=t.callback,n=t.args;switch(n.length){case 0:e();break;case 1:e(n[0]);break;case 2:e(n[0],n[1]);break;case 3:e(n[0],n[1],n[2]);break;default:e.apply(i,n)}}(e)}finally{h(t),c=!1}}}}}("undefined"==typeof self?void 0===t?this:t:self)}).call(this,i(1),i(3))},function(t,e,i){var n;n=function(){function t(t){this._targetElement=t,this._introItems=[],this._options={nextLabel:"Next &rarr;",prevLabel:"&larr; Back",skipLabel:"Skip",doneLabel:"Done",hidePrev:!1,hideNext:!1,tooltipPosition:"bottom",tooltipClass:"",highlightClass:"",exitOnEsc:!0,exitOnOverlayClick:!0,showStepNumbers:!0,keyboardNavigation:!0,showButtons:!0,showBullets:!0,showProgress:!1,scrollToElement:!0,scrollTo:"element",scrollPadding:30,overlayOpacity:.8,positionPrecedence:["bottom","top","right","left"],disableInteraction:!1,helperElementPadding:10,hintPosition:"top-middle",hintButtonLabel:"Got it",hintAnimation:!0,buttonClass:"introjs-button"}}function e(t,e){var r=t.querySelectorAll("*[data-intro]"),l=[];if(this._options.steps)w(this._options.steps,function(t){var e=o(t);if(e.step=l.length+1,"string"==typeof e.element&&(e.element=document.querySelector(e.element)),void 0===e.element||null===e.element){var i=document.querySelector(".introjsFloatingElement");null===i&&((i=document.createElement("div")).className="introjsFloatingElement",document.body.appendChild(i)),e.element=i,e.position="floating"}e.scrollTo=e.scrollTo||this._options.scrollTo,void 0===e.disableInteraction&&(e.disableInteraction=this._options.disableInteraction),null!==e.element&&l.push(e)}.bind(this));else{var u;if(r.length<1)return!1;w(r,function(t){if((!e||t.getAttribute("data-intro-group")===e)&&"none"!==t.style.display){var i=parseInt(t.getAttribute("data-step"),10);u=void 0!==t.getAttribute("data-disable-interaction")?!!t.getAttribute("data-disable-interaction"):this._options.disableInteraction,i>0&&(l[i-1]={element:t,intro:t.getAttribute("data-intro"),step:parseInt(t.getAttribute("data-step"),10),tooltipClass:t.getAttribute("data-tooltipclass"),highlightClass:t.getAttribute("data-highlightclass"),position:t.getAttribute("data-position")||this._options.tooltipPosition,scrollTo:t.getAttribute("data-scrollto")||this._options.scrollTo,disableInteraction:u})}}.bind(this));var c=0;w(r,function(t){if((!e||t.getAttribute("data-intro-group")===e)&&null===t.getAttribute("data-step")){for(;void 0!==l[c];)c++;u=void 0!==t.getAttribute("data-disable-interaction")?!!t.getAttribute("data-disable-interaction"):this._options.disableInteraction,l[c]={element:t,intro:t.getAttribute("data-intro"),step:c+1,tooltipClass:t.getAttribute("data-tooltipclass"),highlightClass:t.getAttribute("data-highlightclass"),position:t.getAttribute("data-position")||this._options.tooltipPosition,scrollTo:t.getAttribute("data-scrollto")||this._options.scrollTo,disableInteraction:u}}}.bind(this))}for(var d=[],p=0;p<l.length;p++)l[p]&&d.push(l[p]);return(l=d).sort(function(t,e){return t.step-e.step}),this._introItems=l,function(t){var e=document.createElement("div"),i="",n=this;if(e.className="introjs-overlay",t.tagName&&"body"!==t.tagName.toLowerCase()){var o=I(t);o&&(i+="width: "+o.width+"px; height:"+o.height+"px; top:"+o.top+"px;left: "+o.left+"px;",e.style.cssText=i)}else i+="top: 0;bottom: 0; left: 0;right: 0;position: fixed;",e.style.cssText=i;return t.appendChild(e),e.onclick=function(){!0===n._options.exitOnOverlayClick&&a.call(n,t)},window.setTimeout(function(){i+="opacity: "+n._options.overlayOpacity.toString()+";",e.style.cssText=i},10),!0}.call(this,t)&&(s.call(this),this._options.keyboardNavigation&&v.on(window,"keydown",n,this,!0),v.on(window,"resize",i,this,!0)),!1}function i(){this.refresh.call(this)}function n(t){var e=null===t.code?t.which:t.code;if(null===e&&(e=null===t.charCode?t.keyCode:t.charCode),"Escape"!==e&&27!==e||!0!==this._options.exitOnEsc){if("ArrowLeft"===e||37===e)r.call(this);else if("ArrowRight"===e||39===e)s.call(this);else if("Enter"===e||13===e){var i=t.target||t.srcElement;i&&i.className.match("introjs-prevbutton")?r.call(this):i&&i.className.match("introjs-skipbutton")?(this._introItems.length-1===this._currentStep&&"function"==typeof this._introCompleteCallback&&this._introCompleteCallback.call(this),a.call(this,this._targetElement)):i&&i.getAttribute("data-stepnumber")?i.click():s.call(this),t.preventDefault?t.preventDefault():t.returnValue=!1}}else a.call(this,this._targetElement)}function o(t){if(null===t||"object"!=typeof t||void 0!==t.nodeType)return t;var e={};for(var i in t)void 0!==window.jQuery&&t[i]instanceof window.jQuery?e[i]=t[i]:e[i]=o(t[i]);return e}function s(){this._direction="forward",void 0!==this._currentStepNumber&&w(this._introItems,function(t,e){t.step===this._currentStepNumber&&(this._currentStep=e-1,this._currentStepNumber=void 0)}.bind(this)),void 0===this._currentStep?this._currentStep=0:++this._currentStep;var t=this._introItems[this._currentStep],e=!0;return void 0!==this._introBeforeChangeCallback&&(e=this._introBeforeChangeCallback.call(this,t.element)),!1===e?(--this._currentStep,!1):this._introItems.length<=this._currentStep?("function"==typeof this._introCompleteCallback&&this._introCompleteCallback.call(this),void a.call(this,this._targetElement)):void m.call(this,t)}function r(){if(this._direction="backward",0===this._currentStep)return!1;--this._currentStep;var t=this._introItems[this._currentStep],e=!0;if(void 0!==this._introBeforeChangeCallback&&(e=this._introBeforeChangeCallback.call(this,t.element)),!1===e)return++this._currentStep,!1;m.call(this,t)}function a(t,e){var o=!0;if(void 0!==this._introBeforeExitCallback&&(o=this._introBeforeExitCallback.call(this)),e||!1!==o){var s=t.querySelectorAll(".introjs-overlay");s&&s.length&&w(s,function(t){t.style.opacity=0,window.setTimeout(function(){this.parentNode&&this.parentNode.removeChild(this)}.bind(t),500)}.bind(this));var r=t.querySelector(".introjs-helperLayer");r&&r.parentNode.removeChild(r);var a=t.querySelector(".introjs-tooltipReferenceLayer");a&&a.parentNode.removeChild(a);var l=t.querySelector(".introjs-disableInteraction");l&&l.parentNode.removeChild(l);var u=document.querySelector(".introjsFloatingElement");u&&u.parentNode.removeChild(u),f(),w(document.querySelectorAll(".introjs-fixParent"),function(t){k(t,/introjs-fixParent/g)}),v.off(window,"keydown",n,this,!0),v.off(window,"resize",i,this,!0),void 0!==this._introExitCallback&&this._introExitCallback.call(this),this._currentStep=void 0}}function l(t,e,i,n,o){var s,r,a,l,p,h="";if(o=o||!1,e.style.top=null,e.style.right=null,e.style.bottom=null,e.style.left=null,e.style.marginLeft=null,e.style.marginTop=null,i.style.display="inherit",null!=n&&(n.style.top=null,n.style.left=null),this._introItems[this._currentStep])switch(h="string"==typeof(s=this._introItems[this._currentStep]).tooltipClass?s.tooltipClass:this._options.tooltipClass,e.className=("introjs-tooltip "+h).replace(/^\s+|\s+$/g,""),e.setAttribute("role","dialog"),"floating"!==(p=this._introItems[this._currentStep].position)&&(p=function(t,e,i){var n=this._options.positionPrecedence.slice(),o=B(),s=I(e).height+10,r=I(e).width+20,a=t.getBoundingClientRect(),l="floating";a.bottom+s+s>o.height&&d(n,"bottom");a.top-s<0&&d(n,"top");a.right+r>o.width&&d(n,"right");a.left-r<0&&d(n,"left");var u=(c=i||"",p=c.indexOf("-"),-1!==p?c.substr(p):"");var c,p;i&&(i=i.split("-")[0]);n.length&&(l="auto"!==i&&n.indexOf(i)>-1?i:n[0]);-1!==["top","bottom"].indexOf(l)&&(l+=function(t,e,i,n){var o=e/2,s=Math.min(i.width,window.screen.width),r=["-left-aligned","-middle-aligned","-right-aligned"],a="";s-t<e&&d(r,"-left-aligned");(t<o||s-t<o)&&d(r,"-middle-aligned");t<e&&d(r,"-right-aligned");a=r.length?-1!==r.indexOf(n)?n:r[0]:"-middle-aligned";return a}(a.left,r,o,u));return l}.call(this,t,e,p)),a=I(t),r=I(e),l=B(),_(e,"introjs-"+p),p){case"top-right-aligned":i.className="introjs-arrow bottom-right";var m=0;c(a,m,r,e),e.style.bottom=a.height+20+"px";break;case"top-middle-aligned":i.className="introjs-arrow bottom-middle";var b=a.width/2-r.width/2;o&&(b+=5),c(a,b,r,e)&&(e.style.right=null,u(a,b,r,l,e)),e.style.bottom=a.height+20+"px";break;case"top-left-aligned":case"top":i.className="introjs-arrow bottom",u(a,o?0:15,r,l,e),e.style.bottom=a.height+20+"px";break;case"right":e.style.left=a.width+20+"px",a.top+r.height>l.height?(i.className="introjs-arrow left-bottom",e.style.top="-"+(r.height-a.height-20)+"px"):i.className="introjs-arrow left";break;case"left":o||!0!==this._options.showStepNumbers||(e.style.top="15px"),a.top+r.height>l.height?(e.style.top="-"+(r.height-a.height-20)+"px",i.className="introjs-arrow right-bottom"):i.className="introjs-arrow right",e.style.right=a.width+20+"px";break;case"floating":i.style.display="none",e.style.left="50%",e.style.top="50%",e.style.marginLeft="-"+r.width/2+"px",e.style.marginTop="-"+r.height/2+"px",null!=n&&(n.style.left="-"+(r.width/2+18)+"px",n.style.top="-"+(r.height/2+18)+"px");break;case"bottom-right-aligned":i.className="introjs-arrow top-right",c(a,m=0,r,e),e.style.top=a.height+20+"px";break;case"bottom-middle-aligned":i.className="introjs-arrow top-middle",b=a.width/2-r.width/2,o&&(b+=5),c(a,b,r,e)&&(e.style.right=null,u(a,b,r,l,e)),e.style.top=a.height+20+"px";break;default:i.className="introjs-arrow top",u(a,0,r,l,e),e.style.top=a.height+20+"px"}}function u(t,e,i,n,o){return t.left+e+i.width>n.width?(o.style.left=n.width-i.width-t.left+"px",!1):(o.style.left=e+"px",!0)}function c(t,e,i,n){return t.left+t.width-e-i.width<0?(n.style.left=-t.left+"px",!1):(n.style.right=e+"px",!0)}function d(t,e){t.indexOf(e)>-1&&t.splice(t.indexOf(e),1)}function p(t){if(t){if(!this._introItems[this._currentStep])return;var e=this._introItems[this._currentStep],i=I(e.element),n=this._options.helperElementPadding;E(e.element)?_(t,"introjs-fixedTooltip"):k(t,"introjs-fixedTooltip"),"floating"===e.position&&(n=0),t.style.cssText="width: "+(i.width+n)+"px; height:"+(i.height+n)+"px; top:"+(i.top-n/2)+"px;left: "+(i.left-n/2)+"px;"}}function h(t){t.setAttribute("role","button"),t.tabIndex=0}function m(t){void 0!==this._introChangeCallback&&this._introChangeCallback.call(this,t.element);var e,i,n,o,u=this,c=document.querySelector(".introjs-helperLayer"),d=document.querySelector(".introjs-tooltipReferenceLayer"),m="introjs-helperLayer";if("string"==typeof t.highlightClass&&(m+=" "+t.highlightClass),"string"==typeof this._options.highlightClass&&(m+=" "+this._options.highlightClass),null!==c){var g=d.querySelector(".introjs-helperNumberLayer"),y=d.querySelector(".introjs-tooltiptext"),v=d.querySelector(".introjs-arrow"),E=d.querySelector(".introjs-tooltip");if(n=d.querySelector(".introjs-skipbutton"),i=d.querySelector(".introjs-prevbutton"),e=d.querySelector(".introjs-nextbutton"),c.className=m,E.style.opacity=0,E.style.display="none",null!==g){var B=this._introItems[t.step-2>=0?t.step-2:0];(null!==B&&"forward"===this._direction&&"floating"===B.position||"backward"===this._direction&&"floating"===t.position)&&(g.style.opacity=0)}(o=M(t.element))!==document.body&&q(o,t.element),p.call(u,c),p.call(u,d),w(document.querySelectorAll(".introjs-fixParent"),function(t){k(t,/introjs-fixParent/g)}),f(),u._lastShowElementTimer&&window.clearTimeout(u._lastShowElementTimer),u._lastShowElementTimer=window.setTimeout(function(){null!==g&&(g.innerHTML=t.step),y.innerHTML=t.intro,E.style.display="block",l.call(u,t.element,E,v,g),u._options.showBullets&&(d.querySelector(".introjs-bullets li > a.active").className="",d.querySelector('.introjs-bullets li > a[data-stepnumber="'+t.step+'"]').className="active"),d.querySelector(".introjs-progress .introjs-progressbar").style.cssText="width:"+H.call(u)+"%;",d.querySelector(".introjs-progress .introjs-progressbar").setAttribute("aria-valuenow",H.call(u)),E.style.opacity=1,g&&(g.style.opacity=1),null!=n&&/introjs-donebutton/gi.test(n.className)?n.focus():null!=e&&e.focus(),b.call(u,t.scrollTo,t,y)},350)}else{var z=document.createElement("div"),C=document.createElement("div"),j=document.createElement("div"),S=document.createElement("div"),L=document.createElement("div"),O=document.createElement("div"),T=document.createElement("div"),N=document.createElement("div");z.className=m,C.className="introjs-tooltipReferenceLayer",(o=M(t.element))!==document.body&&q(o,t.element),p.call(u,z),p.call(u,C),this._targetElement.appendChild(z),this._targetElement.appendChild(C),j.className="introjs-arrow",L.className="introjs-tooltiptext",L.innerHTML=t.intro,O.className="introjs-bullets",!1===this._options.showBullets&&(O.style.display="none");var A=document.createElement("ul");A.setAttribute("role","tablist");var I=function(){u.goToStep(this.getAttribute("data-stepnumber"))};w(this._introItems,function(e,i){var n=document.createElement("li"),o=document.createElement("a");n.setAttribute("role","presentation"),o.setAttribute("role","tab"),o.onclick=I,i===t.step-1&&(o.className="active"),h(o),o.innerHTML="&nbsp;",o.setAttribute("data-stepnumber",e.step),n.appendChild(o),A.appendChild(n)}),O.appendChild(A),T.className="introjs-progress",!1===this._options.showProgress&&(T.style.display="none");var P=document.createElement("div");P.className="introjs-progressbar",P.setAttribute("role","progress"),P.setAttribute("aria-valuemin",0),P.setAttribute("aria-valuemax",100),P.setAttribute("aria-valuenow",H.call(this)),P.style.cssText="width:"+H.call(this)+"%;",T.appendChild(P),N.className="introjs-tooltipbuttons",!1===this._options.showButtons&&(N.style.display="none"),S.className="introjs-tooltip",S.appendChild(L),S.appendChild(O),S.appendChild(T);var D=document.createElement("span");!0===this._options.showStepNumbers&&(D.className="introjs-helperNumberLayer",D.innerHTML=t.step,C.appendChild(D)),S.appendChild(j),C.appendChild(S),(e=document.createElement("a")).onclick=function(){u._introItems.length-1!==u._currentStep&&s.call(u)},h(e),e.innerHTML=this._options.nextLabel,(i=document.createElement("a")).onclick=function(){0!==u._currentStep&&r.call(u)},h(i),i.innerHTML=this._options.prevLabel,(n=document.createElement("a")).className=this._options.buttonClass+" introjs-skipbutton ",h(n),n.innerHTML=this._options.skipLabel,n.onclick=function(){u._introItems.length-1===u._currentStep&&"function"==typeof u._introCompleteCallback&&u._introCompleteCallback.call(u),u._introItems.length-1!==u._currentStep&&"function"==typeof u._introExitCallback&&u._introExitCallback.call(u),"function"==typeof u._introSkipCallback&&u._introSkipCallback.call(u),a.call(u,u._targetElement)},N.appendChild(n),this._introItems.length>1&&(N.appendChild(i),N.appendChild(e)),S.appendChild(N),l.call(u,t.element,S,j,D),b.call(this,t.scrollTo,t,S)}var F=u._targetElement.querySelector(".introjs-disableInteraction");F&&F.parentNode.removeChild(F),t.disableInteraction&&function(){var t=document.querySelector(".introjs-disableInteraction");null===t&&((t=document.createElement("div")).className="introjs-disableInteraction",this._targetElement.appendChild(t)),p.call(this,t)}.call(u),0===this._currentStep&&this._introItems.length>1?(null!=n&&(n.className=this._options.buttonClass+" introjs-skipbutton"),null!=e&&(e.className=this._options.buttonClass+" introjs-nextbutton"),!0===this._options.hidePrev?(null!=i&&(i.className=this._options.buttonClass+" introjs-prevbutton introjs-hidden"),null!=e&&_(e,"introjs-fullbutton")):null!=i&&(i.className=this._options.buttonClass+" introjs-prevbutton introjs-disabled"),null!=n&&(n.innerHTML=this._options.skipLabel)):this._introItems.length-1===this._currentStep||1===this._introItems.length?(null!=n&&(n.innerHTML=this._options.doneLabel,_(n,"introjs-donebutton")),null!=i&&(i.className=this._options.buttonClass+" introjs-prevbutton"),!0===this._options.hideNext?(null!=e&&(e.className=this._options.buttonClass+" introjs-nextbutton introjs-hidden"),null!=i&&_(i,"introjs-fullbutton")):null!=e&&(e.className=this._options.buttonClass+" introjs-nextbutton introjs-disabled")):(null!=n&&(n.className=this._options.buttonClass+" introjs-skipbutton"),null!=i&&(i.className=this._options.buttonClass+" introjs-prevbutton"),null!=e&&(e.className=this._options.buttonClass+" introjs-nextbutton"),null!=n&&(n.innerHTML=this._options.skipLabel)),i.setAttribute("role","button"),e.setAttribute("role","button"),n.setAttribute("role","button"),null!=e&&e.focus(),function(t){var e;if(t.element instanceof SVGElement)for(e=t.element.parentNode;null!==t.element.parentNode&&e.tagName&&"body"!==e.tagName.toLowerCase();)"svg"===e.tagName.toLowerCase()&&_(e,"introjs-showElement introjs-relativePosition"),e=e.parentNode;_(t.element,"introjs-showElement");var i=x(t.element,"position");"absolute"!==i&&"relative"!==i&&"fixed"!==i&&_(t.element,"introjs-relativePosition");e=t.element.parentNode;for(;null!==e&&e.tagName&&"body"!==e.tagName.toLowerCase();){var n=x(e,"z-index"),o=parseFloat(x(e,"opacity")),s=x(e,"transform")||x(e,"-webkit-transform")||x(e,"-moz-transform")||x(e,"-ms-transform")||x(e,"-o-transform");(/[0-9]+/.test(n)||o<1||"none"!==s&&void 0!==s)&&_(e,"introjs-fixParent"),e=e.parentNode}}(t),void 0!==this._introAfterChangeCallback&&this._introAfterChangeCallback.call(this,t.element)}function b(t,e,i){var n;if("off"!==t&&(this._options.scrollToElement&&(n="tooltip"===t?i.getBoundingClientRect():e.element.getBoundingClientRect(),!function(t){var e=t.getBoundingClientRect();return e.top>=0&&e.left>=0&&e.bottom+80<=window.innerHeight&&e.right<=window.innerWidth}(e.element)))){var o=B().height;n.bottom-(n.bottom-n.top)<0||e.element.clientHeight>o?window.scrollBy(0,n.top-(o/2-n.height/2)-this._options.scrollPadding):window.scrollBy(0,n.top-(o/2-n.height/2)+this._options.scrollPadding)}}function f(){w(document.querySelectorAll(".introjs-showElement"),function(t){k(t,/introjs-[a-zA-Z]+/g)})}function w(t,e,i){if(t)for(var n=0,o=t.length;n<o;n++)e(t[n],n);"function"==typeof i&&i()}var g,y=(g={},function(t,e){return g[e=e||"introjs-stamp"]=g[e]||0,void 0===t[e]&&(t[e]=g[e]++),t[e]}),v=function(){return new function(){var t="introjs_event";this._id=function(t,e,i,n){return e+y(i)+(n?"_"+y(n):"")},this.on=function(e,i,n,o,s){var r=this._id.apply(this,arguments),a=function(t){return n.call(o||e,t||window.event)};"addEventListener"in e?e.addEventListener(i,a,s):"attachEvent"in e&&e.attachEvent("on"+i,a),e[t]=e[t]||{},e[t][r]=a},this.off=function(e,i,n,o,s){var r=this._id.apply(this,arguments),a=e[t]&&e[t][r];a&&("removeEventListener"in e?e.removeEventListener(i,a,s):"detachEvent"in e&&e.detachEvent("on"+i,a),e[t][r]=null)}}}();function _(t,e){if(t instanceof SVGElement){var i=t.getAttribute("class")||"";t.setAttribute("class",i+" "+e)}else{if(void 0!==t.classList)w(e.split(" "),function(e){t.classList.add(e)});else t.className.match(e)||(t.className+=" "+e)}}function k(t,e){if(t instanceof SVGElement){var i=t.getAttribute("class")||"";t.setAttribute("class",i.replace(e,"").replace(/^\s+|\s+$/g,""))}else t.className=t.className.replace(e,"").replace(/^\s+|\s+$/g,"")}function x(t,e){var i="";return t.currentStyle?i=t.currentStyle[e]:document.defaultView&&document.defaultView.getComputedStyle&&(i=document.defaultView.getComputedStyle(t,null).getPropertyValue(e)),i&&i.toLowerCase?i.toLowerCase():i}function E(t){var e=t.parentNode;return!(!e||"HTML"===e.nodeName)&&("fixed"===x(t,"position")||E(e))}function B(){if(void 0!==window.innerWidth)return{width:window.innerWidth,height:window.innerHeight};var t=document.documentElement;return{width:t.clientWidth,height:t.clientHeight}}function z(){var t=document.querySelector(".introjs-hintReference");if(t){var e=t.getAttribute("data-step");return t.parentNode.removeChild(t),e}}function C(t){if(this._introItems=[],this._options.hints)w(this._options.hints,function(t){var e=o(t);"string"==typeof e.element&&(e.element=document.querySelector(e.element)),e.hintPosition=e.hintPosition||this._options.hintPosition,e.hintAnimation=e.hintAnimation||this._options.hintAnimation,null!==e.element&&this._introItems.push(e)}.bind(this));else{var e=t.querySelectorAll("*[data-hint]");if(!e||!e.length)return!1;w(e,function(t){var e=t.getAttribute("data-hintanimation");e=e?"true"===e:this._options.hintAnimation,this._introItems.push({element:t,hint:t.getAttribute("data-hint"),hintPosition:t.getAttribute("data-hintposition")||this._options.hintPosition,hintAnimation:e,tooltipClass:t.getAttribute("data-tooltipclass"),position:t.getAttribute("data-position")||this._options.tooltipPosition})}.bind(this))}(function(){var t=this,e=document.querySelector(".introjs-hints");null===e&&((e=document.createElement("div")).className="introjs-hints");w(this._introItems,function(i,n){if(!document.querySelector('.introjs-hint[data-step="'+n+'"]')){var o=document.createElement("a");h(o),o.onclick=function(e){return function(i){var n=i||window.event;n.stopPropagation&&n.stopPropagation(),null!==n.cancelBubble&&(n.cancelBubble=!0),A.call(t,e)}}(n),o.className="introjs-hint",i.hintAnimation||_(o,"introjs-hint-no-anim"),E(i.element)&&_(o,"introjs-fixedhint");var s=document.createElement("div");s.className="introjs-hint-dot";var r=document.createElement("div");r.className="introjs-hint-pulse",o.appendChild(s),o.appendChild(r),o.setAttribute("data-step",n),i.targetElement=i.element,i.element=o,N.call(this,i.hintPosition,o,i.targetElement),e.appendChild(o)}}.bind(this)),document.body.appendChild(e),void 0!==this._hintsAddedCallback&&this._hintsAddedCallback.call(this)}).call(this),v.on(document,"click",z,this,!1),v.on(window,"resize",j,this,!0)}function j(){w(this._introItems,function(t){void 0!==t.targetElement&&N.call(this,t.hintPosition,t.element,t.targetElement)}.bind(this))}function S(t){var e=document.querySelector(".introjs-hints");return e?e.querySelectorAll(t):[]}function L(t){var e=S('.introjs-hint[data-step="'+t+'"]')[0];z.call(this),e&&_(e,"introjs-hidehint"),void 0!==this._hintCloseCallback&&this._hintCloseCallback.call(this,t)}function O(t){var e=S('.introjs-hint[data-step="'+t+'"]')[0];e&&k(e,/introjs-hidehint/g)}function T(t){var e=S('.introjs-hint[data-step="'+t+'"]')[0];e&&e.parentNode.removeChild(e)}function N(t,e,i){var n=I.call(this,i);switch(t){default:case"top-left":e.style.left=n.left+"px",e.style.top=n.top+"px";break;case"top-right":e.style.left=n.left+n.width-20+"px",e.style.top=n.top+"px";break;case"bottom-left":e.style.left=n.left+"px",e.style.top=n.top+n.height-20+"px";break;case"bottom-right":e.style.left=n.left+n.width-20+"px",e.style.top=n.top+n.height-20+"px";break;case"middle-left":e.style.left=n.left+"px",e.style.top=n.top+(n.height-20)/2+"px";break;case"middle-right":e.style.left=n.left+n.width-20+"px",e.style.top=n.top+(n.height-20)/2+"px";break;case"middle-middle":e.style.left=n.left+(n.width-20)/2+"px",e.style.top=n.top+(n.height-20)/2+"px";break;case"bottom-middle":e.style.left=n.left+(n.width-20)/2+"px",e.style.top=n.top+n.height-20+"px";break;case"top-middle":e.style.left=n.left+(n.width-20)/2+"px",e.style.top=n.top+"px"}}function A(t){var e=document.querySelector('.introjs-hint[data-step="'+t+'"]'),i=this._introItems[t];void 0!==this._hintClickCallback&&this._hintClickCallback.call(this,e,i,t);var n=z.call(this);if(parseInt(n,10)!==t){var o=document.createElement("div"),s=document.createElement("div"),r=document.createElement("div"),a=document.createElement("div");o.className="introjs-tooltip",o.onclick=function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0},s.className="introjs-tooltiptext";var u=document.createElement("p");u.innerHTML=i.hint;var c=document.createElement("a");c.className=this._options.buttonClass,c.setAttribute("role","button"),c.innerHTML=this._options.hintButtonLabel,c.onclick=L.bind(this,t),s.appendChild(u),s.appendChild(c),r.className="introjs-arrow",o.appendChild(r),o.appendChild(s),this._currentStep=e.getAttribute("data-step"),a.className="introjs-tooltipReferenceLayer introjs-hintReference",a.setAttribute("data-step",e.getAttribute("data-step")),p.call(this,a),a.appendChild(o),document.body.appendChild(a),l.call(this,e,o,r,null,!0)}}function I(t){var e=document.body,i=document.documentElement,n=window.pageYOffset||i.scrollTop||e.scrollTop,o=window.pageXOffset||i.scrollLeft||e.scrollLeft,s=t.getBoundingClientRect();return{top:s.top+n,width:s.width,height:s.height,left:s.left+o}}function M(t){var e=window.getComputedStyle(t),i="absolute"===e.position,n=/(auto|scroll)/;if("fixed"===e.position)return document.body;for(var o=t;o=o.parentElement;)if(e=window.getComputedStyle(o),(!i||"static"!==e.position)&&n.test(e.overflow+e.overflowY+e.overflowX))return o;return document.body}function q(t,e){t.scrollTop=e.offsetTop-t.offsetTop}function H(){return parseInt(this._currentStep+1,10)/this._introItems.length*100}var P=function(e){var i;if("object"==typeof e)i=new t(e);else if("string"==typeof e){var n=document.querySelector(e);if(!n)throw new Error("There is no element with given selector.");i=new t(n)}else i=new t(document.body);return P.instances[y(i,"introjs-instance")]=i,i};return P.version="2.9.3",P.instances={},P.fn=t.prototype={clone:function(){return new t(this)},setOption:function(t,e){return this._options[t]=e,this},setOptions:function(t){return this._options=function(t,e){var i,n={};for(i in t)n[i]=t[i];for(i in e)n[i]=e[i];return n}(this._options,t),this},start:function(t){return e.call(this,this._targetElement,t),this},goToStep:function(t){return function(t){this._currentStep=t-2,void 0!==this._introItems&&s.call(this)}.call(this,t),this},addStep:function(t){return this._options.steps||(this._options.steps=[]),this._options.steps.push(t),this},addSteps:function(t){if(t.length){for(var e=0;e<t.length;e++)this.addStep(t[e]);return this}},goToStepNumber:function(t){return function(t){this._currentStepNumber=t,void 0!==this._introItems&&s.call(this)}.call(this,t),this},nextStep:function(){return s.call(this),this},previousStep:function(){return r.call(this),this},exit:function(t){return a.call(this,this._targetElement,t),this},refresh:function(){return function(){if(p.call(this,document.querySelector(".introjs-helperLayer")),p.call(this,document.querySelector(".introjs-tooltipReferenceLayer")),p.call(this,document.querySelector(".introjs-disableInteraction")),void 0!==this._currentStep&&null!==this._currentStep){var t=document.querySelector(".introjs-helperNumberLayer"),e=document.querySelector(".introjs-arrow"),i=document.querySelector(".introjs-tooltip");l.call(this,this._introItems[this._currentStep].element,i,e,t)}return j.call(this),this}.call(this),this},onbeforechange:function(t){if("function"!=typeof t)throw new Error("Provided callback for onbeforechange was not a function");return this._introBeforeChangeCallback=t,this},onchange:function(t){if("function"!=typeof t)throw new Error("Provided callback for onchange was not a function.");return this._introChangeCallback=t,this},onafterchange:function(t){if("function"!=typeof t)throw new Error("Provided callback for onafterchange was not a function");return this._introAfterChangeCallback=t,this},oncomplete:function(t){if("function"!=typeof t)throw new Error("Provided callback for oncomplete was not a function.");return this._introCompleteCallback=t,this},onhintsadded:function(t){if("function"!=typeof t)throw new Error("Provided callback for onhintsadded was not a function.");return this._hintsAddedCallback=t,this},onhintclick:function(t){if("function"!=typeof t)throw new Error("Provided callback for onhintclick was not a function.");return this._hintClickCallback=t,this},onhintclose:function(t){if("function"!=typeof t)throw new Error("Provided callback for onhintclose was not a function.");return this._hintCloseCallback=t,this},onexit:function(t){if("function"!=typeof t)throw new Error("Provided callback for onexit was not a function.");return this._introExitCallback=t,this},onskip:function(t){if("function"!=typeof t)throw new Error("Provided callback for onskip was not a function.");return this._introSkipCallback=t,this},onbeforeexit:function(t){if("function"!=typeof t)throw new Error("Provided callback for onbeforeexit was not a function.");return this._introBeforeExitCallback=t,this},addHints:function(){return C.call(this,this._targetElement),this},hideHint:function(t){return L.call(this,t),this},hideHints:function(){return function(){w(S(".introjs-hint"),function(t){L.call(this,t.getAttribute("data-step"))}.bind(this))}.call(this),this},showHint:function(t){return O.call(this,t),this},showHints:function(){return function(){var t=S(".introjs-hint");t&&t.length?w(t,function(t){O.call(this,t.getAttribute("data-step"))}.bind(this)):C.call(this,this._targetElement)}.call(this),this},removeHints:function(){return function(){w(S(".introjs-hint"),function(t){T.call(this,t.getAttribute("data-step"))}.bind(this))}.call(this),this},removeHint:function(t){return T.call(this,t),this},showHintDialog:function(t){return A.call(this,t),this}},P},t.exports=n(),t.exports.introJs=function(){return console.warn('Deprecated: please use require("intro.js") directly, instead of the introJs method of the function'),n().apply(this,arguments)}},function(t,e){
62
+ /*!
63
+ Chosen, a Select Box Enhancer for jQuery and Prototype
64
+ by Patrick Filler for Harvest, http://getharvest.com
65
+
66
+ Version 1.8.7
67
+ Full source at https://github.com/harvesthq/chosen
68
+ Copyright (c) 2011-2018 Harvest http://getharvest.com
69
+
70
+ MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
71
+ This file is generated by `grunt build`, do not edit it by hand.
72
+ */
73
+ (function(){var t,e,i,n,o=function(t,e){return function(){return t.apply(e,arguments)}},s={}.hasOwnProperty;(n=function(){function t(){this.options_index=0,this.parsed=[]}return t.prototype.add_node=function(t){return"OPTGROUP"===t.nodeName.toUpperCase()?this.add_group(t):this.add_option(t)},t.prototype.add_group=function(t){var e,i,n,o,s,r;for(e=this.parsed.length,this.parsed.push({array_index:e,group:!0,label:t.label,title:t.title?t.title:void 0,children:0,disabled:t.disabled,classes:t.className}),r=[],i=0,n=(s=t.childNodes).length;i<n;i++)o=s[i],r.push(this.add_option(o,e,t.disabled));return r},t.prototype.add_option=function(t,e,i){if("OPTION"===t.nodeName.toUpperCase())return""!==t.text?(null!=e&&(this.parsed[e].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:t.value,text:t.text,html:t.innerHTML,title:t.title?t.title:void 0,selected:t.selected,disabled:!0===i?i:t.disabled,group_array_index:e,group_label:null!=e?this.parsed[e].label:null,classes:t.className,style:t.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},t}()).select_to_array=function(t){var e,i,o,s,r;for(s=new n,i=0,o=(r=t.childNodes).length;i<o;i++)e=r[i],s.add_node(e);return s.parsed},e=function(){function t(e,i){this.form_field=e,this.options=null!=i?i:{},this.label_click_handler=o(this.label_click_handler,this),t.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return t.prototype.set_default_values=function(){var t;return this.click_test_action=(t=this,function(e){return t.test_active_click(e)}),this.activate_action=function(t){return function(e){return t.activate_field(e)}}(this),this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.is_rtl=this.options.rtl||/\bchosen-rtl\b/.test(this.form_field.className),this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY,this.case_sensitive_search=this.options.case_sensitive_search||!1,this.hide_results_on_select=null==this.options.hide_results_on_select||this.options.hide_results_on_select},t.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||t.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||t.default_single_text,this.default_text=this.escape_html(this.default_text),this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||t.default_no_result_text},t.prototype.choice_label=function(t){return this.include_group_label_in_selected&&null!=t.group_label?"<b class='group-name'>"+this.escape_html(t.group_label)+"</b>"+t.html:t.html},t.prototype.mouse_enter=function(){return this.mouse_on_container=!0},t.prototype.mouse_leave=function(){return this.mouse_on_container=!1},t.prototype.input_focus=function(t){if(this.is_multiple){if(!this.active_field)return setTimeout((e=this,function(){return e.container_mousedown()}),50)}else if(!this.active_field)return this.activate_field();var e},t.prototype.input_blur=function(t){if(!this.mouse_on_container)return this.active_field=!1,setTimeout((e=this,function(){return e.blur_test()}),100);var e},t.prototype.label_click_handler=function(t){return this.is_multiple?this.container_mousedown(t):this.activate_field()},t.prototype.results_option_build=function(t){var e,i,n,o,s,r,a;for(e="",a=0,o=0,s=(r=this.results_data).length;o<s&&(n="",""!==(n=(i=r[o]).group?this.result_add_group(i):this.result_add_option(i))&&(a++,e+=n),(null!=t?t.first:void 0)&&(i.selected&&this.is_multiple?this.choice_build(i):i.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(i))),!(a>=this.max_shown_results));o++);return e},t.prototype.result_add_option=function(t){var e,i;return t.search_match&&this.include_option_in_results(t)?(e=[],t.disabled||t.selected&&this.is_multiple||e.push("active-result"),!t.disabled||t.selected&&this.is_multiple||e.push("disabled-result"),t.selected&&e.push("result-selected"),null!=t.group_array_index&&e.push("group-option"),""!==t.classes&&e.push(t.classes),(i=document.createElement("li")).className=e.join(" "),t.style&&(i.style.cssText=t.style),i.setAttribute("data-option-array-index",t.array_index),i.innerHTML=t.highlighted_html||t.html,t.title&&(i.title=t.title),this.outerHTML(i)):""},t.prototype.result_add_group=function(t){var e,i;return(t.search_match||t.group_match)&&t.active_options>0?((e=[]).push("group-result"),t.classes&&e.push(t.classes),(i=document.createElement("li")).className=e.join(" "),i.innerHTML=t.highlighted_html||this.escape_html(t.label),t.title&&(i.title=t.title),this.outerHTML(i)):""},t.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},t.prototype.reset_single_select_options=function(){var t,e,i,n,o;for(o=[],t=0,e=(i=this.results_data).length;t<e;t++)(n=i[t]).selected?o.push(n.selected=!1):o.push(void 0);return o},t.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},t.prototype.results_search=function(t){return this.results_showing?this.winnow_results():this.results_show()},t.prototype.winnow_results=function(t){var e,i,n,o,s,r,a,l,u,c,d,p,h,m,b;for(this.no_results_clear(),c=0,e=(a=this.get_search_text()).replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),u=this.get_search_regex(e),n=0,o=(l=this.results_data).length;n<o;n++)(s=l[n]).search_match=!1,d=null,p=null,s.highlighted_html="",this.include_option_in_results(s)&&(s.group&&(s.group_match=!1,s.active_options=0),null!=s.group_array_index&&this.results_data[s.group_array_index]&&(0===(d=this.results_data[s.group_array_index]).active_options&&d.search_match&&(c+=1),d.active_options+=1),b=s.group?s.label:s.text,s.group&&!this.group_search||(p=this.search_string_match(b,u),s.search_match=null!=p,s.search_match&&!s.group&&(c+=1),s.search_match?(a.length&&(h=p.index,r=b.slice(0,h),i=b.slice(h,h+a.length),m=b.slice(h+a.length),s.highlighted_html=this.escape_html(r)+"<em>"+this.escape_html(i)+"</em>"+this.escape_html(m)),null!=d&&(d.group_match=!0)):null!=s.group_array_index&&this.results_data[s.group_array_index].search_match&&(s.search_match=!0)));return this.result_clear_highlight(),c<1&&a.length?(this.update_results_content(""),this.no_results(a)):(this.update_results_content(this.results_option_build()),(null!=t?t.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},t.prototype.get_search_regex=function(t){var e,i;return i=this.search_contains?t:"(^|\\s|\\b)"+t+"[^\\s]*",this.enable_split_word_search||this.search_contains||(i="^"+i),e=this.case_sensitive_search?"":"i",new RegExp(i,e)},t.prototype.search_string_match=function(t,e){var i;return i=e.exec(t),!this.search_contains&&(null!=i?i[1]:void 0)&&(i.index+=1),i},t.prototype.choices_count=function(){var t,e,i;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,t=0,e=(i=this.form_field.options).length;t<e;t++)i[t].selected&&(this.selected_option_count+=1);return this.selected_option_count},t.prototype.choices_click=function(t){if(t.preventDefault(),this.activate_field(),!this.results_showing&&!this.is_disabled)return this.results_show()},t.prototype.keydown_checker=function(t){var e,i;switch(i=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),8!==i&&this.pending_backstroke&&this.clear_backstroke(),i){case 8:this.backstroke_length=this.get_search_field_value().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(t),this.mouse_on_container=!1;break;case 13:case 27:this.results_showing&&t.preventDefault();break;case 32:this.disable_search&&t.preventDefault();break;case 38:t.preventDefault(),this.keyup_arrow();break;case 40:t.preventDefault(),this.keydown_arrow()}},t.prototype.keyup_checker=function(t){var e,i;switch(i=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),i){case 8:this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:t.preventDefault(),this.results_showing&&this.result_select(t);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},t.prototype.clipboard_event_checker=function(t){var e;if(!this.is_disabled)return setTimeout((e=this,function(){return e.results_search()}),50)},t.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},t.prototype.include_option_in_results=function(t){return!(this.is_multiple&&!this.display_selected_options&&t.selected)&&(!(!this.display_disabled_options&&t.disabled)&&!t.empty)},t.prototype.search_results_touchstart=function(t){return this.touch_started=!0,this.search_results_mouseover(t)},t.prototype.search_results_touchmove=function(t){return this.touch_started=!1,this.search_results_mouseout(t)},t.prototype.search_results_touchend=function(t){if(this.touch_started)return this.search_results_mouseup(t)},t.prototype.outerHTML=function(t){var e;return t.outerHTML?t.outerHTML:((e=document.createElement("div")).appendChild(t),e.innerHTML)},t.prototype.get_single_html=function(){return'<a class="chosen-single chosen-default">\n <span>'+this.default_text+'</span>\n <div><b></b></div>\n</a>\n<div class="chosen-drop">\n <div class="chosen-search">\n <input class="chosen-search-input" type="text" autocomplete="off" />\n </div>\n <ul class="chosen-results"></ul>\n</div>'},t.prototype.get_multi_html=function(){return'<ul class="chosen-choices">\n <li class="search-field">\n <input class="chosen-search-input" type="text" autocomplete="off" value="'+this.default_text+'" />\n </li>\n</ul>\n<div class="chosen-drop">\n <ul class="chosen-results"></ul>\n</div>'},t.prototype.get_no_results_html=function(t){return'<li class="no-results">\n '+this.results_none_found+" <span>"+this.escape_html(t)+"</span>\n</li>"},t.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},t.default_multiple_text="Select Some Options",t.default_single_text="Select an Option",t.default_no_result_text="No results match",t}(),(t=jQuery).fn.extend({chosen:function(n){return e.browser_is_supported()?this.each(function(e){var o,s;s=(o=t(this)).data("chosen"),"destroy"!==n?s instanceof i||o.data("chosen",new i(this,n)):s instanceof i&&s.destroy()}):this}}),i=function(i){function o(){return o.__super__.constructor.apply(this,arguments)}return function(t,e){for(var i in e)s.call(e,i)&&(t[i]=e[i]);function n(){this.constructor=t}n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype}(o,e),o.prototype.setup=function(){return this.form_field_jq=t(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},o.prototype.set_up_html=function(){var e,i;return(e=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&e.push(this.form_field.className),this.is_rtl&&e.push("chosen-rtl"),i={class:e.join(" "),title:this.form_field.title},this.form_field.id.length&&(i.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=t("<div />",i),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},o.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},o.prototype.register_observers=function(){var t;return this.container.on("touchstart.chosen",(t=this,function(e){t.container_mousedown(e)})),this.container.on("touchend.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mousedown.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.container.on("mouseup.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mouseenter.chosen",function(t){return function(e){t.mouse_enter(e)}}(this)),this.container.on("mouseleave.chosen",function(t){return function(e){t.mouse_leave(e)}}(this)),this.search_results.on("mouseup.chosen",function(t){return function(e){t.search_results_mouseup(e)}}(this)),this.search_results.on("mouseover.chosen",function(t){return function(e){t.search_results_mouseover(e)}}(this)),this.search_results.on("mouseout.chosen",function(t){return function(e){t.search_results_mouseout(e)}}(this)),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",function(t){return function(e){t.search_results_mousewheel(e)}}(this)),this.search_results.on("touchstart.chosen",function(t){return function(e){t.search_results_touchstart(e)}}(this)),this.search_results.on("touchmove.chosen",function(t){return function(e){t.search_results_touchmove(e)}}(this)),this.search_results.on("touchend.chosen",function(t){return function(e){t.search_results_touchend(e)}}(this)),this.form_field_jq.on("chosen:updated.chosen",function(t){return function(e){t.results_update_field(e)}}(this)),this.form_field_jq.on("chosen:activate.chosen",function(t){return function(e){t.activate_field(e)}}(this)),this.form_field_jq.on("chosen:open.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.form_field_jq.on("chosen:close.chosen",function(t){return function(e){t.close_field(e)}}(this)),this.search_field.on("blur.chosen",function(t){return function(e){t.input_blur(e)}}(this)),this.search_field.on("keyup.chosen",function(t){return function(e){t.keyup_checker(e)}}(this)),this.search_field.on("keydown.chosen",function(t){return function(e){t.keydown_checker(e)}}(this)),this.search_field.on("focus.chosen",function(t){return function(e){t.input_focus(e)}}(this)),this.search_field.on("cut.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.search_field.on("paste.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.is_multiple?this.search_choices.on("click.chosen",function(t){return function(e){t.choices_click(e)}}(this)):this.container.on("click.chosen",function(t){t.preventDefault()})},o.prototype.destroy=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.form_field_label.length>0&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},o.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},o.prototype.container_mousedown=function(e){var i;if(!this.is_disabled)return!e||"mousedown"!==(i=e.type)&&"touchstart"!==i||this.results_showing||e.preventDefault(),null!=e&&t(e.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!e||t(e.target)[0]!==this.selected_item[0]&&!t(e.target).parents("a.chosen-single").length||(e.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),t(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},o.prototype.container_mouseup=function(t){if("ABBR"===t.target.nodeName&&!this.is_disabled)return this.results_reset(t)},o.prototype.search_results_mousewheel=function(t){var e;if(t.originalEvent&&(e=t.originalEvent.deltaY||-t.originalEvent.wheelDelta||t.originalEvent.detail),null!=e)return t.preventDefault(),"DOMMouseScroll"===t.type&&(e*=40),this.search_results.scrollTop(e+this.search_results.scrollTop())},o.prototype.blur_test=function(t){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},o.prototype.close_field=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},o.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},o.prototype.test_active_click=function(e){var i;return(i=t(e.target).closest(".chosen-container")).length&&this.container[0]===i[0]?this.active_field=!0:this.close_field()},o.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=n.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},o.prototype.result_do_highlight=function(t){var e,i,n,o,s;if(t.length){if(this.result_clear_highlight(),this.result_highlight=t,this.result_highlight.addClass("highlighted"),o=(n=parseInt(this.search_results.css("maxHeight"),10))+(s=this.search_results.scrollTop()),(e=(i=this.result_highlight.position().top+this.search_results.scrollTop())+this.result_highlight.outerHeight())>=o)return this.search_results.scrollTop(e-n>0?e-n:0);if(i<s)return this.search_results.scrollTop(i)}},o.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},o.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.get_search_field_value()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},o.prototype.update_results_content=function(t){return this.search_results.html(t)},o.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},o.prototype.set_tab_index=function(t){var e;if(this.form_field.tabIndex)return e=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=e},o.prototype.set_label_behavior=function(){if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=t("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0)return this.form_field_label.on("click.chosen",this.label_click_handler)},o.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},o.prototype.search_results_mouseup=function(e){var i;if((i=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first()).length)return this.result_highlight=i,this.result_select(e),this.search_field.focus()},o.prototype.search_results_mouseover=function(e){var i;if(i=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first())return this.result_do_highlight(i)},o.prototype.search_results_mouseout=function(e){if(t(e.target).hasClass("active-result")||t(e.target).parents(".active-result").first())return this.result_clear_highlight()},o.prototype.choice_build=function(e){var i,n,o;return i=t("<li />",{class:"search-choice"}).html("<span>"+this.choice_label(e)+"</span>"),e.disabled?i.addClass("search-choice-disabled"):((n=t("<a />",{class:"search-choice-close","data-option-array-index":e.array_index})).on("click.chosen",(o=this,function(t){return o.choice_destroy_link_click(t)})),i.append(n)),this.search_container.before(i)},o.prototype.choice_destroy_link_click=function(e){if(e.preventDefault(),e.stopPropagation(),!this.is_disabled)return this.choice_destroy(t(e.target))},o.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.get_search_field_value().length<1&&this.results_hide(),t.parents("li").first().remove(),this.search_field_scale()},o.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},o.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},o.prototype.result_select=function(t){var e,i;if(this.result_highlight)return e=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?e.removeClass("active-result"):this.reset_single_select_options(),e.addClass("result-selected"),(i=this.results_data[e[0].getAttribute("data-option-array-index")]).selected=!0,this.form_field.options[i.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(i):this.single_set_selected_text(this.choice_label(i)),this.is_multiple&&(!this.hide_results_on_select||t.metaKey||t.ctrlKey)?t.metaKey||t.ctrlKey?this.winnow_results({skip_highlight:!0}):(this.search_field.val(""),this.winnow_results()):(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[i.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,t.preventDefault(),this.search_field_scale())},o.prototype.single_set_selected_text=function(t){return null==t&&(t=this.default_text),t===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(t)},o.prototype.result_deselect=function(t){var e;return e=this.results_data[t],!this.form_field.options[e.options_index].disabled&&(e.selected=!1,this.form_field.options[e.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[e.options_index].value}),this.search_field_scale(),!0)},o.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},o.prototype.get_search_field_value=function(){return this.search_field.val()},o.prototype.get_search_text=function(){return t.trim(this.get_search_field_value())},o.prototype.escape_html=function(e){return t("<div/>").text(e).html()},o.prototype.winnow_results_set_highlight=function(){var t,e;if(null!=(t=(e=this.is_multiple?[]:this.search_results.find(".result-selected.active-result")).length?e.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(t)},o.prototype.no_results=function(t){var e;return e=this.get_no_results_html(t),this.search_results.append(e),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},o.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},o.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},o.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(t.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight()):void 0:this.results_show()},o.prototype.keydown_backstroke=function(){var t;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(t=this.search_container.siblings("li.search-choice").last()).length&&!t.hasClass("search-choice-disabled")?(this.pending_backstroke=t,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0},o.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},o.prototype.search_field_scale=function(){var e,i,n,o,s,r,a;if(this.is_multiple){for(s={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},i=0,n=(r=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;i<n;i++)s[o=r[i]]=this.search_field.css(o);return(e=t("<div />").css(s)).text(this.get_search_field_value()),t("body").append(e),a=e.width()+25,e.remove(),this.container.is(":visible")&&(a=Math.min(this.container.outerWidth()-10,a)),this.search_field.width(a)}},o.prototype.trigger_form_field_change=function(t){return this.form_field_jq.trigger("input",t),this.form_field_jq.trigger("change",t)},o}()}).call(this)},,,function(t,e,i){"use strict";i.r(e);i(18);var n=class{startDebugging(){this.debugging=!0,this.log({data:"Buttonizer is debugging!",style:"font-size: 30px; color: #FF0000;"})}welcomeToTheConsole(){this.debugging=!0,this.log({data:"Welcome to Buttonizer. Please do not continue without any knowledge.",style:"font-size: 30px; color: #FF0000;"}),this.log({data:"You can find errors down here. If there is any error that is related to Buttonizer you can contact us at contact@buttonizer.pro",style:"font-size: 18px; color: #FF0000;"}),this.log({data:"Check https://community.buttonizer.pro",style:"font-size: 18px; color: #FF0000;"}),this.log({data:" ",style:"font-size: 18px; color: #FF0000;"}),this.log({data:" ",style:"font-size: 18px; color: #FF0000;"}),this.log({data:"----- Logs: -----",style:"font-size: 18px; color: #FF0000;"}),this.debugging=!1}log(t){this.debugging&&t.data&&(t.color&&(t.style=""),t.color||t.style?console.log("%c "+t.data,t.style):console.log(t.data))}warning(t){this.debugging&&console.warn(t)}warn(t){this.debugging&&console.warn(t)}error(t){console.error(t)}};var o=class{constructor(t,e){this.data=t,this.modal=e,this.validate()}validate(){void 0===this.data.onClick&&(this.data.onClick=function(){}),void 0===this.data.text&&(this.data.text="Button"),void 0===this.data.confirm&&(this.data.confirm=!1),void 0===this.data.focus&&(this.data.focus=!1)}render(){let t=document.createElement("a");return t.href="javascript:void(0)",t.innerHTML=this.data.text,t.className="button",t.style.marginLeft="5px",this.data.confirm&&(t.className+=" button-primary"),t.addEventListener("click",()=>{this.data.close&&this.modal.closeDialog(),this.data.confirm&&this.modal.confirmDialog(),this.data.cancel&&this.modal.cancelDialog(),this.data.onClick()}),setTimeout(()=>{this.data.focus&&t.focus()},50),t}};var s=class{constructor(t){this.data=t,this.element=HTMLElement,"function"==typeof this.data.onConfirm?this.onConfirm=this.data.onConfirm:this.onConfirm=function(){},"function"==typeof this.data.onCancel?this.onCancel=this.data.onCancel:this.onCancel=function(){},"function"==typeof this.data.onClose?this.onClose=this.data.onClose:this.onClose=function(){},void 0===this.data.class?this.class="":this.class=this.data.class,void 0!==this.data.video&&(this.class+=" has-video"),this.render()}render(){this.element=document.createElement("div"),this.element.classList="fs-modal active"+(""!==this.class?" "+this.class:"");let t=document.createElement("div");t.classList="fs-modal-dialog",t.appendChild(this.modalHeader()),t.appendChild(this.modalBody()),void 0!==this.data.video&&t.appendChild(this.clearBoth()),t.appendChild(this.modalFooter()),this.element.appendChild(t),document.body.appendChild(this.element)}modalHeader(){let t=document.createElement("div");t.classList="fs-modal-header";let e=document.createElement("h4");e.innerHTML=this.data.title,t.appendChild(e);let i=document.createElement("a");return i.className="fs-close",i.href="javascript:void(0)",i.innerHTML='<i class="dashicons dashicons-no" title="'+window.Buttonizer.translate("modal.dismiss")+'"></i>',i.addEventListener("click",()=>{this.closeDialog()}),t.appendChild(i),t}modalBody(){let t=document.createElement("div"),e=document.createElement("div");e.className="fs-modal-body";let i=document.createElement("div");return i.className="fs-modal-panel active","object"==typeof this.data.content?i.appendChild(this.data.content):i.innerHTML=this.data.content,e.appendChild(i),void 0!==this.data.video?(t.appendChild(e),t.appendChild(this.video()),t):e}modalFooter(){let t=document.createElement("div");return t.className="fs-modal-footer",this.data.buttons&&t.appendChild(this.renderButtons()),t}renderButtons(){let t=document.createElement("div");for(var e=0;e<this.data.buttons.length;e++){let i=new o(this.data.buttons[e],this);t.appendChild(i.render())}return t}cancelDialog(){this.onCancel(),this.closeDialog()}confirmDialog(){this.onConfirm(),this.closeDialog()}closeDialog(){this.onClose(),this.element.remove()}video(){let t=document.createElement("div");t.className="fs-modal-body fs-modal-video";let e=document.createElement("div");e.className="fs-modal-panel active";let i=document.createElement("iframe");return i.width="100%",i.style.maxWidth="560px",i.height="315",i.src=`https://www.youtube.com/embed/${this.data.video}?&autoplay=1`,i.frameBorder="0",i.allow="accelerometer",i.setAttribute("autoplay",""),i.setAttribute("encrypted-media",""),i.setAttribute("gyroscope",""),i.setAttribute("picture-in-picture",""),i.setAttribute("allowfullscreen",""),e.appendChild(i),t.appendChild(e),t}clearBoth(){let t=document.createElement("div");return t.style.clear="both",t}};class r{constructor(t){this.table=document.createElement("table"),this.table.width="100%",""!==t&&(this.table.className=t),this.currentRow=document.createElement("tr")}newRow(){return this.table.appendChild(this.currentRow),this.currentRow=document.createElement("tr"),this}addColumn(t,e,i){let n=document.createElement("td");return n.appendChild(t),"undefined"!==e&&(n.className=e),"undefined"!==i&&(n.width=i),this.currentRow.appendChild(n),this}addColumnText(t,e,i){let n=document.createElement("td");return n.innerText=t,"undefined"!==e&&(n.className=""+e),"undefined"!==i&&(n.width=i),this.currentRow.appendChild(n),this}addColumnHTML(t,e,i){let n=document.createElement("td");return n.innerHTML=t,"undefined"!==e&&(n.className=e),"undefined"!==i&&(n.width=i),this.currentRow.appendChild(n),this}build(){return this.table.appendChild(this.currentRow),this.table}}class a{constructor(t){this.windowObject=t,this.onTriggerContainer=null,this.dropdown=document.createElement("select"),this.dropdown.className="window-select"}build(){let t=document.createElement("div");t.appendChild(this.dropdown),this.onChange();let e=new r("table-relative");return e.addColumnHTML("<h2>"+window.Buttonizer.translate("page_rules.single_name")+(window.Buttonizer.hasPremium()?"":' <span class="buttonizer-premium premium-right">PRO</span>')+"</h2>","table-align-top",""),e.addColumn(t,"","370"),e.newRow(),e.build()}onChange(){this.dropdown.innerHTML="<option>"+window.Buttonizer.translate("page_rules.input_any_page")+"</option>",this.dropdown.readonly=!0,this.dropdown.addEventListener("click",()=>window.Buttonizer.showPremiumPopup(window.Buttonizer.translate("page_rules.pro_description"),"SQnAhyBWLWg"))}}class l{constructor(t){this.windowObject=t,this.onTriggerContainer=null,this.dropdown=document.createElement("select"),this.dropdown.className="window-select"}build(){let t=document.createElement("div");t.appendChild(this.dropdown),this.onChange();let e=new r("table-relative");return e.addColumnHTML("<h2>"+window.Buttonizer.translate("time_schedules.single_name")+(window.Buttonizer.hasPremium()?"":' <span class="buttonizer-premium premium-right">PRO</span>')+"</h2>","table-align-top",""),e.addColumn(t,"","370"),e.newRow(),e.build()}onChange(){this.dropdown.innerHTML="<option>Show on all times</option>",this.dropdown.readonly=!0,this.dropdown.addEventListener("click",()=>window.Buttonizer.showPremiumPopup(window.Buttonizer.translate("time_schedules.pro_description"),"C-B9ITdY6A4"))}}class u{constructor(t){this.windowObject=t}build(){let t=this.buildElements();return window.Buttonizer.hasPremium()||t.addEventListener("click",()=>{window.Buttonizer.showPremiumPopup("With this setting, you can make your button appear/hide after certain amount of time.","V4lvZ15ULWw")}),t}buildElements(){let t=document.createElement("input");t.type="checkbox",t.className="buttonizer-timeout-checkbox",t.checked=void 0!==this.windowObject.objectOwner.data.advanced_timeout&&!isNaN(this.windowObject.objectOwner.data.advanced_timeout)&&this.windowObject.objectOwner.data.advanced_timeout>0;let e=document.createElement("input");e.type="number",e.value=void 0===this.windowObject.objectOwner.data.advanced_timeout?"":this.windowObject.objectOwner.data.advanced_timeout,e.className="window-select",e.placeholder="miliseconds";let i=document.createElement("div");i.innerHTML=` Show Buttonizer after <b>${e.value/1e3}</b> seconds`,window.Buttonizer.hasPremium()||(t.setAttribute("disabled",""),e.setAttribute("readonly",""),e.value="",e.style.opacity="0.5",i.style.opacity="0.5");let n=new r("table-relative");return n.addColumnHTML("<h2>Timeout</h2>"+(window.Buttonizer.hasPremium()?"":'<span class="buttonizer-premium premium-right">PRO</span>')),n.addColumn(t,"","10"),n.addColumn(e,"","360"),n.newRow(),n.addColumnText(""),n.addColumnText(""),n.addColumn(i),n.build()}}class c{constructor(t){this.windowObject=t,this.checkbox,this.input,this.toggle,this.hide,this.toggleHide,this.select,this.info}build(){let t=this.elements().build();return window.Buttonizer.hasPremium()||t.addEventListener("click",()=>{window.Buttonizer.showPremiumPopup("With this setting, you can make your button appear/hide after scrolling for a certain amount.","hh5LBF4C1pg")}),t}elements(){this.checkbox=document.createElement("input"),this.checkbox.type="checkbox",this.checkbox.className="buttonizer-scroll-checkbox",this.input=document.createElement("input"),this.input.type="number",this.input.className="window-select",this.input.placeholder="0",this.toggle=document.createElement("input"),this.toggle.type="checkbox",this.toggle.className="buttonizer-switch",this.toggle.style.display="inline-block",this.hide=document.createElement("div"),this.hide.style.display="inline-block",window.Buttonizer.hasPremium()||(this.hide.innerHTML="Starting visibility: <b>Show</b>"),this.toggleHide=document.createElement("div"),this.toggleHide.appendChild(this.toggle),this.toggleHide.appendChild(this.hide),this.select=document.createElement("select");let t=document.createElement("option");t.value="px",t.innerHTML="px";let e=document.createElement("option");e.value="%",e.innerHTML="%",this.select.classList="window-select",this.select.appendChild(e),this.select.appendChild(t),this.info=document.createElement("div"),this.info.innerHTML=` Scroll <b>${this.input.value<=0?"0":this.input.value} ${this.select.value}</b> from top of page to <b>${"true"==this.windowObject.objectOwner.data.advanced_scroll_hide?"hide":"show"}</b> Buttonizer`,window.Buttonizer.hasPremium()||(this.checkbox.setAttribute("disabled",""),this.input.setAttribute("readonly",""),this.toggle.setAttribute("disabled",""),this.select.setAttribute("disabled",""),this.input.value="",this.input.style.opacity="0.5",this.select.style.opacity="0.5",this.info.style.opacity="0.5",this.toggleHide.style.opacity="0.5");let i=new r("table-relative");return i.addColumnHTML("<h2>Scroll</h2>"+(window.Buttonizer.hasPremium()?"":'<span class="buttonizer-premium premium-right">PRO</span>')),i.addColumn(this.checkbox,"","10"),i.addColumn(this.input,"","284"),i.addColumn(this.select,"","70"),i.newRow(),i.addColumnText(""),i.addColumnText(""),i.addColumn(this.toggleHide),i.newRow(),i.addColumnText(""),i.addColumnText(""),i.addColumn(this.info),i}}class d{constructor(t,e){this.window=HTMLElement,this.body=HTMLElement,this.footer=HTMLElement,this.background=document.createElement("div"),this.background.className="background",this.background.addEventListener("click",()=>{this.hide()}),this.title=document.createElement("div"),this.title.innerHTML=e,this.settings={},this.objectOwner=t,this.menuItems=[],this.buttonFilter=document.createElement("div"),this.build()}header(){let t=document.createElement("div");t.className="header";let e=document.createElement("a");e.className="close-btn",e.href="javascript:void(0)";let i=document.createElement("i");return i.className="fa fa-times",e.appendChild(i),e.addEventListener("click",()=>{this.hide()}),t.appendChild(e),t.appendChild(this.title),t}createBody(){let t=document.createElement("div"),e=document.createElement("div");return e.className="window-menu",this.bodyMenu=e,this.body=document.createElement("div"),this.body.className="window-body",t.appendChild(this.bodyMenu),t.appendChild(this.body),t}build(){let t=document.createElement("div");t.className="buttonizer-settings-window",t.style.display="none",t.style.top="500px",t.appendChild(this.header()),t.appendChild(this.createBody()),t.appendChild(this.background),this.window=t,document.body.appendChild(this.window),jQuery(this.window).draggable({handle:".header",containment:"body",start:()=>this.topMeUp()}),this.window.addEventListener("click",()=>this.topMeUp()),this.afterBuild(),this.render()}addItem(t,e){let i=document.createElement("a");i.href="javascript:void(0)",i.innerHTML=t;let n=document.createElement("div");n.className="body-inner animated pulse",this.menuItems.length>=1&&(n.style.display="none"),n.appendChild(e),i.addEventListener("click",()=>{this.openMenuItem(t)}),0===this.menuItems.length&&i.classList.add("selected"),this.menuItems.push({unique:t,menu:i,body:n}),this.bodyMenu.appendChild(i),this.body.appendChild(n)}openMenuItem(t){for(let e=0;e<this.menuItems.length;e++)this.menuItems[e].unique===t?(this.menuItems[e].menu.classList.add("selected"),this.menuItems[e].body.style.display="block"):(this.menuItems[e].menu.classList.remove("selected"),this.menuItems[e].body.style.display="none")}show(){this.window.style.display="block"}hide(){this.window.style.display="none"}toggle(){"block"===this.window.style.display?this.hide():this.show()}topMeUp(){Buttonizer.windowsZindex!==this.window.style.zIndex&&(Buttonizer.windowsZindex++,this.window.style.zIndex=Buttonizer.windowsZindex)}render(){}afterBuild(){}}class p{constructor(t){this.windowObject=t}build(){let t=document.createElement("input");t.className="window-select",t.placeholder=window.Buttonizer.translate("settings.custom_id.placeholder");let e=new r("table-relative");return e.addColumnHTML("<h2>"+window.Buttonizer.translate("settings.custom_id.title")+" <span class='buttonizer-premium premium-right'>PRO</span></h2>"),t.addEventListener("mousedown",()=>window.Buttonizer.showPremiumPopup(window.Buttonizer.translate("settings.custom_id.pro_description"))),e.addColumn(t,"","370"),e.build()}}class h{constructor(t){this.windowObject=t}build(){let t=document.createElement("input");t.className="window-select",t.placeholder=window.Buttonizer.translate("settings.custom_class.placeholder");let e=new r("table-relative");return e.addColumnHTML("<h2>"+window.Buttonizer.translate("settings.custom_class.title")+" <span class='buttonizer-premium premium-right'>PRO</span></h2>","table-align-top",""),t.addEventListener("mousedown",()=>window.Buttonizer.showPremiumPopup(window.Buttonizer.translate("settings.custom_class.pro_description"))),e.addColumn(t,"","370"),e.build()}}class m extends d{constructor(t){super(t,window.Buttonizer.translate("utils.advanced_settings")+" - "+t.data.name+(window.Buttonizer.hasPremium()?"":" (premium)"))}render(){this.filter(),this.styling(),this.delay()}filter(){let t=document.createElement("div");this.pageRuleSelect=new a(this),this.timeSchedule=new l(this),t.appendChild(this.timeSchedule.build()),t.appendChild(this.pageRuleSelect.build()),super.addItem(window.Buttonizer.translate("settings.button_group_window.filters"),t)}styling(){let t=document.createElement("div");t.appendChild(new h(this).build()),t.appendChild(new p(this).build()),super.addItem(window.Buttonizer.translate("settings.button_group_window.styling"),t)}delay(){let t=document.createElement("div");t.appendChild(new u(this.objectOwner.groupObject.windowObject).build()),t.appendChild(new c(this.objectOwner.groupObject.windowObject).build()),this.addItem("Timeout & Scroll",t),this.menuItems.forEach(t=>{"Timeout & Scroll"===t.unique&&(t.menu.style.display="none")})}}var b=i(4);
74
  /**!
75
  * tippy.js v4.3.0
76
  * (c) 2017-2019 atomiks
77
  * MIT License
78
+ */function f(){return(f=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}var w="undefined"!=typeof window&&"undefined"!=typeof document,g=w?navigator.userAgent:"",y=/MSIE |Trident\//.test(g),v=/UCBrowser\//.test(g),_=w&&/iPhone|iPad|iPod/.test(navigator.platform)&&!window.MSStream,k={a11y:!0,allowHTML:!0,animateFill:!0,animation:"shift-away",appendTo:function(){return document.body},aria:"describedby",arrow:!1,arrowType:"sharp",boundary:"scrollParent",content:"",delay:0,distance:10,duration:[325,275],flip:!0,flipBehavior:"flip",flipOnUpdate:!1,followCursor:!1,hideOnClick:!0,ignoreAttributes:!1,inertia:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,lazy:!0,maxWidth:350,multiple:!1,offset:0,onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},placement:"top",popperOptions:{},role:"tooltip",showOnInit:!1,size:"regular",sticky:!1,target:"",theme:"dark",touch:!0,touchHold:!1,trigger:"mouseenter focus",triggerTarget:null,updateDuration:0,wait:null,zIndex:9999},x=["arrow","arrowType","boundary","distance","flip","flipBehavior","flipOnUpdate","offset","placement","popperOptions"],E=w?Element.prototype:{},B=E.matches||E.matchesSelector||E.webkitMatchesSelector||E.mozMatchesSelector||E.msMatchesSelector;function z(t){return[].slice.call(t)}function C(t,e){return j(t,function(t){return B.call(t,e)})}function j(t,e){for(;t;){if(e(t))return t;t=t.parentElement}return null}var S={passive:!0},L=4,O="x-placement",T="x-out-of-boundaries",N="tippy-iOS",A="tippy-active",I=".tippy-popper",M=".tippy-tooltip",q=".tippy-content",H=".tippy-backdrop",P=".tippy-arrow",D=".tippy-roundarrow",F=Object.keys(k);function R(t,e){return{}.hasOwnProperty.call(t,e)}function W(t,e,i){if(Array.isArray(t)){var n=t[e];return null==n?i:n}return t}function U(t,e){var i;return function(){var n=this,o=arguments;clearTimeout(i),i=setTimeout(function(){return t.apply(n,o)},e)}}function G(t,e){return t&&t.modifiers&&t.modifiers[e]}function Q(t,e){return t.indexOf(e)>-1}function $(t){return t instanceof Element}function Y(t){return!(!t||!R(t,"isVirtual"))||$(t)}function V(t,e){return"function"==typeof t?t.apply(null,e):t}function X(t,e){t.filter(function(t){return"flip"===t.name})[0].enabled=e}function K(){return document.createElement("div")}function J(t,e){t.forEach(function(t){t&&(t.style.transitionDuration="".concat(e,"ms"))})}function Z(t,e){t.forEach(function(t){t&&t.setAttribute("data-state",e)})}function tt(t,e){var i=f({},e,{content:V(e.content,[t])},e.ignoreAttributes?{}:function(t){return F.reduce(function(e,i){var n=(t.getAttribute("data-tippy-".concat(i))||"").trim();if(!n)return e;if("content"===i)e[i]=n;else try{e[i]=JSON.parse(n)}catch(t){e[i]=n}return e},{})}(t));return(i.arrow||v)&&(i.animateFill=!1),i}function et(t,e){Object.keys(t).forEach(function(t){if(!R(e,t))throw new Error("[tippy]: `".concat(t,"` is not a valid option"))})}function it(t,e){t.innerHTML=e instanceof Element?e.innerHTML:e}function nt(t,e){if(e.content instanceof Element)it(t,""),t.appendChild(e.content);else if("function"!=typeof e.content){t[e.allowHTML?"innerHTML":"textContent"]=e.content}}function ot(t){return{tooltip:t.querySelector(M),backdrop:t.querySelector(H),content:t.querySelector(q),arrow:t.querySelector(P)||t.querySelector(D)}}function st(t){t.setAttribute("data-inertia","")}function rt(t){var e=K();return"round"===t?(e.className="tippy-roundarrow",it(e,'<svg viewBox="0 0 18 7" xmlns="http://www.w3.org/2000/svg"><path d="M0 7s2.021-.015 5.253-4.218C6.584 1.051 7.797.007 9 0c1.203-.007 2.416 1.035 3.761 2.782C16.012 7.005 18 7 18 7H0z"/></svg>')):e.className="tippy-arrow",e}function at(){var t=K();return t.className="tippy-backdrop",t.setAttribute("data-state","hidden"),t}function lt(t,e){t.setAttribute("tabindex","-1"),e.setAttribute("data-interactive","")}function ut(t,e,i){var n=v&&void 0!==document.body.style.webkitTransition?"webkitTransitionEnd":"transitionend";t[e+"EventListener"](n,i)}function ct(t){var e=t.getAttribute(O);return e?e.split("-")[0]:""}function dt(t,e,i){i.split(" ").forEach(function(i){t.classList[e](i+"-theme")})}function pt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.checkHideOnClick,i=t.exclude,n=t.duration;z(document.querySelectorAll(I)).forEach(function(t){var o,s=t._tippy;if(s){var r=!e||!0===s.props.hideOnClick,a=!1;i&&(a=(o=i)._tippy&&!B.call(o,I)?s.reference===i:t===i.popper),r&&!a&&s.hide(n)}})}var ht=!1;function mt(){ht||(ht=!0,_&&document.body.classList.add(N),window.performance&&document.addEventListener("mousemove",ft))}var bt=0;function ft(){var t=performance.now();t-bt<20&&(ht=!1,document.removeEventListener("mousemove",ft),_||document.body.classList.remove(N)),bt=t}function wt(t){if(!(t.target instanceof Element))return pt();var e=C(t.target,I);if(!(e&&e._tippy&&e._tippy.props.interactive)){var i=j(t.target,function(t){return t._tippy&&t._tippy.reference===t});if(i){var n=i._tippy;if(n){var o=Q(n.props.trigger||"","click");if(ht||o)return pt({exclude:i,checkHideOnClick:!0});if(!0!==n.props.hideOnClick||o)return;n.clearDelayTimeouts()}}pt({checkHideOnClick:!0})}}function gt(){var t=document.activeElement;t&&t.blur&&t._tippy&&t.blur()}var yt=1;function vt(t,e){var i,n,o,s,r,a=tt(t,e);if(!a.multiple&&t._tippy)return null;var l,u,c,d,p,h,m=!1,w=!1,g=!1,v=[],_=a.interactiveDebounce>0?U(_t,a.interactiveDebounce):_t,E=yt++,N=function(t,e){var i=K();i.className="tippy-popper",i.id="tippy-".concat(t),i.style.zIndex=""+e.zIndex,e.role&&i.setAttribute("role",e.role);var n=K();n.className="tippy-tooltip",n.style.maxWidth=e.maxWidth+("number"==typeof e.maxWidth?"px":""),n.setAttribute("data-size",e.size),n.setAttribute("data-animation",e.animation),n.setAttribute("data-state","hidden"),dt(n,"add",e.theme);var o=K();return o.className="tippy-content",o.setAttribute("data-state","hidden"),e.interactive&&lt(i,n),e.arrow&&n.appendChild(rt(e.arrowType)),e.animateFill&&(n.appendChild(at()),n.setAttribute("data-animatefill","")),e.inertia&&st(n),nt(o,e),n.appendChild(o),i.appendChild(n),i}(E,a),M=ot(N),q={id:E,reference:t,popper:N,popperChildren:M,popperInstance:null,props:a,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},clearDelayTimeouts:Ot,set:Tt,setContent:function(t){Tt({content:t})},show:Nt,hide:At,enable:function(){q.state.isEnabled=!0},disable:function(){q.state.isEnabled=!1},destroy:function(e){if(q.state.isDestroyed)return;q.state.isMounted&&At(0);bt(),delete t._tippy,delete D()._tippy;var i=q.props.target;i&&e&&$(t)&&z(t.querySelectorAll(i)).forEach(function(t){t._tippy&&t._tippy.destroy()});q.popperInstance&&q.popperInstance.destroy();q.state.isDestroyed=!0}};return t._tippy=q,N._tippy=q,D()._tippy=q,mt(),a.lazy||jt(),a.showOnInit&&St(),a.a11y&&!a.target&&((h=t)instanceof Element&&(!B.call(h,"a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]")||h.hasAttribute("disabled")))&&D().setAttribute("tabindex","0"),N.addEventListener("mouseenter",function(t){q.props.interactive&&q.state.isVisible&&"mouseenter"===i&&St(t,!0)}),N.addEventListener("mouseleave",function(){q.props.interactive&&"mouseenter"===i&&document.addEventListener("mousemove",_)}),q;function H(){document.removeEventListener("mousemove",wt)}function P(){document.body.removeEventListener("mouseleave",Lt),document.removeEventListener("mousemove",_)}function D(){return q.props.triggerTarget||t}function F(){return[q.popperChildren.tooltip,q.popperChildren.backdrop,q.popperChildren.content]}function Y(){return q.props.followCursor&&!ht&&"focus"!==i}function it(t,e){var i=q.popperChildren.tooltip;function n(t){t.target===i&&(ut(i,"remove",n),e())}if(0===t)return e();ut(i,"remove",d),ut(i,"add",n),d=n}function pt(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];D().addEventListener(t,e,i),v.push({eventType:t,handler:e,options:i})}function mt(){q.props.touchHold&&!q.props.target&&(pt("touchstart",gt,S),pt("touchend",kt,S)),q.props.trigger.trim().split(" ").forEach(function(t){if("manual"!==t)if(q.props.target)switch(t){case"mouseenter":pt("mouseover",Et),pt("mouseout",Bt);break;case"focus":pt("focusin",Et),pt("focusout",Bt);break;case"click":pt(t,Et)}else switch(pt(t,gt),t){case"mouseenter":pt("mouseleave",kt);break;case"focus":pt(y?"focusout":"blur",xt)}})}function bt(){v.forEach(function(t){var e=t.eventType,i=t.handler,n=t.options;D().removeEventListener(e,i,n)}),v=[]}function ft(t){return q.props.arrow?p[t]+("round"===q.props.arrowType?18:16):p[t]}function wt(e){var i=n=e,o=i.clientX,s=i.clientY;if(p){var r=t.getBoundingClientRect(),a=q.props.followCursor,l="horizontal"===a,u="vertical"===a,c=ct(N),d=Q(["top","bottom"],c),h=Q(["left","right"],c),m=f({},p);d&&(m.left=ft("left"),m.right=ft("right")),h&&(m.top=ft("top"),m.bottom=ft("bottom"));var b=d?Math.max(m.left,o):o,w=h?Math.max(m.top,s):s;d&&b>m.right&&(b=Math.min(o,window.innerWidth-m.right)),h&&w>m.bottom&&(w=Math.min(s,window.innerHeight-m.bottom)),!j(e.target,function(e){return e===t})&&q.props.interactive||(q.popperInstance.reference=f({},q.popperInstance.reference,{getBoundingClientRect:function(){return{width:0,height:0,top:l?r.top:w,bottom:l?r.bottom:w,left:u?r.left:b,right:u?r.right:b}},clientWidth:0,clientHeight:0}),q.popperInstance.scheduleUpdate()),"initial"===a&&q.state.isVisible&&H()}}function gt(t){q.state.isEnabled&&!zt(t)&&(q.state.isVisible||(i=t.type,t instanceof MouseEvent&&(n=t)),"click"===t.type&&!1!==q.props.hideOnClick&&q.state.isVisible?Lt():St(t))}function _t(e){var i=j(e.target,function(t){return t._tippy});C(e.target,I)===N||i===t||function(t,e,i,n){if(!t)return!0;var o=i.clientX,s=i.clientY,r=n.interactiveBorder,a=n.distance,l=e.top-s>("top"===t?r+a:r),u=s-e.bottom>("bottom"===t?r+a:r),c=e.left-o>("left"===t?r+a:r),d=o-e.right>("right"===t?r+a:r);return l||u||c||d}(ct(N),N.getBoundingClientRect(),e,q.props)&&(P(),Lt())}function kt(t){if(!zt(t))return q.props.interactive?(document.body.addEventListener("mouseleave",Lt),void document.addEventListener("mousemove",_)):void Lt()}function xt(t){t.target===D()&&(q.props.interactive&&t.relatedTarget&&N.contains(t.relatedTarget)||Lt())}function Et(t){C(t.target,q.props.target)&&St(t)}function Bt(t){C(t.target,q.props.target)&&Lt()}function zt(t){var e="ontouchstart"in window,i=Q(t.type,"touch"),n=q.props.touchHold;return e&&ht&&n&&!i||ht&&!n&&i}function Ct(){!g&&c&&(g=!0,function(t){t.offsetHeight}(N),c())}function jt(){var e=q.props.popperOptions,i=q.popperChildren,n=i.tooltip,o=i.arrow,s=G(e,"preventOverflow");function r(t){q.props.flip&&!q.props.flipOnUpdate&&(t.flipped&&(q.popperInstance.options.placement=t.placement),X(q.popperInstance.modifiers,!1)),n.setAttribute(O,t.placement),!1!==t.attributes[T]?n.setAttribute(T,""):n.removeAttribute(T),u&&u!==t.placement&&w&&(n.style.transition="none",requestAnimationFrame(function(){n.style.transition=""})),u=t.placement,w=q.state.isVisible;var e=ct(N),i=n.style;i.top=i.bottom=i.left=i.right="",i[e]=-(q.props.distance-10)+"px";var o=s&&void 0!==s.padding?s.padding:L,r="number"==typeof o,a=f({top:r?o:o.top,bottom:r?o:o.bottom,left:r?o:o.left,right:r?o:o.right},!r&&o);a[e]=r?o+q.props.distance:(o[e]||0)+q.props.distance,q.popperInstance.modifiers.filter(function(t){return"preventOverflow"===t.name})[0].padding=a,p=a}var a=f({eventsEnabled:!1,placement:q.props.placement},e,{modifiers:f({},e?e.modifiers:{},{preventOverflow:f({boundariesElement:q.props.boundary,padding:L},s),arrow:f({element:o,enabled:!!o},G(e,"arrow")),flip:f({enabled:q.props.flip,padding:q.props.distance+L,behavior:q.props.flipBehavior},G(e,"flip")),offset:f({offset:q.props.offset},G(e,"offset"))}),onCreate:function(t){Ct(),r(t),e&&e.onCreate&&e.onCreate(t)},onUpdate:function(t){Ct(),r(t),e&&e.onUpdate&&e.onUpdate(t)}});q.popperInstance=new b.a(t,N,a)}function St(t,i){if(Ot(),!q.state.isVisible){if(q.props.target)return function(t){if(t){var i=C(t.target,q.props.target);i&&!i._tippy&&vt(i,f({},q.props,{content:V(e.content,[i]),appendTo:e.appendTo,target:"",showOnInit:!0}))}}(t);if(m=!0,t&&!i&&q.props.onTrigger(q,t),q.props.wait)return q.props.wait(q,t);Y()&&!q.state.isMounted&&(q.popperInstance||jt(),document.addEventListener("mousemove",wt));var n=W(q.props.delay,0,k.delay);n?o=setTimeout(function(){Nt()},n):Nt()}}function Lt(){if(Ot(),!q.state.isVisible)return H();m=!1;var t=W(q.props.delay,1,k.delay);t?s=setTimeout(function(){q.state.isVisible&&At()},t):r=requestAnimationFrame(function(){At()})}function Ot(){clearTimeout(o),clearTimeout(s),cancelAnimationFrame(r)}function Tt(e){et(e=e||{},k),bt(),q.props.triggerTarget&&delete q.props.triggerTarget._tippy;var i=q.props,o=tt(t,f({},q.props,e,{ignoreAttributes:!0}));o.ignoreAttributes=R(e,"ignoreAttributes")?e.ignoreAttributes||!1:i.ignoreAttributes,q.props=o,D()._tippy=q,mt(),P(),_=U(_t,e.interactiveDebounce||0),function(t,e,i){var n=ot(t),o=n.tooltip,s=n.content,r=n.backdrop,a=n.arrow;t.style.zIndex=""+i.zIndex,o.setAttribute("data-size",i.size),o.setAttribute("data-animation",i.animation),o.style.maxWidth=i.maxWidth+("number"==typeof i.maxWidth?"px":""),i.role?t.setAttribute("role",i.role):t.removeAttribute("role"),e.content!==i.content&&nt(s,i),!e.animateFill&&i.animateFill?(o.appendChild(at()),o.setAttribute("data-animatefill","")):e.animateFill&&!i.animateFill&&(o.removeChild(r),o.removeAttribute("data-animatefill")),!e.arrow&&i.arrow?o.appendChild(rt(i.arrowType)):e.arrow&&!i.arrow&&o.removeChild(a),e.arrow&&i.arrow&&e.arrowType!==i.arrowType&&o.replaceChild(rt(i.arrowType),a),!e.interactive&&i.interactive?lt(t,o):e.interactive&&!i.interactive&&function(t,e){t.removeAttribute("tabindex"),e.removeAttribute("data-interactive")}(t,o),!e.inertia&&i.inertia?st(o):e.inertia&&!i.inertia&&function(t){t.removeAttribute("data-inertia")}(o),e.theme!==i.theme&&(dt(o,"remove",e.theme),dt(o,"add",i.theme))}(N,i,o),q.popperChildren=ot(N),q.popperInstance&&(q.popperInstance.update(),x.some(function(t){return R(e,t)&&e[t]!==i[t]})&&(q.popperInstance.destroy(),jt(),q.state.isVisible&&q.popperInstance.enableEventListeners(),q.props.followCursor&&n&&wt(n)))}function Nt(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:W(q.props.duration,0,k.duration[1]);if(!q.state.isDestroyed&&q.state.isEnabled&&(!ht||q.props.touch)&&!D().hasAttribute("disabled")&&!1!==q.props.onShow(q)){N.style.visibility="visible",q.state.isVisible=!0,q.props.interactive&&D().classList.add(A);var i=F();J(i.concat(N),0),c=function(){q.state.isVisible&&(Y()||q.popperInstance.update(),q.popperChildren.backdrop&&(q.popperChildren.content.style.transitionDelay=Math.round(e/12)+"ms"),q.props.sticky&&(J([N],y?0:q.props.updateDuration),function t(){q.popperInstance.scheduleUpdate(),q.state.isMounted?requestAnimationFrame(t):J([N],0)}()),J([N],q.props.updateDuration),J(i,e),Z(i,"visible"),function(t,e){it(t,e)}(e,function(){q.props.aria&&D().setAttribute("aria-".concat(q.props.aria),N.id),q.props.onShown(q),q.state.isShown=!0}))},function(){g=!1;var e=!(Y()||"initial"===q.props.followCursor&&ht);q.popperInstance?(Y()||(q.popperInstance.scheduleUpdate(),e&&q.popperInstance.enableEventListeners()),X(q.popperInstance.modifiers,q.props.flip)):(jt(),e&&q.popperInstance.enableEventListeners()),q.popperInstance.reference=t;var i=q.popperChildren.arrow;Y()?(i&&(i.style.margin="0"),n&&wt(n)):i&&(i.style.margin=""),ht&&n&&"initial"===q.props.followCursor&&(wt(n),i&&(i.style.margin="0"));var o=q.props.appendTo;(l="parent"===o?t.parentNode:V(o,[t])).contains(N)||(l.appendChild(N),q.props.onMount(q),q.state.isMounted=!0)}()}}function At(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:W(q.props.duration,1,k.duration[1]);if(!q.state.isDestroyed&&q.state.isEnabled&&!1!==q.props.onHide(q)){N.style.visibility="hidden",q.state.isVisible=!1,q.state.isShown=!1,w=!1,q.props.interactive&&D().classList.remove(A);var e=F();J(e,t),Z(e,"hidden"),function(t,e){it(t,function(){!q.state.isVisible&&l&&l.contains(N)&&e()})}(t,function(){m||H(),q.props.aria&&D().removeAttribute("aria-".concat(q.props.aria)),q.popperInstance.disableEventListeners(),q.popperInstance.options.placement=q.props.placement,l.removeChild(N),q.props.onHidden(q),q.state.isMounted=!1})}}}var _t=!1;function kt(t,e){et(e||{},k),_t||(document.addEventListener("click",wt,!0),document.addEventListener("touchstart",mt,S),window.addEventListener("blur",gt),_t=!0);var i,n=f({},k,e);i=t,"[object Object]"!=={}.toString.call(i)||i.addEventListener||function(t){var e={isVirtual:!0,attributes:t.attributes||{},setAttribute:function(e,i){t.attributes[e]=i},getAttribute:function(e){return t.attributes[e]},removeAttribute:function(e){delete t.attributes[e]},hasAttribute:function(e){return e in t.attributes},addEventListener:function(){},removeEventListener:function(){},classList:{classNames:{},add:function(e){t.classList.classNames[e]=!0},remove:function(e){delete t.classList.classNames[e]},contains:function(e){return e in t.classList.classNames}}};for(var i in e)t[i]=e[i]}(t);var o=function(t){if(Y(t))return[t];if(t instanceof NodeList)return z(t);if(Array.isArray(t))return t;try{return z(document.querySelectorAll(t))}catch(t){return[]}}(t).reduce(function(t,e){var i=e&&vt(e,n);return i&&t.push(i),t},[]);return Y(t)?o[0]:o}kt.version="4.3.0",kt.defaults=k,kt.setDefaults=function(t){Object.keys(t).forEach(function(e){k[e]=t[e]})},kt.hideAll=pt,kt.group=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=e.delay,n=void 0===i?t[0].props.delay:i,o=e.duration,s=void 0===o?0:o,r=!1;function a(t){r=t,d()}function l(e){e._originalProps.onShow(e),t.forEach(function(t){t.set({duration:s}),t.hide()}),a(!0)}function u(t){t._originalProps.onHide(t),a(!1)}function c(t){t._originalProps.onShown(t),t.set({duration:t._originalProps.duration})}function d(){t.forEach(function(t){t.set({onShow:l,onShown:c,onHide:u,delay:r?[0,Array.isArray(n)?n[1]:n]:n,duration:r?s:t._originalProps.duration})})}t.forEach(function(t){t._originalProps?t.set(t._originalProps):t._originalProps=f({},t.props)}),d()},w&&setTimeout(function(){z(document.querySelectorAll("[data-tippy]")).forEach(function(t){var e=t.getAttribute("data-tippy");e&&kt(t,{content:e})})}),function(t){if(w){var e=document.createElement("style");e.type="text/css",e.textContent=t;var i=document.head,n=i.firstChild;n?i.insertBefore(e,n):i.appendChild(e)}}('.tippy-iOS{cursor:pointer!important;-webkit-tap-highlight-color:transparent}.tippy-popper{transition-timing-function:cubic-bezier(.165,.84,.44,1);max-width:calc(100% - 8px);pointer-events:none;outline:0}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-7px;bottom:-6.5px;-webkit-transform-origin:50% 0;transform-origin:50% 0;margin:0 3px}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;bottom:-7px;margin:0 3px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 25%;transform-origin:0 25%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-55%);transform:scale(1) translate(-50%,-55%)}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%,-45%);transform:scale(.2) translate(-50%,-45%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(-10px) rotateX(0);transform:perspective(700px) translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(60deg);transform:perspective(700px) translateY(0) rotateX(60deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px) scale(.5);transform:translateY(-10px) scale(.5)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-7px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;margin:0 3px}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;top:-7px;margin:0 3px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-45%);transform:scale(1) translate(-50%,-45%)}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%);transform:scale(.2) translate(-50%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(10px) rotateX(0);transform:perspective(700px) translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(-60deg);transform:perspective(700px) translateY(0) rotateX(-60deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px) scale(.5);transform:translateY(10px) scale(.5)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-12px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%;margin:3px 0}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-75%,-50%);transform:scale(.2) translate(-75%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(-10px) rotateY(0);transform:perspective(700px) translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(-60deg);transform:perspective(700px) translateX(0) rotateY(-60deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px) scale(.5);transform:translateX(-10px) scale(.5)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-12px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%;margin:3px 0}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-25%,-50%);transform:scale(.2) translate(-25%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(10px) rotateY(0);transform:perspective(700px) translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(60deg);transform:perspective(700px) translateX(0) rotateY(60deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px) scale(.5);transform:translateX(10px) scale(.5)}.tippy-tooltip{position:relative;color:#fff;border-radius:.25rem;font-size:.875rem;padding:.3125rem .5625rem;line-height:1.4;text-align:center;background-color:#333}.tippy-tooltip[data-size=small]{padding:.1875rem .375rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.375rem .75rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:18px;height:7px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;background-color:#333;border-radius:50%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:"";float:left;padding-top:100%}.tippy-backdrop+.tippy-content{transition-property:opacity;will-change:opacity}.tippy-backdrop+.tippy-content[data-state=visible]{opacity:1}.tippy-backdrop+.tippy-content[data-state=hidden]{opacity:0}');var xt=kt;var Et=class{constructor(t){this.buttonObject=t,this.buttonObject.stylingObject=this,this.groupHolder=null,this.buttonTitle=null,this.manageButtonMenu=null}build(){let t=document.createElement("div");return t.className="button-group-holder",t.appendChild(this.createTitleField()),t.appendChild(this.createButtonMobileDesktop()),t.appendChild(this.createButtonHolderButton()),t.appendChild(this.createQuickMenu()),this.groupHolder=t,t}createButtonHolderButton(){let t=document.createElement("a");t.href="javascript:void(0)",t.className="holder-button";let e=document.createElement("i");return e.className="fas fa-ellipsis-v",t.appendChild(e),t.addEventListener("click",()=>{let t=this.groupHolder.className.indexOf("holder-show-quick-menu");jQuery(".holder-show-quick-menu").removeClass("holder-show-quick-menu"),-1===t&&this.groupHolder.classList.add("holder-show-quick-menu")}),t}createQuickMenu(){let t=document.createElement("div");return t.className="group-holder-quick-menu",t.addEventListener("click",()=>{this.groupHolder.classList.remove("holder-show-quick-menu")}),t.appendChild(this.createQuickMenuButton("fas fa-wrench",window.Buttonizer.translate("common.settings"),()=>this.revealSettings(),"settings")),t.appendChild(this.createQuickMenuButton("fas fa-cog",window.Buttonizer.translate("utils.advanced_settings"),()=>this.buttonObject.windowObject.toggle(),window.Buttonizer.hasPremium()?"":"buttonizer-premium-gray-out")),t.appendChild(this.createQuickMenuButton("fas fa-pencil-alt",window.Buttonizer.translate("utils.rename"),()=>this.buttonRename(),"")),t.appendChild(this.createQuickMenuButton("far fa-copy",window.Buttonizer.translate("utils.duplicate"),()=>this.buttonDuplicate(),"")),t.appendChild(this.createQuickMenuButton("far fa-trash-alt",window.Buttonizer.translate("utils.delete"),()=>this.buttonDelete(),"delete")),this.manageButtonMenu=t,t}createQuickMenuButton(t,e,i,n=""){let o=document.createElement("a");o.href="javascript:void(0)",o.className=n;let s=document.createElement("i");return s.className=t,o.appendChild(s),o.innerHTML+=e,o.addEventListener("click",t=>i(t)),o}createTitleField(){let t=document.createElement("div");t.className+="button-title-holder";let e=document.createElement("input");e.type="text",e.className="group-title",e.value=this.buttonObject.data.name,e.setAttribute("readonly",""),e.id="buttonizer-button-title";let i=document.createElement("a");return i.href="javascript:void(0)",i.className="group-rename",i.innerHTML="<i class='fa fa-pencil-alt'></i>",e.addEventListener("change",()=>this.updateTitle()),e.addEventListener("keyup",t=>{13===t.keyCode?this.updateTitle():27===t.keyCode&&(e.value=this.buttonObject.data.name,e.setAttribute("readonly",""))}),e.addEventListener("click",t=>{jQuery(".holder-show-quick-menu").removeClass("holder-show-quick-menu"),t.isTrusted&&e.hasAttribute("readonly")&&this.revealSettings()}),this.buttonTitle=e,t.appendChild(e),t.appendChild(i),e}updateTitle(){this.buttonObject.data.name=this.buttonTitle.value,window.Buttonizer.buttonChanges=!0,this.buttonTitle.setAttribute("readonly","")}buttonRename(){this.buttonTitle.hasAttribute("readonly")&&(this.buttonTitle.removeAttribute("readonly"),this.buttonTitle.focus())}buttonDelete(){1!==this.buttonObject.groupObject.getButtonsAlive()?new s({title:window.Buttonizer.translate("bar.buttons.delete_button.window_title_button"),content:"<p>"+window.Buttonizer.translate("bar.buttons.delete_button.question_remove_button").format(this.buttonObject.data.name)+"</p>",onConfirm:()=>{this.buttonObject.removeButton()},buttons:[{text:window.Buttonizer.translate("modal.changed_my_mind"),close:!0,focus:!0},{text:window.Buttonizer.translate("utils.delete"),confirm:!0}]}):new s({title:window.Buttonizer.translate("bar.buttons.delete_button.window_title_button"),content:"<p>"+window.Buttonizer.translate("bar.buttons.delete_button.cannot_delete")+"</p>",buttons:[{text:window.Buttonizer.translate("modal.close"),close:!0,focus:!0,confirm:!0}]})}buttonDuplicate(){let t=new RegExp(this.buttonObject.data.name+" - Copy \\([0-9]+\\)"),e=this.buttonObject.data.name+" - Copy";for(let i=0;i<this.buttonObject.groupObject.buttons.length;i++)if(this.buttonObject.groupObject.buttons[i].data.name.match(t)){let n=this.buttonObject.groupObject.buttons[i].data.name.match(t).toString().match(/- Copy \([0-9]+\)/).toString(),o=parseInt(n.replace(/\D/g,""));e=this.buttonObject.data.name+` - Copy (${o+1})`}else this.buttonObject.groupObject.buttons[i].data.name!==e||this.buttonObject.groupObject.buttons[i].data.name.match(t)||(e+=" (2)");let i={};for(let t in this.buttonObject.data)i[t]=this.buttonObject.data[t];i.name=e,new we(this.buttonObject.groupObject,i),window.Buttonizer.buttonChanges=!0}createButtonMobileDesktop(){let t=document.createElement("a");t.href="javascript:void(0)",t.className="mobile-desktop",t.innerHTML="&nbsp;";let e=document.createElement("i");e.className="mobile-preview",e.innerHTML='<i class="fa fa-mobile-alt"></i>';let i=document.createElement("i");i.className="desktop-preview",i.innerHTML='<i class="fa fa-desktop"></i>',"true"!==this.buttonObject.data.show_mobile&&void 0!==this.buttonObject.data.show_mobile||(e.className+=" selected"),"true"!==this.buttonObject.data.show_desktop&&void 0!==this.buttonObject.data.show_desktop||(i.className+=" selected");let n=document.createElement("div");return n.className="new-button-visibility",n.appendChild(this.createMobile(e)),n.appendChild(this.createDesktop(i)),t.appendChild(n),t.appendChild(e),t.appendChild(i),t}createMobile(t){let e=document.createElement("a");e.href="javascript:void(0)",e.className="visibility-deskmobi";let i=document.createElement("i");return i.className="fa fa-mobile-alt",e.appendChild(i),this.buttonObject.registerUI("show_mobile",{update:i=>{!0===i||"true"===i?(e.classList.add("selected"),t.classList.add("selected")):(e.classList.remove("selected"),t.classList.remove("selected"))}}),this.buttonObject.getUI("show_mobile").forEach(t=>t.update(this.buttonObject.get("show_mobile"))),e.addEventListener("click",()=>{let t=this.buttonObject.get("show_mobile",!0);this.buttonObject.set("show_mobile",!(!0===t||"true"===t))}),e}createDesktop(t){let e=document.createElement("a");e.href="javascript:void(0)",e.className="visibility-deskmobi";let i=document.createElement("i");return i.className="fa fa-desktop",e.appendChild(i),this.buttonObject.registerUI("show_desktop",{update:i=>{!0===i||"true"===i?(e.classList.add("selected"),t.classList.add("selected")):(e.classList.remove("selected"),t.classList.remove("selected"))}}),this.buttonObject.getUI("show_desktop").forEach(t=>t.update(this.buttonObject.get("show_desktop"))),e.addEventListener("click",()=>{let t=this.buttonObject.get("show_desktop",!0);this.buttonObject.set("show_desktop",!(!0===t||"true"===t))}),e}revealSettings(){this.buttonObject.revealSettings()}};class Bt{constructor(t){this.state=void 0!==t.state&&"true"==t.state,this.onChange=void 0===t.onChange?function(){console.log("FormBoolean: No binding. Use FormBoolean.onChange()")}:t.onChange,this.disabled=void 0!==t.disabled&&t.disabled,this.visible=void 0===t.visible||t.visible,this.element=HTMLElement}build(){this.element=document.createElement("a"),this.element.href="javascript:void(0)",this.element.className="buttonizer-boolean "+(!0===this.state?"boolean-selected":""),this.element.addEventListener("click",()=>this.toggle());let t=document.createElement("div");return t.className="buttonizer-boolean-circle",this.element.appendChild(t),this.element}hide(){this.element.style.display="none"}show(){this.element.style.display="block"}onToggle(t){this.onChange=t}toggle(){this.disabled?console.log("Sorry, you're not able to edit this"):(this.state=!this.state,!0===this.state?this.element.classList.add("boolean-selected"):this.element.classList.remove("boolean-selected"),this.onChange(this.state))}}class zt{constructor(t,e,i){this.title=t,this.settingHolderContent=e,this.className=void 0!==i&&i}build(){let t=document.createElement("div");t.className="buttonizer-setting-row "+(!1===this.className?"":this.className),t.style.marginTop="10px";let e=document.createElement("div");e.className="buttonizer-setting-row-c1",e.innerHTML=this.title;let i=document.createElement("div");return i.className="buttonizer-setting-row-c2",i.appendChild(this.settingHolderContent),t.appendChild(e),t.appendChild(i),t}}class Ct{constructor(t){this.buttonAction=t}build(t){let e=this.buttonAction.inputText();return e.placeholder=void 0===t?"https://www.domain.ltd/page ":t,e.addEventListener("keyup",()=>this.change(e.value)),""!==this.buttonAction.value&&(e.value=this.buttonAction.value),e}change(t){this.valid(t)&&this.buttonAction.removeError(),this.buttonAction.updateButtonActionValue(t)}valid(t){let e=!1;return/(http|https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%!\-\/]))?/.test(t)||"?"===t.substring(0,1)||"#"===t.substring(0,1)?-1===t.indexOf("https://")&&"#"!==t.substring(0,1)&&(e="<p>"+window.Buttonizer.translate("settings.button_action.actions.url.insecure")+'</p><p><a href="https://community.buttonizer.pro/knowledgebase/19" target="_blank" style="text-decoration: none;">More info &raquo;</a></p>'):e="<p>"+window.Buttonizer.translate("settings.button_action.actions.url.invalid")+"</p><p>"+window.Buttonizer.translate("settings.button_action.actions.url.invalid_tip")+"</p>",!1===e||(this.buttonAction.addError(e),!1)}}class jt{constructor(t,e=!1){this.buttonAction=t,this.numbersOnly=e}build(t){let e=document.createElement("div"),i=this.buttonAction.inputText();return i.placeholder=void 0===t?"Add text here":t,i.addEventListener("keyup",()=>this.change(i.value)),""!==this.buttonAction.value&&(i.value=this.buttonAction.value),e.appendChild(i),this.numbersOnly&&(this.numbersOnlyField=document.createElement("div"),this.numbersOnlyField.className="field-error",this.numbersOnlyField.innerHTML=window.Buttonizer.translate("warnings.only_numbers"),this.numbersOnlyField.style.display="none",e.appendChild(this.numbersOnlyField)),e}change(t){this.numbersOnly&&(isNaN(t)?this.numbersOnlyField.style.display="block":this.numbersOnlyField.style.display="none"),this.buttonAction.updateButtonActionValue(t)}}class St{constructor(t){this.buttonAction=t}build(){let t=this.buttonAction.inputText();return t.placeholder="(000) 123 456 78",t.addEventListener("keyup",()=>this.change(t.value)),""!==this.buttonAction.value&&(t.value=this.buttonAction.value),t}change(t){this.valid(t)&&this.buttonAction.removeError(),this.buttonAction.updateButtonActionValue(t)}valid(t){let e=!1;return t=(t=t.replace("+","")).replace(" ",""),/^(?=.*\d)[\d ]+$/.test(t)||(e="<p>"+window.Buttonizer.translate("warnings.invalid_phone_number")+"</p>"),!1===e||(this.buttonAction.addError(e),!1)}}class Lt{constructor(t){this.buttonAction=t}build(){let t=this.buttonAction.inputText();return t.placeholder="account@domain.tld",t.addEventListener("keyup",()=>this.change(t.value)),""!==this.buttonAction.value&&(t.value=this.buttonAction.value),t}change(t){this.valid(t)&&this.buttonAction.removeError(),this.buttonAction.updateButtonActionValue(t)}valid(t){let e=!1;return t=(t=t.replace("+","")).replace(" ",""),/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,10})+$/.test(t)||(e="<p>"+window.Buttonizer.translate("warnings.invalid_email")+"</p>"),!1===e||(this.buttonAction.addError(e),!1)}}i(6);class Ot{constructor(t){this.buttonAction=t}build(){let t=document.createElement("select");return t.className="buttonizer-select-action",t.appendChild(this.add("facebook",window.Buttonizer.translate("settings.button_action.actions.share_page_on").format("Facebook"))),t.appendChild(this.add("twitter",window.Buttonizer.translate("settings.button_action.actions.share_page_on").format("Twitter"))),t.appendChild(this.add("whatsapp",window.Buttonizer.translate("settings.button_action.actions.share_page_on").format("Whatsapp"))),t.appendChild(this.add("linkedin",window.Buttonizer.translate("settings.button_action.actions.share_page_on").format("LinkedIn"))),t.appendChild(this.add("pinterest",window.Buttonizer.translate("settings.button_action.actions.share_page_on").format("Pinterest"))),t.appendChild(this.add("mail",window.Buttonizer.translate("settings.button_action.actions.share_page_via").format("email"))),t.addEventListener("change",()=>{this.buttonAction.updateButtonActionValue(t.value)}),t}add(t,e){let i=document.createElement("option");return i.text=e,t===this.buttonAction.value&&(i.selected=!0),i.value=t,i}}class Tt{constructor(t){this.element=document.createElement("div"),this.errorElement=document.createElement("div"),this.buttonSettingsObject=t,this.dropdown=null,this.value=void 0!==this.buttonSettingsObject.buttonObject.data.action?this.buttonSettingsObject.buttonObject.data.action:""}build(){this.element.style.marginTop="10px",this.dropdown=document.createElement("select"),this.dropdown.style.width="199px",this.dropdown.className="buttonizer-select-action",this.dropdown.appendChild(this.selectGroup(window.Buttonizer.translate("settings.button_action.actions.group_popular"),[{value:"url",text:"Website URL"},{value:"phone",text:window.Buttonizer.translate("settings.button_action.actions.phone_number")},{value:"mail",text:window.Buttonizer.translate("settings.button_action.actions.mail")},{value:"whatsapp",text:"WhatsApp chat"},{value:"backtotop",text:window.Buttonizer.translate("settings.button_action.actions.back_to_top")},{value:"gobackpage",text:window.Buttonizer.translate("settings.button_action.actions.go_back_one_page")},{value:"socialsharing",text:"Social Sharing"},{value:"javascript_pro",text:"Javascript function"}])),this.dropdown.appendChild(this.selectGroup(window.Buttonizer.translate("settings.button_action.actions.group_chat"),[{value:"sms",text:"SMS"},{value:"messenger_chat",text:"Facebook Messenger Chat Widget"},{value:"messenger",text:"Facebook Messenger Link"},{value:"twitter_dm",text:"Twitter DM"},{value:"skype",text:"Skype"},{value:"snapchat",text:"Snapchat"},{value:"line",text:"LINE"},{value:"telegram",text:"Telegram"},{value:"wechat",text:"WeChat"},{value:"viber",text:"Viber"}])),this.dropdown.appendChild(this.selectGroup(window.Buttonizer.translate("settings.button_action.actions.group_social_media"),[{value:"facebook",text:"Facebook"},{value:"twitter",text:"Twitter"},{value:"instagram",text:"Instagram"},{value:"linkedin",text:"LinkedIn"},{value:"vk",text:"VKontakte"},{value:"poptin",text:"Poptin"},{value:"waze",text:"Waze"}])),this.dropdown.appendChild(this.selectGroup(window.Buttonizer.translate("settings.button_action.actions.group_popup"),[{value:"poptin",text:"Poptin"},{value:"elementor_popup",text:"Elementor Popup"},{value:"popup_maker",text:"Popup Maker"}]));let t=document.createElement("div");return xt(t.appendChild(new zt("<label for='label-always-open'>"+window.Buttonizer.translate("settings.button_action.title")+"</label>",this.dropdown).build()).firstChild.firstChild,{content:window.Buttonizer.translate("settings.button_action.description"),animation:"shift-away",arrow:!0,hideOnClick:!1}),t.appendChild(this.element),t.appendChild(this.errorElement),this.changeForm(this.buttonSettingsObject.buttonObject.data.type),jQuery(this.dropdown).chosen({placeholder_text_single:window.Buttonizer.translate("settings.button_action.select"),no_results_text:window.Buttonizer.translate("settings.button_action.search_not_found"),hide_results_on_select:!1}).change(()=>this.update(this.dropdown.value)),t}add(t,e){let i=document.createElement("option");return i.text=e,t===this.buttonSettingsObject.buttonObject.data.type&&(i.selected=!0),-1===t.indexOf("pro")||window.Buttonizer.hasPremium()?i.value=t:(i.disabled=!0,i.text+=" (PRO ONLY)"),i}update(t,e=!1){if("javascript_pro"===this.buttonSettingsObject.buttonObject.data.type&&"javascript_pro"!==t){if(!e)return void new s({title:"<i class='fas fa-exclamation window-icon'></i> "+window.Buttonizer.translate("settings.button_action.actions.javascript.warning_modal_title"),content:"<p>"+window.Buttonizer.translate("settings.button_action.actions.javascript.warning_intro")+"</p><p>"+window.Buttonizer.translate("settings.button_action.actions.javascript.warning_question")+"</p>",class:"warning-red",buttons:[{text:window.Buttonizer.translate("modal.changed_my_mind"),close:!0,focus:!0,cancel:!0},{text:window.Buttonizer.translate("modal.yes_please"),close:!0,confirm:!0}],onConfirm:()=>{this.value="",this.update(t,!0)},onCancel:()=>{this.buttonSettingsObject.buttonObject.data.type="javascript_pro",jQuery(this.dropdown).val("javascript_pro")}})}else"socialsharing"===t?this.buttonSettingsObject.buttonObject.data.action="facebook":"socialsharing"===this.buttonSettingsObject.buttonObject.data.type&&(this.value="");this.buttonSettingsObject.buttonObject.data.type=t,window.Buttonizer.buttonChanges=!0,this.removeError(),this.changeForm(t)}updateButtonActionValue(t){this.buttonSettingsObject.buttonObject.data.action=t,window.Buttonizer.buttonChanges=!0,this.value=t}changeForm(t){this.element.innerHTML="";let e=new Bt({state:void 0===typeof this.buttonSettingsObject.buttonObject.data.action_new_tab?"false":this.buttonSettingsObject.buttonObject.data.action_new_tab});if(e.onToggle(t=>{this.buttonSettingsObject.buttonObject.data.action_new_tab=t,window.Buttonizer.buttonChanges=!0}),"phone"===t||"sms"===t||"viber"===t)this.element.appendChild(new St(this).build()),this.addKnowledgeBaseLink();else if("mail"===t)this.element.appendChild(new Lt(this).build());else if("whatsapp_pro"===t||"whatsapp"===t){this.element.appendChild(new St(this).build());let t=document.createElement("p");t.innerHTML=window.Buttonizer.translate("settings.button_action.actions.whatsapp_info"),this.element.appendChild(t)}else if("socialsharing"===t)this.element.appendChild(new Ot(this).build());else{if("backtotop"===t||"gobackpage"===t)return;if("skype"===t||"telegram"===t||"twitter"===t||"snapchat"===t||"instagram"===t||"vk"===t)this.element.appendChild(new jt(this).build("Username")),this.addKnowledgeBaseLink();else if("twitter_dm"===t){this.element.appendChild(new jt(this,!0).build("Account ID"));let t=document.createElement("p");t.innerHTML='When you want to use Twitter DM you will need to find your Twitter User ID and allow direct messages from anyone. To find your account ID <a href="https://tweeterid.com/" target="_blank">click here</a>. And to read more about how to allow direct messages from anyone, <a href="https://help.twitter.com/nl/using-twitter/direct-messages#receive" target="_blank">click here</a>.',this.element.appendChild(t)}else if("messenger"===t)this.element.appendChild(new Ct(this).build("https://m.me/YOUR-PAGE-NAME")),this.addKnowledgeBaseLink();else if("messenger_chat"===t){this.element.appendChild(new jt(this).build("Facebook page ID"));let t=document.createElement("p");t.innerHTML=window.Buttonizer.translate("settings.button_action.actions.messenger_chat"),this.element.appendChild(t),this.addKnowledgeBaseLink(59,"Facebook Messenger Chat Widget")}else if("facebook"===t)this.element.appendChild(new jt(this).build("Facebook username/page")),this.addKnowledgeBaseLink();else if("linkedin"===t)this.element.appendChild(new jt(this).build('"company/COMPANY-NAME" or "in/USERNAME"')),this.addKnowledgeBaseLink();else if("line"===t)this.element.appendChild(new jt(this).build("LINE_id"));else if("wechat"===t)this.element.appendChild(new jt(this).build("User ID"));else if("waze"===t)this.element.appendChild(new Ct(this).build("https://www.waze.com/ul?q=Netherlands"));else if("popup_maker"===t)this.element.appendChild(new jt(this).build("URL trigger")),this.addKnowledgeBaseLink(57,"Popup maker");else if("elementor_popup"===t)this.element.appendChild(new jt(this).build("Trigger")),this.addKnowledgeBaseLink(57,"Elementor popup");else if("poptin"===t){this.element.appendChild(new Ct(this).build("https://app.popt.in/APIRequest/click/0c768294b0605"));let t=document.createElement("p");t.innerHTML=window.Buttonizer.translate("settings.button_action.actions.poptin"),this.element.appendChild(t),this.addKnowledgeBaseLink(57)}else this.element.appendChild(new Ct(this).build()),xt(this.element.appendChild(new zt("<label for='label-always-open'>"+window.Buttonizer.translate("settings.open_new_tab.title")+":</label>",e.build(),"is-boolean-only").build()).firstChild.firstChild,{content:window.Buttonizer.translate("settings.open_new_tab.description"),animation:"shift-away",arrow:!0,hideOnClick:!1}),this.addKnowledgeBaseLink()}}addKnowledgeBaseLink(t="",e=""){let i=document.createElement("a");i.className="info-link has-margin-everywhere",i.innerHTML=""===e?window.Buttonizer.translate("utils.visit_knowledgebase"):window.Buttonizer.translate("utils.knowledge_link").format(e),i.href="https://community.buttonizer.pro/knowledgebase"+(""===t?"":"/"+t),i.target="_blank",this.element.appendChild(i)}inputText(){let t=document.createElement("input");return t.type="text",t.style.display="block",t.style.width="100%",t.className="buttonizer-input-action",t}addError(t){this.errorElement.innerHTML="";let e=document.createElement("div");e.innerHTML=t,e.className="field-error-container",this.errorElement.appendChild(e)}removeError(){this.errorElement.innerHTML=""}selectGroup(t,e){let i=document.createElement("optgroup");i.label=t;for(let t of e)i.appendChild(this.add(t.value,t.text));return i}}class Nt{constructor(t){this.parentObject=void 0!==t.parentObject?t.parentObject:null,this.rowName=void 0!==t.rowName?t.rowName:null,this.title=void 0!==t.title?t.title:"",this.description=void 0!==t.description?t.description:null,this.wrap=void 0!==t.wrap&&t.wrap,this.content=void 0!==t.content?t.content:[],this.className=void 0!==t.class?t.class:[],this.customBuild=void 0!==t.useCustomBuild&&t.useCustomBuild,this.hidden=void 0!==t.hidden&&t.hidden,this.element=document.createElement("div"),null!==this.parentObject?null!==this.rowName&&this.parentObject.registerUI(this.rowName+"-container",this):null!==this.rowName&&null===this.parentObject&&console.error("Row name '"+this.rowName+"' is set, but no parent has been set")}build(){this.element.className="buttonizer-setting-row "+(!1===this.className?"":this.className),this.element.style.marginTop="10px",this.hidden&&(this.element.style.display="none");let t=document.createElement("div");t.className="buttonizer-setting-row-c1";let e=document.createElement("label");e.innerHTML=this.title,null!==this.description&&xt(e,{content:this.description,animation:"shift-away",arrow:!0,hideOnClick:!1}),t.appendChild(e);let i=document.createElement("div");i.className="buttonizer-setting-row-c2";for(const t in this.content)i.appendChild(this.customBuild?this.content[t]():this.content[t].build());return this.wrap&&(i.style["flex-wrap"]="wrap"),this.element.appendChild(t),this.element.appendChild(i),this.element}hide(){this.element.style.display="none"}show(){this.element.style.display=""}}class At{constructor(t){this.parent=t.parentObject,this.element=document.createElement("div"),this.dataEntry=t.dataEntry,this.default=void 0===t.default?"":t.default,this.callback=void 0===t.callback?()=>{}:t.callback,this.onClick=void 0===t.onClick?null:t.onClick,this.input=HTMLElement,this.onlyNumbers=void 0!==t.onlyNumbers&&t.onlyNumbers,this.parent.registerUI(this.dataEntry,this),this.placeholder=void 0===t.placeholder?"":t.placeholder,this.title=void 0===t.title?"":t.title,this.fieldWidth=void 0===t.width?"default":t.width,this.hidden=void 0!==t.hidden&&t.hidden}build(){this.element=document.createElement("div"),this.element.className="buttonizer-input-container is-textfield input-field-width-"+this.fieldWidth,this.element.style.marginRight="7px";let t=document.createElement("div");t.className="buttonizer-input-item";let e=document.createElement("input");e.type="text",e.value=this.parent.get(this.dataEntry,this.default),this.onlyNumbers&&e.addEventListener("keyup",t=>{(isNaN(e.value)||e.value<0)&&(e.value=this.default,new s({title:window.Buttonizer.translate("errors.forms.only_numbers"),content:"<p>"+window.Buttonizer.translate("errors.forms.only_numbers_info")+"</p>",buttons:[{text:window.Buttonizer.translate("modal.close"),close:!0,focus:!0}]}))}),null!==this.onClick&&e.addEventListener("click",t=>this.onClick(t,e)),e.addEventListener("change",()=>{this.onlyNumbers&&(isNaN(e.value)||e.value<0)&&(e.value=this.default),this.parent.set(this.dataEntry,e.value)}),""!==this.placeholder&&e.setAttribute("placeholder",this.placeholder),t.appendChild(e),this.element.appendChild(t);let i=document.createElement("div");return i.className="buttonizer-input-info",i.innerHTML=this.title,this.element.appendChild(i),this.input=e,this.hidden&&this.hide(),""!==this.title?this.element:(this.input.className="buttonizer-input-only",this.input)}hide(){this.element.style.display="none",this.input.style.display="none"}show(){this.element.style.display="",this.input.style.display=""}update(t){this.input.value=t,this.callback(t)}}class It{constructor(t){this.parentObject=t.parentObject,this.element=document.createElement("a"),this.dataEntry=t.dataEntry,this.state=this.parentObject.get(this.dataEntry,t.default),this.parentObject.registerUI(this.dataEntry,this),this.disabled=void 0!==t.disabled&&t.disabled,this.visible=void 0===t.visible||t.visible,this.callback=void 0!==t.callback?t.callback:t=>{}}build(){this.element.href="javascript:void(0)",this.element.className="buttonizer-boolean "+(!0===this.state||"true"===this.state?"boolean-selected":""),this.element.addEventListener("click",()=>this.toggle());let t=document.createElement("div");return t.className="buttonizer-boolean-circle",this.element.appendChild(t),this.element}hide(){this.element.style.display="none"}show(){this.element.style.display="block"}toggle(){this.disabled?console.log("Sorry, you're not able to edit this"):(!0===this.state||"true"===this.state?this.state=!1:this.state=!0,this.parentObject.set(this.dataEntry,this.state),void 0!==this.callback&&this.callback(this.state))}update(t){this.state=t,!0===t||"true"===t?this.element.classList.contains("boolean-selected")||this.element.classList.add("boolean-selected"):this.element.classList.contains("boolean-selected")&&this.element.classList.remove("boolean-selected"),this.callback(t)}}class Mt extends Nt{constructor(t){super({title:window.Buttonizer.translate("settings.label.title"),description:window.Buttonizer.translate("settings.label.description"),wrap:!0,class:"form-has-extra-fields",content:[new At({parentObject:t,dataEntry:"label",default:t.get("label"),placeholder:window.Buttonizer.translate("settings.label.placeholder")})]})}}var qt=i(5),Ht=i(2);const Pt="url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2'%3E%3Cpath d='M1,0H0V1H2V2H1' fill='lightgrey'/%3E%3C/svg%3E\")",Dt=360,Ft="keydown",Rt="mousedown",Wt="focusin";function Ut(t,e){return(e||document).querySelector(t)}function Gt(t,e,i){t.addEventListener(e,i,!1)}function Qt(t){t.preventDefault(),t.stopPropagation()}function $t(t,e,i,n){Gt(t,Ft,function(t){e.indexOf(t.key)>=0&&(n&&Qt(t),i(t))})}const Yt=document.createElement("style");Yt.textContent=".picker_wrapper.no_alpha .picker_alpha{display:none}.picker_wrapper.no_editor .picker_editor{position:absolute;z-index:-1;opacity:0}.layout_default.picker_wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{margin:.5em}.layout_default.picker_wrapper::before{content:'';display:block;width:100%;height:0;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.layout_default .picker_sl::before{content:'';display:block;padding-bottom:100%}.layout_default .picker_editor{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1;width:6rem}.layout_default .picker_editor input{width:calc(100% + 2px);height:calc(100% + 2px)}.layout_default .picker_sample{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.layout_default .picker_done{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.picker_wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;background:#f2f2f2;-webkit-box-shadow:0 0 0 1px silver;box-shadow:0 0 0 1px silver;cursor:default;font-family:sans-serif;color:#444;pointer-events:auto}.picker_wrapper:focus{outline:none}.picker_wrapper button,.picker_wrapper input{margin:-1px}.picker_selector{position:absolute;z-index:1;display:block;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border:2px solid white;border-radius:100%;-webkit-box-shadow:0 0 3px 1px #67b9ff;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:-webkit-gradient(linear, left top, right top, from(red), color-stop(yellow), color-stop(lime), color-stop(cyan), color-stop(blue), color-stop(magenta), to(red));background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);-webkit-box-shadow:0 0 0 1px silver;box-shadow:0 0 0 1px silver}.picker_sl{position:relative;-webkit-box-shadow:0 0 0 1px silver;box-shadow:0 0 0 1px silver;background-image:-webkit-gradient(linear, left top, left bottom, from(white), color-stop(50%, rgba(255,255,255,0))),-webkit-gradient(linear, left bottom, left top, from(black), color-stop(50%, rgba(0,0,0,0))),-webkit-gradient(linear, left top, right top, from(gray), to(rgba(128,128,128,0)));background-image:linear-gradient(180deg, white, rgba(255,255,255,0) 50%),linear-gradient(0deg, black, rgba(0,0,0,0) 50%),linear-gradient(90deg, gray, rgba(128,128,128,0))}.picker_alpha,.picker_sample{position:relative;background:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2'%3E%3Cpath d='M1,0H0V1H2V2H1' fill='lightgrey'/%3E%3C/svg%3E\") left top/contain white;-webkit-box-shadow:0 0 0 1px silver;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:monospace;padding:.1em .2em}.picker_sample::before{content:'';position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_done button{-webkit-box-sizing:border-box;box-sizing:border-box;padding:.2em .5em;cursor:pointer}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;-webkit-box-shadow:0 0 10px 1px rgba(0,0,0,0.4);box-shadow:0 0 10px 1px rgba(0,0,0,0.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:\"\";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;-webkit-transform:skew(45deg);transform:skew(45deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;-webkit-box-shadow:none;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;-webkit-transform:rotate(90deg) scale(1, -1);transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}",document.documentElement.firstElementChild.appendChild(Yt);var Vt=class{constructor(t){this.settings={popup:"right",layout:"default",alpha:!0,editor:!0,editorFormat:"hex"},this._openProxy=(t=>this.openHandler(t)),this.onChange=null,this.onDone=null,this.onOpen=null,this.onClose=null,this.setOptions(t)}setOptions(t){if(!t)return;const e=this.settings;if(t instanceof HTMLElement)e.parent=t;else{e.parent&&t.parent&&e.parent!==t.parent&&(e.parent.removeEventListener("click",this._openProxy,!1),this._popupInited=!1),function(t,e,i){for(const n in t)i&&i.indexOf(n)>=0||(e[n]=t[n])}(t,e),t.onChange&&(this.onChange=t.onChange),t.onDone&&(this.onDone=t.onDone),t.onOpen&&(this.onOpen=t.onOpen),t.onClose&&(this.onClose=t.onClose);const i=t.color||t.colour;i&&this._setColor(i)}const i=e.parent;i&&e.popup&&!this._popupInited?(Gt(i,"click",this._openProxy),$t(i,[" ","Spacebar","Enter"],this._openProxy),this._popupInited=!0):t.parent&&!e.popup&&this.show()}openHandler(t){if(this.show()){t&&t.preventDefault(),this.settings.parent.style.pointerEvents="none";const e=t&&t.type===Ft?this._domEdit:this.domElement;setTimeout(()=>e.focus(),100),this.onOpen&&this.onOpen(this.colour)}}closeHandler(t){const e=t&&t.type;let i=!1;t?("click"!==e&&e!==Ft||Qt(t),i=!0):i=!0,i&&this.hide()&&(this.settings.parent.style.pointerEvents="",e!==Rt&&this.settings.parent.focus(),this.onClose&&this.onClose(this.colour))}movePopup(t,e){this.closeHandler(),this.setOptions(t),e&&this.openHandler()}setColor(t,e){this._setColor(t,{silent:e})}_setColor(t,e){if("string"==typeof t&&(t=t.trim()),!t)return;let i;e=e||{};try{i=new qt(t)}catch(t){if(e.failSilently)return;throw t}if(!this.settings.alpha){const t=i.hsla;t[3]=1,i.hsla=t}this.colour=this.color=i,this._setHSLA(null,null,null,null,e)}setColour(t,e){this.setColor(t,e)}show(){if(!this.settings.parent)return!1;if(this.domElement){const t=this._toggleDOM(!0);return this._setPosition(),t}const t=function(t){const e=document.createElement("div");return e.innerHTML=t,e.firstElementChild}(this.settings.template||'<div class="picker_wrapper" tabindex="-1"><div class="picker_arrow"></div><div class="picker_hue picker_slider"><div class="picker_selector"></div></div><div class="picker_sl"><div class="picker_selector"></div></div><div class="picker_alpha picker_slider"><div class="picker_selector"></div></div><div class="picker_editor"><input aria-label="Type a color name or hex value"/></div><div class="picker_sample"></div><div class="picker_done"><button>Ok</button></div></div>');return this.domElement=t,this._domH=Ut(".picker_hue",t),this._domSL=Ut(".picker_sl",t),this._domA=Ut(".picker_alpha",t),this._domEdit=Ut(".picker_editor input",t),this._domSample=Ut(".picker_sample",t),this._domOkay=Ut(".picker_done button",t),t.classList.add("layout_"+this.settings.layout),this.settings.alpha||t.classList.add("no_alpha"),this.settings.editor||t.classList.add("no_editor"),this._ifPopup(()=>t.classList.add("popup")),this._setPosition(),this.colour?this._updateUI():this._setColor("#0cf"),this._bindEvents(),!0}hide(){return this._toggleDOM(!1)}_bindEvents(){const t=this,e=this.domElement;function i(t,e){function i(i,n){const o=n[0]/t.clientWidth,s=n[1]/t.clientHeight;e(o,s)}return{container:t,dragOutside:!1,callback:i,callbackDragStart:i,propagateEvents:!0}}Gt(e,"click",t=>t.preventDefault()),Ht(i(this._domH,(e,i)=>t._setHSLA(e))),Ht(i(this._domSL,(e,i)=>t._setHSLA(null,e,1-i))),this.settings.alpha&&Ht(i(this._domA,(e,i)=>t._setHSLA(null,null,null,1-i)));const n=this._domEdit;Gt(n,"input",function(e){t._setColor(this.value,{fromEditor:!0,failSilently:!0})}),Gt(n,"focus",function(t){const e=this;e.selectionStart===e.selectionEnd&&e.select()});const o=t=>{this._ifPopup(()=>this.closeHandler(t)),this.onDone&&this.onDone(this.colour)};this._ifPopup(()=>{const t=t=>this.closeHandler(t);Gt(window,Rt,t),Gt(window,Wt,t),$t(e,["Esc","Escape"],t),Gt(e,Rt,Qt),Gt(e,Wt,Qt),Gt(this._domEdit,Rt,t=>this._domEdit.focus())}),Gt(this._domOkay,"click",o),$t(e,["Enter"],o)}_setPosition(){const t=this.settings.parent,e=this.domElement;t!==e.parentNode&&t.appendChild(e),this._ifPopup(i=>{"static"===getComputedStyle(t).position&&(t.style.position="relative");const n=!0===i?"popup_right":"popup_"+i;["popup_top","popup_bottom","popup_left","popup_right"].forEach(t=>{t===n?e.classList.add(t):e.classList.remove(t)}),e.classList.add(n)})}_setHSLA(t,e,i,n,o){o=o||{};const s=this.colour,r=s.hsla;[t,e,i,n].forEach((t,e)=>{(t||0===t)&&(r[e]=t)}),s.hsla=r,this._updateUI(o),this.onChange&&!o.silent&&this.onChange(s)}_updateUI(t){if(!this.domElement)return;t=t||{};const e=this.colour,i=e.hsla,n=`hsl(${i[0]*Dt}, 100%, 50%)`,o=e.hslString,s=e.hslaString,r=this._domH,a=this._domSL,l=this._domA,u=Ut(".picker_selector",r),c=Ut(".picker_selector",a),d=Ut(".picker_selector",l);function p(t,e,i){e.style.left=100*i+"%"}function h(t,e,i){e.style.top=100*i+"%"}p(0,u,i[0]),this._domSL.style.backgroundColor=this._domH.style.color=n,p(0,c,i[1]),h(0,c,1-i[2]),a.style.color=o,h(0,d,1-i[3]);const m=o,b=m.replace("hsl","hsla").replace(")",", 0)"),f=`linear-gradient(${[m,b]})`;if(this._domA.style.backgroundImage=f+", "+Pt,!t.fromEditor){const t=this.settings.editorFormat,i=this.settings.alpha;let n;switch(t){case"rgb":n=e.printRGB(i);break;case"hsl":n=e.printHSL(i);break;default:n=e.printHex(i)}this._domEdit.value=n}this._domSample.style.color=s}_ifPopup(t,e){this.settings.parent&&this.settings.popup?t&&t(this.settings.popup):e&&e()}_toggleDOM(t){const e=this.domElement;if(!e)return!1;const i=t?"":"none",n=e.style.display!==i;return n&&(e.style.display=i),n}static get StyleElement(){return Yt}};class Xt{constructor(t){this.parent=t.parentObject,this.element=document.createElement("div"),this.dataEntry=t.dataEntry,this.default=void 0===t.default?"":t.default,this.callback=void 0===t.callback?()=>{}:t.callback,this.style=void 0===t.style?{}:t.style,this.parent.registerUI(this.dataEntry,this),this.currentColor=this.parent.get(this.dataEntry,this.default),this.title=void 0===t.title?"Color":t.title,this.timer=setTimeout(()=>{},0),this.opened=!1,this.element=HTMLElement,this.colorView=HTMLElement,this.colorPicker=HTMLElement,("#fffff"===this.currentColor||"#FFFFF"===this.currentColor||this.currentColor.length<=6)&&(this.currentColor="#FFFFFF")}build(){this.buildVisiblePicker();let t=new Vt({parent:this.element,popup:"bottom",alpha:!0,color:this.currentColor,onChange:t=>{this.currentColor!==t.rgbaString&&(this.currentColor=t.rgbaString,this.parent.set(this.dataEntry,t.rgbaString))}});return this.element.addEventListener("click",()=>{t.show()}),this.colorPicker=t,this.element}buildVisiblePicker(){this.element=document.createElement("div"),this.element.className="buttonizer-input-container is-color-picker",this.element.style.marginRight="7px";let t=document.createElement("div");t.className="buttonizer-input-item",this.colorView=document.createElement("div"),this.colorView.style.background=this.currentColor,this.colorView.className="colored-background",t.appendChild(this.colorView),this.element.appendChild(t);let e=document.createElement("div");e.className="buttonizer-input-info",e.innerHTML=this.title,this.element.appendChild(e)}onSelect(t){this.callback=t}hide(){this.element.style.display="none"}show(){this.element.style.display="block"}update(t){clearTimeout(this.timer),this.colorView.style.background=t,this.colorPicker.color=t,this.timer=setTimeout(()=>this.callback(t),1500)}}class Kt extends Nt{constructor(t){super({title:window.Buttonizer.translate("settings.icon_color.title"),description:window.Buttonizer.translate("settings.icon_color.description"),rowName:"icon-color",parentObject:t,hidden:window.Buttonizer.hasPremium()&&"true"==t.get("icon_is_image"),content:[new Xt({parentObject:t,dataEntry:"icon_color",title:window.Buttonizer.translate("utils.base"),default:"#FFFFFF",width:"space"}),new Xt({parentObject:t,dataEntry:"icon_color_interaction",title:window.Buttonizer.translate("utils.interaction"),default:"#FFFFFF",width:"space"})]})}}class Jt extends Nt{constructor(t){super({title:window.Buttonizer.translate("settings.icon_size.title"),description:window.Buttonizer.translate("settings.icon_size.description"),rowName:"icon-size",parentObject:t,hidden:window.Buttonizer.hasPremium()&&"true"==t.get("icon_is_image"),content:[new At({title:"px",placeholder:"button"===t.type?16:25,width:"space",dataEntry:"icon_size",parentObject:t,onlyNumbers:!0,default:"button"===t.type?16:25})]})}}class Zt extends Nt{constructor(t){super({title:window.Buttonizer.translate("settings.border_radius.title"),description:window.Buttonizer.translate("settings.border_radius.description"),hidden:"button"===t.type&&"false"!==t.get("use_main_button_style"),rowName:"border-radius",parentObject:t,content:[new At({parentObject:t,dataEntry:"border_radius",default:"",placeholder:50,title:"%",width:"space",onlyNumbers:!0})]})}}class te extends Nt{constructor(t){super({title:window.Buttonizer.translate("settings.font_size_border_radius.title"),description:window.Buttonizer.translate("settings.font_size_border_radius.description"),content:[new At({title:"px",placeholder:12,width:"space",dataEntry:"label_font_size",parentObject:t,onlyNumbers:!0}),new At({title:"px",placeholder:12,width:"space",dataEntry:"label_border_radius",parentObject:t,onlyNumbers:!0})]})}}class ee{constructor(t){this.parentObject=t.parentObject,this.element=document.createElement("a"),this.dataEntry=t.dataEntry,this.default=t.default,this.callback=t.callback,this.type=t.type,this.data=t,this.title=t.title,this.state=this.parentObject.get(this.dataEntry,this.default),this.parentObject.registerUI(this.dataEntry,this),this.disabled=void 0!==t.disabled&&t.disabled,this.visible=void 0===t.visible||t.visible}build(){this.element.href="javascript:void(0)",this.element.className=`buttonizer-checkbox ${"Mobile"===this.title?"mobile-checkbox":"desktop-checkbox"}`;let t=document.createElement("div");t.className="buttonizer-checkbox-box",t.innerHTML="&#10003;",this.element.appendChild(t),this.element.addEventListener("click",()=>this.toggle());let e=document.createElement("div");return e.className="buttonizer-checkbox-text",e.innerHTML=this.title,this.element.appendChild(e),this.update(this.state),this.eventListener(this.type),this.element}hide(){this.element.style.display="none"}show(){this.element.style.display="block"}toggle(){this.disabled?console.log("Sorry, you're not able to edit this"):(!0===this.state||"true"===this.state?this.parentObject.set(this.dataEntry,!1):this.parentObject.set(this.dataEntry,!0),"undefined"!=typeof callback&&this.callback(this.state))}update(t){this.state=t,!0===t||"true"===t?this.element.classList.contains("checkbox-selected")||this.element.classList.add("checkbox-selected"):this.element.classList.contains("checkbox-selected")&&this.element.classList.remove("checkbox-selected")}eventListener(t){"button"===t&&this.element.addEventListener("click",()=>{let t=this.parentObject.buttonHTMLObject.querySelector(".mobile-preview"),e=this.parentObject.buttonHTMLObject.querySelector(".fa-mobile-alt").parentElement,i=this.parentObject.buttonHTMLObject.querySelector(".desktop-preview"),n=this.parentObject.buttonHTMLObject.querySelector(".fa-desktop").parentElement;"Mobile"===this.title?t.classList.contains("selected")&&!1===this.state?(t.classList.remove("selected"),e.classList.remove("selected")):t.classList.contains("selected")||!0!==this.state||(t.classList+=" selected",e.classList+=" selected"):"Desktop"===this.title&&(i.classList.contains("selected")&&!1===this.state?(i.classList.remove("selected"),n.classList.remove("selected")):i.classList.contains("selected")||!0!==this.state||(i.classList+=" selected",n.classList+=" selected"))})}}class ie extends Nt{constructor(t){super({title:window.Buttonizer.translate("settings.show_mobile_desktop.title"),description:window.Buttonizer.translate("settings.show_mobile_desktop.description"),content:[new ee({parentObject:t,dataEntry:"show_mobile",title:window.Buttonizer.translate("settings.show_mobile_desktop.mobile"),default:!0,type:"button"===t.type?"button":"group"}),new ee({parentObject:t,dataEntry:"show_desktop",title:window.Buttonizer.translate("settings.show_mobile_desktop.desktop"),default:!0,type:"button"===t.type?"button":"group"})]})}}class ne extends Nt{constructor(t){super({title:window.Buttonizer.translate("settings.background_color.title"),description:window.Buttonizer.translate("settings.background_color.description"),hidden:"button"===t.type&&"false"!==t.get("use_main_button_style"),rowName:"background-color",parentObject:t,content:[new Xt({parentObject:t,dataEntry:"background_color",title:window.Buttonizer.translate("utils.base"),default:"#f08419"}),new Xt({parentObject:t,dataEntry:"background_color_interaction",title:window.Buttonizer.translate("utils.interaction"),default:"#ff9d3c"})]})}}class oe{constructor(t){this.parentObject=t.parentObject,this.element=document.createElement("select"),this.dataEntry=t.dataEntry,this.default=t.default,this.callback=t.callback,this.style=t.style,this.list=t.list,this.width=void 0===t.width?"199px":t.width,this.class=void 0===t.class?"buttonizer-select-drawer":t.class,this.parentObject.registerUI(this.dataEntry,this)}build(){this.element.style.width=this.width,this.element.className=this.class,this.element.addEventListener("change",t=>{this.parentObject.set(this.dataEntry,this.element.value)});for(let t in this.list){let e=this.list[t],i=document.createElement("option");i.text=e.text,i.value=e.value,i.selected=void 0!==typeof this.selected&&this.selected===e.value,this.element.appendChild(i)}return this.element.value=this.parentObject.get(this.dataEntry,this.default),this.element}hide(){this.element.style.display="none"}show(){this.element.style.display="block"}update(t){this.element.value=t,void 0!==this.callback&&this.callback(t,this)}}class se extends Nt{constructor(t){super({title:'<span class="setting-icon"><i class="fa fa-desktop"></i></span> '+window.Buttonizer.translate("settings.label_desktop.title"),description:window.Buttonizer.translate("settings.label_desktop.description"),content:[new oe({parentObject:t,dataEntry:"show_label_desktop",default:"always",list:[{value:"always",text:window.Buttonizer.translate("settings.label_styles.always")},{value:"hover",text:window.Buttonizer.translate("settings.label_styles.hover")},{value:"hide",text:window.Buttonizer.translate("settings.label_styles.hide")}]})]})}}class re extends Nt{constructor(t){super({title:'<span class="setting-icon"><i class="fa fa-mobile-alt"></i></span> '+window.Buttonizer.translate("settings.label_mobile.title"),description:window.Buttonizer.translate("settings.label_mobile.description"),content:[new oe({parentObject:t,dataEntry:"show_label_mobile",default:"always",list:[{value:"always",text:window.Buttonizer.translate("settings.label_styles.always")},{value:"hide",text:window.Buttonizer.translate("settings.label_styles.hide")}]})]})}}class ae extends Nt{constructor(t){super({title:window.Buttonizer.translate("settings.label_color.title"),description:window.Buttonizer.translate("settings.label_color.description"),hidden:"button"===t.type&&"false"!==t.get("use_main_button_style"),rowName:"label-color",parentObject:t,content:[new Xt({parentObject:t,dataEntry:"label_color",title:window.Buttonizer.translate("utils.text"),default:"#FFFFFF"}),new Xt({parentObject:t,dataEntry:"label_background_color",title:window.Buttonizer.translate("utils.background"),default:"#4E4C4C"})]})}}class le extends Nt{constructor(t){super({title:window.Buttonizer.translate("settings.icon.title"),description:window.Buttonizer.translate("settings.icon.description"),rowName:"icon",parentObject:t,hidden:window.Buttonizer.hasPremium()&&"true"==t.get("icon_is_image"),content:[new At({parentObject:t,dataEntry:"icon",default:"fa fa-user",onClick:(t,e)=>{window.Buttonizer.iconSelector.open(e)}})]})}}class ue{constructor(t){this.parentObject=t.parentObject,this.button=null,this.selectedImage=null,this.dataEntry=void 0===t.dataEntry?null:t.dataEntry,this.default=void 0===t.default?"":t.default,this.value=t.parentObject.get(t.dataEntry,""),this.callback=t.callback,this.parentObject.registerUI(this.dataEntry,this)}build(){return this.buildFree()}buildFree(){let t=document.createElement("a");return t.className="button",t.href="javascript:void(0)",t.innerHTML='<i class="fa fa-image"></i>&nbsp;&nbsp;'+window.Buttonizer.translate("utils.select_image")+" <small>(premium)</small>",t.addEventListener("click",()=>{window.Buttonizer.showPremiumPopup("You can select images and set them as icon or as button background image.")}),t}}class ce extends Nt{constructor(t){super({title:window.Buttonizer.translate("settings.background_image.title"),description:window.Buttonizer.translate("settings.background_image.description"),hidden:"button"===t.type&&"false"!==t.get("use_main_button_style"),rowName:"background-image",parentObject:t,content:[new ue({parentObject:t,dataEntry:"background_image"})]})}}class de extends Nt{constructor(t){super({parentObject:t,title:window.Buttonizer.translate("settings.use_main_button_style.title"),description:window.Buttonizer.translate("settings.use_main_button_style.description"),class:"is-boolean-only",rowName:"use_main_button_style",content:[new It({parentObject:t,dataEntry:"use_main_button_style",default:"true",callback:t=>this.update(t)})]}),this.parent=t}update(t){!0===t||"true"===t?(this.parent.getUI("background-color-container").forEach(t=>{t.hide()}),this.parent.getUI("label-color-container").forEach(t=>{t.hide()}),this.parent.getUI("border-radius-container").forEach(t=>{t.hide()}),this.parent.getUI("background-image-container").forEach(t=>{t.hide()})):(this.parent.getUI("background-color-container").forEach(t=>{t.show()}),this.parent.getUI("label-color-container").forEach(t=>{t.show()}),this.parent.getUI("border-radius-container").forEach(t=>{t.show()}),this.parent.getUI("background-image-container").forEach(t=>{t.show()}))}}class pe{constructor(t){this.parentObject=t.parentObject,this.element=document.createElement("div"),this.dataEntry=void 0===t.dataEntry?null:t.dataEntry,this.default=void 0!==t.default&&t.default,this.state=void 0!==t.state&&"true"==t.state,this.first=void 0===t.first?"First":t.first,this.second=void 0===t.second?"Second":t.second,this.callback=t.callback,null!==this.dataEntry&&this.parentObject.registerUI(this.dataEntry,this)}build(){this.element.className="buttonizer-toggle"+(!0===this.state?" right-selected":" left-selected");let t=document.createElement("a");t.href="javascript:void(0)",t.innerHTML=this.first,t.addEventListener("click",()=>this.toggle()),this.element.appendChild(t);let e=document.createElement("a");return e.href="javascript:void(0)",e.innerHTML=this.second,e.addEventListener("click",()=>this.toggle()),this.element.appendChild(e),this.element}toggle(){null!==this.dataEntry?this.parentObject.set(this.dataEntry,!this.state):this.callback(!1)}update(t){this.state=t,!1===t?(this.element.classList.add("left-selected"),this.element.classList.remove("right-selected")):(this.element.classList.remove("left-selected"),this.element.classList.add("right-selected")),this.callback(t)}hide(){this.element.style.display="none"}show(){this.element.style.display="block"}}class he extends Nt{constructor(t){super({title:window.Buttonizer.translate("settings.icon_or_image.title"),description:window.Buttonizer.translate("settings.icon_or_image.description"),useCustomBuild:!0,content:[()=>this.buildBoolean()]}),this.parent=t}buildBoolean(){return new pe({parentObject:this.parent,state:!1,first:window.Buttonizer.translate("utils.icon"),second:window.Buttonizer.translate("utils.image")+" <small>(premium)</small>",callback:()=>{window.Buttonizer.showPremiumPopup("You can select an custom image as icon for your buttons and groups.")}}).build()}}class me extends Nt{constructor(t){super({parentObject:t,title:window.Buttonizer.translate("settings.menu_position.title"),description:window.Buttonizer.translate("settings.menu_position.description"),wrap:!0,class:"form-has-extra-fields",rowName:"position",content:[new oe({parentObject:t,dataEntry:"position",default:"bottomright",callback:t=>this.changePosition(t),list:[{value:"bottomright",text:window.Buttonizer.translate("settings.menu_position.positions.bottomright")},{value:"bottomleft",text:window.Buttonizer.translate("settings.menu_position.positions.bottomleft")},{value:"topright",text:window.Buttonizer.translate("settings.menu_position.positions.topright")},{value:"topleft",text:window.Buttonizer.translate("settings.menu_position.positions.topleft")},{value:"advanced",text:window.Buttonizer.translate("settings.menu_position.positions.advanced")}]}),new At({parentObject:t,dataEntry:"horizontal",title:"X&nbsp;&lpar;&percnt;&rpar;",width:"space",hidden:"advanced"!==t.get("position"),onlyNumbers:!0}),new At({parentObject:t,dataEntry:"vertical",title:"Y&nbsp;&lpar;&percnt;&rpar;",width:"space",hidden:"advanced"!==t.get("position"),onlyNumbers:!0})]}),this.translatedPositions={topleft:{x:95,y:95},topright:{x:5,y:95},bottomleft:{x:95,y:5},bottomright:{x:5,y:5}},this.parentObject=t}changePosition(t){"advanced"===t?(this.parentObject.getUI("horizontal").forEach(t=>t.show()),this.parentObject.getUI("vertical").forEach(t=>t.show())):(this.parentObject.getUI("horizontal").forEach(t=>t.hide()),this.parentObject.getUI("vertical").forEach(t=>t.hide()),this.parentObject.set("horizontal",this.translatedPositions[t].x),this.parentObject.set("vertical",this.translatedPositions[t].y))}}class be extends Nt{constructor(t){super({title:window.Buttonizer.translate("settings.menu_animation.title"),description:window.Buttonizer.translate("settings.menu_animation.description"),parentObject:t,rowName:"animation",content:[new oe({parentObject:t,dataEntry:"menu_animation",default:"none",list:[{value:"none",text:window.Buttonizer.translate("settings.menu_animation.animations.none")},{value:"hello",text:window.Buttonizer.translate("settings.menu_animation.animations.hello")},{value:"bounce",text:window.Buttonizer.translate("settings.menu_animation.animations.bounce")}]})]})}}class fe{constructor(t){this.buttonObject=t,this.groupSetting=HTMLElement,this.formElements={useMainButtonStyle:void 0,buttonColor:void 0,borderColor:void 0,borderRadius:void 0,backgroundImage:void 0,buttonIconSelect:void 0,buttonIconColor:void 0,buttonIconSize:void 0,buttonImageSelect:void 0,buttonImageIcon:void 0,buttonImageIconSelect:void 0,imageBorderRadius:void 0,imageSize:void 0,label:void 0,labelColor:void 0,labelFontSizeBorderRadius:void 0,show_label:void 0,showOnOpeningTimes:void 0,buttonCustomClass:void 0}}build(){let t=document.createElement("div");return t.className="button-group-styling",t.style.display="none",this.element=t,this.buildForm(),this.buttonObject.stylingObject=t,this.element}buildForm(){this.element.appendChild(this.generalSetting()),this.element.appendChild(this.buttonStyle()),this.element.appendChild(this.iconStyle()),this.element.appendChild(this.labelStyle()),this.element.appendChild(this.advancedSettings())}advancedSettings(){let t=document.createElement("a");return t.href="javascript:void(0)",t.className="advanced-settings"+(window.Buttonizer.hasPremium()?"":" buttonizer-premium-gray-out"),t.innerHTML="<i></i> "+window.Buttonizer.translate("utils.advanced_settings")+(window.Buttonizer.hasPremium()?"":" <span class='buttonizer-premium'>PRO</span>"),t.addEventListener("click",()=>{this.buttonObject.windowObject.toggle()}),t}generalSetting(){let t=document.createElement("div");return t.className="style-top",this.groupSetting=document.createElement("div"),this.groupSetting.className="style-group",this.formElements.menuPosition=new me(this.buttonObject.groupObject),this.groupSetting.appendChild(this.formElements.menuPosition.build()),this.formElements.menuPosition.element.style.display="none",this.formElements.menuAnimation=new be(this.buttonObject.groupObject),this.groupSetting.appendChild(this.formElements.menuAnimation.build()),this.formElements.menuAnimation.element.style.display="none",t.appendChild(this.groupSetting),this.formElements.buttonAction=new Tt(this),t.appendChild(this.formElements.buttonAction.build()),this.formElements.isMobile=new ie(this.buttonObject),t.appendChild(this.formElements.isMobile.build()),t}buttonStyle(){let t=document.createElement("div");t.className="style-button";let e=document.createElement("h2");return e.innerHTML="<i></i><span>"+window.Buttonizer.translate("settings.setting_categories.button_style")+"</span>",t.appendChild(e),this.formElements.useMainButtonStyle=new de(this.buttonObject),t.appendChild(this.formElements.useMainButtonStyle.build()),this.formElements.buttonColor=new ne(this.buttonObject),t.appendChild(this.formElements.buttonColor.build()),this.formElements.labelColor=new ae(this.buttonObject),t.appendChild(this.formElements.labelColor.build()),this.formElements.borderRadius=new Zt(this.buttonObject),t.appendChild(this.formElements.borderRadius.build()),this.formElements.backgroundImage=new ce(this.buttonObject),t.appendChild(this.formElements.backgroundImage.build()),t}iconStyle(){let t=document.createElement("div");t.className="style-icon";let e=document.createElement("h2");return e.innerHTML="<i></i><span>"+window.Buttonizer.translate("settings.setting_categories.button_icon")+"</span>",t.appendChild(e),this.formElements.buttonIconOrImage=new he(this.buttonObject),t.appendChild(this.formElements.buttonIconOrImage.build()),this.formElements.buttonIconSelect=new le(this.buttonObject),t.appendChild(this.formElements.buttonIconSelect.build()),this.formElements.buttonIconColor=new Kt(this.buttonObject),t.appendChild(this.formElements.buttonIconColor.build()),this.formElements.buttonIconSize=new Jt(this.buttonObject),t.appendChild(this.formElements.buttonIconSize.build()),t}labelStyle(){let t=document.createElement("div");t.className="style-label";let e=document.createElement("h2");return e.innerHTML="<i></i><span>"+window.Buttonizer.translate("settings.setting_categories.label")+"</span>",t.appendChild(e),this.formElements.buttonLabel=new Mt(this.buttonObject),t.appendChild(this.formElements.buttonLabel.build()),this.formElements.show_label=new se(this.buttonObject),t.appendChild(this.formElements.show_label.build()),this.formElements.show_label_mobile=new re(this.buttonObject),t.appendChild(this.formElements.show_label_mobile.build()),this.formElements.buttonLabelFontSizeBorderRadius=new te(this.buttonObject),t.appendChild(this.formElements.buttonLabelFontSizeBorderRadius.build()),t}}var we=class{constructor(t,e){this.type="button",this.groupObject=t,this.alive=!0,this.data=e,this.ui=[],this.buttonName=e.name,this.id=-1,this.settingsOpened=!1,this.buttonHTMLObject=HTMLElement,this.buttonIconObject=HTMLElement,this.buttonTitleObject=HTMLElement,this.windowObject=HTMLElement,this.stylingObject=void 0,this.stylingObject=HTMLElement,this.settingsObject={},this.buildButton(),this.windowObject=new m(this),this.groupObject.registerButton(this)}buildButton(){let t=document.createElement("div");t.className="buttonizer-button-group group-button",t.appendChild(new Et(this).build()),this.settingsObject=new fe(this),Buttonizer.bar.settingContent.appendChild(this.settingsObject.build());var e=!1,i=!1;const n=xt(t,{content:window.Buttonizer.translate("bar.buttons.tippy_drag_warning"),animation:"shift-away",arrow:!0,hideOnClick:!1,trigger:"manual",onShow:()=>{i=!0,setTimeout(()=>{i=!1,n.hide()},5e3)}});t.addEventListener("mousedown",()=>{i||(e=!0)}),t.addEventListener("mouseout",()=>{e&&null!==jQuery(this.groupObject.groupBody).sortable("option","cancel")&&(e=!1,n.show())}),t.addEventListener("mouseup",()=>{e=!1}),this.buttonHTMLObject=t,this.groupObject.groupBody.appendChild(this.buttonHTMLObject)}removeButton(){this.alive=!1,this.buttonHTMLObject.remove(),window.Buttonizer.buttonChanges=!0,this.groupObject.buttonsAmount<=1&&jQuery(this.groupObject.groupBody).sortable("option","cancel",".group-button"),1===this.groupObject.getButtonsAlive()!==this.groupObject.singleButtonMode&&(this.groupObject.singleButtonMode=1===this.groupObject.getButtonsAlive(),this.groupObject.getButtons()[0].set("icon_size","25"),this.groupObject.groupHolder.setSingleButtonMode())}set(t,e){this.data[t]=e,this.ui[t].forEach(t=>t.update(e)),window.Buttonizer.buttonChanges=!0}get(t,e){return void 0!==this.data[t]?this.data[t]:(this.data[t]=e,window.Buttonizer.buttonChanges=!0,e)}registerUI(t,e){void 0!==this.ui[t]?this.ui[t].push(e):this.ui[t]=[e]}getUI(t){return void 0!==this.ui[t]&&this.ui[t]}revealSettings(){this.buttonHTMLObject.classList.add("opened"),this.stylingObject.style.display="block",Buttonizer.bar.showSettings(this.get("name"),()=>this.closeSettings())}closeSettings(){this.stylingObject.style.display="none",this.buttonHTMLObject.classList.remove("opened")}};var ge=class{constructor(t){this.groupObject=t,this.groupObject.stylingObject=this,this.groupHolder=null,this.titleElement=null,this.arrow=HTMLElement}build(){let t=document.createElement("div");return t.className="button-group-holder",t.appendChild(this.groupArrow()),t.appendChild(this.createTitle()),t.appendChild(this.groupSettingsButton()),t.appendChild(this.createButtonHolderButton()),t.appendChild(this.createQuickMenu()),this.groupHolder=t,t}createButtonHolderButton(){let t=document.createElement("a");t.href="javascript:void(0)",t.className="holder-button";let e=document.createElement("i");return e.className="fas fa-ellipsis-v",t.appendChild(e),t.addEventListener("click",()=>{let t=this.groupHolder.className.indexOf("holder-show-quick-menu");jQuery(".holder-show-quick-menu").removeClass("holder-show-quick-menu"),-1===t&&this.groupHolder.classList.add("holder-show-quick-menu")}),t}createQuickMenu(){let t=document.createElement("div");return t.className="group-holder-quick-menu",t.addEventListener("click",()=>{this.groupHolder.classList.remove("holder-show-quick-menu")}),t.appendChild(this.createQuickMenuButton("fas fa-plus",window.Buttonizer.translate("bar.buttons.convert_to_group"),()=>{new we(this.groupObject,{name:window.Buttonizer.translate("common.button")+" 2",show_mobile:"true",show_desktop:"true"}),this.groupObject.getButtons()[0].set("icon_size","16"),jQuery(this.groupObject.groupBody).sortable("option","cancel",null)},"convert-button")),t.appendChild(this.createQuickMenuButton("fas fa-wrench",window.Buttonizer.translate("common.settings"),()=>this.toggleStyling(),"")),t.appendChild(this.createQuickMenuButton("fas fa-cog",window.Buttonizer.translate("utils.advanced_settings"),()=>{this.groupObject.singleButtonMode?this.groupObject.getButtons()[0].windowObject.toggle():this.groupObject.windowObject.toggle()},window.Buttonizer.hasPremium()?"":"buttonizer-premium-gray-out")),t.appendChild(this.createQuickMenuButton("fas fa-pencil-alt",window.Buttonizer.translate("utils.rename"),()=>this.groupRename(),"")),t.appendChild(this.createQuickMenuButton("far fa-trash-alt",window.Buttonizer.translate("utils.delete"),()=>this.groupDelete(),"delete")),t.firstChild.style.display="none",this.quickMenu=t,t}createQuickMenuButton(t,e,i,n=""){let o=document.createElement("a");o.href="javascript:void(0)",o.className=n;let s=document.createElement("i");return s.className=t,o.appendChild(s),o.innerHTML+=e,o.addEventListener("click",t=>i(t)),o}groupArrow(){let t=document.createElement("a");t.href="javascript:void(0)",t.className="holder-button pull-left has-background group-arrow";let e=document.createElement("i");e.className="fa fa-angle-down buttonizer-arrow-down",t.appendChild(e);let i=document.createElement("i");return i.className="fa fa-angle-up buttonizer-arrow-up",t.appendChild(i),t.addEventListener("click",()=>this.revealButtons()),this.arrow=t,t}createTitle(){let t=document.createElement("input");return t.type="text",t.className="group-title",t.value=this.groupObject.get("name"),t.setAttribute("readonly",""),t.id="buttonizer-group-title",this.titleElement=t,t.addEventListener("blur",()=>this.updateTitle()),t.addEventListener("keyup",e=>{e.preventDefault(),13===e.keyCode?this.updateTitle():27===e.keyCode&&(t.value=this.groupObject.singleButtonMode?this.groupObject.getButtons()[0].data.name:this.groupObject.data.name,t.setAttribute("readonly",""))}),t.addEventListener("click",e=>{jQuery(".holder-show-quick-menu").removeClass("holder-show-quick-menu"),e.isTrusted&&t.hasAttribute("readonly")&&(this.groupObject.singleButtonMode?this.toggleStyling():this.revealButtons())}),t}updateTitle(){(this.groupObject.singleButtonMode?this.groupObject.getButtons()[0]:this.groupObject).data.name=this.titleElement.value,window.Buttonizer.buttonChanges=!0,this.titleElement.setAttribute("readonly","")}groupRename(){this.titleElement.hasAttribute("readonly")&&(this.titleElement.removeAttribute("readonly"),this.titleElement.focus())}groupSettingsButton(){let t=document.createElement("a");t.href="javascript:void(0)",t.className="holder-button group-style";let e=document.createElement("i");return e.className="fas fa-wrench",t.appendChild(e),t.addEventListener("click",t=>{jQuery(".holder-show-quick-menu").removeClass("holder-show-quick-menu"),this.toggleStyling()}),t}toggleStyling(){this.groupObject.singleButtonMode?this.groupObject.getButtons()[0].revealSettings():this.groupObject.groupSettings.show()}groupDelete(){if(this.groupObject.singleButtonMode)return window.Buttonizer.buttonGroups.length<=1?void new s({title:window.Buttonizer.translate("bar.buttons.delete_button.window_title_button"),content:"<p>"+window.Buttonizer.translate("bar.buttons.delete_button.cannot_delete")+"</p>",buttons:[{text:window.Buttonizer.translate("modal.close"),close:!0,focus:!0,confirm:!0}]}):void new s({title:window.Buttonizer.translate("bar.buttons.delete_button.window_title_button"),content:"<p>"+window.Buttonizer.translate("bar.buttons.delete_button.question_button")+"</p>",onConfirm:()=>{this.groupObject.removeGroup(),window.Buttonizer.buttonChanges=!0},buttons:[{text:window.Buttonizer.translate("modal.changed_my_mind"),close:!0,focus:!0},{text:window.Buttonizer.translate("utils.delete"),confirm:!0}]});window.Buttonizer.buttonGroups.length<=1?new s({title:window.Buttonizer.translate("bar.buttons.delete_button.window_title_button"),content:"<p>"+window.Buttonizer.translate("bar.buttons.delete_button.cannot_delete_group")+"</p>",buttons:[{text:window.Buttonizer.translate("modal.close"),close:!0,focus:!0,confirm:!0}]}):new s({title:window.Buttonizer.translate("bar.buttons.delete_button.window_title_group"),content:"<p>"+window.Buttonizer.translate("bar.buttons.delete_button.question_group_multiple_buttons").format(this.groupObject.getButtonsAlive())+"</p>",onConfirm:()=>{this.groupObject.removeGroup(),window.Buttonizer.buttonChanges=!0},buttons:[{text:window.Buttonizer.translate("modal.changed_my_mind"),close:!0,focus:!0},{text:window.Buttonizer.translate("utils.delete"),confirm:!0}]})}revealButtons(){this.groupObject.groupOpened=!this.groupObject.groupOpened,this.groupObject.groupOpened?(this.groupObject.groupObject.classList.add("opened"),jQuery(this.groupObject.groupBody).sortable("enable")):(this.groupObject.groupObject.classList.remove("opened"),jQuery(this.groupObject.groupBody).sortable("disable")),this.groupObject.groupBody.style.display=this.groupObject.groupOpened?"block":"none"}setSingleButtonMode(){this.groupObject.singleButtonMode?(this.quickMenu.firstChild.style.display="",this.titleElement.value=void 0===this.groupObject.getButtons()[0]?this.groupObject.firstButtonName:this.groupObject.getButtons()[0].data.name,this.groupHolder.classList.add("single-button"),this.groupObject.groupOpened&&this.revealButtons(),this.groupObject.getButtons()[0].set("use_main_button_style","false"),this.groupObject.getButtons()[0].getUI("use_main_button_style-container")[0].element.style.display="none",this.groupObject.getUI("position-container")[1].element.style.display="",this.groupObject.getUI("animation-container")[1].element.style.display="",this.groupObject.set("single_button_mode","true")):(this.quickMenu.firstChild.style.display="none",this.groupObject.getUI("position-container")[1].element.style.display="none",this.groupObject.getUI("animation-container")[1].element.style.display="none",this.groupObject.getButtons()[0].set("use_main_button_style","true"),this.groupObject.getButtons()[0].getUI("use_main_button_style-container")[0].element.style.display="",this.titleElement.value=this.groupObject.data.name,this.groupHolder.classList.remove("single-button"),this.groupObject.set("single_button_mode","false"))}};class ye extends Nt{constructor(t){super({title:window.Buttonizer.translate("settings.start_opened.title"),description:window.Buttonizer.translate("settings.start_opened.description"),class:"is-boolean-only",content:[new It({parentObject:t,dataEntry:"start_opened",default:"false"})]})}}class ve extends Nt{constructor(t){super({title:window.Buttonizer.translate("settings.menu_style.title"),description:window.Buttonizer.translate("settings.menu_style.description"),content:[new oe({parentObject:t,dataEntry:"menu_style",default:"default",list:[{value:"default",text:window.Buttonizer.translate("settings.menu_style.styles.default")},{value:"faded",text:window.Buttonizer.translate("settings.menu_style.styles.faded")},{value:"corner-circle",text:window.Buttonizer.translate("settings.menu_style.styles.cornercircle")},{value:"building-up",text:window.Buttonizer.translate("settings.menu_style.styles.buildingup")},{value:"pop",text:window.Buttonizer.translate("settings.menu_style.styles.pop")},{value:"square",text:window.Buttonizer.translate("settings.menu_style.styles.square")}]})]})}}var _e=class{constructor(t){this.groupObject=t,this.open=!1,this.formElements={alwaysOpen:void 0,menuStyle:void 0,isMobile:void 0,isDesktop:void 0,attentionAnimation:void 0,buttonColor:void 0,borderRadius:void 0,backgroundImage:void 0,groupPosition:void 0,buttonIconSelect:void 0,buttonIconColor:void 0,buttonIconSize:void 0,buttonImageSelect:void 0,buttonImageBackground:void 0,buttonImageIconSelect:void 0,imageSize:void 0,imageBorderRadius:void 0,buttonLabel:void 0,buttonLabelColor:void 0,buttonLabelSize:void 0,show_label:void 0},this.element=HTMLElement}build(){let t=document.createElement("div");return t.className="button-group-styling hidden",this.element=t,this.hide(),this.buildTop(),this.buildForm(),this.groupObject.stylingObject=t,this.element}buildForm(){this.element.appendChild(this.top()),this.element.appendChild(this.menuStyle()),this.element.appendChild(this.buttonStyle()),this.element.appendChild(this.iconStyle()),this.element.appendChild(this.labelStyle());let t=document.createElement("a");t.href="javascript:void(0)",t.className="advanced-settings"+(window.Buttonizer.hasPremium()?"":" buttonizer-premium-gray-out"),t.innerHTML="<i></i> "+window.Buttonizer.translate("utils.advanced_settings")+(window.Buttonizer.hasPremium()?"":" <span class='buttonizer-premium'>PRO</span>"),t.addEventListener("click",()=>{this.groupObject.windowObject.toggle()}),this.element.appendChild(t)}top(){let t=document.createElement("div");return t.className="style-top",this.formElements.menuPosition=new me(this.groupObject),t.appendChild(this.formElements.menuPosition.build()),this.formElements.isMobile=new ie(this.groupObject),t.appendChild(this.formElements.isMobile.build()),t}menuStyle(){let t=document.createElement("div");t.className="style-menu";let e=document.createElement("h2");return e.innerHTML="<i></i><span>"+window.Buttonizer.translate("settings.setting_categories.menu_style")+"</span>",t.appendChild(e),this.formElements.alwaysOpen=new ye(this.groupObject),t.appendChild(this.formElements.alwaysOpen.build()),this.formElements.menuStyle=new ve(this.groupObject),t.appendChild(this.formElements.menuStyle.build()),this.formElements.attentionAnimation=new be(this.groupObject),t.appendChild(this.formElements.attentionAnimation.build()),t}buttonStyle(){let t=document.createElement("div");t.className="style-button";let e=document.createElement("h2");return e.innerHTML="<i></i><span>"+window.Buttonizer.translate("settings.setting_categories.group_style")+"</span>",t.appendChild(e),this.formElements.buttonColor=new ne(this.groupObject),t.appendChild(this.formElements.buttonColor.build()),this.formElements.borderRadius=new Zt(this.groupObject),t.appendChild(this.formElements.borderRadius.build()),this.formElements.backgroundImage=new ce(this.groupObject),t.appendChild(this.formElements.backgroundImage.build()),t}iconStyle(){let t=document.createElement("div");t.className="style-icon";let e=document.createElement("h2");return e.innerHTML="<i></i><span>"+window.Buttonizer.translate("settings.setting_categories.group_icon")+"</span>",t.appendChild(e),this.formElements.buttonIcon=new he(this.groupObject),t.appendChild(this.formElements.buttonIcon.build()),this.formElements.buttonIconSelect=new le(this.groupObject),t.appendChild(this.formElements.buttonIconSelect.build()),this.formElements.buttonIconColor=new Kt(this.groupObject),t.appendChild(this.formElements.buttonIconColor.build()),this.formElements.buttonIconSize=new Jt(this.groupObject),t.appendChild(this.formElements.buttonIconSize.build()),t}labelStyle(){let t=document.createElement("div");t.className="style-label";let e=document.createElement("h2");return e.innerHTML="<i></i><span>"+window.Buttonizer.translate("settings.setting_categories.label")+"</span>",t.appendChild(e),this.formElements.buttonLabel=new Mt(this.groupObject),t.appendChild(this.formElements.buttonLabel.build()),this.formElements.show_label=new se(this.groupObject),t.appendChild(this.formElements.show_label.build()),this.formElements.show_label_mobile=new re(this.groupObject),t.appendChild(this.formElements.show_label_mobile.build()),this.formElements.buttonLabelColor=new ae(this.groupObject),t.appendChild(this.formElements.buttonLabelColor.build()),this.formElements.buttonLabelFontSizeBorderRadius=new te(this.groupObject),t.appendChild(this.formElements.buttonLabelFontSizeBorderRadius.build()),t}buildTop(){}toggle(){(this.open=!0)?(this.open=!1,this.hide()):(this.open=!0,this.show())}show(){this.element.className="button-group-styling",Buttonizer.bar.showSettings(this.groupObject.get("name"),()=>this.hide())}hide(){this.element.className="button-group-styling hidden"}};class ke extends d{constructor(t){super(t,window.Buttonizer.translate("utils.advanced_settings")+" - "+window.Buttonizer.translate("common.group")+" "+t.data.name+(window.Buttonizer.hasPremium()?"":" (premium)"))}render(){this.filter(),this.delay(),this.styling()}filter(){let t=document.createElement("div");t.appendChild(new l(this).build()),t.appendChild(new a(this).build()),super.addItem(window.Buttonizer.translate("settings.button_group_window.filters"),t)}delay(){let t=document.createElement("div");t.appendChild(new u(this).build()),t.appendChild(new c(this).build()),super.addItem(window.Buttonizer.translate("settings.button_group_window.timeout_scroll"),t)}styling(){let t=document.createElement("div");t.appendChild(new h(this).build()),t.appendChild(new p(this).build()),super.addItem(window.Buttonizer.translate("settings.button_group_window.styling"),t)}}class xe{constructor(t,e){e||(e=[]),this.type="group",this.groupOpened=!1,this.data=t,this.ui={},this.groupObject=HTMLElement,this.groupID=window.Buttonizer.buttonGroups.length,this.stylingOpened=!1,this.stylingObject=HTMLElement,this.groupBody=HTMLElement,this.windowObject=HTMLElement,this.buttons=[],this.buttonsLength=e.length,this.singleButtonMode=!1,this.buildGroup(),this.windowObject=new ke(this);for(let t in e)new we(this,e[t]);this.appendAddButton(),window.Buttonizer.buttonGroups.push(this)}get buttonsAmount(){return this.getButtonsAlive()}buildGroup(){let t=document.createElement("div");t.className="buttonizer-button-group is-group",this.groupObject=t,this.groupHolder=new ge(this),t.appendChild(this.groupHolder.build()),this.groupSettings=new _e(this),Buttonizer.bar.settingContent.appendChild(this.groupSettings.build()),this.appendAddButton(),this.groupBody=document.createElement("div"),this.groupBody.style.display="none",this.groupBody.className="button-group-body",t.appendChild(this.groupBody),jQuery(this.groupBody).sortable({items:"> div",axis:"y",cursor:"move",delay:150,handle:"#buttonizer-button-title",helper:"clone",cancel:this.buttonsLength<=1?".group-button":null,connectWith:".button-group-body",disabled:!0,start:(t,e)=>{jQuery(e.item).attr("previndex",e.item.index()),jQuery(e.item).attr("prevgroup",jQuery(this.groupBody).parent().index())},stop:(t,e)=>{jQuery(e.item).removeAttr("previndex"),jQuery(e.item).removeAttr("prevgroup")},update:function(t,e){if(this===e.item.parent()[0]){let t=e.item.index(),i=jQuery(e.item).attr("previndex"),n=jQuery(this).parent().index(),o=jQuery(e.item).attr("prevgroup");e.sender&&jQuery(this).sortable("option","cancel",null),window.Buttonizer.updateButtonList(t,i,n,o),jQuery(e.item).removeAttr("previndex"),jQuery(e.item).removeAttr("prevgroup")}}}),jQuery(this.groupBody).disableSelection(),jQuery(".group-title").disableSelection(),Buttonizer.bar.groupHolder.appendChild(this.groupObject)}duplicate(){new xe(this.data,this.buttons)}appendAddButton(){let t=document.createElement("a");t.href="javascript:void(0)",t.className="create-new-button",t.innerHTML=window.Buttonizer.translate("utils.add_button")+" +",t.addEventListener("click",()=>{new we(this,{name:window.Buttonizer.translate("common.button")+" "+(this.getButtonsAlive()+1),show_mobile:"true",show_desktop:"true"}),jQuery(this.groupBody).sortable("option","cancel",null)}),this.groupObject.appendChild(t)}registerButton(t){this.buttons.push(t),1===this.getButtonsAlive()!==this.singleButtonMode&&(this.singleButtonMode=1===this.getButtonsAlive(),this.groupHolder.setSingleButtonMode())}removeGroup(){let t=window.Buttonizer.buttonGroups.indexOf(this);window.Buttonizer.buttonGroups.splice(t,1),this.groupObject.remove()}set(t,e){this.data[t]=e,void 0!==this.ui[t]&&this.ui[t].forEach(t=>t.update(e)),window.Buttonizer.buttonChanges=!0}get(t,e){return void 0!==this.data[t]?this.data[t]:(this.data[t]=e,window.Buttonizer.buttonChanges=!0,e)}getButtonsAlive(){let t=0;return this.buttons.forEach(e=>{e.alive&&t++}),t}getButtons(){return this.buttons.filter(t=>t.alive)}registerUI(t,e){void 0!==this.ui[t]?this.ui[t].push(e):this.ui[t]=[e]}getUI(t){return void 0!==this.ui[t]&&this.ui[t]}}var Ee=xe;var Be=class{constructor(t){this.buttonizerObject=t,this.topBarElement=HTMLElement,this.optionsWindow=HTMLElement,this.publishButton=HTMLElement,this.revertChangesText=HTMLElement,this.alertText=HTMLElement,this.eventListCache=[],this.eventTrackerMenuItem=null,this.eventTracker=null,this.windowOptions=[{buttons:[{title:"Buttonizer",description:window.Buttonizer.translate("bar.menu.version"),callback:()=>{window.open("https://www.buttonizer.pro/")}},{title:window.Buttonizer.translate("bar.menu.knowledgebase.title"),description:window.Buttonizer.translate("bar.menu.knowledgebase.description"),callback:()=>{window.open("https://community.buttonizer.pro/knowledgebase")}}]},{title:window.Buttonizer.translate("bar.menu.support_group"),buttons:[{title:window.Buttonizer.translate("bar.menu.support.title"),callback:()=>{window.open("https://community.buttonizer.pro/t/support")}},{title:window.Buttonizer.translate("bar.menu.community.title"),description:window.Buttonizer.translate("bar.menu.community.description"),callback:()=>{window.open("https://community.buttonizer.pro/")}},{title:window.Buttonizer.translate("bar.menu.tour.title"),description:window.Buttonizer.translate("bar.menu.tour.description"),callback:()=>{window.Buttonizer.startTour()}}]},{title:window.Buttonizer.translate("bar.menu.account_group"),buttons:[{title:window.Buttonizer.translate("bar.menu.account.title"),callback:()=>{window.open(buttonizer_admin.admin+"?page=Buttonizer-account")}},{title:window.Buttonizer.translate("bar.menu.upgrade.title"),callback:()=>{window.open(buttonizer_admin.admin+"?page=Buttonizer-pricing")}},{title:window.Buttonizer.translate("bar.menu.affiliation.title"),description:window.Buttonizer.translate("bar.menu.affiliation.description"),callback:()=>{window.open(buttonizer_admin.admin+"?page=Buttonizer-affiliation")}}]},{buttons:[{title:window.Buttonizer.translate("page_rules.name"),icon:"fas fa-filter",class:window.Buttonizer.hasPremium()?"":"buttonizer-premium-gray-out",callback:()=>{window.Buttonizer.hasPremium()?window.Buttonizer.pageRule.show():window.Buttonizer.showPremiumPopup(window.Buttonizer.translate("page_rules.pro_description"),"SQnAhyBWLWg")}},{title:window.Buttonizer.translate("time_schedules.name"),icon:"far fa-clock",class:window.Buttonizer.hasPremium()?"":"buttonizer-premium-gray-out",callback:()=>{window.Buttonizer.hasPremium()?window.Buttonizer.timeSchedule.show():window.Buttonizer.showPremiumPopup(window.Buttonizer.translate("time_schedules.pro_description"),"C-B9ITdY6A4")}}]},{buttons:[{title:window.Buttonizer.translate("bar.menu.options.title"),icon:"fa fa-cogs",class:"single-button",callback:()=>{this.buttonizerObject.settingsWindow.toggle()}}]}],document.body.appendChild(this.buildTopBar())}buildTopBar(){let t=document.createElement("div");t.className="buttonizer-topbar";let e=document.createElement("div");return e.className="revert-save",e.style.display="inline-block",e.appendChild(this.createRevertChangesButton()),e.appendChild(this.createPublishButton()),t.appendChild(this.createBackButton()),t.appendChild(this.createLogo()),t.appendChild(e),t.appendChild(this.createOptionsButton()),t.appendChild(this.createAlertText()),t.appendChild(this.createOptionsWindow()),t.appendChild(this.createEventMenuItem()),t.appendChild(this.createEventWindow()),this.topBarElement=t,t}createOptionsButton(){let t=document.createElement("a");return t.className="options-button button right fas fa-cog",t.addEventListener("click",()=>{this.optionsWindow.toggle()}),t}createEventMenuItem(){let t=document.createElement("a");return t.href="javascript:void(0)",t.className="event-tracker-button",t.style.display="none",t.innerHTML="",t.addEventListener("click",()=>{"block"===this.eventTracker.container.style.display?this.eventTracker.container.style.display="none":this.eventTracker.container.style.display="block"}),this.eventTrackerMenuItem=t,t}createEventWindow(){let t=document.createElement("div");t.className="event-track-window",t.style.display="none",t.innerHTML=`<div class="track-window-title">${window.Buttonizer.translate("event_tracker.window_title")}</div>`;let e=document.createElement("a");e.href="javascript:void(0)",e.className="close",e.innerHTML='<i class="fas fa-times"></i>',e.addEventListener("click",()=>{t.style.display="none"}),t.appendChild(e);let i=document.createElement("div");return i.className="list-container",i.innerHTML="",t.appendChild(i),this.eventTracker={container:t,list:i},t}updateEventLogs(t){if(0!==t.length){if(this.eventListCache!==t){this.eventTrackerMenuItem.style.display="block",this.eventTrackerMenuItem.innerHTML='<i class="fas fa-info"></i> ('+t.length+") "+window.Buttonizer.translate("event_tracker.title"),this.eventTracker.list.innerHTML="";for(let e=0;e<t.length;e++){let i=document.createElement("div");i.className="event-element event-"+t[e].type,i.innerHTML=t[e].message,this.eventTracker.list.appendChild(i)}}}else this.eventTrackerMenuItem.style.display="none"}createOptionsWindow(){this.optionsWindow=document.createElement("div"),this.optionsWindow.className="options-window",this.optionsWindow.hidden=!0,this.optionsWindow.toggle=(()=>{this.optionsWindow.hidden=!this.optionsWindow.hidden});let t=document.createElement("ul");for(let e=0;e<this.windowOptions.length;e++){let i=document.createElement("li");if(i.className="group-container","string"==typeof this.windowOptions[e].title){let t=document.createElement("div");t.className="group-title",t.innerHTML=this.windowOptions[e].title,i.appendChild(t)}for(let t=0;t<this.windowOptions[e].buttons.length;t++)i.appendChild(this.barMenuItem(this.windowOptions[e].buttons[t]));t.appendChild(i)}return this.optionsWindow.appendChild(t),this.optionsWindow}barMenuItem(t){let e=document.createElement("a");e.href="javascript:void(0)",e.className=t.class?"option "+t.class:"option";let i=document.createElement("span");if(i.className="button-title",i.innerHTML=t.title?t.title:"Default title",e.appendChild(i),t.hasOwnProperty("description")){let i=document.createElement("span");i.className="button-description",i.innerHTML=t.description?t.description:"",e.appendChild(i)}if(t.hasOwnProperty("icon")){let i=document.createElement("i");i.className=t.icon,e.appendChild(i)}return t.hasOwnProperty("callback")&&e.addEventListener("click",()=>{this.optionsWindow.toggle(),t.callback()}),e}createBackButton(){let t=document.createElement("a");return t.className="close-button fa fa-times",t.addEventListener("click",()=>{document.location.href=window.Buttonizer.buttonizerInitData.wordpress.admin_base}),t}createLogo(){let t=document.createElement("img");return t.className="buttonizer-logo",t.src=buttonizer_admin.assets+"/images/logo.png",t}createPublishButton(){return this.publishButton=document.createElement("a"),this.publishButton.className="publish-button button-primary right",this.publishButton.innerText=window.Buttonizer.translate("common.save_publish"),this.publishButton.enabled=!0,this.publishButton.addEventListener("click",()=>{this.publishButton.enabled&&this.buttonizerObject.savingMechanism.publish()}),this.publishButton.enable=(()=>{this.publishButton.enabled=!0,this.revertChangesText.hidden=!1,this.publishButton.innerText=window.Buttonizer.translate("common.save_publish"),this.publishButton.className=this.publishButton.className.replace(" disabled","")}),this.publishButton.disable=(t=>{this.publishButton.enabled=!1,this.revertChangesText.hidden=!0,this.publishButton.innerText=t,this.publishButton.className.includes(" disabled")||(this.publishButton.className+=" disabled")}),this.publishButton}createRevertChangesButton(){return this.revertChangesText=document.createElement("a"),this.revertChangesText.className="revert-button right",this.revertChangesText.innerText=window.Buttonizer.translate("revert.revert_changes"),this.revertChangesText.href="javascript:void(0)",this.revertChangesText.addEventListener("click",()=>{new s({title:window.Buttonizer.translate("revert.revert_changes"),content:"<p>"+window.Buttonizer.translate("revert.modal.intro")+"</p><p>"+window.Buttonizer.translate("revert.modal.action")+"</p>",onConfirm:()=>{this.buttonizerObject.savingMechanism.revert()},buttons:[{text:window.Buttonizer.translate("modal.changed_my_mind"),close:!0,focus:!0},{text:window.Buttonizer.translate("revert.revert_changes"),confirm:!0}]})}),this.revertChangesText}createAlertText(){return this.alertText=document.createElement("a"),this.alertText.className="alert-text",this.alertText.showSaving=(()=>{this.alertText.innerHTML='<i class="fas fa-mug-hot"></i> '+window.Buttonizer.translate("saving.saving"),this.alertText.hidden=!1}),this.alertText.showSaved=(()=>{this.alertText.innerHTML='<i class="fas fa-check"></i> '+window.Buttonizer.translate("saving.completed"),setTimeout(()=>{this.alertText.hidden=!0},2e3)}),this.alertText.alert=(t=>{this.alertText.innerText=t,this.alertText.hidden=!1,setTimeout(()=>{this.alertText.hidden=!0},2e3)}),this.alertText.hidden=!0,this.alertText}set changes(t){t?this.publishButton.enable():this.publishButton.disable(window.Buttonizer.translate("common.published"))}};var ze=class{constructor(t){this.buttonizerObject=t,this.barElement=HTMLElement,this.groupContainer=HTMLElement,this.settingBar=HTMLElement,this.settingContainer=HTMLElement,this.settingContent=HTMLElement,this.settingTitle=HTMLElement,this.settingCallback=(()=>console.log("huh?")),document.body.appendChild(this.buildBar()),jQuery(this.groupContainer).scrollbar(),jQuery(this.settingContent).scrollbar()}buildBar(){let t=document.createElement("div");t.className="buttonizer-bar";let e=document.createElement("div");e.className="group-container container",e.appendChild(this.createButtonHolder()),e.appendChild(this.addButtonGroup()),t.appendChild(e),t.appendChild(this.createBarFooter()),this.barElement=t,this.groupContainer=e;let i=document.createElement("div"),n=document.createElement("div");n.className="settings-content";let o=document.createElement("div");return o.className="settings-container container hidden",o.appendChild(this.createSettingBar()),n.appendChild(i),o.appendChild(n),t.appendChild(o),this.settingContent=i,this.settingContainer=o,t}createSettingBar(){let t=document.createElement("div");t.className="top";let e=document.createElement("a");e.className="back-button fa fa-angle-left",e.addEventListener("click",()=>{jQuery(".settings-container").addClass("hidden"),jQuery(".group-container").removeClass("hidden"),setTimeout(()=>this.settingCallback(),250)}),t.appendChild(e);let i=document.createElement("div");i.className="title-wrapper";let n=document.createElement("h4");n.innerHTML=window.Buttonizer.translate("bar.buttons.now_editing");let o=document.createElement("h2");return o.innerHTML="nothing!",i.appendChild(n),i.appendChild(o),t.appendChild(i),this.settingBar=t,this.settingTitle=o,t}createButtonHolder(){return this.groupHolder=document.createElement("div"),this.groupHolder.className="buttonizer-group-holder",jQuery(this.groupHolder).sortable({items:"> div",axis:"y",cursor:"move",delay:150,handle:"#buttonizer-group-title",helper:"clone",start:function(t,e){jQuery(this).attr("data-previndex",e.item.index())},stop:function(t,e){jQuery(this).removeAttr("data-previndex")},update:function(t,e){var i=e.item.index(),n=jQuery(this).attr("data-previndex");window.Buttonizer.updateButtonGroupList(i,n),jQuery(this).removeAttr("data-previndex")},cancel:null}),jQuery(this.groupHolder).disableSelection(),jQuery(".group-title").disableSelection(),this.groupHolder}addButtonGroup(){let t=document.createElement("a");return t.href="javascript:void(0)",t.className="create-new-button is-create-group buttonizer-premium-gray-out",t.innerHTML=window.Buttonizer.translate("utils.add_group")+'+ <span class="buttonizer-premium">PRO</span>',t.addEventListener("click",()=>window.Buttonizer.showPremiumPopup("You are able to add multiple groups on different positions.","Qxs1oGCVATU")),t}generateLink(t,e,i,n){n||(n="");let o=document.createElement("a");return o.href="javascript:void(0)",o.className=n,o.innerHTML='<i class="'+t+'"></i> '+e,o.addEventListener("click",i),o}showSettings(t,e){jQuery(".buttonizer-bar .settings-container").removeClass("hidden"),jQuery(".buttonizer-bar .group-container").addClass("hidden"),this.settingTitle.innerHTML=t,this.settingCallback=e}createBarFooter(){let t=document.createElement("div");t.className="bar-footer";let e=document.createElement("div");e.className="footer-device-selector";let i=document.createElement("a");i.href="javascript:void(0)",i.className="active",i.innerHTML='<span class="dashicons-before dashicons-desktop"></span>',i.addEventListener("click",()=>{i.classList.add("active"),n.classList.remove("active"),o.classList.remove("active"),document.querySelector(".buttonizer-frame").className="buttonizer-frame"}),xt(i,{content:window.Buttonizer.translate("bar.preview.desktop"),animation:"shift-away",arrow:!1,placement:"top"}),e.appendChild(i);let n=document.createElement("a");n.href="javascript:void(0)",n.innerHTML='<span class="dashicons-before dashicons-tablet"></span>',n.addEventListener("click",()=>{i.classList.remove("active"),n.classList.add("active"),o.classList.remove("active"),document.querySelector(".buttonizer-frame").className="buttonizer-frame frame-size-tablet"}),xt(n,{content:window.Buttonizer.translate("bar.preview.tablet"),animation:"shift-away",arrow:!1,placement:"top"}),e.appendChild(n);let o=document.createElement("a");return o.href="javascript:void(0)",o.innerHTML='<span class="dashicons-before dashicons-smartphone"></span>',o.addEventListener("click",()=>{i.classList.remove("active"),n.classList.remove("active"),o.classList.add("active"),document.querySelector(".buttonizer-frame").className="buttonizer-frame frame-size-mobile"}),xt(o,{content:window.Buttonizer.translate("bar.preview.mobile"),animation:"shift-away",arrow:!1,placement:"top"}),e.appendChild(o),t.appendChild(e),t}};var Ce=class{constructor(){this.element=document.createElement("div"),this.element.className="buttonizer-loading";let t=document.createElement("div");t.className="middle";let e=document.createElement("img");e.src=buttonizer_admin.assets+"/images/buttonizer-loading.png",t.innerHTML=this.svg(),t.appendChild(e),this.textElement=document.createElement("div"),this.textElement.className="loader-text",t.appendChild(this.textElement),this.element.appendChild(t),document.body.appendChild(this.element)}svg(){return'<svg width="165" height="165" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" class="lds-rolling"><circle cx="50" cy="50" fill="none" stroke="#2f788a" stroke-width="7" r="35" stroke-dasharray="164.93361431346415 56.97787143782138" transform="rotate(300 50 50)">\x3c!--animateTransform attributeName="transform" type="rotate" calcMode="linear" values="0 50 50;360 50 50" keyTimes="0;1" dur="1s" begin="0s" repeatCount="indefinite"--\x3e</animateTransform></circle></svg>'}show(t,e=""){t||(t=""),this.textElement.innerHTML=t,this.element.className="buttonizer-loading "+e,this.element.style.display="block"}hide(){this.element.style.display="none"}};var je=class{constructor(){this.updateTimer=setTimeout(()=>{},0),this.isUpdating=!1,this.tempButtons={},this.savingObject=HTMLElement,this.savedObject=HTMLElement,setInterval(()=>this.checkUpdates(),500)}checkUpdates(){window.Buttonizer.buttonChanges&&!this.isUpdating&&(window.Buttonizer.buttonChanges=!1,clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this.save(),1e3))}save(){window.Buttonizer.buttonChanges||(this.isUpdating=!0,window.Buttonizer.buttonChanges=!1,window.Buttonizer.topBar.alertText.showSaving(),console.log("[BUG DEBUG SAVING AND RELOADING] button changes!"),jQuery.ajax({url:buttonizer_admin.ajax+"?action=buttonizer_backend&request=SaveData&save=buttons",dataType:"json",method:"post",data:{security:buttonizer_admin.security,buttons:this.generateJSONObject()},success:t=>{this.isUpdating=!1,"success"===t.status?(console.log("[BUG DEBUG SAVING AND RELOADING] saved!"),window.Buttonizer.topBar.alertText.showSaved(),this.reloadPreview(),window.Buttonizer.changes=!0):window.Buttonizer.savingError(t.message)},error:t=>{this.isUpdating=!1,window.Buttonizer.savingError(t)}}))}publish(){window.Buttonizer.buttonChanges||this.isUpdating||(this.isUpdating=!0,window.Buttonizer.buttonChanges=!1,window.Buttonizer.topBar.publishButton.disable(window.Buttonizer.translate("common.publishing")),jQuery.ajax({url:buttonizer_admin.ajax+"?action=buttonizer_backend&request=SaveData&save=publish",dataType:"json",data:{security:buttonizer_admin.security},method:"post",success:t=>{this.isUpdating=!1,"success"===t.status?window.Buttonizer.topBar.publishButton.disable(window.Buttonizer.translate("common.published")):new s({title:window.Buttonizer.translate("errors.saving.title"),content:`<p>${window.Buttonizer.translate("errors.saving.message")}.</p><p>${t.message}</p>`,buttons:[{text:"Close",close:!0}]})},error:(t,e,i)=>{this.isUpdating=!1,window.Buttonizer.topBar.publishButton.enable(),window.bdebug.error("Couldn't complete saving: "+t)}}))}revert(){window.Buttonizer.buttonChanges||(window.Buttonizer.loader.show(window.Buttonizer.translate("revert.reverting")),this.isUpdating=!0,window.Buttonizer.buttonChanges=!1,jQuery.ajax({url:buttonizer_admin.ajax+"?action=buttonizer_backend&request=SaveData&save=revert",dataType:"json",method:"post",data:{security:buttonizer_admin.security},success:t=>{if(this.isUpdating=!1,"success"!==t.status)return window.Buttonizer.loader.hide(),void new s({title:window.Buttonizer.translate("revert.error.title"),content:`<p>${window.Buttonizer.translate("revert.error.message")}</p><p>${t.message}</p>`,buttons:[{text:"Close",close:!0}]});document.location.reload()},error:(t,e,i)=>{this.isUpdating=!1,window.bdebug.error("Couldn't complete saving: "+t)}}))}reloadPreview(){console.log("[BUG DEBUG SAVING AND RELOADING] requested!");try{document.getElementById("buttonizer-iframe").contentWindow.postMessage({eventType:"buttonizer",messageType:"preview-reload"},document.location.origin)}catch(t){console.log("Buttonizer tried to auto update the Buttonizer Buttons. But the message didn't came through. Well. Doesn't matter, it's just an extra function. It's nice to have."),console.log(t),document.getElementById("buttonizer-iframe").contentWindow.location.reload()}}generateJSONObject(){let t=window.Buttonizer.buttonGroups,e=[];for(let i=0;i<t.length;i++){let n=t[i].buttons,o=[];for(let t=0;t<n.length;t++)n[t].alive&&o.push(n[t].data);e.push({data:t[i].data,buttons:o})}return e}},Se=class{constructor(){this.versionDropdown={},this.libraryPremiumCode={},this.currentSelected=window.Buttonizer.getSetting("icon_library","fontawesome"),this.currentSelectedIndex=null,this.currentSelectedVersion=window.Buttonizer.getSetting("icon_library_version","5.free"),this.currentSelectedVersionIndex=null,this.currentSelectedPremiumCode=window.Buttonizer.getSetting("icon_library_code",""),this.cachedPremium=[],this.libraries=[{name:"Font Awesome",id:"fontawesome",versions:[{id:"5.free",name:"Font Awesome 5 - "+window.Buttonizer.translate("settings_window.icon_library.free")+" - "+window.Buttonizer.translate("settings_window.icon_library.latest"),free:!0},{id:"5.paid",name:"Font Awesome 5 - Pro - "+window.Buttonizer.translate("settings_window.icon_library.latest"),free:!1},{id:"4.7.0",name:"Font Awesome 4.7",free:!0}]}]}build(){let t=document.createElement("div");return t.appendChild(this.iconLibrary()),t.appendChild(this.versionSelector()),t.appendChild(this.importIconLibrary()),t}showPremiumIcons(){return!0}iconLibrary(){let t=document.createElement("select");t.className="window-select";for(let e=0;e<this.libraries.length;e++){let i=document.createElement("option");i.value=e,i.text=this.libraries[e].name,i.setAttribute("data-index",e.toString()),this.currentSelected===this.libraries[e].id&&(i.selected=!0,this.currentSelectedIndex=e),t.appendChild(i)}t.addEventListener("change",()=>{this.currentSelected=t.value,this.currentSelectedIndex=Number(t.getAttribute("data-index")),this.currentSelectedVersion=0,window.Buttonizer.saveSettings({icon_library:t.value,icon_library_version:this.libraries[this.currentSelectedIndex].versions[0]},!1),this.buildVersionSelector(),this.reloadIframe()});let e=document.createElement("div");e.innerHTML=window.Buttonizer.translate("settings_window.icon_library.info");let i=new r;return i.addColumnHTML("<h2>"+window.Buttonizer.translate("settings_window.icon_library.title")+"</h2>"),i.addColumn(t,"","370"),i.newRow(),i.addColumnText(""),i.addColumn(e),i.build()}versionSelector(){this.versionDropdown=document.createElement("select"),this.versionDropdown.className="window-select",this.versionDropdown.addEventListener("change",()=>{this.currentSelectedVersion=this.versionDropdown.value,window.Buttonizer.saveSettings({icon_library_version:this.currentSelectedVersion},!1),this.currentSelectedVersion.indexOf("paid")>=0?(this.libraryPremiumCode.style.display="block",""!==this.currentSelectedPremiumCode&&this.reloadIcons()):(this.libraryPremiumCode.style.display="none",this.reloadIcons())});let t=document.createElement("div");t.innerHTML=window.Buttonizer.translate("settings_window.icon_library.select_version.info");let e=new r;e.addColumnHTML("<h2>"+window.Buttonizer.translate("settings_window.icon_library.select_version.title")+"</h2>"),e.addColumn(this.versionDropdown,"","370"),e.newRow(),e.addColumnText(""),e.addColumn(t);let i=document.createElement("div");return i.appendChild(e.build()),i.appendChild(this.libraryLicenseKey()),this.buildVersionSelector(),i}reloadIcons(){window.Buttonizer.iconSelector.iconListener.onReady(()=>{window.Buttonizer.iconSelector.rebuild(),window.Buttonizer.addIconLibrary(),this.reloadIframe()}),window.Buttonizer.iconSelector.iconListener.loadIcons()}libraryLicenseKey(){let t=document.createElement("div");t.innerHTML=window.Buttonizer.translate("settings_window.icon_library.library_license_key.info")+'<a href="" target="_blank" class="link-add-more" style="display: inline">'+window.Buttonizer.translate("settings_window.icon_library.library_license_key.how_does_it_work")+"</a>";let e=document.createElement("input");e.placeholder=window.Buttonizer.translate("settings_window.icon_library.library_license_key.enter_integrity_code"),e.className="window-select",e.value=this.currentSelectedPremiumCode,e.addEventListener("change",()=>{window.Buttonizer.saveSettings({icon_library_code:e.value},!1),this.reloadIcons()});let i=new r;return i.addColumnHTML(" "),i.addColumn(e,"","370"),i.newRow(),i.addColumnText(""),i.addColumn(t),this.libraryPremiumCode=i.build(),this.libraryPremiumCode}buildVersionSelector(){this.versionDropdown.innerHTML="";let t=!1;for(let e=0;e<this.libraries[this.currentSelectedIndex].versions.length;e++){let i=document.createElement("option");i.value=this.libraries[this.currentSelectedIndex].versions[e].id,i.text=this.libraries[this.currentSelectedIndex].versions[e].name,this.currentSelectedVersion===i.value&&(i.selected=!0,this.libraries[this.currentSelectedIndex].versions[e].free||(t=!0)),this.versionDropdown.appendChild(i)}this.libraryPremiumCode.style.display=t?"block":"none"}importIconLibrary(){let t=new Bt({state:window.Buttonizer.getSetting("import_icon_library",!0)});t.onToggle(t=>{window.Buttonizer.saveSettings({import_icon_library:t},!1),this.reloadIframe()});let e=document.createElement("div");e.innerHTML=window.Buttonizer.translate("settings_window.icon_library.import_library.info");let i=new r;return i.addColumnHTML("<h2>"+window.Buttonizer.translate("settings_window.icon_library.import_library.title")+"</h2>"),i.addColumn(t.build(),"","370"),i.newRow(),i.addColumnText(""),i.addColumn(e),this.buildVersionSelector(),i.build()}reloadIframe(){setTimeout(()=>{document.getElementById("buttonizer-iframe").contentWindow.location.reload()},1500)}};class Le{constructor(){this.versionDropdown={},this.currentSelected=window.Buttonizer.getSetting("google_analytics","")}build(){let t=document.createElement("div");t.appendChild(this.input());let e=document.createElement("a");return e.href="https://community.buttonizer.pro/knowledgebase/17",e.target="_blank",e.className="info-link text-big",e.innerHTML='<i class="fas fa-info"></i> '+window.Buttonizer.translate("settings_window.google_analytics.info"),e.style.marginTop="40px",e.style.textAlign="center",t.appendChild(e),t}input(){let t=document.createElement("input");t.value=this.currentSelected,t.className="window-select",t.placeholder="UA-XXXXXX-Y",t.addEventListener("change",()=>{window.Buttonizer.saveSettings({google_analytics:t.value},!1)});let e=document.createElement("div");e.innerHTML=window.Buttonizer.translate("settings_window.google_analytics.input_info");let i=new r;return i.addColumnHTML("<h2>Google Analytics</h2>"),i.addColumn(t,"","375"),i.newRow(),i.addColumnText(""),i.addColumn(e),i.build()}}class Oe{constructor(){}build(){let t=document.createElement("div"),e=document.createElement("div");return e.className="settings-window-information",e.innerHTML="<p>"+window.Buttonizer.translate("settings_window.reset.info")+"</p>",t.appendChild(e),t.appendChild(this.whatWillHappen()),t.appendChild(this.why()),t.appendChild(this.myLicense()),t.appendChild(this.andThen()),t.appendChild(this.ready()),t}whatWillHappen(){let t=document.createElement("div"),e=document.createElement("div");e.className="window-splitter",e.innerHTML=window.Buttonizer.translate("settings_window.reset.what_will_happen.title"),e.style.marginBottom="20px",t.appendChild(e);let i=document.createElement("div");return i.className="settings-window-information",i.innerHTML="<p>"+window.Buttonizer.translate("settings_window.reset.what_will_happen.info")+"</p>",t.appendChild(i),t}why(){let t=document.createElement("div"),e=document.createElement("div");e.className="window-splitter",e.innerHTML=window.Buttonizer.translate("settings_window.reset.why.title"),e.style.marginBottom="20px",t.appendChild(e);let i=document.createElement("div");return i.className="settings-window-information",i.innerHTML="<p>"+window.Buttonizer.translate("settings_window.reset.why.info")+"</p>",t.appendChild(i),t}myLicense(){let t=document.createElement("div"),e=document.createElement("div");e.className="window-splitter",e.innerHTML=window.Buttonizer.translate("settings_window.reset.license.title"),e.style.marginBottom="20px",t.appendChild(e);let i=document.createElement("div");return i.className="settings-window-information",i.innerHTML=`\n<p>${window.Buttonizer.translate("settings_window.reset.license.info")}</p>\n<p>\n<ul>\n <li>${window.Buttonizer.translate("settings_window.reset.license.list.buttons")}</li>\n <li>${window.Buttonizer.translate("settings_window.reset.license.list.groups")}</li>\n <li>${window.Buttonizer.translate("settings_window.reset.license.list.time_schedules")}</li>\n <li>${window.Buttonizer.translate("settings_window.reset.license.list.page_rules")}</li>\n <li>${window.Buttonizer.translate("settings_window.reset.license.list.settings")}</li>\n <li>${window.Buttonizer.translate("settings_window.reset.license.list.published")}</li>\n</ul>\n</p>\n`,t.appendChild(i),t}andThen(){let t=document.createElement("div"),e=document.createElement("div");e.className="window-splitter",e.innerHTML=window.Buttonizer.translate("settings_window.reset.default_settings.title"),e.style.marginBottom="20px",t.appendChild(e);let i=document.createElement("div");return i.className="settings-window-information",i.innerHTML="<p>"+window.Buttonizer.translate("settings_window.reset.default_settings.info")+"</p>",t.appendChild(i),t}ready(){let t=document.createElement("div"),e=document.createElement("div");e.className="window-splitter",e.innerHTML=window.Buttonizer.translate("settings_window.reset.ready.title"),e.style.marginBottom="20px",t.appendChild(e);let i=document.createElement("div");i.className="settings-window-information",i.innerHTML="<p>"+window.Buttonizer.translate("settings_window.reset.ready.info")+"</p>",t.appendChild(i);let n=document.createElement("a");return n.className="button button-red button-centered-reset",n.innerHTML='<i class="fas fa-sync"></i> '+window.Buttonizer.translate("settings_window.reset.ready.button"),n.href="javascript:void(0)",n.addEventListener("click",()=>this.countdown()),t.appendChild(n),t}countdown(){window.Buttonizer.loader.show(window.Buttonizer.translate("loading.initializing")),setTimeout(()=>{window.Buttonizer.loader.show(window.Buttonizer.translate("loading.resetting")),this.reset()},1500)}reset(){jQuery.ajax({url:buttonizer_admin.ajax+"?action=buttonizer_backend&request=SaveData&save=reset-buttonizer",dataType:"json",method:"post",data:{security:buttonizer_admin.security},success:t=>{"success"===t.status?(window.Buttonizer.loader.show(window.Buttonizer.translate("loading.finishing")),setTimeout(()=>{document.location.reload()},500)):(window.Buttonizer.loader.hide(),window.Buttonizer.savingError(t.message))},error:(t,e,i)=>{window.Buttonizer.loader.hide(),window.Buttonizer.savingError(e)}})}error(){}}class Te{constructor(){}build(){let t=document.createElement("div"),e=document.createElement("div");return e.className="settings-window-information",e.innerHTML="<p>We have fixed the migration issues in the last couple updates. \n If you lost buttons when updating to version 2.0,\n you can try migrating your old buttons again!</p>",t.appendChild(e),t.appendChild(this.whatWillHappen()),t.appendChild(this.why()),t.appendChild(this.caution()),t.appendChild(this.ready()),t}whatWillHappen(){let t=document.createElement("div"),e=document.createElement("div");e.className="window-splitter",e.innerHTML="What happens when I click the red button below?",e.style.marginBottom="20px",t.appendChild(e);let i=document.createElement("div");return i.className="settings-window-information",i.innerHTML="<p>Buttonizer made a backup of your buttons from version 1.5.x in your database. \n When you click on the button below, it will convert that backup into buttons suitable for version 2.0.\n It will not remove the backup so that you can still revert back to version 1.5.7 if you want!</p>",t.appendChild(i),t}why(){let t=document.createElement("div"),e=document.createElement("div");e.className="window-splitter",e.innerHTML="Why would I do that?",e.style.marginBottom="20px",t.appendChild(e);let i=document.createElement("div");return i.className="settings-window-information",i.innerHTML="<p>During the first update to version 2.0, a couple of users lost their settings or buttons!\n Since then we've fixed all the reported migration issues.\n <b>This is a chance for those who lost their buttons to try and see if they can migrate their old buttons again.</b></p>",t.appendChild(i),t}caution(){let t=document.createElement("div"),e=document.createElement("div");e.className="window-splitter",e.innerHTML="Extra! Extra!",e.style.marginBottom="20px",t.appendChild(e);let i=document.createElement("div");return i.className="settings-window-information",i.innerHTML="\n <p>A little warning! \n This will remove your current Buttonizer version 2.0 buttons/settings. \n <b>It will not make a backup!</b></p>",t.appendChild(i),t}andThen(){let t=document.createElement("div"),e=document.createElement("div");e.className="window-splitter",e.innerHTML="Okay, sounds good. What then?",e.style.marginBottom="20px",t.appendChild(e);let i=document.createElement("div");return i.className="settings-window-information",i.innerHTML="<p>Buttonizer will go back to the default settings and will behave like a fresh installation. That's all.</p>",t.appendChild(i),t}ready(){let t=document.createElement("div"),e=document.createElement("div");e.className="window-splitter",e.innerHTML="Okay, I'm ready!",e.style.marginBottom="20px",t.appendChild(e);let i=document.createElement("div");i.className="settings-window-information",i.innerHTML="<p>Press the red button below to re-migrate old data. There will be no more warnings.</p>",t.appendChild(i);let n=document.createElement("a");return n.className="button button-red button-centered-reset",n.innerHTML='<i class="fas fa-sync"></i> Re-migrate old data!',n.href="javascript:void(0)",n.addEventListener("click",()=>this.countdown()),t.appendChild(n),t}countdown(){window.Buttonizer.loader.show("Initializing..."),setTimeout(()=>{window.Buttonizer.loader.show("Running migration..."),this.remigrate()},1500)}remigrate(){jQuery.ajax({url:buttonizer_admin.ajax+"?action=buttonizer_backend&request=SaveData&save=remigrate-buttonizer",dataType:"json",method:"post",data:{security:buttonizer_admin.security},success:t=>{"success"===t.status?(window.Buttonizer.loader.show("Finishing..."),setTimeout(()=>{document.location.reload()},500)):(window.Buttonizer.loader.hide(),window.Buttonizer.savingError(t.message))},error:(t,e,i)=>{window.Buttonizer.loader.hide(),window.Buttonizer.savingError(e)}})}error(){}}class Ne{build(){let t=document.createElement("div");return t.appendChild(this.showWPAdminTopBarButton()),t.appendChild(this.showTooltips()),t.appendChild(this.allowRequestsFromSubdomains()),t}showWPAdminTopBarButton(){let t=new Bt({state:window.Buttonizer.getSetting("admin_top_bar_show_button","true")});t.onToggle(t=>{window.Buttonizer.saveSettings({admin_top_bar_show_button:t},!1)});let e=new r;return e.addColumnHTML("<h2>"+window.Buttonizer.translate("settings_window.other_settings.admin_button.title")+"</h2>"),e.addColumn(t.build(),"","370"),e.newRow(),e.addColumnText(""),e.addColumnText(window.Buttonizer.translate("settings_window.other_settings.admin_button.info")),e.build()}showTooltips(){let t=new Bt({state:window.Buttonizer.getSetting("show_tooltips")});t.onToggle(t=>{window.Buttonizer.saveSettings({show_tooltips:t},!1)});let e=new r;return e.addColumnHTML("<h2>"+window.Buttonizer.translate("settings_window.other_settings.tooltips.title")+"</h2>"),e.addColumn(t.build(),"","370"),e.newRow(),e.addColumnText(""),e.addColumnText(window.Buttonizer.translate("settings_window.other_settings.tooltips.info")),e.build()}allowRequestsFromSubdomains(){let t=new Bt({state:window.Buttonizer.getSetting("allow_subdomains","false")});t.onToggle(t=>{window.Buttonizer.saveSettings({allow_subdomains:t},!1)});let e=new r;return e.addColumnHTML("<h2>"+window.Buttonizer.translate("settings_window.other_settings.subdomain.title")+"</h2>"),e.addColumn(t.build(),"","370"),e.newRow(),e.addColumnText(""),e.addColumnText(window.Buttonizer.translate("settings_window.other_settings.subdomain.info")),e.build()}}var Ae=class extends d{constructor(){super({},window.Buttonizer.translate("settings_window.title"))}render(){this.fontAwesome(),this.analytics(),this.mainSettings(),this.reset()}fontAwesome(){super.addItem(window.Buttonizer.translate("settings_window.icon_library.title"),(new Se).build())}analytics(){super.addItem("Google Analytics",(new Le).build())}mainSettings(){super.addItem(window.Buttonizer.translate("settings_window.other_settings.title"),(new Ne).build())}remigrate(){super.addItem("Re-migrate",(new Te).build())}reset(){super.addItem(window.Buttonizer.translate("settings_window.reset.title"),(new Oe).build())}},Ie=class{constructor(){this.element=null,this.itemList=null,this.searchList=null,this.searchInput=null,this.fontAwesomeStylesheet=null,this.iframeContent=null,this.mayClose(),this.build(),this.iconListener=new class{constructor(){this.icons=[],this.callback=(()=>{}),this.searchResultCache=[],this.loadIcons()}onReady(t){this.callback=t}getIcons(){return this.icons}search(t){if(void 0!==this.searchResultCache[t])return this.searchResultCache[t];let e=[];for(let i=0;i<this.icons.length;i++){let n=this.icons[i];(n.searchTerms.indexOf(t)>=0||n.name.indexOf(t)>=0)&&e.push(n)}return this.searchResultCache[t]=e,e}loadIcons(){this.searchResultCache=[],this.icons=[];let t=window.Buttonizer.settings.icon_library,e=window.Buttonizer.settings.icon_library_version;jQuery.ajax({url:buttonizer_admin.assets+"/icon_definitions/"+t+"."+e+".json?buttonizer-icon-cache="+window.Buttonizer.version,dataType:"json",method:"get",success:i=>{this.icons=i,console.log("Finished loading icon library '"+t+"' version "+e),this.callback()},error:()=>{console.error("Could not load icon library '"+t+"' version "+e)}})}},this.iconLibrary=new Se,this.currentInput=null,this.currentInputJ=null,this.searchTimeout=setTimeout(()=>{},1),setInterval(()=>this.stayOnPlace(),100),this.firstBuild=!0,this.opened=!1}build(){let t=document.createElement("div");t.className="buttonizer-icon-selector";let e=document.createElement("div");e.className="icon-selector-searchbar";let i=document.createElement("input");i.className="icon-selector-searchbar",i.placeholder=window.Buttonizer.translate("utils.search_icons"),i.addEventListener("keyup",()=>{clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(()=>{this.search(i.value)},200)}),this.searchInput=i,e.appendChild(this.searchInput),t.appendChild(e);let n=document.createElement("iframe");n.height="350px",n.width="100%",n.src="about:blank",n.frameborder=0,n.addEventListener("load",()=>{n.contentDocument.querySelector("head").appendChild(window.Buttonizer.iconLibraryStylesheet);let t=document.createElement("style");t.innerText='\nbody, html {\n background-color: #f5f5f5;\n margin: 0;\n padding: 0;\n font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;\n font-size: 14px;\n}\n\n.icon-selector-list {\n border-top: 1px solid #e7e7e7;\n overflow: auto;\n text-align: center;\n}\n\n.icon-selector-list a {\n background-color: #f5f5f5;\n color: #464646;\n font-size: 19px;\n width: 16%;\n height: 50px;\n line-height: 50px;\n text-decoration: none;\n display: inline-block;\n text-align: center;\n outline: none;\n}\n\n.icon-selector-list a:hover {\n background-color: #e7e7e7;\n}\n\n.icon-selector-list a:focus {\n box-shadow: none !important;\n}\n\n.fa, .fal, .far, .fas, .fab {\n line-height: 50px !important;\n}',n.contentDocument.querySelector("head").appendChild(t),this.itemList=document.createElement("div"),this.itemList.className="icon-selector-list",n.contentDocument.body.appendChild(this.itemList),this.searchList=document.createElement("div"),this.searchList.className="icon-selector-list search-list",this.searchList.style.display="none",n.contentDocument.body.appendChild(this.searchList)}),this.iframeContent=n,t.appendChild(this.iframeContent),this.element=t,document.body.appendChild(this.element)}search(t){if(""===t)return this.searchList.style.display="none",this.itemList.style.display="block",void(this.iframeContent.height="350px");this.searchList.style.display="block",this.itemList.style.display="none";let e=this.iconListener.search(t);e.length>0?(this.searchList.innerHTML="",this.showIcons(this.searchList,e),jQuery(this.searchList).height()>350?this.iframeContent.height="350px":this.iframeContent.height=jQuery(this.searchList).height()+5+"px"):(this.iframeContent.height="50px",this.searchList.innerHTML=`<p>${window.Buttonizer.translate("utils.search_not_found")} <b>${t}</b></p>`)}rebuild(){this.itemList.innerHTML="",this.searchList.innerHTML="",this.showIcons(this.itemList,this.iconListener.getIcons())}showIcons(t,e){for(let i=0;i<e.length;i++){let n=e[i];for(let e=0;e<n.icons.length;e++){let i=document.createElement("a");i.innerHTML=`<i class="${n.icons[e].icon}"></i>`,i.href="javascript:void(0)",i.title=n.name+" ("+n.icons[e].type+")",i.addEventListener("click",()=>{if(null!==this.currentInput){if(this.currentInput.value=n.icons[e].icon,"createEvent"in document){let t=document.createEvent("HTMLEvents");t.initEvent("change",!1,!0),this.currentInput.dispatchEvent(t)}else this.currentInput.fireEvent("onchange");this.close()}}),t.appendChild(i)}}}open(t){this.currentInput=t,this.currentInputJ=jQuery(this.currentInput),this.searchInput.value="",this.searchList.style.display="none",this.itemList.style.display="block",this.element.style.display="block",setTimeout(()=>{this.searchInput.focus(),this.opened=!0,this.stayOnPlace(),setTimeout(()=>{this.element.className="buttonizer-icon-selector selector-animated",this.firstBuild&&(this.firstBuild=!1,this.rebuild())},250)},50)}mayClose(){document.querySelector("body").addEventListener("click",t=>{this.opened&&"icon-selector-searchbar"!==t.target.className&&(this.element.style.display="none",this.element.className="buttonizer-icon-selector",this.opened=!1)})}close(){this.element.style.display="none",this.opened=!1}stayOnPlace(){if(this.opened){let t=this.currentInputJ.offset().top+this.currentInputJ.height()+10+"px";t!==this.element.style.top&&(this.element.style.top=t,this.element.style.left=this.currentInputJ.offset().left+"px")}}},Me=(i(7),i(0));const qe=i(12);class He{constructor(){this.tour=null,this.amount=window.Buttonizer.buttonGroups[0].groupObject.querySelectorAll(".group-button").length,this.single="",this.setupStep5=!1,this.setupStep6=!1,this.setupStep7=!1,this.setupStep10=!1,this.setupStep11=!1,this.setup2Step4=!1,this.setup2Step6=!1,this.setup2Step7=!1,this.setup2Step12=!1}build(){let t=this.intro();t.onchange(e=>this.conditions(t._currentStep,e,1)),t.start(),t.onbeforeexit(()=>this.onExit(t._currentStep,1)),t.onexit(()=>{this.tour=null,this.amount=window.Buttonizer.buttonGroups[0].groupObject.querySelectorAll(".group-button").length,this.setupStep5=!1,this.setupStep6=!1,this.setupStep7=!1,this.setupStep10=!1,this.setupStep11=!1,this.setup2Step4=!1,this.setup2Step6=!1,this.setup2Step7=!1,this.setup2Step12=!1,20===t._currentStep&&window.Buttonizer.bar.groupHolder.querySelector(".create-new-button").click()})}getAmount(){return this.amount=window.Buttonizer.buttonGroups[0].groupObject.querySelectorAll(".group-button").length,this.amount}conditions(t,e,i){if(this.amount=window.Buttonizer.buttonGroups[0].groupObject.querySelectorAll(".group-button").length,1===i)if(0===t)window.Buttonizer.bar.settingContainer.classList.contains("hidden")||window.Buttonizer.bar.settingContainer.querySelector(".back-button").click();else if(4===t){if(!this.setupStep5){this.setupStep5=!0,document.querySelector(".options-button").addEventListener("click",()=>{null!==this.tour&&this.tour.goToStep(6)})}"backward"===this.tour._direction&&(document.querySelector(".options-window").hasAttribute("hidden")||document.querySelector(".options-window").setAttribute("hidden",""))}else if(5===t)document.querySelector(".options-window").hasAttribute("hidden")&&document.querySelector(".options-window").removeAttribute("hidden"),"backward"===this.tour._direction&&document.querySelector(".options-window").classList.remove("disabled");else if(6===t){document.querySelector(".options-window").hasAttribute("hidden")&&document.querySelector(".options-window").removeAttribute("hidden"),document.querySelector(".options-window").setAttribute("style","z-index:9999999 !important"),document.querySelector(".options-window").classList+=" disabled";let t=window.Buttonizer.topBar.optionsWindow.querySelector(".single-button");t.style.pointerEvents="all",t.style.cursor="pointer",this.setupStep7||(this.setupStep7=!0,t.addEventListener("click",()=>{null!==this.tour&&this.tour.nextStep()})),"backward"===this.tour._direction&&(window.Buttonizer.settingsWindow.title.parentElement.parentElement.style.display="none")}else if(7===t)document.querySelector(".options-window").removeAttribute("style","z-index:9999999 !important"),document.querySelector(".options-window").classList.remove("disabled"),window.Buttonizer.settingsWindow.title.parentElement.parentElement.style.display="block",window.Buttonizer.settingsWindow.title.parentElement.parentElement.setAttribute("style","z-index:9999999 !important;pointer-events: none;"),document.querySelector(".options-window").hasAttribute("hidden")||document.querySelector(".options-window").setAttribute("hidden","");else if(8===t)window.Buttonizer.settingsWindow.title.parentElement.parentElement.removeAttribute("style","z-index:9999999 !important"),window.Buttonizer.settingsWindow.title.parentElement.parentElement.style.display="none";else if(9===t){if(!this.setupStep10){this.setupStep10=!0,window.Buttonizer.bar.groupHolder.querySelector(".button-group-holder").querySelector(".group-style").addEventListener("click",()=>{null!==this.tour&&!1===this.setupStep11&&this.tour.nextStep()})}"backward"===this.tour._direction&&(this.setupStep11=!1,Object(Me.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style","width: 50px; height: 60px; top: 67px; left: 276px;"),document.querySelector(".introjs-helperLayer").setAttribute("style","width: 50px; height: 60px; top: 67px; left: 276px;")},100),window.Buttonizer.bar.settingContainer.querySelector(".back-button").click())}else if(10===t)"forward"===this.tour._direction&&(0==this.setupStep11&&(this.setupStep11=!0,window.Buttonizer.buttonGroups[0].groupHolder.toggleStyling()),this.tour._introItems[11].element=jQuery(".button-group-styling:visible")[0].querySelector(".style-top"),this.tour._introItems[13].element=jQuery(".button-group-styling:visible")[0].querySelector(".style-button"),this.tour._introItems[14].element=jQuery(".button-group-styling:visible")[0].querySelector(".style-icon"),this.tour._introItems[15].element=jQuery(".button-group-styling:visible")[0].querySelector(".style-label"),Object(Me.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style","width: 385px; height: 966px; top: 46px; left: -5px;")},100),window.Buttonizer.bar.settingContainer.querySelector(".back-button").style.pointerEvents="none");else if(12===t)1===this.amount&&("forward"===this.tour._direction?Object(Me.setTimeout)(()=>{this.tour.nextStep()},100):"backward"===this.tour._direction&&Object(Me.setTimeout)(()=>{this.tour.previousStep()},100));else if(15===t)"backward"===this.tour._direction&&(window.Buttonizer.buttonGroups[0].groupHolder.toggleStyling(),Object(Me.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style","width: 371px; height: 263px; top: 688px; left: 2px;")},100));else if(16===t||17===t||18===t||19===t){window.Buttonizer.bar.settingContainer.querySelector(".back-button").click(),window.Buttonizer.bar.groupHolder.querySelector(".create-new-button").addEventListener("click",()=>{null!==this.tour&&this.tour.goToStep(21)}),16===t&&(this.tour._direction="forward")&&(1===this.getAmount()&&window.Buttonizer.buttonGroups[0].groupHolder.quickMenu.querySelector(".convert-button").click(),window.Buttonizer.buttonGroups[0].groupObject.classList.contains("opened")||window.Buttonizer.buttonGroups[0].groupHolder.revealButtons(),Object(Me.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style",document.querySelector(".introjs-tooltipReferenceLayer").getAttribute("style")+"width: 333px !important; height: 48px !important; left: 36px !important;"),document.querySelector(".introjs-helperLayer").setAttribute("style",document.querySelector(".introjs-tooltipReferenceLayer").getAttribute("style")+"width: 333px !important; height: 48px !important; left: 36px !important;")},100))}else 20===t&&Object(Me.setTimeout)(()=>{this.tour.exit()},100);else if(2===i){let e=window.Buttonizer.buttonGroups[0].groupBody.querySelectorAll(".buttonizer-button-group")[window.Buttonizer.buttonGroups[0].groupBody.querySelectorAll(".buttonizer-button-group").length-1];if(0===t);else if(2===t)Object(Me.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style",document.querySelector(".introjs-tooltipReferenceLayer").getAttribute("style")+"left: 276px !important;")},100);else if(2===t)"backward"===this.tour._direction&&(e.querySelector(".group-title").style.pointerEvents="all",e.querySelector(".mobile-desktop").style.pointerEvents="all");else if(3===t)(e.querySelector(".group-holder-quick-menu").style.visibility="visible")&&(e.querySelector(".group-holder-quick-menu").style.visibility="hidden",e.querySelector(".group-holder-quick-menu").style.top="45px",e.querySelector(".group-holder-quick-menu").style.opacity="0"),Object(Me.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style",document.querySelector(".introjs-tooltipReferenceLayer").getAttribute("style"))},100),e.querySelector(".group-title").style.pointerEvents="none",e.querySelector(".mobile-desktop").style.pointerEvents="none",this.setup2Step4||(this.setup2Step4=!0,e.querySelector(".holder-button").addEventListener("click",()=>{null!==this.tour&&this.tour.nextStep()})),e.querySelector(".holder-button").style.backgroundColor="rgb(255, 255, 255)";else if(4===t){if((e.querySelector(".group-holder-quick-menu").style.visibility="hidden")&&(e.querySelector(".group-holder-quick-menu").style.visibility="visible",e.querySelector(".group-holder-quick-menu").style.top="50px",e.querySelector(".group-holder-quick-menu").style.opacity="1"),"backward"===this.tour._direction){e.querySelector(".fa-wrench").parentElement.style.pointerEvents="none",e.querySelector(".group-holder-quick-menu").style.pointerEvents="none"}else"forward"===this.tour._direction&&(e.querySelector(".group-holder-quick-menu").style.pointerEvents="none");this.amount>=8&&Object(Me.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style",document.querySelector(".introjs-tooltipReferenceLayer").getAttribute("style")+"top: 684px !important;")},100)}else if(5===t){"backward"===this.tour._direction&&(this.setup2Step7=!1,e.querySelector(".group-holder-quick-menu").style.visibility="visible",e.querySelector(".group-holder-quick-menu").style.top="50px",e.querySelector(".group-holder-quick-menu").style.opacity="1",window.Buttonizer.bar.settingContainer.querySelector(".back-button").click(),Object(Me.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style",document.querySelector(".introjs-tooltipReferenceLayer").getAttribute("style")+"left: 36px !important;")},100)),this.amount>=8&&Object(Me.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style",document.querySelector(".introjs-tooltipReferenceLayer").getAttribute("style")+"top: 692px !important;")},100),e.querySelector(".group-holder-quick-menu").setAttribute("style",e.querySelector(".group-holder-quick-menu").getAttribute("style")+"z-index: 99999999 !important;");let t=e.querySelector(".fa-wrench").parentElement;t.style.pointerEvents="all",t.style.cursor="pointer",this.setup2Step6||(this.setup2Step6=!0,e.querySelector(".fa-wrench").parentElement.addEventListener("click",()=>{null!==this.tour&&!1===this.setup2Step7&&this.tour.nextStep()}))}else 6===t?("forward"===this.tour._direction&&(0==this.setup2Step7&&(this.setup2Step7=!0,e.querySelector(".settings").click()),Object(Me.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style","width: 385px; height: 966px; top: 46px; left: -5px;")},100)),e.querySelector(".group-holder-quick-menu").style.visibility="hidden",e.querySelector(".group-holder-quick-menu").style.top="45px",e.querySelector(".group-holder-quick-menu").style.opacity="0"):10===t?(e.querySelector(".settings").click(),"backward"===this.tour._direction&&Object(Me.setTimeout)(()=>{document.querySelector(".introjs-tooltipReferenceLayer").setAttribute("style","width: 371px; height: 224px; top: 630px; left: 2px;")},100)):11===t&&(window.Buttonizer.bar.settingContainer.querySelector(".back-button").click(),this.setup2Step12||(this.setup2Step12=!0,window.Buttonizer.topBar.topBarElement.querySelector(".revert-save").addEventListener("click",()=>{null!==this.tour&&this.tour.nextStep()})))}}onExit(t,e){if(this.tour=null,this.amount=window.Buttonizer.buttonGroups[0].groupObject.querySelectorAll(".group-button").length,this.setupStep5=!1,this.setupStep6=!1,this.setupStep7=!1,this.setupStep10=!1,this.setupStep11=!1,this.setup2Step4=!1,this.setup2Step6=!1,this.setup2Step7=!1,this.setup2Step12=!1,1===e)(window.Buttonizer.bar.settingContainer.querySelector(".back-button").style.pointerEvents="none")&&(window.Buttonizer.bar.settingContainer.querySelector(".back-button").style.pointerEvents="all"),5===t?document.querySelector(".options-window").setAttribute("hidden",""):6===t?document.querySelector(".options-window").classList.remove("disabled"):7===t?window.Buttonizer.settingsWindow.title.parentElement.parentElement.removeAttribute("style","z-index:9999999 !important;pointer-events: none;"):20===t&&Object(Me.setTimeout)(()=>{let t=this.intro2();t.onchange(e=>this.conditions(t._currentStep,e,2)),t.start(),t.onbeforeexit(()=>this.onExit(t._currentStep,2)),t.onexit(()=>{this.tour=null,this.amount=window.Buttonizer.buttonGroups[0].groupObject.querySelectorAll(".group-button").length,this.setupStep5=!1,this.setupStep6=!1,this.setupStep7=!1,this.setupStep10=!1,this.setupStep11=!1,this.setup2Step4=!1,this.setup2Step6=!1,this.setup2Step7=!1,this.setup2Step12=!1,20===t._currentStep&&window.Buttonizer.bar.groupHolder.querySelector(".create-new-button").click()})},300);else if(2===e){let e=window.Buttonizer.buttonGroups[0].groupBody.querySelectorAll(".buttonizer-button-group")[window.Buttonizer.buttonGroups[0].groupBody.querySelectorAll(".buttonizer-button-group").length-1];3===t&&(e.querySelector(".group-title").style.pointerEvents="all",e.querySelector(".mobile-desktop").style.pointerEvents="all"),e.querySelector(".group-holder-quick-menu").hasAttribute("style")&&e.querySelector(".group-holder-quick-menu").setAttribute("style",""),e.querySelector(".group-holder-quick-menu").classList.contains("disabled")&&e.querySelector(".group-holder-quick-menu").classList.remove("disabled"),(e.querySelector(".group-holder-quick-menu").style.pointerEvents="none")&&(e.querySelector(".group-holder-quick-menu").style.pointerEvents="all"),(e.querySelector(".group-title").style.pointerEvents="none")&&(e.querySelector(".group-title").style.pointerEvents="all"),(e.querySelector(".mobile-desktop").style.pointerEvents="none")&&(e.querySelector(".mobile-desktop").style.pointerEvents="all"),(e.querySelector(".fa-wrench").parentElement.style.pointerEvents="none")&&(e.querySelector(".fa-wrench").parentElement.style.pointerEvents="all")}}intro(){return this.tour=qe(),this.tour.setOptions({showBullets:!1,exitOnOverlayClick:!1,skipLabel:window.Buttonizer.translate("welcome.exit_tour"),doneLabel:window.Buttonizer.translate("welcome.exit_tour"),nextLabel:window.Buttonizer.translate("common.next")+" →",prevLabel:"← "+window.Buttonizer.translate("common.previous"),scrollToElement:!0,showStepNumbers:!1,disableInteraction:!0}),this.tour.setOptions({steps:[{intro:"<h2><b>"+window.Buttonizer.translate("welcome.tour-steps.step-0.title")+"</b></h2> "+window.Buttonizer.translate("welcome.tour-steps.step-0.description")+"<br /><br />"+window.Buttonizer.translate("welcome.tour-steps.step-0.keyboard"),position:"left",tooltipClass:"max-width"},{element:document.querySelector(".buttonizer-bar"),intro:"<h2><b>"+window.Buttonizer.translate("welcome.tour-steps.step-1.title")+"</b></h2> "+window.Buttonizer.translate("welcome.tour-steps.step-1.description"),position:"left"},{element:document.querySelector(".buttonizer-frame"),intro:"<h2><b>"+window.Buttonizer.translate("welcome.tour-steps.step-2.title")+"</b></h2> "+window.Buttonizer.translate("welcome.tour-steps.step-2.description"),position:"left"},{element:document.querySelector(".buttonizer-topbar"),intro:"<h2><b>"+window.Buttonizer.translate("welcome.tour-steps.step-3.title")+"</b></h2> "+window.Buttonizer.translate("welcome.tour-steps.step-3.description")+`\n\n <h4 style="font-weight:400;text-align:left;padding:0 15px">\n 1. ${window.Buttonizer.translate("welcome.tour-steps.step-3.list.close")}<br>\n 2. ${window.Buttonizer.translate("welcome.tour-steps.step-3.list.revert")}<br>\n 3. ${window.Buttonizer.translate("welcome.tour-steps.step-3.list.publish")}<br>\n 4. ${window.Buttonizer.translate("welcome.tour-steps.step-3.list.general-settings")}\n </h4>`,position:"left",tooltipClass:"middle"},{element:document.querySelector(".buttonizer-topbar .options-button"),intro:window.Buttonizer.translate("welcome.tour-steps.step-4.description"),position:"left",disableInteraction:!1},{element:document.querySelector(".options-window"),intro:"<h2><b>"+window.Buttonizer.translate("welcome.tour-steps.step-5.title")+"</b></h2><b>"+window.Buttonizer.translate("bar.menu.knowledgebase.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-5.list.knowledgebase")+"<br><b>"+window.Buttonizer.translate("bar.menu.support.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-5.list.support")+"<br><b>"+window.Buttonizer.translate("bar.menu.community.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-5.list.community")+"<br><b>"+window.Buttonizer.translate("bar.menu.account.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-5.list.account")+"<br><b>"+window.Buttonizer.translate("bar.menu.upgrade.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-5.list.upgrade")+"<br><b>"+window.Buttonizer.translate("bar.menu.affiliation.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-5.list.affiliation")+"<br><b>"+window.Buttonizer.translate("bar.menu.options.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-5.list.options"),position:"left",tooltipClass:"wider"},{element:window.Buttonizer.topBar.optionsWindow.querySelector(".single-button"),intro:window.Buttonizer.translate("welcome.tour-steps.step-6.description")+" &rarr;",position:"left",disableInteraction:!1,highlightClass:"introjs-custom-hidden"},{element:window.Buttonizer.settingsWindow.title.parentElement.parentElement.querySelector(".window-menu"),intro:"<h2><b>"+window.Buttonizer.translate("welcome.tour-steps.step-7.title")+"</b></h2><b>"+window.Buttonizer.translate("settings_window.icon_library.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-7.list.icon-library")+"<br><b>Google Analytics:</b> "+window.Buttonizer.translate("welcome.tour-steps.step-7.list.google-analytics")+"<br><b>"+window.Buttonizer.translate("settings_window.reset.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-7.list.reset")+"<br>",position:"left",highlightClass:"introjs-custom-hidden",tooltipClass:"wider"},{element:window.Buttonizer.bar.groupHolder.querySelector(".button-group-holder"),intro:"<h2><b>"+window.Buttonizer.translate("welcome.tour-steps.step-8.title")+"</b></h2>"+window.Buttonizer.translate("welcome.tour-steps.step-8.multiple_buttons")+"<br><br>"+window.Buttonizer.translate("welcome.tour-steps.step-8.visible")+"<br><br>"+window.Buttonizer.translate("welcome.tour-steps.step-8.position")+"<br>",position:"right",tooltipClass:"max-width"},{element:window.Buttonizer.bar.groupHolder.querySelector(".button-group-holder").querySelector(".group-style"),intro:"<b>&larr;</b> "+window.Buttonizer.translate("welcome.tour-steps.step-9.description"),position:"right",disableInteraction:!1},{element:window.Buttonizer.bar.settingContainer,intro:"<h2><b>"+window.Buttonizer.translate("welcome.tour-steps.step-10.title")+"</b></h2>"+window.Buttonizer.translate("welcome.tour-steps.step-10.description")+"<br><br>"+window.Buttonizer.translate("welcome.tour-steps.step-10.action"),position:"right",disableInteraction:!1,highlightClass:"introjs-custom-gone",scrollTo:!1,tooltipClass:"intojs-foff-height"},{element:1===this.getAmount()?jQuery(".button-group-styling")[1].querySelector(".style-top"):window.Buttonizer.buttonGroups[0].stylingObject.querySelector(".style-top"),intro:"<h2><b>"+window.Buttonizer.translate("welcome.tour-steps.step-11.title")+"</b></h2><b>"+window.Buttonizer.translate("settings.menu_position.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-11.position")+"<br><b>"+window.Buttonizer.translate("settings.show_mobile_desktop.title")+"</b> "+window.Buttonizer.translate("welcome.tour-steps.step-11.visibility")+"<br>",position:"right",disableInteraction:!1,scrollTo:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:1===this.getAmount()?jQuery(".button-group-styling")[1].querySelector(".style-menu"):window.Buttonizer.buttonGroups[0].stylingObject.querySelector(".style-menu"),intro:"<h2><b>"+window.Buttonizer.translate("welcome.tour-steps.step-12.title")+"</b></h2><b>"+window.Buttonizer.translate("settings.start_opened.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-12.start_opened")+"<br><b>"+window.Buttonizer.translate("settings.menu_style.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-12.menu_style")+"<br><b>"+window.Buttonizer.translate("settings.menu_animation.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-12.animation")+"<br>",position:"right",disableInteraction:!1,scrollTo:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:1===this.getAmount()?jQuery(".button-group-styling")[1].querySelector(".style-button"):window.Buttonizer.buttonGroups[0].stylingObject.querySelector(".style-button"),intro:"<h2><b>"+window.Buttonizer.translate("welcome.tour-steps.step-13.title")+"</b></h2><b>"+window.Buttonizer.translate("settings.background_color.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-13.background_color")+"<br><b>"+window.Buttonizer.translate("settings.border_radius.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-13.border_radius")+"<br><b>"+window.Buttonizer.translate("settings.background_image.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-13.background_image")+"<br>",position:"right",disableInteraction:!1,scrollTo:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:1===this.getAmount()?jQuery(".button-group-styling")[1].querySelector(".style-icon"):window.Buttonizer.buttonGroups[0].stylingObject.querySelector(".style-icon"),intro:"<h2><b>"+window.Buttonizer.translate("settings.setting_categories.group_icon")+"</b></h2><b>"+window.Buttonizer.translate("settings.icon_or_image.title")+":</b> "+window.Buttonizer.translate("settings.icon_or_image.description")+'<br><h2 style="margin: 1em 0 0 0;"><b>'+window.Buttonizer.translate("settings.icon.title")+"</b></h2><b>"+window.Buttonizer.translate("settings.icon.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-14.icon")+"<br><b>"+window.Buttonizer.translate("settings.icon_color.title")+":</b> "+window.Buttonizer.translate("settings.icon_color.description")+"<br><b>"+window.Buttonizer.translate("settings.icon_size.title")+":</b> "+window.Buttonizer.translate("settings.icon_size.description")+'<br><h2 style="margin: 1em 0 0 0;"><b>'+window.Buttonizer.translate("utils.image")+"</b></h2><b>"+window.Buttonizer.translate("settings.icon_image_select.title")+":</b> "+window.Buttonizer.translate("settings.icon_image_select.description")+"<br><b>"+window.Buttonizer.translate("settings.icon_image_border_radius.title")+":</b> "+window.Buttonizer.translate("settings.icon_image_border_radius.description")+"<br><b>"+window.Buttonizer.translate("settings.icon_image_size.title")+":</b> "+window.Buttonizer.translate("settings.icon_image_size.description")+"<br>",position:"right",disableInteraction:!1,scrollTo:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:1===this.getAmount()?jQuery(".button-group-styling")[1].querySelector(".style-label"):window.Buttonizer.buttonGroups[0].stylingObject.querySelector(".style-label"),intro:"<h2><b>"+window.Buttonizer.translate("settings.setting_categories.label")+"</b></h2><b>"+window.Buttonizer.translate("settings.label.title")+":</b> "+window.Buttonizer.translate("settings.label.description")+"<br><b>"+window.Buttonizer.translate("settings.label_desktop.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-15.label_visibility")+"<br><b>"+window.Buttonizer.translate("settings.label_color.title")+":</b> "+window.Buttonizer.translate("settings.label_color.description")+"<br><b>"+window.Buttonizer.translate("settings.font_size_border_radius.title")+":</b> "+window.Buttonizer.translate("settings.font_size_border_radius.description")+"<br>",position:"right",disableInteraction:!1,scrollTo:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:window.Buttonizer.buttonGroups[0].groupObject.querySelector(".create-new-button"),intro:"<h2><b>"+window.Buttonizer.translate("utils.new_button")+"</b></h2>&larr; "+window.Buttonizer.translate("welcome.tour-steps.step-before-button.action"),position:"right",disableInteraction:!1},{element:window.Buttonizer.buttonGroups[0].groupObject.querySelector(".create-new-button"),intro:window.Buttonizer.translate("welcome.tour-steps.step-before-button.msg1"),position:"right",disableInteraction:!1},{element:window.Buttonizer.buttonGroups[0].groupObject.querySelector(".create-new-button"),intro:window.Buttonizer.translate("welcome.tour-steps.step-before-button.msg2"),position:"right",disableInteraction:!1},{element:window.Buttonizer.buttonGroups[0].groupObject.querySelector(".create-new-button"),intro:window.Buttonizer.translate("welcome.tour-steps.step-before-button.msg3"),position:"right",disableInteraction:!1},{position:"bottom",disableInteraction:!1,highlightClass:"introjs-custom-gone",tooltipClass:"introjs-custom-gone"},{position:"bottom",intro:window.Buttonizer.translate("welcome.tour-steps.step-before-button.msg4"),disableInteraction:!1,highlightClass:"introjs-custom-gone",tooltipClass:"introjs-custom-gone"},{position:"bottom",disableInteraction:!1,highlightClass:"introjs-custom-gone",tooltipClass:"introjs-custom-gone"}]}),this.tour}intro2(){this.tour=qe(),this.tour.setOptions({showBullets:!1,exitOnOverlayClick:!1,skipLabel:window.Buttonizer.translate("welcome.exit_tour"),doneLabel:window.Buttonizer.translate("welcome.exit_tour"),nextLabel:window.Buttonizer.translate("common.next")+" →",prevLabel:"← "+window.Buttonizer.translate("common.previous"),scrollToElement:!0,showStepNumbers:!1,disableInteraction:!0});let t=window.Buttonizer.buttonGroups[0].groupBody.querySelectorAll(".buttonizer-button-group")[window.Buttonizer.buttonGroups[0].groupBody.querySelectorAll(".buttonizer-button-group").length-1],e=window.Buttonizer.bar.settingContainer;return this.tour.setOptions({steps:[{element:t,intro:"<h2><b>"+window.Buttonizer.translate("common.button")+"</b></h2> "+window.Buttonizer.translate("welcome.tour-steps.step-23"),position:"right"},{element:this.amount<=7?t.querySelector(".group-title"):t,intro:"<h2><b>"+window.Buttonizer.translate("settings.name.title")+"</b></h2> "+window.Buttonizer.translate("settings.name.description"),position:"bottom",scrollToElement:!1,highlightClass:"introjs-custom-gone"},{element:this.amount<=7?t.querySelector(".mobile-desktop"):t,intro:"<h2><b>"+window.Buttonizer.translate("settings.label_desktop.title")+"</b></h2> "+window.Buttonizer.translate("welcome.tour-steps.step-15"),position:"bottom",highlightClass:"introjs-custom-gone"},{element:this.amount<=7?t.querySelector(".holder-button"):t,intro:"&larr; "+window.Buttonizer.translate("welcome.tour-steps.step-26"),position:"right",highlightClass:"introjs-custom-gone",disableInteraction:!1},{element:this.amount<=7?t.querySelector(".group-holder-quick-menu"):t,intro:'<h2><b>Menu</b></h2><p style="text-align: left;"><b>'+window.Buttonizer.translate("common.settings")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-27.edit_button")+"<br><b>"+window.Buttonizer.translate("utils.advanced_settings")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-27.advanced_settings")+"<br><b>"+window.Buttonizer.translate("utils.rename")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-27.rename")+"<br><b>"+window.Buttonizer.translate("utils.duplicate")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-27.duplicate")+"<br><b>"+window.Buttonizer.translate("utils.delete")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-27.delete")+"<br></p>",position:"right",highlightClass:"introjs-custom-gone"},{element:this.amount<=7?t.querySelector(".group-holder-quick-menu").querySelector(".settings"):t,intro:"&larr; "+window.Buttonizer.translate("welcome.tour-steps.step-28"),position:"right",disableInteraction:!1,highlightClass:"introjs-custom-hidden"},{element:window.Buttonizer.bar.settingContainer,intro:"<b><h2>"+window.Buttonizer.translate("welcome.tour-steps.step-29.title")+"</h2></b> "+window.Buttonizer.translate("welcome.tour-steps.step-29.description"),position:"right",disableInteraction:!1,highlightClass:"introjs-custom-gone"},{element:e.querySelectorAll(".style-top")[e.querySelectorAll(".style-top").length-1],intro:"<h2><b>"+window.Buttonizer.translate("welcome.tour-steps.step-30.title")+"</b></h2><b>"+window.Buttonizer.translate("settings.button_action.title")+":</b> "+window.Buttonizer.translate("settings.button_action.description")+"<br><b>"+window.Buttonizer.translate("settings.show_mobile_desktop.device_visibility")+":</b> "+window.Buttonizer.translate("settings.show_mobile_desktop.description"),position:"right",disableInteraction:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:e.querySelectorAll(".style-button")[e.querySelectorAll(".style-button").length-1],intro:"<h2><b>"+window.Buttonizer.translate("settings.setting_categories.button_style")+"</b></h2>"+window.Buttonizer.translate("welcome.tour-steps.step-31.enabled")+"<br>"+window.Buttonizer.translate("welcome.tour-steps.step-31.turning_off"),position:"right",disableInteraction:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:e.querySelectorAll(".style-icon")[e.querySelectorAll(".style-icon").length-1],intro:"<h2><b>"+window.Buttonizer.translate("settings.setting_categories.button_icon")+"</b></h2><b>"+window.Buttonizer.translate("settings.icon_or_image.title")+":</b> "+window.Buttonizer.translate("settings.icon_or_image.description")+'<br><h2 style="margin: 1em 0 0 0;"><b>'+window.Buttonizer.translate("settings.icon.title")+"</b></h2><b>"+window.Buttonizer.translate("settings.icon.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-14.icon")+"<br><b>"+window.Buttonizer.translate("settings.icon_color.title")+":</b> "+window.Buttonizer.translate("settings.icon_color.description")+"<br><b>"+window.Buttonizer.translate("settings.icon_size.title")+":</b> "+window.Buttonizer.translate("settings.icon_size.description")+'<br><h2 style="margin: 1em 0 0 0;"><b>'+window.Buttonizer.translate("utils.image")+"</b></h2><b>"+window.Buttonizer.translate("settings.icon_image_select.title")+":</b> "+window.Buttonizer.translate("settings.icon_image_select.description")+"<br><b>"+window.Buttonizer.translate("settings.icon_image_border_radius.title")+":</b> "+window.Buttonizer.translate("settings.icon_image_border_radius.description")+"<br><b>"+window.Buttonizer.translate("settings.icon_image_size.title")+":</b> "+window.Buttonizer.translate("settings.icon_image_size.description")+"<br>",position:"right",disableInteraction:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:e.querySelectorAll(".style-label")[e.querySelectorAll(".style-label").length-1],intro:"<h2><b>"+window.Buttonizer.translate("settings.setting_categories.label")+"</b></h2><b>"+window.Buttonizer.translate("settings.label.title")+":</b> "+window.Buttonizer.translate("settings.label.description")+"<br><b>"+window.Buttonizer.translate("settings.label_desktop.title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-15.label_visibility")+"<br><b>"+window.Buttonizer.translate("settings.label_color.title")+":</b> "+window.Buttonizer.translate("settings.label_color.description")+"<br><b>"+window.Buttonizer.translate("settings.font_size_border_radius.title")+":</b> "+window.Buttonizer.translate("settings.font_size_border_radius.description")+"<br>",position:"right",disableInteraction:!1,highlightClass:"introjs-custom-gone",tooltipClass:"wider"},{element:window.Buttonizer.topBar.topBarElement.querySelector(".revert-save"),intro:"<h2><b>"+window.Buttonizer.translate("welcome.tour-steps.step-34.title")+"</b></h2><b>"+window.Buttonizer.translate("welcome.tour-steps.step-34.revert_title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-34.revert_description")+"<br><br><b>"+window.Buttonizer.translate("welcome.tour-steps.step-34.save_title")+":</b> "+window.Buttonizer.translate("welcome.tour-steps.step-34.save_description"),position:"right",disableInteraction:!0,tooltipClass:"right"},{intro:"<h2><b>"+window.Buttonizer.translate("welcome.tour-steps.final.title")+"</b></h2>"+window.Buttonizer.translate("welcome.tour-steps.final.intro")+"<br /><br />"+window.Buttonizer.translate("welcome.tour-steps.final.outro"),position:"left",tooltipClass:"max-width"}]}),this.tour}}i(13),window.bdebug=new n;String.prototype.format||(String.prototype.format=function(){var t=arguments;return this.replace(/{(\d+)}/g,function(e,i){return void 0!==t[i]?t[i]:e})}),window.Buttonizer=new class{constructor(){this.loader={},this.topBar={},this.bar={},this.assetsLink=".",this.tour=null,this.version="-",this.settings={},this.buttonGroups=[],this.savingMechanism={},this.buttonizerInitData=[],this.timeSchedule={},this.pageRule={},this.windowsZindex=9999,this.bc,this.loading=!0,this.settingsWindow={},this.iframe=null,this.iframeLoaded=!1,this.iconLibraryLoaded=!1,this.ButtonizerStartedLoading=0,this.iconSelector=null,this.iconLibraryStylesheet=null,this.previewWarning=null,this.premium=!1,this.init(!0)}set buttonChanges(t){this.loading||(this.bc=t)}get buttonChanges(){return this.bc}init(t){document.body.className+=" buttonizer-initialized",bdebug.welcomeToTheConsole(),!0===t&&bdebug.startDebugging(),bdebug.warning("Buttonizer 2.0");let e=document.createElement("link");e.rel="shortcut icon",e.href=buttonizer_admin.dir+"/favicon.ico",document.head.appendChild(e),this.loader=new Ce,this.loader.show(this.translate("loading.settings")),this.savingMechanism=new je,bdebug.warning("Buttonizer settings loading"),this.ButtonizerStartedLoading=(new Date).getTime(),this.loadSettings()}loadSettings(){jQuery.ajax({url:buttonizer_admin.ajax+"?action=buttonizer_backend&request=ButtonizerInitializer",dataType:"json",method:"get",success:t=>{bdebug.warning("Buttonizer settings loaded: "+((new Date).getTime()-this.ButtonizerStartedLoading)/1e3+"s"),"success"===t.status?this.defineSettings(t):this.fatalErrorLoading("<b>"+t.message+"</b>","Buttonizer.loadSettings().success")},error:(t,e,i)=>{this.loader.hide(),this.fatalErrorLoading("<b>"+e.toUpperCase()+":</b><br />"+i,"Buttonizer.loadSettings().error")}})}fatalErrorLoading(t,e){new s({title:"Error!",content:`\n <p>Oh, that was not what I was expecting! Something went wrong while we tried to load all Buttonizer settings.</p>\n <p>Try to reload the webpage. If that did not work, send us a <a href="https://community.buttonizer.pro/" target="_blank">support request</a>.</p>\n <p>Report the following information:</p>\n <p style='color: #FF0000; display: block; border: 1px solid #FF0000; padding: 10px;'>${t}<br /><br />Function place: ${e}</p>`,onConfirm:()=>{document.location.reload()},buttons:[{text:"Reload webpage",confirm:!0}]})}fatalError(t){console.error(t);let e=document.createElement("div");e.innerHTML='<p>Oh, that was not what we were expecting! Something went wrong.</p>\n <p>Try to reload the webpage. If that did not work, send us a <a href="https://community.buttonizer.pro/" target="_blank">support request</a>.</p>';let i=document.createElement("p");i.innerHTML="Do you want to see technical details? <a href='javascript:void(0)'>Click here!</a>",e.appendChild(i);let n=document.createElement("code");n.style.overflowX="auto",n.style.whiteSpace="nowrap",n.innerText=`Error type: ${t.name}\n \n Stack trace:\n \n ${t.stack}`,n.style.display="none",e.appendChild(n),i.addEventListener("click",()=>{i.style.display="none",n.style.display="block"}),new s({title:"Error!?!?1?!1?!",content:e,buttons:[{text:"Close",confirm:!0}]})}defineSettings(t){this.settings=t.settings,this.version=t.version,this.buttonizerInitData=t,this.premium=t.premium,xt.setDefaults({onShow:()=>"true"===this.getSetting("show_tooltips","true")||!0===this.getSetting("show_tooltips")}),this.loader.show(this.translate("loading.bar")),this.topBar=new Be(this),this.bar=new ze(this),this.previewWarning=this.leftButtonizerWarning(),this.changes=t.changes,t.changes&&this.topBar.alertText.alert(this.translate("bar.previous_session")),this.initializeSettings(t.settings),this.initializeTimeSchedules(),this.initializePageRules(),this.loadButtonGroups(),this.loading=!1,this.settingsWindow=new Ae,document.location.href.indexOf("open-settings")>=0&&this.settingsWindow.show(),this.iconSelector=new Ie,1!==this.buttonGroups.length||this.buttonGroups[0].singleButtonMode||this.buttonGroups[0].groupHolder.revealButtons(),this.createIframe();let e=document.createElement("link");e.rel="stylesheet",e.type="text/css",e.href="https://use.fontawesome.com/releases/v5.8.2/css/all.css",e.integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay",e.setAttribute("crossorigin","anonymous"),document.getElementsByTagName("head")[0].appendChild(e),window.addEventListener("message",t=>{t.isTrusted&&void 0!==t.data&&void 0!==t.data.eventType&&"buttonizer"===t.data.eventType&&("warning"===t.data.messageType?this.topBar.updateEventLogs(t.data.message):"javascript_error"===t.data.messageType?new s({title:this.translate("errors.custom_javascript.title"),content:`\n <p>${this.translate("errors.custom_javascript.message")}</p> <p><code style="display: block; padding: 15px;">${t.data.message}</code></p>\n `,buttons:[{text:this.translate("common.ok_fix"),confirm:!0}]}):"(re)loaded"===t.data.messageType&&console.log("[Buttonizer ADMIN] Buttonizer is (re)loaded! So last changes can be seen in the preview window."))},!1),document.location.href.indexOf("tour")>=0&&this.startTour()}startTour(){null===this.tour&&(this.tour=new He),this.tour.build()}createIframe(){let t=""===document.location.hash||"#open-settings"===document.location.hash?this.buttonizerInitData.wordpress.base:decodeURIComponent(document.location.hash.substr(1)),e=document.createElement("div");e.className="buttonizer-frame";let i=document.createElement("iframe");i.src=t+"?buttonizer-preview=1",i.id="buttonizer-iframe",i.setAttribute("frameborder","0"),i.setAttribute("width","100%"),i.setAttribute("height","100%"),i.addEventListener("load",t=>{this.iframeLoaded=!0,-1===t.target.contentWindow.location.href.indexOf("buttonizer-preview")&&-1===document.body.className.indexOf("warning-left-preview-window")&&(document.body.className+=" warning-left-preview-window",this.previewWarning.style.display="block")}),e.appendChild(i),document.body.appendChild(e),this.loader.show(this.translate("loading.website"),"site-loading"),setTimeout(()=>{this.iframeLoaded||this.loader.show(this.translate("loading.website")+"<br /><br /><small>"+this.translate("loading.website_slow")+"<br /><br /><a href='javascript:void(0)' onclick='window.Buttonizer.loader.hide()'>"+this.translate("loading.website_skip")+"</a></small>")},5e3);let n=setInterval(()=>{this.iframeLoaded&&this.iconLibraryLoaded&&(this.loader.hide(),document.body.className+=" buttonizer-loaded",clearInterval(n))})}welcome(){this.loader.hide(),new s({title:this.translate("welcome.title")+" "+this.version,content:`\n <img src="${buttonizer_admin.assets}/images/plugin-icon.png" width="100" align="left" style="margin-right: 20px; margin-bottom: 10px;" />\n <p>${this.translate("welcome.intro")}</p>\n <p>${this.translate("welcome.tour")}</p>\n `,onClose:()=>{this.saveSettings({welcome:"false"},!0)},onConfirm:()=>{this.startTour()},buttons:[{text:this.translate("welcome.already_know")+' <i class="fa fa-chevron-right" style="margin-left: 10px; vertical-align: middle;" aria-hidden="true"></i>',close:!0},{text:this.translate("welcome.take_tour")+' <i class="fa fa-chevron-right" style="margin-left: 10px; vertical-align: middle;" aria-hidden="true"></i>',confirm:!0}]})}updateButtonsTo2Point0(){new s({title:this.translate("migration_modal.title"),content:`\n <p>${this.translate("migration_modal.intro")}</p>\n <p>${this.translate("migration_modal.convert")}</p>\n \n <p>${this.translate("migration_modal.popping_up")}</p> \n `,onConfirm:()=>{window.Buttonizer.loader.show(this.translate("loading.running_migration")),jQuery.ajax({url:buttonizer_admin.ajax+"?action=buttonizer_backend&request=SaveData&save=migrate-buttonizer",dataType:"json",method:"post",data:{security:buttonizer_admin.security},success:t=>{"success"===t.status?(window.Buttonizer.loader.show(this.translate("loading.finishing")),setTimeout(()=>{document.location.reload()},500)):(window.Buttonizer.loader.hide(),window.Buttonizer.savingError(t.message))},error:(t,e,i)=>{window.Buttonizer.loader.hide(),window.Buttonizer.savingError(e)}})},buttons:[{text:this.translate("modal.no_thanks"),close:!0},{text:this.translate("migration_modal.convert_buttons")+' <i class="fa fa-chevron-right" style="margin-left: 10px; vertical-align: middle;" aria-hidden="true"></i>',confirm:!0}]})}leftButtonizerWarning(){let t=document.createElement("div");t.className="buttonizer-warning warning-red",t.innerHTML=this.translate("bar.preview.no_changes");let e=document.createElement("a");return e.href="javascript:void(0)",e.className="buttonizer-warning-button",e.innerText=this.translate("bar.preview.return"),e.addEventListener("click",()=>{document.body.className=document.body.className.replace("warning-left-preview-window",""),this.previewWarning.style.display="none",document.getElementById("buttonizer-iframe").setAttribute("src",window.Buttonizer.buttonizerInitData.wordpress.base+"?buttonizer-preview=true")}),t.appendChild(e),document.body.appendChild(t),t}saveSettings(t,e){e&&this.loader.show(this.translate("common.saving_settings")),Object.assign(this.settings,t),jQuery.ajax({url:buttonizer_admin.ajax+"?action=buttonizer_backend&request=SaveData&save=settings",dataType:"json",method:"post",data:{data:this.settings,security:buttonizer_admin.security},success:t=>{this.loader.hide(),"success"!==t.status&&window.Buttonizer.savingError(t.message)},error:t=>{this.loader.hide(),window.Buttonizer.savingError(t)}})}registerButton(t){}saveButtons(){console.log(this.buttons)}initializeSettings(t){"true"===t.welcome.toString()&&this.welcome(),this.settings=t,this.addIconLibrary()}addIconLibrary(){let t=!1;null===this.iconLibraryStylesheet&&(this.iconLibraryStylesheet=document.createElement("link"),this.iconLibraryStylesheet.rel="stylesheet",this.iconLibraryStylesheet.type="text/css",t=!0),"fontawesome"!==this.settings.icon_library||"5.free"!==this.settings.icon_library_version&&"5.paid"!==this.settings.icon_library_version?"fontawesome"===this.settings.icon_library&&"4.7.0"===this.settings.icon_library_version&&(this.iconLibraryStylesheet.setAttribute("integrity",""),this.iconLibraryStylesheet.href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"):("5.paid"===this.settings.icon_library_version&&""!==this.settings.icon_library_code?this.iconLibraryStylesheet.setAttribute("integrity",this.settings.icon_library_code):this.iconLibraryStylesheet.setAttribute("integrity","sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"),this.iconLibraryStylesheet.setAttribute("crossorigin","anonymous"),this.iconLibraryStylesheet.href="https://"+("5.paid"===this.settings.icon_library_version?"pro":"use")+".fontawesome.com/releases/"+this.buttonizerInitData.fontawesome_current_version+"/css/all.css"),this.iconLibraryLoaded=!0}hasPremium(){return this.premium}showPremiumPopup(t,e){new s({title:'<i class="far fa-gem window-icon"></i> '+this.translate("premium.modal.title"),content:`\n <p>${this.translate("premium.modal.describe")}</p>\n <code style="display: block; margin-bottom: 5px; padding: 10px;">${t}</code>\n <p><b>${this.translate("premium.modal.what_do_i_get")}</b></p>\n \n <ul class="buttonizer-pro-checklist">\n <li><i class="fas fa-check"></i> ${this.translate("premium.modal.list.time_schedules")}</li>\n <li><i class="fas fa-check"></i> ${this.translate("premium.modal.list.page_rules")}</li>\n <li><i class="fas fa-check"></i> ${this.translate("premium.modal.list.button_groups")}</li>\n <li><i class="fas fa-check"></i> ${this.translate("premium.modal.list.custom_images")}</li>\n <li><i class="fas fa-check"></i> ${this.translate("premium.modal.list.exit_intent")}</li>\n <li><i class="fas fa-check"></i> ${this.translate("premium.modal.list.show_on_scroll")}</li>\n <li><i class="fas fa-check"></i> ${this.translate("premium.modal.list.show_on_timeout")}</li>\n <li><i class="fas fa-check"></i> ${this.translate("premium.modal.list.custom_class")}</li>\n <li><i class="fas fa-check"></i> ${this.translate("premium.modal.list.javascript")}</li>\n </ul>`,onConfirm:()=>{document.location.href=buttonizer_admin.admin+"?page=Buttonizer-pricing"},video:e,buttons:[{text:this.translate("modal.close"),close:!0},{text:this.translate("premium.modal.go_pro")+' <i class="fas fa-chevron-right" style="margin-left: 5px;vertical-align: middle;"></i>',confirm:!0,close:!0,focus:!0}]})}getSetting(t,e){return void 0!==this.settings[t]?this.settings[t]:e}set changes(t){this.topBar.changes=t}updateButtonGroupList(t,e){this.buttonGroups.splice(t,0,this.buttonGroups.splice(e,1)[0]),this.buttonChanges=!0}updateButtonList(t,e,i,n){this.buttonGroups[i].buttons.splice(t,0,this.buttonGroups[n].buttons.splice(e,1)[0]),this.buttonGroups[i].buttons[t].groupObject=this.buttonGroups[i],this.buttonChanges=!0,this.buttonGroups[n].buttons.length<=1&&jQuery(this.buttonGroups[n].groupBody).sortable("option","cancel",".group-button")}savingError(t){new s({title:this.translate("errors.saving.title"),content:`<p>${this.translate("errors.saving.message")}.</p><p>${t}</p>`,buttons:[{text:this.translate("modal.close"),close:!0}]})}initializeTimeSchedules(){}initializePageRules(){}loadButtonGroups(){if(void 0!==this.buttonizerInitData.groups.buttonorder&&this.updateButtonsTo2Point0(),0===this.buttonizerInitData.groups.length)return new Ee({name:"Buttonizer",position:"bottomright",icon:"fa fa-plus",horizontal:5,vertical:5},[{name:window.Buttonizer.translate("utils.first_button"),show_mobile:!0,show_desktop:!0},{name:window.Buttonizer.translate("utils.second_button"),show_mobile:!0,show_desktop:!0}]),void setTimeout(()=>{this.buttonChanges=!0},1e3);new Ee(this.buttonizerInitData.groups[0].data,this.buttonizerInitData.groups[0].buttons)}translate(t=""){let e=t.split(".");if(void 0===buttonizer_translations[e[0]])return console.error("Localization not found: "+t),t;let i=buttonizer_translations[e[0]];for(let n=1,o=e.length;n<o;n++){if(void 0===i[e[n]])return console.error("Localization not found: "+t),t;i=i[e[n]]}return i}__(t=""){return this.translate(t)}}},,function(t,e){}]);
assets/frontend.css CHANGED
@@ -2377,6 +2377,7 @@
2377
  transform: translate(-50%, -50%) rotate(45deg); }
2378
  .buttonizer.buttonizer-hide {
2379
  opacity: 0;
 
2380
  transform: translate(0, 50px); }
2381
 
2382
  @media screen and (min-width: 770px) {
2377
  transform: translate(-50%, -50%) rotate(45deg); }
2378
  .buttonizer.buttonizer-hide {
2379
  opacity: 0;
2380
+ pointer-events: none;
2381
  transform: translate(0, 50px); }
2382
 
2383
  @media screen and (min-width: 770px) {
assets/frontend.js CHANGED
@@ -94,15 +94,15 @@
94
  /******/
95
  /******/
96
  /******/ // Load entry module and return exports
97
- /******/ return __webpack_require__(__webpack_require__.s = 16);
98
  /******/ })
99
  /************************************************************************/
100
  /******/ ({
101
 
102
- /***/ 13:
103
  /***/ (function(module, exports, __webpack_require__) {
104
 
105
- var indexOf = __webpack_require__(14);
106
 
107
  var Object_keys = function (obj) {
108
  if (Object.keys) return Object.keys(obj)
@@ -244,7 +244,7 @@ exports.createContext = Script.createContext = function (context) {
244
 
245
  /***/ }),
246
 
247
- /***/ 14:
248
  /***/ (function(module, exports) {
249
 
250
 
@@ -260,7 +260,7 @@ module.exports = function(arr, obj){
260
 
261
  /***/ }),
262
 
263
- /***/ 16:
264
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
265
 
266
  "use strict";
@@ -302,11 +302,11 @@ class Button
302
  button.className = 'buttonizer-button';
303
  button.setAttribute("data-buttonizer", this.unique);
304
 
305
- if(this.data.action.type === 'url') {
306
  button.href = this.data.action.action;
307
 
308
  // If open new tab = true, use target=_blank
309
- if(this.data.action.action_new_tab === 'true'){
310
  button.target = '_blank';
311
  }
312
  }else {
@@ -357,6 +357,11 @@ class Button
357
  button.className += ' label-mobile-hidden';
358
  }
359
 
 
 
 
 
 
360
 
361
 
362
  // Add button label
@@ -458,6 +463,97 @@ class Button
458
  return;
459
  }
460
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
461
 
462
  console.error("Buttonizer: Error! Unknown button action!");
463
  }
@@ -542,9 +638,49 @@ class Button
542
 
543
  delete this;
544
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
545
  }
546
  // EXTERNAL MODULE: ./node_modules/vm-browserify/index.js
547
- var vm_browserify = __webpack_require__(13);
548
 
549
  // CONCATENATED MODULE: ./src/js/frontend/Group/Group.js
550
 
@@ -721,7 +857,7 @@ class Group_Group
721
  }
722
 
723
  mainButton.addEventListener("click", (e) => this.toggleMenu(e));
724
-
725
  group.appendChild(buttonList);
726
 
727
  group.appendChild(mainButton);
@@ -729,6 +865,15 @@ class Group_Group
729
  // Add all buttons to page
730
  for(let i = 0; i < this.buttons.length; i++)
731
  {
 
 
 
 
 
 
 
 
 
732
  buttonList.appendChild(this.buttons[i].build()); // Build button
733
  }
734
  }else{
@@ -841,6 +986,51 @@ class Group_Group
841
  [data-buttonizer="${this.unique}"] .buttonizer-button i:hover {
842
  color: ${this.data.styling.icon.interaction};
843
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
844
  ` + this.stylesheet;
845
 
846
 
@@ -923,7 +1113,7 @@ class Group_Group
923
  }
924
  }
925
  // EXTERNAL MODULE: ./src/sass/frontend/frontend.scss
926
- var frontend = __webpack_require__(36);
927
 
928
  // CONCATENATED MODULE: ./src/js/frontend/Buttonizer.js
929
 
@@ -1106,38 +1296,56 @@ class Buttonizer_Buttonizer
1106
  */
1107
  googleAnalyticsEvent(object)
1108
  {
1109
- if (typeof ga === 'function' /*|| typeof dataLayer === 'object'*/)
1110
  {
1111
- let gdata = {};
1112
 
1113
  // Opening or closing a group
1114
  if(object.type === 'group-open-close')
1115
  {
1116
- gdata.groupName = object.name;
1117
- gdata.action = object.interaction;
1118
  }
1119
  else if(object.type === "button-click")
1120
  {
1121
- gdata.groupName = object.groupName;
1122
- gdata.action = "Clicked button: " + object.buttonName;
1123
  }
1124
 
1125
- if(typeof dataLayer === 'object')
 
1126
  {
1127
- // dataLayer('event', gdata.groupName, {
1128
- // 'event_category' : 'Buttonizer',
1129
- // 'event_action': gdata.groupName,
1130
- // 'event_label': gdata.action,
1131
- // 'page_url': document.location.href
1132
- // });
1133
- }else{
1134
- // Fallback to Google Analytics
1135
- ga('send', 'event', {
1136
- eventCategory: 'Buttonizer',
1137
- eventAction: gdata.action,
1138
- eventLabel: gdata.label,
1139
- eventValue: gdata.eventValue
1140
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1141
  }
1142
  }
1143
  }
@@ -1201,7 +1409,7 @@ window.Buttonizer = new Buttonizer_Buttonizer();
1201
 
1202
  /***/ }),
1203
 
1204
- /***/ 36:
1205
  /***/ (function(module, exports) {
1206
 
1207
  // removed by extract-text-webpack-plugin
94
  /******/
95
  /******/
96
  /******/ // Load entry module and return exports
97
+ /******/ return __webpack_require__(__webpack_require__.s = 17);
98
  /******/ })
99
  /************************************************************************/
100
  /******/ ({
101
 
102
+ /***/ 14:
103
  /***/ (function(module, exports, __webpack_require__) {
104
 
105
+ var indexOf = __webpack_require__(15);
106
 
107
  var Object_keys = function (obj) {
108
  if (Object.keys) return Object.keys(obj)
244
 
245
  /***/ }),
246
 
247
+ /***/ 15:
248
  /***/ (function(module, exports) {
249
 
250
 
260
 
261
  /***/ }),
262
 
263
+ /***/ 17:
264
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
265
 
266
  "use strict";
302
  button.className = 'buttonizer-button';
303
  button.setAttribute("data-buttonizer", this.unique);
304
 
305
+ if(this.data.action.type === 'url' || this.data.action.type === 'elementor_popup' || this.data.action.type === 'popup_maker') {
306
  button.href = this.data.action.action;
307
 
308
  // If open new tab = true, use target=_blank
309
+ if(this.data.action.type === 'url' && this.data.action.action_new_tab === 'true'){
310
  button.target = '_blank';
311
  }
312
  }else {
357
  button.className += ' label-mobile-hidden';
358
  }
359
 
360
+ // If button action type is facebook messenger chat, add necessary elements
361
+ if(this.data.action.type === 'messenger_chat') {
362
+ this.addMessengerWindow();
363
+ }
364
+
365
 
366
 
367
  // Add button label
463
  return;
464
  }
465
 
466
+ /* Social Media actions */
467
+ else if (this.data.action.type === 'skype') {
468
+ document.location.href = `skype:${this.data.action.action}?chat`;
469
+ return;
470
+ }
471
+ else if (this.data.action.type === 'messenger') {
472
+ window.open(this.data.action.action);
473
+ return;
474
+ }
475
+ else if (this.data.action.type === 'sms') {
476
+ document.location.href = `sms:${this.data.action.action}`;
477
+ return;
478
+ }
479
+ else if (this.data.action.type === 'telegram') {
480
+ window.open(`https://telegram.me/${this.data.action.action}`);
481
+ return;
482
+ }
483
+ else if (this.data.action.type === 'facebook') {
484
+ window.open(`https://www.facebook.com/${this.data.action.action}`);
485
+ return;
486
+ }
487
+ else if (this.data.action.type === 'instagram') {
488
+ window.open(`https://www.instagram.com/${this.data.action.action}`);
489
+ return;
490
+ }
491
+ else if (this.data.action.type === 'line') {
492
+ window.open(`https://line.me/R/ti/p/${this.data.action.action}`);
493
+ return;
494
+ }
495
+ else if (this.data.action.type === 'twitter') {
496
+ window.open(`https://twitter.com/${this.data.action.action}`);
497
+ return;
498
+ }
499
+ else if (this.data.action.type === 'twitter_dm') {
500
+ window.open(`https://twitter.com/messages/compose?recipient_id=${this.data.action.action}`);
501
+ return;
502
+ }
503
+ else if (this.data.action.type === 'snapchat') {
504
+ window.open(`https://www.snapchat.com/add/${this.data.action.action}`);
505
+ return;
506
+ }
507
+ else if (this.data.action.type === 'linkedin') {
508
+ window.open(`https://www.linkedin.com/${this.data.action.action}`);
509
+ return;
510
+ }
511
+ else if (this.data.action.type === 'viber') {
512
+ document.location.href = `viber://chat?number=${this.data.action.action}`;
513
+ return;
514
+ }
515
+ else if (this.data.action.type === 'vk') {
516
+ window.open(`https://vk.me/${this.data.action.action}`);
517
+ return;
518
+ }
519
+ else if (this.data.action.type === 'poptin') {
520
+ document.location.href = this.data.action.action;
521
+ return;
522
+ }
523
+ else if (this.data.action.type === 'popup_maker') {
524
+ return;
525
+ }
526
+ else if (this.data.action.type === 'elementor_popup') {
527
+ return;
528
+ }
529
+ else if (this.data.action.type === 'waze') {
530
+ document.location.href = this.data.action.action;
531
+ return;
532
+ }
533
+ else if (this.data.action.type === 'wechat') {
534
+ document.location.href = `weixin://dl/chat?${this.data.action.action}`;
535
+ return;
536
+ }
537
+ else if (this.data.action.type === 'messenger_chat') {
538
+ if(typeof window.Buttonizer.initializedFacebookChat !== "undefined" && document.querySelectorAll('.fb-customerchat').length > 0) {
539
+ if (document.querySelector('.fb-customerchat').querySelector('iframe').style.maxHeight === '0px') {
540
+ FB.CustomerChat.showDialog();
541
+ }
542
+ else if (document.querySelector('.fb-customerchat').querySelector('iframe').style.maxHeight === '100%') {
543
+ FB.CustomerChat.hideDialog();
544
+ }
545
+ }else{
546
+ if(window.Buttonizer.previewInitialized) {
547
+ window.Buttonizer.messageButtonizerAdminEditor("warning", "Facebook Messenger button is not found, it may be blocked or this domain is not allowed to load the Facebook widget.");
548
+ }else {
549
+ alert("Sorry, we were unable to open Facebook Messenger! Check the console for more information.");
550
+ }
551
+ }
552
+
553
+ return;
554
+ }
555
+
556
+
557
 
558
  console.error("Buttonizer: Error! Unknown button action!");
559
  }
638
 
639
  delete this;
640
  }
641
+
642
+ // Messenger
643
+ addMessengerWindow() {
644
+ if(typeof window.Buttonizer.initializedFacebookChat !== "undefined") {
645
+ // Already done
646
+ return;
647
+ }
648
+
649
+ window.Buttonizer.initializedFacebookChat = this.data.action.action;
650
+
651
+ // Create element
652
+ let fbElement = document.createElement('div');
653
+ fbElement.className = 'fb-customerchat buttonizer-facebook-messenger-overwrite-' + this.group.unique;
654
+ fbElement.setAttribute("attribution", "setup_tool");
655
+ fbElement.setAttribute("greeting_dialog_display", "hide");
656
+ fbElement.setAttribute("page_id", this.data.action.action);
657
+ document.body.appendChild(fbElement);
658
+
659
+ // Initialize first
660
+ window.fbAsyncInit = function() {
661
+ FB.init({
662
+ xfbml: true,
663
+ version: 'v3.3'
664
+ });
665
+ };
666
+
667
+ // Add script
668
+ let fbMessengerScript = document.createElement('script');
669
+ fbMessengerScript.innerHTML = `
670
+ (function(d, s, id) {
671
+ var js, fjs = d.getElementsByTagName(s)[0];
672
+ if (d.getElementById(id)) return;
673
+ js = d.createElement(s); js.id = id;
674
+ js.src = 'https://connect.facebook.net/en_US/sdk/xfbml.customerchat.js';
675
+ fjs.parentNode.insertBefore(js, fjs);
676
+ }(document, 'script', 'facebook-jssdk'));`
677
+
678
+ document.head.appendChild(fbMessengerScript);
679
+
680
+ }
681
  }
682
  // EXTERNAL MODULE: ./node_modules/vm-browserify/index.js
683
+ var vm_browserify = __webpack_require__(14);
684
 
685
  // CONCATENATED MODULE: ./src/js/frontend/Group/Group.js
686
 
857
  }
858
 
859
  mainButton.addEventListener("click", (e) => this.toggleMenu(e));
860
+
861
  group.appendChild(buttonList);
862
 
863
  group.appendChild(mainButton);
865
  // Add all buttons to page
866
  for(let i = 0; i < this.buttons.length; i++)
867
  {
868
+ if(this.buttons[i].data.action.type === 'messenger_chat') {
869
+ let messengerDiv = document.createElement('div');
870
+ messengerDiv.className = `fb-customerchat buttonizer-facebook-messenger-overwrite-${this.unique}`;
871
+ messengerDiv.setAttribute('page-id', `${this.buttons[i].data.action.action}`);
872
+ messengerDiv.setAttribute('greeting_dialog_display', `hide`);
873
+
874
+
875
+ group.appendChild(messengerDiv);
876
+ }
877
  buttonList.appendChild(this.buttons[i].build()); // Build button
878
  }
879
  }else{
986
  [data-buttonizer="${this.unique}"] .buttonizer-button i:hover {
987
  color: ${this.data.styling.icon.interaction};
988
  }
989
+
990
+ .fb_dialog {
991
+ display: none !important;
992
+ }
993
+
994
+ .buttonizer-facebook-messenger-overwrite-${this.unique} span iframe {
995
+ ${this.data.position.right <= 50 ? 'right' : 'left'}: ${this.data.position.right <= 50 ? +this.data.position.right - 1 : ((100 - this.data.position.right) - 1)}% !important;
996
+ ${this.data.position.bottom <= 50 ? 'bottom' : 'top'}: ${this.data.position.bottom <= 50 ? +this.data.position.bottom + 4 : ((100 - this.data.position.bottom) + 6)}% !important;
997
+ }
998
+
999
+ @media screen and (max-width: 769px){
1000
+ .${this.unique} span iframe {
1001
+ left: 0% !important;
1002
+ right: 0% !important;
1003
+ top: 0% !important;
1004
+ bottom: 0% !important;
1005
+ }
1006
+ }
1007
+
1008
+ .fb_customer_chat_bounce_in_v2 {
1009
+ animation-duration: 300ms;
1010
+ animation-name: fb_bounce_in_v3 !important;
1011
+ transition-timing-function: ease-in-out;
1012
+ }
1013
+
1014
+ .fb_customer_chat_bounce_out_v2 {
1015
+ max-height: 0px !important;
1016
+ }
1017
+
1018
+ @keyframes fb_bounce_in_v3 {
1019
+ 0% {
1020
+ opacity: 0;
1021
+ transform: scale(0, 0);
1022
+ transform-origin: bottom;
1023
+ }
1024
+ 50% {
1025
+ transform: scale(1.03, 1.03);
1026
+ transform-origin: bottom;
1027
+ }
1028
+ 100% {
1029
+ opacity: 1;
1030
+ transform: scale(1, 1);
1031
+ transform-origin: bottom;
1032
+ }
1033
+ }
1034
  ` + this.stylesheet;
1035
 
1036
 
1113
  }
1114
  }
1115
  // EXTERNAL MODULE: ./src/sass/frontend/frontend.scss
1116
+ var frontend = __webpack_require__(37);
1117
 
1118
  // CONCATENATED MODULE: ./src/js/frontend/Buttonizer.js
1119
 
1296
  */
1297
  googleAnalyticsEvent(object)
1298
  {
1299
+ if (typeof ga === 'function' || typeof gtag === "function" || (typeof window.dataLayer === 'object' && typeof window.dataLayer.push === "function"))
1300
  {
1301
+ let actionData = {};
1302
 
1303
  // Opening or closing a group
1304
  if(object.type === 'group-open-close')
1305
  {
1306
+ actionData.groupName = object.name;
1307
+ actionData.action = object.interaction;
1308
  }
1309
  else if(object.type === "button-click")
1310
  {
1311
+ actionData.groupName = object.groupName;
1312
+ actionData.action = "Clicked button: " + object.buttonName;
1313
  }
1314
 
1315
+ // Gtag support
1316
+ if("gtag" in window && typeof gtag === "function")
1317
  {
1318
+ // Work with Google Tag Manager
1319
+ gtag('event', 'Buttonizer', {
1320
+ event_category: 'Buttonizer group: ' + actionData.groupName,
1321
+ event_action: actionData.action,
1322
+ event_label: document.title,
1323
+ page_url: document.location.href
 
 
 
 
 
 
 
1324
  });
1325
+ }else if ("ga" in window) {
1326
+ try {
1327
+ // Fallback to tracker
1328
+ let tracker = ga.getAll()[0];
1329
+ if (tracker) {
1330
+ tracker.send("event", 'Buttonizer group: ' + actionData.groupName, actionData.action, document.title);
1331
+ } else {
1332
+ throw "No tracker found";
1333
+ }
1334
+ } catch (e) {
1335
+ console.error("Buttonizer Google Analytics: Last try to push to Google Analytics.");
1336
+ console.error("What does this mean?", "https://community.buttonizer.pro/knowledgebase/17");
1337
+
1338
+ // Fallback to old Google Analytics
1339
+ ga('send', 'event', {
1340
+ eventCategory: 'Buttonizer group: ' + actionData.groupName,
1341
+ eventAction: actionData.action,
1342
+ eventLabel: document.title
1343
+ });
1344
+
1345
+ }
1346
+ }else{
1347
+ console.error("Buttonizer Google Analytics: Unable to push data to Google Analytics");
1348
+ console.error("What does this mean?", "https://community.buttonizer.pro/knowledgebase/17");
1349
  }
1350
  }
1351
  }
1409
 
1410
  /***/ }),
1411
 
1412
+ /***/ 37:
1413
  /***/ (function(module, exports) {
1414
 
1415
  // removed by extract-text-webpack-plugin
assets/frontend.min.js CHANGED
@@ -10,4 +10,4 @@
10
  *
11
  * (C) 2017-2019 Buttonizer
12
  *
13
- */!function(t){var e={};function i(o){if(e[o])return e[o].exports;var n=e[o]={i:o,l:!1,exports:{}};return t[o].call(n.exports,n,n.exports,i),n.l=!0,n.exports}i.m=t,i.c=e,i.d=function(t,e,o){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(o,n,function(e){return t[e]}.bind(null,n));return o},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=16)}({13:function(module,exports,__webpack_require__){var indexOf=__webpack_require__(14),Object_keys=function(t){if(Object.keys)return Object.keys(t);var e=[];for(var i in t)e.push(i);return e},forEach=function(t,e){if(t.forEach)return t.forEach(e);for(var i=0;i<t.length;i++)e(t[i],i,t)},defineProp=function(){try{return Object.defineProperty({},"_",{}),function(t,e,i){Object.defineProperty(t,e,{writable:!0,enumerable:!1,configurable:!0,value:i})}}catch(t){return function(t,e,i){t[e]=i}}}(),globals=["Array","Boolean","Date","Error","EvalError","Function","Infinity","JSON","Math","NaN","Number","Object","RangeError","ReferenceError","RegExp","String","SyntaxError","TypeError","URIError","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","eval","isFinite","isNaN","parseFloat","parseInt","undefined","unescape"];function Context(){}Context.prototype={};var Script=exports.Script=function(t){if(!(this instanceof Script))return new Script(t);this.code=t};Script.prototype.runInContext=function(t){if(!(t instanceof Context))throw new TypeError("needs a 'context' argument.");var e=document.createElement("iframe");e.style||(e.style={}),e.style.display="none",document.body.appendChild(e);var i=e.contentWindow,o=i.eval,n=i.execScript;!o&&n&&(n.call(i,"null"),o=i.eval),forEach(Object_keys(t),function(e){i[e]=t[e]}),forEach(globals,function(e){t[e]&&(i[e]=t[e])});var a=Object_keys(i),s=o.call(i,this.code);return forEach(Object_keys(i),function(e){(e in t||-1===indexOf(a,e))&&(t[e]=i[e])}),forEach(globals,function(e){e in t||defineProp(t,e,i[e])}),document.body.removeChild(e),s},Script.prototype.runInThisContext=function(){return eval(this.code)},Script.prototype.runInNewContext=function(t){var e=Script.createContext(t),i=this.runInContext(e);return forEach(Object_keys(e),function(i){t[i]=e[i]}),i},forEach(Object_keys(Script.prototype),function(t){exports[t]=Script[t]=function(e){var i=Script(e);return i[t].apply(i,[].slice.call(arguments,1))}}),exports.createScript=function(t){return exports.Script(t)},exports.createContext=Script.createContext=function(t){var e=new Context;return"object"==typeof t&&forEach(Object_keys(t),function(i){e[i]=t[i]}),e}},14:function(t,e){var i=[].indexOf;t.exports=function(t,e){if(i)return t.indexOf(e);for(var o=0;o<t.length;++o)if(t[o]===e)return o;return-1}},16:function(t,e,i){"use strict";i.r(e);class o{constructor(t,e){this.group=t,this.data=e,this.icon=e.icon.buttonIcon,this.show_mobile=e.device.show_mobile,this.show_desktop=e.device.show_desktop,this.style="",this.button,this.init(),this.unique="buttonizer-button-"+Array.apply(0,Array(15)).map(()=>(t=>t.charAt(Math.floor(Math.random()*t.length)))("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")).join("")}init(){}build(){let t,e=document.createElement("a");if(e.className="buttonizer-button",e.setAttribute("data-buttonizer",this.unique),"url"===this.data.action.type?(e.href=this.data.action.action,"true"===this.data.action.action_new_tab&&(e.target="_blank")):e.href="javascript:void(0)","true"===this.show_mobile&&"false"===this.show_desktop?(this.group.mobileButtonCount++,e.className+=" button-mobile-"+this.group.mobileButtonCount+" button-hide-desktop"):"false"===this.show_mobile&&"true"===this.show_desktop?(this.group.desktopButtonCount++,e.className+=" button-desktop-"+this.group.desktopButtonCount+" button-hide-mobile"):"false"===this.show_mobile&&"false"===this.show_desktop?e.className+=" button-hide-desktop button-hide-mobile":(this.group.mobileButtonCount++,this.group.desktopButtonCount++,e.className+=" button-mobile-"+this.group.mobileButtonCount+" button-desktop-"+this.group.desktopButtonCount),"hover"===this.data.label.show_label_desktop?e.className+=" show-label-desktop-hover":"hide"===this.data.label.show_label_desktop&&(e.className+=" label-desktop-hidden"),"hide"===this.data.label.show_label_mobile&&(e.className+=" label-mobile-hidden"),this.data.label.label.length>0){let t=document.createElement("div");t.className="buttonizer-label",t.innerText=this.data.label.label,e.appendChild(t)}return(()=>{(t=document.createElement("i")).className=void 0!==typeof this.icon?this.icon:"fa fa-user",e.appendChild(t)})(),e.addEventListener("click",t=>this.onButtonClick(t)),this.generateStyle(),this.button=e,this.button}onButtonClick(t){if(window.Buttonizer.googleAnalyticsEvent({type:"button-click",groupName:this.group.data.name,buttonName:this.data.name}),"url"!==this.data.action.type)if("phone"!==this.data.action.type)if("mail"!==this.data.action.type)if("backtotop"!==this.data.action.type)if("gobackpage"!==this.data.action.type)if("socialsharing"!==this.data.action.type)"whatsapp_pro"!==this.data.action.type&&"whatsapp"!==this.data.action.type?console.error("Buttonizer: Error! Unknown button action!"):window.open(`https://api.whatsapp.com/send?phone=${this.data.action.action}`);else{if("facebook"===this.data.action.action)return window.open("http://www.facebook.com/sharer.php?u="+document.location.href+"&t="+document.title,"popupFacebook","width=610, height=480, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0"),!1;if("twitter"===this.data.action.action)return window.open("https://twitter.com/intent/tweet?text="+encodeURI(document.title)+" Hey! Check out this link:&url="+document.location.href,"popupTwitter","width=610, height=480, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0"),!1;if("whatsapp"===this.data.action.action)window.open("https://api.whatsapp.com/send?text="+encodeURI(document.title+" Hey! Check out this link:"+document.location.href));else{if("linkedin"===this.data.action.action)return window.open("http://www.linkedin.com/shareArticle?mini=true&url="+document.location.href+"&title="+encodeURI(document.title)+"&summary="+encodeURI(document.title),"popupLinkedIn","width=610, height=480, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0"),!1;if("pinterest"===this.data.action.action)return window.open("http://www.pinterest.com/pin/create/button/?url=/node"+document.location.href+"&description="+encodeURI(document.title),"popupTwitter","width=610, height=480, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0"),!1;"mail"===this.data.action.action&&(window.location.href="mailto:?subject="+document.title+"&body= Hey! Check out this link: "+document.location.href)}}else window.history.back();else jQuery("html, body").animate({scrollTop:0},750);else document.location.href=`mailto:${this.data.action.action}`;else document.location.href=`tel:${this.data.action.action}`}generateStyle(){if("14px"===this.data.styling.label.size&&"3px"===this.data.styling.label.radius||(this.group.stylesheet+=`\n [data-buttonizer="${this.group.unique}"] [data-buttonizer="${this.unique}"] .buttonizer-label {\n font-size: ${this.data.styling.label.size};\n border-radius: ${this.data.styling.label.radius};\n -moz-border-radius: ${this.data.styling.label.radius};\n -webkit-border-radius: ${this.data.styling.label.radius};\n }\n `),this.data.styling.button){let t="";"%"!==this.data.styling.button.radius&&(t=`\n border-radius: ${this.data.styling.button.radius};\n `),this.group.stylesheet+=`\n [data-buttonizer="${this.group.unique}"] [data-buttonizer="${this.unique}"] {\n background-color: ${this.data.styling.button.color};\n ${"00"===this.data.styling.button.color.substr(-2)?"box-shadow: none;":""};\n ${t}\n }\n \n [data-buttonizer="${this.group.unique}"] [data-buttonizer="${this.unique}"]:hover {\n background-color: ${this.data.styling.button.interaction}\n }\n \n [data-buttonizer="${this.group.unique}"] [data-buttonizer="${this.unique}"] .buttonizer-label {\n background-color: ${this.data.styling.label.background};\n color: ${this.data.styling.label.text} !important;\n }`}this.group.stylesheet+=`\n [data-buttonizer="${this.group.unique}"] [data-buttonizer="${this.unique}"] i {\n color: ${this.data.styling.icon.color};\n font-size: ${this.data.styling.icon.size};\n\n transition: all 0.2s ease-in-out;\n -moz-transition: all 0.2s ease-in-out;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n }\n\n [data-buttonizer="${this.group.unique}"] [data-buttonizer="${this.unique}"]:hover i{\n color: ${this.data.styling.icon.interaction};\n\n transition: all 0.2s ease-in-out;\n -moz-transition: all 0.2s ease-in-out;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n }\n `}destroy(){this.button.remove(),this.group.removeButton(this),this.group=null,this.data=null,this.button=null}}i(13);class n{constructor(t,e){this.data=t,this.groupIndex=e,this.buttons=[],this.isBuild=!1,this.opened=!1,this.show_mobile=this.data.device.show_mobile,this.show_desktop=this.data.device.show_desktop,this.single_button_mode=this.data.single_button_mode,this.element=null,this.groupStyle=this.data.styling.menu.style,this.groupAnimation=this.data.styling.menu.animation,this.stylesheet="",this.mobileButtonCount=0,this.desktopButtonCount=0,this.unique="buttonizer-"+Array.apply(0,Array(15)).map(function(){return(t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789").charAt(Math.floor(Math.random()*t.length));var t}).join(""),this.init()}init(){for(let t=0;t<this.data.buttons.length;t++){let e=new o(this,this.data.buttons[t]);this.buttons.push(e)}this.build(),this.animate()}build(){if(!0===this.isBuild||0===this.buttons.length)return void console.error("Buttonizer: Cannot create group: No buttons or already build");"fade-left-to-right"===this.groupStyle&&(this.groupStyle="faded");let t=document.createElement("div");if(t.className=`buttonizer buttonizer-group buttonizer-style-${this.groupStyle} buttonizer-animation-${this.groupAnimation} ${this.data.position.bottom<=50?"bottom":"top"} ${this.data.position.right<=50?"right":"left"}`,t.setAttribute("data-buttonizer",this.unique),"true"===this.show_mobile&&"false"===this.show_desktop?t.className+=" button-mobile-only":"false"===this.show_mobile&&"true"===this.show_desktop?t.className+=" button-desktop-only":"false"===this.show_mobile&&"false"===this.show_desktop&&(t.className+=" button-hide"),this.buttons.length>1){t.classList.add("buttonizer-is-menu"),"true"===this.data.openedByDefault&&(document.cookie.match("buttonizer_open=")?document.cookie.match("buttonizer_open=closed")||document.cookie.match("buttonizer_open=opened")&&(t.classList.add("opened"),this.opened=!0):(setTimeout(function(){t.classList.add("opened")},100),this.opened=!this.opened)),"1"===buttonizer_ajax.in_preview&&document.cookie.match("buttonizer_preview_"+this.groupIndex+"=opened")&&(this.opened=!0,t.classList.add("opened")),"square"===this.data.styling.menu.style&&t.classList.add("opened");let e=document.createElement("div");e.className="buttonizer-button-list";let i=document.createElement("a");i.href="javascript:void(0)",i.className="buttonizer-button buttonizer-head","hover"===this.data.label.show_label_desktop?i.className+=" show-label-desktop-hover":"hide"===this.data.label.show_label_desktop&&(i.className+=" label-desktop-hidden"),"hide"===this.data.label.show_label_mobile&&(i.className+=" label-mobile-hidden");let o,n=`<div class="buttonizer-label">${this.data.label.groupLabel}</div>`;o=`<i class="${void 0!==typeof this.data.icon.groupIcon?this.data.icon.groupIcon:"fa fa-plus"}"></i>`,this.data.label.groupLabel.length<=0?i.innerHTML=o:i.innerHTML=n+o,i.addEventListener("click",t=>this.toggleMenu(t)),t.appendChild(e),t.appendChild(i);for(let t=0;t<this.buttons.length;t++)e.appendChild(this.buttons[t].build())}else t.appendChild(this.buttons[0].build());t.className+=` buttonizer-desktop-has-${this.desktopButtonCount} buttonizer-mobile-has-${this.mobileButtonCount}`,this.element=t,document.body.appendChild(this.element),this.isBuild=!0,this.writeCSS()}toggleMenu(t){t.preventDefault(),window.Buttonizer.googleAnalyticsEvent({type:"group-open-close",name:this.data.name,interaction:this.opened?"close":"open"}),this.opened?this.element.classList.remove("opened"):this.element.classList.add("opened"),this.opened=!this.opened,"true"===this.data.openedByDefault&&(document.cookie.match("buttonizer_open=")?document.cookie.match("buttonizer_open=closed")?document.cookie="buttonizer_open=opened":document.cookie.match("buttonizer_open=opened")&&(document.cookie="buttonizer_open=closed"):document.cookie="buttonizer_open=closed"),"1"===buttonizer_ajax.in_preview&&this.togglePreviewOpened()}togglePreviewOpened(){this.opened?document.cookie="buttonizer_preview_"+this.groupIndex+"=opened":document.cookie="buttonizer_preview_"+this.groupIndex+"=closed"}writeCSS(){let t=document.createElement("style");t.id=this.unique;let e=` \n [data-buttonizer="${this.unique}"] {\n ${this.data.position.right<=50?"right":"left"}: ${this.data.position.right<=50?this.data.position.right:100-this.data.position.right}%;\n ${this.data.position.bottom<=50?"bottom":"top"}: ${this.data.position.bottom<=50?this.data.position.bottom:100-this.data.position.bottom}%;\n }\n \n [data-buttonizer="${this.unique}"] .buttonizer-button {\n background-color: ${this.data.styling.button.color};\n color: ${this.data.styling.icon.color};\n border-radius: ${this.data.styling.button.radius};\n ${"00"===this.data.styling.button.color.substr(-2)?"box-shadow: none;":""}\n }\n \n [data-buttonizer="${this.unique}"] .buttonizer-button:hover {\n background-color: ${this.data.styling.button.interaction};\n color: ${this.data.styling.icon.color}\n }\n \n [data-buttonizer="${this.unique}"] .buttonizer-button .buttonizer-label {\n background-color: ${this.data.styling.label.background};\n color: ${this.data.styling.label.text};\n font-size: ${this.data.styling.label.size};\n border-radius: ${this.data.styling.label.radius};\n }\n\n [data-buttonizer="${this.unique}"] .buttonizer-button i {\n color: ${this.data.styling.icon.color};\n font-size: ${this.data.styling.icon.size};\n }\n\n [data-buttonizer="${this.unique}"] .buttonizer-button i:hover {\n color: ${this.data.styling.icon.interaction};\n }\n `+this.stylesheet;t.innerHTML=e,document.head.appendChild(t)}animate(){null!==this.element&&"none"!==this.groupAnimation&&(this.element.classList.contains("opened")||(this.element.classList.add("attention-animation-true"),setTimeout(()=>{null!==this.element&&this.element.classList.remove("attention-animation-true")},2e3)),setTimeout(()=>this.animate(),1e4))}destroy(){for(let t=0;t<this.buttons.length;t++)this.buttons[t].destroy();this.element.remove(),this.element=null,document.getElementById(this.unique).remove(),window.Buttonizer.destroyGroup(this)}removeButton(t){let e=this.buttons.indexOf(t);e>=0&&this.buttons.splice(e,1)}}i(36);window.Buttonizer=new class{constructor(){if(this.getSettings(),this.firstTimeInitialize=!0,this.write=HTMLElement,this.previewInitialized=!1,this.settingsLoading=!1,this.premium=!1,this.groups=[],this.settings={ga:null},buttonizer_ajax.in_preview){let t=document.createElement("style");t.innerHTML="html { margin-top: 0 !important; }",window.document.head.appendChild(t)}}getSettings(){buttonizer_ajax.current.url=document.location.href,this.settingsLoading=!0,jQuery.ajax({url:buttonizer_ajax.ajaxurl+"?action=buttonizer",dataType:"json",data:{qpu:buttonizer_ajax.is_admin?Date.now():buttonizer_ajax.cache,preview:buttonizer_ajax.in_preview?1:0,data:buttonizer_ajax.current},method:"get",success:t=>{"success"===t.status?this.init(t):console.error("Buttonizer: Something went wrong! Buttonizer not loaded",t)},error:t=>{this.settingsLoading=!1,console.error("Buttonizer: OH NO! ERROR: '"+t.statusText+"'. That's all we know... Please check your PHP logs or contact Buttonizer support if you need help."),console.error("Buttonizer: Visit our community on https://community.buttonizer.pro/")}})}init(t){buttonizer_ajax.in_preview&&!this.previewInitialized&&this.listenToPreview(),t.result.length>0?(""===this.getCookie("buttonizer-first-visit")&&(document.cookie="buttonizer-first-visit="+(new Date).getTime()),(()=>{this.groups.push(new n(t.result[0],0))})(),this.firstTimeInitialize&&this.buttonizerInitialized()):console.log("Buttonizer: No groups/buttons to display"),buttonizer_ajax.in_preview&&this.previewInitialized&&(this.messageButtonizerAdminEditor("(re)loaded",!0),this.messageButtonizerAdminEditor("warning",t.warning)),this.settingsLoading=!1}messageButtonizerAdminEditor(t,e){try{window.parent.postMessage({eventType:"buttonizer",messageType:t,message:e},document.location.origin)}catch(t){console.log("Buttonizer tried to warn you in the front-end editor. But the message didn't came through. Well. Doesn't matter, it's just an extra function. It's nice to have."),console.log(t)}}listenToPreview(){this.previewInitialized=!0,window.addEventListener("message",t=>{t.isTrusted&&void 0!==t.data.eventType&&"buttonizer"===t.data.eventType&&(console.log("[Buttonizer] Buttonizer preview - Data received:",t.data.messageType),buttonizer_ajax.in_preview&&"preview-reload"===t.data.messageType&&this.reload())},!1)}reload(){if(this.settingsLoading)return console.log("[Buttonizer] Request too quick, first finish the previous one"),void setTimeout(()=>this.reload(),100);console.log("[Buttonizer] Reloading Buttonizer"),this.settingsLoading=!0;for(let t=0;t<this.groups.length;t++)this.groups[t].destroy();let t=document.querySelectorAll(".buttonizer-group");for(let e=0;e<t.length;e++)t[e].remove();setTimeout(()=>{this.groups=[],this.getSettings()},50)}googleAnalyticsEvent(t){if("function"==typeof ga){let e={};"group-open-close"===t.type?(e.groupName=t.name,e.action=t.interaction):"button-click"===t.type&&(e.groupName=t.groupName,e.action="Clicked button: "+t.buttonName),"object"==typeof dataLayer||ga("send","event",{eventCategory:"Buttonizer",eventAction:e.action,eventLabel:e.label,eventValue:e.eventValue})}}getCookie(t){for(var e=t+"=",i=decodeURIComponent(document.cookie).split(";"),o=0;o<i.length;o++){for(var n=i[o];" "==n.charAt(0);)n=n.substring(1);if(0==n.indexOf(e))return n.substring(e.length,n.length)}return""}destroyGroup(t){let e=this.groups.indexOf(t);e>=0&&this.groups.splice(e,1)}hasPremium(){return this.premium}buttonizerInitialized(){this.firstTimeInitialize&&("function"==typeof window.buttonizerInitialized&&window.buttonizerInitialized(),this.firstTimeInitialize=!1)}}},36:function(t,e){}});
10
  *
11
  * (C) 2017-2019 Buttonizer
12
  *
13
+ */!function(t){var e={};function o(i){if(e[i])return e[i].exports;var n=e[i]={i:i,l:!1,exports:{}};return t[i].call(n.exports,n,n.exports,o),n.l=!0,n.exports}o.m=t,o.c=e,o.d=function(t,e,i){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(o.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)o.d(i,n,function(e){return t[e]}.bind(null,n));return i},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=17)}({14:function(module,exports,__webpack_require__){var indexOf=__webpack_require__(15),Object_keys=function(t){if(Object.keys)return Object.keys(t);var e=[];for(var o in t)e.push(o);return e},forEach=function(t,e){if(t.forEach)return t.forEach(e);for(var o=0;o<t.length;o++)e(t[o],o,t)},defineProp=function(){try{return Object.defineProperty({},"_",{}),function(t,e,o){Object.defineProperty(t,e,{writable:!0,enumerable:!1,configurable:!0,value:o})}}catch(t){return function(t,e,o){t[e]=o}}}(),globals=["Array","Boolean","Date","Error","EvalError","Function","Infinity","JSON","Math","NaN","Number","Object","RangeError","ReferenceError","RegExp","String","SyntaxError","TypeError","URIError","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","eval","isFinite","isNaN","parseFloat","parseInt","undefined","unescape"];function Context(){}Context.prototype={};var Script=exports.Script=function(t){if(!(this instanceof Script))return new Script(t);this.code=t};Script.prototype.runInContext=function(t){if(!(t instanceof Context))throw new TypeError("needs a 'context' argument.");var e=document.createElement("iframe");e.style||(e.style={}),e.style.display="none",document.body.appendChild(e);var o=e.contentWindow,i=o.eval,n=o.execScript;!i&&n&&(n.call(o,"null"),i=o.eval),forEach(Object_keys(t),function(e){o[e]=t[e]}),forEach(globals,function(e){t[e]&&(o[e]=t[e])});var a=Object_keys(o),s=i.call(o,this.code);return forEach(Object_keys(o),function(e){(e in t||-1===indexOf(a,e))&&(t[e]=o[e])}),forEach(globals,function(e){e in t||defineProp(t,e,o[e])}),document.body.removeChild(e),s},Script.prototype.runInThisContext=function(){return eval(this.code)},Script.prototype.runInNewContext=function(t){var e=Script.createContext(t),o=this.runInContext(e);return forEach(Object_keys(e),function(o){t[o]=e[o]}),o},forEach(Object_keys(Script.prototype),function(t){exports[t]=Script[t]=function(e){var o=Script(e);return o[t].apply(o,[].slice.call(arguments,1))}}),exports.createScript=function(t){return exports.Script(t)},exports.createContext=Script.createContext=function(t){var e=new Context;return"object"==typeof t&&forEach(Object_keys(t),function(o){e[o]=t[o]}),e}},15:function(t,e){var o=[].indexOf;t.exports=function(t,e){if(o)return t.indexOf(e);for(var i=0;i<t.length;++i)if(t[i]===e)return i;return-1}},17:function(t,e,o){"use strict";o.r(e);class i{constructor(t,e){this.group=t,this.data=e,this.icon=e.icon.buttonIcon,this.show_mobile=e.device.show_mobile,this.show_desktop=e.device.show_desktop,this.style="",this.button,this.init(),this.unique="buttonizer-button-"+Array.apply(0,Array(15)).map(()=>(t=>t.charAt(Math.floor(Math.random()*t.length)))("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")).join("")}init(){}build(){let t,e=document.createElement("a");if(e.className="buttonizer-button",e.setAttribute("data-buttonizer",this.unique),"url"===this.data.action.type||"elementor_popup"===this.data.action.type||"popup_maker"===this.data.action.type?(e.href=this.data.action.action,"url"===this.data.action.type&&"true"===this.data.action.action_new_tab&&(e.target="_blank")):e.href="javascript:void(0)","true"===this.show_mobile&&"false"===this.show_desktop?(this.group.mobileButtonCount++,e.className+=" button-mobile-"+this.group.mobileButtonCount+" button-hide-desktop"):"false"===this.show_mobile&&"true"===this.show_desktop?(this.group.desktopButtonCount++,e.className+=" button-desktop-"+this.group.desktopButtonCount+" button-hide-mobile"):"false"===this.show_mobile&&"false"===this.show_desktop?e.className+=" button-hide-desktop button-hide-mobile":(this.group.mobileButtonCount++,this.group.desktopButtonCount++,e.className+=" button-mobile-"+this.group.mobileButtonCount+" button-desktop-"+this.group.desktopButtonCount),"hover"===this.data.label.show_label_desktop?e.className+=" show-label-desktop-hover":"hide"===this.data.label.show_label_desktop&&(e.className+=" label-desktop-hidden"),"hide"===this.data.label.show_label_mobile&&(e.className+=" label-mobile-hidden"),"messenger_chat"===this.data.action.type&&this.addMessengerWindow(),this.data.label.label.length>0){let t=document.createElement("div");t.className="buttonizer-label",t.innerText=this.data.label.label,e.appendChild(t)}return(()=>{(t=document.createElement("i")).className=void 0!==typeof this.icon?this.icon:"fa fa-user",e.appendChild(t)})(),e.addEventListener("click",t=>this.onButtonClick(t)),this.generateStyle(),this.button=e,this.button}onButtonClick(t){if(window.Buttonizer.googleAnalyticsEvent({type:"button-click",groupName:this.group.data.name,buttonName:this.data.name}),"url"!==this.data.action.type)if("phone"!==this.data.action.type)if("mail"!==this.data.action.type)if("backtotop"!==this.data.action.type)if("gobackpage"!==this.data.action.type)if("socialsharing"!==this.data.action.type)"whatsapp_pro"!==this.data.action.type&&"whatsapp"!==this.data.action.type?"skype"!==this.data.action.type?"messenger"!==this.data.action.type?"sms"!==this.data.action.type?"telegram"!==this.data.action.type?"facebook"!==this.data.action.type?"instagram"!==this.data.action.type?"line"!==this.data.action.type?"twitter"!==this.data.action.type?"twitter_dm"!==this.data.action.type?"snapchat"!==this.data.action.type?"linkedin"!==this.data.action.type?"viber"!==this.data.action.type?"vk"!==this.data.action.type?"poptin"!==this.data.action.type?"popup_maker"!==this.data.action.type&&"elementor_popup"!==this.data.action.type&&("waze"!==this.data.action.type?"wechat"!==this.data.action.type?"messenger_chat"!==this.data.action.type?console.error("Buttonizer: Error! Unknown button action!"):void 0!==window.Buttonizer.initializedFacebookChat&&document.querySelectorAll(".fb-customerchat").length>0?"0px"===document.querySelector(".fb-customerchat").querySelector("iframe").style.maxHeight?FB.CustomerChat.showDialog():"100%"===document.querySelector(".fb-customerchat").querySelector("iframe").style.maxHeight&&FB.CustomerChat.hideDialog():window.Buttonizer.previewInitialized?window.Buttonizer.messageButtonizerAdminEditor("warning","Facebook Messenger button is not found, it may be blocked or this domain is not allowed to load the Facebook widget."):alert("Sorry, we were unable to open Facebook Messenger! Check the console for more information."):document.location.href=`weixin://dl/chat?${this.data.action.action}`:document.location.href=this.data.action.action):document.location.href=this.data.action.action:window.open(`https://vk.me/${this.data.action.action}`):document.location.href=`viber://chat?number=${this.data.action.action}`:window.open(`https://www.linkedin.com/${this.data.action.action}`):window.open(`https://www.snapchat.com/add/${this.data.action.action}`):window.open(`https://twitter.com/messages/compose?recipient_id=${this.data.action.action}`):window.open(`https://twitter.com/${this.data.action.action}`):window.open(`https://line.me/R/ti/p/${this.data.action.action}`):window.open(`https://www.instagram.com/${this.data.action.action}`):window.open(`https://www.facebook.com/${this.data.action.action}`):window.open(`https://telegram.me/${this.data.action.action}`):document.location.href=`sms:${this.data.action.action}`:window.open(this.data.action.action):document.location.href=`skype:${this.data.action.action}?chat`:window.open(`https://api.whatsapp.com/send?phone=${this.data.action.action}`);else{if("facebook"===this.data.action.action)return window.open("http://www.facebook.com/sharer.php?u="+document.location.href+"&t="+document.title,"popupFacebook","width=610, height=480, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0"),!1;if("twitter"===this.data.action.action)return window.open("https://twitter.com/intent/tweet?text="+encodeURI(document.title)+" Hey! Check out this link:&url="+document.location.href,"popupTwitter","width=610, height=480, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0"),!1;if("whatsapp"===this.data.action.action)window.open("https://api.whatsapp.com/send?text="+encodeURI(document.title+" Hey! Check out this link:"+document.location.href));else{if("linkedin"===this.data.action.action)return window.open("http://www.linkedin.com/shareArticle?mini=true&url="+document.location.href+"&title="+encodeURI(document.title)+"&summary="+encodeURI(document.title),"popupLinkedIn","width=610, height=480, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0"),!1;if("pinterest"===this.data.action.action)return window.open("http://www.pinterest.com/pin/create/button/?url=/node"+document.location.href+"&description="+encodeURI(document.title),"popupTwitter","width=610, height=480, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0"),!1;"mail"===this.data.action.action&&(window.location.href="mailto:?subject="+document.title+"&body= Hey! Check out this link: "+document.location.href)}}else window.history.back();else jQuery("html, body").animate({scrollTop:0},750);else document.location.href=`mailto:${this.data.action.action}`;else document.location.href=`tel:${this.data.action.action}`}generateStyle(){if("14px"===this.data.styling.label.size&&"3px"===this.data.styling.label.radius||(this.group.stylesheet+=`\n [data-buttonizer="${this.group.unique}"] [data-buttonizer="${this.unique}"] .buttonizer-label {\n font-size: ${this.data.styling.label.size};\n border-radius: ${this.data.styling.label.radius};\n -moz-border-radius: ${this.data.styling.label.radius};\n -webkit-border-radius: ${this.data.styling.label.radius};\n }\n `),this.data.styling.button){let t="";"%"!==this.data.styling.button.radius&&(t=`\n border-radius: ${this.data.styling.button.radius};\n `),this.group.stylesheet+=`\n [data-buttonizer="${this.group.unique}"] [data-buttonizer="${this.unique}"] {\n background-color: ${this.data.styling.button.color};\n ${"00"===this.data.styling.button.color.substr(-2)?"box-shadow: none;":""};\n ${t}\n }\n \n [data-buttonizer="${this.group.unique}"] [data-buttonizer="${this.unique}"]:hover {\n background-color: ${this.data.styling.button.interaction}\n }\n \n [data-buttonizer="${this.group.unique}"] [data-buttonizer="${this.unique}"] .buttonizer-label {\n background-color: ${this.data.styling.label.background};\n color: ${this.data.styling.label.text} !important;\n }`}this.group.stylesheet+=`\n [data-buttonizer="${this.group.unique}"] [data-buttonizer="${this.unique}"] i {\n color: ${this.data.styling.icon.color};\n font-size: ${this.data.styling.icon.size};\n\n transition: all 0.2s ease-in-out;\n -moz-transition: all 0.2s ease-in-out;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n }\n\n [data-buttonizer="${this.group.unique}"] [data-buttonizer="${this.unique}"]:hover i{\n color: ${this.data.styling.icon.interaction};\n\n transition: all 0.2s ease-in-out;\n -moz-transition: all 0.2s ease-in-out;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n }\n `}destroy(){this.button.remove(),this.group.removeButton(this),this.group=null,this.data=null,this.button=null}addMessengerWindow(){if(void 0!==window.Buttonizer.initializedFacebookChat)return;window.Buttonizer.initializedFacebookChat=this.data.action.action;let t=document.createElement("div");t.className="fb-customerchat buttonizer-facebook-messenger-overwrite-"+this.group.unique,t.setAttribute("attribution","setup_tool"),t.setAttribute("greeting_dialog_display","hide"),t.setAttribute("page_id",this.data.action.action),document.body.appendChild(t),window.fbAsyncInit=function(){FB.init({xfbml:!0,version:"v3.3"})};let e=document.createElement("script");e.innerHTML="\n (function(d, s, id) {\n var js, fjs = d.getElementsByTagName(s)[0];\n if (d.getElementById(id)) return;\n js = d.createElement(s); js.id = id;\n js.src = 'https://connect.facebook.net/en_US/sdk/xfbml.customerchat.js';\n fjs.parentNode.insertBefore(js, fjs);\n }(document, 'script', 'facebook-jssdk'));",document.head.appendChild(e)}}o(14);class n{constructor(t,e){this.data=t,this.groupIndex=e,this.buttons=[],this.isBuild=!1,this.opened=!1,this.show_mobile=this.data.device.show_mobile,this.show_desktop=this.data.device.show_desktop,this.single_button_mode=this.data.single_button_mode,this.element=null,this.groupStyle=this.data.styling.menu.style,this.groupAnimation=this.data.styling.menu.animation,this.stylesheet="",this.mobileButtonCount=0,this.desktopButtonCount=0,this.unique="buttonizer-"+Array.apply(0,Array(15)).map(function(){return(t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789").charAt(Math.floor(Math.random()*t.length));var t}).join(""),this.init()}init(){for(let t=0;t<this.data.buttons.length;t++){let e=new i(this,this.data.buttons[t]);this.buttons.push(e)}this.build(),this.animate()}build(){if(!0===this.isBuild||0===this.buttons.length)return void console.error("Buttonizer: Cannot create group: No buttons or already build");"fade-left-to-right"===this.groupStyle&&(this.groupStyle="faded");let t=document.createElement("div");if(t.className=`buttonizer buttonizer-group buttonizer-style-${this.groupStyle} buttonizer-animation-${this.groupAnimation} ${this.data.position.bottom<=50?"bottom":"top"} ${this.data.position.right<=50?"right":"left"}`,t.setAttribute("data-buttonizer",this.unique),"true"===this.show_mobile&&"false"===this.show_desktop?t.className+=" button-mobile-only":"false"===this.show_mobile&&"true"===this.show_desktop?t.className+=" button-desktop-only":"false"===this.show_mobile&&"false"===this.show_desktop&&(t.className+=" button-hide"),this.buttons.length>1){t.classList.add("buttonizer-is-menu"),"true"===this.data.openedByDefault&&(document.cookie.match("buttonizer_open=")?document.cookie.match("buttonizer_open=closed")||document.cookie.match("buttonizer_open=opened")&&(t.classList.add("opened"),this.opened=!0):(setTimeout(function(){t.classList.add("opened")},100),this.opened=!this.opened)),"1"===buttonizer_ajax.in_preview&&document.cookie.match("buttonizer_preview_"+this.groupIndex+"=opened")&&(this.opened=!0,t.classList.add("opened")),"square"===this.data.styling.menu.style&&t.classList.add("opened");let e=document.createElement("div");e.className="buttonizer-button-list";let o=document.createElement("a");o.href="javascript:void(0)",o.className="buttonizer-button buttonizer-head","hover"===this.data.label.show_label_desktop?o.className+=" show-label-desktop-hover":"hide"===this.data.label.show_label_desktop&&(o.className+=" label-desktop-hidden"),"hide"===this.data.label.show_label_mobile&&(o.className+=" label-mobile-hidden");let i,n=`<div class="buttonizer-label">${this.data.label.groupLabel}</div>`;i=`<i class="${void 0!==typeof this.data.icon.groupIcon?this.data.icon.groupIcon:"fa fa-plus"}"></i>`,this.data.label.groupLabel.length<=0?o.innerHTML=i:o.innerHTML=n+i,o.addEventListener("click",t=>this.toggleMenu(t)),t.appendChild(e),t.appendChild(o);for(let o=0;o<this.buttons.length;o++){if("messenger_chat"===this.buttons[o].data.action.type){let e=document.createElement("div");e.className=`fb-customerchat buttonizer-facebook-messenger-overwrite-${this.unique}`,e.setAttribute("page-id",`${this.buttons[o].data.action.action}`),e.setAttribute("greeting_dialog_display","hide"),t.appendChild(e)}e.appendChild(this.buttons[o].build())}}else t.appendChild(this.buttons[0].build());t.className+=` buttonizer-desktop-has-${this.desktopButtonCount} buttonizer-mobile-has-${this.mobileButtonCount}`,this.element=t,document.body.appendChild(this.element),this.isBuild=!0,this.writeCSS()}toggleMenu(t){t.preventDefault(),window.Buttonizer.googleAnalyticsEvent({type:"group-open-close",name:this.data.name,interaction:this.opened?"close":"open"}),this.opened?this.element.classList.remove("opened"):this.element.classList.add("opened"),this.opened=!this.opened,"true"===this.data.openedByDefault&&(document.cookie.match("buttonizer_open=")?document.cookie.match("buttonizer_open=closed")?document.cookie="buttonizer_open=opened":document.cookie.match("buttonizer_open=opened")&&(document.cookie="buttonizer_open=closed"):document.cookie="buttonizer_open=closed"),"1"===buttonizer_ajax.in_preview&&this.togglePreviewOpened()}togglePreviewOpened(){this.opened?document.cookie="buttonizer_preview_"+this.groupIndex+"=opened":document.cookie="buttonizer_preview_"+this.groupIndex+"=closed"}writeCSS(){let t=document.createElement("style");t.id=this.unique;let e=` \n [data-buttonizer="${this.unique}"] {\n ${this.data.position.right<=50?"right":"left"}: ${this.data.position.right<=50?this.data.position.right:100-this.data.position.right}%;\n ${this.data.position.bottom<=50?"bottom":"top"}: ${this.data.position.bottom<=50?this.data.position.bottom:100-this.data.position.bottom}%;\n }\n \n [data-buttonizer="${this.unique}"] .buttonizer-button {\n background-color: ${this.data.styling.button.color};\n color: ${this.data.styling.icon.color};\n border-radius: ${this.data.styling.button.radius};\n ${"00"===this.data.styling.button.color.substr(-2)?"box-shadow: none;":""}\n }\n \n [data-buttonizer="${this.unique}"] .buttonizer-button:hover {\n background-color: ${this.data.styling.button.interaction};\n color: ${this.data.styling.icon.color}\n }\n \n [data-buttonizer="${this.unique}"] .buttonizer-button .buttonizer-label {\n background-color: ${this.data.styling.label.background};\n color: ${this.data.styling.label.text};\n font-size: ${this.data.styling.label.size};\n border-radius: ${this.data.styling.label.radius};\n }\n\n [data-buttonizer="${this.unique}"] .buttonizer-button i {\n color: ${this.data.styling.icon.color};\n font-size: ${this.data.styling.icon.size};\n }\n\n [data-buttonizer="${this.unique}"] .buttonizer-button i:hover {\n color: ${this.data.styling.icon.interaction};\n }\n\n .fb_dialog {\n display: none !important;\n }\n\n .buttonizer-facebook-messenger-overwrite-${this.unique} span iframe {\n ${this.data.position.right<=50?"right":"left"}: ${this.data.position.right<=50?+this.data.position.right-1:100-this.data.position.right-1}% !important;\n ${this.data.position.bottom<=50?"bottom":"top"}: ${this.data.position.bottom<=50?+this.data.position.bottom+4:100-this.data.position.bottom+6}% !important;\n }\n\n @media screen and (max-width: 769px){\n .${this.unique} span iframe {\n left: 0% !important;\n right: 0% !important;\n top: 0% !important;\n bottom: 0% !important;\n }\n }\n\n .fb_customer_chat_bounce_in_v2 {\n animation-duration: 300ms;\n animation-name: fb_bounce_in_v3 !important;\n transition-timing-function: ease-in-out; \n }\n\n .fb_customer_chat_bounce_out_v2 {\n max-height: 0px !important;\n }\n\n @keyframes fb_bounce_in_v3 {\n 0% {\n opacity: 0;\n transform: scale(0, 0);\n transform-origin: bottom;\n }\n 50% {\n transform: scale(1.03, 1.03);\n transform-origin: bottom;\n }\n 100% {\n opacity: 1;\n transform: scale(1, 1);\n transform-origin: bottom;\n }\n }\n `+this.stylesheet;t.innerHTML=e,document.head.appendChild(t)}animate(){null!==this.element&&"none"!==this.groupAnimation&&(this.element.classList.contains("opened")||(this.element.classList.add("attention-animation-true"),setTimeout(()=>{null!==this.element&&this.element.classList.remove("attention-animation-true")},2e3)),setTimeout(()=>this.animate(),1e4))}destroy(){for(let t=0;t<this.buttons.length;t++)this.buttons[t].destroy();this.element.remove(),this.element=null,document.getElementById(this.unique).remove(),window.Buttonizer.destroyGroup(this)}removeButton(t){let e=this.buttons.indexOf(t);e>=0&&this.buttons.splice(e,1)}}o(37);window.Buttonizer=new class{constructor(){if(this.getSettings(),this.firstTimeInitialize=!0,this.write=HTMLElement,this.previewInitialized=!1,this.settingsLoading=!1,this.premium=!1,this.groups=[],this.settings={ga:null},buttonizer_ajax.in_preview){let t=document.createElement("style");t.innerHTML="html { margin-top: 0 !important; }",window.document.head.appendChild(t)}}getSettings(){buttonizer_ajax.current.url=document.location.href,this.settingsLoading=!0,jQuery.ajax({url:buttonizer_ajax.ajaxurl+"?action=buttonizer",dataType:"json",data:{qpu:buttonizer_ajax.is_admin?Date.now():buttonizer_ajax.cache,preview:buttonizer_ajax.in_preview?1:0,data:buttonizer_ajax.current},method:"get",success:t=>{"success"===t.status?this.init(t):console.error("Buttonizer: Something went wrong! Buttonizer not loaded",t)},error:t=>{this.settingsLoading=!1,console.error("Buttonizer: OH NO! ERROR: '"+t.statusText+"'. That's all we know... Please check your PHP logs or contact Buttonizer support if you need help."),console.error("Buttonizer: Visit our community on https://community.buttonizer.pro/")}})}init(t){buttonizer_ajax.in_preview&&!this.previewInitialized&&this.listenToPreview(),t.result.length>0?(""===this.getCookie("buttonizer-first-visit")&&(document.cookie="buttonizer-first-visit="+(new Date).getTime()),(()=>{this.groups.push(new n(t.result[0],0))})(),this.firstTimeInitialize&&this.buttonizerInitialized()):console.log("Buttonizer: No groups/buttons to display"),buttonizer_ajax.in_preview&&this.previewInitialized&&(this.messageButtonizerAdminEditor("(re)loaded",!0),this.messageButtonizerAdminEditor("warning",t.warning)),this.settingsLoading=!1}messageButtonizerAdminEditor(t,e){try{window.parent.postMessage({eventType:"buttonizer",messageType:t,message:e},document.location.origin)}catch(t){console.log("Buttonizer tried to warn you in the front-end editor. But the message didn't came through. Well. Doesn't matter, it's just an extra function. It's nice to have."),console.log(t)}}listenToPreview(){this.previewInitialized=!0,window.addEventListener("message",t=>{t.isTrusted&&void 0!==t.data.eventType&&"buttonizer"===t.data.eventType&&(console.log("[Buttonizer] Buttonizer preview - Data received:",t.data.messageType),buttonizer_ajax.in_preview&&"preview-reload"===t.data.messageType&&this.reload())},!1)}reload(){if(this.settingsLoading)return console.log("[Buttonizer] Request too quick, first finish the previous one"),void setTimeout(()=>this.reload(),100);console.log("[Buttonizer] Reloading Buttonizer"),this.settingsLoading=!0;for(let t=0;t<this.groups.length;t++)this.groups[t].destroy();let t=document.querySelectorAll(".buttonizer-group");for(let e=0;e<t.length;e++)t[e].remove();setTimeout(()=>{this.groups=[],this.getSettings()},50)}googleAnalyticsEvent(t){if("function"==typeof ga||"function"==typeof gtag||"object"==typeof window.dataLayer&&"function"==typeof window.dataLayer.push){let e={};if("group-open-close"===t.type?(e.groupName=t.name,e.action=t.interaction):"button-click"===t.type&&(e.groupName=t.groupName,e.action="Clicked button: "+t.buttonName),"gtag"in window&&"function"==typeof gtag)gtag("event","Buttonizer",{event_category:"Buttonizer group: "+e.groupName,event_action:e.action,event_label:document.title,page_url:document.location.href});else if("ga"in window)try{let t=ga.getAll()[0];if(!t)throw"No tracker found";t.send("event","Buttonizer group: "+e.groupName,e.action,document.title)}catch(t){console.error("Buttonizer Google Analytics: Last try to push to Google Analytics."),console.error("What does this mean?","https://community.buttonizer.pro/knowledgebase/17"),ga("send","event",{eventCategory:"Buttonizer group: "+e.groupName,eventAction:e.action,eventLabel:document.title})}else console.error("Buttonizer Google Analytics: Unable to push data to Google Analytics"),console.error("What does this mean?","https://community.buttonizer.pro/knowledgebase/17")}}getCookie(t){for(var e=t+"=",o=decodeURIComponent(document.cookie).split(";"),i=0;i<o.length;i++){for(var n=o[i];" "==n.charAt(0);)n=n.substring(1);if(0==n.indexOf(e))return n.substring(e.length,n.length)}return""}destroyGroup(t){let e=this.groups.indexOf(t);e>=0&&this.groups.splice(e,1)}hasPremium(){return this.premium}buttonizerInitialized(){this.firstTimeInitialize&&("function"==typeof window.buttonizerInitialized&&window.buttonizerInitialized(),this.firstTimeInitialize=!1)}}},37:function(t,e){}});
buttonizer.php CHANGED
@@ -3,12 +3,13 @@
3
  * Plugin Name: Buttonizer - Smart Floating Action Button
4
  * Plugin URI: https://buttonizer.pro
5
  * Description: The Buttonizer is a new way to give a boost to your number of interactions, actions and conversions from your website visitor by adding one or multiple Customizable Smart Floating Button in the corner of your website.
6
- * Version: 2.0.4
7
  * Author: Buttonizer
8
  * Author URI: https://buttonizer.pro
9
  * License: GPL2
10
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
- * Text Domain: wporg
 
12
  *
13
  */
14
  /*
@@ -33,7 +34,7 @@ define('BUTTONIZER_NAME', 'buttonizer');
33
  define('BUTTONIZER_DIR', dirname(__FILE__));
34
  define('BUTTONIZER_SLUG', basename(BUTTONIZER_DIR));
35
  define('BUTTONIZER_PLUGIN_DIR', __FILE__ );
36
- define('BUTTONIZER_VERSION', '2.0.4');
37
  define('BUTTONIZER_DEBUG', false);
38
 
39
  define('FONTAWESOME_CURRENT_VERSION', 'v5.8.2');
@@ -56,15 +57,15 @@ defined( 'ABSPATH' ) or die('No script kiddies please!');
56
  * That's free!
57
  *
58
  * VISIT:
59
- * https://www.buttonizer.pro/
60
  *
61
- * -- BUGS FOUND? --
62
- * Are you here to look for a bug?
63
- * Cool! If you found something
64
- * you can report it to us!
65
  *
66
- * Maybe you get a FREE license
67
- * for 1 website ;)
68
  *
69
  * ================================================
70
  */
@@ -136,14 +137,14 @@ if(!function_exists("buttonizer_custom_connect_message")) {
136
  $freemius_link
137
  ) {
138
  return sprintf(
139
- __( 'Hey %1$s' ) . ',<br>' .
140
- '<br />' .
141
- __( 'Click on Allow & Continue to start Buttonizing your website :)! Create Floating Action Buttons & Floating Menu\'s. Decide on a number of click actions like start chatting with Whatsapp, click-to-call, open a URL and more.') . '<br />' .
142
- '<br />' .
143
- __('Never miss an important update -- opt-in to our security and feature updates notifications​.') . '<br />' .
144
- '<br />' .
145
- __('​See you on the other side.')
146
- ,
147
  $user_first_name,
148
  '<b>' . $plugin_title . '</b>',
149
  '<b>' . $user_login . '</b>',
@@ -157,14 +158,14 @@ if(!function_exists("buttonizer_custom_connect_message")) {
157
 
158
  $oButtonizer->get()->add_action('after_uninstall', 'buttonizer_uninstall_cleanup');
159
 
 
 
 
 
 
 
160
  // System, buttonizer is loaded
161
  do_action('buttonizer_loaded');
162
 
163
- // if(defined("BUTTONIZER_DEFINED")) {
164
- // echo "<div style='clear: both;'></div><img src='". plugins_url('/assets/buttonizer.png', BUTTONIZER_PLUGIN_DIR) ."' style='height: 40px; margin-right: 10px; float: left; vertical-align: top;'> Hey, looks like you try to install me (Buttonizer), while you already have an older version (or the free version) installed and activated? Deactivate all older Buttonizer plugins before trying again.<div style='clear: both; height: 20px'></div>";
165
- // trigger_error("Error", E_USER_ERROR);
166
- // exit;
167
- // }
168
-
169
  // Ok, define
170
  define('BUTTONIZER_DEFINED','1.0');
3
  * Plugin Name: Buttonizer - Smart Floating Action Button
4
  * Plugin URI: https://buttonizer.pro
5
  * Description: The Buttonizer is a new way to give a boost to your number of interactions, actions and conversions from your website visitor by adding one or multiple Customizable Smart Floating Button in the corner of your website.
6
+ * Version: 2.0.5
7
  * Author: Buttonizer
8
  * Author URI: https://buttonizer.pro
9
  * License: GPL2
10
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
+ * Text Domain: buttonizer-multifunctional-button
12
+ * Domain Path: /languages
13
  *
14
  */
15
  /*
34
  define('BUTTONIZER_DIR', dirname(__FILE__));
35
  define('BUTTONIZER_SLUG', basename(BUTTONIZER_DIR));
36
  define('BUTTONIZER_PLUGIN_DIR', __FILE__ );
37
+ define('BUTTONIZER_VERSION', '2.0.5');
38
  define('BUTTONIZER_DEBUG', false);
39
 
40
  define('FONTAWESOME_CURRENT_VERSION', 'v5.8.2');
57
  * That's free!
58
  *
59
  * VISIT:
60
+ * https://community.buttonizer.pro/knowledgebase
61
  *
62
+ * -- BUGS FOUND? --
63
+ * Are you here to look for a bug?
64
+ * Cool! If you found something
65
+ * you can report it to us!
66
  *
67
+ * Maybe you get a FREE license
68
+ * for 1 website ;)
69
  *
70
  * ================================================
71
  */
137
  $freemius_link
138
  ) {
139
  return sprintf(
140
+ __( 'Hey %1$s' ) . '!<br><br>
141
+ <p>Thank you for trying out our plugin!</p><br>
142
+ <p>Our goal is to provide you excellent support and make the Plugin better and more secure. We do that by tracking how our users are using the plugin, learning why they abandon it, which environments we need to continue supporting, etc. Those valuable data points are key to making data-driven decisions and lead to better UX (user experience), new features, better documentation and other good things.</p><br>
143
+ <p>Click on Allow and Continue (blue button) so that we can learn how to improve our plugin and help you better when you have support issues.</p><br>
144
+ <p>You can always use Buttonizer Free version without opting-in. Just click \'Skip\' (white button) if you don\'t want to opt-in.</p><br>
145
+ <p>Click on the link below (<a href="https://community.buttonizer.pro/knowledgebase/58" target="_blank">or click here</a>) to have a quick overview what gets tracked.</p><br>
146
+ <p>Much Buttonizing fun,<br />
147
+ <b>Team Buttonizer</b></p>',
148
  $user_first_name,
149
  '<b>' . $plugin_title . '</b>',
150
  '<b>' . $user_login . '</b>',
158
 
159
  $oButtonizer->get()->add_action('after_uninstall', 'buttonizer_uninstall_cleanup');
160
 
161
+ // Localization
162
+ function buttonizer_load_plugin_textdomain() {
163
+ load_plugin_textdomain('buttonizer-multifunctional-button', FALSE, basename(dirname(__FILE__)) . '/languages/');
164
+ }
165
+ add_action('plugins_loaded', 'buttonizer_load_plugin_textdomain');
166
+
167
  // System, buttonizer is loaded
168
  do_action('buttonizer_loaded');
169
 
 
 
 
 
 
 
170
  // Ok, define
171
  define('BUTTONIZER_DEFINED','1.0');
freemius/assets/img/buttonizer-multifunctional-button.png ADDED
Binary file
languages/buttonizer-multifunctional-button-nl_NL.mo ADDED
Binary file
languages/buttonizer-multifunctional-button-nl_NL.po ADDED
@@ -0,0 +1,2153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2019 Buttonizer
2
+ # This file is distributed under the same license as the Buttonizer - Smart Floating Action Button plugin.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Buttonizer - Smart Floating Action Button 2.0.4\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/buttonizer\n"
7
+ "POT-Creation-Date: 2019-07-23T14:52:49+00:00\n"
8
+ "PO-Revision-Date: 2019-07-23 17:45+0200\n"
9
+ "Last-Translator: \n"
10
+ "Language-Team: \n"
11
+ "Language: nl\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Generator: Poedit 2.2.3\n"
16
+ "X-Domain: buttonizer-multifunctional-button\n"
17
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
+
19
+ #. Plugin Name of the plugin
20
+ msgid "Buttonizer - Smart Floating Action Button"
21
+ msgstr "Buttonizer - Slimme zwevende actieknop"
22
+
23
+ #. Plugin URI of the plugin
24
+ #. Author URI of the plugin
25
+ msgid "https://buttonizer.pro"
26
+ msgstr "https://buttonizer.pro"
27
+
28
+ #. Description of the plugin
29
+ msgid ""
30
+ "The Buttonizer is a new way to give a boost to your number of interactions, "
31
+ "actions and conversions from your website visitor by adding one or multiple "
32
+ "Customizable Smart Floating Button in the corner of your website."
33
+ msgstr ""
34
+ "De Buttonizer is een nieuwe manier om je interacties, acties en conversies "
35
+ "te boosten op je website door een of meerdere slimme knoppen toe te voegen "
36
+ "in de hoeken van je website."
37
+
38
+ #. Author of the plugin
39
+ msgid "Buttonizer"
40
+ msgstr "Buttonizer"
41
+
42
+ #: app/Admin/Admin.php:120
43
+ msgid "Buttonizer is loading..."
44
+ msgstr "Buttonizer is aan het laden..."
45
+
46
+ #. Translators: First link goes to our knowledge base, the second link goes to the admin panel.
47
+ #: app/Admin/Admin.php:125
48
+ msgid ""
49
+ "When Buttonizer does not start, <a %1$s>click here</a> to find out what is "
50
+ "going wrong or <a %2$s>click here</a> to return to the WordPress admin "
51
+ "dashboard."
52
+ msgstr ""
53
+ "Wanneer Buttonizer niet start, <a %1$s>klik hier</a> om te kijken wat er "
54
+ "fout gaat of <a %2$s>klik hier</a> om terug te gaan naar het admin dashboard."
55
+
56
+ #: app/Admin/Admin.php:133
57
+ msgid ""
58
+ "When you have a slow internet connection or slow webserver, give it a "
59
+ "moment..."
60
+ msgstr ""
61
+ "Wanneer je een trage internetverbinding of webserver hebt, een klein "
62
+ "momentje geduld..."
63
+
64
+ #: app/Admin/Admin.php:138
65
+ msgid ""
66
+ "Hi there! JavaScript is disabled in your browser. Please consider to enable "
67
+ "JavaScript in your browser to use Buttonizer."
68
+ msgstr ""
69
+ "Hoi! Javascript is uitgeschakeld in je browser. Neem de overweging om "
70
+ "javascript in te schakelen om Buttonizer te gebruiken."
71
+
72
+ #: app/Admin/Translations.php:37
73
+ msgid "Oh, that was not what we were expecting! Something went wrong."
74
+ msgstr "Oh, dat was niet wat ik had verwacht! Er ging iets mis."
75
+
76
+ #: app/Admin/Translations.php:41
77
+ msgid "Custom javascript error"
78
+ msgstr "Aangepaste Javascript foutmelding"
79
+
80
+ #: app/Admin/Translations.php:42
81
+ msgid "Your custom javascript ran into an error. Read the error below:"
82
+ msgstr ""
83
+ "Je aangepaste javascript veroorzaakte een foutmelding. Lees de foutmelding "
84
+ "hieronder:"
85
+
86
+ #: app/Admin/Translations.php:47
87
+ msgid "Could not save settings"
88
+ msgstr "Kon de instellingen niet opslaan"
89
+
90
+ #: app/Admin/Translations.php:48
91
+ msgid "Something went wrong while saving your settings:"
92
+ msgstr "Er ging iets mis tijdens het opslaan van uw instellingen:"
93
+
94
+ #: app/Admin/Translations.php:53
95
+ msgid "Only numbers allowed."
96
+ msgstr "Alleen nummers toegestaan."
97
+
98
+ #: app/Admin/Translations.php:54
99
+ msgid "For this input, only positive numbers are allowed."
100
+ msgstr "Voor deze instelling zijn alleen positieve nummers toegestaan."
101
+
102
+ #: app/Admin/Translations.php:66
103
+ msgid "Invalid email address."
104
+ msgstr "Ongeldig email adres."
105
+
106
+ #: app/Admin/Translations.php:67
107
+ msgid ""
108
+ "Invalid phone number. Please only use number for your phone number. Omit any "
109
+ "zeros, brackets or dashes when adding the phone number in international "
110
+ "format."
111
+ msgstr ""
112
+ "Ongeldig telefoonnummer. Gebruik alleen de nummernotatie. Laat nullen, "
113
+ "haakjes of streepjes weg wanneer je gebruik maakt van het internationale "
114
+ "formaat."
115
+
116
+ #: app/Admin/Translations.php:68
117
+ msgid "This field only allows numbers."
118
+ msgstr "Dit velt staat alleen nummers toe."
119
+
120
+ #: app/Admin/Translations.php:80
121
+ msgid "Button"
122
+ msgstr "Knop"
123
+
124
+ #: app/Admin/Translations.php:81
125
+ msgid "Group"
126
+ msgstr "Groep"
127
+
128
+ #: app/Admin/Translations.php:83 app/Admin/Translations.php:314
129
+ msgid "Settings"
130
+ msgstr "Instellingen"
131
+
132
+ #: app/Admin/Translations.php:85
133
+ msgid "Confirm"
134
+ msgstr "Bevestig"
135
+
136
+ #: app/Admin/Translations.php:86
137
+ msgid "Search"
138
+ msgstr "Zoek"
139
+
140
+ #: app/Admin/Translations.php:88
141
+ msgid "Skip"
142
+ msgstr "Overslaan"
143
+
144
+ #: app/Admin/Translations.php:91
145
+ msgid "Disable"
146
+ msgstr "Deactiveren"
147
+
148
+ #: app/Admin/Translations.php:92
149
+ msgid "Disabled"
150
+ msgstr "Gedeactiveerd"
151
+
152
+ #: app/Admin/Translations.php:95 app/Admin/Translations.php:226
153
+ msgid "Save"
154
+ msgstr "Opslaan"
155
+
156
+ #: app/Admin/Translations.php:96
157
+ msgid "Saving"
158
+ msgstr "Opslaan"
159
+
160
+ #: app/Admin/Translations.php:97
161
+ msgid "Saving settings"
162
+ msgstr "Aan het opslaan"
163
+
164
+ #: app/Admin/Translations.php:99
165
+ msgid "Publish"
166
+ msgstr "Publiceer"
167
+
168
+ #: app/Admin/Translations.php:100
169
+ msgid "Published"
170
+ msgstr "Gepubliceerd"
171
+
172
+ #: app/Admin/Translations.php:101
173
+ msgid "Publishing..."
174
+ msgstr "Publiceren..."
175
+
176
+ #: app/Admin/Translations.php:104
177
+ msgid "Warning"
178
+ msgstr "Waarschuwing"
179
+
180
+ #: app/Admin/Translations.php:107
181
+ msgid "Next"
182
+ msgstr "Volgende"
183
+
184
+ #: app/Admin/Translations.php:108
185
+ msgid "Previous"
186
+ msgstr "Vorige"
187
+
188
+ #. translators: The button to save and publish the changes that were made
189
+ #: app/Admin/Translations.php:111 app/Admin/Translations.php:1114
190
+ msgid "Save & publish"
191
+ msgstr "Opslaan & publiceren"
192
+
193
+ #: app/Admin/Translations.php:122
194
+ msgid "Loading..."
195
+ msgstr "Laden..."
196
+
197
+ #: app/Admin/Translations.php:123
198
+ msgid "Loading settings..."
199
+ msgstr "Instellingen laden..."
200
+
201
+ #: app/Admin/Translations.php:124
202
+ msgid "Building bar..."
203
+ msgstr "Balk laden..."
204
+
205
+ #: app/Admin/Translations.php:125
206
+ msgid "Waiting for your website..."
207
+ msgstr "We wachten op je website..."
208
+
209
+ #: app/Admin/Translations.php:126
210
+ msgid "It's taking longer than usual, slow website?"
211
+ msgstr "Het duurt langer dan gebruikelijk, langzame website?"
212
+
213
+ #: app/Admin/Translations.php:127
214
+ msgid "Skip this step"
215
+ msgstr "Sla deze stap over"
216
+
217
+ #: app/Admin/Translations.php:128
218
+ msgid "Initializing..."
219
+ msgstr "Initialiseren..."
220
+
221
+ #: app/Admin/Translations.php:129
222
+ msgid "Resetting..."
223
+ msgstr "Resetten..."
224
+
225
+ #: app/Admin/Translations.php:130
226
+ msgid "Running migration..."
227
+ msgstr "Migratie aan het uitvoeren..."
228
+
229
+ #. translators: Finishing as in 'Cleaning up files'
230
+ #: app/Admin/Translations.php:132
231
+ msgid "Finishing..."
232
+ msgstr "Afronden..."
233
+
234
+ #. translators: %s will be replaced with 'Add button'
235
+ #: app/Admin/Translations.php:143 app/Admin/Translations.php:1076
236
+ #: app/Admin/Translations.php:1081
237
+ msgid "Add button"
238
+ msgstr "Knop toevoegen"
239
+
240
+ #: app/Admin/Translations.php:144
241
+ msgid "Add group"
242
+ msgstr "Groep toevoegen"
243
+
244
+ #: app/Admin/Translations.php:147
245
+ msgid "New button"
246
+ msgstr "Nieuwe knop"
247
+
248
+ #: app/Admin/Translations.php:148
249
+ msgid "New group"
250
+ msgstr "Nieuwe groep"
251
+
252
+ #: app/Admin/Translations.php:151
253
+ msgid "Advanced settings"
254
+ msgstr "Geavanceerde instellingen"
255
+
256
+ #: app/Admin/Translations.php:153
257
+ msgid "Text"
258
+ msgstr "Tekst"
259
+
260
+ #. translators: Base is meant as default state of the button (not hovering or clicking)
261
+ #: app/Admin/Translations.php:155
262
+ msgid "Base"
263
+ msgstr "Basis"
264
+
265
+ #. translators: Base is meant as default state of the button (not hovering or clicking)
266
+ #: app/Admin/Translations.php:156 app/Admin/Translations.php:344
267
+ msgid "Icon"
268
+ msgstr "Icoon"
269
+
270
+ #: app/Admin/Translations.php:157
271
+ msgid "Search icon"
272
+ msgstr "Zoek icoon"
273
+
274
+ #: app/Admin/Translations.php:160 app/Admin/Translations.php:356
275
+ msgid "Image"
276
+ msgstr "Afbeelding"
277
+
278
+ #: app/Admin/Translations.php:161
279
+ msgid "Select image"
280
+ msgstr "Selecteer afbeelding"
281
+
282
+ #: app/Admin/Translations.php:162
283
+ msgid "Change image"
284
+ msgstr "Verander afbeelding"
285
+
286
+ #: app/Admin/Translations.php:163
287
+ msgid "Click to remove this image"
288
+ msgstr "Klik om de afbeelding te verwijderen"
289
+
290
+ #: app/Admin/Translations.php:166
291
+ msgid "First button"
292
+ msgstr "Eerste knop"
293
+
294
+ #: app/Admin/Translations.php:167
295
+ msgid "Second button"
296
+ msgstr "Tweede knop"
297
+
298
+ #: app/Admin/Translations.php:170
299
+ msgid "Rename"
300
+ msgstr "Hernoem"
301
+
302
+ #: app/Admin/Translations.php:173
303
+ msgid "Delete"
304
+ msgstr "Verwijder"
305
+
306
+ #: app/Admin/Translations.php:176
307
+ msgid "Duplicate"
308
+ msgstr "Dupliceer"
309
+
310
+ #. translators: This string will be used to replace %s in 'Are you very sure you want to remove this %s?'
311
+ #: app/Admin/Translations.php:179
312
+ msgid "page rule"
313
+ msgstr "pagina regel"
314
+
315
+ #. translators: This string will be used to replace %s in 'Are you very sure you want to remove this %s?'
316
+ #: app/Admin/Translations.php:181
317
+ msgid "time schedule"
318
+ msgstr "tijdschema"
319
+
320
+ #. translators: Interaction is meant as hover/click state
321
+ #: app/Admin/Translations.php:184
322
+ msgid "Interaction"
323
+ msgstr "Interactie"
324
+
325
+ #. translators: Background as in background color
326
+ #: app/Admin/Translations.php:187
327
+ msgid "Background"
328
+ msgstr "Achtergrond"
329
+
330
+ #: app/Admin/Translations.php:190
331
+ msgid "Need help? Quick-start, tips & tricks"
332
+ msgstr "Hulp nodig? Quick-start, tips & tricks"
333
+
334
+ #: app/Admin/Translations.php:191
335
+ msgid "Need help? Visit our knowledge base!"
336
+ msgstr "Hulp nodig? Bezoek ons kennis bank!"
337
+
338
+ #: app/Admin/Translations.php:193
339
+ msgid "Nothing found for:"
340
+ msgstr "Niks gevonden voor:"
341
+
342
+ #: app/Admin/Translations.php:194
343
+ msgid "Search icons"
344
+ msgstr "Zoek iconen"
345
+
346
+ #. translators: %1$s will be replaced with a action name, %2$s will be replaced with a link
347
+ #: app/Admin/Translations.php:198
348
+ msgid "Need help? Learn how to use <b>%1$s</b>."
349
+ msgstr ""
350
+ "Hulp nodig? Meer informatie over hoe je de knopactie <b>%1$s</b> gebruikt."
351
+
352
+ #: app/Admin/Translations.php:211
353
+ msgid "OK"
354
+ msgstr "Okey"
355
+
356
+ #: app/Admin/Translations.php:212
357
+ msgid "OK, I'll fix this"
358
+ msgstr "Okey, ik los dit op"
359
+
360
+ #: app/Admin/Translations.php:214
361
+ msgid "Close"
362
+ msgstr "Sluiten"
363
+
364
+ #: app/Admin/Translations.php:215
365
+ msgid "Cancel"
366
+ msgstr "Annuleren"
367
+
368
+ #: app/Admin/Translations.php:218 app/Admin/Translations.php:970
369
+ msgid "Yes please"
370
+ msgstr "Ja graag"
371
+
372
+ #: app/Admin/Translations.php:219
373
+ msgid "No thank you"
374
+ msgstr "Nee bedankt"
375
+
376
+ #: app/Admin/Translations.php:222
377
+ msgid "Dismiss"
378
+ msgstr "Negeer"
379
+
380
+ #: app/Admin/Translations.php:223
381
+ msgid "I've changed my mind"
382
+ msgstr "Ik ben van gedachten veranderd"
383
+
384
+ #. translators: %s will be replaced with 'time schedule / page rule'
385
+ #: app/Admin/Translations.php:231
386
+ msgid "Remove %s?"
387
+ msgstr "Verwijder %s?"
388
+
389
+ #. translators: %s will be replaced with 'time schedule / page rule'
390
+ #: app/Admin/Translations.php:236
391
+ msgid ""
392
+ "Are you very sure you want to remove this %1$s? Buttons that are still "
393
+ "attached to this %2$s will become visible unless you attach them to another "
394
+ "%3$s or hide them."
395
+ msgstr ""
396
+ "Weet je zeker dat je deze %1$s wilt verwijderen? Knoppen die staan gekoppeld "
397
+ "aan deze %2$s zullen zichtbaar worden tenzij je ze koppelt aan een andere "
398
+ "%3$s."
399
+
400
+ #. translators: %s will be replaced with 'time schedule / page rule'
401
+ #: app/Admin/Translations.php:241
402
+ msgid "There are no buttons attached to this %s. You can remove this safely."
403
+ msgstr ""
404
+ "Er zijn geen knoppen gekoppeld aan deze %s. Je kan deze veilig verwijderen."
405
+
406
+ #. translators: This sentence will be used to remove a 'time schedule/page rule' and there are multiple buttons attached to it. %1$s will be a number, %2$s will be the 'time schedule / page rule'
407
+ #: app/Admin/Translations.php:246
408
+ msgid "There are <b>%1$s</b> buttons attached to this %2$s!"
409
+ msgstr "Er zijn <b>%1$s</b> knoppen gekoppeld aan deze %2$s!"
410
+
411
+ #. translators: This sentence will be used to remove a time schedule and there is only one button attached to it
412
+ #: app/Admin/Translations.php:251
413
+ msgid "There is <b>1</b> button attached to this %s!"
414
+ msgstr "Er is <b>1</b> knop gekoppeld aan deze %s!"
415
+
416
+ #. translators: %s will be replaced with 'time schedule / page rule'
417
+ #: app/Admin/Translations.php:256
418
+ msgid "Do you want to remove this %s?"
419
+ msgstr "Wil je deze %s verwijderen?"
420
+
421
+ #: app/Admin/Translations.php:270
422
+ msgid "Event tracker"
423
+ msgstr "Event tracker"
424
+
425
+ #: app/Admin/Translations.php:271
426
+ msgid "Event tracker (experimental)"
427
+ msgstr "Event tracker (experimenteel)"
428
+
429
+ #: app/Admin/Translations.php:294 app/Admin/Translations.php:1112
430
+ msgid "Revert changes"
431
+ msgstr "Wijzigingen ongedaan maken"
432
+
433
+ #: app/Admin/Translations.php:295
434
+ msgid "Reverting..."
435
+ msgstr "Ongedaan maken..."
436
+
437
+ #: app/Admin/Translations.php:297
438
+ msgid "Are you sure you want to revert your changes?"
439
+ msgstr "Weet je zeker dat je je wijzigingen ongedaan wilt maken?"
440
+
441
+ #: app/Admin/Translations.php:298
442
+ msgid ""
443
+ "The current changes will be overwritten by the current published buttons and "
444
+ "settings."
445
+ msgstr ""
446
+ "Je wijzigingen zullen worden overschreven door de huidige gepubliceerde "
447
+ "knoppen en instellingen."
448
+
449
+ #: app/Admin/Translations.php:301
450
+ msgid "Could not revert settings"
451
+ msgstr "Kon de instellingen niet ongedaan maken"
452
+
453
+ #: app/Admin/Translations.php:302
454
+ msgid "Something went wrong while reverting your settings."
455
+ msgstr "Er ging iets mis tijdens het ongedaan maken van uw instellingen."
456
+
457
+ #: app/Admin/Translations.php:318 app/Admin/Translations.php:1054
458
+ msgid "Menu style"
459
+ msgstr "Menustijl"
460
+
461
+ #: app/Admin/Translations.php:319 app/Admin/Translations.php:1060
462
+ #: app/Admin/Translations.php:1066
463
+ msgid "Group style"
464
+ msgstr "Groep stijl"
465
+
466
+ #: app/Admin/Translations.php:320
467
+ msgid "Group icon"
468
+ msgstr "Groep icoon"
469
+
470
+ #: app/Admin/Translations.php:321
471
+ msgid "Button style"
472
+ msgstr "Knop stijl"
473
+
474
+ #: app/Admin/Translations.php:322
475
+ msgid "Button icon"
476
+ msgstr "Knop icoon"
477
+
478
+ #: app/Admin/Translations.php:323 app/Admin/Translations.php:372
479
+ msgid "Label"
480
+ msgstr "Label"
481
+
482
+ #: app/Admin/Translations.php:327
483
+ msgid "Button name"
484
+ msgstr "Knopnaam"
485
+
486
+ #: app/Admin/Translations.php:328
487
+ msgid "This is the button name."
488
+ msgstr "Dit is de knopnaam."
489
+
490
+ #: app/Admin/Translations.php:332
491
+ msgid "Button color"
492
+ msgstr "Knop kleur"
493
+
494
+ #: app/Admin/Translations.php:333
495
+ msgid ""
496
+ "This is the color of your button group and also the default color for your "
497
+ "buttons within this group."
498
+ msgstr ""
499
+ "Dit is de kleur van de knopgroep en ook gelijk de standaardkleur van de "
500
+ "knoppen in de groep."
501
+
502
+ #: app/Admin/Translations.php:336
503
+ msgid "Background image"
504
+ msgstr "Achtergrond afbeelding"
505
+
506
+ #: app/Admin/Translations.php:337
507
+ msgid ""
508
+ "Upload an image if you want an image as a background instead of a color. "
509
+ "Recommended aspect ratio: square (1:1)."
510
+ msgstr ""
511
+ "Upload een afbeelding wanneer je een foto als achtergrond wilt in plaats van "
512
+ "een kleur. Aanbevolen formaat is: vierkant (1:1)."
513
+
514
+ #: app/Admin/Translations.php:340 app/Admin/Translations.php:352
515
+ msgid "Border radius"
516
+ msgstr "Border-radius"
517
+
518
+ #: app/Admin/Translations.php:341
519
+ msgid "Change the roundness of this button group."
520
+ msgstr "Verander de rondte van deze knop."
521
+
522
+ #: app/Admin/Translations.php:345
523
+ msgid "Choose an icon from the icon library."
524
+ msgstr "Kies een icoon uit de icoon bibliotheek."
525
+
526
+ #: app/Admin/Translations.php:348
527
+ msgid "Icon color"
528
+ msgstr "Icoon kleur"
529
+
530
+ #: app/Admin/Translations.php:349
531
+ msgid "Change the icon color of this button."
532
+ msgstr "Verander de icoonkleur van deze knop."
533
+
534
+ #: app/Admin/Translations.php:353
535
+ msgid "Change the border radius of the image."
536
+ msgstr "Verander de hoek-rondte van de afbeelding."
537
+
538
+ #: app/Admin/Translations.php:357
539
+ msgid ""
540
+ "Choose an image to use as this button or group icon. Recommended aspect "
541
+ "ratio: square (1:1)"
542
+ msgstr ""
543
+ "Kies een afbeelding om deze te gebruiken als knop of groep icoon. Aanbevolen "
544
+ "formaat is: vierkant (1:1)"
545
+
546
+ #: app/Admin/Translations.php:360
547
+ msgid "Image size"
548
+ msgstr "Afbeeldingsgrootte"
549
+
550
+ #: app/Admin/Translations.php:361
551
+ msgid "Change the size of the image."
552
+ msgstr "Verander de grootte van de afbeelding."
553
+
554
+ #: app/Admin/Translations.php:364
555
+ msgid "Graphic"
556
+ msgstr "Grafisch"
557
+
558
+ #: app/Admin/Translations.php:365
559
+ msgid "Choose whether to use an icon or image as the button icon."
560
+ msgstr ""
561
+ "Kies of je gebruik wilt maken van een icoon of een afbeelding als knop-icoon."
562
+
563
+ #: app/Admin/Translations.php:368
564
+ msgid "Icon size"
565
+ msgstr "Icoon grootte"
566
+
567
+ #: app/Admin/Translations.php:369
568
+ msgid "Change the icon size of this button."
569
+ msgstr "Verander de icoon grootte van deze knop."
570
+
571
+ #: app/Admin/Translations.php:373
572
+ msgid "Change the label of this button."
573
+ msgstr "Verander de label van deze knop."
574
+
575
+ #: app/Admin/Translations.php:374
576
+ msgid "Label text"
577
+ msgstr "Label tekst"
578
+
579
+ #: app/Admin/Translations.php:377
580
+ msgid "Label color"
581
+ msgstr "Label kleur"
582
+
583
+ #: app/Admin/Translations.php:378
584
+ msgid ""
585
+ "Change the text and background color of the label for this button or group."
586
+ msgstr ""
587
+ "Verander de tekst en achtergrondkleur van de label van deze knop of "
588
+ "knopgroep."
589
+
590
+ #: app/Admin/Translations.php:381
591
+ msgid "Font size & border radius"
592
+ msgstr "Lettertype grootte & border-radius"
593
+
594
+ #: app/Admin/Translations.php:382
595
+ msgid ""
596
+ "Change the font size and border radius of the label for this button group."
597
+ msgstr ""
598
+ "Verander de font size en rand-hoek van de label voor deze knop of knopgroep."
599
+
600
+ #: app/Admin/Translations.php:385
601
+ msgid "Animation"
602
+ msgstr "Animatie"
603
+
604
+ #: app/Admin/Translations.php:386
605
+ msgid ""
606
+ "This will animate this button group to get the attention of the visitor. The "
607
+ "animation repeats itself every 10 seconds."
608
+ msgstr ""
609
+ "Deze optie zal de knopgroep animeren om de aandacht te trekken van de "
610
+ "bezoeker. De animatie wordt om de 10 seconden herhaald."
611
+
612
+ #: app/Admin/Translations.php:388
613
+ msgid "No animation"
614
+ msgstr "Geen animatie"
615
+
616
+ #: app/Admin/Translations.php:389
617
+ msgid "Buttonizer Hello"
618
+ msgstr "Buttonizer Hallo"
619
+
620
+ #: app/Admin/Translations.php:390
621
+ msgid "Bounce"
622
+ msgstr "Springen"
623
+
624
+ #: app/Admin/Translations.php:394
625
+ msgid "Position"
626
+ msgstr "Positie"
627
+
628
+ #: app/Admin/Translations.php:395
629
+ msgid "Change the position of this button group."
630
+ msgstr "Verander de positie van de knopgroep."
631
+
632
+ #: app/Admin/Translations.php:398
633
+ msgid "Bottom right"
634
+ msgstr "Rechts onderin"
635
+
636
+ #: app/Admin/Translations.php:399
637
+ msgid "Bottom left"
638
+ msgstr "Links onderin"
639
+
640
+ #: app/Admin/Translations.php:400
641
+ msgid "Top right"
642
+ msgstr "Rechts bovenin"
643
+
644
+ #: app/Admin/Translations.php:401
645
+ msgid "Top left"
646
+ msgstr "Links bovenin"
647
+
648
+ #: app/Admin/Translations.php:402
649
+ msgid "Custom"
650
+ msgstr "Aangepast"
651
+
652
+ #: app/Admin/Translations.php:406
653
+ msgid "Menu Style"
654
+ msgstr "Menustijl"
655
+
656
+ #: app/Admin/Translations.php:407
657
+ msgid "Change the menu style of this button group."
658
+ msgstr "Verander de menustijl van deze knopgroep."
659
+
660
+ #: app/Admin/Translations.php:410
661
+ msgid "Default"
662
+ msgstr "Standaard"
663
+
664
+ #: app/Admin/Translations.php:411
665
+ msgid "Faded"
666
+ msgstr "Faded"
667
+
668
+ #: app/Admin/Translations.php:412
669
+ msgid "Corner circle"
670
+ msgstr "Hoekcirkel"
671
+
672
+ #: app/Admin/Translations.php:413
673
+ msgid "Build Up"
674
+ msgstr "Opbouwen"
675
+
676
+ #: app/Admin/Translations.php:414
677
+ msgid "Pop"
678
+ msgstr "Pop"
679
+
680
+ #: app/Admin/Translations.php:415
681
+ msgid "Square"
682
+ msgstr "Vierkant"
683
+
684
+ #: app/Admin/Translations.php:419 app/Admin/Translations.php:423
685
+ msgid "Visibility"
686
+ msgstr "Zichtbaarheid"
687
+
688
+ #: app/Admin/Translations.php:420
689
+ msgid ""
690
+ "Always show the label, show the label on hover or hide the label on "
691
+ "<u>desktop devices</u>."
692
+ msgstr ""
693
+ "Altijd de label weergeven, alleen weergeven wanneer je er met de muis "
694
+ "overheen gaat, of verberg de label op <u>desktop</u>."
695
+
696
+ #: app/Admin/Translations.php:424
697
+ msgid "Always show or hide the label on <u>mobile devices</u>."
698
+ msgstr ""
699
+ "Altijd de label weergeven of verberg de label op <u>mobiele apparaten</u>."
700
+
701
+ #: app/Admin/Translations.php:427
702
+ msgid "Always show label"
703
+ msgstr "Label altijd tonen"
704
+
705
+ #: app/Admin/Translations.php:428
706
+ msgid "Show label on hover"
707
+ msgstr "Label alleen tonen bij muis-hover"
708
+
709
+ #: app/Admin/Translations.php:429
710
+ msgid "Hide label"
711
+ msgstr "Label verbergen"
712
+
713
+ #: app/Admin/Translations.php:432
714
+ msgid "Show on"
715
+ msgstr "Weergeven op"
716
+
717
+ #: app/Admin/Translations.php:433
718
+ msgid "Device visibility"
719
+ msgstr "Apparaatzichtbaarheid"
720
+
721
+ #: app/Admin/Translations.php:434
722
+ msgid ""
723
+ "Choose if you want to make this button group visible on desktop and mobile "
724
+ "devices."
725
+ msgstr ""
726
+ "Kies of u deze knopgroep zichtbaar wilt maken op desktops en mobiele "
727
+ "apparaten."
728
+
729
+ #: app/Admin/Translations.php:435
730
+ msgid "Mobile"
731
+ msgstr "Mobiel"
732
+
733
+ #: app/Admin/Translations.php:436
734
+ msgid "Desktop"
735
+ msgstr "Desktop"
736
+
737
+ #: app/Admin/Translations.php:439
738
+ msgid "Start opened"
739
+ msgstr "Start geopend"
740
+
741
+ #: app/Admin/Translations.php:440
742
+ msgid "This button group starts opened when this setting is enabled."
743
+ msgstr "De knopgroep start geopend wanneer deze instelling geactiveerd is."
744
+
745
+ #: app/Admin/Translations.php:443
746
+ msgid "Use the same style of main button"
747
+ msgstr "Gebruik de zelfde stijl van de hoofdknop"
748
+
749
+ #: app/Admin/Translations.php:444
750
+ msgid "When enabled, this button will use the same style as the button group."
751
+ msgstr ""
752
+ "Wanneer deze optie is ingeschakeld zal deze de stijl van de groep gebruiken."
753
+
754
+ #. translators: 'id' as in HTML attribute 'id'
755
+ #: app/Admin/Translations.php:448
756
+ msgid "Custom ID"
757
+ msgstr "Aangepast ID"
758
+
759
+ #. translators: 'id' as in HTML attribute 'id'
760
+ #: app/Admin/Translations.php:450
761
+ msgid "Adds a custom 'id' HTML attribute to the button."
762
+ msgstr "Voegt een aangepast 'id' HTML attribuut toe aan de knop."
763
+
764
+ #. translators: 'id' as in HTML attribute 'id'
765
+ #: app/Admin/Translations.php:452
766
+ msgid "You can add a custom ID to each button for styling purposes."
767
+ msgstr "Je kan aan elke knop een aangepaste ID toevoegen voor extra styling."
768
+
769
+ #. translators: 'id' as in HTML attribute 'id'
770
+ #: app/Admin/Translations.php:454
771
+ msgid "ID name"
772
+ msgstr "ID naam"
773
+
774
+ #. translators: 'class' as in HTML attribute 'class'
775
+ #: app/Admin/Translations.php:458
776
+ msgid "Custom class"
777
+ msgstr "Aangepaste class"
778
+
779
+ #. translators: 'class' as in HTML attribute 'class'
780
+ #: app/Admin/Translations.php:460 app/Admin/Translations.php:468
781
+ msgid "Adds a custom 'class' HTML attribute to the button."
782
+ msgstr "Voegt een aangepast 'class' HTML attribuut toe aan de knop."
783
+
784
+ #. translators: 'class' as in HTML attribute 'class'
785
+ #: app/Admin/Translations.php:462 app/Admin/Translations.php:469
786
+ msgid "You can add a custom class to each button for styling purposes."
787
+ msgstr ""
788
+ "Je kan aan elke knop een aangepaste class toevoegen voor extra styling."
789
+
790
+ #. translators: 'class' as in HTML attribute 'class'
791
+ #: app/Admin/Translations.php:464
792
+ msgid "Class name"
793
+ msgstr "Class naam"
794
+
795
+ #: app/Admin/Translations.php:467 app/Admin/Translations.php:767
796
+ msgid "Page rule"
797
+ msgstr "Pagina regel"
798
+
799
+ #: app/Admin/Translations.php:470
800
+ msgid "Manage page rules"
801
+ msgstr "Beheer pagina regels"
802
+
803
+ #: app/Admin/Translations.php:471
804
+ msgid "You cannot select the same page rule as it's group!"
805
+ msgstr "Je kan niet dezelfde pagina-regel kiezen als de groep!"
806
+
807
+ #: app/Admin/Translations.php:474
808
+ msgid "Show button when rule is triggered"
809
+ msgstr "Toon knop wanneer de regel wordt getriggered"
810
+
811
+ #: app/Admin/Translations.php:475
812
+ msgid "Hide button when rule is triggered"
813
+ msgstr "Verberg knop wanneer de regel wordt getriggered"
814
+
815
+ #: app/Admin/Translations.php:480
816
+ msgid "Button action"
817
+ msgstr "Knop actie"
818
+
819
+ #: app/Admin/Translations.php:481
820
+ msgid "Choose a click action for this button."
821
+ msgstr "Kies een klik-actie voor deze knop."
822
+
823
+ #: app/Admin/Translations.php:482
824
+ msgid "Select button action"
825
+ msgstr "Selecteer knop-actie"
826
+
827
+ #: app/Admin/Translations.php:483
828
+ msgid "No button action found for:"
829
+ msgstr "Geen knop-actie gevonden voor:"
830
+
831
+ #: app/Admin/Translations.php:486
832
+ msgid "Popular actions"
833
+ msgstr "Populaire acties"
834
+
835
+ #: app/Admin/Translations.php:487
836
+ msgid "Click to chat"
837
+ msgstr "Klik om te chatten"
838
+
839
+ #: app/Admin/Translations.php:488
840
+ msgid "Social Media"
841
+ msgstr "Sociale media"
842
+
843
+ #: app/Admin/Translations.php:489
844
+ msgid "Popup"
845
+ msgstr "Pop-up"
846
+
847
+ #: app/Admin/Translations.php:491
848
+ msgid "Call action (Phone number)"
849
+ msgstr "Bel actie (Telefoonnummer)"
850
+
851
+ #: app/Admin/Translations.php:492
852
+ msgid "Mail"
853
+ msgstr "E-mail"
854
+
855
+ #: app/Admin/Translations.php:493
856
+ msgid "Back to top"
857
+ msgstr "Terug naar boven"
858
+
859
+ #: app/Admin/Translations.php:494
860
+ msgid "Go back one page"
861
+ msgstr "Vorige pagina"
862
+
863
+ #: app/Admin/Translations.php:495
864
+ msgid "Share page"
865
+ msgstr "Deel pagina"
866
+
867
+ #. translators: %s and %s will be replaced with links
868
+ #: app/Admin/Translations.php:498
869
+ msgid ""
870
+ "New, Facebook Messenger Chat Widget! First, you'll need to <a "
871
+ "%1$s>whitelist</a> your site on Facebook. Then add your <a %2$s>Page ID</a> "
872
+ "into the input above."
873
+ msgstr ""
874
+ "Nieuw, Facebook Messenger Chat Widget! Als eerste moet je je website <a "
875
+ "%1$s>toestaan</a> via Facebook. Daarna moet je de <a %2$s>Pagina ID</a> "
876
+ "hierboven invullen."
877
+
878
+ #. translators: %s and %s will be replaced with links
879
+ #: app/Admin/Translations.php:503
880
+ msgid ""
881
+ "You need to install Poptin's WordPress plugin. You can find it <a %1$s>here</"
882
+ "a>. Once you've made a Poptin paste the <a %2$s>direct link</a> into the "
883
+ "input."
884
+ msgstr ""
885
+ "Wanneer je hiervan gebruik wilt maken moet je de Poptin's WordPress plugin "
886
+ "installeren. Deze kun je <a %1$s>hier</a> vinden. Vul daarna hierboven de <a "
887
+ "%2$s>directe link</a> in."
888
+
889
+ #. translators: %s will become the social media platform, like example: Share on Twitter
890
+ #: app/Admin/Translations.php:509
891
+ msgid "Share on %s"
892
+ msgstr "Delen op %s"
893
+
894
+ #. translators: %s will become the social media platform, like example: Share via email
895
+ #: app/Admin/Translations.php:515
896
+ msgid "Share via %s"
897
+ msgstr "Delen via %s"
898
+
899
+ #: app/Admin/Translations.php:520
900
+ msgid "This URL appears to be invalid. The button may not work as expected."
901
+ msgstr ""
902
+ "Dit lijkt op een ongeldige link. De knop werkt mogelijk niet zoals verwacht."
903
+
904
+ #: app/Admin/Translations.php:521
905
+ msgid ""
906
+ "Do you miss <b>http://</b> or <b>https://</b>? Perhaps an unnecessary space "
907
+ "is added somewhere."
908
+ msgstr ""
909
+ "Mis je <b>http://</b> of <b>https://</b>? Misschien heb je een onnodige "
910
+ "spatie ergens toegevoegd."
911
+
912
+ #: app/Admin/Translations.php:522
913
+ msgid ""
914
+ "<b>Insecure URL:</b> Sorry to interrupt, but we advice you to use HTTPS for "
915
+ "your URLS. This is a safer way to transport data."
916
+ msgstr ""
917
+ "<b>Onveilige link:</b> Sorry voor het storen, maar we adviseren je om HTTPS "
918
+ "te gebruiken voor je links waar mogelijk. Dit is een veiligere manier voor "
919
+ "het transporteren van data."
920
+
921
+ #: app/Admin/Translations.php:526
922
+ msgid "Javascript function"
923
+ msgstr "Javascript functie"
924
+
925
+ #: app/Admin/Translations.php:527
926
+ msgid "Warning! Before you continue..."
927
+ msgstr "Waarschuwing! Voordat je verdergaat..."
928
+
929
+ #: app/Admin/Translations.php:528
930
+ msgid ""
931
+ "You are changing this button action from custom javascript to a different "
932
+ "action. Your javascript changes will be lost."
933
+ msgstr ""
934
+ "Je veranderd de knopactie van aangepaste javascript naar een andere actie. "
935
+ "Je javascript wijzigingen zullen verloren gaan."
936
+
937
+ #: app/Admin/Translations.php:529
938
+ msgid "Are you sure you want to proceed?"
939
+ msgstr "Weet je zeker dat je verder wilt gaan?"
940
+
941
+ #. translators: %s will be replaced with html attributes for the link
942
+ #: app/Admin/Translations.php:534
943
+ msgid ""
944
+ "Fill in your phone number without any spaces and symbols. Read WhatsApps "
945
+ "recommendations by <a %s>clicking here.</a>"
946
+ msgstr ""
947
+ "Vul je telefoonnummer in zonder spaties en symbolen. Lees WhatsApps "
948
+ "aanbevelingen door <a %s>hier te klikken.</a>"
949
+
950
+ #: app/Admin/Translations.php:541
951
+ msgid "Open new tab"
952
+ msgstr "Open in een nieuw tabblad"
953
+
954
+ #: app/Admin/Translations.php:542
955
+ msgid "When the button is clicked, open in new tab."
956
+ msgstr "Wanneer er op de knop wordt geklikt, open in een nieuw tabblad."
957
+
958
+ #: app/Admin/Translations.php:546
959
+ msgid "Filters"
960
+ msgstr "Filters"
961
+
962
+ #: app/Admin/Translations.php:547
963
+ msgid "Styling"
964
+ msgstr "Stijl"
965
+
966
+ #: app/Admin/Translations.php:548
967
+ msgid "Timeout & Scroll"
968
+ msgstr "Time-out & Scrollen"
969
+
970
+ #: app/Admin/Translations.php:560 app/Admin/Translations.php:1026
971
+ msgid "Buttonizer settings"
972
+ msgstr "Buttonizer instellingen"
973
+
974
+ #: app/Admin/Translations.php:563
975
+ msgid "Icon library"
976
+ msgstr "Icoon set"
977
+
978
+ #: app/Admin/Translations.php:564
979
+ msgid "free"
980
+ msgstr "gratis"
981
+
982
+ #: app/Admin/Translations.php:565
983
+ msgid "Latest (automatic)"
984
+ msgstr "Laatste (automatisch)"
985
+
986
+ #: app/Admin/Translations.php:566
987
+ msgid ""
988
+ "If your theme automatically loads in a library, just select the correct icon "
989
+ "library instead."
990
+ msgstr ""
991
+ "Wanneer je thema automatisch iconen inlaad moet je de juiste icoon-"
992
+ "bibliotheek kiezen."
993
+
994
+ #: app/Admin/Translations.php:570
995
+ msgid "Select version"
996
+ msgstr "Selecteer versie"
997
+
998
+ #: app/Admin/Translations.php:571
999
+ msgid ""
1000
+ "Select the correct version of the library in order to use the icons in "
1001
+ "Buttonizer."
1002
+ msgstr ""
1003
+ "Selecteer de juiste versie van de iconen die je gebruikt op je website zodat "
1004
+ "je deze kunt selecteren in Buttonizer."
1005
+
1006
+ #: app/Admin/Translations.php:576
1007
+ msgid ""
1008
+ "You have selected an icon library that has premium icons. Enter the library "
1009
+ "license code to view and use these."
1010
+ msgstr ""
1011
+ "Je hebt een icoon bibliotheek gekozen die premium iconen bevat. Vul de icoon-"
1012
+ "licentie in om deze weer te geven."
1013
+
1014
+ #: app/Admin/Translations.php:577
1015
+ msgid "How does this work?"
1016
+ msgstr "Hoe werkt dit?"
1017
+
1018
+ #. translators: String will be replaced with 'integrity' or 'license'
1019
+ #: app/Admin/Translations.php:582
1020
+ msgid "Enter %s code"
1021
+ msgstr "Vul de %s code in"
1022
+
1023
+ #: app/Admin/Translations.php:589
1024
+ msgid "Import icon library"
1025
+ msgstr "Iconen inladen"
1026
+
1027
+ #: app/Admin/Translations.php:590
1028
+ msgid ""
1029
+ "Should Buttonizer import the icon library into your theme? If your theme "
1030
+ "already imports the library you can disable this."
1031
+ msgstr ""
1032
+ "Moet Buttonizer de iconen importeren in je thema? Wanneer je thema al iconen "
1033
+ "inlaad kan je deze optie uitschakelen."
1034
+
1035
+ #: app/Admin/Translations.php:596
1036
+ msgid "Where can I see my click data of my buttons in Google Analytics?"
1037
+ msgstr ""
1038
+ "Waar kan ik mijn klik-data vinden van mijn knoppen in Google Analytics?"
1039
+
1040
+ #. translators: Please keep the code-example 'UA-000000-2'
1041
+ #: app/Admin/Translations.php:599
1042
+ msgid "Insert the Google Analytics tracking code here. Example: UA-000000-2"
1043
+ msgstr "Vul hier je Google Analytics tracking code in. Voorbeeld: UA-000000-2"
1044
+
1045
+ #: app/Admin/Translations.php:604
1046
+ msgid "Other settings"
1047
+ msgstr "Overige instellingen"
1048
+
1049
+ #: app/Admin/Translations.php:607
1050
+ msgid "Show admin top bar"
1051
+ msgstr "Weergeven in de admin bovenbalk"
1052
+
1053
+ #: app/Admin/Translations.php:608
1054
+ msgid "Hide Buttonizer in the admin top bar by disabling this setting."
1055
+ msgstr ""
1056
+ "Verberg Buttonizer in de admin top balk door deze instelling uit te "
1057
+ "schakelen."
1058
+
1059
+ #: app/Admin/Translations.php:612
1060
+ msgid "Show tooltips"
1061
+ msgstr "Tooltips weergeven"
1062
+
1063
+ #: app/Admin/Translations.php:613
1064
+ msgid "Hide the tooltips by disabling this setting."
1065
+ msgstr "Verberg tooltips door deze instelling uit te schakelen."
1066
+
1067
+ #: app/Admin/Translations.php:617
1068
+ msgid "Subdomain support"
1069
+ msgstr "Subdomein ondersteuning"
1070
+
1071
+ #: app/Admin/Translations.php:618
1072
+ msgid ""
1073
+ "Some WordPress websites use subdomains for content purposes. Enable this "
1074
+ "setting to allow Buttonizer to load on your subdomains. Only enable this "
1075
+ "when you need it."
1076
+ msgstr ""
1077
+ "Sommige WordPress website gebruiken subdomeinen om content weer te geven. Je "
1078
+ "kan Buttonizer toestemming geven om ook op deze subdomeinen te laden. Zet "
1079
+ "deze functie alleen aan als je dit nodig hebt."
1080
+
1081
+ #: app/Admin/Translations.php:624
1082
+ msgid "Reset"
1083
+ msgstr "Reset"
1084
+
1085
+ #: app/Admin/Translations.php:625
1086
+ msgid "This is a way to reset Buttonizer to the default settings."
1087
+ msgstr ""
1088
+ "Dit is een manier om Buttonizer terug naar de begin-instellingen te laten "
1089
+ "gaan."
1090
+
1091
+ #: app/Admin/Translations.php:628
1092
+ msgid "What will happen when I click the red button below?"
1093
+ msgstr "Wat gebeurt er als ik op de rode knop hieronder druk?"
1094
+
1095
+ #: app/Admin/Translations.php:629
1096
+ msgid ""
1097
+ "The plugin will get a 'factory reset'. All settings of Buttonizer will get "
1098
+ "deleted, reverting back to when you first installed and activated Buttonizer."
1099
+ msgstr ""
1100
+ "De plugin zal teruggaan naar de 'fabrieksinstellingen'. Alle instellingen "
1101
+ "van Buttonizer zullen worden verwijderd, terug naar het begin toen je net "
1102
+ "Buttonizer installeerde."
1103
+
1104
+ #: app/Admin/Translations.php:633
1105
+ msgid "Why would I do that?"
1106
+ msgstr "Waarom zou ik dat doen?"
1107
+
1108
+ #: app/Admin/Translations.php:634
1109
+ msgid ""
1110
+ "Perhaps you ruined your buttons, categories or settings and would like to "
1111
+ "start from scratch. Or maybe you just feel trying the reset button..."
1112
+ msgstr ""
1113
+ "Mogelijk heb je je knoppen, categorieën of instellingen geruïneerd en ben je "
1114
+ "toe aan een nieuw begin. Of misschien wil gewoon je de resetknop "
1115
+ "uitproberen..."
1116
+
1117
+ #: app/Admin/Translations.php:638
1118
+ msgid "I have a license, what about that?"
1119
+ msgstr "Ik heb een licentie, wat gebeurt daarmee?"
1120
+
1121
+ #: app/Admin/Translations.php:639
1122
+ msgid ""
1123
+ "No worries! Nothing will happen with your license! It only resets the "
1124
+ "following:"
1125
+ msgstr ""
1126
+ "Maak je geen zorgen! Er gebeurt niets met je licentie! Het zal alleen de "
1127
+ "volgende instellingen resetten:"
1128
+
1129
+ #: app/Admin/Translations.php:642
1130
+ msgid "Your buttons"
1131
+ msgstr "Jouw knoppen"
1132
+
1133
+ #: app/Admin/Translations.php:643
1134
+ msgid "Your button groups"
1135
+ msgstr "Jouw knop groepen"
1136
+
1137
+ #: app/Admin/Translations.php:644
1138
+ msgid "All time schedules"
1139
+ msgstr "Alle tijdschema's"
1140
+
1141
+ #: app/Admin/Translations.php:645
1142
+ msgid "All page rules"
1143
+ msgstr "Alle pagina regels"
1144
+
1145
+ #: app/Admin/Translations.php:646
1146
+ msgid "All other settings of Buttonizer"
1147
+ msgstr "Alle andere instellingen van Buttonizer"
1148
+
1149
+ #: app/Admin/Translations.php:647
1150
+ msgid "All published settings"
1151
+ msgstr "Alle gepubliceerde instellingen"
1152
+
1153
+ #: app/Admin/Translations.php:652
1154
+ msgid "Okay, sounds good. What then?"
1155
+ msgstr "Okey, klinkt goed. En dan?"
1156
+
1157
+ #: app/Admin/Translations.php:653
1158
+ msgid ""
1159
+ "Buttonizer will revert back to the default settings and feel like a fresh "
1160
+ "installation. That's all."
1161
+ msgstr ""
1162
+ "Buttonizer zal gaan naar de standaard instellingen en zal zich gedragen als "
1163
+ "een nieuwe installatie. Dat is het enige."
1164
+
1165
+ #: app/Admin/Translations.php:657
1166
+ msgid "Okay, I'm ready!"
1167
+ msgstr "Okey, ik ben er klaar voor!"
1168
+
1169
+ #: app/Admin/Translations.php:658
1170
+ msgid ""
1171
+ "Press the red button below to reset Buttonizer. There will be no more "
1172
+ "warnings."
1173
+ msgstr ""
1174
+ "Druk op de rode knop hieronder om Buttonizer te resetten. Er zullen geen "
1175
+ "waarschuwingen meer volgen."
1176
+
1177
+ #: app/Admin/Translations.php:659
1178
+ msgid "Reset Buttonizer!"
1179
+ msgstr "Reset Buttonizer!"
1180
+
1181
+ #: app/Admin/Translations.php:672
1182
+ msgid "Loaded changes from previous session"
1183
+ msgstr "Aanpassingen geladen van de vorige sessie"
1184
+
1185
+ #: app/Admin/Translations.php:674
1186
+ msgid ""
1187
+ "You left the Buttonizer preview window. You will not see the changes you "
1188
+ "make."
1189
+ msgstr ""
1190
+ "Je hebt de Buttonizer voorbeeldscherm verlaten. Wijzigingen die je maakt "
1191
+ "zullen niet worden weergegeven."
1192
+
1193
+ #: app/Admin/Translations.php:675
1194
+ msgid "Return to preview"
1195
+ msgstr "Terugkeren naar voorbeeld"
1196
+
1197
+ #: app/Admin/Translations.php:676
1198
+ msgid "Desktop preview"
1199
+ msgstr "Desktop voorbeeld"
1200
+
1201
+ #: app/Admin/Translations.php:677
1202
+ msgid "Tablet preview"
1203
+ msgstr "Tablet voorbeeld"
1204
+
1205
+ #: app/Admin/Translations.php:678
1206
+ msgid "Mobile preview"
1207
+ msgstr "Mobiel voorbeeld"
1208
+
1209
+ #. translators: %s becomes version number (eg 2.4.2)
1210
+ #: app/Admin/Translations.php:683
1211
+ msgid "Version %s"
1212
+ msgstr "Versie %s"
1213
+
1214
+ #: app/Admin/Translations.php:687
1215
+ msgid "Knowledge base"
1216
+ msgstr "Kennisbank"
1217
+
1218
+ #: app/Admin/Translations.php:688
1219
+ msgid "Find out everything you need to know about Buttonizer"
1220
+ msgstr "Ontdek alles wat je moet weten over Buttonizer"
1221
+
1222
+ #: app/Admin/Translations.php:691
1223
+ msgid "Support"
1224
+ msgstr "Ondersteuning"
1225
+
1226
+ #: app/Admin/Translations.php:693
1227
+ msgid "I need support"
1228
+ msgstr "Ik heb hulp nodig"
1229
+
1230
+ #: app/Admin/Translations.php:694
1231
+ msgid "Direct support with the Buttonizer developers"
1232
+ msgstr "Directe ondersteuning van de Buttonizer developers"
1233
+
1234
+ #: app/Admin/Translations.php:697
1235
+ msgid "Community"
1236
+ msgstr "Community"
1237
+
1238
+ #: app/Admin/Translations.php:698
1239
+ msgid "Interact with other Buttonizers"
1240
+ msgstr "Communiceer met andere Buttonizers"
1241
+
1242
+ #: app/Admin/Translations.php:701
1243
+ msgid "Buttonizer tour (recommended!)"
1244
+ msgstr "Buttonizer tour (aanbevolen!)"
1245
+
1246
+ #: app/Admin/Translations.php:702
1247
+ msgid "Start the 2 minute tour"
1248
+ msgstr "Start de 2 minuten tour"
1249
+
1250
+ #: app/Admin/Translations.php:706
1251
+ msgid "Buttonizer account"
1252
+ msgstr "Buttonizer account"
1253
+
1254
+ #: app/Admin/Translations.php:708
1255
+ msgid "My Account"
1256
+ msgstr "Mijn account"
1257
+
1258
+ #: app/Admin/Translations.php:711
1259
+ msgid "Upgrade or pricing"
1260
+ msgstr "Upgraden en prijzen"
1261
+
1262
+ #: app/Admin/Translations.php:714
1263
+ msgid "Affiliation"
1264
+ msgstr "Partner worden"
1265
+
1266
+ #: app/Admin/Translations.php:715
1267
+ msgid "Earn $ by promoting Buttonizer"
1268
+ msgstr "Verdien $ voor het promoten van Buttonizer"
1269
+
1270
+ #: app/Admin/Translations.php:718
1271
+ msgid "Options"
1272
+ msgstr "Opties"
1273
+
1274
+ #: app/Admin/Translations.php:722
1275
+ msgid "Now editing:"
1276
+ msgstr "Nu aan het bewerken:"
1277
+
1278
+ #: app/Admin/Translations.php:723
1279
+ msgid "This creates a new group with 2 buttons inside."
1280
+ msgstr "Dit maakt een nieuwe groep aan met 2 knoppen."
1281
+
1282
+ #: app/Admin/Translations.php:724
1283
+ msgid "This creates a new button, outside other groups."
1284
+ msgstr "Dit maakt een knop aan, buiten de andere groepen."
1285
+
1286
+ #: app/Admin/Translations.php:725
1287
+ msgid "Learn more about groups and buttons"
1288
+ msgstr "Lees meer over groepen en knoppen"
1289
+
1290
+ #: app/Admin/Translations.php:726
1291
+ msgid "You can't drag the only button left in a group!"
1292
+ msgstr ""
1293
+ "Je kan deze knop niet slepen aangezien dit de enige knop is die over is!"
1294
+
1295
+ #: app/Admin/Translations.php:727
1296
+ msgid "Convert to group"
1297
+ msgstr "Converteren naar groep"
1298
+
1299
+ #: app/Admin/Translations.php:730
1300
+ msgid "Delete button"
1301
+ msgstr "Verwijder knop"
1302
+
1303
+ #: app/Admin/Translations.php:731
1304
+ msgid "Delete group"
1305
+ msgstr "Verwijder groep"
1306
+
1307
+ #: app/Admin/Translations.php:732
1308
+ msgid "Are you sure you want to remove this button?"
1309
+ msgstr "Weet je zeker dat je deze knop wilt verwijderen?"
1310
+
1311
+ #: app/Admin/Translations.php:733
1312
+ msgid "Are you sure you want to remove this group?"
1313
+ msgstr "Weet je zeker dat je deze groep wilt verwijderen?"
1314
+
1315
+ #. translators: %s will be replaced with a number
1316
+ #: app/Admin/Translations.php:736
1317
+ msgid ""
1318
+ "Are you sure you want to remove this full group? It contains %s buttons."
1319
+ msgstr ""
1320
+ "Weet je heel zeker dat je de gehele groep wilt verwijderen? De groep bevat "
1321
+ "%s knoppen."
1322
+
1323
+ #. translators: %s will be replaced with the button name
1324
+ #: app/Admin/Translations.php:742
1325
+ msgid "Are you sure you want to remove the button called '%s'?"
1326
+ msgstr "Weet je zeker dat je de knop '%s' wilt verwijderen?"
1327
+
1328
+ #: app/Admin/Translations.php:746
1329
+ msgid "You cannot delete this button because this the only button left."
1330
+ msgstr "Je kan deze knop niet verwijderen omdat het de enige knop is."
1331
+
1332
+ #: app/Admin/Translations.php:747
1333
+ msgid "You cannot delete this group because this the only group left."
1334
+ msgstr "Je kan deze groep niet verwijderen omdat het de enige groep is."
1335
+
1336
+ #: app/Admin/Translations.php:760
1337
+ msgid "Page rules"
1338
+ msgstr "Paginaregels"
1339
+
1340
+ #: app/Admin/Translations.php:761
1341
+ msgid "Page Rule Manager"
1342
+ msgstr "Pagina regel beheer"
1343
+
1344
+ #: app/Admin/Translations.php:762
1345
+ msgid ""
1346
+ "You can setup page rules via this window. When you add pages or definitions "
1347
+ "to this page rule, the buttons attached to this page rule will be shown or "
1348
+ "hidden depending on their settings as soon this rule is triggered."
1349
+ msgstr ""
1350
+ "Je kan pagina regels instellen via dit venster. Wanneer je pagina's of "
1351
+ "definities toevoegt aan deze pagina regel zullen knoppen die hieraan "
1352
+ "gekoppeld staan worden weergegeven of verborgen, afhankelijk van je "
1353
+ "instellingen zodra de regel wordt getriggerd."
1354
+
1355
+ #: app/Admin/Translations.php:763
1356
+ msgid ""
1357
+ "You can setup page rules that will get triggered on specific pages or user "
1358
+ "roles. You can create unlimited page rules with multiple rules to trigger."
1359
+ msgstr ""
1360
+ "Je kan pagina instellingen instellen die zullen worden getriggerd op "
1361
+ "specifieke pagina's of gebruikersrollen. Je kan een onbeperkt aantal pagina "
1362
+ "regels toevoegen met verschillende condities."
1363
+
1364
+ #: app/Admin/Translations.php:764
1365
+ msgid "Add page rule"
1366
+ msgstr "Pagina regel toevoegen"
1367
+
1368
+ #: app/Admin/Translations.php:765
1369
+ msgid "Add rule"
1370
+ msgstr "Regel toevoegen"
1371
+
1372
+ #: app/Admin/Translations.php:766
1373
+ msgid "Name your page rule:"
1374
+ msgstr "Geef de pagina regel een naam:"
1375
+
1376
+ #: app/Admin/Translations.php:768
1377
+ msgid "Show the button on any page"
1378
+ msgstr "Laat de knop op elke pagina zien"
1379
+
1380
+ #: app/Admin/Translations.php:769
1381
+ msgid "Remove page rule"
1382
+ msgstr "Pagina regel verwijderen"
1383
+
1384
+ #: app/Admin/Translations.php:773
1385
+ msgid "All conditions must meet (AND)"
1386
+ msgstr "Moet voldoen aan alle condities (EN)"
1387
+
1388
+ #: app/Admin/Translations.php:774
1389
+ msgid "At least one condition must meet (OR)"
1390
+ msgstr "Moet voldoen aan minimaal 1 conditie (OF)"
1391
+
1392
+ #: app/Admin/Translations.php:778
1393
+ msgid "and"
1394
+ msgstr "en"
1395
+
1396
+ #: app/Admin/Translations.php:779
1397
+ msgid "or"
1398
+ msgstr "of"
1399
+
1400
+ #: app/Admin/Translations.php:782
1401
+ msgid "Page"
1402
+ msgstr "Pagina"
1403
+
1404
+ #: app/Admin/Translations.php:783
1405
+ msgid "Page title contains"
1406
+ msgstr "Pagina titel bevat"
1407
+
1408
+ #: app/Admin/Translations.php:784
1409
+ msgid "Blog"
1410
+ msgstr "Blog"
1411
+
1412
+ #: app/Admin/Translations.php:785
1413
+ msgid "Blog title contains"
1414
+ msgstr "Blog titel bevat"
1415
+
1416
+ #: app/Admin/Translations.php:786
1417
+ msgid "Category"
1418
+ msgstr "Categorie"
1419
+
1420
+ #: app/Admin/Translations.php:787
1421
+ msgid "URL contains"
1422
+ msgstr "URL bevat"
1423
+
1424
+ #: app/Admin/Translations.php:788
1425
+ msgid "URL begins with"
1426
+ msgstr "URL begint met"
1427
+
1428
+ #: app/Admin/Translations.php:789
1429
+ msgid "URL ends with"
1430
+ msgstr "URL eindigt met"
1431
+
1432
+ #: app/Admin/Translations.php:790
1433
+ msgid "User has role"
1434
+ msgstr "Gebruiker heeft specifieke rol"
1435
+
1436
+ #: app/Admin/Translations.php:793
1437
+ msgid "Select one or more items."
1438
+ msgstr "Selecteer een of meer items."
1439
+
1440
+ #: app/Admin/Translations.php:794
1441
+ msgid "Are you sure you want to remove this rule?"
1442
+ msgstr "Weet je zeker dat je deze regel wilt verwijderen?"
1443
+
1444
+ #: app/Admin/Translations.php:795
1445
+ msgid "Aborted. Each page rule must keep at least one rule."
1446
+ msgstr "Afgebroken. Elke pagina regel moet in ieder geval één regel houden."
1447
+
1448
+ #: app/Admin/Translations.php:796
1449
+ msgid "You still have selected values, are you sure you want to remove this?"
1450
+ msgstr ""
1451
+ "Je hebt nog geselecteerde waarden, weet je zeker dat je deze wilt "
1452
+ "verwijderen?"
1453
+
1454
+ #: app/Admin/Translations.php:797
1455
+ msgid "Rule value"
1456
+ msgstr "Regel waarde"
1457
+
1458
+ #: app/Admin/Translations.php:808
1459
+ msgid "Time schedules"
1460
+ msgstr "Tijdschema's"
1461
+
1462
+ #: app/Admin/Translations.php:809
1463
+ msgid "Time schedule"
1464
+ msgstr "Tijdschema"
1465
+
1466
+ #: app/Admin/Translations.php:810
1467
+ msgid "Time schedule manager"
1468
+ msgstr "Tijdschema beheer"
1469
+
1470
+ #: app/Admin/Translations.php:811
1471
+ msgid ""
1472
+ "You can setup time schedules that will get triggered during specific times "
1473
+ "of a day. It is even possible to change the schedule actions for specific "
1474
+ "days. You can create an unlimited amount of schedules."
1475
+ msgstr ""
1476
+ "Je kan tijdschema's instellen die zullen worden getriggerd op specifieke "
1477
+ "tijdstippen van een dag. Het is zelfs mogelijk om de tijdschema's aan te "
1478
+ "passen voor specifieke dagen. Je kan een onbeperkt aantal tijdschema's "
1479
+ "aanmaken."
1480
+
1481
+ #: app/Admin/Translations.php:814
1482
+ msgid "Add schedule"
1483
+ msgstr "Tijdschema toevoegen"
1484
+
1485
+ #: app/Admin/Translations.php:815
1486
+ msgid "Add date"
1487
+ msgstr "Datum toevoegen"
1488
+
1489
+ #: app/Admin/Translations.php:816
1490
+ msgid "New schedule"
1491
+ msgstr "Nieuwe tijdschema"
1492
+
1493
+ #: app/Admin/Translations.php:817
1494
+ msgid "Name the new time schedule:"
1495
+ msgstr "Geef het nieuwe tijdsschema een naam:"
1496
+
1497
+ #: app/Admin/Translations.php:818
1498
+ msgid "Rename schedule to:"
1499
+ msgstr "Hernoem tijdschema naar:"
1500
+
1501
+ #: app/Admin/Translations.php:819
1502
+ msgid "Show the button at any time"
1503
+ msgstr "De knop altijd weergeven"
1504
+
1505
+ #. translators: %s becomes weekday or specific date ('Trigger on monday' or 'Trigger om January 1, 2019')
1506
+ #: app/Admin/Translations.php:822
1507
+ msgid "Trigger on %s"
1508
+ msgstr "Toon op %s"
1509
+
1510
+ #. translators: 'till' as in '10:00 till 11:30'
1511
+ #: app/Admin/Translations.php:826
1512
+ msgid "till"
1513
+ msgstr "tot"
1514
+
1515
+ #: app/Admin/Translations.php:829
1516
+ msgid "Remove schedule"
1517
+ msgstr "Tijdschema verwijderen"
1518
+
1519
+ #: app/Admin/Translations.php:830
1520
+ msgid "You must keep at least one schedule"
1521
+ msgstr "Je moet minimaal één tijdschema behouden"
1522
+
1523
+ #: app/Admin/Translations.php:831
1524
+ msgid "Current timezone:"
1525
+ msgstr "Huidige tijdzone:"
1526
+
1527
+ #: app/Admin/Translations.php:834
1528
+ msgid "Remove date"
1529
+ msgstr "Datum verwijderen"
1530
+
1531
+ #: app/Admin/Translations.php:835
1532
+ msgid "Are you sure you want to remove this date?"
1533
+ msgstr "Weet je zeker dat je deze datum wilt verwijderen?"
1534
+
1535
+ #. translators: The strings will be replaced with time (example: 10:10)
1536
+ #: app/Admin/Translations.php:842
1537
+ msgid "Sorry, the time '%1$s' was invalid. Reverting back to '%2$s'."
1538
+ msgstr ""
1539
+ "Sorry, de gekozen tijd '%1$s' is niet geldig. De tijd wordt teruggezet naar "
1540
+ "'%2$s'."
1541
+
1542
+ #. translators: The strings will be replaced with time (example: 10:10)
1543
+ #: app/Admin/Translations.php:848
1544
+ msgid ""
1545
+ "The start time '%1$s' conflicts with the end time '%2$s'. Time has been "
1546
+ "reverted to '%3$s'. Make sure you have at least 5 minutes overlap."
1547
+ msgstr ""
1548
+ "De starttijd '%1$s' heeft een conflict met de eindtijd '%2$s. De tijd is "
1549
+ "teruggezet naar '%3$s'. Zorg dat je minimaal 5 minuten speling hebt."
1550
+
1551
+ #. translators: The strings will be replaced with time (example: 10:10)
1552
+ #: app/Admin/Translations.php:854
1553
+ msgid ""
1554
+ "The end time '%1$s' conflicts with the start time '%2$s'. Time has been "
1555
+ "reverted to '%3$s'. Make sure you have at least 5 minutes overlap."
1556
+ msgstr ""
1557
+ "De eindtijd '%1$s' heeft een conflict met de starttijd '%2$s'. De tijd is "
1558
+ "teruggezet naar '%3$s'. Zorg dat je minimaal 5 minuten speling hebt."
1559
+
1560
+ #: app/Admin/Translations.php:861
1561
+ msgid "Weekdays"
1562
+ msgstr "Weekdagen"
1563
+
1564
+ #: app/Admin/Translations.php:862
1565
+ msgid "Monday"
1566
+ msgstr "maandag"
1567
+
1568
+ #: app/Admin/Translations.php:863
1569
+ msgid "Tuesday"
1570
+ msgstr "dinsdag"
1571
+
1572
+ #: app/Admin/Translations.php:864
1573
+ msgid "Wednesday"
1574
+ msgstr "woensdag"
1575
+
1576
+ #: app/Admin/Translations.php:865
1577
+ msgid "Thursday"
1578
+ msgstr "donderdag"
1579
+
1580
+ #: app/Admin/Translations.php:866
1581
+ msgid "Friday"
1582
+ msgstr "vrijdag"
1583
+
1584
+ #: app/Admin/Translations.php:867
1585
+ msgid "Saturday"
1586
+ msgstr "zaterdag"
1587
+
1588
+ #: app/Admin/Translations.php:868
1589
+ msgid "Sunday"
1590
+ msgstr "zondag"
1591
+
1592
+ #: app/Admin/Translations.php:871
1593
+ msgid "Exclude dates"
1594
+ msgstr "Uitgezonderde dagen"
1595
+
1596
+ #: app/Admin/Translations.php:872
1597
+ msgid ""
1598
+ "You are able to add specific dates to show or hide the buttons attached to "
1599
+ "this time scheme. So you can say something like this: \"<i>I am opened on "
1600
+ "January 22th until 22:00 (10 PM) because of some special evening we organize."
1601
+ "</i>\". You can add those dates and configure them. The rule will overwrite "
1602
+ "the default settings for that weekday."
1603
+ msgstr ""
1604
+ "Je hebt de mogelijkheid om specifieke data te selecteren om knoppen te "
1605
+ "verbergen of weer te geven die aan dit tijdschema gekoppeld zijn. Je kan dit "
1606
+ "bijvoorbeeld in de volgende situatie gebruiken: \"<i>Ik ben op 22 januari "
1607
+ "geopend tot 22:00 vanwege een speciaal evenement dat we organiseren.</i>\". "
1608
+ "Deze data kun je toevoegen en configureren. Deze datum zal de normale "
1609
+ "instellingen van deze dag overschrijven."
1610
+
1611
+ #: app/Admin/Translations.php:876
1612
+ msgid "Start triggering buttons from"
1613
+ msgstr "Start triggering knoppen vanaf"
1614
+
1615
+ #: app/Admin/Translations.php:877
1616
+ msgid "Click to add start date"
1617
+ msgstr "Klik om een startdatum te selecteren"
1618
+
1619
+ #. translators: The string will become a date
1620
+ #: app/Admin/Translations.php:881
1621
+ msgid ""
1622
+ "Warning! Your start date '%s' hast past the end date of this schedule. If "
1623
+ "you do not change this date the schedule will not work."
1624
+ msgstr ""
1625
+ "Waarschuwing! Je startdatum '%s' is later dan de einddatum van dit "
1626
+ "tijdschema. Als je dit niet aanpast zal de tijdschema niet werken."
1627
+
1628
+ #: app/Admin/Translations.php:888
1629
+ msgid "Stop triggering buttons after (optional)"
1630
+ msgstr "Stop triggering knoppen na (optioneel)"
1631
+
1632
+ #: app/Admin/Translations.php:889
1633
+ msgid "Click to add ending date"
1634
+ msgstr "Klik om een einddatum te selecteren"
1635
+
1636
+ #: app/Admin/Translations.php:890
1637
+ msgid "Select a date in the datepicker below"
1638
+ msgstr "Selecteer een datum in de datumkiezen hieronder"
1639
+
1640
+ #. translators: The string will become a date
1641
+ #: app/Admin/Translations.php:893
1642
+ msgid ""
1643
+ "Warning! Your end date '%s' has past the start date of this schedule. If you "
1644
+ "do not change this date the schedule will not work."
1645
+ msgstr ""
1646
+ "Waarschuwing! Je einddatum '%s' is voor de startdatum van dit tijdschema. "
1647
+ "Als je dit niet aanpast zal het tijdschema niet werken."
1648
+
1649
+ #: app/Admin/Translations.php:907
1650
+ msgid "Hi Buttonizer!"
1651
+ msgstr "Hoi Buttonizer!"
1652
+
1653
+ #: app/Admin/Translations.php:908
1654
+ msgid ""
1655
+ "It appears you've installed Buttonizer 2.0 before. But, you installed "
1656
+ "version 1.5 again later on and updated back to 2.0!"
1657
+ msgstr ""
1658
+ "Het lijkt er op dat je Buttonizer 2.0 al eens eerder hebt geïnstalleerd en "
1659
+ "toen bent teruggegaan naar versie 1.5. Nu ben je geüpdatet naar versie 2.0!"
1660
+
1661
+ #: app/Admin/Translations.php:909
1662
+ msgid ""
1663
+ "The migration progress did not run as it did back then. In order to convert "
1664
+ "your buttons, press the button below!"
1665
+ msgstr ""
1666
+ "De automatische migratie is nu niet uitgevoerd omdat dit al eerder is "
1667
+ "gebeurt. Om je knoppen opnieuw te migreren naar de nieuwste versie druk je "
1668
+ "op de knop hieronder!"
1669
+
1670
+ #. translators: %1$s and %2$s will become HTML icons as preview
1671
+ #: app/Admin/Translations.php:912
1672
+ msgid ""
1673
+ "If this window keeps popping up, even when you've tried to convert the "
1674
+ "buttons, try to reset Buttonizer. Go to the 'cog' icon (%1$s) on the top "
1675
+ "bar, select 'Options %2$s' and the tab 'Reset' and follow the instructions."
1676
+ msgstr ""
1677
+ "Wanneer dit scherm blijft opkomen, zelfs wanneer je hebt geprobeerd om de "
1678
+ "knoppen te migreren, probeer dan Buttonizer te resetten. Ga naar het "
1679
+ "'tandwiel' icoon (%1$s) in de bovenste balk. Ga dan naar 'Opties %2$s' en "
1680
+ "open het tabje 'Reset' en volg de instructies."
1681
+
1682
+ #: app/Admin/Translations.php:916
1683
+ msgid "Convert my buttons!"
1684
+ msgstr "Migreer mijn knoppen!"
1685
+
1686
+ #: app/Admin/Translations.php:928
1687
+ msgid "Premium feature"
1688
+ msgstr "Premium functie"
1689
+
1690
+ #: app/Admin/Translations.php:929
1691
+ msgid ""
1692
+ "Hi there, this function is a premium feature. We will describe what this "
1693
+ "feature will do:"
1694
+ msgstr ""
1695
+ "Hoi daar, deze functie is voor onze premium gebruikers. We zullen "
1696
+ "beschrijven wat deze functie zal doen:"
1697
+
1698
+ #: app/Admin/Translations.php:930
1699
+ msgid "What you get as a premium user:"
1700
+ msgstr "Wat je krijgt als premium gebruiker:"
1701
+
1702
+ #: app/Admin/Translations.php:931
1703
+ msgid "Go pro"
1704
+ msgstr "Wordt premium gebruiker"
1705
+
1706
+ #: app/Admin/Translations.php:934
1707
+ msgid "Show button(groups) using the advanced time schedules"
1708
+ msgstr "Toon knoppen op basis van geavanceerde tijdschema's"
1709
+
1710
+ #: app/Admin/Translations.php:935
1711
+ msgid "Show button(groups) on specific pages using advanced page rules"
1712
+ msgstr "Toon knoppen op specifieke pagina's met geavanceerde paginaregels"
1713
+
1714
+ #: app/Admin/Translations.php:936
1715
+ msgid "Create multiple button groups"
1716
+ msgstr "Mogelijkheid om meer knopgroepen te maken"
1717
+
1718
+ #: app/Admin/Translations.php:937
1719
+ msgid "Custom button background &amp; icon image"
1720
+ msgstr "Aangepaste knopachtergrond & pictogram afbeelding"
1721
+
1722
+ #: app/Admin/Translations.php:938
1723
+ msgid "Exit intent"
1724
+ msgstr "Exit intent"
1725
+
1726
+ #: app/Admin/Translations.php:939
1727
+ msgid "Show or hide on scroll"
1728
+ msgstr "Weergeven of verbergen tijdens scrollen"
1729
+
1730
+ #: app/Admin/Translations.php:940
1731
+ msgid "Show on timeout"
1732
+ msgstr "Weergeven na bepaalde tijd"
1733
+
1734
+ #: app/Admin/Translations.php:941
1735
+ msgid "Be able to set CSS class names and button IDs"
1736
+ msgstr "Gebruik maken van CSS class namen en ID's"
1737
+
1738
+ #: app/Admin/Translations.php:942
1739
+ msgid "Execute javascript on button clicks"
1740
+ msgstr "Javascript uitvoeren bij een knop klik"
1741
+
1742
+ #: app/Admin/Translations.php:946
1743
+ msgid "My first time schedule"
1744
+ msgstr "Mijn eerste tijdschema"
1745
+
1746
+ #: app/Admin/Translations.php:950
1747
+ msgid "My first page rule"
1748
+ msgstr "Mijn eerste pagina regel"
1749
+
1750
+ #: app/Admin/Translations.php:962
1751
+ msgid "Welcome to Buttonizer"
1752
+ msgstr "Welkom bij Buttonizer"
1753
+
1754
+ #. translators: %s will become 'Buttonizer'
1755
+ #: app/Admin/Translations.php:965
1756
+ msgid "We are pleased to welcome you to <b>%s</b>!"
1757
+ msgstr "We verwelkomen u graag bij <b>%s</b>!"
1758
+
1759
+ #: app/Admin/Translations.php:968
1760
+ msgid ""
1761
+ "We've created a tour for our new users. Would you like to take the tour?"
1762
+ msgstr ""
1763
+ "We hebben een tour gemaakt voor onze nieuwe gebruikers. Wil je deze tour "
1764
+ "volgen?"
1765
+
1766
+ #: app/Admin/Translations.php:969
1767
+ msgid "No thanks, I know how it works"
1768
+ msgstr "Nee bedankt, ik weet hoe het werkt"
1769
+
1770
+ #: app/Admin/Translations.php:972
1771
+ msgid "Exit tour"
1772
+ msgstr "Tour beëindigen"
1773
+
1774
+ #: app/Admin/Translations.php:975
1775
+ msgid "Welcome to the Buttonizer tour!"
1776
+ msgstr "Welkom bij de Buttonizer tour!"
1777
+
1778
+ #: app/Admin/Translations.php:976
1779
+ msgid ""
1780
+ "Start the tour and save time. Master the Buttonizer skills in only two "
1781
+ "minutes."
1782
+ msgstr ""
1783
+ "Start de tour en bespaar tijd. Beheers de Buttonizer-vaardigheden in slechts "
1784
+ "twee minuten."
1785
+
1786
+ #. translators: First %1$s will be an left-key icon, second %2$s will be right-key icon, third %3$s will be an keyboard icon
1787
+ #: app/Admin/Translations.php:979
1788
+ msgid "You can use the %1$s and %2$s keys on your %3$s to navigate."
1789
+ msgstr ""
1790
+ "Je kan gebruik maken van de %1$s en %2$s toetsen op je %3$s om te navigeren."
1791
+
1792
+ #: app/Admin/Translations.php:984
1793
+ msgid "Buttonizer bar"
1794
+ msgstr "Buttonizer balk"
1795
+
1796
+ #: app/Admin/Translations.php:985
1797
+ msgid ""
1798
+ "Manage all your Floating Action Buttons and Floating menu's in the "
1799
+ "Buttonizer bar."
1800
+ msgstr ""
1801
+ "Beheer al je Floating Action Buttons en Floating menu's in de Buttonizer "
1802
+ "balk."
1803
+
1804
+ #: app/Admin/Translations.php:988
1805
+ msgid "Preview"
1806
+ msgstr "Voorbeeld"
1807
+
1808
+ #: app/Admin/Translations.php:989
1809
+ msgid ""
1810
+ "Watch the impact of your changes in the preview pane. Your buttons will only "
1811
+ "be visible to your website visitor after you click on 'Publish'."
1812
+ msgstr ""
1813
+ "Bekijk de impact van uw wijzigingen in het voorbeeldvenster. De knoppen zijn "
1814
+ "alleen zichtbaar voor uw websitebezoeker nadat je op 'Publiceren' hebt "
1815
+ "geklikt."
1816
+
1817
+ #: app/Admin/Translations.php:992
1818
+ msgid "Top bar"
1819
+ msgstr "Bovenbalk"
1820
+
1821
+ #: app/Admin/Translations.php:993
1822
+ msgid "In the top bar, you can:"
1823
+ msgstr "In de bovenbalk kan je:"
1824
+
1825
+ #: app/Admin/Translations.php:996
1826
+ msgid "Click the <b>'X'</b> to go back to WordPress"
1827
+ msgstr "Op de <b>'X'</b>drukken om terug te gaan naar WordPress"
1828
+
1829
+ #: app/Admin/Translations.php:997
1830
+ msgid "<b>Revert</b> changes you have made"
1831
+ msgstr "Wijzigingen die je hebt aangebracht <b>ongedaan maken</b>"
1832
+
1833
+ #: app/Admin/Translations.php:998
1834
+ msgid "<b>Publish</b> all your changes"
1835
+ msgstr "<b>Publiceer</b> jouw wijzigingen"
1836
+
1837
+ #: app/Admin/Translations.php:999
1838
+ msgid "Access the <b>general settings</b>"
1839
+ msgstr "Open de <b>algemene instellingen</b>"
1840
+
1841
+ #. translators: %s will be replaced with an arrow and an ENTER (new line)
1842
+ #: app/Admin/Translations.php:1005
1843
+ msgid "Click here %s to go to Buttonizer's general settings."
1844
+ msgstr "Klik hier %s om naar Buttonizer's algemene instellingen te gaan."
1845
+
1846
+ #: app/Admin/Translations.php:1010
1847
+ msgid "Menu"
1848
+ msgstr "Menu"
1849
+
1850
+ #: app/Admin/Translations.php:1013
1851
+ msgid ""
1852
+ "Want to know what you can do with Buttonizer? Take a look at our knowledge "
1853
+ "base!"
1854
+ msgstr ""
1855
+ "Wil weten wat je nog meer kan doen met Buttonizer? Neem een kijkje in onze "
1856
+ "kennisbank!"
1857
+
1858
+ #: app/Admin/Translations.php:1014
1859
+ msgid "Visit our support page for help from us or other users."
1860
+ msgstr ""
1861
+ "Bezoek onze support pagina en vraag om hulp van ons of andere gebruikers."
1862
+
1863
+ #: app/Admin/Translations.php:1015
1864
+ msgid "Visit our community page and interact with other Buttonizer users!"
1865
+ msgstr "Bezoek onze community en communiceer met andere Buttonizer gebruikers!"
1866
+
1867
+ #: app/Admin/Translations.php:1016
1868
+ msgid "View your account details and license."
1869
+ msgstr "Bekijk je account informatie en licentie."
1870
+
1871
+ #: app/Admin/Translations.php:1017
1872
+ msgid "Upgrade or extend your license."
1873
+ msgstr "Premium kopen of verleng je licentie."
1874
+
1875
+ #: app/Admin/Translations.php:1018
1876
+ msgid "Happy with the plugin? Become an ambassador and earn some cash ;-)"
1877
+ msgstr "Vind je de plugin leuk? Wordt een ambassadeur en verdien geld ;-)"
1878
+
1879
+ #: app/Admin/Translations.php:1019
1880
+ msgid "Change general settings like icon libraries and Google Analytics."
1881
+ msgstr ""
1882
+ "Verander algemene instellingen zoals icoon bibliotheken en Google Analytics."
1883
+
1884
+ #: app/Admin/Translations.php:1023
1885
+ msgid "Click on <b>Options</b> to open Buttonizer's general settings."
1886
+ msgstr ""
1887
+ "Klik op <b>Opties</b> om de algemene instellingen te openen van Buttonizer."
1888
+
1889
+ #: app/Admin/Translations.php:1029
1890
+ msgid ""
1891
+ "In this section, you will be able to choose other icon libraries, the icon "
1892
+ "library version and whether Buttonizer should import the icon library."
1893
+ msgstr ""
1894
+ "In deze sectie is het mogelijk om andere icoon bibliotheken te kiezen, welke "
1895
+ "versie en of Buttonizer deze moet laden op je pagina's."
1896
+
1897
+ #: app/Admin/Translations.php:1030
1898
+ msgid ""
1899
+ "Want to track your button events? Place your Google Analytics code here!"
1900
+ msgstr ""
1901
+ "Wil je de knop-events bijhouden? Plaats jouw Google Analytics code hier!"
1902
+
1903
+ #: app/Admin/Translations.php:1031
1904
+ msgid "Completely reset Buttonizers data."
1905
+ msgstr "Reset alle Buttonizer data."
1906
+
1907
+ #: app/Admin/Translations.php:1035
1908
+ msgid "Button group"
1909
+ msgstr "Knop groep"
1910
+
1911
+ #: app/Admin/Translations.php:1036
1912
+ msgid "A button group contains buttons."
1913
+ msgstr "Een groep heeft knoppen."
1914
+
1915
+ #: app/Admin/Translations.php:1037
1916
+ msgid ""
1917
+ "Button groups are only visible when there are <u><b>2 or more buttons</b></"
1918
+ "u> within the group."
1919
+ msgstr ""
1920
+ "Knopgroepen zijn alleen zichtbaar wanneer er <u><b>2 of meer knoppen</b></u> "
1921
+ "zichtbaar zijn in de groep."
1922
+
1923
+ #: app/Admin/Translations.php:1038
1924
+ msgid ""
1925
+ "The buttons in a button group are dedicated to one position. Add multiple "
1926
+ "button groups if you want to create more floating action buttons dedicated "
1927
+ "to different positions."
1928
+ msgstr ""
1929
+ "De knoppen in een knopgroep zijn toegewijd aan één positie. Maak meerdere "
1930
+ "knopgroepen aan om op verschillende posities knoppen te hebben."
1931
+
1932
+ #: app/Admin/Translations.php:1041
1933
+ msgid "Click here to show group settings."
1934
+ msgstr "Klik hier om de groepsinstellingen te zien."
1935
+
1936
+ #: app/Admin/Translations.php:1044
1937
+ msgid "Group settings"
1938
+ msgstr "Groep instellingen"
1939
+
1940
+ #: app/Admin/Translations.php:1045
1941
+ msgid "Change the style of the button group here."
1942
+ msgstr "Je kan de stijl van de groep hier aanpassen."
1943
+
1944
+ #: app/Admin/Translations.php:1046
1945
+ msgid "Click on the left arrow to go back."
1946
+ msgstr "Klik op de linker pijl om terug te gaan."
1947
+
1948
+ #: app/Admin/Translations.php:1049 app/Admin/Translations.php:1102
1949
+ msgid "Position & device visibility"
1950
+ msgstr "Positie & apparaat zichtbaarheid"
1951
+
1952
+ #: app/Admin/Translations.php:1050 app/Admin/Translations.php:1103
1953
+ msgid ""
1954
+ "When you change the position of the button group it will move the whole "
1955
+ "group, including the buttons."
1956
+ msgstr ""
1957
+ "Wanneer je de positie aanpast van de knopgroep zal de volledige groep "
1958
+ "verplaatst worden, inclusief de sub-knoppen."
1959
+
1960
+ #: app/Admin/Translations.php:1051
1961
+ msgid ""
1962
+ "Choose whether you want the <b><u>whole group</u></b> to be visible on "
1963
+ "desktop or mobile devices."
1964
+ msgstr ""
1965
+ "Je kan kiezen of je de <b><u>volledige groep</u></b> zichtbaar wilt hebben "
1966
+ "op desktop of mobiele apparaten."
1967
+
1968
+ #: app/Admin/Translations.php:1055
1969
+ msgid "Setup Buttonizer to open automatically!"
1970
+ msgstr "Stel Buttonizer in om automatisch te openen!"
1971
+
1972
+ #: app/Admin/Translations.php:1056
1973
+ msgid "Change the style of your floating menu."
1974
+ msgstr "Verander de stijl van je menu."
1975
+
1976
+ #: app/Admin/Translations.php:1057
1977
+ msgid ""
1978
+ "Buttonizer will animate every 10 seconds in order to capture the visitor's "
1979
+ "attention."
1980
+ msgstr ""
1981
+ "Buttonizer zal elke 10 seconden worden geanimeerd om de aandacht van de "
1982
+ "bezoeker te krijgen."
1983
+
1984
+ #: app/Admin/Translations.php:1061
1985
+ msgid "Change the color of the button group."
1986
+ msgstr "Verander de kleur van de knopgroep."
1987
+
1988
+ #: app/Admin/Translations.php:1062
1989
+ msgid "Change the border radius of the button group!"
1990
+ msgstr "Pas de border-radius aan van de knop groep!"
1991
+
1992
+ #: app/Admin/Translations.php:1063 app/Admin/Translations.php:1068
1993
+ msgid "Choose an image to use as a background of the button group."
1994
+ msgstr ""
1995
+ "Kies een afbeelding om deze te gebruiken als achtergrond van de knopgroep."
1996
+
1997
+ #: app/Admin/Translations.php:1067
1998
+ msgid "Choose your favorite icon from your selected icon library."
1999
+ msgstr "Kies je favoriete icoon uit de geselecteerde icoon bibliotheek."
2000
+
2001
+ #: app/Admin/Translations.php:1070
2002
+ msgid "Quick setting to show or hide buttons depending device!"
2003
+ msgstr "Snel-instelling om knoppen per apparaat weer te geven!"
2004
+
2005
+ #: app/Admin/Translations.php:1072
2006
+ msgid "Click here to add a new button."
2007
+ msgstr "Klik hier om een nieuwe knop toe te voegen."
2008
+
2009
+ #. translators: %s will be replaced with 'Add button'
2010
+ #: app/Admin/Translations.php:1075
2011
+ msgid "Don't click on next... Click on '%s'"
2012
+ msgstr "Klik niet op de volgende knop, klik op '%s'"
2013
+
2014
+ #. translators: %s will be replaced with 'Add button'
2015
+ #: app/Admin/Translations.php:1080
2016
+ msgid "If you don't want to click '%s', I can do you the honor :)"
2017
+ msgstr "Als je niet op '%s' wilt klikken, dan zal ik de eer nemen!"
2018
+
2019
+ #: app/Admin/Translations.php:1083
2020
+ msgid "Here, on the left... If you won't click it, I will click it >:-)"
2021
+ msgstr ""
2022
+ "Hier, aan de linker kant... Als jij er niet op drukt, zal ik erop drukken "
2023
+ ">:-)"
2024
+
2025
+ #: app/Admin/Translations.php:1084
2026
+ msgid "Hello? Please click that button..."
2027
+ msgstr "Hallo? Klik alsjeblieft op die knop..."
2028
+
2029
+ #: app/Admin/Translations.php:1087
2030
+ msgid ""
2031
+ "You have created a new button! This is a button. Buttons are contained "
2032
+ "within a group."
2033
+ msgstr ""
2034
+ "Je hebt een nieuwe knop gemaakt! Dit is een knop. Knoppen zijn altijd een "
2035
+ "deel van een groep."
2036
+
2037
+ #: app/Admin/Translations.php:1088
2038
+ msgid "Click here to open the menu."
2039
+ msgstr "Klik om het menu te openen."
2040
+
2041
+ #: app/Admin/Translations.php:1090
2042
+ msgid "Edit the style of the button."
2043
+ msgstr "Verander de stijl van de knop."
2044
+
2045
+ #: app/Admin/Translations.php:1091
2046
+ msgid ""
2047
+ "Make the button appear/hide on certain pages and during certain times! This "
2048
+ "function is only available for our premium users."
2049
+ msgstr ""
2050
+ "Geef knoppen weer of verberg ze op basis van pagina's en tijd! Deze functie "
2051
+ "is alleen beschikbaar voor onze premium gebruikers."
2052
+
2053
+ #: app/Admin/Translations.php:1092
2054
+ msgid "Rename the button."
2055
+ msgstr "Hernoem knop."
2056
+
2057
+ #: app/Admin/Translations.php:1093
2058
+ msgid "Make a copy of the button."
2059
+ msgstr "Maak een kopie van de knop."
2060
+
2061
+ #: app/Admin/Translations.php:1094
2062
+ msgid "Delete the button."
2063
+ msgstr "Verwijder knop."
2064
+
2065
+ #: app/Admin/Translations.php:1096
2066
+ msgid "Click here to show the button settings."
2067
+ msgstr "Klik hier om de knopinstellingen te openen."
2068
+
2069
+ #: app/Admin/Translations.php:1098
2070
+ msgid "Button settings"
2071
+ msgstr "Knop instellingen"
2072
+
2073
+ #: app/Admin/Translations.php:1099
2074
+ msgid "These are the button settings. Pretty similar to the group settings."
2075
+ msgstr ""
2076
+ "Dit zijn de knop instellingen. Vrijwel gelijk aan de groepsinstellingen."
2077
+
2078
+ #: app/Admin/Translations.php:1104
2079
+ msgid ""
2080
+ "You can choose whether you want the <b><u>whole group</u></b> to be visible "
2081
+ "on desktop or mobile devices."
2082
+ msgstr ""
2083
+ "Je kan kiezen of je de <b><u>volledige groep</u></b> zichtbaar wilt hebben "
2084
+ "op desktop of mobiele apparaten."
2085
+
2086
+ #: app/Admin/Translations.php:1107
2087
+ msgid ""
2088
+ "When enabled, the button will copy the button and label style of the group."
2089
+ msgstr ""
2090
+ "Wanneer deze optie is ingeschakeld zal deze de stijl van de groep worden "
2091
+ "gebruiken."
2092
+
2093
+ #: app/Admin/Translations.php:1108
2094
+ msgid "By turning it of you can change the style of the button."
2095
+ msgstr ""
2096
+ "Door deze instelling uit te schakelen kan je de stijl van deze knop "
2097
+ "aanpassen."
2098
+
2099
+ #: app/Admin/Translations.php:1111
2100
+ msgid "Revert or save"
2101
+ msgstr "Wijzigingen ongedaan maken of opslaan"
2102
+
2103
+ #: app/Admin/Translations.php:1113
2104
+ msgid "Delete all the changes you've made this session."
2105
+ msgstr "Verwijder alle aanpassingen die je deze sessie hebt gemaakt."
2106
+
2107
+ #: app/Admin/Translations.php:1115
2108
+ msgid "Save and publish the changes you've made this session."
2109
+ msgstr "Sla de wijzigingen die je hebt gemaakt op en publiceer deze."
2110
+
2111
+ #: app/Admin/Translations.php:1118
2112
+ msgid "That was it!"
2113
+ msgstr "Dat was het!"
2114
+
2115
+ #. translators: %s will be the link to the community forums
2116
+ #: app/Admin/Translations.php:1121
2117
+ msgid ""
2118
+ "Thank you for taking the tour, that's all folks! We hope you're ready to "
2119
+ "start implementing Buttonizer to meet your goals! If you have any questions, "
2120
+ "ask them on the %s forums!"
2121
+ msgstr ""
2122
+ "Bedankt dat je deze tour hebt genomen, dat was alles! We hopen dat je er "
2123
+ "klaar voor bent om te starten met het gebruiken van Buttonizer om je doelen "
2124
+ "te bereiken! Als je nog vragen over hebt kun je terecht op onze %s!"
2125
+
2126
+ #: app/Admin/Translations.php:1124
2127
+ msgid ""
2128
+ "If you have any feedback regarding the Buttonizer Tour, we'd love to hear it!"
2129
+ msgstr ""
2130
+ "Laat het ons weten indien je feedback hebt over de Buttonizer Tour, we horen "
2131
+ "het graag!"
2132
+
2133
+ #~ msgid "Admin topbar button"
2134
+ #~ msgstr "Admin balk knop"
2135
+
2136
+ #~ msgid ""
2137
+ #~ "There are many reasons to reset Buttonizer. One could be, you ruined your "
2138
+ #~ "Buttonizer buttons, the settings, categories. Or maybe you just want to "
2139
+ #~ "try this reset button?"
2140
+ #~ msgstr ""
2141
+ #~ "Er zijn veel redenen om Buttonizer te resetten. Een daarvan kan zijn dat "
2142
+ #~ "je al je Buttonizer knoppen hebt geruïneerd, de instellingen of de "
2143
+ #~ "categorieën. Of je wilt deze reset knop eens proberen?"
2144
+
2145
+ #~ msgid "A deep dive in all the Buttonizer possibilities"
2146
+ #~ msgstr "Een diepe duik in alle Buttonizer mogelijkheden"
2147
+
2148
+ #~ msgid ""
2149
+ #~ "Always show, show on hover or hide the label. Choose for desktop and "
2150
+ #~ "mobile devices!"
2151
+ #~ msgstr ""
2152
+ #~ "Altijd de label laten zien, wanneer je er met je muis overheen gaat of "
2153
+ #~ "altijd verbergen. Kies voor mobiel & desktop!"
languages/buttonizer.pot ADDED
@@ -0,0 +1,1839 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2019 Buttonizer
2
+ # This file is distributed under the same license as the Buttonizer - Smart Floating Action Button plugin.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Buttonizer - Smart Floating Action Button 2.0.5\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/buttonizer\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: 2019-07-23T16:14:27+00:00\n"
13
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
+ "X-Generator: WP-CLI 2.2.0\n"
15
+ "X-Domain: buttonizer-multifunctional-button\n"
16
+
17
+ #. Plugin Name of the plugin
18
+ msgid "Buttonizer - Smart Floating Action Button"
19
+ msgstr ""
20
+
21
+ #. Plugin URI of the plugin
22
+ #. Author URI of the plugin
23
+ msgid "https://buttonizer.pro"
24
+ msgstr ""
25
+
26
+ #. Description of the plugin
27
+ msgid "The Buttonizer is a new way to give a boost to your number of interactions, actions and conversions from your website visitor by adding one or multiple Customizable Smart Floating Button in the corner of your website."
28
+ msgstr ""
29
+
30
+ #. Author of the plugin
31
+ msgid "Buttonizer"
32
+ msgstr ""
33
+
34
+ #: app/Admin/Admin.php:119
35
+ msgid "Buttonizer is loading..."
36
+ msgstr ""
37
+
38
+ #. Translators: First link goes to our knowledge base, the second link goes to the admin panel.
39
+ #: app/Admin/Admin.php:124
40
+ msgid "When Buttonizer does not start, <a %1$s>click here</a> to find out what is going wrong or <a %2$s>click here</a> to return to the WordPress admin dashboard."
41
+ msgstr ""
42
+
43
+ #: app/Admin/Admin.php:132
44
+ msgid "When you have a slow internet connection or slow webserver, give it a moment..."
45
+ msgstr ""
46
+
47
+ #: app/Admin/Admin.php:137
48
+ msgid "Hi there! JavaScript is disabled in your browser. Please consider to enable JavaScript in your browser to use Buttonizer."
49
+ msgstr ""
50
+
51
+ #: app/Admin/Translations.php:37
52
+ msgid "Oh, that was not what we were expecting! Something went wrong."
53
+ msgstr ""
54
+
55
+ #: app/Admin/Translations.php:41
56
+ msgid "Custom javascript error"
57
+ msgstr ""
58
+
59
+ #: app/Admin/Translations.php:42
60
+ msgid "Your custom javascript ran into an error. Read the error below:"
61
+ msgstr ""
62
+
63
+ #: app/Admin/Translations.php:47
64
+ msgid "Could not save settings"
65
+ msgstr ""
66
+
67
+ #: app/Admin/Translations.php:48
68
+ msgid "Something went wrong while saving your settings:"
69
+ msgstr ""
70
+
71
+ #: app/Admin/Translations.php:53
72
+ msgid "Only numbers allowed."
73
+ msgstr ""
74
+
75
+ #: app/Admin/Translations.php:54
76
+ msgid "For this input, only positive numbers are allowed."
77
+ msgstr ""
78
+
79
+ #: app/Admin/Translations.php:66
80
+ msgid "Invalid email address."
81
+ msgstr ""
82
+
83
+ #: app/Admin/Translations.php:67
84
+ msgid "Invalid phone number. Please only use number for your phone number. Omit any zeros, brackets or dashes when adding the phone number in international format."
85
+ msgstr ""
86
+
87
+ #: app/Admin/Translations.php:68
88
+ msgid "This field only allows numbers."
89
+ msgstr ""
90
+
91
+ #: app/Admin/Translations.php:80
92
+ msgid "Button"
93
+ msgstr ""
94
+
95
+ #: app/Admin/Translations.php:81
96
+ msgid "Group"
97
+ msgstr ""
98
+
99
+ #: app/Admin/Translations.php:83
100
+ #: app/Admin/Translations.php:314
101
+ msgid "Settings"
102
+ msgstr ""
103
+
104
+ #: app/Admin/Translations.php:85
105
+ msgid "Confirm"
106
+ msgstr ""
107
+
108
+ #: app/Admin/Translations.php:86
109
+ msgid "Search"
110
+ msgstr ""
111
+
112
+ #: app/Admin/Translations.php:88
113
+ msgid "Skip"
114
+ msgstr ""
115
+
116
+ #: app/Admin/Translations.php:91
117
+ msgid "Disable"
118
+ msgstr ""
119
+
120
+ #: app/Admin/Translations.php:92
121
+ msgid "Disabled"
122
+ msgstr ""
123
+
124
+ #: app/Admin/Translations.php:95
125
+ #: app/Admin/Translations.php:226
126
+ msgid "Save"
127
+ msgstr ""
128
+
129
+ #: app/Admin/Translations.php:96
130
+ msgid "Saving"
131
+ msgstr ""
132
+
133
+ #: app/Admin/Translations.php:97
134
+ msgid "Saving settings"
135
+ msgstr ""
136
+
137
+ #: app/Admin/Translations.php:99
138
+ msgid "Publish"
139
+ msgstr ""
140
+
141
+ #: app/Admin/Translations.php:100
142
+ msgid "Published"
143
+ msgstr ""
144
+
145
+ #: app/Admin/Translations.php:101
146
+ msgid "Publishing..."
147
+ msgstr ""
148
+
149
+ #: app/Admin/Translations.php:104
150
+ msgid "Warning"
151
+ msgstr ""
152
+
153
+ #: app/Admin/Translations.php:107
154
+ msgid "Next"
155
+ msgstr ""
156
+
157
+ #: app/Admin/Translations.php:108
158
+ msgid "Previous"
159
+ msgstr ""
160
+
161
+ #. translators: The button to save and publish the changes that were made
162
+ #: app/Admin/Translations.php:111
163
+ #: app/Admin/Translations.php:1114
164
+ msgid "Save & publish"
165
+ msgstr ""
166
+
167
+ #: app/Admin/Translations.php:122
168
+ msgid "Loading..."
169
+ msgstr ""
170
+
171
+ #: app/Admin/Translations.php:123
172
+ msgid "Loading settings..."
173
+ msgstr ""
174
+
175
+ #: app/Admin/Translations.php:124
176
+ msgid "Building bar..."
177
+ msgstr ""
178
+
179
+ #: app/Admin/Translations.php:125
180
+ msgid "Waiting for your website..."
181
+ msgstr ""
182
+
183
+ #: app/Admin/Translations.php:126
184
+ msgid "It's taking longer than usual, slow website?"
185
+ msgstr ""
186
+
187
+ #: app/Admin/Translations.php:127
188
+ msgid "Skip this step"
189
+ msgstr ""
190
+
191
+ #: app/Admin/Translations.php:128
192
+ msgid "Initializing..."
193
+ msgstr ""
194
+
195
+ #: app/Admin/Translations.php:129
196
+ msgid "Resetting..."
197
+ msgstr ""
198
+
199
+ #: app/Admin/Translations.php:130
200
+ msgid "Running migration..."
201
+ msgstr ""
202
+
203
+ #. translators: Finishing as in 'Cleaning up files'
204
+ #: app/Admin/Translations.php:132
205
+ msgid "Finishing..."
206
+ msgstr ""
207
+
208
+ #. translators: %s will be replaced with 'Add button'
209
+ #: app/Admin/Translations.php:143
210
+ #: app/Admin/Translations.php:1076
211
+ #: app/Admin/Translations.php:1081
212
+ msgid "Add button"
213
+ msgstr ""
214
+
215
+ #: app/Admin/Translations.php:144
216
+ msgid "Add group"
217
+ msgstr ""
218
+
219
+ #: app/Admin/Translations.php:147
220
+ msgid "New button"
221
+ msgstr ""
222
+
223
+ #: app/Admin/Translations.php:148
224
+ msgid "New group"
225
+ msgstr ""
226
+
227
+ #: app/Admin/Translations.php:151
228
+ msgid "Advanced settings"
229
+ msgstr ""
230
+
231
+ #: app/Admin/Translations.php:153
232
+ msgid "Text"
233
+ msgstr ""
234
+
235
+ #. translators: Base is meant as default state of the button (not hovering or clicking)
236
+ #: app/Admin/Translations.php:155
237
+ msgid "Base"
238
+ msgstr ""
239
+
240
+ #. translators: Base is meant as default state of the button (not hovering or clicking)
241
+ #: app/Admin/Translations.php:156
242
+ #: app/Admin/Translations.php:344
243
+ msgid "Icon"
244
+ msgstr ""
245
+
246
+ #: app/Admin/Translations.php:157
247
+ msgid "Search icon"
248
+ msgstr ""
249
+
250
+ #: app/Admin/Translations.php:160
251
+ #: app/Admin/Translations.php:356
252
+ msgid "Image"
253
+ msgstr ""
254
+
255
+ #: app/Admin/Translations.php:161
256
+ msgid "Select image"
257
+ msgstr ""
258
+
259
+ #: app/Admin/Translations.php:162
260
+ msgid "Change image"
261
+ msgstr ""
262
+
263
+ #: app/Admin/Translations.php:163
264
+ msgid "Click to remove this image"
265
+ msgstr ""
266
+
267
+ #: app/Admin/Translations.php:166
268
+ msgid "First button"
269
+ msgstr ""
270
+
271
+ #: app/Admin/Translations.php:167
272
+ msgid "Second button"
273
+ msgstr ""
274
+
275
+ #: app/Admin/Translations.php:170
276
+ msgid "Rename"
277
+ msgstr ""
278
+
279
+ #: app/Admin/Translations.php:173
280
+ msgid "Delete"
281
+ msgstr ""
282
+
283
+ #: app/Admin/Translations.php:176
284
+ msgid "Duplicate"
285
+ msgstr ""
286
+
287
+ #. translators: This string will be used to replace %s in 'Are you very sure you want to remove this %s?'
288
+ #: app/Admin/Translations.php:179
289
+ msgid "page rule"
290
+ msgstr ""
291
+
292
+ #. translators: This string will be used to replace %s in 'Are you very sure you want to remove this %s?'
293
+ #: app/Admin/Translations.php:181
294
+ msgid "time schedule"
295
+ msgstr ""
296
+
297
+ #. translators: Interaction is meant as hover/click state
298
+ #: app/Admin/Translations.php:184
299
+ msgid "Interaction"
300
+ msgstr ""
301
+
302
+ #. translators: Background as in background color
303
+ #: app/Admin/Translations.php:187
304
+ msgid "Background"
305
+ msgstr ""
306
+
307
+ #: app/Admin/Translations.php:190
308
+ msgid "Need help? Quick-start, tips & tricks"
309
+ msgstr ""
310
+
311
+ #: app/Admin/Translations.php:191
312
+ msgid "Need help? Visit our knowledge base!"
313
+ msgstr ""
314
+
315
+ #: app/Admin/Translations.php:193
316
+ msgid "Nothing found for:"
317
+ msgstr ""
318
+
319
+ #: app/Admin/Translations.php:194
320
+ msgid "Search icons"
321
+ msgstr ""
322
+
323
+ #. translators: %1$s will be replaced with a action name, %2$s will be replaced with a link
324
+ #: app/Admin/Translations.php:198
325
+ msgid "Need help? Learn how to use <b>%1$s</b>."
326
+ msgstr ""
327
+
328
+ #: app/Admin/Translations.php:211
329
+ msgid "OK"
330
+ msgstr ""
331
+
332
+ #: app/Admin/Translations.php:212
333
+ msgid "OK, I'll fix this"
334
+ msgstr ""
335
+
336
+ #: app/Admin/Translations.php:214
337
+ msgid "Close"
338
+ msgstr ""
339
+
340
+ #: app/Admin/Translations.php:215
341
+ msgid "Cancel"
342
+ msgstr ""
343
+
344
+ #: app/Admin/Translations.php:218
345
+ #: app/Admin/Translations.php:970
346
+ msgid "Yes please"
347
+ msgstr ""
348
+
349
+ #: app/Admin/Translations.php:219
350
+ msgid "No thank you"
351
+ msgstr ""
352
+
353
+ #: app/Admin/Translations.php:222
354
+ msgid "Dismiss"
355
+ msgstr ""
356
+
357
+ #: app/Admin/Translations.php:223
358
+ msgid "I've changed my mind"
359
+ msgstr ""
360
+
361
+ #. translators: %s will be replaced with 'time schedule / page rule'
362
+ #: app/Admin/Translations.php:231
363
+ msgid "Remove %s?"
364
+ msgstr ""
365
+
366
+ #. translators: %s will be replaced with 'time schedule / page rule'
367
+ #: app/Admin/Translations.php:236
368
+ msgid "Are you very sure you want to remove this %1$s? Buttons that are still attached to this %2$s will become visible unless you attach them to another %3$s or hide them."
369
+ msgstr ""
370
+
371
+ #. translators: %s will be replaced with 'time schedule / page rule'
372
+ #: app/Admin/Translations.php:241
373
+ msgid "There are no buttons attached to this %s. You can remove this safely."
374
+ msgstr ""
375
+
376
+ #. translators: This sentence will be used to remove a 'time schedule/page rule' and there are multiple buttons attached to it. %1$s will be a number, %2$s will be the 'time schedule / page rule'
377
+ #: app/Admin/Translations.php:246
378
+ msgid "There are <b>%1$s</b> buttons attached to this %2$s!"
379
+ msgstr ""
380
+
381
+ #. translators: This sentence will be used to remove a time schedule and there is only one button attached to it
382
+ #: app/Admin/Translations.php:251
383
+ msgid "There is <b>1</b> button attached to this %s!"
384
+ msgstr ""
385
+
386
+ #. translators: %s will be replaced with 'time schedule / page rule'
387
+ #: app/Admin/Translations.php:256
388
+ msgid "Do you want to remove this %s?"
389
+ msgstr ""
390
+
391
+ #: app/Admin/Translations.php:270
392
+ msgid "Event tracker"
393
+ msgstr ""
394
+
395
+ #: app/Admin/Translations.php:271
396
+ msgid "Event tracker (experimental)"
397
+ msgstr ""
398
+
399
+ #: app/Admin/Translations.php:294
400
+ #: app/Admin/Translations.php:1112
401
+ msgid "Revert changes"
402
+ msgstr ""
403
+
404
+ #: app/Admin/Translations.php:295
405
+ msgid "Reverting..."
406
+ msgstr ""
407
+
408
+ #: app/Admin/Translations.php:297
409
+ msgid "Are you sure you want to revert your changes?"
410
+ msgstr ""
411
+
412
+ #: app/Admin/Translations.php:298
413
+ msgid "The current changes will be overwritten by the current published buttons and settings."
414
+ msgstr ""
415
+
416
+ #: app/Admin/Translations.php:301
417
+ msgid "Could not revert settings"
418
+ msgstr ""
419
+
420
+ #: app/Admin/Translations.php:302
421
+ msgid "Something went wrong while reverting your settings."
422
+ msgstr ""
423
+
424
+ #: app/Admin/Translations.php:318
425
+ #: app/Admin/Translations.php:1054
426
+ msgid "Menu style"
427
+ msgstr ""
428
+
429
+ #: app/Admin/Translations.php:319
430
+ #: app/Admin/Translations.php: