Version Description
- [Fix] Fixed JS conflict in admin
Download this release
Release Info
Developer | GreenTreeLabs |
Plugin | Image Photo Gallery Final Tiles Grid |
Version | 3.4.5 |
Comparing to | |
See all releases |
Code changes from version 3.4.0 to 3.4.5
- FinalTilesGalleryLite.php +21 -4
- admin/add-gallery.php +35 -43
- admin/css/style.css +19 -0
- admin/edit-gallery.php +10 -10
- admin/include/edit-gallery.php +91 -79
- admin/include/fields.php +167 -167
- admin/overview.php +83 -66
- admin/photoblocks.php +0 -30
- admin/scripts/final-tiles-gallery-admin.js +2 -1
- admin/scripts/materialize.min.js +11956 -1
- admin/support.php +0 -33
- admin/tutorial.php +0 -15
- freemius/languages/freemius-da_DK.po +1285 -732
- freemius/languages/freemius-en.po +1318 -663
- freemius/languages/freemius-es_ES.po +1312 -645
FinalTilesGalleryLite.php
CHANGED
@@ -5,14 +5,26 @@
|
|
5 |
* Plugin URI: https://www.final-tiles-gallery.com/wordpress
|
6 |
* Description: Wordpress Plugin for creating responsive image galleries. By: GreenTreeLabs
|
7 |
* Author: Green Tree Labs
|
8 |
-
* Version: 3.4.
|
9 |
* Author URI: https://www.greentreelabs.net
|
|
|
|
|
10 |
*
|
11 |
*
|
12 |
*/
|
13 |
-
define( "FTGVERSION", "3.
|
14 |
/*
|
15 |
Changelog:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
3.4.0
|
17 |
Revamped UI
|
18 |
Gutenmberg blocks
|
@@ -500,7 +512,7 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
|
|
500 |
$this->define_db_tables();
|
501 |
$this->FinalTilesdb = $this->create_db_conn();
|
502 |
add_filter( 'widget_text', 'do_shortcode' );
|
503 |
-
add_action( '
|
504 |
add_action( 'wp_enqueue_scripts', array( $this, 'add_gallery_scripts' ) );
|
505 |
//add_action( 'admin_init', array($this,'gallery_admin_init') );
|
506 |
add_action( 'admin_menu', array( $this, 'add_gallery_admin_menu' ) );
|
@@ -772,7 +784,12 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
|
|
772 |
public function create_textdomain()
|
773 |
{
|
774 |
$plugin_dir = basename( dirname( __FILE__ ) );
|
775 |
-
load_plugin_textdomain( 'final-tiles-gallery', false, dirname( plugin_basename( __FILE__ ) ) . '/
|
|
|
|
|
|
|
|
|
|
|
776 |
}
|
777 |
|
778 |
//Define constants
|
5 |
* Plugin URI: https://www.final-tiles-gallery.com/wordpress
|
6 |
* Description: Wordpress Plugin for creating responsive image galleries. By: GreenTreeLabs
|
7 |
* Author: Green Tree Labs
|
8 |
+
* Version: 3.4.5
|
9 |
* Author URI: https://www.greentreelabs.net
|
10 |
+
* Text Domain: final-tiles-grid-gallery-lite
|
11 |
+
* Domain Path: /languages
|
12 |
*
|
13 |
*
|
14 |
*/
|
15 |
+
define( "FTGVERSION", "3.4.5" );
|
16 |
/*
|
17 |
Changelog:
|
18 |
+
3.4.5
|
19 |
+
Fixed JS conflict in admin
|
20 |
+
3.4.4
|
21 |
+
Fixed missing message after new gallery
|
22 |
+
3.4.3
|
23 |
+
New admin dashboard
|
24 |
+
3.4.2
|
25 |
+
Fix empty image source
|
26 |
+
3.4.1
|
27 |
+
Added Italian
|
28 |
3.4.0
|
29 |
Revamped UI
|
30 |
Gutenmberg blocks
|
512 |
$this->define_db_tables();
|
513 |
$this->FinalTilesdb = $this->create_db_conn();
|
514 |
add_filter( 'widget_text', 'do_shortcode' );
|
515 |
+
add_action( 'init', array( $this, 'create_textdomain' ) );
|
516 |
add_action( 'wp_enqueue_scripts', array( $this, 'add_gallery_scripts' ) );
|
517 |
//add_action( 'admin_init', array($this,'gallery_admin_init') );
|
518 |
add_action( 'admin_menu', array( $this, 'add_gallery_admin_menu' ) );
|
784 |
public function create_textdomain()
|
785 |
{
|
786 |
$plugin_dir = basename( dirname( __FILE__ ) );
|
787 |
+
load_plugin_textdomain( 'final-tiles-grid-gallery-lite', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
|
788 |
+
foreach ( $this->fields as $s => $section ) {
|
789 |
+
foreach ( $section["fields"] as $f => $field ) {
|
790 |
+
$this->fields[$s]["fields"][$f]["description"] = __( $this->fields[$s]["fields"][$f]["description"], 'final-tiles-grid-gallery-lite' );
|
791 |
+
}
|
792 |
+
}
|
793 |
}
|
794 |
|
795 |
//Define constants
|
admin/add-gallery.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
if ( preg_match( '#' . basename( __FILE__ ) . '#', $_SERVER['PHP_SELF'] ) ) {
|
4 |
-
die( _e( 'You are not allowed to call this page directly.', 'final-tiles-gallery' ) );
|
5 |
}
|
6 |
?>
|
7 |
|
@@ -15,7 +15,7 @@ include "header.php";
|
|
15 |
|
16 |
<div id="ftg-wizard">
|
17 |
<h2><?php
|
18 |
-
_e( 'Add new gallery wizard', 'final-tiles-gallery' );
|
19 |
?></h2>
|
20 |
|
21 |
<form action="#" method="post">
|
@@ -32,33 +32,33 @@ wp_nonce_field( 'FinalTiles_gallery', 'FinalTiles_gallery' );
|
|
32 |
<div class="input-field">
|
33 |
<input name="ftg_name" id="name" type="text" class="validate" required="required">
|
34 |
<label for="name"><?php
|
35 |
-
_e( 'Name of the gallery', 'final-tiles-gallery' );
|
36 |
?></label>
|
37 |
</div>
|
38 |
</div>
|
39 |
<div class="input-field">
|
40 |
<textarea name="ftg_description" class="materialize-textarea" id="description"></textarea>
|
41 |
<label for="description"><?php
|
42 |
-
_e( 'Description of the gallery', 'final-tiles-gallery' );
|
43 |
?></label>
|
44 |
</div>
|
45 |
</fieldset>
|
46 |
<fieldset data-step="2">
|
47 |
<h5><?php
|
48 |
-
_e( 'Choose the source of the images', 'final-tiles-gallery' );
|
49 |
?></h5>
|
50 |
<p>
|
51 |
-
<input class="with-gap" type="radio" checked="checked" name="ftg_source" id="source1" value="images" />
|
52 |
<label for="source1"><?php
|
53 |
-
_e( 'Media library', 'final-tiles-gallery' );
|
54 |
?></label>
|
55 |
</p>
|
56 |
<p>
|
57 |
<?php
|
58 |
?>
|
59 |
-
<input disabled class="with-gap" type="radio" name="ftg_source" value="*" id="source2" />
|
60 |
<label for="source2"><?php
|
61 |
-
_e( 'Recent posts', 'final-tiles-gallery' );
|
62 |
?> - <a class="in-wizard-cta" href="<?php
|
63 |
echo ftg_fs()->get_upgrade_url() ;
|
64 |
?>"><i class="mdi mdi-bell-ring-outline"></i>
|
@@ -72,9 +72,9 @@ _e( 'Unlock this feature. Upgrade Now!', 'final-tiles-grid-gallery-lite' );
|
|
72 |
<p>
|
73 |
<?php
|
74 |
?>
|
75 |
-
<input class="with-gap" disabled type="radio" name="ftg_source" value="*" id="source3" />
|
76 |
<label for="source3"><?php
|
77 |
-
_e( 'WooCommerce products', 'final-tiles-gallery' );
|
78 |
?> - <a class="in-wizard-cta" href="<?php
|
79 |
echo ftg_fs()->get_upgrade_url() ;
|
80 |
?>"><i class="mdi mdi-bell-ring-outline"></i>
|
@@ -89,7 +89,7 @@ _e( 'Unlock this feature. Upgrade Now!', 'final-tiles-grid-gallery-lite' );
|
|
89 |
<fieldset data-step="3" data-branch="images">
|
90 |
<div class="field">
|
91 |
<h5><?php
|
92 |
-
_e( 'WordPress field for captions:', 'final-tiles-gallery' );
|
93 |
?></h5>
|
94 |
<select class="browser-default" name="ftg_wp_field_caption">
|
95 |
<option value="none"> Don't use captions </option>
|
@@ -101,7 +101,7 @@ _e( 'WordPress field for captions:', 'final-tiles-gallery' );
|
|
101 |
|
102 |
<div class="field">
|
103 |
<h5><?php
|
104 |
-
_e( 'WordPress field for titles:', 'final-tiles-gallery' );
|
105 |
?></h5>
|
106 |
<select class="browser-default" name="ftg_wp_field_title">
|
107 |
<option value="none"> Don't use titles </option>
|
@@ -128,7 +128,7 @@ _e( 'WordPress field for titles:', 'final-tiles-gallery' );
|
|
128 |
-->
|
129 |
<div class="field">
|
130 |
<h5><?php
|
131 |
-
_e( 'Caption effect:', 'final-tiles-gallery' );
|
132 |
?></h5>
|
133 |
<select class="browser-default" name="ftg_captionEffect">
|
134 |
<option value="none"><?php
|
@@ -164,7 +164,7 @@ _e( 'Slide from bottom' );
|
|
164 |
<fieldset data-step="4" data-save="true">
|
165 |
<div class="field">
|
166 |
<h5><?php
|
167 |
-
_e( 'Choose the layout', 'final-tiles-gallery' );
|
168 |
?></h5>
|
169 |
<select class="browser-default" name="layout">
|
170 |
<option value="final">Final Tiles Gallery (mixed image width)</option>
|
@@ -173,7 +173,7 @@ _e( 'Choose the layout', 'final-tiles-gallery' );
|
|
173 |
</div>
|
174 |
<div class="field">
|
175 |
<h5><?php
|
176 |
-
_e( 'Choose a default image size', 'final-tiles-gallery' );
|
177 |
?></h5>
|
178 |
<select class="browser-default def_imgsize" name="def_imgsize">
|
179 |
<?php
|
@@ -183,25 +183,17 @@ foreach ( $this->list_thumbnail_sizes() as $size => $atts ) {
|
|
183 |
?>
|
184 |
</select>
|
185 |
<label><?php
|
186 |
-
_e( 'You can customize each image later', 'final-tiles-gallery' );
|
187 |
-
?></label>
|
188 |
-
<br>
|
189 |
-
<label class="shortpixel">
|
190 |
-
<img src="<?php
|
191 |
-
echo plugins_url( '', __FILE__ ) ;
|
192 |
-
?>/images/icon-shortpixel.png" alt="ShortPixel">
|
193 |
-
<a target="_blank" href="https://shortpixel.com/wp/af/J4PFT4Z72393"><?php
|
194 |
-
_e( 'We suggest you to use ShortPixel image optimization plugin for best SEO results.', 'modula-gallery' );
|
195 |
-
?></a></label>
|
196 |
</div>
|
197 |
<div class="field select-images">
|
198 |
<a class="waves-effect waves-light btn add-images">
|
199 |
<i class="fa fa-plus left"></i> <?php
|
200 |
-
_e( 'Add images', 'final-tiles-gallery' );
|
201 |
?></a>
|
202 |
<br>
|
203 |
<label><?php
|
204 |
-
_e( 'You can add images now or later.', 'final-tiles-gallery' );
|
205 |
?></label>
|
206 |
<div class="images list-group"></div>
|
207 |
</div>
|
@@ -210,55 +202,55 @@ _e( 'You can add images now or later.', 'final-tiles-gallery' );
|
|
210 |
<div class="progress loading">
|
211 |
<div class="indeterminate"></div>
|
212 |
</div>
|
213 |
-
<a class="
|
214 |
-
_e( 'Previous', 'final-tiles-gallery' );
|
215 |
?></a>
|
216 |
-
<a class="
|
217 |
-
_e( 'Next', 'final-tiles-gallery' );
|
218 |
?></a>
|
219 |
</footer>
|
220 |
</form>
|
221 |
<div id="success" class="modal">
|
222 |
<div class="modal-content">
|
223 |
<h4><?php
|
224 |
-
_e( 'Success!', 'final-tiles-gallery' );
|
225 |
?></h4>
|
226 |
<p><?php
|
227 |
-
_e( 'Your gallery', 'final-tiles-gallery' );
|
228 |
?> "<span class="gallery-name"></span>" <?php
|
229 |
-
_e( 'has been created. Copy the following shortcode:', 'final-tiles-gallery' );
|
230 |
?><br>
|
231 |
<input type="text" readonly class="code"><br>
|
232 |
<?php
|
233 |
-
_e( 'and paste it inside a post or a page. Otherwise click', 'final-tiles-gallery' );
|
234 |
?> <a class='customize'><?php
|
235 |
-
_e( 'here', 'final-tiles-gallery' );
|
236 |
?></a> <?php
|
237 |
_e( 'to customize
|
238 |
-
the gallery.', 'final-tiles-gallery' );
|
239 |
?>
|
240 |
</p>
|
241 |
</div>
|
242 |
<div class="modal-'footer">
|
243 |
<a href="?page=ftg-lite-gallery-admin" id="modal-close" class="waves-effect waves-green btn-flat modal-action"><?php
|
244 |
-
_e( 'Close', 'final-tiles-gallery' );
|
245 |
?></a>
|
246 |
</div>
|
247 |
</div>
|
248 |
<div id="error" class="modal">
|
249 |
<div class="modal-content">
|
250 |
<h4><?php
|
251 |
-
_e( 'Error!', 'final-tiles-gallery' );
|
252 |
?></h4>
|
253 |
<p><?php
|
254 |
-
_e( 'For some reason it was not possible to save your gallery, please contact', 'final-tiles-gallery' );
|
255 |
?><a href="?page=ftg-support"><?php
|
256 |
-
_e( 'support', 'final-tiles-gallery' );
|
257 |
?></a>.</p>
|
258 |
</div>
|
259 |
<div class="modal-footer">
|
260 |
<a href="?page=ftg-lite-gallery-admin" class="waves-effect waves-green btn-flat modal-action modal-close"><?php
|
261 |
-
_e( 'Close', 'final-tiles-gallery' );
|
262 |
?></a>
|
263 |
</div>
|
264 |
</div>
|
1 |
<?php
|
2 |
|
3 |
if ( preg_match( '#' . basename( __FILE__ ) . '#', $_SERVER['PHP_SELF'] ) ) {
|
4 |
+
die( _e( 'You are not allowed to call this page directly.', 'final-tiles-grid-gallery-lite' ) );
|
5 |
}
|
6 |
?>
|
7 |
|
15 |
|
16 |
<div id="ftg-wizard">
|
17 |
<h2><?php
|
18 |
+
_e( 'Add new gallery wizard', 'final-tiles-grid-gallery-lite' );
|
19 |
?></h2>
|
20 |
|
21 |
<form action="#" method="post">
|
32 |
<div class="input-field">
|
33 |
<input name="ftg_name" id="name" type="text" class="validate" required="required">
|
34 |
<label for="name"><?php
|
35 |
+
_e( 'Name of the gallery', 'final-tiles-grid-gallery-lite' );
|
36 |
?></label>
|
37 |
</div>
|
38 |
</div>
|
39 |
<div class="input-field">
|
40 |
<textarea name="ftg_description" class="materialize-textarea" id="description"></textarea>
|
41 |
<label for="description"><?php
|
42 |
+
_e( 'Description of the gallery', 'final-tiles-grid-gallery-lite' );
|
43 |
?></label>
|
44 |
</div>
|
45 |
</fieldset>
|
46 |
<fieldset data-step="2">
|
47 |
<h5><?php
|
48 |
+
_e( 'Choose the source of the images', 'final-tiles-grid-gallery-lite' );
|
49 |
?></h5>
|
50 |
<p>
|
51 |
+
<input class="with-gap browser-default" type="radio" checked="checked" name="ftg_source" id="source1" value="images" />
|
52 |
<label for="source1"><?php
|
53 |
+
_e( 'Media library', 'final-tiles-grid-gallery-lite' );
|
54 |
?></label>
|
55 |
</p>
|
56 |
<p>
|
57 |
<?php
|
58 |
?>
|
59 |
+
<input disabled class="with-gap browser-default" type="radio" name="ftg_source" value="*" id="source2" />
|
60 |
<label for="source2"><?php
|
61 |
+
_e( 'Recent posts', 'final-tiles-grid-gallery-lite' );
|
62 |
?> - <a class="in-wizard-cta" href="<?php
|
63 |
echo ftg_fs()->get_upgrade_url() ;
|
64 |
?>"><i class="mdi mdi-bell-ring-outline"></i>
|
72 |
<p>
|
73 |
<?php
|
74 |
?>
|
75 |
+
<input class="with-gap browser-default" disabled type="radio" name="ftg_source" value="*" id="source3" />
|
76 |
<label for="source3"><?php
|
77 |
+
_e( 'WooCommerce products', 'final-tiles-grid-gallery-lite' );
|
78 |
?> - <a class="in-wizard-cta" href="<?php
|
79 |
echo ftg_fs()->get_upgrade_url() ;
|
80 |
?>"><i class="mdi mdi-bell-ring-outline"></i>
|
89 |
<fieldset data-step="3" data-branch="images">
|
90 |
<div class="field">
|
91 |
<h5><?php
|
92 |
+
_e( 'WordPress field for captions:', 'final-tiles-grid-gallery-lite' );
|
93 |
?></h5>
|
94 |
<select class="browser-default" name="ftg_wp_field_caption">
|
95 |
<option value="none"> Don't use captions </option>
|
101 |
|
102 |
<div class="field">
|
103 |
<h5><?php
|
104 |
+
_e( 'WordPress field for titles:', 'final-tiles-grid-gallery-lite' );
|
105 |
?></h5>
|
106 |
<select class="browser-default" name="ftg_wp_field_title">
|
107 |
<option value="none"> Don't use titles </option>
|
128 |
-->
|
129 |
<div class="field">
|
130 |
<h5><?php
|
131 |
+
_e( 'Caption effect:', 'final-tiles-grid-gallery-lite' );
|
132 |
?></h5>
|
133 |
<select class="browser-default" name="ftg_captionEffect">
|
134 |
<option value="none"><?php
|
164 |
<fieldset data-step="4" data-save="true">
|
165 |
<div class="field">
|
166 |
<h5><?php
|
167 |
+
_e( 'Choose the layout', 'final-tiles-grid-gallery-lite' );
|
168 |
?></h5>
|
169 |
<select class="browser-default" name="layout">
|
170 |
<option value="final">Final Tiles Gallery (mixed image width)</option>
|
173 |
</div>
|
174 |
<div class="field">
|
175 |
<h5><?php
|
176 |
+
_e( 'Choose a default image size', 'final-tiles-grid-gallery-lite' );
|
177 |
?></h5>
|
178 |
<select class="browser-default def_imgsize" name="def_imgsize">
|
179 |
<?php
|
183 |
?>
|
184 |
</select>
|
185 |
<label><?php
|
186 |
+
_e( 'You can customize each image later', 'final-tiles-grid-gallery-lite' );
|
187 |
+
?></label>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
</div>
|
189 |
<div class="field select-images">
|
190 |
<a class="waves-effect waves-light btn add-images">
|
191 |
<i class="fa fa-plus left"></i> <?php
|
192 |
+
_e( 'Add images', 'final-tiles-grid-gallery-lite' );
|
193 |
?></a>
|
194 |
<br>
|
195 |
<label><?php
|
196 |
+
_e( 'You can add images now or later.', 'final-tiles-grid-gallery-lite' );
|
197 |
?></label>
|
198 |
<div class="images list-group"></div>
|
199 |
</div>
|
202 |
<div class="progress loading">
|
203 |
<div class="indeterminate"></div>
|
204 |
</div>
|
205 |
+
<a class="button prev"><?php
|
206 |
+
_e( 'Previous', 'final-tiles-grid-gallery-lite' );
|
207 |
?></a>
|
208 |
+
<a class="button components-button is-primary next"><?php
|
209 |
+
_e( 'Next', 'final-tiles-grid-gallery-lite' );
|
210 |
?></a>
|
211 |
</footer>
|
212 |
</form>
|
213 |
<div id="success" class="modal">
|
214 |
<div class="modal-content">
|
215 |
<h4><?php
|
216 |
+
_e( 'Success!', 'final-tiles-grid-gallery-lite' );
|
217 |
?></h4>
|
218 |
<p><?php
|
219 |
+
_e( 'Your gallery', 'final-tiles-grid-gallery-lite' );
|
220 |
?> "<span class="gallery-name"></span>" <?php
|
221 |
+
_e( 'has been created. Copy the following shortcode:', 'final-tiles-grid-gallery-lite' );
|
222 |
?><br>
|
223 |
<input type="text" readonly class="code"><br>
|
224 |
<?php
|
225 |
+
_e( 'and paste it inside a post or a page. Otherwise click', 'final-tiles-grid-gallery-lite' );
|
226 |
?> <a class='customize'><?php
|
227 |
+
_e( 'here', 'final-tiles-grid-gallery-lite' );
|
228 |
?></a> <?php
|
229 |
_e( 'to customize
|
230 |
+
the gallery.', 'final-tiles-grid-gallery-lite' );
|
231 |
?>
|
232 |
</p>
|
233 |
</div>
|
234 |
<div class="modal-'footer">
|
235 |
<a href="?page=ftg-lite-gallery-admin" id="modal-close" class="waves-effect waves-green btn-flat modal-action"><?php
|
236 |
+
_e( 'Close', 'final-tiles-grid-gallery-lite' );
|
237 |
?></a>
|
238 |
</div>
|
239 |
</div>
|
240 |
<div id="error" class="modal">
|
241 |
<div class="modal-content">
|
242 |
<h4><?php
|
243 |
+
_e( 'Error!', 'final-tiles-grid-gallery-lite' );
|
244 |
?></h4>
|
245 |
<p><?php
|
246 |
+
_e( 'For some reason it was not possible to save your gallery, please contact', 'final-tiles-grid-gallery-lite' );
|
247 |
?><a href="?page=ftg-support"><?php
|
248 |
+
_e( 'support', 'final-tiles-grid-gallery-lite' );
|
249 |
?></a>.</p>
|
250 |
</div>
|
251 |
<div class="modal-footer">
|
252 |
<a href="?page=ftg-lite-gallery-admin" class="waves-effect waves-green btn-flat modal-action modal-close"><?php
|
253 |
+
_e( 'Close', 'final-tiles-grid-gallery-lite' );
|
254 |
?></a>
|
255 |
</div>
|
256 |
</div>
|
admin/css/style.css
CHANGED
@@ -3,6 +3,9 @@
|
|
3 |
box-sizing: border-box !important;
|
4 |
-webkit-box-sizing: border-box !important;
|
5 |
}
|
|
|
|
|
|
|
6 |
td, th {
|
7 |
padding:10px 5px;
|
8 |
}
|
@@ -218,6 +221,15 @@ td, th {
|
|
218 |
border: 0;
|
219 |
display: none;
|
220 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
221 |
#ftg-wizard fieldset:first-of-type {
|
222 |
display: block;
|
223 |
}
|
@@ -233,6 +245,11 @@ td, th {
|
|
233 |
#ftg-wizard h1 small {
|
234 |
font-size: 12px;
|
235 |
}
|
|
|
|
|
|
|
|
|
|
|
236 |
#ftg-wizard h2 {
|
237 |
font-size: 16px;
|
238 |
text-transform: uppercase;
|
@@ -978,6 +995,8 @@ padding: 10px;
|
|
978 |
.modal h4 {
|
979 |
font-size: 14px;
|
980 |
}
|
|
|
|
|
981 |
.browser-default[type="checkbox"]:not(:checked),
|
982 |
.browser-default[type="checkbox"]:checked {
|
983 |
opacity: 1;
|
3 |
box-sizing: border-box !important;
|
4 |
-webkit-box-sizing: border-box !important;
|
5 |
}
|
6 |
+
a {
|
7 |
+
color: #0073aa;
|
8 |
+
}
|
9 |
td, th {
|
10 |
padding:10px 5px;
|
11 |
}
|
221 |
border: 0;
|
222 |
display: none;
|
223 |
}
|
224 |
+
#ftg-wizard fieldset label{
|
225 |
+
font-size: 16px;
|
226 |
+
color: #333;
|
227 |
+
}
|
228 |
+
#ftg-wizard .ftg-input {
|
229 |
+
display: inline-block;
|
230 |
+
margin-right: 20px;
|
231 |
+
margin-bottom: 10px;
|
232 |
+
}
|
233 |
#ftg-wizard fieldset:first-of-type {
|
234 |
display: block;
|
235 |
}
|
245 |
#ftg-wizard h1 small {
|
246 |
font-size: 12px;
|
247 |
}
|
248 |
+
h2.ftg-subtitle {
|
249 |
+
font-size:16px;
|
250 |
+
color:#666;
|
251 |
+
margin:0;
|
252 |
+
}
|
253 |
#ftg-wizard h2 {
|
254 |
font-size: 16px;
|
255 |
text-transform: uppercase;
|
995 |
.modal h4 {
|
996 |
font-size: 14px;
|
997 |
}
|
998 |
+
.browser-default[type="radio"]:not(:checked),
|
999 |
+
.browser-default[type="radio"]:checked,
|
1000 |
.browser-default[type="checkbox"]:not(:checked),
|
1001 |
.browser-default[type="checkbox"]:checked {
|
1002 |
opacity: 1;
|
admin/edit-gallery.php
CHANGED
@@ -35,8 +35,8 @@
|
|
35 |
(function ($) {
|
36 |
window.onload = function () {
|
37 |
|
38 |
-
$("[name=ftg_source]").val("<?php
|
39 |
-
$("[name=ftg_defaultPostImageSize]").val("<?php
|
40 |
|
41 |
FTG.init_gallery();
|
42 |
|
@@ -72,19 +72,19 @@
|
|
72 |
|
73 |
<div id="groups-modal" class="modal">
|
74 |
<div class="modal-content">
|
75 |
-
<h3><?php _e('Assign group','final-tiles-gallery')?></h3>
|
76 |
-
<p><?php _e('The group name is for internal use and it won\'t be shown, avoid space and special characters','final-tiles-gallery')?></p>
|
77 |
<input type="text" id="group-name-to-assign" />
|
78 |
</div>
|
79 |
<div class="modal-footer">
|
80 |
-
<a href="#!" data-action-assign-group class="action modal-action modal-close waves-effect waves-green btn-flat"><?php _e('Save','final-tiles-gallery')?></a>
|
81 |
-
<a href="#!" data-action="cancel" class="action modal-action modal-close waves-effect waves-yellow btn-flat"><?php _e('Cancel','final-tiles-gallery')?></a>
|
82 |
</div>
|
83 |
</div>
|
84 |
|
85 |
<div id="filters-modal" class="modal">
|
86 |
<div class="modal-content">
|
87 |
-
<h3><?php _e('Assign filters','final-tiles-gallery')?></h3>
|
88 |
|
89 |
<div id="filters-to-assign">
|
90 |
<?php foreach($filters as $filter): ?>
|
@@ -94,10 +94,10 @@
|
|
94 |
</label>
|
95 |
<?php endforeach; ?>
|
96 |
</div>
|
97 |
-
<p><?php _e("If you don't see all filters please save and reload the page",'final-tiles-gallery')?></p>
|
98 |
</div>
|
99 |
<div class="modal-footer">
|
100 |
-
<a href="#!" data-action-assign-filters class="action modal-action modal-close waves-effect waves-green btn-flat"><?php _e('Save','final-tiles-gallery')?></a>
|
101 |
-
<a href="#!" data-action="cancel" class="action modal-action modal-close waves-effect waves-yellow btn-flat"><?php _e('Cancel','final-tiles-gallery')?></a>
|
102 |
</div>
|
103 |
</div>
|
35 |
(function ($) {
|
36 |
window.onload = function () {
|
37 |
|
38 |
+
$("[name=ftg_source]").val("<?php echo $gallery->source ?>").change();
|
39 |
+
$("[name=ftg_defaultPostImageSize]").val("<?php echo $gallery->defaultPostImageSize ?>").change();
|
40 |
|
41 |
FTG.init_gallery();
|
42 |
|
72 |
|
73 |
<div id="groups-modal" class="modal">
|
74 |
<div class="modal-content">
|
75 |
+
<h3><?php _e('Assign group', 'final-tiles-grid-gallery-lite')?></h3>
|
76 |
+
<p><?php _e('The group name is for internal use and it won\'t be shown, avoid space and special characters', 'final-tiles-grid-gallery-lite')?></p>
|
77 |
<input type="text" id="group-name-to-assign" />
|
78 |
</div>
|
79 |
<div class="modal-footer">
|
80 |
+
<a href="#!" data-action-assign-group class="action modal-action modal-close waves-effect waves-green btn-flat"><?php _e('Save', 'final-tiles-grid-gallery-lite')?></a>
|
81 |
+
<a href="#!" data-action="cancel" class="action modal-action modal-close waves-effect waves-yellow btn-flat"><?php _e('Cancel', 'final-tiles-grid-gallery-lite')?></a>
|
82 |
</div>
|
83 |
</div>
|
84 |
|
85 |
<div id="filters-modal" class="modal">
|
86 |
<div class="modal-content">
|
87 |
+
<h3><?php _e('Assign filters', 'final-tiles-grid-gallery-lite')?></h3>
|
88 |
|
89 |
<div id="filters-to-assign">
|
90 |
<?php foreach($filters as $filter): ?>
|
94 |
</label>
|
95 |
<?php endforeach; ?>
|
96 |
</div>
|
97 |
+
<p><?php _e("If you don't see all filters please save and reload the page", 'final-tiles-grid-gallery-lite')?></p>
|
98 |
</div>
|
99 |
<div class="modal-footer">
|
100 |
+
<a href="#!" data-action-assign-filters class="action modal-action modal-close waves-effect waves-green btn-flat"><?php _e('Save', 'final-tiles-grid-gallery-lite')?></a>
|
101 |
+
<a href="#!" data-action="cancel" class="action modal-action modal-close waves-effect waves-yellow btn-flat"><?php _e('Cancel', 'final-tiles-grid-gallery-lite')?></a>
|
102 |
</div>
|
103 |
</div>
|
admin/include/edit-gallery.php
CHANGED
@@ -100,7 +100,7 @@ function ftgSortByName( $a, $b )
|
|
100 |
<li id="images" class="active">
|
101 |
<div class="collapsible-header">
|
102 |
<i class="fa fa-picture-o light-green darken-1 white-text ftg-section-icon"></i> <?php
|
103 |
-
_e( 'Images', 'final-tiles-gallery' );
|
104 |
?>
|
105 |
</div>
|
106 |
<div class="collapsible-body" style="display:block">
|
@@ -110,14 +110,14 @@ _e( 'Images', 'final-tiles-gallery' );
|
|
110 |
<option <?php
|
111 |
ftg_sel( $gallery, "source", "images" );
|
112 |
?> value="images"><?php
|
113 |
-
_e( 'User images', 'final-tiles-gallery' );
|
114 |
?></option>
|
115 |
<option <?php
|
116 |
ftg_sel( $gallery, "source", "posts" );
|
117 |
?> value="posts" <?php
|
118 |
echo ftg_checkDisabledOption( 'ultimate' ) ;
|
119 |
?>><?php
|
120 |
-
_e( 'Recent posts with featured image', 'final-tiles-gallery' );
|
121 |
echo ftg_printPro( 'ultimate' ) ;
|
122 |
?></option>
|
123 |
<?php
|
@@ -129,7 +129,7 @@ if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', g
|
|
129 |
?> value="woocommerce" <?php
|
130 |
echo ftg_checkDisabledOption( 'ultimate' ) ;
|
131 |
?>><?php
|
132 |
-
_e( 'WooCommerce products', 'final-tiles-gallery' );
|
133 |
echo ftg_printPro( 'ultimate' ) ;
|
134 |
?></option>
|
135 |
<?php
|
@@ -147,31 +147,31 @@ foreach ( $this->list_thumbnail_sizes() as $size => $atts ) {
|
|
147 |
|
148 |
<a href="#" class="open-media-panel button">
|
149 |
<?php
|
150 |
-
_e( 'Add images', 'final-tiles-gallery' );
|
151 |
?>
|
152 |
</a>
|
153 |
<?php
|
154 |
?>
|
155 |
<a onclick="alert('Upgrade to unlock')" href="#" class=" button"><?php
|
156 |
-
_e( 'Add video', 'final-tiles-gallery' );
|
157 |
?></a>
|
158 |
<?php
|
159 |
?>
|
160 |
<a class="button button-delete" data-remove-images href="#!"><?php
|
161 |
-
_e( 'Remove selected', 'final-tiles-gallery' );
|
162 |
?></a>
|
163 |
</div>
|
164 |
<div class="row selection-row">
|
165 |
<div class="bulk options">
|
166 |
<span>
|
167 |
<a class="button" href="#" data-action="select"><?php
|
168 |
-
_e( 'Select all', 'final-tiles-gallery' );
|
169 |
?></a>
|
170 |
<a class="button" href="#" data-action="deselect"><?php
|
171 |
-
_e( 'Deselect all', 'final-tiles-gallery' );
|
172 |
?></a>
|
173 |
<a class="button" href="#" data-action="toggle"><?php
|
174 |
-
_e( 'Toggle selection', 'final-tiles-gallery' );
|
175 |
?></a>
|
176 |
</span>
|
177 |
<span>
|
@@ -182,7 +182,7 @@ _e( 'Toggle selection', 'final-tiles-gallery' );
|
|
182 |
</span>
|
183 |
<span>
|
184 |
<a class="button" href="#" data-action="show-hide"><?php
|
185 |
-
_e( 'Toggle visibility', 'final-tiles-gallery' );
|
186 |
?></a>
|
187 |
</span>
|
188 |
</div>
|
@@ -193,7 +193,7 @@ if ( is_array( $filters ) && count( $filters ) > 1 ) {
|
|
193 |
?>
|
194 |
<div class="row filter-list">
|
195 |
<b> <?php
|
196 |
-
_e( 'Select by filter:', 'final-tiles-gallery' );
|
197 |
?> </b>
|
198 |
<span class="filter-select-control">
|
199 |
<?php
|
@@ -217,10 +217,10 @@ if ( is_array( $filters ) && count( $filters ) > 1 ) {
|
|
217 |
<div class="actions">
|
218 |
<div class="row">
|
219 |
<?php
|
220 |
-
_e( 'Add links by clicking the EDIT (pencil) button', 'final-tiles-gallery' );
|
221 |
?><br>
|
222 |
<?php
|
223 |
-
_e( 'Drag the images to change their order.', 'final-tiles-gallery' );
|
224 |
?>
|
225 |
</div>
|
226 |
</div>
|
@@ -266,7 +266,7 @@ foreach ( get_taxonomies( array(), "objects" ) as $taxonomy => $t ) {
|
|
266 |
</div>
|
267 |
<div class="row checkboxes">
|
268 |
<strong class="label"><?php
|
269 |
-
_e( 'Post type:', 'final-tiles-gallery' );
|
270 |
?></strong>
|
271 |
<span>
|
272 |
<?php
|
@@ -377,14 +377,14 @@ _e( $gallery->post_taxonomies );
|
|
377 |
?>" />
|
378 |
<div class="row checkboxes">
|
379 |
<strong class="label"><?php
|
380 |
-
_e( 'Max posts:', 'final-tiles-gallery' );
|
381 |
?></strong>
|
382 |
<span class="aside">
|
383 |
<input type="text" name="ftg_max_posts" value="<?php
|
384 |
echo $gallery->max_posts ;
|
385 |
?>">
|
386 |
<span><?php
|
387 |
-
_e( '(enter 0 for unlimited posts)', 'final-tiles-gallery' );
|
388 |
?></span>
|
389 |
</span>
|
390 |
</div>
|
@@ -396,7 +396,7 @@ if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', g
|
|
396 |
<div class="actions source-woocommerce source-panel">
|
397 |
<div class="row checkboxes">
|
398 |
<strong class="label"><?php
|
399 |
-
_e( 'Categories', 'final-tiles-gallery' );
|
400 |
?>:</strong>
|
401 |
<span>
|
402 |
<?php
|
@@ -442,9 +442,9 @@ foreach ( $ftg_fields as $section => $s ) {
|
|
442 |
?>">
|
443 |
<div class="collapsible-header">
|
444 |
<i class="<?php
|
445 |
-
|
446 |
?> light-green darken-1 white-text ftg-section-icon"></i> <?php
|
447 |
-
_e( $section );
|
448 |
?>
|
449 |
</div>
|
450 |
<div class="collapsible-body tab form-fields">
|
@@ -461,7 +461,7 @@ foreach ( $ftg_fields as $section => $s ) {
|
|
461 |
?>
|
462 |
<select class="browser-default jump">
|
463 |
<option><?php
|
464 |
-
_e( 'Jump to setting', 'final-tiles-gallery' );
|
465 |
?></option>
|
466 |
<?php
|
467 |
foreach ( $jumpFields as $f => $data ) {
|
@@ -471,10 +471,10 @@ foreach ( $ftg_fields as $section => $s ) {
|
|
471 |
if ( is_array( $data["excludeFrom"] ) && !in_array( $ftg_parent_page, $data["excludeFrom"] ) ) {
|
472 |
?>
|
473 |
<option value="<?php
|
474 |
-
_e( $data['_code'] );
|
475 |
?>">
|
476 |
<?php
|
477 |
-
_e( $data["name"] );
|
478 |
?>
|
479 |
</option>
|
480 |
<?php
|
@@ -526,7 +526,7 @@ foreach ( $ftg_fields as $section => $s ) {
|
|
526 |
?>">
|
527 |
<th scope="row">
|
528 |
<label><?php
|
529 |
-
_e( $data["name"] );
|
530 |
?>
|
531 |
<?php
|
532 |
|
@@ -547,7 +547,7 @@ foreach ( $ftg_fields as $section => $s ) {
|
|
547 |
<a data-field="<?php
|
548 |
echo $f ;
|
549 |
?>" data-tooltip="<?php
|
550 |
-
_e( 'Show help', 'final-tiles-gallery' );
|
551 |
?>" class="field-help" href="#"><i class="fa fa-question"></i></a>
|
552 |
<?php
|
553 |
}
|
@@ -578,7 +578,7 @@ foreach ( $ftg_fields as $section => $s ) {
|
|
578 |
echo ftg_fs()->get_upgrade_url() ;
|
579 |
?>"><i class="mdi mdi-bell-ring-outline"></i>
|
580 |
<?php
|
581 |
-
_e( 'Unlock this feature. Upgrade Now!', 'final-tiles-gallery' );
|
582 |
?>
|
583 |
</a>
|
584 |
</div>
|
@@ -610,7 +610,7 @@ foreach ( $ftg_fields as $section => $s ) {
|
|
610 |
?> value="<?php
|
611 |
print $v[0];
|
612 |
?>"><?php
|
613 |
-
|
614 |
echo ftg_printFieldPro( $v ) ;
|
615 |
?></option>
|
616 |
<?php
|
@@ -631,13 +631,19 @@ foreach ( $ftg_fields as $section => $s ) {
|
|
631 |
if ( class_exists( 'Everlightbox_Public' ) ) {
|
632 |
?>
|
633 |
<div class="card-panel light-green lighten-4">
|
634 |
-
<a href="?page=everlightbox_options" target="_blank"
|
|
|
|
|
635 |
</div>
|
636 |
<?php
|
637 |
} else {
|
638 |
?>
|
639 |
<div class="card-panel yellow lighten-3">
|
640 |
-
|
|
|
|
|
|
|
|
|
641 |
</div>
|
642 |
<?php
|
643 |
}
|
@@ -727,8 +733,12 @@ foreach ( $ftg_fields as $section => $s ) {
|
|
727 |
|
728 |
<div class="filters gallery-filters dynamic-table">
|
729 |
<div class="text"></div>
|
730 |
-
<a href="#" class="add button"
|
731 |
-
|
|
|
|
|
|
|
|
|
732 |
<input type="hidden" name="ftg_filters" value="<?php
|
733 |
ftg_p( $gallery, "filters" );
|
734 |
?>" />
|
@@ -756,10 +766,10 @@ foreach ( $ftg_fields as $section => $s ) {
|
|
756 |
<tr>
|
757 |
<th></th>
|
758 |
<th><?php
|
759 |
-
_e( 'Resolution', 'final-tiles-gallery' );
|
760 |
?> (px)</th>
|
761 |
<th><?php
|
762 |
-
_e( 'Size factor', 'final-tiles-gallery' );
|
763 |
?> (%)</th>
|
764 |
</tr>
|
765 |
</thead>
|
@@ -771,7 +781,7 @@ foreach ( $ftg_fields as $section => $s ) {
|
|
771 |
?>" />
|
772 |
<a href="#" class="add button">
|
773 |
<?php
|
774 |
-
_e( 'Add resolution', 'final-tiles-gallery' );
|
775 |
?></a>
|
776 |
</div>
|
777 |
<?php
|
@@ -786,7 +796,7 @@ foreach ( $ftg_fields as $section => $s ) {
|
|
786 |
if ( strlen( $data["description"] ) ) {
|
787 |
?>
|
788 |
<p><?php
|
789 |
-
|
790 |
?></p>
|
791 |
<?php
|
792 |
}
|
@@ -803,7 +813,9 @@ foreach ( $ftg_fields as $section => $s ) {
|
|
803 |
<span id="shortcode-<?php
|
804 |
print $f;
|
805 |
?>">
|
806 |
-
|
|
|
|
|
807 |
<input type="text" class="shortcode-val" readonly="" value='<?php
|
808 |
_e( FinalTilesGalleryUtils::fieldNameToShortcode( $f ) );
|
809 |
?>="<?php
|
@@ -843,21 +855,21 @@ foreach ( $ftg_fields as $section => $s ) {
|
|
843 |
<div class="col s3">
|
844 |
<?php
|
845 |
|
846 |
-
if ( ftg_fs()->is_not_paying()
|
847 |
?>
|
848 |
<ul class="collapsible gallery-actions">
|
849 |
<li class="active">
|
850 |
<div class="collapsible-header"><?php
|
851 |
-
_e( 'Upgrade', 'final-tiles-gallery' );
|
852 |
?>: <?php
|
853 |
-
_e( 'unlock features', 'final-tiles-gallery' );
|
854 |
?></div>
|
855 |
<div class="collapsible-body">
|
856 |
<div class="ftg-upsell">
|
857 |
<a href="<?php
|
858 |
echo ftg_fs()->get_upgrade_url() ;
|
859 |
?>"><i class="fa fa-hand-o-right"></i> <?php
|
860 |
-
_e( 'Upgrade', 'final-tiles-gallery' );
|
861 |
?></a>
|
862 |
</div>
|
863 |
<p>or save 30% purchasing the <strong>BUNDLE</strong>:</p>
|
@@ -865,12 +877,12 @@ if ( ftg_fs()->is_not_paying() || defined( "FTG_DEBUG" ) ) {
|
|
865 |
<a target="_blank" href="https://www.final-tiles-gallery.com/wordpress/bundle">
|
866 |
<i class="fa fa-star"></i>
|
867 |
Bundle: 30% <?php
|
868 |
-
_e( 'discount', 'final-tiles-gallery' );
|
869 |
?></a>
|
870 |
</div>
|
871 |
<p class="upsell-info">
|
872 |
<?php
|
873 |
-
_e( 'GET 3 plugins', 'final-tiles-gallery' );
|
874 |
?>: Final Tiles Gallery Ultimate + EverlightBox + PostSnippet
|
875 |
</p>
|
876 |
</div>
|
@@ -883,7 +895,7 @@ if ( ftg_fs()->is_not_paying() || defined( "FTG_DEBUG" ) ) {
|
|
883 |
<ul class="collapsible gallery-actions">
|
884 |
<li class="active">
|
885 |
<div class="collapsible-header"><?php
|
886 |
-
_e( 'Publish', 'final-tiles-gallery' );
|
887 |
?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
|
888 |
<div class="collapsible-body">
|
889 |
<div><input readonly="" type="text" value="[FinalTilesGallery id='<?php
|
@@ -891,61 +903,61 @@ print $gid;
|
|
891 |
?>']"></div>
|
892 |
<div>
|
893 |
<button data-update-gallery class="button components-button is-primary"><?php
|
894 |
-
_e( 'Save gallery', 'final-tiles-gallery' );
|
895 |
?></button>
|
896 |
</div>
|
897 |
</div>
|
898 |
</li>
|
899 |
<li>
|
900 |
<div class="collapsible-header"><?php
|
901 |
-
_e( 'Import settings', 'final-tiles-gallery' );
|
902 |
?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
|
903 |
<div class="collapsible-body">
|
904 |
<p><?php
|
905 |
-
_e( 'Paste Here the configuration code', 'final-tiles-gallery' );
|
906 |
?></p>
|
907 |
<div><textarea data-import-text></textarea></div>
|
908 |
<button data-ftg-import class="button"><i class="fa fa-upload"></i> <?php
|
909 |
-
_e( 'Import', 'final-tiles-gallery' );
|
910 |
?></button>
|
911 |
</div>
|
912 |
</li>
|
913 |
<li>
|
914 |
<div class="collapsible-header"><?php
|
915 |
-
_e( 'Export settings', 'final-tiles-gallery' );
|
916 |
?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
|
917 |
<div class="collapsible-body">
|
918 |
<p><?php
|
919 |
-
_e( 'Settings', 'final-tiles-gallery' );
|
920 |
?></p>
|
921 |
<div><textarea readonly id="ftg-export-code"></textarea></div>
|
922 |
<button id="ftg-export" class="button"><i class="fa fa-download"></i> <?php
|
923 |
-
_e( 'Refresh code', 'final-tiles-gallery' );
|
924 |
?></button>
|
925 |
</div>
|
926 |
</li>
|
927 |
<li>
|
928 |
<div class="collapsible-header"><?php
|
929 |
-
_e( 'Help', 'final-tiles-gallery' );
|
930 |
?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
|
931 |
<div class="collapsible-body">
|
932 |
<ul class="collection">
|
933 |
<li class="collection-item">
|
934 |
<i class="fa fa-chevron-right"></i>
|
935 |
<a href="http://issuu.com/greentreelabs/docs/finaltilesgridgallery-documentation?e=17859916/13243836" target="_blank"><?php
|
936 |
-
_e( 'Documentation', 'final-tiles-gallery' );
|
937 |
?></a></li>
|
938 |
<li class="collection-item">
|
939 |
<i class="fa fa-chevron-right"></i>
|
940 |
<a target="_blank" href="https://www.youtube.com/watch?v=RNT4JGjtyrs">
|
941 |
<?php
|
942 |
-
_e( 'Tutorial', 'final-tiles-gallery' );
|
943 |
?></a>
|
944 |
</li>
|
945 |
<li class="collection-item">
|
946 |
<i class="fa fa-chevron-right"></i>
|
947 |
<a href="http://www.wpbeginner.com/wp-tutorials/how-to-create-additional-image-sizes-in-wordpress/" target="_blank"><?php
|
948 |
-
_e( 'How to add additional image sizes', 'final-tiles-gallery' );
|
949 |
?></a>
|
950 |
</li>
|
951 |
</ul>
|
@@ -955,27 +967,27 @@ _e( 'How to add additional image sizes', 'final-tiles-gallery' );
|
|
955 |
<ul class="collapsible gallery-actions">
|
956 |
<li>
|
957 |
<div class="collapsible-header"><?php
|
958 |
-
_e( 'FAQ', 'final-tiles-gallery' );
|
959 |
?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
|
960 |
<div class="collapsible-body">
|
961 |
<ul class="collapsible gallery-actions">
|
962 |
<li>
|
963 |
<div class="collapsible-header"><?php
|
964 |
-
_e( 'How to add a link to a picture?', 'final-tiles-gallery' );
|
965 |
?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
|
966 |
<div class="collapsible-body">
|
967 |
<p><?php
|
968 |
-
_e( 'Click the edit (pencil) icon on the image and insert the link inside the "Link" field', 'final-tiles-gallery' );
|
969 |
?></p>
|
970 |
</div>
|
971 |
</li>
|
972 |
<li>
|
973 |
<div class="collapsible-header"><?php
|
974 |
-
_e( 'Why my images look blurry?', 'final-tiles-gallery' );
|
975 |
?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
|
976 |
<div class="collapsible-body">
|
977 |
<p><?php
|
978 |
-
_e( 'You probably have chosen a small image size. Click the edit (pencil) icon on the blurry image and choose a larger size. Remember, you can choose the size before adding the images to the gallery', 'final-tiles-gallery' );
|
979 |
?></p>
|
980 |
</div>
|
981 |
</li>
|
@@ -992,18 +1004,18 @@ _e( 'You probably have chosen a small image size. Click the edit (pencil) icon o
|
|
992 |
<div id="video-panel-model" class="modal">
|
993 |
<div class="modal-content">
|
994 |
<p><?php
|
995 |
-
_e( 'Paste here the embed code (it must be an ', 'final-tiles-gallery' );
|
996 |
?><strong><?php
|
997 |
-
_e( 'iframe', 'final-tiles-gallery' );
|
998 |
?></strong>
|
999 |
<?php
|
1000 |
-
_e( 'and it must contain the attributes', 'final-tiles-gallery' );
|
1001 |
?> <strong><?php
|
1002 |
-
_e( 'width', 'final-tiles-gallery' );
|
1003 |
?></strong> <?php
|
1004 |
-
_e( 'and', 'final-tiles-gallery' );
|
1005 |
?><strong><?php
|
1006 |
-
_e( ' height', 'final-tiles-gallery' );
|
1007 |
?></strong>)</p>
|
1008 |
<div class="text dark">
|
1009 |
<textarea></textarea>
|
@@ -1016,10 +1028,10 @@ print $gallery->filters;
|
|
1016 |
<input type="hidden" id="video-panel-action" >
|
1017 |
<div class="field buttons modal-footer">
|
1018 |
<a href="#" data-action="edit" class="action positive save modal-action modal-close waves-effect waves-green btn-flat"><?php
|
1019 |
-
_e( 'Save', 'final-tiles-gallery' );
|
1020 |
?></a>
|
1021 |
<a href="#" data-action="cancel" class="action neutral modal-action modal-close waves-effect waves-yellow btn-flat"><?php
|
1022 |
-
_e( 'Cancel', 'final-tiles-gallery' );
|
1023 |
?></a>
|
1024 |
</div>
|
1025 |
</div>
|
@@ -1029,7 +1041,7 @@ _e( 'Cancel', 'final-tiles-gallery' );
|
|
1029 |
<div id="image-panel-model" class="modal">
|
1030 |
<div class="modal-content cf">
|
1031 |
<h4><?php
|
1032 |
-
_e( 'Edit image', 'final-tiles-gallery' );
|
1033 |
?></h4>
|
1034 |
<div class="left">
|
1035 |
<div class="figure"></div>
|
@@ -1038,7 +1050,7 @@ _e( 'Edit image', 'final-tiles-gallery' );
|
|
1038 |
<div class="right-side">
|
1039 |
<div class="field">
|
1040 |
<label><?php
|
1041 |
-
_e( 'Title', 'final-tiles-gallery' );
|
1042 |
?></label>
|
1043 |
<div class="text">
|
1044 |
<textarea name="imageTitle"></textarea>
|
@@ -1046,7 +1058,7 @@ _e( 'Title', 'final-tiles-gallery' );
|
|
1046 |
</div>
|
1047 |
<div class="field">
|
1048 |
<label><?php
|
1049 |
-
_e( 'Caption', 'final-tiles-gallery' );
|
1050 |
?></label>
|
1051 |
<div class="text">
|
1052 |
<textarea name="description"></textarea>
|
@@ -1056,13 +1068,13 @@ _e( 'Caption', 'final-tiles-gallery' );
|
|
1056 |
<input class="browser-default" id="hidden-image" type="checkbox" name="hidden" value="T" />
|
1057 |
<label for="hidden-image">
|
1058 |
<?php
|
1059 |
-
_e( 'Hidden, visible only with lightbox', 'final-tiles-gallery' );
|
1060 |
?>
|
1061 |
</label>
|
1062 |
</div>
|
1063 |
<div class="field js-no-hidden">
|
1064 |
<label><?php
|
1065 |
-
_e( 'Link', 'final-tiles-gallery' );
|
1066 |
?></label>
|
1067 |
<div class="text dark">
|
1068 |
<input type="text" size="20" value="" name="link" />
|
@@ -1070,21 +1082,21 @@ _e( 'Link', 'final-tiles-gallery' );
|
|
1070 |
</div>
|
1071 |
<div class="field js-no-hidden">
|
1072 |
<label><?php
|
1073 |
-
_e( 'Link target', 'final-tiles-gallery' );
|
1074 |
?></label>
|
1075 |
<div class="text">
|
1076 |
<select name="target" class="browser-default">
|
1077 |
<option value="default"><?php
|
1078 |
-
_e( 'Default target', 'final-tiles-gallery' );
|
1079 |
?></option>
|
1080 |
<option value="_self"><?php
|
1081 |
-
_e( 'Open in same page', 'final-tiles-gallery' );
|
1082 |
?></option>
|
1083 |
<option value="_blank"><?php
|
1084 |
-
_e( 'Open in _blank', 'final-tiles-gallery' );
|
1085 |
?></option>
|
1086 |
<option value="_lightbox"><?php
|
1087 |
-
_e( 'Open in lightbox (when using a lightbox)', 'final-tiles-gallery' );
|
1088 |
?></option>
|
1089 |
</select>
|
1090 |
</div>
|
@@ -1095,10 +1107,10 @@ _e( 'Open in lightbox (when using a lightbox)', 'final-tiles-gallery' );
|
|
1095 |
</div>
|
1096 |
<div class="field buttons modal-footer">
|
1097 |
<a href="#" data-action="cancel" class="modal-close action button"><i class="mdi-content-reply"></i> <?php
|
1098 |
-
_e( 'Cancel', 'final-tiles-gallery' );
|
1099 |
?></a>
|
1100 |
<a href="#" data-action="save" class="modal-close button components-button is-primary"><i class="fa fa-save"></i> <?php
|
1101 |
-
_e( 'Save', 'final-tiles-gallery' );
|
1102 |
?></a>
|
1103 |
</div>
|
1104 |
</div>
|
100 |
<li id="images" class="active">
|
101 |
<div class="collapsible-header">
|
102 |
<i class="fa fa-picture-o light-green darken-1 white-text ftg-section-icon"></i> <?php
|
103 |
+
_e( 'Images', 'final-tiles-grid-gallery-lite' );
|
104 |
?>
|
105 |
</div>
|
106 |
<div class="collapsible-body" style="display:block">
|
110 |
<option <?php
|
111 |
ftg_sel( $gallery, "source", "images" );
|
112 |
?> value="images"><?php
|
113 |
+
_e( 'User images', 'final-tiles-grid-gallery-lite' );
|
114 |
?></option>
|
115 |
<option <?php
|
116 |
ftg_sel( $gallery, "source", "posts" );
|
117 |
?> value="posts" <?php
|
118 |
echo ftg_checkDisabledOption( 'ultimate' ) ;
|
119 |
?>><?php
|
120 |
+
_e( 'Recent posts with featured image', 'final-tiles-grid-gallery-lite' );
|
121 |
echo ftg_printPro( 'ultimate' ) ;
|
122 |
?></option>
|
123 |
<?php
|
129 |
?> value="woocommerce" <?php
|
130 |
echo ftg_checkDisabledOption( 'ultimate' ) ;
|
131 |
?>><?php
|
132 |
+
_e( 'WooCommerce products', 'final-tiles-grid-gallery-lite' );
|
133 |
echo ftg_printPro( 'ultimate' ) ;
|
134 |
?></option>
|
135 |
<?php
|
147 |
|
148 |
<a href="#" class="open-media-panel button">
|
149 |
<?php
|
150 |
+
_e( 'Add images', 'final-tiles-grid-gallery-lite' );
|
151 |
?>
|
152 |
</a>
|
153 |
<?php
|
154 |
?>
|
155 |
<a onclick="alert('Upgrade to unlock')" href="#" class=" button"><?php
|
156 |
+
_e( 'Add video', 'final-tiles-grid-gallery-lite' );
|
157 |
?></a>
|
158 |
<?php
|
159 |
?>
|
160 |
<a class="button button-delete" data-remove-images href="#!"><?php
|
161 |
+
_e( 'Remove selected', 'final-tiles-grid-gallery-lite' );
|
162 |
?></a>
|
163 |
</div>
|
164 |
<div class="row selection-row">
|
165 |
<div class="bulk options">
|
166 |
<span>
|
167 |
<a class="button" href="#" data-action="select"><?php
|
168 |
+
_e( 'Select all', 'final-tiles-grid-gallery-lite' );
|
169 |
?></a>
|
170 |
<a class="button" href="#" data-action="deselect"><?php
|
171 |
+
_e( 'Deselect all', 'final-tiles-grid-gallery-lite' );
|
172 |
?></a>
|
173 |
<a class="button" href="#" data-action="toggle"><?php
|
174 |
+
_e( 'Toggle selection', 'final-tiles-grid-gallery-lite' );
|
175 |
?></a>
|
176 |
</span>
|
177 |
<span>
|
182 |
</span>
|
183 |
<span>
|
184 |
<a class="button" href="#" data-action="show-hide"><?php
|
185 |
+
_e( 'Toggle visibility', 'final-tiles-grid-gallery-lite' );
|
186 |
?></a>
|
187 |
</span>
|
188 |
</div>
|
193 |
?>
|
194 |
<div class="row filter-list">
|
195 |
<b> <?php
|
196 |
+
_e( 'Select by filter:', 'final-tiles-grid-gallery-lite' );
|
197 |
?> </b>
|
198 |
<span class="filter-select-control">
|
199 |
<?php
|
217 |
<div class="actions">
|
218 |
<div class="row">
|
219 |
<?php
|
220 |
+
_e( 'Add links by clicking the EDIT (pencil) button', 'final-tiles-grid-gallery-lite' );
|
221 |
?><br>
|
222 |
<?php
|
223 |
+
_e( 'Drag the images to change their order.', 'final-tiles-grid-gallery-lite' );
|
224 |
?>
|
225 |
</div>
|
226 |
</div>
|
266 |
</div>
|
267 |
<div class="row checkboxes">
|
268 |
<strong class="label"><?php
|
269 |
+
_e( 'Post type:', 'final-tiles-grid-gallery-lite' );
|
270 |
?></strong>
|
271 |
<span>
|
272 |
<?php
|
377 |
?>" />
|
378 |
<div class="row checkboxes">
|
379 |
<strong class="label"><?php
|
380 |
+
_e( 'Max posts:', 'final-tiles-grid-gallery-lite' );
|
381 |
?></strong>
|
382 |
<span class="aside">
|
383 |
<input type="text" name="ftg_max_posts" value="<?php
|
384 |
echo $gallery->max_posts ;
|
385 |
?>">
|
386 |
<span><?php
|
387 |
+
_e( '(enter 0 for unlimited posts)', 'final-tiles-grid-gallery-lite' );
|
388 |
?></span>
|
389 |
</span>
|
390 |
</div>
|
396 |
<div class="actions source-woocommerce source-panel">
|
397 |
<div class="row checkboxes">
|
398 |
<strong class="label"><?php
|
399 |
+
_e( 'Categories', 'final-tiles-grid-gallery-lite' );
|
400 |
?>:</strong>
|
401 |
<span>
|
402 |
<?php
|
442 |
?>">
|
443 |
<div class="collapsible-header">
|
444 |
<i class="<?php
|
445 |
+
echo $s["icon"] ;
|
446 |
?> light-green darken-1 white-text ftg-section-icon"></i> <?php
|
447 |
+
_e( $section, 'final-tiles-grid-gallery-lite' );
|
448 |
?>
|
449 |
</div>
|
450 |
<div class="collapsible-body tab form-fields">
|
461 |
?>
|
462 |
<select class="browser-default jump">
|
463 |
<option><?php
|
464 |
+
_e( 'Jump to setting', 'final-tiles-grid-gallery-lite' );
|
465 |
?></option>
|
466 |
<?php
|
467 |
foreach ( $jumpFields as $f => $data ) {
|
471 |
if ( is_array( $data["excludeFrom"] ) && !in_array( $ftg_parent_page, $data["excludeFrom"] ) ) {
|
472 |
?>
|
473 |
<option value="<?php
|
474 |
+
_e( $data['_code'], 'final-tiles-grid-gallery-lite' );
|
475 |
?>">
|
476 |
<?php
|
477 |
+
_e( $data["name"], 'final-tiles-grid-gallery-lite' );
|
478 |
?>
|
479 |
</option>
|
480 |
<?php
|
526 |
?>">
|
527 |
<th scope="row">
|
528 |
<label><?php
|
529 |
+
_e( $data["name"], 'final-tiles-grid-gallery-lite' );
|
530 |
?>
|
531 |
<?php
|
532 |
|
547 |
<a data-field="<?php
|
548 |
echo $f ;
|
549 |
?>" data-tooltip="<?php
|
550 |
+
_e( 'Show help', 'final-tiles-grid-gallery-lite' );
|
551 |
?>" class="field-help" href="#"><i class="fa fa-question"></i></a>
|
552 |
<?php
|
553 |
}
|
578 |
echo ftg_fs()->get_upgrade_url() ;
|
579 |
?>"><i class="mdi mdi-bell-ring-outline"></i>
|
580 |
<?php
|
581 |
+
_e( 'Unlock this feature. Upgrade Now!', 'final-tiles-grid-gallery-lite' );
|
582 |
?>
|
583 |
</a>
|
584 |
</div>
|
610 |
?> value="<?php
|
611 |
print $v[0];
|
612 |
?>"><?php
|
613 |
+
_e( $v[1], 'final-tiles-grid-gallery-lite' );
|
614 |
echo ftg_printFieldPro( $v ) ;
|
615 |
?></option>
|
616 |
<?php
|
631 |
if ( class_exists( 'Everlightbox_Public' ) ) {
|
632 |
?>
|
633 |
<div class="card-panel light-green lighten-4">
|
634 |
+
<a href="?page=everlightbox_options" target="_blank"><?php
|
635 |
+
_e( 'EverlightBox settings', 'final-tiles-grid-gallery-lite' );
|
636 |
+
?></a>
|
637 |
</div>
|
638 |
<?php
|
639 |
} else {
|
640 |
?>
|
641 |
<div class="card-panel yellow lighten-3">
|
642 |
+
<?php
|
643 |
+
_e( 'EverlightBox not installed', 'final-tiles-grid-gallery-lite' );
|
644 |
+
?>. <a target="_blank" class="open-checkout" href="https://checkout.freemius.com/mode/dialog/plugin/1981/plan/2954/"><?php
|
645 |
+
_e( 'Purchase', 'final-tiles-grid-gallery-lite' );
|
646 |
+
?></a>
|
647 |
</div>
|
648 |
<?php
|
649 |
}
|
733 |
|
734 |
<div class="filters gallery-filters dynamic-table">
|
735 |
<div class="text"></div>
|
736 |
+
<a href="#" class="add button"><?php
|
737 |
+
_e( 'Add filter', 'final-tiles-grid-gallery-lite' );
|
738 |
+
?></a>
|
739 |
+
<a href="#" class="reset-default-filter button"><?php
|
740 |
+
_e( 'Reset selected filter', 'final-tiles-grid-gallery-lite' );
|
741 |
+
?></a>
|
742 |
<input type="hidden" name="ftg_filters" value="<?php
|
743 |
ftg_p( $gallery, "filters" );
|
744 |
?>" />
|
766 |
<tr>
|
767 |
<th></th>
|
768 |
<th><?php
|
769 |
+
_e( 'Resolution', 'final-tiles-grid-gallery-lite' );
|
770 |
?> (px)</th>
|
771 |
<th><?php
|
772 |
+
_e( 'Size factor', 'final-tiles-grid-gallery-lite' );
|
773 |
?> (%)</th>
|
774 |
</tr>
|
775 |
</thead>
|
781 |
?>" />
|
782 |
<a href="#" class="add button">
|
783 |
<?php
|
784 |
+
_e( 'Add resolution', 'final-tiles-grid-gallery-lite' );
|
785 |
?></a>
|
786 |
</div>
|
787 |
<?php
|
796 |
if ( strlen( $data["description"] ) ) {
|
797 |
?>
|
798 |
<p><?php
|
799 |
+
echo $data["description"] ;
|
800 |
?></p>
|
801 |
<?php
|
802 |
}
|
813 |
<span id="shortcode-<?php
|
814 |
print $f;
|
815 |
?>">
|
816 |
+
<?php
|
817 |
+
_e( 'Shortcode attribute', 'final-tiles-grid-gallery-lite' );
|
818 |
+
?>:
|
819 |
<input type="text" class="shortcode-val" readonly="" value='<?php
|
820 |
_e( FinalTilesGalleryUtils::fieldNameToShortcode( $f ) );
|
821 |
?>="<?php
|
855 |
<div class="col s3">
|
856 |
<?php
|
857 |
|
858 |
+
if ( ftg_fs()->is_not_paying() ) {
|
859 |
?>
|
860 |
<ul class="collapsible gallery-actions">
|
861 |
<li class="active">
|
862 |
<div class="collapsible-header"><?php
|
863 |
+
_e( 'Upgrade', 'final-tiles-grid-gallery-lite' );
|
864 |
?>: <?php
|
865 |
+
_e( 'unlock features', 'final-tiles-grid-gallery-lite' );
|
866 |
?></div>
|
867 |
<div class="collapsible-body">
|
868 |
<div class="ftg-upsell">
|
869 |
<a href="<?php
|
870 |
echo ftg_fs()->get_upgrade_url() ;
|
871 |
?>"><i class="fa fa-hand-o-right"></i> <?php
|
872 |
+
_e( 'Upgrade', 'final-tiles-grid-gallery-lite' );
|
873 |
?></a>
|
874 |
</div>
|
875 |
<p>or save 30% purchasing the <strong>BUNDLE</strong>:</p>
|
877 |
<a target="_blank" href="https://www.final-tiles-gallery.com/wordpress/bundle">
|
878 |
<i class="fa fa-star"></i>
|
879 |
Bundle: 30% <?php
|
880 |
+
_e( 'discount', 'final-tiles-grid-gallery-lite' );
|
881 |
?></a>
|
882 |
</div>
|
883 |
<p class="upsell-info">
|
884 |
<?php
|
885 |
+
_e( 'GET 3 plugins', 'final-tiles-grid-gallery-lite' );
|
886 |
?>: Final Tiles Gallery Ultimate + EverlightBox + PostSnippet
|
887 |
</p>
|
888 |
</div>
|
895 |
<ul class="collapsible gallery-actions">
|
896 |
<li class="active">
|
897 |
<div class="collapsible-header"><?php
|
898 |
+
_e( 'Publish', 'final-tiles-grid-gallery-lite' );
|
899 |
?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
|
900 |
<div class="collapsible-body">
|
901 |
<div><input readonly="" type="text" value="[FinalTilesGallery id='<?php
|
903 |
?>']"></div>
|
904 |
<div>
|
905 |
<button data-update-gallery class="button components-button is-primary"><?php
|
906 |
+
_e( 'Save gallery', 'final-tiles-grid-gallery-lite' );
|
907 |
?></button>
|
908 |
</div>
|
909 |
</div>
|
910 |
</li>
|
911 |
<li>
|
912 |
<div class="collapsible-header"><?php
|
913 |
+
_e( 'Import settings', 'final-tiles-grid-gallery-lite' );
|
914 |
?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
|
915 |
<div class="collapsible-body">
|
916 |
<p><?php
|
917 |
+
_e( 'Paste Here the configuration code', 'final-tiles-grid-gallery-lite' );
|
918 |
?></p>
|
919 |
<div><textarea data-import-text></textarea></div>
|
920 |
<button data-ftg-import class="button"><i class="fa fa-upload"></i> <?php
|
921 |
+
_e( 'Import', 'final-tiles-grid-gallery-lite' );
|
922 |
?></button>
|
923 |
</div>
|
924 |
</li>
|
925 |
<li>
|
926 |
<div class="collapsible-header"><?php
|
927 |
+
_e( 'Export settings', 'final-tiles-grid-gallery-lite' );
|
928 |
?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
|
929 |
<div class="collapsible-body">
|
930 |
<p><?php
|
931 |
+
_e( 'Settings', 'final-tiles-grid-gallery-lite' );
|
932 |
?></p>
|
933 |
<div><textarea readonly id="ftg-export-code"></textarea></div>
|
934 |
<button id="ftg-export" class="button"><i class="fa fa-download"></i> <?php
|
935 |
+
_e( 'Refresh code', 'final-tiles-grid-gallery-lite' );
|
936 |
?></button>
|
937 |
</div>
|
938 |
</li>
|
939 |
<li>
|
940 |
<div class="collapsible-header"><?php
|
941 |
+
_e( 'Help', 'final-tiles-grid-gallery-lite' );
|
942 |
?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
|
943 |
<div class="collapsible-body">
|
944 |
<ul class="collection">
|
945 |
<li class="collection-item">
|
946 |
<i class="fa fa-chevron-right"></i>
|
947 |
<a href="http://issuu.com/greentreelabs/docs/finaltilesgridgallery-documentation?e=17859916/13243836" target="_blank"><?php
|
948 |
+
_e( 'Documentation', 'final-tiles-grid-gallery-lite' );
|
949 |
?></a></li>
|
950 |
<li class="collection-item">
|
951 |
<i class="fa fa-chevron-right"></i>
|
952 |
<a target="_blank" href="https://www.youtube.com/watch?v=RNT4JGjtyrs">
|
953 |
<?php
|
954 |
+
_e( 'Tutorial', 'final-tiles-grid-gallery-lite' );
|
955 |
?></a>
|
956 |
</li>
|
957 |
<li class="collection-item">
|
958 |
<i class="fa fa-chevron-right"></i>
|
959 |
<a href="http://www.wpbeginner.com/wp-tutorials/how-to-create-additional-image-sizes-in-wordpress/" target="_blank"><?php
|
960 |
+
_e( 'How to add additional image sizes', 'final-tiles-grid-gallery-lite' );
|
961 |
?></a>
|
962 |
</li>
|
963 |
</ul>
|
967 |
<ul class="collapsible gallery-actions">
|
968 |
<li>
|
969 |
<div class="collapsible-header"><?php
|
970 |
+
_e( 'FAQ', 'final-tiles-grid-gallery-lite' );
|
971 |
?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
|
972 |
<div class="collapsible-body">
|
973 |
<ul class="collapsible gallery-actions">
|
974 |
<li>
|
975 |
<div class="collapsible-header"><?php
|
976 |
+
_e( 'How to add a link to a picture?', 'final-tiles-grid-gallery-lite' );
|
977 |
?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
|
978 |
<div class="collapsible-body">
|
979 |
<p><?php
|
980 |
+
_e( 'Click the edit (pencil) icon on the image and insert the link inside the "Link" field', 'final-tiles-grid-gallery-lite' );
|
981 |
?></p>
|
982 |
</div>
|
983 |
</li>
|
984 |
<li>
|
985 |
<div class="collapsible-header"><?php
|
986 |
+
_e( 'Why my images look blurry?', 'final-tiles-grid-gallery-lite' );
|
987 |
?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
|
988 |
<div class="collapsible-body">
|
989 |
<p><?php
|
990 |
+
_e( 'You probably have chosen a small image size. Click the edit (pencil) icon on the blurry image and choose a larger size. Remember, you can choose the size before adding the images to the gallery', 'final-tiles-grid-gallery-lite' );
|
991 |
?></p>
|
992 |
</div>
|
993 |
</li>
|
1004 |
<div id="video-panel-model" class="modal">
|
1005 |
<div class="modal-content">
|
1006 |
<p><?php
|
1007 |
+
_e( 'Paste here the embed code (it must be an ', 'final-tiles-grid-gallery-lite' );
|
1008 |
?><strong><?php
|
1009 |
+
_e( 'iframe', 'final-tiles-grid-gallery-lite' );
|
1010 |
?></strong>
|
1011 |
<?php
|
1012 |
+
_e( 'and it must contain the attributes', 'final-tiles-grid-gallery-lite' );
|
1013 |
?> <strong><?php
|
1014 |
+
_e( 'width', 'final-tiles-grid-gallery-lite' );
|
1015 |
?></strong> <?php
|
1016 |
+
_e( 'and', 'final-tiles-grid-gallery-lite' );
|
1017 |
?><strong><?php
|
1018 |
+
_e( ' height', 'final-tiles-grid-gallery-lite' );
|
1019 |
?></strong>)</p>
|
1020 |
<div class="text dark">
|
1021 |
<textarea></textarea>
|
1028 |
<input type="hidden" id="video-panel-action" >
|
1029 |
<div class="field buttons modal-footer">
|
1030 |
<a href="#" data-action="edit" class="action positive save modal-action modal-close waves-effect waves-green btn-flat"><?php
|
1031 |
+
_e( 'Save', 'final-tiles-grid-gallery-lite' );
|
1032 |
?></a>
|
1033 |
<a href="#" data-action="cancel" class="action neutral modal-action modal-close waves-effect waves-yellow btn-flat"><?php
|
1034 |
+
_e( 'Cancel', 'final-tiles-grid-gallery-lite' );
|
1035 |
?></a>
|
1036 |
</div>
|
1037 |
</div>
|
1041 |
<div id="image-panel-model" class="modal">
|
1042 |
<div class="modal-content cf">
|
1043 |
<h4><?php
|
1044 |
+
_e( 'Edit image', 'final-tiles-grid-gallery-lite' );
|
1045 |
?></h4>
|
1046 |
<div class="left">
|
1047 |
<div class="figure"></div>
|
1050 |
<div class="right-side">
|
1051 |
<div class="field">
|
1052 |
<label><?php
|
1053 |
+
_e( 'Title', 'final-tiles-grid-gallery-lite' );
|
1054 |
?></label>
|
1055 |
<div class="text">
|
1056 |
<textarea name="imageTitle"></textarea>
|
1058 |
</div>
|
1059 |
<div class="field">
|
1060 |
<label><?php
|
1061 |
+
_e( 'Caption', 'final-tiles-grid-gallery-lite' );
|
1062 |
?></label>
|
1063 |
<div class="text">
|
1064 |
<textarea name="description"></textarea>
|
1068 |
<input class="browser-default" id="hidden-image" type="checkbox" name="hidden" value="T" />
|
1069 |
<label for="hidden-image">
|
1070 |
<?php
|
1071 |
+
_e( 'Hidden, visible only with lightbox', 'final-tiles-grid-gallery-lite' );
|
1072 |
?>
|
1073 |
</label>
|
1074 |
</div>
|
1075 |
<div class="field js-no-hidden">
|
1076 |
<label><?php
|
1077 |
+
_e( 'Link', 'final-tiles-grid-gallery-lite' );
|
1078 |
?></label>
|
1079 |
<div class="text dark">
|
1080 |
<input type="text" size="20" value="" name="link" />
|
1082 |
</div>
|
1083 |
<div class="field js-no-hidden">
|
1084 |
<label><?php
|
1085 |
+
_e( 'Link target', 'final-tiles-grid-gallery-lite' );
|
1086 |
?></label>
|
1087 |
<div class="text">
|
1088 |
<select name="target" class="browser-default">
|
1089 |
<option value="default"><?php
|
1090 |
+
_e( 'Default target', 'final-tiles-grid-gallery-lite' );
|
1091 |
?></option>
|
1092 |
<option value="_self"><?php
|
1093 |
+
_e( 'Open in same page', 'final-tiles-grid-gallery-lite' );
|
1094 |
?></option>
|
1095 |
<option value="_blank"><?php
|
1096 |
+
_e( 'Open in _blank', 'final-tiles-grid-gallery-lite' );
|
1097 |
?></option>
|
1098 |
<option value="_lightbox"><?php
|
1099 |
+
_e( 'Open in lightbox (when using a lightbox)', 'final-tiles-grid-gallery-lite' );
|
1100 |
?></option>
|
1101 |
</select>
|
1102 |
</div>
|
1107 |
</div>
|
1108 |
<div class="field buttons modal-footer">
|
1109 |
<a href="#" data-action="cancel" class="modal-close action button"><i class="mdi-content-reply"></i> <?php
|
1110 |
+
_e( 'Cancel', 'final-tiles-grid-gallery-lite' );
|
1111 |
?></a>
|
1112 |
<a href="#" data-action="save" class="modal-close button components-button is-primary"><i class="fa fa-save"></i> <?php
|
1113 |
+
_e( 'Save', 'final-tiles-grid-gallery-lite' );
|
1114 |
?></a>
|
1115 |
</div>
|
1116 |
</div>
|
admin/include/fields.php
CHANGED
@@ -149,7 +149,7 @@ $this->fields = array(
|
|
149 |
),
|
150 |
);
|
151 |
$this->addField( "Advanced", "loadMethod", array(
|
152 |
-
"name" => "Loading method",
|
153 |
"hiddenFor" => array( "dashboard", "shortcode" ),
|
154 |
"type" => "select",
|
155 |
"values" => array(
|
@@ -160,43 +160,43 @@ $this->addField( "Advanced", "loadMethod", array(
|
|
160 |
"excludeFrom" => array( "dashboard", "shortcode" ),
|
161 |
) );
|
162 |
$this->addField( "Advanced", "ajaxLoading", array(
|
163 |
-
"name" => "
|
164 |
"hiddenFor" => array( "dashboard", "shortcode" ),
|
165 |
"type" => "select",
|
166 |
"values" => array(
|
167 |
"Loading method" => array( "F|Complete markup on page", "lazy|Enable ajax loading" ),
|
168 |
),
|
169 |
-
"description" => "Don't enable ajax loading if you need to index your images on search engines",
|
170 |
"proCall" => false,
|
171 |
"excludeFrom" => array( "dashboard", "shortcode" ),
|
172 |
) );
|
173 |
$this->addField( "Advanced", "tilesPerPage", array(
|
174 |
-
"name" => "Number of images to load via ajax",
|
175 |
"hiddenFor" => array( "dashboard", "shortcode" ),
|
176 |
"type" => "number",
|
177 |
"proCall" => false,
|
178 |
"excludeFrom" => array( "dashboard", "shortcode" ),
|
179 |
) );
|
180 |
$this->addField( "General", "name", array(
|
181 |
-
"name" => "Name",
|
182 |
"hiddenFor" => array( "dashboard", "shortcode" ),
|
183 |
"type" => "text",
|
184 |
-
"description" => "Name of the gallery, for internal use.",
|
185 |
"proCall" => false,
|
186 |
"excludeFrom" => array( "dashboard", "shortcode" ),
|
187 |
) );
|
188 |
$this->addField( "General", "description", array(
|
189 |
-
"name" => "Description",
|
190 |
"hiddenFor" => array( "dashboard", "shortcode" ),
|
191 |
"type" => "text",
|
192 |
-
"description" => "Description of the gallery, for internal use.",
|
193 |
"proCall" => false,
|
194 |
"excludeFrom" => array( "dashboard", "shortcode" ),
|
195 |
) );
|
196 |
$this->addField( "General", "layout", array(
|
197 |
-
"name" => "Layout",
|
198 |
"type" => "select",
|
199 |
-
"description" => "<strong>Final Tiles</strong>: use images with different sizes<br><strong>Masonry</strong>: multi-column layout, use this one if you need images of the same size.",
|
200 |
"values" => array(
|
201 |
"Layout" => array( "final|Final Tiles", "columns|Masonry" ),
|
202 |
),
|
@@ -204,16 +204,16 @@ $this->addField( "General", "layout", array(
|
|
204 |
"excludeFrom" => array(),
|
205 |
) );
|
206 |
$this->addField( "General", "width", array(
|
207 |
-
"name" => "Width",
|
208 |
"type" => "text",
|
209 |
-
"description" => "Width of the gallery in pixels or percentage.",
|
210 |
"proCall" => false,
|
211 |
"excludeFrom" => array(),
|
212 |
) );
|
213 |
$this->addField( "General", "margin", array(
|
214 |
-
"name" => "Margin",
|
215 |
"type" => "number",
|
216 |
-
"description" => "Margin between images",
|
217 |
"mu" => "px",
|
218 |
"min" => 0,
|
219 |
"max" => 50,
|
@@ -221,7 +221,7 @@ $this->addField( "General", "margin", array(
|
|
221 |
"excludeFrom" => array(),
|
222 |
) );
|
223 |
$this->addField( "General", "columns", array(
|
224 |
-
"name" => "Number of columns",
|
225 |
"type" => "number",
|
226 |
"description" => "",
|
227 |
"mu" => "",
|
@@ -231,9 +231,9 @@ $this->addField( "General", "columns", array(
|
|
231 |
"excludeFrom" => array(),
|
232 |
) );
|
233 |
$this->addField( "General", "imagesOrder", array(
|
234 |
-
"name" => "Images order",
|
235 |
"type" => "select",
|
236 |
-
"description" => "Choose the order of the images",
|
237 |
"default" => "",
|
238 |
"values" => array(
|
239 |
"Images order" => array( "user|User", "reverse|Reverse", "random|Random" ),
|
@@ -242,47 +242,47 @@ $this->addField( "General", "imagesOrder", array(
|
|
242 |
"excludeFrom" => array(),
|
243 |
) );
|
244 |
$this->addField( "General", "filter", array(
|
245 |
-
"name" => "Filters",
|
246 |
"type" => FinalTiles_Gallery::getFieldType( "filter" ),
|
247 |
-
"description" => "Manage here all the filters of this gallery",
|
248 |
"proCall" => true,
|
249 |
"excludeFrom" => array( "dashboard", "shortcode" ),
|
250 |
) );
|
251 |
if ( ftg_fs()->is_plan_or_trial( 'ultimate' ) ) {
|
252 |
$this->addField( "General", "filterClick", array(
|
253 |
-
"name" => "Reload Page on filter click",
|
254 |
"type" => "toggle",
|
255 |
-
"description" => "Turn this feature ON if you want to use filters with most lightboxes",
|
256 |
"proCall" => false,
|
257 |
"excludeFrom" => array(),
|
258 |
) );
|
259 |
}
|
260 |
$this->addField( "General", "gridCellSize", array(
|
261 |
-
"name" => "Size of the grid",
|
262 |
"type" => "number",
|
263 |
"default" => 25,
|
264 |
"min" => 1,
|
265 |
"max" => 100,
|
266 |
"mu" => "px",
|
267 |
-
"description" => "Tiles are snapped to a virtual grid, <strong>the higher this value the higher the chance to get bottom aligned tiles</strong> (but it needs to crop vertically).",
|
268 |
"proCall" => false,
|
269 |
"excludeFrom" => array(),
|
270 |
) );
|
271 |
$this->addField( "General", "gridCellSizeDisabledBelow", array(
|
272 |
-
"name" => "Disable grid size below resolution",
|
273 |
"type" => "number",
|
274 |
"default" => 800,
|
275 |
"min" => 0,
|
276 |
"max" => 4000,
|
277 |
"mu" => "px",
|
278 |
-
"description" => "If you have small tiny images under certain resolutions then you can switch off grid size (image cropping) when the screen resolution is below this value.",
|
279 |
"proCall" => false,
|
280 |
"excludeFrom" => array(),
|
281 |
) );
|
282 |
/*"scrollEffect" , array(
|
283 |
-
"name" => "Scroll effect",
|
284 |
"type" => "select",
|
285 |
-
"description" => "Effect on tiles when scrolling the page",
|
286 |
"values" => array(
|
287 |
"Scroll effect" => array(
|
288 |
"none|None", "slide|Sliding tiles", "zoom|Zoom", "rotate-left|Left rotation", "rotate-right|Right rotation"
|
@@ -294,7 +294,7 @@ $this->addField( "General", "gridCellSizeDisabledBelow", array(
|
|
294 |
$this->addField( "Links & Lightbox", "lightbox", array(
|
295 |
"name" => "Links & Lightbox",
|
296 |
"type" => "select",
|
297 |
-
"description" => "Define here what happens when user click on the images. Lightboxes with video support: EverlightBox, LightGallery, Magnific popup, Colorbox (require embed URL)); PrettyPhoto, FancyBox (require embed URL)",
|
298 |
"values" => array(
|
299 |
"Link" => array( " |No link", "direct|Direct link to image (useful for external lightboxes)|disabled", "post|Post or WooCommerce product|disabled" ),
|
300 |
"Lightboxes" => array(
|
@@ -314,7 +314,7 @@ $this->addField( "Links & Lightbox", "lightbox", array(
|
|
314 |
$this->addField( "Links & Lightbox", "mobileLightbox", array(
|
315 |
"name" => "Links & Lightbox (mobile)",
|
316 |
"type" => "select",
|
317 |
-
"description" => "Define here what happens when user click on the images. Lightboxes with video support: EverlightBox, LightGallery, Magnific popup, Colorbox (require embed URL)); PrettyPhoto, FancyBox (require embed URL)",
|
318 |
"values" => array(
|
319 |
"Link" => array( " |No link", "direct|Direct link to image (useful for external lightboxes)", "post|Post or WooCommerce product|disabled" ),
|
320 |
"Lightboxes" => array(
|
@@ -332,7 +332,7 @@ $this->addField( "Links & Lightbox", "mobileLightbox", array(
|
|
332 |
"excludeFrom" => array(),
|
333 |
) );
|
334 |
$this->addField( "Links & Lightbox", "lightboxImageSize", array(
|
335 |
-
"name" => "Image size for the lightbox",
|
336 |
"type" => "select",
|
337 |
"description" => "",
|
338 |
"values" => array(
|
@@ -342,64 +342,64 @@ $this->addField( "Links & Lightbox", "lightboxImageSize", array(
|
|
342 |
"excludeFrom" => array(),
|
343 |
) );
|
344 |
$this->addField( "Links & Lightbox", "disableLightboxGroups", array(
|
345 |
-
"name" => "Disable lightbox grouping",
|
346 |
"type" => "toggle",
|
347 |
-
"description" => "Flag this option if you don't want to group images when opened in a lightbox.",
|
348 |
"default" => "F",
|
349 |
"proCall" => false,
|
350 |
"excludeFrom" => array(),
|
351 |
) );
|
352 |
$this->addField( "Links & Lightbox", "blank", array(
|
353 |
-
"name" => "Links target",
|
354 |
"type" => "toggle",
|
355 |
-
"description" => "Open links in a blank page.",
|
356 |
"proCall" => false,
|
357 |
"excludeFrom" => array(),
|
358 |
) );
|
359 |
$this->addField( "Links & Lightbox", "enableTwitter", array(
|
360 |
-
"name" => "Enable Twitter icon",
|
361 |
"type" => "toggle",
|
362 |
-
"description" => "Enable Twitter sharing.",
|
363 |
"default" => "F",
|
364 |
"proCall" => false,
|
365 |
"excludeFrom" => array(),
|
366 |
) );
|
367 |
$this->addField( "Links & Lightbox", "enableFacebook", array(
|
368 |
-
"name" => "Enable Facebook icon",
|
369 |
"type" => "toggle",
|
370 |
-
"description" => "Enable Facebook sharing. Note: after the last version of OpenGraph API it's not possible to share a specific image anymore.",
|
371 |
"default" => "F",
|
372 |
"proCall" => false,
|
373 |
"excludeFrom" => array(),
|
374 |
) );
|
375 |
$this->addField( "Links & Lightbox", "enableGplus", array(
|
376 |
-
"name" => "Enable Google Plus icon",
|
377 |
"type" => "toggle",
|
378 |
-
"description" => "Enable Google Plus sharing",
|
379 |
"default" => "F",
|
380 |
"proCall" => false,
|
381 |
"excludeFrom" => array(),
|
382 |
) );
|
383 |
$this->addField( "Links & Lightbox", "enablePinterest", array(
|
384 |
-
"name" => "Enable Pinterest icon",
|
385 |
"type" => "toggle",
|
386 |
-
"description" => "Enable Pinterest sharing",
|
387 |
"default" => "F",
|
388 |
"proCall" => false,
|
389 |
"excludeFrom" => array(),
|
390 |
) );
|
391 |
$this->addField( "Links & Lightbox", "socialIconColor", array(
|
392 |
-
"name" => "Color of social sharing icons",
|
393 |
"type" => "color",
|
394 |
-
"description" => "Set the color of the social sharing icons",
|
395 |
"default" => "#ffffff",
|
396 |
"proCall" => false,
|
397 |
"excludeFrom" => array(),
|
398 |
) );
|
399 |
$this->addField( "Links & Lightbox", "socialIconStyle", array(
|
400 |
-
"name" => "Style of the social icons panel",
|
401 |
"type" => "select",
|
402 |
-
"description" => "Set the color of the social sharing icons",
|
403 |
"default" => "none",
|
404 |
"values" => array(
|
405 |
"Style" => array( "none|None", "circle|Circles", "bar|Bar" ),
|
@@ -408,9 +408,9 @@ $this->addField( "Links & Lightbox", "socialIconStyle", array(
|
|
408 |
"excludeFrom" => array(),
|
409 |
) );
|
410 |
$this->addField( "Links & Lightbox", "socialIconPosition", array(
|
411 |
-
"name" => "Position of the social icons panel",
|
412 |
"type" => "select",
|
413 |
-
"description" => "Set the position of the social sharing icons",
|
414 |
"default" => "bottom",
|
415 |
"values" => array(
|
416 |
"Position" => array( "bottom|Bottom", "right|Right" ),
|
@@ -419,9 +419,9 @@ $this->addField( "Links & Lightbox", "socialIconPosition", array(
|
|
419 |
"excludeFrom" => array(),
|
420 |
) );
|
421 |
$this->addField( "Captions", "captionBehavior", array(
|
422 |
-
"name" => "Caption behavior",
|
423 |
"type" => "select",
|
424 |
-
"description" => "Effect used to show the captions.",
|
425 |
"values" => array(
|
426 |
"Effect" => array(
|
427 |
"none|Fade in",
|
@@ -438,9 +438,9 @@ $this->addField( "Captions", "captionBehavior", array(
|
|
438 |
"excludeFrom" => array(),
|
439 |
) );
|
440 |
$this->addField( "Captions", "captionMobileBehavior", array(
|
441 |
-
"name" => "Caption mobile behavior",
|
442 |
"type" => "select",
|
443 |
-
"description" => "Caption behavior for mobile devices.",
|
444 |
"values" => array(
|
445 |
"Behavior" => array(
|
446 |
"desktop|Same as desktop",
|
@@ -454,9 +454,9 @@ $this->addField( "Captions", "captionMobileBehavior", array(
|
|
454 |
"excludeFrom" => array(),
|
455 |
) );
|
456 |
$this->addField( "Captions", "captionPosition", array(
|
457 |
-
"name" => "Position",
|
458 |
"type" => "select",
|
459 |
-
"description" => "Choose the position of the caption.",
|
460 |
"values" => array(
|
461 |
"Behavior" => array( "inside|Inside", "outside|Outside (EXPERIMENTAL)" ),
|
462 |
),
|
@@ -464,17 +464,17 @@ $this->addField( "Captions", "captionPosition", array(
|
|
464 |
"excludeFrom" => array(),
|
465 |
) );
|
466 |
/*"captionFullHeight" , array(
|
467 |
-
"name" => "Caption full height",
|
468 |
"type" => "toggle",
|
469 |
-
"description" => "Enable this option for full height captions. <strong>This is required if you want to use caption icons and caption effects other than <i>fade</i>.</strong>",
|
470 |
"default" => "T",
|
471 |
"proCall" => false,
|
472 |
"excludeFrom" => array()
|
473 |
));*/
|
474 |
$this->addField( "Captions", "captionEmpty", array(
|
475 |
-
"name" => "Empty captions",
|
476 |
"type" => "select",
|
477 |
-
"description" => "Choose if empty caption has to be shown.",
|
478 |
"values" => array(
|
479 |
"Empty captions" => array( "hide|Don't show empty captions", "show|Show empty captions|disabled" ),
|
480 |
),
|
@@ -482,9 +482,9 @@ $this->addField( "Captions", "captionEmpty", array(
|
|
482 |
"excludeFrom" => array(),
|
483 |
) );
|
484 |
$this->addField( "Captions", "captionIcon", array(
|
485 |
-
"name" => "Caption icon",
|
486 |
"type" => "select",
|
487 |
-
"description" => "Choose the icon for the captions.",
|
488 |
"values" => array(
|
489 |
"Icon" => array(
|
490 |
"|None",
|
@@ -507,24 +507,24 @@ $this->addField( "Captions", "captionIcon", array(
|
|
507 |
"excludeFrom" => array(),
|
508 |
) );
|
509 |
$this->addField( "Captions", "customCaptionIcon", array(
|
510 |
-
"name" => "Custom caption icon",
|
511 |
"type" => FinalTiles_Gallery::getFieldType( "customCaptionIcon" ),
|
512 |
-
"description" => "Use this field to insert the class of a FontAwesome icon (i.e.: fa-heart). <a href='https://fontawesome.com/v4.7.0/icons/' target='blank'>See all available icons</a>. <strong>This value override the <i>Caption icon</i> value</strong>.",
|
513 |
"proCall" => false,
|
514 |
"excludeFrom" => array(),
|
515 |
) );
|
516 |
$this->addField( "Captions", "captionIconColor", array(
|
517 |
-
"name" => "Caption icon color",
|
518 |
"type" => "color",
|
519 |
-
"description" => "Color of the icon in captions.",
|
520 |
"default" => "#ffffff",
|
521 |
"proCall" => false,
|
522 |
"excludeFrom" => array(),
|
523 |
) );
|
524 |
$this->addField( "Captions", "captionIconSize", array(
|
525 |
-
"name" => "Caption icon size",
|
526 |
"type" => "number",
|
527 |
-
"description" => "Size of the icon in captions.",
|
528 |
"default" => 12,
|
529 |
"min" => 10,
|
530 |
"max" => 96,
|
@@ -533,9 +533,9 @@ $this->addField( "Captions", "captionIconSize", array(
|
|
533 |
"excludeFrom" => array(),
|
534 |
) );
|
535 |
$this->addField( "Captions", "captionFontSize", array(
|
536 |
-
"name" => "Caption font size",
|
537 |
"type" => "number",
|
538 |
-
"description" => "Size of the font in captions.",
|
539 |
"default" => 12,
|
540 |
"min" => 10,
|
541 |
"max" => 96,
|
@@ -544,9 +544,9 @@ $this->addField( "Captions", "captionFontSize", array(
|
|
544 |
"excludeFrom" => array(),
|
545 |
) );
|
546 |
$this->addField( "Captions", "captionEasing", array(
|
547 |
-
"name" => "Caption effect easing",
|
548 |
"type" => "select",
|
549 |
-
"description" => "Easing function for the caption animation, works better with sliding animations.",
|
550 |
"values" => array(
|
551 |
"Easing" => array(
|
552 |
"ease|Ease",
|
@@ -560,33 +560,33 @@ $this->addField( "Captions", "captionEasing", array(
|
|
560 |
"excludeFrom" => array(),
|
561 |
) );
|
562 |
$this->addField( "Captions", "captionFrame", array(
|
563 |
-
"name" => "Caption frame",
|
564 |
"type" => "toggle",
|
565 |
-
"description" => "Add a frame around the caption",
|
566 |
"default" => "F",
|
567 |
"proCall" => false,
|
568 |
"excludeFrom" => array(),
|
569 |
) );
|
570 |
$this->addField( "Captions", "captionFrameColor", array(
|
571 |
-
"name" => "Caption frame color",
|
572 |
"type" => "color",
|
573 |
-
"description" => "Color of the frame around the caption",
|
574 |
"default" => "#ffffff",
|
575 |
"proCall" => false,
|
576 |
"excludeFrom" => array(),
|
577 |
) );
|
578 |
$this->addField( "Captions", "captionColor", array(
|
579 |
-
"name" => "Caption color",
|
580 |
"type" => "color",
|
581 |
-
"description" => "Text color of the captions.",
|
582 |
"default" => "#ffffff",
|
583 |
"proCall" => false,
|
584 |
"excludeFrom" => array(),
|
585 |
) );
|
586 |
$this->addField( "Captions", "captionEffectDuration", array(
|
587 |
-
"name" => "Caption effect duration",
|
588 |
"type" => "text",
|
589 |
-
"description" => "Duration of the caption animation.",
|
590 |
"default" => 250,
|
591 |
"mu" => "ms",
|
592 |
"min" => 0,
|
@@ -595,17 +595,17 @@ $this->addField( "Captions", "captionEffectDuration", array(
|
|
595 |
"excludeFrom" => array(),
|
596 |
) );
|
597 |
$this->addField( "Captions", "captionBackgroundColor", array(
|
598 |
-
"name" => "Caption background color",
|
599 |
"type" => "color",
|
600 |
-
"description" => "Caption background color",
|
601 |
"default" => "#000000",
|
602 |
"proCall" => false,
|
603 |
"excludeFrom" => array(),
|
604 |
) );
|
605 |
$this->addField( "Captions", "captionOpacity", array(
|
606 |
-
"name" => "Caption opacity",
|
607 |
"type" => "text",
|
608 |
-
"description" => "Opacity of the caption, 0% means 'invisible' while 100% is a plain color without opacity.",
|
609 |
"default" => 80,
|
610 |
"min" => 0,
|
611 |
"max" => 100,
|
@@ -614,9 +614,9 @@ $this->addField( "Captions", "captionOpacity", array(
|
|
614 |
"excludeFrom" => array(),
|
615 |
) );
|
616 |
$this->addField( "Captions", "wp_field_caption", array(
|
617 |
-
"name" => "WordPress caption field",
|
618 |
"type" => "select",
|
619 |
-
"description" => "WordPress field used for captions. <strong>This field is used ONLY when images are added to the gallery, </strong> however, if you want to ignore captions just set it to '<i>Don't use captions</i>'.",
|
620 |
"values" => array(
|
621 |
"Field" => array(
|
622 |
"none|Don't use captions",
|
@@ -629,9 +629,9 @@ $this->addField( "Captions", "wp_field_caption", array(
|
|
629 |
"excludeFrom" => array( "shortcode" ),
|
630 |
) );
|
631 |
$this->addField( "Captions", "wp_field_title", array(
|
632 |
-
"name" => "WordPress title field",
|
633 |
"type" => "select",
|
634 |
-
"description" => "WordPress field used for titles. <strong>This field is used ONLY when images are added to the gallery, </strong> however, if you want to ignore titles just set it to '<i>Don't use titles</i>'.",
|
635 |
"values" => array(
|
636 |
"Field" => array( "none|Don't use titles", "title|Title", "description|Description" ),
|
637 |
),
|
@@ -639,9 +639,9 @@ $this->addField( "Captions", "wp_field_title", array(
|
|
639 |
"excludeFrom" => array( "shortcode" ),
|
640 |
) );
|
641 |
$this->addField( "Captions", "recentPostsCaption", array(
|
642 |
-
"name" => "Recent posts caption",
|
643 |
"type" => "select",
|
644 |
-
"description" => "Field of the post used for captions when using \"Recent posts\" as source.",
|
645 |
"values" => array(
|
646 |
"Field" => array(
|
647 |
"none|Don't use captions",
|
@@ -657,15 +657,15 @@ $this->addField( "Captions", "recentPostsCaption", array(
|
|
657 |
$this->addField( "Captions", "recentPostsCaptionAutoExcerptLength", array(
|
658 |
"name" => "Max number of words for 'Auto excerpt'",
|
659 |
"type" => "text",
|
660 |
-
"description" => "Define the max number of words of the caption when <i>Recent posts caption</i> is set to <i>Auto excerpt</i>.",
|
661 |
"default" => "20",
|
662 |
"proCall" => false,
|
663 |
"excludeFrom" => array(),
|
664 |
) );
|
665 |
$this->addField( "Captions", "captionVerticalAlignment", array(
|
666 |
-
"name" => "Caption Vertical Alignment",
|
667 |
"type" => "select",
|
668 |
-
"description" => "Choose the vertical alignment of the caption",
|
669 |
"values" => array(
|
670 |
"Caption vertical alignment" => array( "top|Top", "middle|Middle", "bottom|Bottom" ),
|
671 |
),
|
@@ -673,9 +673,9 @@ $this->addField( "Captions", "captionVerticalAlignment", array(
|
|
673 |
"excludeFrom" => array(),
|
674 |
) );
|
675 |
$this->addField( "Captions", "captionHorizontalAlignment", array(
|
676 |
-
"name" => "Caption Horizontal Alignment",
|
677 |
"type" => "select",
|
678 |
-
"description" => "Choose the horizontal alignment of the caption",
|
679 |
"values" => array(
|
680 |
"Caption horizontal alignment" => array( "left|Left", "center|Center", "right|Right" ),
|
681 |
),
|
@@ -683,9 +683,9 @@ $this->addField( "Captions", "captionHorizontalAlignment", array(
|
|
683 |
"excludeFrom" => array(),
|
684 |
) );
|
685 |
$this->addField( "Captions", "titleFontSize", array(
|
686 |
-
"name" => "Title font size",
|
687 |
"type" => "number",
|
688 |
-
"description" => "Size of the font in captions.",
|
689 |
"min" => 10,
|
690 |
"max" => 96,
|
691 |
"mu" => "px",
|
@@ -693,9 +693,9 @@ $this->addField( "Captions", "titleFontSize", array(
|
|
693 |
"excludeFrom" => array(),
|
694 |
) );
|
695 |
$this->addField( "Hover effects", "hoverZoom", array(
|
696 |
-
"name" => "Zoom",
|
697 |
"type" => FinalTiles_gallery::getFieldType( "hoverZoom" ),
|
698 |
-
"description" => "Scale value.",
|
699 |
"default" => 100,
|
700 |
"min" => 0,
|
701 |
"max" => 600,
|
@@ -704,9 +704,9 @@ $this->addField( "Hover effects", "hoverZoom", array(
|
|
704 |
"excludeFrom" => array(),
|
705 |
) );
|
706 |
$this->addField( "Hover effects", "hoverRotation", array(
|
707 |
-
"name" => "Rotation",
|
708 |
"type" => FinalTiles_gallery::getFieldType( "hoverRotation" ),
|
709 |
-
"description" => "Rotation value in degrees.",
|
710 |
"min" => 0,
|
711 |
"max" => 360,
|
712 |
"mu" => "deg",
|
@@ -715,7 +715,7 @@ $this->addField( "Hover effects", "hoverRotation", array(
|
|
715 |
"excludeFrom" => array(),
|
716 |
) );
|
717 |
$this->addField( "Hover effects", "hoverDuration", array(
|
718 |
-
"name" => "Duration",
|
719 |
"description" => "",
|
720 |
"type" => FinalTiles_gallery::getFieldType( "hoverDuration" ),
|
721 |
"min" => 10,
|
@@ -726,15 +726,15 @@ $this->addField( "Hover effects", "hoverDuration", array(
|
|
726 |
"excludeFrom" => array(),
|
727 |
) );
|
728 |
$this->addField( "Hover effects", "hoverIconRotation", array(
|
729 |
-
"name" => "Rotate icon",
|
730 |
"type" => "toggle",
|
731 |
"default" => "F",
|
732 |
-
"description" => "Enable rotation of the icon.",
|
733 |
"proCall" => false,
|
734 |
"excludeFrom" => array(),
|
735 |
) );
|
736 |
$this->addField( "Image loaded effects", "loadedDuration", array(
|
737 |
-
"name" => "Duration",
|
738 |
"description" => "",
|
739 |
"type" => "slider",
|
740 |
"min" => 10,
|
@@ -745,9 +745,9 @@ $this->addField( "Image loaded effects", "loadedDuration", array(
|
|
745 |
"excludeFrom" => array(),
|
746 |
) );
|
747 |
$this->addField( "Image loaded effects", "loadedEasing", array(
|
748 |
-
"name" => "Easing curve",
|
749 |
"type" => "select",
|
750 |
-
"description" => "Choose the easing curve for the loading effect animation",
|
751 |
"values" => array(
|
752 |
"Easing curve" => array(
|
753 |
"linear|Linear",
|
@@ -764,7 +764,7 @@ $this->addField( "Image loaded effects", "loadedEasing", array(
|
|
764 |
"excludeFrom" => array(),
|
765 |
) );
|
766 |
$this->addField( "Image loaded effects", "loadedScaleY", array(
|
767 |
-
"name" => "Vertical scaling",
|
768 |
"description" => "",
|
769 |
"type" => "slider",
|
770 |
"min" => 1,
|
@@ -775,7 +775,7 @@ $this->addField( "Image loaded effects", "loadedScaleY", array(
|
|
775 |
"excludeFrom" => array(),
|
776 |
) );
|
777 |
$this->addField( "Image loaded effects", "loadedScaleX", array(
|
778 |
-
"name" => "Horizontal scaling",
|
779 |
"description" => "",
|
780 |
"type" => "slider",
|
781 |
"min" => 1,
|
@@ -786,7 +786,7 @@ $this->addField( "Image loaded effects", "loadedScaleX", array(
|
|
786 |
"excludeFrom" => array(),
|
787 |
) );
|
788 |
$this->addField( "Image loaded effects", "loadedRotateY", array(
|
789 |
-
"name" => "Vertical rotation",
|
790 |
"description" => "",
|
791 |
"type" => "slider",
|
792 |
"min" => -180,
|
@@ -797,7 +797,7 @@ $this->addField( "Image loaded effects", "loadedRotateY", array(
|
|
797 |
"excludeFrom" => array(),
|
798 |
) );
|
799 |
$this->addField( "Image loaded effects", "loadedRotateX", array(
|
800 |
-
"name" => "Horizontal rotation",
|
801 |
"description" => "",
|
802 |
"type" => "slider",
|
803 |
"min" => -180,
|
@@ -808,7 +808,7 @@ $this->addField( "Image loaded effects", "loadedRotateX", array(
|
|
808 |
"excludeFrom" => array(),
|
809 |
) );
|
810 |
$this->addField( "Image loaded effects", "loadedHSlide", array(
|
811 |
-
"name" => "Horizontal slide",
|
812 |
"description" => "",
|
813 |
"type" => "slider",
|
814 |
"min" => -1000,
|
@@ -819,7 +819,7 @@ $this->addField( "Image loaded effects", "loadedHSlide", array(
|
|
819 |
"excludeFrom" => array(),
|
820 |
) );
|
821 |
$this->addField( "Image loaded effects", "loadedVSlide", array(
|
822 |
-
"name" => "Vertical slide",
|
823 |
"description" => "",
|
824 |
"type" => "slider",
|
825 |
"min" => -1000,
|
@@ -830,9 +830,9 @@ $this->addField( "Image loaded effects", "loadedVSlide", array(
|
|
830 |
"excludeFrom" => array(),
|
831 |
) );
|
832 |
$this->addField( "Style", "borderSize", array(
|
833 |
-
"name" => "Border size",
|
834 |
"type" => "number",
|
835 |
-
"description" => "Size of the border of each image.",
|
836 |
"default" => 0,
|
837 |
"min" => 0,
|
838 |
"max" => 10,
|
@@ -841,9 +841,9 @@ $this->addField( "Style", "borderSize", array(
|
|
841 |
"excludeFrom" => array(),
|
842 |
) );
|
843 |
$this->addField( "Style", "borderRadius", array(
|
844 |
-
"name" => "Border radius",
|
845 |
"type" => "number",
|
846 |
-
"description" => "Border radius of the images.",
|
847 |
"default" => 0,
|
848 |
"min" => 0,
|
849 |
"max" => 100,
|
@@ -852,33 +852,33 @@ $this->addField( "Style", "borderRadius", array(
|
|
852 |
"excludeFrom" => array(),
|
853 |
) );
|
854 |
$this->addField( "Style", "borderColor", array(
|
855 |
-
"name" => "Border color",
|
856 |
"type" => "color",
|
857 |
-
"description" => "Color of the border when size is greater than 0.",
|
858 |
"default" => "#000000",
|
859 |
"proCall" => false,
|
860 |
"excludeFrom" => array(),
|
861 |
) );
|
862 |
$this->addField( "Style", "loadingBarColor", array(
|
863 |
-
"name" => "Loading Bar color",
|
864 |
"type" => "color",
|
865 |
-
"description" => "Color of the loading bar",
|
866 |
"default" => "#000000",
|
867 |
"proCall" => false,
|
868 |
"excludeFrom" => array(),
|
869 |
) );
|
870 |
$this->addField( "Style", "loadingBarBackgroundColor", array(
|
871 |
-
"name" => "Loading Bar background color",
|
872 |
"type" => "color",
|
873 |
-
"description" => "Background color of the loading bar",
|
874 |
"default" => "#cccccc",
|
875 |
"proCall" => false,
|
876 |
"excludeFrom" => array(),
|
877 |
) );
|
878 |
$this->addField( "Style", "shadowSize", array(
|
879 |
-
"name" => "Shadow size",
|
880 |
"type" => "number",
|
881 |
-
"description" => "Shadow size of the images.",
|
882 |
"default" => 0,
|
883 |
"min" => 0,
|
884 |
"max" => 20,
|
@@ -887,69 +887,69 @@ $this->addField( "Style", "shadowSize", array(
|
|
887 |
"excludeFrom" => array(),
|
888 |
) );
|
889 |
$this->addField( "Style", "shadowColor", array(
|
890 |
-
"name" => "Shadow color",
|
891 |
"type" => "color",
|
892 |
-
"description" => "Color of the shadow when size is greater than 0.",
|
893 |
"default" => "#000000",
|
894 |
"proCall" => false,
|
895 |
"excludeFrom" => array(),
|
896 |
) );
|
897 |
$this->addField( "Style", "backgroundColor", array(
|
898 |
-
"name" => "Tile background color",
|
899 |
"type" => "color",
|
900 |
-
"description" => "Background color of tiles",
|
901 |
"default" => "#fafafa",
|
902 |
"proCall" => false,
|
903 |
"excludeFrom" => array(),
|
904 |
) );
|
905 |
$this->addField( "Customizations", "aClass", array(
|
906 |
-
"name" => "Additional CSS class on A tag",
|
907 |
"type" => "text",
|
908 |
-
"description" => "Use this field if you need to add additional CSS classes to the link that contains the image.",
|
909 |
"default" => "",
|
910 |
"proCall" => false,
|
911 |
"excludeFrom" => array(),
|
912 |
) );
|
913 |
$this->addField( "Customizations", "rel", array(
|
914 |
-
"name" => "Value of 'rel' attribute on the link that contains the image.",
|
915 |
"type" => "text",
|
916 |
-
"description" => "Use this field if you need to add additional CSS classes to the link that contains the image. This is useful mostly to integrate the gallery with other lightbox plugins.",
|
917 |
"default" => "",
|
918 |
"proCall" => false,
|
919 |
"excludeFrom" => array(),
|
920 |
) );
|
921 |
$this->addField( "Customizations", "beforeGalleryText", array(
|
922 |
-
"name" => "Text before gallery",
|
923 |
"type" => "textarea",
|
924 |
-
"description" => "Use this field to add text/html to be placed just before your gallery.",
|
925 |
"proCall" => false,
|
926 |
"excludeFrom" => array( "shortcode" ),
|
927 |
) );
|
928 |
$this->addField( "Customizations", "afterGalleryText", array(
|
929 |
-
"name" => "Text after gallery",
|
930 |
"type" => "textarea",
|
931 |
-
"description" => "Use this field to add text/html to be placed just after your gallery.",
|
932 |
"proCall" => false,
|
933 |
"excludeFrom" => array( "shortcode" ),
|
934 |
) );
|
935 |
$this->addField( "Customizations", "style", array(
|
936 |
-
"name" => "Custom CSS",
|
937 |
"type" => "textarea",
|
938 |
-
"description" => "<strong>Write just the code without using the <style> tag.</strong><br>List of useful selectors:<br>\n <br>\n <ul>\n <li>\n <em>.final-tiles-gallery</em> : gallery container;\n </li>\n <li>\n <em>.final-tiles-gallery .tile-inner</em> : tile content;\n </li>\n <li>\n <em>.final-tiles-gallery .tile-inner .item</em> : image of the tile;\n </li>\n <li>\n <em>.final-tiles-gallery .tile-inner .caption</em> : caption of the tile;\n </li>\n <li>\n <em>.final-tiles-gallery .ftg-filters</em> : filters container\n </li>\n <li>\n <em>.final-tiles-gallery .ftg-filters a</em> : filter\n </li>\n <li>\n <em>.final-tiles-gallery .ftg-filters a.selected</em> : selected filter\n </li>\n </ul>",
|
939 |
"proCall" => false,
|
940 |
"excludeFrom" => array( "shortcode" ),
|
941 |
) );
|
942 |
$this->addField( "Customizations", "script", array(
|
943 |
-
"name" => "Custom scripts",
|
944 |
"type" => "textarea",
|
945 |
-
"description" => "This script will be called after the gallery initialization. Useful for custom lightboxes.\n <br />\n <br />\n <strong>Write just the code without using the <script></script> tags</strong>",
|
946 |
"proCall" => false,
|
947 |
"excludeFrom" => array( "shortcode" ),
|
948 |
) );
|
949 |
$this->addField( "Customizations", "delay", array(
|
950 |
-
"name" => "Delay",
|
951 |
"type" => "text",
|
952 |
-
"description" => "Delay (in milliseconds) before firing the gallery. Sometimes it's needed to avoid conflicts with other plugins.",
|
953 |
"min" => 0,
|
954 |
"max" => 5000,
|
955 |
"mu" => "ms",
|
@@ -958,9 +958,9 @@ $this->addField( "Customizations", "delay", array(
|
|
958 |
"excludeFrom" => array(),
|
959 |
) );
|
960 |
$this->addField( "Customizations", "support", array(
|
961 |
-
"name" => "Show developer link",
|
962 |
"type" => "toggle",
|
963 |
-
"description" => "I want to support this plugin, show the developer link!",
|
964 |
"default" => "F",
|
965 |
"proCall" => false,
|
966 |
"excludeFrom" => array(),
|
@@ -968,15 +968,15 @@ $this->addField( "Customizations", "support", array(
|
|
968 |
"excludeFrom" => array(),
|
969 |
) );
|
970 |
$this->addField( "Customizations", "supportText", array(
|
971 |
-
"name" => "Developer link text",
|
972 |
"type" => "text",
|
973 |
-
"description" => "Text for the developer link",
|
974 |
"default" => "powered by Final Tiles Grid Gallery",
|
975 |
"proCall" => false,
|
976 |
"excludeFrom" => array(),
|
977 |
) );
|
978 |
$this->addField( "Advanced", "columnsTabletLandscape", array(
|
979 |
-
"name" => "Number of columns (Tablet landscape)",
|
980 |
"type" => "number",
|
981 |
"description" => "",
|
982 |
"mu" => "",
|
@@ -986,7 +986,7 @@ $this->addField( "Advanced", "columnsTabletLandscape", array(
|
|
986 |
"excludeFrom" => array(),
|
987 |
) );
|
988 |
$this->addField( "Advanced", "columnsTabletPortrait", array(
|
989 |
-
"name" => "Number of columns (Tablet portrait)",
|
990 |
"type" => "number",
|
991 |
"description" => "",
|
992 |
"mu" => "",
|
@@ -996,7 +996,7 @@ $this->addField( "Advanced", "columnsTabletPortrait", array(
|
|
996 |
"excludeFrom" => array(),
|
997 |
) );
|
998 |
$this->addField( "Advanced", "columnsPhoneLandscape", array(
|
999 |
-
"name" => "Number of columns (Phone landscape)",
|
1000 |
"type" => "number",
|
1001 |
"description" => "",
|
1002 |
"mu" => "",
|
@@ -1006,7 +1006,7 @@ $this->addField( "Advanced", "columnsPhoneLandscape", array(
|
|
1006 |
"excludeFrom" => array(),
|
1007 |
) );
|
1008 |
$this->addField( "Advanced", "columnsPhonePortrait", array(
|
1009 |
-
"name" => "Number of columns (Phone portrait)",
|
1010 |
"type" => "number",
|
1011 |
"description" => "",
|
1012 |
"mu" => "",
|
@@ -1016,9 +1016,9 @@ $this->addField( "Advanced", "columnsPhonePortrait", array(
|
|
1016 |
"excludeFrom" => array(),
|
1017 |
) );
|
1018 |
$this->addField( "Advanced", "imageSizeFactor", array(
|
1019 |
-
"name" => "Image size factor",
|
1020 |
"type" => "slider",
|
1021 |
-
"description" => "Percentage of image size, i.e.: if an image of the gallery is 300x200 and the size factor is 50% then the resulting image will be 150x100.\n 90% is a suggested default value, because under some circumstances, the images could be enlarged by the script (to fill gaps and avoid blank spaces between tiles).",
|
1022 |
"default" => 90,
|
1023 |
"min" => 1,
|
1024 |
"max" => 100,
|
@@ -1029,7 +1029,7 @@ $this->addField( "Advanced", "imageSizeFactor", array(
|
|
1029 |
$this->addField( "Advanced", "imageSizeFactorTabletLandscape", array(
|
1030 |
"name" => "Image size factor (Tablet Landscape)",
|
1031 |
"type" => "slider",
|
1032 |
-
"description" => "Image size factor to apply when the viewport is 1024px, typically for tablets with landscape orientation",
|
1033 |
"default" => 80,
|
1034 |
"min" => 1,
|
1035 |
"max" => 100,
|
@@ -1038,9 +1038,9 @@ $this->addField( "Advanced", "imageSizeFactorTabletLandscape", array(
|
|
1038 |
"excludeFrom" => array(),
|
1039 |
) );
|
1040 |
$this->addField( "Advanced", "imageSizeFactorTabletPortrait", array(
|
1041 |
-
"name" => "Image size factor Tablet Portrait",
|
1042 |
"type" => "slider",
|
1043 |
-
"description" => "Image size factor to apply when the viewport is 768px, typically for tablets with portrait orientation",
|
1044 |
"default" => 70,
|
1045 |
"min" => 1,
|
1046 |
"max" => 100,
|
@@ -1049,9 +1049,9 @@ $this->addField( "Advanced", "imageSizeFactorTabletPortrait", array(
|
|
1049 |
"excludeFrom" => array(),
|
1050 |
) );
|
1051 |
$this->addField( "Advanced", "imageSizeFactorPhoneLandscape", array(
|
1052 |
-
"name" => "Image size factor Smartphone Landscape",
|
1053 |
"type" => "slider",
|
1054 |
-
"description" => "Image size factor to apply when the viewport is 640px, typically for smartphones with landscape orientation",
|
1055 |
"default" => 60,
|
1056 |
"min" => 1,
|
1057 |
"max" => 100,
|
@@ -1060,9 +1060,9 @@ $this->addField( "Advanced", "imageSizeFactorPhoneLandscape", array(
|
|
1060 |
"excludeFrom" => array(),
|
1061 |
) );
|
1062 |
$this->addField( "Advanced", "imageSizeFactorPhonePortrait", array(
|
1063 |
-
"name" => "Image size factor Phone Portrait",
|
1064 |
"type" => "slider",
|
1065 |
-
"description" => "Image size factor to apply when the viewport is 320px, typically for smartphones with portrait orientation",
|
1066 |
"default" => 50,
|
1067 |
"min" => 1,
|
1068 |
"max" => 100,
|
@@ -1071,25 +1071,25 @@ $this->addField( "Advanced", "imageSizeFactorPhonePortrait", array(
|
|
1071 |
"excludeFrom" => array(),
|
1072 |
) );
|
1073 |
$this->addField( "Advanced", "imageSizeFactorCustom", array(
|
1074 |
-
"name" => "Custom image size factor",
|
1075 |
"hiddenFor" => array( "dashboard", "shortcode" ),
|
1076 |
"type" => FinalTiles_Gallery::getFieldType( "custom_isf" ),
|
1077 |
-
"description" => "Use this field if you need further resolutions. Make custom layout for any device and resolution.",
|
1078 |
"proCall" => true,
|
1079 |
"excludeFrom" => array( "dashboard", "shortcode" ),
|
1080 |
) );
|
1081 |
$this->addField( "Advanced", "compressHTML", array(
|
1082 |
-
"name" => "Compress HTML",
|
1083 |
"type" => "toggle",
|
1084 |
-
"description" => "Enable or disable HTML compression, some themes prefer uncompressed, switch it off in case of problems.",
|
1085 |
"default" => "T",
|
1086 |
"proCall" => false,
|
1087 |
"excludeFrom" => array(),
|
1088 |
) );
|
1089 |
$this->addField( "Advanced", "minTileWidth", array(
|
1090 |
-
"name" => "Tile minimum width",
|
1091 |
"type" => "number",
|
1092 |
-
"description" => "Minimum width of each tile, <strong>multiply this value for the image size factor to get the real size</strong>.",
|
1093 |
"mu" => "px",
|
1094 |
"min" => 50,
|
1095 |
"max" => 500,
|
@@ -1098,9 +1098,9 @@ $this->addField( "Advanced", "minTileWidth", array(
|
|
1098 |
"excludeFrom" => array(),
|
1099 |
) );
|
1100 |
$this->addField( "Advanced", "enlargeImages", array(
|
1101 |
-
"name" => "Allow image enlargement",
|
1102 |
"type" => "toggle",
|
1103 |
-
"description" => "Images can be occasionally enlarged to avoid gaps. If you notice a quality loss try to reduce the <strong>Image size factor</strong> parameter.",
|
1104 |
"default" => "T",
|
1105 |
"proCall" => false,
|
1106 |
"excludeFrom" => array(),
|
@@ -1109,7 +1109,7 @@ if ( ftg_fs()->is_plan_or_trial( 'ultimate' ) ) {
|
|
1109 |
$this->addField( "Advanced", "allFilterLabel", array(
|
1110 |
"name" => "Text for 'All' filter",
|
1111 |
"type" => "text",
|
1112 |
-
"description" => "Write here the label for the 'All' filter",
|
1113 |
"proCall" => false,
|
1114 |
"excludeFrom" => array(),
|
1115 |
) );
|
149 |
),
|
150 |
);
|
151 |
$this->addField( "Advanced", "loadMethod", array(
|
152 |
+
"name" => __( "Loading method" ),
|
153 |
"hiddenFor" => array( "dashboard", "shortcode" ),
|
154 |
"type" => "select",
|
155 |
"values" => array(
|
160 |
"excludeFrom" => array( "dashboard", "shortcode" ),
|
161 |
) );
|
162 |
$this->addField( "Advanced", "ajaxLoading", array(
|
163 |
+
"name" => __( "Asynchronous loading" ),
|
164 |
"hiddenFor" => array( "dashboard", "shortcode" ),
|
165 |
"type" => "select",
|
166 |
"values" => array(
|
167 |
"Loading method" => array( "F|Complete markup on page", "lazy|Enable ajax loading" ),
|
168 |
),
|
169 |
+
"description" => __( "Don't enable ajax loading if you need to index your images on search engines", "final-tiles-grid-gallery-lite" ),
|
170 |
"proCall" => false,
|
171 |
"excludeFrom" => array( "dashboard", "shortcode" ),
|
172 |
) );
|
173 |
$this->addField( "Advanced", "tilesPerPage", array(
|
174 |
+
"name" => __( "Number of images to load via ajax" ),
|
175 |
"hiddenFor" => array( "dashboard", "shortcode" ),
|
176 |
"type" => "number",
|
177 |
"proCall" => false,
|
178 |
"excludeFrom" => array( "dashboard", "shortcode" ),
|
179 |
) );
|
180 |
$this->addField( "General", "name", array(
|
181 |
+
"name" => __( "Name" ),
|
182 |
"hiddenFor" => array( "dashboard", "shortcode" ),
|
183 |
"type" => "text",
|
184 |
+
"description" => __( "Name of the gallery, for internal use.", "final-tiles-grid-gallery-lite" ),
|
185 |
"proCall" => false,
|
186 |
"excludeFrom" => array( "dashboard", "shortcode" ),
|
187 |
) );
|
188 |
$this->addField( "General", "description", array(
|
189 |
+
"name" => __( "Description" ),
|
190 |
"hiddenFor" => array( "dashboard", "shortcode" ),
|
191 |
"type" => "text",
|
192 |
+
"description" => __( "Description of the gallery, for internal use.", "final-tiles-grid-gallery-lite" ),
|
193 |
"proCall" => false,
|
194 |
"excludeFrom" => array( "dashboard", "shortcode" ),
|
195 |
) );
|
196 |
$this->addField( "General", "layout", array(
|
197 |
+
"name" => __( "Layout" ),
|
198 |
"type" => "select",
|
199 |
+
"description" => __( "<strong>Final Tiles</strong>: use images with different sizes<br><strong>Masonry</strong>: multi-column layout, use this one if you need images of the same size.", "final-tiles-grid-gallery-lite" ),
|
200 |
"values" => array(
|
201 |
"Layout" => array( "final|Final Tiles", "columns|Masonry" ),
|
202 |
),
|
204 |
"excludeFrom" => array(),
|
205 |
) );
|
206 |
$this->addField( "General", "width", array(
|
207 |
+
"name" => __( "Width" ),
|
208 |
"type" => "text",
|
209 |
+
"description" => __( "Width of the gallery in pixels or percentage.", "final-tiles-grid-gallery-lite" ),
|
210 |
"proCall" => false,
|
211 |
"excludeFrom" => array(),
|
212 |
) );
|
213 |
$this->addField( "General", "margin", array(
|
214 |
+
"name" => __( "Margin" ),
|
215 |
"type" => "number",
|
216 |
+
"description" => __( "Margin between images", "final-tiles-grid-gallery-lite" ),
|
217 |
"mu" => "px",
|
218 |
"min" => 0,
|
219 |
"max" => 50,
|
221 |
"excludeFrom" => array(),
|
222 |
) );
|
223 |
$this->addField( "General", "columns", array(
|
224 |
+
"name" => __( "Number of columns" ),
|
225 |
"type" => "number",
|
226 |
"description" => "",
|
227 |
"mu" => "",
|
231 |
"excludeFrom" => array(),
|
232 |
) );
|
233 |
$this->addField( "General", "imagesOrder", array(
|
234 |
+
"name" => __( "Images order" ),
|
235 |
"type" => "select",
|
236 |
+
"description" => __( "Choose the order of the images", "final-tiles-grid-gallery-lite" ),
|
237 |
"default" => "",
|
238 |
"values" => array(
|
239 |
"Images order" => array( "user|User", "reverse|Reverse", "random|Random" ),
|
242 |
"excludeFrom" => array(),
|
243 |
) );
|
244 |
$this->addField( "General", "filter", array(
|
245 |
+
"name" => __( "Filters" ),
|
246 |
"type" => FinalTiles_Gallery::getFieldType( "filter" ),
|
247 |
+
"description" => __( "Manage here all the filters of this gallery", "final-tiles-grid-gallery-lite" ),
|
248 |
"proCall" => true,
|
249 |
"excludeFrom" => array( "dashboard", "shortcode" ),
|
250 |
) );
|
251 |
if ( ftg_fs()->is_plan_or_trial( 'ultimate' ) ) {
|
252 |
$this->addField( "General", "filterClick", array(
|
253 |
+
"name" => __( "Reload Page on filter click" ),
|
254 |
"type" => "toggle",
|
255 |
+
"description" => __( "Turn this feature ON if you want to use filters with most lightboxes", "final-tiles-grid-gallery-lite" ),
|
256 |
"proCall" => false,
|
257 |
"excludeFrom" => array(),
|
258 |
) );
|
259 |
}
|
260 |
$this->addField( "General", "gridCellSize", array(
|
261 |
+
"name" => __( "Size of the grid" ),
|
262 |
"type" => "number",
|
263 |
"default" => 25,
|
264 |
"min" => 1,
|
265 |
"max" => 100,
|
266 |
"mu" => "px",
|
267 |
+
"description" => __( "Tiles are snapped to a virtual grid, <strong>the higher this value the higher the chance to get bottom aligned tiles</strong> (but it needs to crop vertically).", "final-tiles-grid-gallery-lite" ),
|
268 |
"proCall" => false,
|
269 |
"excludeFrom" => array(),
|
270 |
) );
|
271 |
$this->addField( "General", "gridCellSizeDisabledBelow", array(
|
272 |
+
"name" => __( "Disable grid size below resolution" ),
|
273 |
"type" => "number",
|
274 |
"default" => 800,
|
275 |
"min" => 0,
|
276 |
"max" => 4000,
|
277 |
"mu" => "px",
|
278 |
+
"description" => __( "If you have small tiny images under certain resolutions then you can switch off grid size (image cropping) when the screen resolution is below this value.", "final-tiles-grid-gallery-lite" ),
|
279 |
"proCall" => false,
|
280 |
"excludeFrom" => array(),
|
281 |
) );
|
282 |
/*"scrollEffect" , array(
|
283 |
+
"name" => __("Scroll effect"),
|
284 |
"type" => "select",
|
285 |
+
"description" => __("Effect on tiles when scrolling the page", "final-tiles-grid-gallery-lite"),
|
286 |
"values" => array(
|
287 |
"Scroll effect" => array(
|
288 |
"none|None", "slide|Sliding tiles", "zoom|Zoom", "rotate-left|Left rotation", "rotate-right|Right rotation"
|
294 |
$this->addField( "Links & Lightbox", "lightbox", array(
|
295 |
"name" => "Links & Lightbox",
|
296 |
"type" => "select",
|
297 |
+
"description" => __( "Define here what happens when user click on the images. Lightboxes with video support: EverlightBox, LightGallery, Magnific popup, Colorbox (require embed URL)); PrettyPhoto, FancyBox (require embed URL)", "final-tiles-grid-gallery-lite" ),
|
298 |
"values" => array(
|
299 |
"Link" => array( " |No link", "direct|Direct link to image (useful for external lightboxes)|disabled", "post|Post or WooCommerce product|disabled" ),
|
300 |
"Lightboxes" => array(
|
314 |
$this->addField( "Links & Lightbox", "mobileLightbox", array(
|
315 |
"name" => "Links & Lightbox (mobile)",
|
316 |
"type" => "select",
|
317 |
+
"description" => __( "Define here what happens when user click on the images. Lightboxes with video support: EverlightBox, LightGallery, Magnific popup, Colorbox (require embed URL)); PrettyPhoto, FancyBox (require embed URL)", "final-tiles-grid-gallery-lite" ),
|
318 |
"values" => array(
|
319 |
"Link" => array( " |No link", "direct|Direct link to image (useful for external lightboxes)", "post|Post or WooCommerce product|disabled" ),
|
320 |
"Lightboxes" => array(
|
332 |
"excludeFrom" => array(),
|
333 |
) );
|
334 |
$this->addField( "Links & Lightbox", "lightboxImageSize", array(
|
335 |
+
"name" => __( "Image size for the lightbox" ),
|
336 |
"type" => "select",
|
337 |
"description" => "",
|
338 |
"values" => array(
|
342 |
"excludeFrom" => array(),
|
343 |
) );
|
344 |
$this->addField( "Links & Lightbox", "disableLightboxGroups", array(
|
345 |
+
"name" => __( "Disable lightbox grouping" ),
|
346 |
"type" => "toggle",
|
347 |
+
"description" => __( "Flag this option if you don't want to group images when opened in a lightbox.", "final-tiles-grid-gallery-lite" ),
|
348 |
"default" => "F",
|
349 |
"proCall" => false,
|
350 |
"excludeFrom" => array(),
|
351 |
) );
|
352 |
$this->addField( "Links & Lightbox", "blank", array(
|
353 |
+
"name" => __( "Links target" ),
|
354 |
"type" => "toggle",
|
355 |
+
"description" => __( "Open links in a blank page.", "final-tiles-grid-gallery-lite" ),
|
356 |
"proCall" => false,
|
357 |
"excludeFrom" => array(),
|
358 |
) );
|
359 |
$this->addField( "Links & Lightbox", "enableTwitter", array(
|
360 |
+
"name" => __( "Enable Twitter icon" ),
|
361 |
"type" => "toggle",
|
362 |
+
"description" => __( "Enable Twitter sharing.", "final-tiles-grid-gallery-lite" ),
|
363 |
"default" => "F",
|
364 |
"proCall" => false,
|
365 |
"excludeFrom" => array(),
|
366 |
) );
|
367 |
$this->addField( "Links & Lightbox", "enableFacebook", array(
|
368 |
+
"name" => __( "Enable Facebook icon" ),
|
369 |
"type" => "toggle",
|
370 |
+
"description" => __( "Enable Facebook sharing. Note: after the last version of OpenGraph API it's not possible to share a specific image anymore.", "final-tiles-grid-gallery-lite" ),
|
371 |
"default" => "F",
|
372 |
"proCall" => false,
|
373 |
"excludeFrom" => array(),
|
374 |
) );
|
375 |
$this->addField( "Links & Lightbox", "enableGplus", array(
|
376 |
+
"name" => __( "Enable Google Plus icon" ),
|
377 |
"type" => "toggle",
|
378 |
+
"description" => __( "Enable Google Plus sharing", "final-tiles-grid-gallery-lite" ),
|
379 |
"default" => "F",
|
380 |
"proCall" => false,
|
381 |
"excludeFrom" => array(),
|
382 |
) );
|
383 |
$this->addField( "Links & Lightbox", "enablePinterest", array(
|
384 |
+
"name" => __( "Enable Pinterest icon" ),
|
385 |
"type" => "toggle",
|
386 |
+
"description" => __( "Enable Pinterest sharing", "final-tiles-grid-gallery-lite" ),
|
387 |
"default" => "F",
|
388 |
"proCall" => false,
|
389 |
"excludeFrom" => array(),
|
390 |
) );
|
391 |
$this->addField( "Links & Lightbox", "socialIconColor", array(
|
392 |
+
"name" => __( "Color of social sharing icons" ),
|
393 |
"type" => "color",
|
394 |
+
"description" => __( "Set the color of the social sharing icons", "final-tiles-grid-gallery-lite" ),
|
395 |
"default" => "#ffffff",
|
396 |
"proCall" => false,
|
397 |
"excludeFrom" => array(),
|
398 |
) );
|
399 |
$this->addField( "Links & Lightbox", "socialIconStyle", array(
|
400 |
+
"name" => __( "Style of the social icons panel" ),
|
401 |
"type" => "select",
|
402 |
+
"description" => __( "Set the color of the social sharing icons", "final-tiles-grid-gallery-lite" ),
|
403 |
"default" => "none",
|
404 |
"values" => array(
|
405 |
"Style" => array( "none|None", "circle|Circles", "bar|Bar" ),
|
408 |
"excludeFrom" => array(),
|
409 |
) );
|
410 |
$this->addField( "Links & Lightbox", "socialIconPosition", array(
|
411 |
+
"name" => __( "Position of the social icons panel" ),
|
412 |
"type" => "select",
|
413 |
+
"description" => __( "Set the position of the social sharing icons", "final-tiles-grid-gallery-lite" ),
|
414 |
"default" => "bottom",
|
415 |
"values" => array(
|
416 |
"Position" => array( "bottom|Bottom", "right|Right" ),
|
419 |
"excludeFrom" => array(),
|
420 |
) );
|
421 |
$this->addField( "Captions", "captionBehavior", array(
|
422 |
+
"name" => __( "Caption behavior" ),
|
423 |
"type" => "select",
|
424 |
+
"description" => __( "Effect used to show the captions.", "final-tiles-grid-gallery-lite" ),
|
425 |
"values" => array(
|
426 |
"Effect" => array(
|
427 |
"none|Fade in",
|
438 |
"excludeFrom" => array(),
|
439 |
) );
|
440 |
$this->addField( "Captions", "captionMobileBehavior", array(
|
441 |
+
"name" => __( "Caption mobile behavior" ),
|
442 |
"type" => "select",
|
443 |
+
"description" => __( "Caption behavior for mobile devices.", "final-tiles-grid-gallery-lite" ),
|
444 |
"values" => array(
|
445 |
"Behavior" => array(
|
446 |
"desktop|Same as desktop",
|
454 |
"excludeFrom" => array(),
|
455 |
) );
|
456 |
$this->addField( "Captions", "captionPosition", array(
|
457 |
+
"name" => __( "Position" ),
|
458 |
"type" => "select",
|
459 |
+
"description" => __( "Choose the position of the caption.", "final-tiles-grid-gallery-lite" ),
|
460 |
"values" => array(
|
461 |
"Behavior" => array( "inside|Inside", "outside|Outside (EXPERIMENTAL)" ),
|
462 |
),
|
464 |
"excludeFrom" => array(),
|
465 |
) );
|
466 |
/*"captionFullHeight" , array(
|
467 |
+
"name" => __("Caption full height"),
|
468 |
"type" => "toggle",
|
469 |
+
"description" => __("Enable this option for full height captions. <strong>This is required if you want to use caption icons and caption effects other than <i>fade</i>.</strong>", "final-tiles-grid-gallery-lite"),
|
470 |
"default" => "T",
|
471 |
"proCall" => false,
|
472 |
"excludeFrom" => array()
|
473 |
));*/
|
474 |
$this->addField( "Captions", "captionEmpty", array(
|
475 |
+
"name" => __( "Empty captions" ),
|
476 |
"type" => "select",
|
477 |
+
"description" => __( "Choose if empty caption has to be shown.", "final-tiles-grid-gallery-lite" ),
|
478 |
"values" => array(
|
479 |
"Empty captions" => array( "hide|Don't show empty captions", "show|Show empty captions|disabled" ),
|
480 |
),
|
482 |
"excludeFrom" => array(),
|
483 |
) );
|
484 |
$this->addField( "Captions", "captionIcon", array(
|
485 |
+
"name" => __( "Caption icon" ),
|
486 |
"type" => "select",
|
487 |
+
"description" => __( "Choose the icon for the captions.", "final-tiles-grid-gallery-lite" ),
|
488 |
"values" => array(
|
489 |
"Icon" => array(
|
490 |
"|None",
|
507 |
"excludeFrom" => array(),
|
508 |
) );
|
509 |
$this->addField( "Captions", "customCaptionIcon", array(
|
510 |
+
"name" => __( "Custom caption icon" ),
|
511 |
"type" => FinalTiles_Gallery::getFieldType( "customCaptionIcon" ),
|
512 |
+
"description" => __( "Use this field to insert the class of a FontAwesome icon (i.e.: fa-heart). <a href='https://fontawesome.com/v4.7.0/icons/' target='blank'>See all available icons</a>. <strong>This value override the <i>Caption icon</i> value</strong>.", "final-tiles-grid-gallery-lite" ),
|
513 |
"proCall" => false,
|
514 |
"excludeFrom" => array(),
|
515 |
) );
|
516 |
$this->addField( "Captions", "captionIconColor", array(
|
517 |
+
"name" => __( "Caption icon color" ),
|
518 |
"type" => "color",
|
519 |
+
"description" => __( "Color of the icon in captions.", "final-tiles-grid-gallery-lite" ),
|
520 |
"default" => "#ffffff",
|
521 |
"proCall" => false,
|
522 |
"excludeFrom" => array(),
|
523 |
) );
|
524 |
$this->addField( "Captions", "captionIconSize", array(
|
525 |
+
"name" => __( "Caption icon size" ),
|
526 |
"type" => "number",
|
527 |
+
"description" => __( "Size of the icon in captions.", "final-tiles-grid-gallery-lite" ),
|
528 |
"default" => 12,
|
529 |
"min" => 10,
|
530 |
"max" => 96,
|
533 |
"excludeFrom" => array(),
|
534 |
) );
|
535 |
$this->addField( "Captions", "captionFontSize", array(
|
536 |
+
"name" => __( "Caption font size" ),
|
537 |
"type" => "number",
|
538 |
+
"description" => __( "Size of the font in captions.", "final-tiles-grid-gallery-lite" ),
|
539 |
"default" => 12,
|
540 |
"min" => 10,
|
541 |
"max" => 96,
|
544 |
"excludeFrom" => array(),
|
545 |
) );
|
546 |
$this->addField( "Captions", "captionEasing", array(
|
547 |
+
"name" => __( "Caption effect easing" ),
|
548 |
"type" => "select",
|
549 |
+
"description" => __( "Easing function for the caption animation, works better with sliding animations.", "final-tiles-grid-gallery-lite" ),
|
550 |
"values" => array(
|
551 |
"Easing" => array(
|
552 |
"ease|Ease",
|
560 |
"excludeFrom" => array(),
|
561 |
) );
|
562 |
$this->addField( "Captions", "captionFrame", array(
|
563 |
+
"name" => __( "Caption frame" ),
|
564 |
"type" => "toggle",
|
565 |
+
"description" => __( "Add a frame around the caption", "final-tiles-grid-gallery-lite" ),
|
566 |
"default" => "F",
|
567 |
"proCall" => false,
|
568 |
"excludeFrom" => array(),
|
569 |
) );
|
570 |
$this->addField( "Captions", "captionFrameColor", array(
|
571 |
+
"name" => __( "Caption frame color" ),
|
572 |
"type" => "color",
|
573 |
+
"description" => __( "Color of the frame around the caption", "final-tiles-grid-gallery-lite" ),
|
574 |
"default" => "#ffffff",
|
575 |
"proCall" => false,
|
576 |
"excludeFrom" => array(),
|
577 |
) );
|
578 |
$this->addField( "Captions", "captionColor", array(
|
579 |
+
"name" => __( "Caption color" ),
|
580 |
"type" => "color",
|
581 |
+
"description" => __( "Text color of the captions.", "final-tiles-grid-gallery-lite" ),
|
582 |
"default" => "#ffffff",
|
583 |
"proCall" => false,
|
584 |
"excludeFrom" => array(),
|
585 |
) );
|
586 |
$this->addField( "Captions", "captionEffectDuration", array(
|
587 |
+
"name" => __( "Caption effect duration" ),
|
588 |
"type" => "text",
|
589 |
+
"description" => __( "Duration of the caption animation.", "final-tiles-grid-gallery-lite" ),
|
590 |
"default" => 250,
|
591 |
"mu" => "ms",
|
592 |
"min" => 0,
|
595 |
"excludeFrom" => array(),
|
596 |
) );
|
597 |
$this->addField( "Captions", "captionBackgroundColor", array(
|
598 |
+
"name" => __( "Caption background color" ),
|
599 |
"type" => "color",
|
600 |
+
"description" => __( "Caption background color", "final-tiles-grid-gallery-lite" ),
|
601 |
"default" => "#000000",
|
602 |
"proCall" => false,
|
603 |
"excludeFrom" => array(),
|
604 |
) );
|
605 |
$this->addField( "Captions", "captionOpacity", array(
|
606 |
+
"name" => __( "Caption opacity" ),
|
607 |
"type" => "text",
|
608 |
+
"description" => __( "Opacity of the caption, 0% means 'invisible' while 100% is a plain color without opacity.", "final-tiles-grid-gallery-lite" ),
|
609 |
"default" => 80,
|
610 |
"min" => 0,
|
611 |
"max" => 100,
|
614 |
"excludeFrom" => array(),
|
615 |
) );
|
616 |
$this->addField( "Captions", "wp_field_caption", array(
|
617 |
+
"name" => __( "WordPress caption field" ),
|
618 |
"type" => "select",
|
619 |
+
"description" => __( "WordPress field used for captions. <strong>This field is used ONLY when images are added to the gallery, </strong> however, if you want to ignore captions just set it to '<i>Don't use captions</i>'.", "final-tiles-grid-gallery-lite" ),
|
620 |
"values" => array(
|
621 |
"Field" => array(
|
622 |
"none|Don't use captions",
|
629 |
"excludeFrom" => array( "shortcode" ),
|
630 |
) );
|
631 |
$this->addField( "Captions", "wp_field_title", array(
|
632 |
+
"name" => __( "WordPress title field" ),
|
633 |
"type" => "select",
|
634 |
+
"description" => __( "WordPress field used for titles. <strong>This field is used ONLY when images are added to the gallery, </strong> however, if you want to ignore titles just set it to '<i>Don't use titles</i>'.", "final-tiles-grid-gallery-lite" ),
|
635 |
"values" => array(
|
636 |
"Field" => array( "none|Don't use titles", "title|Title", "description|Description" ),
|
637 |
),
|
639 |
"excludeFrom" => array( "shortcode" ),
|
640 |
) );
|
641 |
$this->addField( "Captions", "recentPostsCaption", array(
|
642 |
+
"name" => __( "Recent posts caption" ),
|
643 |
"type" => "select",
|
644 |
+
"description" => __( "Field of the post used for captions when using \"Recent posts\" as source.", "final-tiles-grid-gallery-lite" ),
|
645 |
"values" => array(
|
646 |
"Field" => array(
|
647 |
"none|Don't use captions",
|
657 |
$this->addField( "Captions", "recentPostsCaptionAutoExcerptLength", array(
|
658 |
"name" => "Max number of words for 'Auto excerpt'",
|
659 |
"type" => "text",
|
660 |
+
"description" => __( "Define the max number of words of the caption when <i>Recent posts caption</i> is set to <i>Auto excerpt</i>.", "final-tiles-grid-gallery-lite" ),
|
661 |
"default" => "20",
|
662 |
"proCall" => false,
|
663 |
"excludeFrom" => array(),
|
664 |
) );
|
665 |
$this->addField( "Captions", "captionVerticalAlignment", array(
|
666 |
+
"name" => __( "Caption Vertical Alignment" ),
|
667 |
"type" => "select",
|
668 |
+
"description" => __( "Choose the vertical alignment of the caption", "final-tiles-grid-gallery-lite" ),
|
669 |
"values" => array(
|
670 |
"Caption vertical alignment" => array( "top|Top", "middle|Middle", "bottom|Bottom" ),
|
671 |
),
|
673 |
"excludeFrom" => array(),
|
674 |
) );
|
675 |
$this->addField( "Captions", "captionHorizontalAlignment", array(
|
676 |
+
"name" => __( "Caption Horizontal Alignment" ),
|
677 |
"type" => "select",
|
678 |
+
"description" => __( "Choose the horizontal alignment of the caption", "final-tiles-grid-gallery-lite" ),
|
679 |
"values" => array(
|
680 |
"Caption horizontal alignment" => array( "left|Left", "center|Center", "right|Right" ),
|
681 |
),
|
683 |
"excludeFrom" => array(),
|
684 |
) );
|
685 |
$this->addField( "Captions", "titleFontSize", array(
|
686 |
+
"name" => __( "Title font size" ),
|
687 |
"type" => "number",
|
688 |
+
"description" => __( "Size of the font in captions.", "final-tiles-grid-gallery-lite" ),
|
689 |
"min" => 10,
|
690 |
"max" => 96,
|
691 |
"mu" => "px",
|
693 |
"excludeFrom" => array(),
|
694 |
) );
|
695 |
$this->addField( "Hover effects", "hoverZoom", array(
|
696 |
+
"name" => __( "Zoom" ),
|
697 |
"type" => FinalTiles_gallery::getFieldType( "hoverZoom" ),
|
698 |
+
"description" => __( "Scale value.", "final-tiles-grid-gallery-lite" ),
|
699 |
"default" => 100,
|
700 |
"min" => 0,
|
701 |
"max" => 600,
|
704 |
"excludeFrom" => array(),
|
705 |
) );
|
706 |
$this->addField( "Hover effects", "hoverRotation", array(
|
707 |
+
"name" => __( "Rotation" ),
|
708 |
"type" => FinalTiles_gallery::getFieldType( "hoverRotation" ),
|
709 |
+
"description" => __( "Rotation value in degrees.", "final-tiles-grid-gallery-lite" ),
|
710 |
"min" => 0,
|
711 |
"max" => 360,
|
712 |
"mu" => "deg",
|
715 |
"excludeFrom" => array(),
|
716 |
) );
|
717 |
$this->addField( "Hover effects", "hoverDuration", array(
|
718 |
+
"name" => __( "Duration" ),
|
719 |
"description" => "",
|
720 |
"type" => FinalTiles_gallery::getFieldType( "hoverDuration" ),
|
721 |
"min" => 10,
|
726 |
"excludeFrom" => array(),
|
727 |
) );
|
728 |
$this->addField( "Hover effects", "hoverIconRotation", array(
|
729 |
+
"name" => __( "Rotate icon" ),
|
730 |
"type" => "toggle",
|
731 |
"default" => "F",
|
732 |
+
"description" => __( "Enable rotation of the icon.", "final-tiles-grid-gallery-lite" ),
|
733 |
"proCall" => false,
|
734 |
"excludeFrom" => array(),
|
735 |
) );
|
736 |
$this->addField( "Image loaded effects", "loadedDuration", array(
|
737 |
+
"name" => __( "Duration" ),
|
738 |
"description" => "",
|
739 |
"type" => "slider",
|
740 |
"min" => 10,
|
745 |
"excludeFrom" => array(),
|
746 |
) );
|
747 |
$this->addField( "Image loaded effects", "loadedEasing", array(
|
748 |
+
"name" => __( "Easing curve" ),
|
749 |
"type" => "select",
|
750 |
+
"description" => __( "Choose the easing curve for the loading effect animation", "final-tiles-grid-gallery-lite" ),
|
751 |
"values" => array(
|
752 |
"Easing curve" => array(
|
753 |
"linear|Linear",
|
764 |
"excludeFrom" => array(),
|
765 |
) );
|
766 |
$this->addField( "Image loaded effects", "loadedScaleY", array(
|
767 |
+
"name" => __( "Vertical scaling" ),
|
768 |
"description" => "",
|
769 |
"type" => "slider",
|
770 |
"min" => 1,
|
775 |
"excludeFrom" => array(),
|
776 |
) );
|
777 |
$this->addField( "Image loaded effects", "loadedScaleX", array(
|
778 |
+
"name" => __( "Horizontal scaling" ),
|
779 |
"description" => "",
|
780 |
"type" => "slider",
|
781 |
"min" => 1,
|
786 |
"excludeFrom" => array(),
|
787 |
) );
|
788 |
$this->addField( "Image loaded effects", "loadedRotateY", array(
|
789 |
+
"name" => __( "Vertical rotation" ),
|
790 |
"description" => "",
|
791 |
"type" => "slider",
|
792 |
"min" => -180,
|
797 |
"excludeFrom" => array(),
|
798 |
) );
|
799 |
$this->addField( "Image loaded effects", "loadedRotateX", array(
|
800 |
+
"name" => __( "Horizontal rotation" ),
|
801 |
"description" => "",
|
802 |
"type" => "slider",
|
803 |
"min" => -180,
|
808 |
"excludeFrom" => array(),
|
809 |
) );
|
810 |
$this->addField( "Image loaded effects", "loadedHSlide", array(
|
811 |
+
"name" => __( "Horizontal slide" ),
|
812 |
"description" => "",
|
813 |
"type" => "slider",
|
814 |
"min" => -1000,
|
819 |
"excludeFrom" => array(),
|
820 |
) );
|
821 |
$this->addField( "Image loaded effects", "loadedVSlide", array(
|
822 |
+
"name" => __( "Vertical slide" ),
|
823 |
"description" => "",
|
824 |
"type" => "slider",
|
825 |
"min" => -1000,
|
830 |
"excludeFrom" => array(),
|
831 |
) );
|
832 |
$this->addField( "Style", "borderSize", array(
|
833 |
+
"name" => __( "Border size" ),
|
834 |
"type" => "number",
|
835 |
+
"description" => __( "Size of the border of each image.", "final-tiles-grid-gallery-lite" ),
|
836 |
"default" => 0,
|
837 |
"min" => 0,
|
838 |
"max" => 10,
|
841 |
"excludeFrom" => array(),
|
842 |
) );
|
843 |
$this->addField( "Style", "borderRadius", array(
|
844 |
+
"name" => __( "Border radius" ),
|
845 |
"type" => "number",
|
846 |
+
"description" => __( "Border radius of the images.", "final-tiles-grid-gallery-lite" ),
|
847 |
"default" => 0,
|
848 |
"min" => 0,
|
849 |
"max" => 100,
|
852 |
"excludeFrom" => array(),
|
853 |
) );
|
854 |
$this->addField( "Style", "borderColor", array(
|
855 |
+
"name" => __( "Border color" ),
|
856 |
"type" => "color",
|
857 |
+
"description" => __( "Color of the border when size is greater than 0.", "final-tiles-grid-gallery-lite" ),
|
858 |
"default" => "#000000",
|
859 |
"proCall" => false,
|
860 |
"excludeFrom" => array(),
|
861 |
) );
|
862 |
$this->addField( "Style", "loadingBarColor", array(
|
863 |
+
"name" => __( "Loading Bar color" ),
|
864 |
"type" => "color",
|
865 |
+
"description" => __( "Color of the loading bar", "final-tiles-grid-gallery-lite" ),
|
866 |
"default" => "#000000",
|
867 |
"proCall" => false,
|
868 |
"excludeFrom" => array(),
|
869 |
) );
|
870 |
$this->addField( "Style", "loadingBarBackgroundColor", array(
|
871 |
+
"name" => __( "Loading Bar background color" ),
|
872 |
"type" => "color",
|
873 |
+
"description" => __( "Background color of the loading bar", "final-tiles-grid-gallery-lite" ),
|
874 |
"default" => "#cccccc",
|
875 |
"proCall" => false,
|
876 |
"excludeFrom" => array(),
|
877 |
) );
|
878 |
$this->addField( "Style", "shadowSize", array(
|
879 |
+
"name" => __( "Shadow size" ),
|
880 |
"type" => "number",
|
881 |
+
"description" => __( "Shadow size of the images.", "final-tiles-grid-gallery-lite" ),
|
882 |
"default" => 0,
|
883 |
"min" => 0,
|
884 |
"max" => 20,
|
887 |
"excludeFrom" => array(),
|
888 |
) );
|
889 |
$this->addField( "Style", "shadowColor", array(
|
890 |
+
"name" => __( "Shadow color" ),
|
891 |
"type" => "color",
|
892 |
+
"description" => __( "Color of the shadow when size is greater than 0.", "final-tiles-grid-gallery-lite" ),
|
893 |
"default" => "#000000",
|
894 |
"proCall" => false,
|
895 |
"excludeFrom" => array(),
|
896 |
) );
|
897 |
$this->addField( "Style", "backgroundColor", array(
|
898 |
+
"name" => __( "Tile background color" ),
|
899 |
"type" => "color",
|
900 |
+
"description" => __( "Background color of tiles", "final-tiles-grid-gallery-lite" ),
|
901 |
"default" => "#fafafa",
|
902 |
"proCall" => false,
|
903 |
"excludeFrom" => array(),
|
904 |
) );
|
905 |
$this->addField( "Customizations", "aClass", array(
|
906 |
+
"name" => __( "Additional CSS class on A tag" ),
|
907 |
"type" => "text",
|
908 |
+
"description" => __( "Use this field if you need to add additional CSS classes to the link that contains the image.", "final-tiles-grid-gallery-lite" ),
|
909 |
"default" => "",
|
910 |
"proCall" => false,
|
911 |
"excludeFrom" => array(),
|
912 |
) );
|
913 |
$this->addField( "Customizations", "rel", array(
|
914 |
+
"name" => __( "Value of 'rel' attribute on the link that contains the image.", "final-tiles-grid-gallery-lite" ),
|
915 |
"type" => "text",
|
916 |
+
"description" => __( "Use this field if you need to add additional CSS classes to the link that contains the image. This is useful mostly to integrate the gallery with other lightbox plugins.", "final-tiles-grid-gallery-lite" ),
|
917 |
"default" => "",
|
918 |
"proCall" => false,
|
919 |
"excludeFrom" => array(),
|
920 |
) );
|
921 |
$this->addField( "Customizations", "beforeGalleryText", array(
|
922 |
+
"name" => __( "Text before gallery" ),
|
923 |
"type" => "textarea",
|
924 |
+
"description" => __( "Use this field to add text/html to be placed just before your gallery.", "final-tiles-grid-gallery-lite" ),
|
925 |
"proCall" => false,
|
926 |
"excludeFrom" => array( "shortcode" ),
|
927 |
) );
|
928 |
$this->addField( "Customizations", "afterGalleryText", array(
|
929 |
+
"name" => __( "Text after gallery" ),
|
930 |
"type" => "textarea",
|
931 |
+
"description" => __( "Use this field to add text/html to be placed just after your gallery.", "final-tiles-grid-gallery-lite" ),
|
932 |
"proCall" => false,
|
933 |
"excludeFrom" => array( "shortcode" ),
|
934 |
) );
|
935 |
$this->addField( "Customizations", "style", array(
|
936 |
+
"name" => __( "Custom CSS" ),
|
937 |
"type" => "textarea",
|
938 |
+
"description" => __( "<strong>Write just the code without using the <style> tag.</strong><br>List of useful selectors:<br>\n <br>\n <ul>\n <li>\n <em>.final-tiles-gallery</em> : gallery container;\n </li>\n <li>\n <em>.final-tiles-gallery .tile-inner</em> : tile content;\n </li>\n <li>\n <em>.final-tiles-gallery .tile-inner .item</em> : image of the tile;\n </li>\n <li>\n <em>.final-tiles-gallery .tile-inner .caption</em> : caption of the tile;\n </li>\n <li>\n <em>.final-tiles-gallery .ftg-filters</em> : filters container\n </li>\n <li>\n <em>.final-tiles-gallery .ftg-filters a</em> : filter\n </li>\n <li>\n <em>.final-tiles-gallery .ftg-filters a.selected</em> : selected filter\n </li>\n </ul>", "final-tiles-grid-gallery-lite" ),
|
939 |
"proCall" => false,
|
940 |
"excludeFrom" => array( "shortcode" ),
|
941 |
) );
|
942 |
$this->addField( "Customizations", "script", array(
|
943 |
+
"name" => __( "Custom scripts" ),
|
944 |
"type" => "textarea",
|
945 |
+
"description" => __( "This script will be called after the gallery initialization. Useful for custom lightboxes.\n <br />\n <br />\n <strong>Write just the code without using the <script></script> tags</strong>", "final-tiles-grid-gallery-lite" ),
|
946 |
"proCall" => false,
|
947 |
"excludeFrom" => array( "shortcode" ),
|
948 |
) );
|
949 |
$this->addField( "Customizations", "delay", array(
|
950 |
+
"name" => __( "Delay" ),
|
951 |
"type" => "text",
|
952 |
+
"description" => __( "Delay (in milliseconds) before firing the gallery. Sometimes it's needed to avoid conflicts with other plugins.", "final-tiles-grid-gallery-lite" ),
|
953 |
"min" => 0,
|
954 |
"max" => 5000,
|
955 |
"mu" => "ms",
|
958 |
"excludeFrom" => array(),
|
959 |
) );
|
960 |
$this->addField( "Customizations", "support", array(
|
961 |
+
"name" => __( "Show developer link" ),
|
962 |
"type" => "toggle",
|
963 |
+
"description" => __( "I want to support this plugin, show the developer link!", "final-tiles-grid-gallery-lite" ),
|
964 |
"default" => "F",
|
965 |
"proCall" => false,
|
966 |
"excludeFrom" => array(),
|
968 |
"excludeFrom" => array(),
|
969 |
) );
|
970 |
$this->addField( "Customizations", "supportText", array(
|
971 |
+
"name" => __( "Developer link text" ),
|
972 |
"type" => "text",
|
973 |
+
"description" => __( "Text for the developer link", "final-tiles-grid-gallery-lite" ),
|
974 |
"default" => "powered by Final Tiles Grid Gallery",
|
975 |
"proCall" => false,
|
976 |
"excludeFrom" => array(),
|
977 |
) );
|
978 |
$this->addField( "Advanced", "columnsTabletLandscape", array(
|
979 |
+
"name" => __( "Number of columns (Tablet landscape)", "final-tiles-grid-gallery-lite" ),
|
980 |
"type" => "number",
|
981 |
"description" => "",
|
982 |
"mu" => "",
|
986 |
"excludeFrom" => array(),
|
987 |
) );
|
988 |
$this->addField( "Advanced", "columnsTabletPortrait", array(
|
989 |
+
"name" => __( "Number of columns (Tablet portrait)", "final-tiles-grid-gallery-lite" ),
|
990 |
"type" => "number",
|
991 |
"description" => "",
|
992 |
"mu" => "",
|
996 |
"excludeFrom" => array(),
|
997 |
) );
|
998 |
$this->addField( "Advanced", "columnsPhoneLandscape", array(
|
999 |
+
"name" => __( "Number of columns (Phone landscape)", "final-tiles-grid-gallery-lite" ),
|
1000 |
"type" => "number",
|
1001 |
"description" => "",
|
1002 |
"mu" => "",
|
1006 |
"excludeFrom" => array(),
|
1007 |
) );
|
1008 |
$this->addField( "Advanced", "columnsPhonePortrait", array(
|
1009 |
+
"name" => __( "Number of columns (Phone portrait)", "final-tiles-grid-gallery-lite" ),
|
1010 |
"type" => "number",
|
1011 |
"description" => "",
|
1012 |
"mu" => "",
|
1016 |
"excludeFrom" => array(),
|
1017 |
) );
|
1018 |
$this->addField( "Advanced", "imageSizeFactor", array(
|
1019 |
+
"name" => __( "Image size factor" ),
|
1020 |
"type" => "slider",
|
1021 |
+
"description" => __( "Percentage of image size, i.e.: if an image of the gallery is 300x200 and the size factor is 50% then the resulting image will be 150x100.\n 90% is a suggested default value, because under some circumstances, the images could be enlarged by the script (to fill gaps and avoid blank spaces between tiles).", "final-tiles-grid-gallery-lite" ),
|
1022 |
"default" => 90,
|
1023 |
"min" => 1,
|
1024 |
"max" => 100,
|
1029 |
$this->addField( "Advanced", "imageSizeFactorTabletLandscape", array(
|
1030 |
"name" => "Image size factor (Tablet Landscape)",
|
1031 |
"type" => "slider",
|
1032 |
+
"description" => __( "Image size factor to apply when the viewport is 1024px, typically for tablets with landscape orientation", "final-tiles-grid-gallery-lite" ),
|
1033 |
"default" => 80,
|
1034 |
"min" => 1,
|
1035 |
"max" => 100,
|
1038 |
"excludeFrom" => array(),
|
1039 |
) );
|
1040 |
$this->addField( "Advanced", "imageSizeFactorTabletPortrait", array(
|
1041 |
+
"name" => __( "Image size factor Tablet Portrait" ),
|
1042 |
"type" => "slider",
|
1043 |
+
"description" => __( "Image size factor to apply when the viewport is 768px, typically for tablets with portrait orientation", "final-tiles-grid-gallery-lite" ),
|
1044 |
"default" => 70,
|
1045 |
"min" => 1,
|
1046 |
"max" => 100,
|
1049 |
"excludeFrom" => array(),
|
1050 |
) );
|
1051 |
$this->addField( "Advanced", "imageSizeFactorPhoneLandscape", array(
|
1052 |
+
"name" => __( "Image size factor Smartphone Landscape" ),
|
1053 |
"type" => "slider",
|
1054 |
+
"description" => __( "Image size factor to apply when the viewport is 640px, typically for smartphones with landscape orientation", "final-tiles-grid-gallery-lite" ),
|
1055 |
"default" => 60,
|
1056 |
"min" => 1,
|
1057 |
"max" => 100,
|
1060 |
"excludeFrom" => array(),
|
1061 |
) );
|
1062 |
$this->addField( "Advanced", "imageSizeFactorPhonePortrait", array(
|
1063 |
+
"name" => __( "Image size factor Phone Portrait" ),
|
1064 |
"type" => "slider",
|
1065 |
+
"description" => __( "Image size factor to apply when the viewport is 320px, typically for smartphones with portrait orientation", "final-tiles-grid-gallery-lite" ),
|
1066 |
"default" => 50,
|
1067 |
"min" => 1,
|
1068 |
"max" => 100,
|
1071 |
"excludeFrom" => array(),
|
1072 |
) );
|
1073 |
$this->addField( "Advanced", "imageSizeFactorCustom", array(
|
1074 |
+
"name" => __( "Custom image size factor" ),
|
1075 |
"hiddenFor" => array( "dashboard", "shortcode" ),
|
1076 |
"type" => FinalTiles_Gallery::getFieldType( "custom_isf" ),
|
1077 |
+
"description" => __( "Use this field if you need further resolutions. Make custom layout for any device and resolution.", "final-tiles-grid-gallery-lite" ),
|
1078 |
"proCall" => true,
|
1079 |
"excludeFrom" => array( "dashboard", "shortcode" ),
|
1080 |
) );
|
1081 |
$this->addField( "Advanced", "compressHTML", array(
|
1082 |
+
"name" => __( "Compress HTML" ),
|
1083 |
"type" => "toggle",
|
1084 |
+
"description" => __( "Enable or disable HTML compression, some themes prefer uncompressed, switch it off in case of problems.", "final-tiles-grid-gallery-lite" ),
|
1085 |
"default" => "T",
|
1086 |
"proCall" => false,
|
1087 |
"excludeFrom" => array(),
|
1088 |
) );
|
1089 |
$this->addField( "Advanced", "minTileWidth", array(
|
1090 |
+
"name" => __( "Tile minimum width" ),
|
1091 |
"type" => "number",
|
1092 |
+
"description" => __( "Minimum width of each tile, <strong>multiply this value for the image size factor to get the real size</strong>.", "final-tiles-grid-gallery-lite" ),
|
1093 |
"mu" => "px",
|
1094 |
"min" => 50,
|
1095 |
"max" => 500,
|
1098 |
"excludeFrom" => array(),
|
1099 |
) );
|
1100 |
$this->addField( "Advanced", "enlargeImages", array(
|
1101 |
+
"name" => __( "Allow image enlargement" ),
|
1102 |
"type" => "toggle",
|
1103 |
+
"description" => __( "Images can be occasionally enlarged to avoid gaps. If you notice a quality loss try to reduce the <strong>Image size factor</strong> parameter.", "final-tiles-grid-gallery-lite" ),
|
1104 |
"default" => "T",
|
1105 |
"proCall" => false,
|
1106 |
"excludeFrom" => array(),
|
1109 |
$this->addField( "Advanced", "allFilterLabel", array(
|
1110 |
"name" => "Text for 'All' filter",
|
1111 |
"type" => "text",
|
1112 |
+
"description" => __( "Write here the label for the 'All' filter", "final-tiles-grid-gallery-lite" ),
|
1113 |
"proCall" => false,
|
1114 |
"excludeFrom" => array(),
|
1115 |
) );
|
admin/overview.php
CHANGED
@@ -1,44 +1,42 @@
|
|
1 |
-
<?php if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(_e('You are not allowed to call this page directly.','final-tiles-gallery')); } ?>
|
2 |
|
3 |
<?php $ftg_subtitle = "Dashboard" ?>
|
4 |
-
<?php include "header.php" ?>
|
5 |
|
6 |
<?php
|
7 |
-
$colors = array('pink', 'purple', 'indigo', 'blue',
|
8 |
-
'light-blue', 'cyan', 'teal', 'green',
|
9 |
-
'lime', 'yellow', 'orange', 'deep-orange', 'brown');
|
10 |
-
$idx = 0;
|
11 |
$galleries = $this->FinalTilesdb->getGalleries();
|
12 |
?>
|
13 |
|
14 |
-
<div class="bd">
|
|
|
|
|
|
|
15 |
<?php if(count($galleries) == 0) : ?>
|
16 |
<div class="row ">
|
17 |
<div class="col s9">
|
18 |
<div class="card-panel light-green lighten-4">
|
19 |
-
<h5 class="cyan-text text-darken-3"><?php _e('Welcome to Final Tiles Grid Gallery!','final-tiles-gallery')?></h5>
|
20 |
<p>
|
21 |
-
<?php _e('Create your first awesome gallery, click','final-tiles-gallery')?> <a href="?page=ftg-add-gallery"><?php _e('here','final-tiles-gallery')?></a>.
|
22 |
</p>
|
23 |
</div>
|
24 |
</div>
|
25 |
<div class="col s3">
|
26 |
-
<?php if ( ftg_fs()->is_not_paying()
|
27 |
<ul class="collapsible gallery-actions">
|
28 |
<li class="active">
|
29 |
-
<div class="collapsible-header"><?php _e('Upgrade', 'final-tiles-gallery') ?>: <?php _e('unlock features', 'final-tiles-gallery') ?></div>
|
30 |
<div class="collapsible-body">
|
31 |
<div class="ftg-upsell">
|
32 |
-
<a href="<?php echo ftg_fs()->get_upgrade_url() ?>"><i class="fa fa-hand-o-right"></i> <?php _e('Upgrade', 'final-tiles-gallery') ?></a>
|
33 |
</div>
|
34 |
<p>or save 30% purchasing the <strong>BUNDLE</strong>:</p>
|
35 |
<div class="ftg-upsell">
|
36 |
<a target="_blank" href="https://www.final-tiles-gallery.com/wordpress/bundle">
|
37 |
<i class="fa fa-star"></i>
|
38 |
-
Bundle: 30% <?php _e('discount', 'final-tiles-gallery') ?></a>
|
39 |
</div>
|
40 |
<p class="upsell-info">
|
41 |
-
<?php _e('GET 3 plugins', 'final-tiles-gallery') ?>: Final Tiles Gallery Ultimate + EverlightBox + PostSnippet
|
42 |
</p>
|
43 |
</div>
|
44 |
</li>
|
@@ -48,53 +46,77 @@
|
|
48 |
</div>
|
49 |
<?php else : ?>
|
50 |
<div id="gallery-list" class="row">
|
|
|
51 |
<div class="col s9">
|
52 |
-
<?php
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
<a href="?page=ftg-lite-gallery-admin&id=<?php print $gallery->Id ?>" data-tooltip="Edit gallery" data-position="top" data-delay="10" class="tooltipped waves-effect waves-<?php print $colors[$idx % count($colors)] ?>"><i class="mdi mdi-pencil"></i></a>
|
71 |
-
<a data-tooltip="Clone gallery" data-position="top" data-delay="10" class="tooltipped waves-effect waves-<?php print $colors[$idx % count($colors)] ?> clone-gallery" data-gid="<?php print $gallery->Id ?>"><i class="mdi mdi-content-copy"></i></a>
|
72 |
|
73 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
</div>
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
</div>
|
81 |
<div class="col s3">
|
82 |
-
<?php if ( ftg_fs()->is_not_paying()
|
83 |
<ul class="collapsible gallery-actions">
|
84 |
<li class="active">
|
85 |
-
<div class="collapsible-header"><?php _e('Upgrade', 'final-tiles-gallery') ?>: <?php _e('unlock features', 'final-tiles-gallery') ?></div>
|
86 |
<div class="collapsible-body">
|
87 |
<div class="ftg-upsell">
|
88 |
-
<a href="<?php echo ftg_fs()->get_upgrade_url() ?>"><i class="fa fa-hand-o-right"></i> <?php _e('Upgrade', 'final-tiles-gallery') ?></a>
|
89 |
</div>
|
90 |
<p>or save 30% purchasing the <strong>BUNDLE</strong>:</p>
|
91 |
<div class="ftg-upsell">
|
92 |
<a target="_blank" href="https://www.final-tiles-gallery.com/wordpress/bundle">
|
93 |
<i class="fa fa-star"></i>
|
94 |
-
Bundle: 30% <?php _e('discount', 'final-tiles-gallery') ?></a>
|
95 |
</div>
|
96 |
<p class="upsell-info">
|
97 |
-
<?php _e('GET 3 plugins', 'final-tiles-gallery') ?>: Final Tiles Gallery Ultimate + EverlightBox + PostSnippet
|
98 |
</p>
|
99 |
</div>
|
100 |
</li>
|
@@ -102,10 +124,10 @@
|
|
102 |
<ul class="collapsible gallery-actions">
|
103 |
<li class="active">
|
104 |
<div class="collapsible-header">
|
105 |
-
<?php _e('Galleries','final-tiles-gallery')?>
|
106 |
</div>
|
107 |
<div class="collapsible-body">
|
108 |
-
<a href="?page=ftg-add-gallery" class="button components-button is-primary"><?php _e('Add gallery','final-tiles-gallery')?></a>
|
109 |
</div>
|
110 |
</li>
|
111 |
</ul>
|
@@ -119,23 +141,23 @@
|
|
119 |
<!-- Delete gallery modal -->
|
120 |
<div id="delete-gallery-modal" class="modal">
|
121 |
<div class="modal-content">
|
122 |
-
<h4><?php _e('Confirmation','final-tiles-gallery')?></h4>
|
123 |
-
<p><?php _e('Do you really want to delete the gallery','final-tiles-gallery')?> <span></span> ?</p>
|
124 |
</div>
|
125 |
<div class="modal-footer">
|
126 |
-
<a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat yes"><?php _e('Yes','final-tiles-gallery')?></a>
|
127 |
-
<a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat"><?php _e('No','final-tiles-gallery')?></a>
|
128 |
</div>
|
129 |
</div>
|
130 |
<!-- Shortcode gallery modal -->
|
131 |
<div id="shortcode-gallery-modal" class="modal">
|
132 |
<div class="modal-content">
|
133 |
<h4></h4>
|
134 |
-
<p><?php _e('Copy and paste the following shortcode inside a post, page or widget:','final-tiles-gallery')?></p>
|
135 |
<code></code>
|
136 |
</div>
|
137 |
<div class="modal-footer">
|
138 |
-
<a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat"><?php _e('Close','final-tiles-gallery')?></a>
|
139 |
</div>
|
140 |
</div>
|
141 |
|
@@ -154,35 +176,35 @@
|
|
154 |
(function ($){
|
155 |
var galleryId;
|
156 |
var galleryName;
|
|
|
|
|
|
|
|
|
|
|
157 |
$(".delete-gallery").click(function (e) {
|
158 |
e.preventDefault();
|
159 |
-
|
160 |
galleryName = $(this).parents(".data").find(".card-title").text();
|
161 |
$("#delete-gallery-modal span").text(galleryName);
|
162 |
-
$("#delete-gallery-modal").openModal();
|
163 |
});
|
164 |
$(".clone-gallery").click(function (e) {
|
165 |
e.preventDefault();
|
166 |
var id = $(this).data("gid");
|
167 |
-
var name = $(this).parents(".data").find(".card-title").text();
|
168 |
FTG.show_loading();
|
169 |
$.ajax({
|
170 |
url: ajaxurl,
|
171 |
data: {
|
172 |
action: 'clone_gallery',
|
173 |
id: id,
|
174 |
-
|
175 |
},
|
176 |
dataType: "json",
|
177 |
type: "post",
|
178 |
error: function(a, b, c) {
|
179 |
-
console.log(a, b, c);
|
180 |
FTG.hide_loading();
|
181 |
},
|
182 |
success: function(r) {
|
183 |
-
|
184 |
-
location.href = location.href;
|
185 |
-
//FTG.hide_loading();
|
186 |
}
|
187 |
});
|
188 |
});
|
@@ -211,15 +233,10 @@
|
|
211 |
FTG.hide_loading();
|
212 |
},
|
213 |
success: function(r) {
|
214 |
-
toast('Gallery "'+galleryName+'" deleted', 2000);
|
215 |
$("#gallery-" + galleryId).remove();
|
216 |
FTG.hide_loading();
|
217 |
}
|
218 |
});
|
219 |
});
|
220 |
-
$("body").on("click", ".card-content", function () {
|
221 |
-
var gid = $(this).parents(".card").data("gid");
|
222 |
-
location.href = "?page=ftg-lite-gallery-admin&id=" + gid;
|
223 |
-
});
|
224 |
})(jQuery);
|
225 |
</script>
|
1 |
+
<?php if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(_e('You are not allowed to call this page directly.', 'final-tiles-grid-gallery-lite')); } ?>
|
2 |
|
3 |
<?php $ftg_subtitle = "Dashboard" ?>
|
|
|
4 |
|
5 |
<?php
|
|
|
|
|
|
|
|
|
6 |
$galleries = $this->FinalTilesdb->getGalleries();
|
7 |
?>
|
8 |
|
9 |
+
<div class="bd wrap">
|
10 |
+
<h1 class="wp-heading-inline"><?php _e('Final Tiles Gallery') ?></h1>
|
11 |
+
<h2 class="ftg-subtitle"><?php _e('Galleries') ?></h2>
|
12 |
+
<hr class="wp-header-end">
|
13 |
<?php if(count($galleries) == 0) : ?>
|
14 |
<div class="row ">
|
15 |
<div class="col s9">
|
16 |
<div class="card-panel light-green lighten-4">
|
17 |
+
<h5 class="cyan-text text-darken-3"><?php _e('Welcome to Final Tiles Grid Gallery!', 'final-tiles-grid-gallery-lite')?></h5>
|
18 |
<p>
|
19 |
+
<?php _e('Create your first awesome gallery, click', 'final-tiles-grid-gallery-lite')?> <a href="?page=ftg-add-gallery"><?php _e('here', 'final-tiles-grid-gallery-lite')?></a>.
|
20 |
</p>
|
21 |
</div>
|
22 |
</div>
|
23 |
<div class="col s3">
|
24 |
+
<?php if ( ftg_fs()->is_not_paying()) : ?>
|
25 |
<ul class="collapsible gallery-actions">
|
26 |
<li class="active">
|
27 |
+
<div class="collapsible-header"><?php _e('Upgrade', 'final-tiles-grid-gallery-lite') ?>: <?php _e('unlock features', 'final-tiles-grid-gallery-lite') ?></div>
|
28 |
<div class="collapsible-body">
|
29 |
<div class="ftg-upsell">
|
30 |
+
<a href="<?php echo ftg_fs()->get_upgrade_url() ?>"><i class="fa fa-hand-o-right"></i> <?php _e('Upgrade', 'final-tiles-grid-gallery-lite') ?></a>
|
31 |
</div>
|
32 |
<p>or save 30% purchasing the <strong>BUNDLE</strong>:</p>
|
33 |
<div class="ftg-upsell">
|
34 |
<a target="_blank" href="https://www.final-tiles-gallery.com/wordpress/bundle">
|
35 |
<i class="fa fa-star"></i>
|
36 |
+
Bundle: 30% <?php _e('discount', 'final-tiles-grid-gallery-lite') ?></a>
|
37 |
</div>
|
38 |
<p class="upsell-info">
|
39 |
+
<?php _e('GET 3 plugins', 'final-tiles-grid-gallery-lite') ?>: Final Tiles Gallery Ultimate + EverlightBox + PostSnippet
|
40 |
</p>
|
41 |
</div>
|
42 |
</li>
|
46 |
</div>
|
47 |
<?php else : ?>
|
48 |
<div id="gallery-list" class="row">
|
49 |
+
<form id="reloadform"></form>
|
50 |
<div class="col s9">
|
51 |
+
<?php wp_nonce_field('FinalTiles_gallery', 'FinalTiles_gallery'); ?>
|
52 |
+
|
53 |
+
<table class="wp-list-table widefat fixed striped posts">
|
54 |
+
<thead>
|
55 |
+
<tr>
|
56 |
+
<td scope="col" class="manage-column column-title column-primary">
|
57 |
+
<?php _e('Title', 'final-tiles-grid-gallery-lite') ?>
|
58 |
+
</td>
|
59 |
+
<td scope="col" class="manage-column column-title column-primary">
|
60 |
+
<?php _e('Description', 'final-tiles-grid-gallery-lite') ?>
|
61 |
+
</td>
|
62 |
+
<td scope="col" class="manage-column column-title column-primary">
|
63 |
+
<?php _e('type', 'final-tiles-grid-gallery-lite') ?>
|
64 |
+
</td>
|
65 |
+
<td scope="col" class="manage-column column-title column-primary">
|
66 |
+
<?php _e('Shortcode', 'final-tiles-grid-gallery-lite') ?>
|
67 |
+
</td>
|
68 |
+
</thead>
|
|
|
|
|
69 |
|
70 |
+
<tbody id="the-list">
|
71 |
+
<?php foreach($galleries as $gallery) : ?>
|
72 |
+
<tr id="gallery-<?php print $gallery->Id ?>" class="iedit author-self level-0 post-10 type-post status-publish format-standard hentry">
|
73 |
+
<td class="title column-title has-row-actions column-primary page-title" data-colname="Title">
|
74 |
+
<strong>
|
75 |
+
<a href="?page=ftg-lite-gallery-admin&id=<?php print $gallery->Id ?>"><?php print $gallery->name ?></a>
|
76 |
+
</strong>
|
77 |
+
<div class="row-actions">
|
78 |
+
<span class="edit">
|
79 |
+
<a href="?page=ftg-lite-gallery-admin&id=<?php print $gallery->Id ?>" aria-label="Edit"><?php _e("Edit") ?></a> |
|
80 |
+
</span>
|
81 |
+
<span class="edit">
|
82 |
+
<a href="#" class="clone-gallery" data-gid="<?php print $gallery->Id ?>" aria-label="Clone"><?php _e("Clone gallery") ?></a> |
|
83 |
+
</span>
|
84 |
+
<span class="trash">
|
85 |
+
<a href="#delete-gallery-modal" data-gid="<?php print $gallery->Id ?>" class="modal-trigger submitdelete"><?php _e("Delete gallery", "final-tiles-grid-gallery-lite") ?></a>
|
86 |
+
</span>
|
87 |
</div>
|
88 |
+
</td>
|
89 |
+
<td class="title column-title has-row-actions column-primary">
|
90 |
+
<?php print $gallery->description ?>
|
91 |
+
</td>
|
92 |
+
<td class="title column-title has-row-actions column-primary">
|
93 |
+
<?php print $gallery->source ?>
|
94 |
+
</td>
|
95 |
+
<td class="title column-title has-row-actions column-primary">
|
96 |
+
<span>[FinalTilesGallery id="<?php print $gallery->Id ?>"]</span>
|
97 |
+
</td>
|
98 |
+
</tr>
|
99 |
+
<?php endforeach ?>
|
100 |
+
</tbody>
|
101 |
+
</table>
|
102 |
</div>
|
103 |
<div class="col s3">
|
104 |
+
<?php if ( ftg_fs()->is_not_paying() ) : ?>
|
105 |
<ul class="collapsible gallery-actions">
|
106 |
<li class="active">
|
107 |
+
<div class="collapsible-header"><?php _e('Upgrade', 'final-tiles-grid-gallery-lite') ?>: <?php _e('unlock features', 'final-tiles-grid-gallery-lite') ?></div>
|
108 |
<div class="collapsible-body">
|
109 |
<div class="ftg-upsell">
|
110 |
+
<a href="<?php echo ftg_fs()->get_upgrade_url() ?>"><i class="fa fa-hand-o-right"></i> <?php _e('Upgrade', 'final-tiles-grid-gallery-lite') ?></a>
|
111 |
</div>
|
112 |
<p>or save 30% purchasing the <strong>BUNDLE</strong>:</p>
|
113 |
<div class="ftg-upsell">
|
114 |
<a target="_blank" href="https://www.final-tiles-gallery.com/wordpress/bundle">
|
115 |
<i class="fa fa-star"></i>
|
116 |
+
Bundle: 30% <?php _e('discount', 'final-tiles-grid-gallery-lite') ?></a>
|
117 |
</div>
|
118 |
<p class="upsell-info">
|
119 |
+
<?php _e('GET 3 plugins', 'final-tiles-grid-gallery-lite') ?>: Final Tiles Gallery Ultimate + EverlightBox + PostSnippet
|
120 |
</p>
|
121 |
</div>
|
122 |
</li>
|
124 |
<ul class="collapsible gallery-actions">
|
125 |
<li class="active">
|
126 |
<div class="collapsible-header">
|
127 |
+
<?php _e('Galleries', 'final-tiles-grid-gallery-lite')?>
|
128 |
</div>
|
129 |
<div class="collapsible-body">
|
130 |
+
<a href="?page=ftg-add-gallery" class="button components-button is-primary"><?php _e('Add gallery', 'final-tiles-grid-gallery-lite')?></a>
|
131 |
</div>
|
132 |
</li>
|
133 |
</ul>
|
141 |
<!-- Delete gallery modal -->
|
142 |
<div id="delete-gallery-modal" class="modal">
|
143 |
<div class="modal-content">
|
144 |
+
<h4><?php _e('Confirmation', 'final-tiles-grid-gallery-lite')?></h4>
|
145 |
+
<p><?php _e('Do you really want to delete the gallery', 'final-tiles-grid-gallery-lite')?> <span></span> ?</p>
|
146 |
</div>
|
147 |
<div class="modal-footer">
|
148 |
+
<a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat yes"><?php _e('Yes', 'final-tiles-grid-gallery-lite')?></a>
|
149 |
+
<a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat"><?php _e('No', 'final-tiles-grid-gallery-lite')?></a>
|
150 |
</div>
|
151 |
</div>
|
152 |
<!-- Shortcode gallery modal -->
|
153 |
<div id="shortcode-gallery-modal" class="modal">
|
154 |
<div class="modal-content">
|
155 |
<h4></h4>
|
156 |
+
<p><?php _e('Copy and paste the following shortcode inside a post, page or widget:', 'final-tiles-grid-gallery-lite')?></p>
|
157 |
<code></code>
|
158 |
</div>
|
159 |
<div class="modal-footer">
|
160 |
+
<a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat"><?php _e('Close', 'final-tiles-grid-gallery-lite')?></a>
|
161 |
</div>
|
162 |
</div>
|
163 |
|
176 |
(function ($){
|
177 |
var galleryId;
|
178 |
var galleryName;
|
179 |
+
|
180 |
+
$("[data-gid]").click(function () {
|
181 |
+
galleryId = $(this).data("gid");
|
182 |
+
});
|
183 |
+
|
184 |
$(".delete-gallery").click(function (e) {
|
185 |
e.preventDefault();
|
186 |
+
|
187 |
galleryName = $(this).parents(".data").find(".card-title").text();
|
188 |
$("#delete-gallery-modal span").text(galleryName);
|
|
|
189 |
});
|
190 |
$(".clone-gallery").click(function (e) {
|
191 |
e.preventDefault();
|
192 |
var id = $(this).data("gid");
|
|
|
193 |
FTG.show_loading();
|
194 |
$.ajax({
|
195 |
url: ajaxurl,
|
196 |
data: {
|
197 |
action: 'clone_gallery',
|
198 |
id: id,
|
199 |
+
FinalTiles_gallery: $('#FinalTiles_gallery').val()
|
200 |
},
|
201 |
dataType: "json",
|
202 |
type: "post",
|
203 |
error: function(a, b, c) {
|
|
|
204 |
FTG.hide_loading();
|
205 |
},
|
206 |
success: function(r) {
|
207 |
+
location.href = "?page=ftg-lite-gallery-admin";
|
|
|
|
|
208 |
}
|
209 |
});
|
210 |
});
|
233 |
FTG.hide_loading();
|
234 |
},
|
235 |
success: function(r) {
|
|
|
236 |
$("#gallery-" + galleryId).remove();
|
237 |
FTG.hide_loading();
|
238 |
}
|
239 |
});
|
240 |
});
|
|
|
|
|
|
|
|
|
241 |
})(jQuery);
|
242 |
</script>
|
admin/photoblocks.php
DELETED
@@ -1,30 +0,0 @@
|
|
1 |
-
<?php if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(_e('You are not allowed to call this page directly.','final-tiles-gallery')); } ?>
|
2 |
-
|
3 |
-
<style>
|
4 |
-
#support-page .main-pic {
|
5 |
-
width: 100%;
|
6 |
-
margin-bottom:20px;
|
7 |
-
}
|
8 |
-
#support-page iframe {
|
9 |
-
width: 100%;
|
10 |
-
margin-top:20px;
|
11 |
-
}
|
12 |
-
</style>
|
13 |
-
|
14 |
-
<div class="container">
|
15 |
-
<div class="row">
|
16 |
-
<div class="section s12 m12 l12 col" id="support-page">
|
17 |
-
<h4 class="center-on-small-only">Other galleries:</h4>
|
18 |
-
<h1 class="header center-on-small-only">PhotoBlocks</h1>
|
19 |
-
<a href="https://wordpress.org/plugins/photoblocks-grid-gallery/"><img src="<?php echo plugins_url('images', __FILE__) ?>/photoblocks.png" alt="PhotoBlocks preview" class="main-pic"></a>
|
20 |
-
<p>PhotoBlocks Grid Builder is the stellar feature that makes PhotoBlocks special and different from other galleries.
|
21 |
-
With this tool you can design the layout of your gallery simply by dragging the images. You can make a gallery
|
22 |
-
with images spanning on more columns or rows.</p>
|
23 |
-
<iframe width="100%" height="380px" src="https://www.youtube-nocookie.com/embed/x3zfTDwoQc4?rel=0&controls=0&showinfo=0&autoplay=1&loop=1&playlist=x3zfTDwoQc4&modestbranding=1" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
|
24 |
-
|
25 |
-
<p>
|
26 |
-
<a class="button" href="https://wordpress.org/plugins/photoblocks-grid-gallery/" aria-label="Download PhotoBlocks – Image Photo Grid Gallery 1.0.1" >Download</a>
|
27 |
-
</p>
|
28 |
-
</div>
|
29 |
-
</div>
|
30 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/scripts/final-tiles-gallery-admin.js
CHANGED
@@ -67,6 +67,7 @@ var FTG = function($) {
|
|
67 |
};
|
68 |
$.post(ajaxurl, data, function() {
|
69 |
FTG.hide_loading();
|
|
|
70 |
});
|
71 |
}
|
72 |
});
|
@@ -1178,7 +1179,7 @@ var FTGWizard = function($) {
|
|
1178 |
$_success.find(".gallery-name").text($("[name=ftg_name]").val());
|
1179 |
$_success.find(".customize").attr("href", "?page=ftg-lite-gallery-admin&id=" + id);
|
1180 |
|
1181 |
-
$_success.
|
1182 |
}
|
1183 |
});
|
1184 |
}
|
67 |
};
|
68 |
$.post(ajaxurl, data, function() {
|
69 |
FTG.hide_loading();
|
70 |
+
M.toast({ html: "Gallery updated", classes: 'rounded' });
|
71 |
});
|
72 |
}
|
73 |
});
|
1179 |
$_success.find(".gallery-name").text($("[name=ftg_name]").val());
|
1180 |
$_success.find(".customize").attr("href", "?page=ftg-lite-gallery-admin&id=" + id);
|
1181 |
|
1182 |
+
M.Modal.getInstance($_success).open();
|
1183 |
}
|
1184 |
});
|
1185 |
}
|
admin/scripts/materialize.min.js
CHANGED
@@ -3,4 +3,11959 @@
|
|
3 |
* Copyright 2014-2017 Materialize
|
4 |
* MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)
|
5 |
*/
|
6 |
-
var _get=function t(e,i,n){null===e&&(e=Function.prototype);var s=Object.getOwnPropertyDescriptor(e,i);if(void 0===s){var o=Object.getPrototypeOf(e);return null===o?void 0:t(o,i,n)}if("value"in s)return s.value;var a=s.get;return void 0!==a?a.call(n):void 0},_createClass=function(){function n(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(t,e,i){return e&&n(t.prototype,e),i&&n(t,i),t}}();function _possibleConstructorReturn(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}window.cash=function(){var i,o=document,a=window,t=Array.prototype,r=t.slice,n=t.filter,s=t.push,e=function(){},h=function(t){return typeof t==typeof e&&t.call},d=function(t){return"string"==typeof t},l=/^#[\w-]*$/,u=/^\.[\w-]*$/,c=/<.+>/,p=/^\w+$/;function v(t,e){e=e||o;var i=u.test(t)?e.getElementsByClassName(t.slice(1)):p.test(t)?e.getElementsByTagName(t):e.querySelectorAll(t);return i}function f(t){if(!i){var e=(i=o.implementation.createHTMLDocument(null)).createElement("base");e.href=o.location.href,i.head.appendChild(e)}return i.body.innerHTML=t,i.body.childNodes}function m(t){"loading"!==o.readyState?t():o.addEventListener("DOMContentLoaded",t)}function g(t,e){if(!t)return this;if(t.cash&&t!==a)return t;var i,n=t,s=0;if(d(t))n=l.test(t)?o.getElementById(t.slice(1)):c.test(t)?f(t):v(t,e);else if(h(t))return m(t),this;if(!n)return this;if(n.nodeType||n===a)this[0]=n,this.length=1;else for(i=this.length=n.length;s<i;s++)this[s]=n[s];return this}function _(t,e){return new g(t,e)}var y=_.fn=_.prototype=g.prototype={cash:!0,length:0,push:s,splice:t.splice,map:t.map,init:g};function k(t,e){for(var i=t.length,n=0;n<i&&!1!==e.call(t[n],t[n],n,t);n++);}function b(t,e){var i=t&&(t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector);return!!i&&i.call(t,e)}function w(e){return d(e)?b:e.cash?function(t){return e.is(t)}:function(t,e){return t===e}}function C(t){return _(r.call(t).filter(function(t,e,i){return i.indexOf(t)===e}))}Object.defineProperty(y,"constructor",{value:_}),_.parseHTML=f,_.noop=e,_.isFunction=h,_.isString=d,_.extend=y.extend=function(t){t=t||{};var e=r.call(arguments),i=e.length,n=1;for(1===e.length&&(t=this,n=0);n<i;n++)if(e[n])for(var s in e[n])e[n].hasOwnProperty(s)&&(t[s]=e[n][s]);return t},_.extend({merge:function(t,e){for(var i=+e.length,n=t.length,s=0;s<i;n++,s++)t[n]=e[s];return t.length=n,t},each:k,matches:b,unique:C,isArray:Array.isArray,isNumeric:function(t){return!isNaN(parseFloat(t))&&isFinite(t)}});var E=_.uid="_cash"+Date.now();function M(t){return t[E]=t[E]||{}}function O(t,e,i){return M(t)[e]=i}function x(t,e){var i=M(t);return void 0===i[e]&&(i[e]=t.dataset?t.dataset[e]:_(t).attr("data-"+e)),i[e]}y.extend({data:function(e,i){if(d(e))return void 0===i?x(this[0],e):this.each(function(t){return O(t,e,i)});for(var t in e)this.data(t,e[t]);return this},removeData:function(s){return this.each(function(t){return i=s,void((n=M(e=t))?delete n[i]:e.dataset?delete e.dataset[i]:_(e).removeAttr("data-"+name));var e,i,n})}});var L=/\S+/g;function T(t){return d(t)&&t.match(L)}function $(t,e){return t.classList?t.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(t.className)}function B(t,e,i){t.classList?t.classList.add(e):i.indexOf(" "+e+" ")&&(t.className+=" "+e)}function D(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(e,"")}y.extend({addClass:function(t){var n=T(t);return n?this.each(function(e){var i=" "+e.className+" ";k(n,function(t){B(e,t,i)})}):this},attr:function(e,i){if(e){if(d(e))return void 0===i?this[0]?this[0].getAttribute?this[0].getAttribute(e):this[0][e]:void 0:this.each(function(t){t.setAttribute?t.setAttribute(e,i):t[e]=i});for(var t in e)this.attr(t,e[t]);return this}},hasClass:function(t){var e=!1,i=T(t);return i&&i.length&&this.each(function(t){return!(e=$(t,i[0]))}),e},prop:function(e,i){if(d(e))return void 0===i?this[0][e]:this.each(function(t){t[e]=i});for(var t in e)this.prop(t,e[t]);return this},removeAttr:function(e){return this.each(function(t){t.removeAttribute?t.removeAttribute(e):delete t[e]})},removeClass:function(t){if(!arguments.length)return this.attr("class","");var i=T(t);return i?this.each(function(e){k(i,function(t){D(e,t)})}):this},removeProp:function(e){return this.each(function(t){delete t[e]})},toggleClass:function(t,e){if(void 0!==e)return this[e?"addClass":"removeClass"](t);var n=T(t);return n?this.each(function(e){var i=" "+e.className+" ";k(n,function(t){$(e,t)?D(e,t):B(e,t,i)})}):this}}),y.extend({add:function(t,e){return C(_.merge(this,_(t,e)))},each:function(t){return k(this,t),this},eq:function(t){return _(this.get(t))},filter:function(e){if(!e)return this;var i=h(e)?e:w(e);return _(n.call(this,function(t){return i(t,e)}))},first:function(){return this.eq(0)},get:function(t){return void 0===t?r.call(this):t<0?this[t+this.length]:this[t]},index:function(t){var e=t?_(t)[0]:this[0],i=t?this:_(e).parent().children();return r.call(i).indexOf(e)},last:function(){return this.eq(-1)}});var S,I,A,R,H,P,W=(H=/(?:^\w|[A-Z]|\b\w)/g,P=/[\s-_]+/g,function(t){return t.replace(H,function(t,e){return t[0===e?"toLowerCase":"toUpperCase"]()}).replace(P,"")}),j=(S={},I=document,A=I.createElement("div"),R=A.style,function(e){if(e=W(e),S[e])return S[e];var t=e.charAt(0).toUpperCase()+e.slice(1),i=(e+" "+["webkit","moz","ms","o"].join(t+" ")+t).split(" ");return k(i,function(t){if(t in R)return S[t]=e=S[e]=t,!1}),S[e]});function F(t,e){return parseInt(a.getComputedStyle(t[0],null)[e],10)||0}function q(e,i,t){var n,s=x(e,"_cashEvents"),o=s&&s[i];o&&(t?(e.removeEventListener(i,t),0<=(n=o.indexOf(t))&&o.splice(n,1)):(k(o,function(t){e.removeEventListener(i,t)}),o=[]))}function N(t,e){return"&"+encodeURIComponent(t)+"="+encodeURIComponent(e).replace(/%20/g,"+")}function z(t){var e,i,n,s=t.type;if(!s)return null;switch(s.toLowerCase()){case"select-one":return 0<=(n=(i=t).selectedIndex)?i.options[n].value:null;case"select-multiple":return e=[],k(t.options,function(t){t.selected&&e.push(t.value)}),e.length?e:null;case"radio":case"checkbox":return t.checked?t.value:null;default:return t.value?t.value:null}}function V(e,i,n){var t=d(i);t||!i.length?k(e,t?function(t){return t.insertAdjacentHTML(n?"afterbegin":"beforeend",i)}:function(t,e){return function(t,e,i){if(i){var n=t.childNodes[0];t.insertBefore(e,n)}else t.appendChild(e)}(t,0===e?i:i.cloneNode(!0),n)}):k(i,function(t){return V(e,t,n)})}_.prefixedProp=j,_.camelCase=W,y.extend({css:function(e,i){if(d(e))return e=j(e),1<arguments.length?this.each(function(t){return t.style[e]=i}):a.getComputedStyle(this[0])[e];for(var t in e)this.css(t,e[t]);return this}}),k(["Width","Height"],function(e){var t=e.toLowerCase();y[t]=function(){return this[0].getBoundingClientRect()[t]},y["inner"+e]=function(){return this[0]["client"+e]},y["outer"+e]=function(t){return this[0]["offset"+e]+(t?F(this,"margin"+("Width"===e?"Left":"Top"))+F(this,"margin"+("Width"===e?"Right":"Bottom")):0)}}),y.extend({off:function(e,i){return this.each(function(t){return q(t,e,i)})},on:function(a,i,r,l){var n;if(!d(a)){for(var t in a)this.on(t,i,a[t]);return this}return h(i)&&(r=i,i=null),"ready"===a?(m(r),this):(i&&(n=r,r=function(t){for(var e=t.target;!b(e,i);){if(e===this||null===e)return e=!1;e=e.parentNode}e&&n.call(e,t)}),this.each(function(t){var e,i,n,s,o=r;l&&(o=function(){r.apply(this,arguments),q(t,a,o)}),i=a,n=o,(s=x(e=t,"_cashEvents")||O(e,"_cashEvents",{}))[i]=s[i]||[],s[i].push(n),e.addEventListener(i,n)}))},one:function(t,e,i){return this.on(t,e,i,!0)},ready:m,trigger:function(t,e){if(document.createEvent){var i=document.createEvent("HTMLEvents");return i.initEvent(t,!0,!1),i=this.extend(i,e),this.each(function(t){return t.dispatchEvent(i)})}}}),y.extend({serialize:function(){var s="";return k(this[0].elements||this,function(t){if(!t.disabled&&"FIELDSET"!==t.tagName){var e=t.name;switch(t.type.toLowerCase()){case"file":case"reset":case"submit":case"button":break;case"select-multiple":var i=z(t);null!==i&&k(i,function(t){s+=N(e,t)});break;default:var n=z(t);null!==n&&(s+=N(e,n))}}}),s.substr(1)},val:function(e){return void 0===e?z(this[0]):this.each(function(t){return t.value=e})}}),y.extend({after:function(t){return _(t).insertAfter(this),this},append:function(t){return V(this,t),this},appendTo:function(t){return V(_(t),this),this},before:function(t){return _(t).insertBefore(this),this},clone:function(){return _(this.map(function(t){return t.cloneNode(!0)}))},empty:function(){return this.html(""),this},html:function(t){if(void 0===t)return this[0].innerHTML;var e=t.nodeType?t[0].outerHTML:t;return this.each(function(t){return t.innerHTML=e})},insertAfter:function(t){var s=this;return _(t).each(function(t,e){var i=t.parentNode,n=t.nextSibling;s.each(function(t){i.insertBefore(0===e?t:t.cloneNode(!0),n)})}),this},insertBefore:function(t){var s=this;return _(t).each(function(e,i){var n=e.parentNode;s.each(function(t){n.insertBefore(0===i?t:t.cloneNode(!0),e)})}),this},prepend:function(t){return V(this,t,!0),this},prependTo:function(t){return V(_(t),this,!0),this},remove:function(){return this.each(function(t){if(t.parentNode)return t.parentNode.removeChild(t)})},text:function(e){return void 0===e?this[0].textContent:this.each(function(t){return t.textContent=e})}});var X=o.documentElement;return y.extend({position:function(){var t=this[0];return{left:t.offsetLeft,top:t.offsetTop}},offset:function(){var t=this[0].getBoundingClientRect();return{top:t.top+a.pageYOffset-X.clientTop,left:t.left+a.pageXOffset-X.clientLeft}},offsetParent:function(){return _(this[0].offsetParent)}}),y.extend({children:function(e){var i=[];return this.each(function(t){s.apply(i,t.children)}),i=C(i),e?i.filter(function(t){return b(t,e)}):i},closest:function(t){return!t||this.length<1?_():this.is(t)?this.filter(t):this.parent().closest(t)},is:function(e){if(!e)return!1;var i=!1,n=w(e);return this.each(function(t){return!(i=n(t,e))}),i},find:function(e){if(!e||e.nodeType)return _(e&&this.has(e).length?e:null);var i=[];return this.each(function(t){s.apply(i,v(e,t))}),C(i)},has:function(e){var t=d(e)?function(t){return 0!==v(e,t).length}:function(t){return t.contains(e)};return this.filter(t)},next:function(){return _(this[0].nextElementSibling)},not:function(e){if(!e)return this;var i=w(e);return this.filter(function(t){return!i(t,e)})},parent:function(){var e=[];return this.each(function(t){t&&t.parentNode&&e.push(t.parentNode)}),C(e)},parents:function(e){var i,n=[];return this.each(function(t){for(i=t;i&&i.parentNode&&i!==o.body.parentNode;)i=i.parentNode,(!e||e&&b(i,e))&&n.push(i)}),C(n)},prev:function(){return _(this[0].previousElementSibling)},siblings:function(t){var e=this.parent().children(t),i=this[0];return e.filter(function(t){return t!==i})}}),_}();var Component=function(){function s(t,e,i){_classCallCheck(this,s),e instanceof Element||console.error(Error(e+" is not an HTML Element"));var n=t.getInstance(e);n&&n.destroy(),this.el=e,this.$el=cash(e)}return _createClass(s,null,[{key:"init",value:function(t,e,i){var n=null;if(e instanceof Element)n=new t(e,i);else if(e&&(e.jquery||e.cash||e instanceof NodeList)){for(var s=[],o=0;o<e.length;o++)s.push(new t(e[o],i));n=s}return n}}]),s}();!function(t){t.Package?M={}:t.M={},M.jQueryLoaded=!!t.jQuery}(window),"function"==typeof define&&define.amd?define("M",[],function(){return M}):"undefined"==typeof exports||exports.nodeType||("undefined"!=typeof module&&!module.nodeType&&module.exports&&(exports=module.exports=M),exports.default=M),M.version="1.0.0",M.keys={TAB:9,ENTER:13,ESC:27,ARROW_UP:38,ARROW_DOWN:40},M.tabPressed=!1,M.keyDown=!1;var docHandleKeydown=function(t){M.keyDown=!0,t.which!==M.keys.TAB&&t.which!==M.keys.ARROW_DOWN&&t.which!==M.keys.ARROW_UP||(M.tabPressed=!0)},docHandleKeyup=function(t){M.keyDown=!1,t.which!==M.keys.TAB&&t.which!==M.keys.ARROW_DOWN&&t.which!==M.keys.ARROW_UP||(M.tabPressed=!1)},docHandleFocus=function(t){M.keyDown&&document.body.classList.add("keyboard-focused")},docHandleBlur=function(t){document.body.classList.remove("keyboard-focused")};document.addEventListener("keydown",docHandleKeydown,!0),document.addEventListener("keyup",docHandleKeyup,!0),document.addEventListener("focus",docHandleFocus,!0),document.addEventListener("blur",docHandleBlur,!0),M.initializeJqueryWrapper=function(n,s,o){jQuery.fn[s]=function(e){if(n.prototype[e]){var i=Array.prototype.slice.call(arguments,1);if("get"===e.slice(0,3)){var t=this.first()[0][o];return t[e].apply(t,i)}return this.each(function(){var t=this[o];t[e].apply(t,i)})}if("object"==typeof e||!e)return n.init(this,e),this;jQuery.error("Method "+e+" does not exist on jQuery."+s)}},M.AutoInit=function(t){var e=t||document.body,i={Autocomplete:e.querySelectorAll(".autocomplete:not(.no-autoinit)"),Carousel:e.querySelectorAll(".carousel:not(.no-autoinit)"),Chips:e.querySelectorAll(".chips:not(.no-autoinit)"),Collapsible:e.querySelectorAll(".collapsible:not(.no-autoinit)"),Datepicker:e.querySelectorAll(".datepicker:not(.no-autoinit)"),Dropdown:e.querySelectorAll(".dropdown-trigger:not(.no-autoinit)"),Materialbox:e.querySelectorAll(".materialboxed:not(.no-autoinit)"),Modal:e.querySelectorAll(".modal:not(.no-autoinit)"),Parallax:e.querySelectorAll(".parallax:not(.no-autoinit)"),Pushpin:e.querySelectorAll(".pushpin:not(.no-autoinit)"),ScrollSpy:e.querySelectorAll(".scrollspy:not(.no-autoinit)"),FormSelect:e.querySelectorAll("select:not(.no-autoinit)"),Sidenav:e.querySelectorAll(".sidenav:not(.no-autoinit)"),Tabs:e.querySelectorAll(".tabs:not(.no-autoinit)"),TapTarget:e.querySelectorAll(".tap-target:not(.no-autoinit)"),Timepicker:e.querySelectorAll(".timepicker:not(.no-autoinit)"),Tooltip:e.querySelectorAll(".tooltipped:not(.no-autoinit)"),FloatingActionButton:e.querySelectorAll(".fixed-action-btn:not(.no-autoinit)")};for(var n in i){M[n].init(i[n])}},M.objectSelectorString=function(t){return((t.prop("tagName")||"")+(t.attr("id")||"")+(t.attr("class")||"")).replace(/\s/g,"")},M.guid=function(){function t(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return function(){return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}}(),M.escapeHash=function(t){return t.replace(/(:|\.|\[|\]|,|=|\/)/g,"\\$1")},M.elementOrParentIsFixed=function(t){var e=$(t),i=e.add(e.parents()),n=!1;return i.each(function(){if("fixed"===$(this).css("position"))return!(n=!0)}),n},M.checkWithinContainer=function(t,e,i){var n={top:!1,right:!1,bottom:!1,left:!1},s=t.getBoundingClientRect(),o=t===document.body?Math.max(s.bottom,window.innerHeight):s.bottom,a=t.scrollLeft,r=t.scrollTop,l=e.left-a,h=e.top-r;return(l<s.left+i||l<i)&&(n.left=!0),(l+e.width>s.right-i||l+e.width>window.innerWidth-i)&&(n.right=!0),(h<s.top+i||h<i)&&(n.top=!0),(h+e.height>o-i||h+e.height>window.innerHeight-i)&&(n.bottom=!0),n},M.checkPossibleAlignments=function(t,e,i,n){var s={top:!0,right:!0,bottom:!0,left:!0,spaceOnTop:null,spaceOnRight:null,spaceOnBottom:null,spaceOnLeft:null},o="visible"===getComputedStyle(e).overflow,a=e.getBoundingClientRect(),r=Math.min(a.height,window.innerHeight),l=Math.min(a.width,window.innerWidth),h=t.getBoundingClientRect(),d=e.scrollLeft,u=e.scrollTop,c=i.left-d,p=i.top-u,v=i.top+h.height-u;return s.spaceOnRight=o?window.innerWidth-(h.left+i.width):l-(c+i.width),s.spaceOnRight<0&&(s.left=!1),s.spaceOnLeft=o?h.right-i.width:c-i.width+h.width,s.spaceOnLeft<0&&(s.right=!1),s.spaceOnBottom=o?window.innerHeight-(h.top+i.height+n):r-(p+i.height+n),s.spaceOnBottom<0&&(s.top=!1),s.spaceOnTop=o?h.bottom-(i.height+n):v-(i.height-n),s.spaceOnTop<0&&(s.bottom=!1),s},M.getOverflowParent=function(t){return null==t?null:t===document.body||"visible"!==getComputedStyle(t).overflow?t:M.getOverflowParent(t.parentElement)},M.getIdFromTrigger=function(t){var e=t.getAttribute("data-target");return e||(e=(e=t.getAttribute("href"))?e.slice(1):""),e},M.getDocumentScrollTop=function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},M.getDocumentScrollLeft=function(){return window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0};var getTime=Date.now||function(){return(new Date).getTime()};M.throttle=function(i,n,s){var o=void 0,a=void 0,r=void 0,l=null,h=0;s||(s={});var d=function(){h=!1===s.leading?0:getTime(),l=null,r=i.apply(o,a),o=a=null};return function(){var t=getTime();h||!1!==s.leading||(h=t);var e=n-(t-h);return o=this,a=arguments,e<=0?(clearTimeout(l),l=null,h=t,r=i.apply(o,a),o=a=null):l||!1===s.trailing||(l=setTimeout(d,e)),r}};var $jscomp={scope:{}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(t,e,i){if(i.get||i.set)throw new TypeError("ES3 does not support getters and setters.");t!=Array.prototype&&t!=Object.prototype&&(t[e]=i.value)},$jscomp.getGlobal=function(t){return"undefined"!=typeof window&&window===t?t:"undefined"!=typeof global&&null!=global?global:t},$jscomp.global=$jscomp.getGlobal(this),$jscomp.SYMBOL_PREFIX="jscomp_symbol_",$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){},$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)},$jscomp.symbolCounter_=0,$jscomp.Symbol=function(t){return $jscomp.SYMBOL_PREFIX+(t||"")+$jscomp.symbolCounter_++},$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var t=$jscomp.global.Symbol.iterator;t||(t=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator")),"function"!=typeof Array.prototype[t]&&$jscomp.defineProperty(Array.prototype,t,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}}),$jscomp.initSymbolIterator=function(){}},$jscomp.arrayIterator=function(t){var e=0;return $jscomp.iteratorPrototype(function(){return e<t.length?{done:!1,value:t[e++]}:{done:!0}})},$jscomp.iteratorPrototype=function(t){return $jscomp.initSymbolIterator(),(t={next:t})[$jscomp.global.Symbol.iterator]=function(){return this},t},$jscomp.array=$jscomp.array||{},$jscomp.iteratorFromArray=function(e,i){$jscomp.initSymbolIterator(),e instanceof String&&(e+="");var n=0,s={next:function(){if(n<e.length){var t=n++;return{value:i(t,e[t]),done:!1}}return s.next=function(){return{done:!0,value:void 0}},s.next()}};return s[Symbol.iterator]=function(){return s},s},$jscomp.polyfill=function(t,e,i,n){if(e){for(i=$jscomp.global,t=t.split("."),n=0;n<t.length-1;n++){var s=t[n];s in i||(i[s]={}),i=i[s]}(e=e(n=i[t=t[t.length-1]]))!=n&&null!=e&&$jscomp.defineProperty(i,t,{configurable:!0,writable:!0,value:e})}},$jscomp.polyfill("Array.prototype.keys",function(t){return t||function(){return $jscomp.iteratorFromArray(this,function(t){return t})}},"es6-impl","es3");var $jscomp$this=this;M.anime=function(){function s(t){if(!B.col(t))try{return document.querySelectorAll(t)}catch(t){}}function b(t,e){for(var i=t.length,n=2<=arguments.length?e:void 0,s=[],o=0;o<i;o++)if(o in t){var a=t[o];e.call(n,a,o,t)&&s.push(a)}return s}function d(t){return t.reduce(function(t,e){return t.concat(B.arr(e)?d(e):e)},[])}function o(t){return B.arr(t)?t:(B.str(t)&&(t=s(t)||t),t instanceof NodeList||t instanceof HTMLCollection?[].slice.call(t):[t])}function a(t,e){return t.some(function(t){return t===e})}function r(t){var e,i={};for(e in t)i[e]=t[e];return i}function u(t,e){var i,n=r(t);for(i in t)n[i]=e.hasOwnProperty(i)?e[i]:t[i];return n}function c(t,e){var i,n=r(t);for(i in e)n[i]=B.und(t[i])?e[i]:t[i];return n}function l(t){if(t=/([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(t))return t[2]}function h(t,e){return B.fnc(t)?t(e.target,e.id,e.total):t}function w(t,e){if(e in t.style)return getComputedStyle(t).getPropertyValue(e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase())||"0"}function p(t,e){return B.dom(t)&&a($,e)?"transform":B.dom(t)&&(t.getAttribute(e)||B.svg(t)&&t[e])?"attribute":B.dom(t)&&"transform"!==e&&w(t,e)?"css":null!=t[e]?"object":void 0}function v(t,e){switch(p(t,e)){case"transform":return function(t,i){var e,n=-1<(e=i).indexOf("translate")||"perspective"===e?"px":-1<e.indexOf("rotate")||-1<e.indexOf("skew")?"deg":void 0,n=-1<i.indexOf("scale")?1:0+n;if(!(t=t.style.transform))return n;for(var s=[],o=[],a=[],r=/(\w+)\((.+?)\)/g;s=r.exec(t);)o.push(s[1]),a.push(s[2]);return(t=b(a,function(t,e){return o[e]===i})).length?t[0]:n}(t,e);case"css":return w(t,e);case"attribute":return t.getAttribute(e)}return t[e]||0}function f(t,e){var i=/^(\*=|\+=|-=)/.exec(t);if(!i)return t;var n=l(t)||0;switch(e=parseFloat(e),t=parseFloat(t.replace(i[0],"")),i[0][0]){case"+":return e+t+n;case"-":return e-t+n;case"*":return e*t+n}}function m(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function i(t){t=t.points;for(var e,i=0,n=0;n<t.numberOfItems;n++){var s=t.getItem(n);0<n&&(i+=m(e,s)),e=s}return i}function g(t){if(t.getTotalLength)return t.getTotalLength();switch(t.tagName.toLowerCase()){case"circle":return 2*Math.PI*t.getAttribute("r");case"rect":return 2*t.getAttribute("width")+2*t.getAttribute("height");case"line":return m({x:t.getAttribute("x1"),y:t.getAttribute("y1")},{x:t.getAttribute("x2"),y:t.getAttribute("y2")});case"polyline":return i(t);case"polygon":var e=t.points;return i(t)+m(e.getItem(e.numberOfItems-1),e.getItem(0))}}function C(e,i){function t(t){return t=void 0===t?0:t,e.el.getPointAtLength(1<=i+t?i+t:0)}var n=t(),s=t(-1),o=t(1);switch(e.property){case"x":return n.x;case"y":return n.y;case"angle":return 180*Math.atan2(o.y-s.y,o.x-s.x)/Math.PI}}function _(t,e){var i,n=/-?\d*\.?\d+/g;if(i=B.pth(t)?t.totalLength:t,B.col(i))if(B.rgb(i)){var s=/rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(i);i=s?"rgba("+s[1]+",1)":i}else i=B.hex(i)?function(t){t=t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(t,e,i,n){return e+e+i+i+n+n});var e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);t=parseInt(e[1],16);var i=parseInt(e[2],16),e=parseInt(e[3],16);return"rgba("+t+","+i+","+e+",1)"}(i):B.hsl(i)?function(t){function e(t,e,i){return i<0&&(i+=1),1<i&&--i,i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}var i=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(t)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(t);t=parseInt(i[1])/360;var n=parseInt(i[2])/100,s=parseInt(i[3])/100,i=i[4]||1;if(0==n)s=n=t=s;else{var o=s<.5?s*(1+n):s+n-s*n,a=2*s-o,s=e(a,o,t+1/3),n=e(a,o,t);t=e(a,o,t-1/3)}return"rgba("+255*s+","+255*n+","+255*t+","+i+")"}(i):void 0;else s=(s=l(i))?i.substr(0,i.length-s.length):i,i=e&&!/\s/g.test(i)?s+e:s;return{original:i+="",numbers:i.match(n)?i.match(n).map(Number):[0],strings:B.str(t)||e?i.split(n):[]}}function y(t){return b(t=t?d(B.arr(t)?t.map(o):o(t)):[],function(t,e,i){return i.indexOf(t)===e})}function k(t,i){var e=r(i);if(B.arr(t)){var n=t.length;2!==n||B.obj(t[0])?B.fnc(i.duration)||(e.duration=i.duration/n):t={value:t}}return o(t).map(function(t,e){return e=e?0:i.delay,t=B.obj(t)&&!B.pth(t)?t:{value:t},B.und(t.delay)&&(t.delay=e),t}).map(function(t){return c(t,e)})}function E(o,a){var r;return o.tweens.map(function(t){var e=(t=function(t,e){var i,n={};for(i in t){var s=h(t[i],e);B.arr(s)&&1===(s=s.map(function(t){return h(t,e)})).length&&(s=s[0]),n[i]=s}return n.duration=parseFloat(n.duration),n.delay=parseFloat(n.delay),n}(t,a)).value,i=v(a.target,o.name),n=r?r.to.original:i,n=B.arr(e)?e[0]:n,s=f(B.arr(e)?e[1]:e,n),i=l(s)||l(n)||l(i);return t.from=_(n,i),t.to=_(s,i),t.start=r?r.end:o.offset,t.end=t.start+t.delay+t.duration,t.easing=function(t){return B.arr(t)?D.apply(this,t):S[t]}(t.easing),t.elasticity=(1e3-Math.min(Math.max(t.elasticity,1),999))/1e3,t.isPath=B.pth(e),t.isColor=B.col(t.from.original),t.isColor&&(t.round=1),r=t})}function M(e,t,i,n){var s="delay"===e;return t.length?(s?Math.min:Math.max).apply(Math,t.map(function(t){return t[e]})):s?n.delay:i.offset+n.delay+n.duration}function n(t){var e,i,n,s,o=u(L,t),a=u(T,t),r=(i=t.targets,(n=y(i)).map(function(t,e){return{target:t,id:e,total:n.length}})),l=[],h=c(o,a);for(e in t)h.hasOwnProperty(e)||"targets"===e||l.push({name:e,offset:h.offset,tweens:k(t[e],a)});return s=l,t=b(d(r.map(function(n){return s.map(function(t){var e=p(n.target,t.name);if(e){var i=E(t,n);t={type:e,property:t.name,animatable:n,tweens:i,duration:i[i.length-1].end,delay:i[0].delay}}else t=void 0;return t})})),function(t){return!B.und(t)}),c(o,{children:[],animatables:r,animations:t,duration:M("duration",t,o,a),delay:M("delay",t,o,a)})}function O(t){function d(){return window.Promise&&new Promise(function(t){return _=t})}function u(t){return k.reversed?k.duration-t:t}function c(e){for(var t=0,i={},n=k.animations,s=n.length;t<s;){var o=n[t],a=o.animatable,r=o.tweens,l=r.length-1,h=r[l];l&&(h=b(r,function(t){return e<t.end})[0]||h);for(var r=Math.min(Math.max(e-h.start-h.delay,0),h.duration)/h.duration,d=isNaN(r)?1:h.easing(r,h.elasticity),r=h.to.strings,u=h.round,l=[],c=void 0,c=h.to.numbers.length,p=0;p<c;p++){var v=void 0,v=h.to.numbers[p],f=h.from.numbers[p],v=h.isPath?C(h.value,d*v):f+d*(v-f);u&&(h.isColor&&2<p||(v=Math.round(v*u)/u)),l.push(v)}if(h=r.length)for(c=r[0],d=0;d<h;d++)u=r[d+1],p=l[d],isNaN(p)||(c=u?c+(p+u):c+(p+" "));else c=l[0];I[o.type](a.target,o.property,c,i,a.id),o.currentValue=c,t++}if(t=Object.keys(i).length)for(n=0;n<t;n++)x||(x=w(document.body,"transform")?"transform":"-webkit-transform"),k.animatables[n].target.style[x]=i[n].join(" ");k.currentTime=e,k.progress=e/k.duration*100}function p(t){k[t]&&k[t](k)}function v(){k.remaining&&!0!==k.remaining&&k.remaining--}function e(t){var e=k.duration,i=k.offset,n=i+k.delay,s=k.currentTime,o=k.reversed,a=u(t);if(k.children.length){var r=k.children,l=r.length;if(a>=k.currentTime)for(var h=0;h<l;h++)r[h].seek(a);else for(;l--;)r[l].seek(a)}(n<=a||!e)&&(k.began||(k.began=!0,p("begin")),p("run")),i<a&&a<e?c(a):(a<=i&&0!==s&&(c(0),o&&v()),(e<=a&&s!==e||!e)&&(c(e),o||v())),p("update"),e<=t&&(k.remaining?(m=f,"alternate"===k.direction&&(k.reversed=!k.reversed)):(k.pause(),k.completed||(k.completed=!0,p("complete"),"Promise"in window&&(_(),y=d()))),g=0)}t=void 0===t?{}:t;var f,m,g=0,_=null,y=d(),k=n(t);return k.reset=function(){var t=k.direction,e=k.loop;for(k.currentTime=0,k.progress=0,k.paused=!0,k.began=!1,k.completed=!1,k.reversed="reverse"===t,k.remaining="alternate"===t&&1===e?2:e,c(0),t=k.children.length;t--;)k.children[t].reset()},k.tick=function(t){f=t,m||(m=f),e((g+f-m)*O.speed)},k.seek=function(t){e(u(t))},k.pause=function(){var t=A.indexOf(k);-1<t&&A.splice(t,1),k.paused=!0},k.play=function(){k.paused&&(k.paused=!1,m=0,g=u(k.currentTime),A.push(k),R||H())},k.reverse=function(){k.reversed=!k.reversed,m=0,g=u(k.currentTime)},k.restart=function(){k.pause(),k.reset(),k.play()},k.finished=y,k.reset(),k.autoplay&&k.play(),k}var x,L={update:void 0,begin:void 0,run:void 0,complete:void 0,loop:1,direction:"normal",autoplay:!0,offset:0},T={duration:1e3,delay:0,easing:"easeOutElastic",elasticity:500,round:0},$="translateX translateY translateZ rotate rotateX rotateY rotateZ scale scaleX scaleY scaleZ skewX skewY perspective".split(" "),B={arr:function(t){return Array.isArray(t)},obj:function(t){return-1<Object.prototype.toString.call(t).indexOf("Object")},pth:function(t){return B.obj(t)&&t.hasOwnProperty("totalLength")},svg:function(t){return t instanceof SVGElement},dom:function(t){return t.nodeType||B.svg(t)},str:function(t){return"string"==typeof t},fnc:function(t){return"function"==typeof t},und:function(t){return void 0===t},hex:function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)},rgb:function(t){return/^rgb/.test(t)},hsl:function(t){return/^hsl/.test(t)},col:function(t){return B.hex(t)||B.rgb(t)||B.hsl(t)}},D=function(){function u(t,e,i){return(((1-3*i+3*e)*t+(3*i-6*e))*t+3*e)*t}return function(a,r,l,h){if(0<=a&&a<=1&&0<=l&&l<=1){var d=new Float32Array(11);if(a!==r||l!==h)for(var t=0;t<11;++t)d[t]=u(.1*t,a,l);return function(t){if(a===r&&l===h)return t;if(0===t)return 0;if(1===t)return 1;for(var e=0,i=1;10!==i&&d[i]<=t;++i)e+=.1;var i=e+(t-d[--i])/(d[i+1]-d[i])*.1,n=3*(1-3*l+3*a)*i*i+2*(3*l-6*a)*i+3*a;if(.001<=n){for(e=0;e<4&&0!=(n=3*(1-3*l+3*a)*i*i+2*(3*l-6*a)*i+3*a);++e)var s=u(i,a,l)-t,i=i-s/n;t=i}else if(0===n)t=i;else{for(var i=e,e=e+.1,o=0;0<(n=u(s=i+(e-i)/2,a,l)-t)?e=s:i=s,1e-7<Math.abs(n)&&++o<10;);t=s}return u(t,r,h)}}}}(),S=function(){function i(t,e){return 0===t||1===t?t:-Math.pow(2,10*(t-1))*Math.sin(2*(t-1-e/(2*Math.PI)*Math.asin(1))*Math.PI/e)}var t,n="Quad Cubic Quart Quint Sine Expo Circ Back Elastic".split(" "),e={In:[[.55,.085,.68,.53],[.55,.055,.675,.19],[.895,.03,.685,.22],[.755,.05,.855,.06],[.47,0,.745,.715],[.95,.05,.795,.035],[.6,.04,.98,.335],[.6,-.28,.735,.045],i],Out:[[.25,.46,.45,.94],[.215,.61,.355,1],[.165,.84,.44,1],[.23,1,.32,1],[.39,.575,.565,1],[.19,1,.22,1],[.075,.82,.165,1],[.175,.885,.32,1.275],function(t,e){return 1-i(1-t,e)}],InOut:[[.455,.03,.515,.955],[.645,.045,.355,1],[.77,0,.175,1],[.86,0,.07,1],[.445,.05,.55,.95],[1,0,0,1],[.785,.135,.15,.86],[.68,-.55,.265,1.55],function(t,e){return t<.5?i(2*t,e)/2:1-i(-2*t+2,e)/2}]},s={linear:D(.25,.25,.75,.75)},o={};for(t in e)o.type=t,e[o.type].forEach(function(i){return function(t,e){s["ease"+i.type+n[e]]=B.fnc(t)?t:D.apply($jscomp$this,t)}}(o)),o={type:o.type};return s}(),I={css:function(t,e,i){return t.style[e]=i},attribute:function(t,e,i){return t.setAttribute(e,i)},object:function(t,e,i){return t[e]=i},transform:function(t,e,i,n,s){n[s]||(n[s]=[]),n[s].push(e+"("+i+")")}},A=[],R=0,H=function(){function n(){R=requestAnimationFrame(t)}function t(t){var e=A.length;if(e){for(var i=0;i<e;)A[i]&&A[i].tick(t),i++;n()}else cancelAnimationFrame(R),R=0}return n}();return O.version="2.2.0",O.speed=1,O.running=A,O.remove=function(t){t=y(t);for(var e=A.length;e--;)for(var i=A[e],n=i.animations,s=n.length;s--;)a(t,n[s].animatable.target)&&(n.splice(s,1),n.length||i.pause())},O.getValue=v,O.path=function(t,e){var i=B.str(t)?s(t)[0]:t,n=e||100;return function(t){return{el:i,property:t,totalLength:g(i)*(n/100)}}},O.setDashoffset=function(t){var e=g(t);return t.setAttribute("stroke-dasharray",e),e},O.bezier=D,O.easings=S,O.timeline=function(n){var s=O(n);return s.pause(),s.duration=0,s.add=function(t){return s.children.forEach(function(t){t.began=!0,t.completed=!0}),o(t).forEach(function(t){var e=c(t,u(T,n||{}));e.targets=e.targets||n.targets,t=s.duration;var i=e.offset;e.autoplay=!1,e.direction=s.direction,e.offset=B.und(i)?t:f(i,t),s.began=!0,s.completed=!0,s.seek(e.offset),(e=O(e)).began=!0,e.completed=!0,e.duration>t&&(s.duration=e.duration),s.children.push(e)}),s.seek(0),s.reset(),s.autoplay&&s.restart(),s},s},O.random=function(t,e){return Math.floor(Math.random()*(e-t+1))+t},O}(),function(r,l){"use strict";var e={accordion:!0,onOpenStart:void 0,onOpenEnd:void 0,onCloseStart:void 0,onCloseEnd:void 0,inDuration:300,outDuration:300},t=function(t){function s(t,e){_classCallCheck(this,s);var i=_possibleConstructorReturn(this,(s.__proto__||Object.getPrototypeOf(s)).call(this,s,t,e));(i.el.M_Collapsible=i).options=r.extend({},s.defaults,e),i.$headers=i.$el.children("li").children(".collapsible-header"),i.$headers.attr("tabindex",0),i._setupEventHandlers();var n=i.$el.children("li.active").children(".collapsible-body");return i.options.accordion?n.first().css("display","block"):n.css("display","block"),i}return _inherits(s,Component),_createClass(s,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.M_Collapsible=void 0}},{key:"_setupEventHandlers",value:function(){var e=this;this._handleCollapsibleClickBound=this._handleCollapsibleClick.bind(this),this._handleCollapsibleKeydownBound=this._handleCollapsibleKeydown.bind(this),this.el.addEventListener("click",this._handleCollapsibleClickBound),this.$headers.each(function(t){t.addEventListener("keydown",e._handleCollapsibleKeydownBound)})}},{key:"_removeEventHandlers",value:function(){var e=this;this.el.removeEventListener("click",this._handleCollapsibleClickBound),this.$headers.each(function(t){t.removeEventListener("keydown",e._handleCollapsibleKeydownBound)})}},{key:"_handleCollapsibleClick",value:function(t){var e=r(t.target).closest(".collapsible-header");if(t.target&&e.length){var i=e.closest(".collapsible");if(i[0]===this.el){var n=e.closest("li"),s=i.children("li"),o=n[0].classList.contains("active"),a=s.index(n);o?this.close(a):this.open(a)}}}},{key:"_handleCollapsibleKeydown",value:function(t){13===t.keyCode&&this._handleCollapsibleClickBound(t)}},{key:"_animateIn",value:function(t){var e=this,i=this.$el.children("li").eq(t);if(i.length){var n=i.children(".collapsible-body");l.remove(n[0]),n.css({display:"block",overflow:"hidden",height:0,paddingTop:"",paddingBottom:""});var s=n.css("padding-top"),o=n.css("padding-bottom"),a=n[0].scrollHeight;n.css({paddingTop:0,paddingBottom:0}),l({targets:n[0],height:a,paddingTop:s,paddingBottom:o,duration:this.options.inDuration,easing:"easeInOutCubic",complete:function(t){n.css({overflow:"",paddingTop:"",paddingBottom:"",height:""}),"function"==typeof e.options.onOpenEnd&&e.options.onOpenEnd.call(e,i[0])}})}}},{key:"_animateOut",value:function(t){var e=this,i=this.$el.children("li").eq(t);if(i.length){var n=i.children(".collapsible-body");l.remove(n[0]),n.css("overflow","hidden"),l({targets:n[0],height:0,paddingTop:0,paddingBottom:0,duration:this.options.outDuration,easing:"easeInOutCubic",complete:function(){n.css({height:"",overflow:"",padding:"",display:""}),"function"==typeof e.options.onCloseEnd&&e.options.onCloseEnd.call(e,i[0])}})}}},{key:"open",value:function(t){var i=this,e=this.$el.children("li").eq(t);if(e.length&&!e[0].classList.contains("active")){if("function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,e[0]),this.options.accordion){var n=this.$el.children("li");this.$el.children("li.active").each(function(t){var e=n.index(r(t));i.close(e)})}e[0].classList.add("active"),this._animateIn(t)}}},{key:"close",value:function(t){var e=this.$el.children("li").eq(t);e.length&&e[0].classList.contains("active")&&("function"==typeof this.options.onCloseStart&&this.options.onCloseStart.call(this,e[0]),e[0].classList.remove("active"),this._animateOut(t))}}],[{key:"init",value:function(t,e){return _get(s.__proto__||Object.getPrototypeOf(s),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Collapsible}},{key:"defaults",get:function(){return e}}]),s}();M.Collapsible=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"collapsible","M_Collapsible")}(cash,M.anime),function(h,i){"use strict";var e={alignment:"left",autoFocus:!0,constrainWidth:!0,container:null,coverTrigger:!0,closeOnClick:!0,hover:!1,inDuration:150,outDuration:250,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null,onItemClick:null},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return i.el.M_Dropdown=i,n._dropdowns.push(i),i.id=M.getIdFromTrigger(t),i.dropdownEl=document.getElementById(i.id),i.$dropdownEl=h(i.dropdownEl),i.options=h.extend({},n.defaults,e),i.isOpen=!1,i.isScrollable=!1,i.isTouchMoving=!1,i.focusedIndex=-1,i.filterQuery=[],i.options.container?h(i.options.container).append(i.dropdownEl):i.$el.after(i.dropdownEl),i._makeDropdownFocusable(),i._resetFilterQueryBound=i._resetFilterQuery.bind(i),i._handleDocumentClickBound=i._handleDocumentClick.bind(i),i._handleDocumentTouchmoveBound=i._handleDocumentTouchmove.bind(i),i._handleDropdownClickBound=i._handleDropdownClick.bind(i),i._handleDropdownKeydownBound=i._handleDropdownKeydown.bind(i),i._handleTriggerKeydownBound=i._handleTriggerKeydown.bind(i),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._resetDropdownStyles(),this._removeEventHandlers(),n._dropdowns.splice(n._dropdowns.indexOf(this),1),this.el.M_Dropdown=void 0}},{key:"_setupEventHandlers",value:function(){this.el.addEventListener("keydown",this._handleTriggerKeydownBound),this.dropdownEl.addEventListener("click",this._handleDropdownClickBound),this.options.hover?(this._handleMouseEnterBound=this._handleMouseEnter.bind(this),this.el.addEventListener("mouseenter",this._handleMouseEnterBound),this._handleMouseLeaveBound=this._handleMouseLeave.bind(this),this.el.addEventListener("mouseleave",this._handleMouseLeaveBound),this.dropdownEl.addEventListener("mouseleave",this._handleMouseLeaveBound)):(this._handleClickBound=this._handleClick.bind(this),this.el.addEventListener("click",this._handleClickBound))}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("keydown",this._handleTriggerKeydownBound),this.dropdownEl.removeEventListener("click",this._handleDropdownClickBound),this.options.hover?(this.el.removeEventListener("mouseenter",this._handleMouseEnterBound),this.el.removeEventListener("mouseleave",this._handleMouseLeaveBound),this.dropdownEl.removeEventListener("mouseleave",this._handleMouseLeaveBound)):this.el.removeEventListener("click",this._handleClickBound)}},{key:"_setupTemporaryEventHandlers",value:function(){document.body.addEventListener("click",this._handleDocumentClickBound,!0),document.body.addEventListener("touchend",this._handleDocumentClickBound),document.body.addEventListener("touchmove",this._handleDocumentTouchmoveBound),this.dropdownEl.addEventListener("keydown",this._handleDropdownKeydownBound)}},{key:"_removeTemporaryEventHandlers",value:function(){document.body.removeEventListener("click",this._handleDocumentClickBound,!0),document.body.removeEventListener("touchend",this._handleDocumentClickBound),document.body.removeEventListener("touchmove",this._handleDocumentTouchmoveBound),this.dropdownEl.removeEventListener("keydown",this._handleDropdownKeydownBound)}},{key:"_handleClick",value:function(t){t.preventDefault(),this.open()}},{key:"_handleMouseEnter",value:function(){this.open()}},{key:"_handleMouseLeave",value:function(t){var e=t.toElement||t.relatedTarget,i=!!h(e).closest(".dropdown-content").length,n=!1,s=h(e).closest(".dropdown-trigger");s.length&&s[0].M_Dropdown&&s[0].M_Dropdown.isOpen&&(n=!0),n||i||this.close()}},{key:"_handleDocumentClick",value:function(t){var e=this,i=h(t.target);this.options.closeOnClick&&i.closest(".dropdown-content").length&&!this.isTouchMoving?setTimeout(function(){e.close()},0):!i.closest(".dropdown-trigger").length&&i.closest(".dropdown-content").length||setTimeout(function(){e.close()},0),this.isTouchMoving=!1}},{key:"_handleTriggerKeydown",value:function(t){t.which!==M.keys.ARROW_DOWN&&t.which!==M.keys.ENTER||this.isOpen||(t.preventDefault(),this.open())}},{key:"_handleDocumentTouchmove",value:function(t){h(t.target).closest(".dropdown-content").length&&(this.isTouchMoving=!0)}},{key:"_handleDropdownClick",value:function(t){if("function"==typeof this.options.onItemClick){var e=h(t.target).closest("li")[0];this.options.onItemClick.call(this,e)}}},{key:"_handleDropdownKeydown",value:function(t){if(t.which===M.keys.TAB)t.preventDefault(),this.close();else if(t.which!==M.keys.ARROW_DOWN&&t.which!==M.keys.ARROW_UP||!this.isOpen)if(t.which===M.keys.ENTER&&this.isOpen){var e=this.dropdownEl.children[this.focusedIndex],i=h(e).find("a, button").first();i.length?i[0].click():e&&e.click()}else t.which===M.keys.ESC&&this.isOpen&&(t.preventDefault(),this.close());else{t.preventDefault();var n=t.which===M.keys.ARROW_DOWN?1:-1,s=this.focusedIndex,o=!1;do{if(s+=n,this.dropdownEl.children[s]&&-1!==this.dropdownEl.children[s].tabIndex){o=!0;break}}while(s<this.dropdownEl.children.length&&0<=s);o&&(this.focusedIndex=s,this._focusFocusedItem())}var a=String.fromCharCode(t.which).toLowerCase();if(a&&-1===[9,13,27,38,40].indexOf(t.which)){this.filterQuery.push(a);var r=this.filterQuery.join(""),l=h(this.dropdownEl).find("li").filter(function(t){return 0===h(t).text().toLowerCase().indexOf(r)})[0];l&&(this.focusedIndex=h(l).index(),this._focusFocusedItem())}this.filterTimeout=setTimeout(this._resetFilterQueryBound,1e3)}},{key:"_resetFilterQuery",value:function(){this.filterQuery=[]}},{key:"_resetDropdownStyles",value:function(){this.$dropdownEl.css({display:"",width:"",height:"",left:"",top:"","transform-origin":"",transform:"",opacity:""})}},{key:"_makeDropdownFocusable",value:function(){this.dropdownEl.tabIndex=0,h(this.dropdownEl).children().each(function(t){t.getAttribute("tabindex")||t.setAttribute("tabindex",0)})}},{key:"_focusFocusedItem",value:function(){0<=this.focusedIndex&&this.focusedIndex<this.dropdownEl.children.length&&this.options.autoFocus&&this.dropdownEl.children[this.focusedIndex].focus()}},{key:"_getDropdownPosition",value:function(){this.el.offsetParent.getBoundingClientRect();var t=this.el.getBoundingClientRect(),e=this.dropdownEl.getBoundingClientRect(),i=e.height,n=e.width,s=t.left-e.left,o=t.top-e.top,a={left:s,top:o,height:i,width:n},r=this.dropdownEl.offsetParent?this.dropdownEl.offsetParent:this.dropdownEl.parentNode,l=M.checkPossibleAlignments(this.el,r,a,this.options.coverTrigger?0:t.height),h="top",d=this.options.alignment;if(o+=this.options.coverTrigger?0:t.height,this.isScrollable=!1,l.top||(l.bottom?h="bottom":(this.isScrollable=!0,l.spaceOnTop>l.spaceOnBottom?(h="bottom",i+=l.spaceOnTop,o-=l.spaceOnTop):i+=l.spaceOnBottom)),!l[d]){var u="left"===d?"right":"left";l[u]?d=u:l.spaceOnLeft>l.spaceOnRight?(d="right",n+=l.spaceOnLeft,s-=l.spaceOnLeft):(d="left",n+=l.spaceOnRight)}return"bottom"===h&&(o=o-e.height+(this.options.coverTrigger?t.height:0)),"right"===d&&(s=s-e.width+t.width),{x:s,y:o,verticalAlignment:h,horizontalAlignment:d,height:i,width:n}}},{key:"_animateIn",value:function(){var e=this;i.remove(this.dropdownEl),i({targets:this.dropdownEl,opacity:{value:[0,1],easing:"easeOutQuad"},scaleX:[.3,1],scaleY:[.3,1],duration:this.options.inDuration,easing:"easeOutQuint",complete:function(t){e.options.autoFocus&&e.dropdownEl.focus(),"function"==typeof e.options.onOpenEnd&&e.options.onOpenEnd.call(e,e.el)}})}},{key:"_animateOut",value:function(){var e=this;i.remove(this.dropdownEl),i({targets:this.dropdownEl,opacity:{value:0,easing:"easeOutQuint"},scaleX:.3,scaleY:.3,duration:this.options.outDuration,easing:"easeOutQuint",complete:function(t){e._resetDropdownStyles(),"function"==typeof e.options.onCloseEnd&&e.options.onCloseEnd.call(e,e.el)}})}},{key:"_placeDropdown",value:function(){var t=this.options.constrainWidth?this.el.getBoundingClientRect().width:this.dropdownEl.getBoundingClientRect().width;this.dropdownEl.style.width=t+"px";var e=this._getDropdownPosition();this.dropdownEl.style.left=e.x+"px",this.dropdownEl.style.top=e.y+"px",this.dropdownEl.style.height=e.height+"px",this.dropdownEl.style.width=e.width+"px",this.dropdownEl.style.transformOrigin=("left"===e.horizontalAlignment?"0":"100%")+" "+("top"===e.verticalAlignment?"0":"100%")}},{key:"open",value:function(){this.isOpen||(this.isOpen=!0,"function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,this.el),this._resetDropdownStyles(),this.dropdownEl.style.display="block",this._placeDropdown(),this._animateIn(),this._setupTemporaryEventHandlers())}},{key:"close",value:function(){this.isOpen&&(this.isOpen=!1,this.focusedIndex=-1,"function"==typeof this.options.onCloseStart&&this.options.onCloseStart.call(this,this.el),this._animateOut(),this._removeTemporaryEventHandlers(),this.options.autoFocus&&this.el.focus())}},{key:"recalculateDimensions",value:function(){this.isOpen&&(this.$dropdownEl.css({width:"",height:"",left:"",top:"","transform-origin":""}),this._placeDropdown())}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Dropdown}},{key:"defaults",get:function(){return e}}]),n}();t._dropdowns=[],M.Dropdown=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"dropdown","M_Dropdown")}(cash,M.anime),function(s,i){"use strict";var e={opacity:.5,inDuration:250,outDuration:250,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null,preventScrolling:!0,dismissible:!0,startingTop:"4%",endingTop:"10%"},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Modal=i).options=s.extend({},n.defaults,e),i.isOpen=!1,i.id=i.$el.attr("id"),i._openingTrigger=void 0,i.$overlay=s('<div class="modal-overlay"></div>'),i.el.tabIndex=0,i._nthModalOpened=0,n._count++,i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){n._count--,this._removeEventHandlers(),this.el.removeAttribute("style"),this.$overlay.remove(),this.el.M_Modal=void 0}},{key:"_setupEventHandlers",value:function(){this._handleOverlayClickBound=this._handleOverlayClick.bind(this),this._handleModalCloseClickBound=this._handleModalCloseClick.bind(this),1===n._count&&document.body.addEventListener("click",this._handleTriggerClick),this.$overlay[0].addEventListener("click",this._handleOverlayClickBound),this.el.addEventListener("click",this._handleModalCloseClickBound)}},{key:"_removeEventHandlers",value:function(){0===n._count&&document.body.removeEventListener("click",this._handleTriggerClick),this.$overlay[0].removeEventListener("click",this._handleOverlayClickBound),this.el.removeEventListener("click",this._handleModalCloseClickBound)}},{key:"_handleTriggerClick",value:function(t){var e=s(t.target).closest(".modal-trigger");if(e.length){var i=M.getIdFromTrigger(e[0]),n=document.getElementById(i).M_Modal;n&&n.open(e),t.preventDefault()}}},{key:"_handleOverlayClick",value:function(){this.options.dismissible&&this.close()}},{key:"_handleModalCloseClick",value:function(t){s(t.target).closest(".modal-close").length&&this.close()}},{key:"_handleKeydown",value:function(t){27===t.keyCode&&this.options.dismissible&&this.close()}},{key:"_handleFocus",value:function(t){this.el.contains(t.target)||this._nthModalOpened!==n._modalsOpen||this.el.focus()}},{key:"_animateIn",value:function(){var t=this;s.extend(this.el.style,{display:"block",opacity:0}),s.extend(this.$overlay[0].style,{display:"block",opacity:0}),i({targets:this.$overlay[0],opacity:this.options.opacity,duration:this.options.inDuration,easing:"easeOutQuad"});var e={targets:this.el,duration:this.options.inDuration,easing:"easeOutCubic",complete:function(){"function"==typeof t.options.onOpenEnd&&t.options.onOpenEnd.call(t,t.el,t._openingTrigger)}};this.el.classList.contains("bottom-sheet")?s.extend(e,{bottom:0,opacity:1}):s.extend(e,{top:[this.options.startingTop,this.options.endingTop],opacity:1,scaleX:[.8,1],scaleY:[.8,1]}),i(e)}},{key:"_animateOut",value:function(){var t=this;i({targets:this.$overlay[0],opacity:0,duration:this.options.outDuration,easing:"easeOutQuart"});var e={targets:this.el,duration:this.options.outDuration,easing:"easeOutCubic",complete:function(){t.el.style.display="none",t.$overlay.remove(),"function"==typeof t.options.onCloseEnd&&t.options.onCloseEnd.call(t,t.el)}};this.el.classList.contains("bottom-sheet")?s.extend(e,{bottom:"-100%",opacity:0}):s.extend(e,{top:[this.options.endingTop,this.options.startingTop],opacity:0,scaleX:.8,scaleY:.8}),i(e)}},{key:"open",value:function(t){if(!this.isOpen)return this.isOpen=!0,n._modalsOpen++,this._nthModalOpened=n._modalsOpen,this.$overlay[0].style.zIndex=1e3+2*n._modalsOpen,this.el.style.zIndex=1e3+2*n._modalsOpen+1,this._openingTrigger=t?t[0]:void 0,"function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,this.el,this._openingTrigger),this.options.preventScrolling&&(document.body.style.overflow="hidden"),this.el.classList.add("open"),this.el.insertAdjacentElement("afterend",this.$overlay[0]),this.options.dismissible&&(this._handleKeydownBound=this._handleKeydown.bind(this),this._handleFocusBound=this._handleFocus.bind(this),document.addEventListener("keydown",this._handleKeydownBound),document.addEventListener("focus",this._handleFocusBound,!0)),i.remove(this.el),i.remove(this.$overlay[0]),this._animateIn(),this.el.focus(),this}},{key:"close",value:function(){if(this.isOpen)return this.isOpen=!1,n._modalsOpen--,this._nthModalOpened=0,"function"==typeof this.options.onCloseStart&&this.options.onCloseStart.call(this,this.el),this.el.classList.remove("open"),0===n._modalsOpen&&(document.body.style.overflow=""),this.options.dismissible&&(document.removeEventListener("keydown",this._handleKeydownBound),document.removeEventListener("focus",this._handleFocusBound,!0)),i.remove(this.el),i.remove(this.$overlay[0]),this._animateOut(),this}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Modal}},{key:"defaults",get:function(){return e}}]),n}();t._modalsOpen=0,t._count=0,M.Modal=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"modal","M_Modal")}(cash,M.anime),function(o,a){"use strict";var e={inDuration:275,outDuration:200,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Materialbox=i).options=o.extend({},n.defaults,e),i.overlayActive=!1,i.doneAnimating=!0,i.placeholder=o("<div></div>").addClass("material-placeholder"),i.originalWidth=0,i.originalHeight=0,i.originInlineStyles=i.$el.attr("style"),i.caption=i.el.getAttribute("data-caption")||"",i.$el.before(i.placeholder),i.placeholder.append(i.$el),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.M_Materialbox=void 0,o(this.placeholder).after(this.el).remove(),this.$el.removeAttr("style")}},{key:"_setupEventHandlers",value:function(){this._handleMaterialboxClickBound=this._handleMaterialboxClick.bind(this),this.el.addEventListener("click",this._handleMaterialboxClickBound)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("click",this._handleMaterialboxClickBound)}},{key:"_handleMaterialboxClick",value:function(t){!1===this.doneAnimating||this.overlayActive&&this.doneAnimating?this.close():this.open()}},{key:"_handleWindowScroll",value:function(){this.overlayActive&&this.close()}},{key:"_handleWindowResize",value:function(){this.overlayActive&&this.close()}},{key:"_handleWindowEscape",value:function(t){27===t.keyCode&&this.doneAnimating&&this.overlayActive&&this.close()}},{key:"_makeAncestorsOverflowVisible",value:function(){this.ancestorsChanged=o();for(var t=this.placeholder[0].parentNode;null!==t&&!o(t).is(document);){var e=o(t);"visible"!==e.css("overflow")&&(e.css("overflow","visible"),void 0===this.ancestorsChanged?this.ancestorsChanged=e:this.ancestorsChanged=this.ancestorsChanged.add(e)),t=t.parentNode}}},{key:"_animateImageIn",value:function(){var t=this,e={targets:this.el,height:[this.originalHeight,this.newHeight],width:[this.originalWidth,this.newWidth],left:M.getDocumentScrollLeft()+this.windowWidth/2-this.placeholder.offset().left-this.newWidth/2,top:M.getDocumentScrollTop()+this.windowHeight/2-this.placeholder.offset().top-this.newHeight/2,duration:this.options.inDuration,easing:"easeOutQuad",complete:function(){t.doneAnimating=!0,"function"==typeof t.options.onOpenEnd&&t.options.onOpenEnd.call(t,t.el)}};this.maxWidth=this.$el.css("max-width"),this.maxHeight=this.$el.css("max-height"),"none"!==this.maxWidth&&(e.maxWidth=this.newWidth),"none"!==this.maxHeight&&(e.maxHeight=this.newHeight),a(e)}},{key:"_animateImageOut",value:function(){var t=this,e={targets:this.el,width:this.originalWidth,height:this.originalHeight,left:0,top:0,duration:this.options.outDuration,easing:"easeOutQuad",complete:function(){t.placeholder.css({height:"",width:"",position:"",top:"",left:""}),t.attrWidth&&t.$el.attr("width",t.attrWidth),t.attrHeight&&t.$el.attr("height",t.attrHeight),t.$el.removeAttr("style"),t.originInlineStyles&&t.$el.attr("style",t.originInlineStyles),t.$el.removeClass("active"),t.doneAnimating=!0,t.ancestorsChanged.length&&t.ancestorsChanged.css("overflow",""),"function"==typeof t.options.onCloseEnd&&t.options.onCloseEnd.call(t,t.el)}};a(e)}},{key:"_updateVars",value:function(){this.windowWidth=window.innerWidth,this.windowHeight=window.innerHeight,this.caption=this.el.getAttribute("data-caption")||""}},{key:"open",value:function(){var t=this;this._updateVars(),this.originalWidth=this.el.getBoundingClientRect().width,this.originalHeight=this.el.getBoundingClientRect().height,this.doneAnimating=!1,this.$el.addClass("active"),this.overlayActive=!0,"function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,this.el),this.placeholder.css({width:this.placeholder[0].getBoundingClientRect().width+"px",height:this.placeholder[0].getBoundingClientRect().height+"px",position:"relative",top:0,left:0}),this._makeAncestorsOverflowVisible(),this.$el.css({position:"absolute","z-index":1e3,"will-change":"left, top, width, height"}),this.attrWidth=this.$el.attr("width"),this.attrHeight=this.$el.attr("height"),this.attrWidth&&(this.$el.css("width",this.attrWidth+"px"),this.$el.removeAttr("width")),this.attrHeight&&(this.$el.css("width",this.attrHeight+"px"),this.$el.removeAttr("height")),this.$overlay=o('<div id="materialbox-overlay"></div>').css({opacity:0}).one("click",function(){t.doneAnimating&&t.close()}),this.$el.before(this.$overlay);var e=this.$overlay[0].getBoundingClientRect();this.$overlay.css({width:this.windowWidth+"px",height:this.windowHeight+"px",left:-1*e.left+"px",top:-1*e.top+"px"}),a.remove(this.el),a.remove(this.$overlay[0]),a({targets:this.$overlay[0],opacity:1,duration:this.options.inDuration,easing:"easeOutQuad"}),""!==this.caption&&(this.$photocaption&&a.remove(this.$photoCaption[0]),this.$photoCaption=o('<div class="materialbox-caption"></div>'),this.$photoCaption.text(this.caption),o("body").append(this.$photoCaption),this.$photoCaption.css({display:"inline"}),a({targets:this.$photoCaption[0],opacity:1,duration:this.options.inDuration,easing:"easeOutQuad"}));var i=0,n=this.originalWidth/this.windowWidth,s=this.originalHeight/this.windowHeight;this.newWidth=0,this.newHeight=0,s<n?(i=this.originalHeight/this.originalWidth,this.newWidth=.9*this.windowWidth,this.newHeight=.9*this.windowWidth*i):(i=this.originalWidth/this.originalHeight,this.newWidth=.9*this.windowHeight*i,this.newHeight=.9*this.windowHeight),this._animateImageIn(),this._handleWindowScrollBound=this._handleWindowScroll.bind(this),this._handleWindowResizeBound=this._handleWindowResize.bind(this),this._handleWindowEscapeBound=this._handleWindowEscape.bind(this),window.addEventListener("scroll",this._handleWindowScrollBound),window.addEventListener("resize",this._handleWindowResizeBound),window.addEventListener("keyup",this._handleWindowEscapeBound)}},{key:"close",value:function(){var t=this;this._updateVars(),this.doneAnimating=!1,"function"==typeof this.options.onCloseStart&&this.options.onCloseStart.call(this,this.el),a.remove(this.el),a.remove(this.$overlay[0]),""!==this.caption&&a.remove(this.$photoCaption[0]),window.removeEventListener("scroll",this._handleWindowScrollBound),window.removeEventListener("resize",this._handleWindowResizeBound),window.removeEventListener("keyup",this._handleWindowEscapeBound),a({targets:this.$overlay[0],opacity:0,duration:this.options.outDuration,easing:"easeOutQuad",complete:function(){t.overlayActive=!1,t.$overlay.remove()}}),this._animateImageOut(),""!==this.caption&&a({targets:this.$photoCaption[0],opacity:0,duration:this.options.outDuration,easing:"easeOutQuad",complete:function(){t.$photoCaption.remove()}})}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Materialbox}},{key:"defaults",get:function(){return e}}]),n}();M.Materialbox=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"materialbox","M_Materialbox")}(cash,M.anime),function(s){"use strict";var e={responsiveThreshold:0},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Parallax=i).options=s.extend({},n.defaults,e),i._enabled=window.innerWidth>i.options.responsiveThreshold,i.$img=i.$el.find("img").first(),i.$img.each(function(){this.complete&&s(this).trigger("load")}),i._updateParallax(),i._setupEventHandlers(),i._setupStyles(),n._parallaxes.push(i),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){n._parallaxes.splice(n._parallaxes.indexOf(this),1),this.$img[0].style.transform="",this._removeEventHandlers(),this.$el[0].M_Parallax=void 0}},{key:"_setupEventHandlers",value:function(){this._handleImageLoadBound=this._handleImageLoad.bind(this),this.$img[0].addEventListener("load",this._handleImageLoadBound),0===n._parallaxes.length&&(n._handleScrollThrottled=M.throttle(n._handleScroll,5),window.addEventListener("scroll",n._handleScrollThrottled),n._handleWindowResizeThrottled=M.throttle(n._handleWindowResize,5),window.addEventListener("resize",n._handleWindowResizeThrottled))}},{key:"_removeEventHandlers",value:function(){this.$img[0].removeEventListener("load",this._handleImageLoadBound),0===n._parallaxes.length&&(window.removeEventListener("scroll",n._handleScrollThrottled),window.removeEventListener("resize",n._handleWindowResizeThrottled))}},{key:"_setupStyles",value:function(){this.$img[0].style.opacity=1}},{key:"_handleImageLoad",value:function(){this._updateParallax()}},{key:"_updateParallax",value:function(){var t=0<this.$el.height()?this.el.parentNode.offsetHeight:500,e=this.$img[0].offsetHeight-t,i=this.$el.offset().top+t,n=this.$el.offset().top,s=M.getDocumentScrollTop(),o=window.innerHeight,a=e*((s+o-n)/(t+o));this._enabled?s<i&&n<s+o&&(this.$img[0].style.transform="translate3D(-50%, "+a+"px, 0)"):this.$img[0].style.transform=""}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Parallax}},{key:"_handleScroll",value:function(){for(var t=0;t<n._parallaxes.length;t++){var e=n._parallaxes[t];e._updateParallax.call(e)}}},{key:"_handleWindowResize",value:function(){for(var t=0;t<n._parallaxes.length;t++){var e=n._parallaxes[t];e._enabled=window.innerWidth>e.options.responsiveThreshold}}},{key:"defaults",get:function(){return e}}]),n}();t._parallaxes=[],M.Parallax=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"parallax","M_Parallax")}(cash),function(a,s){"use strict";var e={duration:300,onShow:null,swipeable:!1,responsiveThreshold:1/0},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Tabs=i).options=a.extend({},n.defaults,e),i.$tabLinks=i.$el.children("li.tab").children("a"),i.index=0,i._setupActiveTabLink(),i.options.swipeable?i._setupSwipeableTabs():i._setupNormalTabs(),i._setTabsAndTabWidth(),i._createIndicator(),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this._indicator.parentNode.removeChild(this._indicator),this.options.swipeable?this._teardownSwipeableTabs():this._teardownNormalTabs(),this.$el[0].M_Tabs=void 0}},{key:"_setupEventHandlers",value:function(){this._handleWindowResizeBound=this._handleWindowResize.bind(this),window.addEventListener("resize",this._handleWindowResizeBound),this._handleTabClickBound=this._handleTabClick.bind(this),this.el.addEventListener("click",this._handleTabClickBound)}},{key:"_removeEventHandlers",value:function(){window.removeEventListener("resize",this._handleWindowResizeBound),this.el.removeEventListener("click",this._handleTabClickBound)}},{key:"_handleWindowResize",value:function(){this._setTabsAndTabWidth(),0!==this.tabWidth&&0!==this.tabsWidth&&(this._indicator.style.left=this._calcLeftPos(this.$activeTabLink)+"px",this._indicator.style.right=this._calcRightPos(this.$activeTabLink)+"px")}},{key:"_handleTabClick",value:function(t){var e=this,i=a(t.target).closest("li.tab"),n=a(t.target).closest("a");if(n.length&&n.parent().hasClass("tab"))if(i.hasClass("disabled"))t.preventDefault();else if(!n.attr("target")){this.$activeTabLink.removeClass("active");var s=this.$content;this.$activeTabLink=n,this.$content=a(M.escapeHash(n[0].hash)),this.$tabLinks=this.$el.children("li.tab").children("a"),this.$activeTabLink.addClass("active");var o=this.index;this.index=Math.max(this.$tabLinks.index(n),0),this.options.swipeable?this._tabsCarousel&&this._tabsCarousel.set(this.index,function(){"function"==typeof e.options.onShow&&e.options.onShow.call(e,e.$content[0])}):this.$content.length&&(this.$content[0].style.display="block",this.$content.addClass("active"),"function"==typeof this.options.onShow&&this.options.onShow.call(this,this.$content[0]),s.length&&!s.is(this.$content)&&(s[0].style.display="none",s.removeClass("active"))),this._setTabsAndTabWidth(),this._animateIndicator(o),t.preventDefault()}}},{key:"_createIndicator",value:function(){var t=this,e=document.createElement("li");e.classList.add("indicator"),this.el.appendChild(e),this._indicator=e,setTimeout(function(){t._indicator.style.left=t._calcLeftPos(t.$activeTabLink)+"px",t._indicator.style.right=t._calcRightPos(t.$activeTabLink)+"px"},0)}},{key:"_setupActiveTabLink",value:function(){this.$activeTabLink=a(this.$tabLinks.filter('[href="'+location.hash+'"]')),0===this.$activeTabLink.length&&(this.$activeTabLink=this.$el.children("li.tab").children("a.active").first()),0===this.$activeTabLink.length&&(this.$activeTabLink=this.$el.children("li.tab").children("a").first()),this.$tabLinks.removeClass("active"),this.$activeTabLink[0].classList.add("active"),this.index=Math.max(this.$tabLinks.index(this.$activeTabLink),0),this.$activeTabLink.length&&(this.$content=a(M.escapeHash(this.$activeTabLink[0].hash)),this.$content.addClass("active"))}},{key:"_setupSwipeableTabs",value:function(){var i=this;window.innerWidth>this.options.responsiveThreshold&&(this.options.swipeable=!1);var n=a();this.$tabLinks.each(function(t){var e=a(M.escapeHash(t.hash));e.addClass("carousel-item"),n=n.add(e)});var t=a('<div class="tabs-content carousel carousel-slider"></div>');n.first().before(t),t.append(n),n[0].style.display="";var e=this.$activeTabLink.closest(".tab").index();this._tabsCarousel=M.Carousel.init(t[0],{fullWidth:!0,noWrap:!0,onCycleTo:function(t){var e=i.index;i.index=a(t).index(),i.$activeTabLink.removeClass("active"),i.$activeTabLink=i.$tabLinks.eq(i.index),i.$activeTabLink.addClass("active"),i._animateIndicator(e),"function"==typeof i.options.onShow&&i.options.onShow.call(i,i.$content[0])}}),this._tabsCarousel.set(e)}},{key:"_teardownSwipeableTabs",value:function(){var t=this._tabsCarousel.$el;this._tabsCarousel.destroy(),t.after(t.children()),t.remove()}},{key:"_setupNormalTabs",value:function(){this.$tabLinks.not(this.$activeTabLink).each(function(t){if(t.hash){var e=a(M.escapeHash(t.hash));e.length&&(e[0].style.display="none")}})}},{key:"_teardownNormalTabs",value:function(){this.$tabLinks.each(function(t){if(t.hash){var e=a(M.escapeHash(t.hash));e.length&&(e[0].style.display="")}})}},{key:"_setTabsAndTabWidth",value:function(){this.tabsWidth=this.$el.width(),this.tabWidth=Math.max(this.tabsWidth,this.el.scrollWidth)/this.$tabLinks.length}},{key:"_calcRightPos",value:function(t){return Math.ceil(this.tabsWidth-t.position().left-t[0].getBoundingClientRect().width)}},{key:"_calcLeftPos",value:function(t){return Math.floor(t.position().left)}},{key:"updateTabIndicator",value:function(){this._setTabsAndTabWidth(),this._animateIndicator(this.index)}},{key:"_animateIndicator",value:function(t){var e=0,i=0;0<=this.index-t?e=90:i=90;var n={targets:this._indicator,left:{value:this._calcLeftPos(this.$activeTabLink),delay:e},right:{value:this._calcRightPos(this.$activeTabLink),delay:i},duration:this.options.duration,easing:"easeOutQuad"};s.remove(this._indicator),s(n)}},{key:"select",value:function(t){var e=this.$tabLinks.filter('[href="#'+t+'"]');e.length&&e.trigger("click")}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Tabs}},{key:"defaults",get:function(){return e}}]),n}();M.Tabs=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"tabs","M_Tabs")}(cash,M.anime),function(d,e){"use strict";var i={exitDelay:200,enterDelay:0,html:null,margin:5,inDuration:250,outDuration:200,position:"bottom",transitionMovement:10},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Tooltip=i).options=d.extend({},n.defaults,e),i.isOpen=!1,i.isHovered=!1,i.isFocused=!1,i._appendTooltipEl(),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){d(this.tooltipEl).remove(),this._removeEventHandlers(),this.el.M_Tooltip=void 0}},{key:"_appendTooltipEl",value:function(){var t=document.createElement("div");t.classList.add("material-tooltip"),this.tooltipEl=t;var e=document.createElement("div");e.classList.add("tooltip-content"),e.innerHTML=this.options.html,t.appendChild(e),document.body.appendChild(t)}},{key:"_updateTooltipContent",value:function(){this.tooltipEl.querySelector(".tooltip-content").innerHTML=this.options.html}},{key:"_setupEventHandlers",value:function(){this._handleMouseEnterBound=this._handleMouseEnter.bind(this),this._handleMouseLeaveBound=this._handleMouseLeave.bind(this),this._handleFocusBound=this._handleFocus.bind(this),this._handleBlurBound=this._handleBlur.bind(this),this.el.addEventListener("mouseenter",this._handleMouseEnterBound),this.el.addEventListener("mouseleave",this._handleMouseLeaveBound),this.el.addEventListener("focus",this._handleFocusBound,!0),this.el.addEventListener("blur",this._handleBlurBound,!0)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("mouseenter",this._handleMouseEnterBound),this.el.removeEventListener("mouseleave",this._handleMouseLeaveBound),this.el.removeEventListener("focus",this._handleFocusBound,!0),this.el.removeEventListener("blur",this._handleBlurBound,!0)}},{key:"open",value:function(t){this.isOpen||(t=void 0===t||void 0,this.isOpen=!0,this.options=d.extend({},this.options,this._getAttributeOptions()),this._updateTooltipContent(),this._setEnterDelayTimeout(t))}},{key:"close",value:function(){this.isOpen&&(this.isHovered=!1,this.isFocused=!1,this.isOpen=!1,this._setExitDelayTimeout())}},{key:"_setExitDelayTimeout",value:function(){var t=this;clearTimeout(this._exitDelayTimeout),this._exitDelayTimeout=setTimeout(function(){t.isHovered||t.isFocused||t._animateOut()},this.options.exitDelay)}},{key:"_setEnterDelayTimeout",value:function(t){var e=this;clearTimeout(this._enterDelayTimeout),this._enterDelayTimeout=setTimeout(function(){(e.isHovered||e.isFocused||t)&&e._animateIn()},this.options.enterDelay)}},{key:"_positionTooltip",value:function(){var t,e=this.el,i=this.tooltipEl,n=e.offsetHeight,s=e.offsetWidth,o=i.offsetHeight,a=i.offsetWidth,r=this.options.margin,l=void 0,h=void 0;this.xMovement=0,this.yMovement=0,l=e.getBoundingClientRect().top+M.getDocumentScrollTop(),h=e.getBoundingClientRect().left+M.getDocumentScrollLeft(),"top"===this.options.position?(l+=-o-r,h+=s/2-a/2,this.yMovement=-this.options.transitionMovement):"right"===this.options.position?(l+=n/2-o/2,h+=s+r,this.xMovement=this.options.transitionMovement):"left"===this.options.position?(l+=n/2-o/2,h+=-a-r,this.xMovement=-this.options.transitionMovement):(l+=n+r,h+=s/2-a/2,this.yMovement=this.options.transitionMovement),t=this._repositionWithinScreen(h,l,a,o),d(i).css({top:t.y+"px",left:t.x+"px"})}},{key:"_repositionWithinScreen",value:function(t,e,i,n){var s=M.getDocumentScrollLeft(),o=M.getDocumentScrollTop(),a=t-s,r=e-o,l={left:a,top:r,width:i,height:n},h=this.options.margin+this.options.transitionMovement,d=M.checkWithinContainer(document.body,l,h);return d.left?a=h:d.right&&(a-=a+i-window.innerWidth),d.top?r=h:d.bottom&&(r-=r+n-window.innerHeight),{x:a+s,y:r+o}}},{key:"_animateIn",value:function(){this._positionTooltip(),this.tooltipEl.style.visibility="visible",e.remove(this.tooltipEl),e({targets:this.tooltipEl,opacity:1,translateX:this.xMovement,translateY:this.yMovement,duration:this.options.inDuration,easing:"easeOutCubic"})}},{key:"_animateOut",value:function(){e.remove(this.tooltipEl),e({targets:this.tooltipEl,opacity:0,translateX:0,translateY:0,duration:this.options.outDuration,easing:"easeOutCubic"})}},{key:"_handleMouseEnter",value:function(){this.isHovered=!0,this.isFocused=!1,this.open(!1)}},{key:"_handleMouseLeave",value:function(){this.isHovered=!1,this.isFocused=!1,this.close()}},{key:"_handleFocus",value:function(){M.tabPressed&&(this.isFocused=!0,this.open(!1))}},{key:"_handleBlur",value:function(){this.isFocused=!1,this.close()}},{key:"_getAttributeOptions",value:function(){var t={},e=this.el.getAttribute("data-tooltip"),i=this.el.getAttribute("data-position");return e&&(t.html=e),i&&(t.position=i),t}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Tooltip}},{key:"defaults",get:function(){return i}}]),n}();M.Tooltip=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"tooltip","M_Tooltip")}(cash,M.anime),function(i){"use strict";var t=t||{},e=document.querySelectorAll.bind(document);function m(t){var e="";for(var i in t)t.hasOwnProperty(i)&&(e+=i+":"+t[i]+";");return e}var g={duration:750,show:function(t,e){if(2===t.button)return!1;var i=e||this,n=document.createElement("div");n.className="waves-ripple",i.appendChild(n);var s,o,a,r,l,h,d,u=(h={top:0,left:0},d=(s=i)&&s.ownerDocument,o=d.documentElement,void 0!==s.getBoundingClientRect&&(h=s.getBoundingClientRect()),a=null!==(l=r=d)&&l===l.window?r:9===r.nodeType&&r.defaultView,{top:h.top+a.pageYOffset-o.clientTop,left:h.left+a.pageXOffset-o.clientLeft}),c=t.pageY-u.top,p=t.pageX-u.left,v="scale("+i.clientWidth/100*10+")";"touches"in t&&(c=t.touches[0].pageY-u.top,p=t.touches[0].pageX-u.left),n.setAttribute("data-hold",Date.now()),n.setAttribute("data-scale",v),n.setAttribute("data-x",p),n.setAttribute("data-y",c);var f={top:c+"px",left:p+"px"};n.className=n.className+" waves-notransition",n.setAttribute("style",m(f)),n.className=n.className.replace("waves-notransition",""),f["-webkit-transform"]=v,f["-moz-transform"]=v,f["-ms-transform"]=v,f["-o-transform"]=v,f.transform=v,f.opacity="1",f["-webkit-transition-duration"]=g.duration+"ms",f["-moz-transition-duration"]=g.duration+"ms",f["-o-transition-duration"]=g.duration+"ms",f["transition-duration"]=g.duration+"ms",f["-webkit-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f["-moz-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f["-o-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f["transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",n.setAttribute("style",m(f))},hide:function(t){l.touchup(t);var e=this,i=(e.clientWidth,null),n=e.getElementsByClassName("waves-ripple");if(!(0<n.length))return!1;var s=(i=n[n.length-1]).getAttribute("data-x"),o=i.getAttribute("data-y"),a=i.getAttribute("data-scale"),r=350-(Date.now()-Number(i.getAttribute("data-hold")));r<0&&(r=0),setTimeout(function(){var t={top:o+"px",left:s+"px",opacity:"0","-webkit-transition-duration":g.duration+"ms","-moz-transition-duration":g.duration+"ms","-o-transition-duration":g.duration+"ms","transition-duration":g.duration+"ms","-webkit-transform":a,"-moz-transform":a,"-ms-transform":a,"-o-transform":a,transform:a};i.setAttribute("style",m(t)),setTimeout(function(){try{e.removeChild(i)}catch(t){return!1}},g.duration)},r)},wrapInput:function(t){for(var e=0;e<t.length;e++){var i=t[e];if("input"===i.tagName.toLowerCase()){var n=i.parentNode;if("i"===n.tagName.toLowerCase()&&-1!==n.className.indexOf("waves-effect"))continue;var s=document.createElement("i");s.className=i.className+" waves-input-wrapper";var o=i.getAttribute("style");o||(o=""),s.setAttribute("style",o),i.className="waves-button-input",i.removeAttribute("style"),n.replaceChild(s,i),s.appendChild(i)}}}},l={touches:0,allowEvent:function(t){var e=!0;return"touchstart"===t.type?l.touches+=1:"touchend"===t.type||"touchcancel"===t.type?setTimeout(function(){0<l.touches&&(l.touches-=1)},500):"mousedown"===t.type&&0<l.touches&&(e=!1),e},touchup:function(t){l.allowEvent(t)}};function n(t){var e=function(t){if(!1===l.allowEvent(t))return null;for(var e=null,i=t.target||t.srcElement;null!==i.parentNode;){if(!(i instanceof SVGElement)&&-1!==i.className.indexOf("waves-effect")){e=i;break}i=i.parentNode}return e}(t);null!==e&&(g.show(t,e),"ontouchstart"in i&&(e.addEventListener("touchend",g.hide,!1),e.addEventListener("touchcancel",g.hide,!1)),e.addEventListener("mouseup",g.hide,!1),e.addEventListener("mouseleave",g.hide,!1),e.addEventListener("dragend",g.hide,!1))}t.displayEffect=function(t){"duration"in(t=t||{})&&(g.duration=t.duration),g.wrapInput(e(".waves-effect")),"ontouchstart"in i&&document.body.addEventListener("touchstart",n,!1),document.body.addEventListener("mousedown",n,!1)},t.attach=function(t){"input"===t.tagName.toLowerCase()&&(g.wrapInput([t]),t=t.parentNode),"ontouchstart"in i&&t.addEventListener("touchstart",n,!1),t.addEventListener("mousedown",n,!1)},i.Waves=t,document.addEventListener("DOMContentLoaded",function(){t.displayEffect()},!1)}(window),function(i,n){"use strict";var t={html:"",displayLength:4e3,inDuration:300,outDuration:375,classes:"",completeCallback:null,activationPercent:.8},e=function(){function s(t){_classCallCheck(this,s),this.options=i.extend({},s.defaults,t),this.message=this.options.html,this.panning=!1,this.timeRemaining=this.options.displayLength,0===s._toasts.length&&s._createContainer(),s._toasts.push(this);var e=this._createToast();(e.M_Toast=this).el=e,this.$el=i(e),this._animateIn(),this._setTimer()}return _createClass(s,[{key:"_createToast",value:function(){var t=document.createElement("div");return t.classList.add("toast"),this.options.classes.length&&i(t).addClass(this.options.classes),("object"==typeof HTMLElement?this.message instanceof HTMLElement:this.message&&"object"==typeof this.message&&null!==this.message&&1===this.message.nodeType&&"string"==typeof this.message.nodeName)?t.appendChild(this.message):this.message.jquery?i(t).append(this.message[0]):t.innerHTML=this.message,s._container.appendChild(t),t}},{key:"_animateIn",value:function(){n({targets:this.el,top:0,opacity:1,duration:this.options.inDuration,easing:"easeOutCubic"})}},{key:"_setTimer",value:function(){var t=this;this.timeRemaining!==1/0&&(this.counterInterval=setInterval(function(){t.panning||(t.timeRemaining-=20),t.timeRemaining<=0&&t.dismiss()},20))}},{key:"dismiss",value:function(){var t=this;window.clearInterval(this.counterInterval);var e=this.el.offsetWidth*this.options.activationPercent;this.wasSwiped&&(this.el.style.transition="transform .05s, opacity .05s",this.el.style.transform="translateX("+e+"px)",this.el.style.opacity=0),n({targets:this.el,opacity:0,marginTop:-40,duration:this.options.outDuration,easing:"easeOutExpo",complete:function(){"function"==typeof t.options.completeCallback&&t.options.completeCallback(),t.$el.remove(),s._toasts.splice(s._toasts.indexOf(t),1),0===s._toasts.length&&s._removeContainer()}})}}],[{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Toast}},{key:"_createContainer",value:function(){var t=document.createElement("div");t.setAttribute("id","toast-container"),t.addEventListener("touchstart",s._onDragStart),t.addEventListener("touchmove",s._onDragMove),t.addEventListener("touchend",s._onDragEnd),t.addEventListener("mousedown",s._onDragStart),document.addEventListener("mousemove",s._onDragMove),document.addEventListener("mouseup",s._onDragEnd),document.body.appendChild(t),s._container=t}},{key:"_removeContainer",value:function(){document.removeEventListener("mousemove",s._onDragMove),document.removeEventListener("mouseup",s._onDragEnd),i(s._container).remove(),s._container=null}},{key:"_onDragStart",value:function(t){if(t.target&&i(t.target).closest(".toast").length){var e=i(t.target).closest(".toast")[0].M_Toast;e.panning=!0,(s._draggedToast=e).el.classList.add("panning"),e.el.style.transition="",e.startingXPos=s._xPos(t),e.time=Date.now(),e.xPos=s._xPos(t)}}},{key:"_onDragMove",value:function(t){if(s._draggedToast){t.preventDefault();var e=s._draggedToast;e.deltaX=Math.abs(e.xPos-s._xPos(t)),e.xPos=s._xPos(t),e.velocityX=e.deltaX/(Date.now()-e.time),e.time=Date.now();var i=e.xPos-e.startingXPos,n=e.el.offsetWidth*e.options.activationPercent;e.el.style.transform="translateX("+i+"px)",e.el.style.opacity=1-Math.abs(i/n)}}},{key:"_onDragEnd",value:function(){if(s._draggedToast){var t=s._draggedToast;t.panning=!1,t.el.classList.remove("panning");var e=t.xPos-t.startingXPos,i=t.el.offsetWidth*t.options.activationPercent;Math.abs(e)>i||1<t.velocityX?(t.wasSwiped=!0,t.dismiss()):(t.el.style.transition="transform .2s, opacity .2s",t.el.style.transform="",t.el.style.opacity=""),s._draggedToast=null}}},{key:"_xPos",value:function(t){return t.targetTouches&&1<=t.targetTouches.length?t.targetTouches[0].clientX:t.clientX}},{key:"dismissAll",value:function(){for(var t in s._toasts)s._toasts[t].dismiss()}},{key:"defaults",get:function(){return t}}]),s}();e._toasts=[],e._container=null,e._draggedToast=null,M.Toast=e,M.toast=function(t){return new e(t)}}(cash,M.anime),function(s,o){"use strict";var e={edge:"left",draggable:!0,inDuration:250,outDuration:200,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null,preventScrolling:!0},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Sidenav=i).id=i.$el.attr("id"),i.options=s.extend({},n.defaults,e),i.isOpen=!1,i.isFixed=i.el.classList.contains("sidenav-fixed"),i.isDragged=!1,i.lastWindowWidth=window.innerWidth,i.lastWindowHeight=window.innerHeight,i._createOverlay(),i._createDragTarget(),i._setupEventHandlers(),i._setupClasses(),i._setupFixed(),n._sidenavs.push(i),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this._enableBodyScrolling(),this._overlay.parentNode.removeChild(this._overlay),this.dragTarget.parentNode.removeChild(this.dragTarget),this.el.M_Sidenav=void 0,this.el.style.transform="";var t=n._sidenavs.indexOf(this);0<=t&&n._sidenavs.splice(t,1)}},{key:"_createOverlay",value:function(){var t=document.createElement("div");this._closeBound=this.close.bind(this),t.classList.add("sidenav-overlay"),t.addEventListener("click",this._closeBound),document.body.appendChild(t),this._overlay=t}},{key:"_setupEventHandlers",value:function(){0===n._sidenavs.length&&document.body.addEventListener("click",this._handleTriggerClick),this._handleDragTargetDragBound=this._handleDragTargetDrag.bind(this),this._handleDragTargetReleaseBound=this._handleDragTargetRelease.bind(this),this._handleCloseDragBound=this._handleCloseDrag.bind(this),this._handleCloseReleaseBound=this._handleCloseRelease.bind(this),this._handleCloseTriggerClickBound=this._handleCloseTriggerClick.bind(this),this.dragTarget.addEventListener("touchmove",this._handleDragTargetDragBound),this.dragTarget.addEventListener("touchend",this._handleDragTargetReleaseBound),this._overlay.addEventListener("touchmove",this._handleCloseDragBound),this._overlay.addEventListener("touchend",this._handleCloseReleaseBound),this.el.addEventListener("touchmove",this._handleCloseDragBound),this.el.addEventListener("touchend",this._handleCloseReleaseBound),this.el.addEventListener("click",this._handleCloseTriggerClickBound),this.isFixed&&(this._handleWindowResizeBound=this._handleWindowResize.bind(this),window.addEventListener("resize",this._handleWindowResizeBound))}},{key:"_removeEventHandlers",value:function(){1===n._sidenavs.length&&document.body.removeEventListener("click",this._handleTriggerClick),this.dragTarget.removeEventListener("touchmove",this._handleDragTargetDragBound),this.dragTarget.removeEventListener("touchend",this._handleDragTargetReleaseBound),this._overlay.removeEventListener("touchmove",this._handleCloseDragBound),this._overlay.removeEventListener("touchend",this._handleCloseReleaseBound),this.el.removeEventListener("touchmove",this._handleCloseDragBound),this.el.removeEventListener("touchend",this._handleCloseReleaseBound),this.el.removeEventListener("click",this._handleCloseTriggerClickBound),this.isFixed&&window.removeEventListener("resize",this._handleWindowResizeBound)}},{key:"_handleTriggerClick",value:function(t){var e=s(t.target).closest(".sidenav-trigger");if(t.target&&e.length){var i=M.getIdFromTrigger(e[0]),n=document.getElementById(i).M_Sidenav;n&&n.open(e),t.preventDefault()}}},{key:"_startDrag",value:function(t){var e=t.targetTouches[0].clientX;this.isDragged=!0,this._startingXpos=e,this._xPos=this._startingXpos,this._time=Date.now(),this._width=this.el.getBoundingClientRect().width,this._overlay.style.display="block",this._initialScrollTop=this.isOpen?this.el.scrollTop:M.getDocumentScrollTop(),this._verticallyScrolling=!1,o.remove(this.el),o.remove(this._overlay)}},{key:"_dragMoveUpdate",value:function(t){var e=t.targetTouches[0].clientX,i=this.isOpen?this.el.scrollTop:M.getDocumentScrollTop();this.deltaX=Math.abs(this._xPos-e),this._xPos=e,this.velocityX=this.deltaX/(Date.now()-this._time),this._time=Date.now(),this._initialScrollTop!==i&&(this._verticallyScrolling=!0)}},{key:"_handleDragTargetDrag",value:function(t){if(this.options.draggable&&!this._isCurrentlyFixed()&&!this._verticallyScrolling){this.isDragged||this._startDrag(t),this._dragMoveUpdate(t);var e=this._xPos-this._startingXpos,i=0<e?"right":"left";e=Math.min(this._width,Math.abs(e)),this.options.edge===i&&(e=0);var n=e,s="translateX(-100%)";"right"===this.options.edge&&(s="translateX(100%)",n=-n),this.percentOpen=Math.min(1,e/this._width),this.el.style.transform=s+" translateX("+n+"px)",this._overlay.style.opacity=this.percentOpen}}},{key:"_handleDragTargetRelease",value:function(){this.isDragged&&(.2<this.percentOpen?this.open():this._animateOut(),this.isDragged=!1,this._verticallyScrolling=!1)}},{key:"_handleCloseDrag",value:function(t){if(this.isOpen){if(!this.options.draggable||this._isCurrentlyFixed()||this._verticallyScrolling)return;this.isDragged||this._startDrag(t),this._dragMoveUpdate(t);var e=this._xPos-this._startingXpos,i=0<e?"right":"left";e=Math.min(this._width,Math.abs(e)),this.options.edge!==i&&(e=0);var n=-e;"right"===this.options.edge&&(n=-n),this.percentOpen=Math.min(1,1-e/this._width),this.el.style.transform="translateX("+n+"px)",this._overlay.style.opacity=this.percentOpen}}},{key:"_handleCloseRelease",value:function(){this.isOpen&&this.isDragged&&(.8<this.percentOpen?this._animateIn():this.close(),this.isDragged=!1,this._verticallyScrolling=!1)}},{key:"_handleCloseTriggerClick",value:function(t){s(t.target).closest(".sidenav-close").length&&!this._isCurrentlyFixed()&&this.close()}},{key:"_handleWindowResize",value:function(){this.lastWindowWidth!==window.innerWidth&&(992<window.innerWidth?this.open():this.close()),this.lastWindowWidth=window.innerWidth,this.lastWindowHeight=window.innerHeight}},{key:"_setupClasses",value:function(){"right"===this.options.edge&&(this.el.classList.add("right-aligned"),this.dragTarget.classList.add("right-aligned"))}},{key:"_removeClasses",value:function(){this.el.classList.remove("right-aligned"),this.dragTarget.classList.remove("right-aligned")}},{key:"_setupFixed",value:function(){this._isCurrentlyFixed()&&this.open()}},{key:"_isCurrentlyFixed",value:function(){return this.isFixed&&992<window.innerWidth}},{key:"_createDragTarget",value:function(){var t=document.createElement("div");t.classList.add("drag-target"),document.body.appendChild(t),this.dragTarget=t}},{key:"_preventBodyScrolling",value:function(){document.body.style.overflow="hidden"}},{key:"_enableBodyScrolling",value:function(){document.body.style.overflow=""}},{key:"open",value:function(){!0!==this.isOpen&&(this.isOpen=!0,"function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,this.el),this._isCurrentlyFixed()?(o.remove(this.el),o({targets:this.el,translateX:0,duration:0,easing:"easeOutQuad"}),this._enableBodyScrolling(),this._overlay.style.display="none"):(this.options.preventScrolling&&this._preventBodyScrolling(),this.isDragged&&1==this.percentOpen||this._animateIn()))}},{key:"close",value:function(){if(!1!==this.isOpen)if(this.isOpen=!1,"function"==typeof this.options.onCloseStart&&this.options.onCloseStart.call(this,this.el),this._isCurrentlyFixed()){var t="left"===this.options.edge?"-105%":"105%";this.el.style.transform="translateX("+t+")"}else this._enableBodyScrolling(),this.isDragged&&0==this.percentOpen?this._overlay.style.display="none":this._animateOut()}},{key:"_animateIn",value:function(){this._animateSidenavIn(),this._animateOverlayIn()}},{key:"_animateSidenavIn",value:function(){var t=this,e="left"===this.options.edge?-1:1;this.isDragged&&(e="left"===this.options.edge?e+this.percentOpen:e-this.percentOpen),o.remove(this.el),o({targets:this.el,translateX:[100*e+"%",0],duration:this.options.inDuration,easing:"easeOutQuad",complete:function(){"function"==typeof t.options.onOpenEnd&&t.options.onOpenEnd.call(t,t.el)}})}},{key:"_animateOverlayIn",value:function(){var t=0;this.isDragged?t=this.percentOpen:s(this._overlay).css({display:"block"}),o.remove(this._overlay),o({targets:this._overlay,opacity:[t,1],duration:this.options.inDuration,easing:"easeOutQuad"})}},{key:"_animateOut",value:function(){this._animateSidenavOut(),this._animateOverlayOut()}},{key:"_animateSidenavOut",value:function(){var t=this,e="left"===this.options.edge?-1:1,i=0;this.isDragged&&(i="left"===this.options.edge?e+this.percentOpen:e-this.percentOpen),o.remove(this.el),o({targets:this.el,translateX:[100*i+"%",105*e+"%"],duration:this.options.outDuration,easing:"easeOutQuad",complete:function(){"function"==typeof t.options.onCloseEnd&&t.options.onCloseEnd.call(t,t.el)}})}},{key:"_animateOverlayOut",value:function(){var t=this;o.remove(this._overlay),o({targets:this._overlay,opacity:0,duration:this.options.outDuration,easing:"easeOutQuad",complete:function(){s(t._overlay).css("display","none")}})}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Sidenav}},{key:"defaults",get:function(){return e}}]),n}();t._sidenavs=[],M.Sidenav=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"sidenav","M_Sidenav")}(cash,M.anime),function(o,a){"use strict";var e={throttle:100,scrollOffset:200,activeClass:"active",getActiveElement:function(t){return'a[href="#'+t+'"]'}},t=function(t){function c(t,e){_classCallCheck(this,c);var i=_possibleConstructorReturn(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,c,t,e));return(i.el.M_ScrollSpy=i).options=o.extend({},c.defaults,e),c._elements.push(i),c._count++,c._increment++,i.tickId=-1,i.id=c._increment,i._setupEventHandlers(),i._handleWindowScroll(),i}return _inherits(c,Component),_createClass(c,[{key:"destroy",value:function(){c._elements.splice(c._elements.indexOf(this),1),c._elementsInView.splice(c._elementsInView.indexOf(this),1),c._visibleElements.splice(c._visibleElements.indexOf(this.$el),1),c._count--,this._removeEventHandlers(),o(this.options.getActiveElement(this.$el.attr("id"))).removeClass(this.options.activeClass),this.el.M_ScrollSpy=void 0}},{key:"_setupEventHandlers",value:function(){var t=M.throttle(this._handleWindowScroll,200);this._handleThrottledResizeBound=t.bind(this),this._handleWindowScrollBound=this._handleWindowScroll.bind(this),1===c._count&&(window.addEventListener("scroll",this._handleWindowScrollBound),window.addEventListener("resize",this._handleThrottledResizeBound),document.body.addEventListener("click",this._handleTriggerClick))}},{key:"_removeEventHandlers",value:function(){0===c._count&&(window.removeEventListener("scroll",this._handleWindowScrollBound),window.removeEventListener("resize",this._handleThrottledResizeBound),document.body.removeEventListener("click",this._handleTriggerClick))}},{key:"_handleTriggerClick",value:function(t){for(var e=o(t.target),i=c._elements.length-1;0<=i;i--){var n=c._elements[i];if(e.is('a[href="#'+n.$el.attr("id")+'"]')){t.preventDefault();var s=n.$el.offset().top+1;a({targets:[document.documentElement,document.body],scrollTop:s-n.options.scrollOffset,duration:400,easing:"easeOutCubic"});break}}}},{key:"_handleWindowScroll",value:function(){c._ticks++;for(var t=M.getDocumentScrollTop(),e=M.getDocumentScrollLeft(),i=e+window.innerWidth,n=t+window.innerHeight,s=c._findElements(t,i,n,e),o=0;o<s.length;o++){var a=s[o];a.tickId<0&&a._enter(),a.tickId=c._ticks}for(var r=0;r<c._elementsInView.length;r++){var l=c._elementsInView[r],h=l.tickId;0<=h&&h!==c._ticks&&(l._exit(),l.tickId=-1)}c._elementsInView=s}},{key:"_enter",value:function(){(c._visibleElements=c._visibleElements.filter(function(t){return 0!=t.height()}))[0]?(o(this.options.getActiveElement(c._visibleElements[0].attr("id"))).removeClass(this.options.activeClass),c._visibleElements[0][0].M_ScrollSpy&&this.id<c._visibleElements[0][0].M_ScrollSpy.id?c._visibleElements.unshift(this.$el):c._visibleElements.push(this.$el)):c._visibleElements.push(this.$el),o(this.options.getActiveElement(c._visibleElements[0].attr("id"))).addClass(this.options.activeClass)}},{key:"_exit",value:function(){var e=this;(c._visibleElements=c._visibleElements.filter(function(t){return 0!=t.height()}))[0]&&(o(this.options.getActiveElement(c._visibleElements[0].attr("id"))).removeClass(this.options.activeClass),(c._visibleElements=c._visibleElements.filter(function(t){return t.attr("id")!=e.$el.attr("id")}))[0]&&o(this.options.getActiveElement(c._visibleElements[0].attr("id"))).addClass(this.options.activeClass))}}],[{key:"init",value:function(t,e){return _get(c.__proto__||Object.getPrototypeOf(c),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_ScrollSpy}},{key:"_findElements",value:function(t,e,i,n){for(var s=[],o=0;o<c._elements.length;o++){var a=c._elements[o],r=t+a.options.scrollOffset||200;if(0<a.$el.height()){var l=a.$el.offset().top,h=a.$el.offset().left,d=h+a.$el.width(),u=l+a.$el.height();!(e<h||d<n||i<l||u<r)&&s.push(a)}}return s}},{key:"defaults",get:function(){return e}}]),c}();t._elements=[],t._elementsInView=[],t._visibleElements=[],t._count=0,t._increment=0,t._ticks=0,M.ScrollSpy=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"scrollSpy","M_ScrollSpy")}(cash,M.anime),function(h){"use strict";var e={data:{},limit:1/0,onAutocomplete:null,minLength:1,sortFunction:function(t,e,i){return t.indexOf(i)-e.indexOf(i)}},t=function(t){function s(t,e){_classCallCheck(this,s);var i=_possibleConstructorReturn(this,(s.__proto__||Object.getPrototypeOf(s)).call(this,s,t,e));return(i.el.M_Autocomplete=i).options=h.extend({},s.defaults,e),i.isOpen=!1,i.count=0,i.activeIndex=-1,i.oldVal,i.$inputField=i.$el.closest(".input-field"),i.$active=h(),i._mousedown=!1,i._setupDropdown(),i._setupEventHandlers(),i}return _inherits(s,Component),_createClass(s,[{key:"destroy",value:function(){this._removeEventHandlers(),this._removeDropdown(),this.el.M_Autocomplete=void 0}},{key:"_setupEventHandlers",value:function(){this._handleInputBlurBound=this._handleInputBlur.bind(this),this._handleInputKeyupAndFocusBound=this._handleInputKeyupAndFocus.bind(this),this._handleInputKeydownBound=this._handleInputKeydown.bind(this),this._handleInputClickBound=this._handleInputClick.bind(this),this._handleContainerMousedownAndTouchstartBound=this._handleContainerMousedownAndTouchstart.bind(this),this._handleContainerMouseupAndTouchendBound=this._handleContainerMouseupAndTouchend.bind(this),this.el.addEventListener("blur",this._handleInputBlurBound),this.el.addEventListener("keyup",this._handleInputKeyupAndFocusBound),this.el.addEventListener("focus",this._handleInputKeyupAndFocusBound),this.el.addEventListener("keydown",this._handleInputKeydownBound),this.el.addEventListener("click",this._handleInputClickBound),this.container.addEventListener("mousedown",this._handleContainerMousedownAndTouchstartBound),this.container.addEventListener("mouseup",this._handleContainerMouseupAndTouchendBound),void 0!==window.ontouchstart&&(this.container.addEventListener("touchstart",this._handleContainerMousedownAndTouchstartBound),this.container.addEventListener("touchend",this._handleContainerMouseupAndTouchendBound))}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("blur",this._handleInputBlurBound),this.el.removeEventListener("keyup",this._handleInputKeyupAndFocusBound),this.el.removeEventListener("focus",this._handleInputKeyupAndFocusBound),this.el.removeEventListener("keydown",this._handleInputKeydownBound),this.el.removeEventListener("click",this._handleInputClickBound),this.container.removeEventListener("mousedown",this._handleContainerMousedownAndTouchstartBound),this.container.removeEventListener("mouseup",this._handleContainerMouseupAndTouchendBound),void 0!==window.ontouchstart&&(this.container.removeEventListener("touchstart",this._handleContainerMousedownAndTouchstartBound),this.container.removeEventListener("touchend",this._handleContainerMouseupAndTouchendBound))}},{key:"_setupDropdown",value:function(){var e=this;this.container=document.createElement("ul"),this.container.id="autocomplete-options-"+M.guid(),h(this.container).addClass("autocomplete-content dropdown-content"),this.$inputField.append(this.container),this.el.setAttribute("data-target",this.container.id),this.dropdown=M.Dropdown.init(this.el,{autoFocus:!1,closeOnClick:!1,coverTrigger:!1,onItemClick:function(t){e.selectOption(h(t))}}),this.el.removeEventListener("click",this.dropdown._handleClickBound)}},{key:"_removeDropdown",value:function(){this.container.parentNode.removeChild(this.container)}},{key:"_handleInputBlur",value:function(){this._mousedown||(this.close(),this._resetAutocomplete())}},{key:"_handleInputKeyupAndFocus",value:function(t){"keyup"===t.type&&(s._keydown=!1),this.count=0;var e=this.el.value.toLowerCase();13!==t.keyCode&&38!==t.keyCode&&40!==t.keyCode&&(this.oldVal===e||!M.tabPressed&&"focus"===t.type||this.open(),this.oldVal=e)}},{key:"_handleInputKeydown",value:function(t){s._keydown=!0;var e=t.keyCode,i=void 0,n=h(this.container).children("li").length;e===M.keys.ENTER&&0<=this.activeIndex?(i=h(this.container).children("li").eq(this.activeIndex)).length&&(this.selectOption(i),t.preventDefault()):e!==M.keys.ARROW_UP&&e!==M.keys.ARROW_DOWN||(t.preventDefault(),e===M.keys.ARROW_UP&&0<this.activeIndex&&this.activeIndex--,e===M.keys.ARROW_DOWN&&this.activeIndex<n-1&&this.activeIndex++,this.$active.removeClass("active"),0<=this.activeIndex&&(this.$active=h(this.container).children("li").eq(this.activeIndex),this.$active.addClass("active")))}},{key:"_handleInputClick",value:function(t){this.open()}},{key:"_handleContainerMousedownAndTouchstart",value:function(t){this._mousedown=!0}},{key:"_handleContainerMouseupAndTouchend",value:function(t){this._mousedown=!1}},{key:"_highlight",value:function(t,e){var i=e.find("img"),n=e.text().toLowerCase().indexOf(""+t.toLowerCase()),s=n+t.length-1,o=e.text().slice(0,n),a=e.text().slice(n,s+1),r=e.text().slice(s+1);e.html("<span>"+o+"<span class='highlight'>"+a+"</span>"+r+"</span>"),i.length&&e.prepend(i)}},{key:"_resetCurrentElement",value:function(){this.activeIndex=-1,this.$active.removeClass("active")}},{key:"_resetAutocomplete",value:function(){h(this.container).empty(),this._resetCurrentElement(),this.oldVal=null,this.isOpen=!1,this._mousedown=!1}},{key:"selectOption",value:function(t){var e=t.text().trim();this.el.value=e,this.$el.trigger("change"),this._resetAutocomplete(),this.close(),"function"==typeof this.options.onAutocomplete&&this.options.onAutocomplete.call(this,e)}},{key:"_renderDropdown",value:function(t,i){var n=this;this._resetAutocomplete();var e=[];for(var s in t)if(t.hasOwnProperty(s)&&-1!==s.toLowerCase().indexOf(i)){if(this.count>=this.options.limit)break;var o={data:t[s],key:s};e.push(o),this.count++}if(this.options.sortFunction){e.sort(function(t,e){return n.options.sortFunction(t.key.toLowerCase(),e.key.toLowerCase(),i.toLowerCase())})}for(var a=0;a<e.length;a++){var r=e[a],l=h("<li></li>");r.data?l.append('<img src="'+r.data+'" class="right circle"><span>'+r.key+"</span>"):l.append("<span>"+r.key+"</span>"),h(this.container).append(l),this._highlight(i,l)}}},{key:"open",value:function(){var t=this.el.value.toLowerCase();this._resetAutocomplete(),t.length>=this.options.minLength&&(this.isOpen=!0,this._renderDropdown(this.options.data,t)),this.dropdown.isOpen?this.dropdown.recalculateDimensions():this.dropdown.open()}},{key:"close",value:function(){this.dropdown.close()}},{key:"updateData",value:function(t){var e=this.el.value.toLowerCase();this.options.data=t,this.isOpen&&this._renderDropdown(t,e)}}],[{key:"init",value:function(t,e){return _get(s.__proto__||Object.getPrototypeOf(s),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Autocomplete}},{key:"defaults",get:function(){return e}}]),s}();t._keydown=!1,M.Autocomplete=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"autocomplete","M_Autocomplete")}(cash),function(d){M.updateTextFields=function(){d("input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=date], input[type=time], textarea").each(function(t,e){var i=d(this);0<t.value.length||d(t).is(":focus")||t.autofocus||null!==i.attr("placeholder")?i.siblings("label").addClass("active"):t.validity?i.siblings("label").toggleClass("active",!0===t.validity.badInput):i.siblings("label").removeClass("active")})},M.validate_field=function(t){var e=null!==t.attr("data-length"),i=parseInt(t.attr("data-length")),n=t[0].value.length;0!==n||!1!==t[0].validity.badInput||t.is(":required")?t.hasClass("validate")&&(t.is(":valid")&&e&&n<=i||t.is(":valid")&&!e?(t.removeClass("invalid"),t.addClass("valid")):(t.removeClass("valid"),t.addClass("invalid"))):t.hasClass("validate")&&(t.removeClass("valid"),t.removeClass("invalid"))},M.textareaAutoResize=function(t){if(t instanceof Element&&(t=d(t)),t.length){var e=d(".hiddendiv").first();e.length||(e=d('<div class="hiddendiv common"></div>'),d("body").append(e));var i=t.css("font-family"),n=t.css("font-size"),s=t.css("line-height"),o=t.css("padding-top"),a=t.css("padding-right"),r=t.css("padding-bottom"),l=t.css("padding-left");n&&e.css("font-size",n),i&&e.css("font-family",i),s&&e.css("line-height",s),o&&e.css("padding-top",o),a&&e.css("padding-right",a),r&&e.css("padding-bottom",r),l&&e.css("padding-left",l),t.data("original-height")||t.data("original-height",t.height()),"off"===t.attr("wrap")&&e.css("overflow-wrap","normal").css("white-space","pre"),e.text(t[0].value+"\n");var h=e.html().replace(/\n/g,"<br>");e.html(h),0<t[0].offsetWidth&&0<t[0].offsetHeight?e.css("width",t.width()+"px"):e.css("width",window.innerWidth/2+"px"),t.data("original-height")<=e.innerHeight()?t.css("height",e.innerHeight()+"px"):t[0].value.length<t.data("previous-length")&&t.css("height",t.data("original-height")+"px"),t.data("previous-length",t[0].value.length)}else console.error("No textarea element found")},d(document).ready(function(){var n="input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=date], input[type=time], textarea";d(document).on("change",n,function(){0===this.value.length&&null===d(this).attr("placeholder")||d(this).siblings("label").addClass("active"),M.validate_field(d(this))}),d(document).ready(function(){M.updateTextFields()}),d(document).on("reset",function(t){var e=d(t.target);e.is("form")&&(e.find(n).removeClass("valid").removeClass("invalid"),e.find(n).each(function(t){this.value.length&&d(this).siblings("label").removeClass("active")}),setTimeout(function(){e.find("select").each(function(){this.M_FormSelect&&d(this).trigger("change")})},0))}),document.addEventListener("focus",function(t){d(t.target).is(n)&&d(t.target).siblings("label, .prefix").addClass("active")},!0),document.addEventListener("blur",function(t){var e=d(t.target);if(e.is(n)){var i=".prefix";0===e[0].value.length&&!0!==e[0].validity.badInput&&null===e.attr("placeholder")&&(i+=", label"),e.siblings(i).removeClass("active"),M.validate_field(e)}},!0);d(document).on("keyup","input[type=radio], input[type=checkbox]",function(t){if(t.which===M.keys.TAB)return d(this).addClass("tabbed"),void d(this).one("blur",function(t){d(this).removeClass("tabbed")})});var t=".materialize-textarea";d(t).each(function(){var t=d(this);t.data("original-height",t.height()),t.data("previous-length",this.value.length),M.textareaAutoResize(t)}),d(document).on("keyup",t,function(){M.textareaAutoResize(d(this))}),d(document).on("keydown",t,function(){M.textareaAutoResize(d(this))}),d(document).on("change",'.file-field input[type="file"]',function(){for(var t=d(this).closest(".file-field").find("input.file-path"),e=d(this)[0].files,i=[],n=0;n<e.length;n++)i.push(e[n].name);t[0].value=i.join(", "),t.trigger("change")})})}(cash),function(s,o){"use strict";var e={indicators:!0,height:400,duration:500,interval:6e3},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Slider=i).options=s.extend({},n.defaults,e),i.$slider=i.$el.find(".slides"),i.$slides=i.$slider.children("li"),i.activeIndex=i.$slides.filter(function(t){return s(t).hasClass("active")}).first().index(),-1!=i.activeIndex&&(i.$active=i.$slides.eq(i.activeIndex)),i._setSliderHeight(),i.$slides.find(".caption").each(function(t){i._animateCaptionIn(t,0)}),i.$slides.find("img").each(function(t){var e="data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";s(t).attr("src")!==e&&(s(t).css("background-image",'url("'+s(t).attr("src")+'")'),s(t).attr("src",e))}),i._setupIndicators(),i.$active?i.$active.css("display","block"):(i.$slides.first().addClass("active"),o({targets:i.$slides.first()[0],opacity:1,duration:i.options.duration,easing:"easeOutQuad"}),i.activeIndex=0,i.$active=i.$slides.eq(i.activeIndex),i.options.indicators&&i.$indicators.eq(i.activeIndex).addClass("active")),i.$active.find("img").each(function(t){o({targets:i.$active.find(".caption")[0],opacity:1,translateX:0,translateY:0,duration:i.options.duration,easing:"easeOutQuad"})}),i._setupEventHandlers(),i.start(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this.pause(),this._removeIndicators(),this._removeEventHandlers(),this.el.M_Slider=void 0}},{key:"_setupEventHandlers",value:function(){var e=this;this._handleIntervalBound=this._handleInterval.bind(this),this._handleIndicatorClickBound=this._handleIndicatorClick.bind(this),this.options.indicators&&this.$indicators.each(function(t){t.addEventListener("click",e._handleIndicatorClickBound)})}},{key:"_removeEventHandlers",value:function(){var e=this;this.options.indicators&&this.$indicators.each(function(t){t.removeEventListener("click",e._handleIndicatorClickBound)})}},{key:"_handleIndicatorClick",value:function(t){var e=s(t.target).index();this.set(e)}},{key:"_handleInterval",value:function(){var t=this.$slider.find(".active").index();this.$slides.length===t+1?t=0:t+=1,this.set(t)}},{key:"_animateCaptionIn",value:function(t,e){var i={targets:t,opacity:0,duration:e,easing:"easeOutQuad"};s(t).hasClass("center-align")?i.translateY=-100:s(t).hasClass("right-align")?i.translateX=100:s(t).hasClass("left-align")&&(i.translateX=-100),o(i)}},{key:"_setSliderHeight",value:function(){this.$el.hasClass("fullscreen")||(this.options.indicators?this.$el.css("height",this.options.height+40+"px"):this.$el.css("height",this.options.height+"px"),this.$slider.css("height",this.options.height+"px"))}},{key:"_setupIndicators",value:function(){var n=this;this.options.indicators&&(this.$indicators=s('<ul class="indicators"></ul>'),this.$slides.each(function(t,e){var i=s('<li class="indicator-item"></li>');n.$indicators.append(i[0])}),this.$el.append(this.$indicators[0]),this.$indicators=this.$indicators.children("li.indicator-item"))}},{key:"_removeIndicators",value:function(){this.$el.find("ul.indicators").remove()}},{key:"set",value:function(t){var e=this;if(t>=this.$slides.length?t=0:t<0&&(t=this.$slides.length-1),this.activeIndex!=t){this.$active=this.$slides.eq(this.activeIndex);var i=this.$active.find(".caption");this.$active.removeClass("active"),o({targets:this.$active[0],opacity:0,duration:this.options.duration,easing:"easeOutQuad",complete:function(){e.$slides.not(".active").each(function(t){o({targets:t,opacity:0,translateX:0,translateY:0,duration:0,easing:"easeOutQuad"})})}}),this._animateCaptionIn(i[0],this.options.duration),this.options.indicators&&(this.$indicators.eq(this.activeIndex).removeClass("active"),this.$indicators.eq(t).addClass("active")),o({targets:this.$slides.eq(t)[0],opacity:1,duration:this.options.duration,easing:"easeOutQuad"}),o({targets:this.$slides.eq(t).find(".caption")[0],opacity:1,translateX:0,translateY:0,duration:this.options.duration,delay:this.options.duration,easing:"easeOutQuad"}),this.$slides.eq(t).addClass("active"),this.activeIndex=t,this.start()}}},{key:"pause",value:function(){clearInterval(this.interval)}},{key:"start",value:function(){clearInterval(this.interval),this.interval=setInterval(this._handleIntervalBound,this.options.duration+this.options.interval)}},{key:"next",value:function(){var t=this.activeIndex+1;t>=this.$slides.length?t=0:t<0&&(t=this.$slides.length-1),this.set(t)}},{key:"prev",value:function(){var t=this.activeIndex-1;t>=this.$slides.length?t=0:t<0&&(t=this.$slides.length-1),this.set(t)}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Slider}},{key:"defaults",get:function(){return e}}]),n}();M.Slider=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"slider","M_Slider")}(cash,M.anime),function(n,s){n(document).on("click",".card",function(t){if(n(this).children(".card-reveal").length){var i=n(t.target).closest(".card");void 0===i.data("initialOverflow")&&i.data("initialOverflow",void 0===i.css("overflow")?"":i.css("overflow"));var e=n(this).find(".card-reveal");n(t.target).is(n(".card-reveal .card-title"))||n(t.target).is(n(".card-reveal .card-title i"))?s({targets:e[0],translateY:0,duration:225,easing:"easeInOutQuad",complete:function(t){var e=t.animatables[0].target;n(e).css({display:"none"}),i.css("overflow",i.data("initialOverflow"))}}):(n(t.target).is(n(".card .activator"))||n(t.target).is(n(".card .activator i")))&&(i.css("overflow","hidden"),e.css({display:"block"}),s({targets:e[0],translateY:"-100%",duration:300,easing:"easeInOutQuad"}))}})}(cash,M.anime),function(h){"use strict";var e={data:[],placeholder:"",secondaryPlaceholder:"",autocompleteOptions:{},limit:1/0,onChipAdd:null,onChipSelect:null,onChipDelete:null},t=function(t){function l(t,e){_classCallCheck(this,l);var i=_possibleConstructorReturn(this,(l.__proto__||Object.getPrototypeOf(l)).call(this,l,t,e));return(i.el.M_Chips=i).options=h.extend({},l.defaults,e),i.$el.addClass("chips input-field"),i.chipsData=[],i.$chips=h(),i._setupInput(),i.hasAutocomplete=0<Object.keys(i.options.autocompleteOptions).length,i.$input.attr("id")||i.$input.attr("id",M.guid()),i.options.data.length&&(i.chipsData=i.options.data,i._renderChips(i.chipsData)),i.hasAutocomplete&&i._setupAutocomplete(),i._setPlaceholder(),i._setupLabel(),i._setupEventHandlers(),i}return _inherits(l,Component),_createClass(l,[{key:"getData",value:function(){return this.chipsData}},{key:"destroy",value:function(){this._removeEventHandlers(),this.$chips.remove(),this.el.M_Chips=void 0}},{key:"_setupEventHandlers",value:function(){this._handleChipClickBound=this._handleChipClick.bind(this),this._handleInputKeydownBound=this._handleInputKeydown.bind(this),this._handleInputFocusBound=this._handleInputFocus.bind(this),this._handleInputBlurBound=this._handleInputBlur.bind(this),this.el.addEventListener("click",this._handleChipClickBound),document.addEventListener("keydown",l._handleChipsKeydown),document.addEventListener("keyup",l._handleChipsKeyup),this.el.addEventListener("blur",l._handleChipsBlur,!0),this.$input[0].addEventListener("focus",this._handleInputFocusBound),this.$input[0].addEventListener("blur",this._handleInputBlurBound),this.$input[0].addEventListener("keydown",this._handleInputKeydownBound)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("click",this._handleChipClickBound),document.removeEventListener("keydown",l._handleChipsKeydown),document.removeEventListener("keyup",l._handleChipsKeyup),this.el.removeEventListener("blur",l._handleChipsBlur,!0),this.$input[0].removeEventListener("focus",this._handleInputFocusBound),this.$input[0].removeEventListener("blur",this._handleInputBlurBound),this.$input[0].removeEventListener("keydown",this._handleInputKeydownBound)}},{key:"_handleChipClick",value:function(t){var e=h(t.target).closest(".chip"),i=h(t.target).is(".close");if(e.length){var n=e.index();i?(this.deleteChip(n),this.$input[0].focus()):this.selectChip(n)}else this.$input[0].focus()}},{key:"_handleInputFocus",value:function(){this.$el.addClass("focus")}},{key:"_handleInputBlur",value:function(){this.$el.removeClass("focus")}},{key:"_handleInputKeydown",value:function(t){if(l._keydown=!0,13===t.keyCode){if(this.hasAutocomplete&&this.autocomplete&&this.autocomplete.isOpen)return;t.preventDefault(),this.addChip({tag:this.$input[0].value}),this.$input[0].value=""}else 8!==t.keyCode&&37!==t.keyCode||""!==this.$input[0].value||!this.chipsData.length||(t.preventDefault(),this.selectChip(this.chipsData.length-1))}},{key:"_renderChip",value:function(t){if(t.tag){var e=document.createElement("div"),i=document.createElement("i");if(e.classList.add("chip"),e.textContent=t.tag,e.setAttribute("tabindex",0),h(i).addClass("material-icons close"),i.textContent="close",t.image){var n=document.createElement("img");n.setAttribute("src",t.image),e.insertBefore(n,e.firstChild)}return e.appendChild(i),e}}},{key:"_renderChips",value:function(){this.$chips.remove();for(var t=0;t<this.chipsData.length;t++){var e=this._renderChip(this.chipsData[t]);this.$el.append(e),this.$chips.add(e)}this.$el.append(this.$input[0])}},{key:"_setupAutocomplete",value:function(){var e=this;this.options.autocompleteOptions.onAutocomplete=function(t){e.addChip({tag:t}),e.$input[0].value="",e.$input[0].focus()},this.autocomplete=M.Autocomplete.init(this.$input[0],this.options.autocompleteOptions)}},{key:"_setupInput",value:function(){this.$input=this.$el.find("input"),this.$input.length||(this.$input=h("<input></input>"),this.$el.append(this.$input)),this.$input.addClass("input")}},{key:"_setupLabel",value:function(){this.$label=this.$el.find("label"),this.$label.length&&this.$label.setAttribute("for",this.$input.attr("id"))}},{key:"_setPlaceholder",value:function(){void 0!==this.chipsData&&!this.chipsData.length&&this.options.placeholder?h(this.$input).prop("placeholder",this.options.placeholder):(void 0===this.chipsData||this.chipsData.length)&&this.options.secondaryPlaceholder&&h(this.$input).prop("placeholder",this.options.secondaryPlaceholder)}},{key:"_isValid",value:function(t){if(t.hasOwnProperty("tag")&&""!==t.tag){for(var e=!1,i=0;i<this.chipsData.length;i++)if(this.chipsData[i].tag===t.tag){e=!0;break}return!e}return!1}},{key:"addChip",value:function(t){if(this._isValid(t)&&!(this.chipsData.length>=this.options.limit)){var e=this._renderChip(t);this.$chips.add(e),this.chipsData.push(t),h(this.$input).before(e),this._setPlaceholder(),"function"==typeof this.options.onChipAdd&&this.options.onChipAdd.call(this,this.$el,e)}}},{key:"deleteChip",value:function(t){var e=this.$chips.eq(t);this.$chips.eq(t).remove(),this.$chips=this.$chips.filter(function(t){return 0<=h(t).index()}),this.chipsData.splice(t,1),this._setPlaceholder(),"function"==typeof this.options.onChipDelete&&this.options.onChipDelete.call(this,this.$el,e[0])}},{key:"selectChip",value:function(t){var e=this.$chips.eq(t);(this._selectedChip=e)[0].focus(),"function"==typeof this.options.onChipSelect&&this.options.onChipSelect.call(this,this.$el,e[0])}}],[{key:"init",value:function(t,e){return _get(l.__proto__||Object.getPrototypeOf(l),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Chips}},{key:"_handleChipsKeydown",value:function(t){l._keydown=!0;var e=h(t.target).closest(".chips"),i=t.target&&e.length;if(!h(t.target).is("input, textarea")&&i){var n=e[0].M_Chips;if(8===t.keyCode||46===t.keyCode){t.preventDefault();var s=n.chipsData.length;if(n._selectedChip){var o=n._selectedChip.index();n.deleteChip(o),n._selectedChip=null,s=Math.max(o-1,0)}n.chipsData.length&&n.selectChip(s)}else if(37===t.keyCode){if(n._selectedChip){var a=n._selectedChip.index()-1;if(a<0)return;n.selectChip(a)}}else if(39===t.keyCode&&n._selectedChip){var r=n._selectedChip.index()+1;r>=n.chipsData.length?n.$input[0].focus():n.selectChip(r)}}}},{key:"_handleChipsKeyup",value:function(t){l._keydown=!1}},{key:"_handleChipsBlur",value:function(t){l._keydown||(h(t.target).closest(".chips")[0].M_Chips._selectedChip=null)}},{key:"defaults",get:function(){return e}}]),l}();t._keydown=!1,M.Chips=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"chips","M_Chips"),h(document).ready(function(){h(document.body).on("click",".chip .close",function(){var t=h(this).closest(".chips");t.length&&t[0].M_Chips||h(this).closest(".chip").remove()})})}(cash),function(s){"use strict";var e={top:0,bottom:1/0,offset:0,onPositionChange:null},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Pushpin=i).options=s.extend({},n.defaults,e),i.originalOffset=i.el.offsetTop,n._pushpins.push(i),i._setupEventHandlers(),i._updatePosition(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this.el.style.top=null,this._removePinClasses(),this._removeEventHandlers();var t=n._pushpins.indexOf(this);n._pushpins.splice(t,1)}},{key:"_setupEventHandlers",value:function(){document.addEventListener("scroll",n._updateElements)}},{key:"_removeEventHandlers",value:function(){document.removeEventListener("scroll",n._updateElements)}},{key:"_updatePosition",value:function(){var t=M.getDocumentScrollTop()+this.options.offset;this.options.top<=t&&this.options.bottom>=t&&!this.el.classList.contains("pinned")&&(this._removePinClasses(),this.el.style.top=this.options.offset+"px",this.el.classList.add("pinned"),"function"==typeof this.options.onPositionChange&&this.options.onPositionChange.call(this,"pinned")),t<this.options.top&&!this.el.classList.contains("pin-top")&&(this._removePinClasses(),this.el.style.top=0,this.el.classList.add("pin-top"),"function"==typeof this.options.onPositionChange&&this.options.onPositionChange.call(this,"pin-top")),t>this.options.bottom&&!this.el.classList.contains("pin-bottom")&&(this._removePinClasses(),this.el.classList.add("pin-bottom"),this.el.style.top=this.options.bottom-this.originalOffset+"px","function"==typeof this.options.onPositionChange&&this.options.onPositionChange.call(this,"pin-bottom"))}},{key:"_removePinClasses",value:function(){this.el.classList.remove("pin-top"),this.el.classList.remove("pinned"),this.el.classList.remove("pin-bottom")}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Pushpin}},{key:"_updateElements",value:function(){for(var t in n._pushpins){n._pushpins[t]._updatePosition()}}},{key:"defaults",get:function(){return e}}]),n}();t._pushpins=[],M.Pushpin=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"pushpin","M_Pushpin")}(cash),function(r,s){"use strict";var e={direction:"top",hoverEnabled:!0,toolbarEnabled:!1};r.fn.reverse=[].reverse;var t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_FloatingActionButton=i).options=r.extend({},n.defaults,e),i.isOpen=!1,i.$anchor=i.$el.children("a").first(),i.$menu=i.$el.children("ul").first(),i.$floatingBtns=i.$el.find("ul .btn-floating"),i.$floatingBtnsReverse=i.$el.find("ul .btn-floating").reverse(),i.offsetY=0,i.offsetX=0,i.$el.addClass("direction-"+i.options.direction),"top"===i.options.direction?i.offsetY=40:"right"===i.options.direction?i.offsetX=-40:"bottom"===i.options.direction?i.offsetY=-40:i.offsetX=40,i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.M_FloatingActionButton=void 0}},{key:"_setupEventHandlers",value:function(){this._handleFABClickBound=this._handleFABClick.bind(this),this._handleOpenBound=this.open.bind(this),this._handleCloseBound=this.close.bind(this),this.options.hoverEnabled&&!this.options.toolbarEnabled?(this.el.addEventListener("mouseenter",this._handleOpenBound),this.el.addEventListener("mouseleave",this._handleCloseBound)):this.el.addEventListener("click",this._handleFABClickBound)}},{key:"_removeEventHandlers",value:function(){this.options.hoverEnabled&&!this.options.toolbarEnabled?(this.el.removeEventListener("mouseenter",this._handleOpenBound),this.el.removeEventListener("mouseleave",this._handleCloseBound)):this.el.removeEventListener("click",this._handleFABClickBound)}},{key:"_handleFABClick",value:function(){this.isOpen?this.close():this.open()}},{key:"_handleDocumentClick",value:function(t){r(t.target).closest(this.$menu).length||this.close()}},{key:"open",value:function(){this.isOpen||(this.options.toolbarEnabled?this._animateInToolbar():this._animateInFAB(),this.isOpen=!0)}},{key:"close",value:function(){this.isOpen&&(this.options.toolbarEnabled?(window.removeEventListener("scroll",this._handleCloseBound,!0),document.body.removeEventListener("click",this._handleDocumentClickBound,!0),this._animateOutToolbar()):this._animateOutFAB(),this.isOpen=!1)}},{key:"_animateInFAB",value:function(){var e=this;this.$el.addClass("active");var i=0;this.$floatingBtnsReverse.each(function(t){s({targets:t,opacity:1,scale:[.4,1],translateY:[e.offsetY,0],translateX:[e.offsetX,0],duration:275,delay:i,easing:"easeInOutQuad"}),i+=40})}},{key:"_animateOutFAB",value:function(){var e=this;this.$floatingBtnsReverse.each(function(t){s.remove(t),s({targets:t,opacity:0,scale:.4,translateY:e.offsetY,translateX:e.offsetX,duration:175,easing:"easeOutQuad",complete:function(){e.$el.removeClass("active")}})})}},{key:"_animateInToolbar",value:function(){var t,e=this,i=window.innerWidth,n=window.innerHeight,s=this.el.getBoundingClientRect(),o=r('<div class="fab-backdrop"></div>'),a=this.$anchor.css("background-color");this.$anchor.append(o),this.offsetX=s.left-i/2+s.width/2,this.offsetY=n-s.bottom,t=i/o[0].clientWidth,this.btnBottom=s.bottom,this.btnLeft=s.left,this.btnWidth=s.width,this.$el.addClass("active"),this.$el.css({"text-align":"center",width:"100%",bottom:0,left:0,transform:"translateX("+this.offsetX+"px)",transition:"none"}),this.$anchor.css({transform:"translateY("+-this.offsetY+"px)",transition:"none"}),o.css({"background-color":a}),setTimeout(function(){e.$el.css({transform:"",transition:"transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s"}),e.$anchor.css({overflow:"visible",transform:"",transition:"transform .2s"}),setTimeout(function(){e.$el.css({overflow:"hidden","background-color":a}),o.css({transform:"scale("+t+")",transition:"transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"}),e.$menu.children("li").children("a").css({opacity:1}),e._handleDocumentClickBound=e._handleDocumentClick.bind(e),window.addEventListener("scroll",e._handleCloseBound,!0),document.body.addEventListener("click",e._handleDocumentClickBound,!0)},100)},0)}},{key:"_animateOutToolbar",value:function(){var t=this,e=window.innerWidth,i=window.innerHeight,n=this.$el.find(".fab-backdrop"),s=this.$anchor.css("background-color");this.offsetX=this.btnLeft-e/2+this.btnWidth/2,this.offsetY=i-this.btnBottom,this.$el.removeClass("active"),this.$el.css({"background-color":"transparent",transition:"none"}),this.$anchor.css({transition:"none"}),n.css({transform:"scale(0)","background-color":s}),this.$menu.children("li").children("a").css({opacity:""}),setTimeout(function(){n.remove(),t.$el.css({"text-align":"",width:"",bottom:"",left:"",overflow:"","background-color":"",transform:"translate3d("+-t.offsetX+"px,0,0)"}),t.$anchor.css({overflow:"",transform:"translate3d(0,"+t.offsetY+"px,0)"}),setTimeout(function(){t.$el.css({transform:"translate3d(0,0,0)",transition:"transform .2s"}),t.$anchor.css({transform:"translate3d(0,0,0)",transition:"transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"})},20)},200)}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_FloatingActionButton}},{key:"defaults",get:function(){return e}}]),n}();M.FloatingActionButton=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"floatingActionButton","M_FloatingActionButton")}(cash,M.anime),function(g){"use strict";var e={autoClose:!1,format:"mmm dd, yyyy",parse:null,defaultDate:null,setDefaultDate:!1,disableWeekends:!1,disableDayFn:null,firstDay:0,minDate:null,maxDate:null,yearRange:10,minYear:0,maxYear:9999,minMonth:void 0,maxMonth:void 0,startRange:null,endRange:null,isRTL:!1,showMonthAfterYear:!1,showDaysInNextAndPreviousMonths:!1,container:null,showClearBtn:!1,i18n:{cancel:"Cancel",clear:"Clear",done:"Ok",previousMonth:"‹",nextMonth:"›",months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],weekdaysAbbrev:["S","M","T","W","T","F","S"]},events:[],onSelect:null,onOpen:null,onClose:null,onDraw:null},t=function(t){function B(t,e){_classCallCheck(this,B);var i=_possibleConstructorReturn(this,(B.__proto__||Object.getPrototypeOf(B)).call(this,B,t,e));(i.el.M_Datepicker=i).options=g.extend({},B.defaults,e),e&&e.hasOwnProperty("i18n")&&"object"==typeof e.i18n&&(i.options.i18n=g.extend({},B.defaults.i18n,e.i18n)),i.options.minDate&&i.options.minDate.setHours(0,0,0,0),i.options.maxDate&&i.options.maxDate.setHours(0,0,0,0),i.id=M.guid(),i._setupVariables(),i._insertHTMLIntoDOM(),i._setupModal(),i._setupEventHandlers(),i.options.defaultDate||(i.options.defaultDate=new Date(Date.parse(i.el.value)));var n=i.options.defaultDate;return B._isDate(n)?i.options.setDefaultDate?(i.setDate(n,!0),i.setInputValue()):i.gotoDate(n):i.gotoDate(new Date),i.isOpen=!1,i}return _inherits(B,Component),_createClass(B,[{key:"destroy",value:function(){this._removeEventHandlers(),this.modal.destroy(),g(this.modalEl).remove(),this.destroySelects(),this.el.M_Datepicker=void 0}},{key:"destroySelects",value:function(){var t=this.calendarEl.querySelector(".orig-select-year");t&&M.FormSelect.getInstance(t).destroy();var e=this.calendarEl.querySelector(".orig-select-month");e&&M.FormSelect.getInstance(e).destroy()}},{key:"_insertHTMLIntoDOM",value:function(){this.options.showClearBtn&&(g(this.clearBtn).css({visibility:""}),this.clearBtn.innerHTML=this.options.i18n.clear),this.doneBtn.innerHTML=this.options.i18n.done,this.cancelBtn.innerHTML=this.options.i18n.cancel,this.options.container?this.$modalEl.appendTo(this.options.container):this.$modalEl.insertBefore(this.el)}},{key:"_setupModal",value:function(){var t=this;this.modalEl.id="modal-"+this.id,this.modal=M.Modal.init(this.modalEl,{onCloseEnd:function(){t.isOpen=!1}})}},{key:"toString",value:function(t){var e=this;return t=t||this.options.format,B._isDate(this.date)?t.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g).map(function(t){return e.formats[t]?e.formats[t]():t}).join(""):""}},{key:"setDate",value:function(t,e){if(!t)return this.date=null,this._renderDateDisplay(),this.draw();if("string"==typeof t&&(t=new Date(Date.parse(t))),B._isDate(t)){var i=this.options.minDate,n=this.options.maxDate;B._isDate(i)&&t<i?t=i:B._isDate(n)&&n<t&&(t=n),this.date=new Date(t.getTime()),this._renderDateDisplay(),B._setToStartOfDay(this.date),this.gotoDate(this.date),e||"function"!=typeof this.options.onSelect||this.options.onSelect.call(this,this.date)}}},{key:"setInputValue",value:function(){this.el.value=this.toString(),this.$el.trigger("change",{firedBy:this})}},{key:"_renderDateDisplay",value:function(){var t=B._isDate(this.date)?this.date:new Date,e=this.options.i18n,i=e.weekdaysShort[t.getDay()],n=e.monthsShort[t.getMonth()],s=t.getDate();this.yearTextEl.innerHTML=t.getFullYear(),this.dateTextEl.innerHTML=i+", "+n+" "+s}},{key:"gotoDate",value:function(t){var e=!0;if(B._isDate(t)){if(this.calendars){var i=new Date(this.calendars[0].year,this.calendars[0].month,1),n=new Date(this.calendars[this.calendars.length-1].year,this.calendars[this.calendars.length-1].month,1),s=t.getTime();n.setMonth(n.getMonth()+1),n.setDate(n.getDate()-1),e=s<i.getTime()||n.getTime()<s}e&&(this.calendars=[{month:t.getMonth(),year:t.getFullYear()}]),this.adjustCalendars()}}},{key:"adjustCalendars",value:function(){this.calendars[0]=this.adjustCalendar(this.calendars[0]),this.draw()}},{key:"adjustCalendar",value:function(t){return t.month<0&&(t.year-=Math.ceil(Math.abs(t.month)/12),t.month+=12),11<t.month&&(t.year+=Math.floor(Math.abs(t.month)/12),t.month-=12),t}},{key:"nextMonth",value:function(){this.calendars[0].month++,this.adjustCalendars()}},{key:"prevMonth",value:function(){this.calendars[0].month--,this.adjustCalendars()}},{key:"render",value:function(t,e,i){var n=this.options,s=new Date,o=B._getDaysInMonth(t,e),a=new Date(t,e,1).getDay(),r=[],l=[];B._setToStartOfDay(s),0<n.firstDay&&(a-=n.firstDay)<0&&(a+=7);for(var h=0===e?11:e-1,d=11===e?0:e+1,u=0===e?t-1:t,c=11===e?t+1:t,p=B._getDaysInMonth(u,h),v=o+a,f=v;7<f;)f-=7;v+=7-f;for(var m=!1,g=0,_=0;g<v;g++){var y=new Date(t,e,g-a+1),k=!!B._isDate(this.date)&&B._compareDates(y,this.date),b=B._compareDates(y,s),w=-1!==n.events.indexOf(y.toDateString()),C=g<a||o+a<=g,E=g-a+1,M=e,O=t,x=n.startRange&&B._compareDates(n.startRange,y),L=n.endRange&&B._compareDates(n.endRange,y),T=n.startRange&&n.endRange&&n.startRange<y&&y<n.endRange;C&&(g<a?(E=p+E,M=h,O=u):(E-=o,M=d,O=c));var $={day:E,month:M,year:O,hasEvent:w,isSelected:k,isToday:b,isDisabled:n.minDate&&y<n.minDate||n.maxDate&&y>n.maxDate||n.disableWeekends&&B._isWeekend(y)||n.disableDayFn&&n.disableDayFn(y),isEmpty:C,isStartRange:x,isEndRange:L,isInRange:T,showDaysInNextAndPreviousMonths:n.showDaysInNextAndPreviousMonths};l.push(this.renderDay($)),7==++_&&(r.push(this.renderRow(l,n.isRTL,m)),_=0,m=!(l=[]))}return this.renderTable(n,r,i)}},{key:"renderDay",value:function(t){var e=[],i="false";if(t.isEmpty){if(!t.showDaysInNextAndPreviousMonths)return'<td class="is-empty"></td>';e.push("is-outside-current-month"),e.push("is-selection-disabled")}return t.isDisabled&&e.push("is-disabled"),t.isToday&&e.push("is-today"),t.isSelected&&(e.push("is-selected"),i="true"),t.hasEvent&&e.push("has-event"),t.isInRange&&e.push("is-inrange"),t.isStartRange&&e.push("is-startrange"),t.isEndRange&&e.push("is-endrange"),'<td data-day="'+t.day+'" class="'+e.join(" ")+'" aria-selected="'+i+'"><button class="datepicker-day-button" type="button" data-year="'+t.year+'" data-month="'+t.month+'" data-day="'+t.day+'">'+t.day+"</button></td>"}},{key:"renderRow",value:function(t,e,i){return'<tr class="datepicker-row'+(i?" is-selected":"")+'">'+(e?t.reverse():t).join("")+"</tr>"}},{key:"renderTable",value:function(t,e,i){return'<div class="datepicker-table-wrapper"><table cellpadding="0" cellspacing="0" class="datepicker-table" role="grid" aria-labelledby="'+i+'">'+this.renderHead(t)+this.renderBody(e)+"</table></div>"}},{key:"renderHead",value:function(t){var e=void 0,i=[];for(e=0;e<7;e++)i.push('<th scope="col"><abbr title="'+this.renderDayName(t,e)+'">'+this.renderDayName(t,e,!0)+"</abbr></th>");return"<thead><tr>"+(t.isRTL?i.reverse():i).join("")+"</tr></thead>"}},{key:"renderBody",value:function(t){return"<tbody>"+t.join("")+"</tbody>"}},{key:"renderTitle",value:function(t,e,i,n,s,o){var a,r,l=void 0,h=void 0,d=void 0,u=this.options,c=i===u.minYear,p=i===u.maxYear,v='<div id="'+o+'" class="datepicker-controls" role="heading" aria-live="assertive">',f=!0,m=!0;for(d=[],l=0;l<12;l++)d.push('<option value="'+(i===s?l-e:12+l-e)+'"'+(l===n?' selected="selected"':"")+(c&&l<u.minMonth||p&&l>u.maxMonth?'disabled="disabled"':"")+">"+u.i18n.months[l]+"</option>");for(a='<select class="datepicker-select orig-select-month" tabindex="-1">'+d.join("")+"</select>",g.isArray(u.yearRange)?(l=u.yearRange[0],h=u.yearRange[1]+1):(l=i-u.yearRange,h=1+i+u.yearRange),d=[];l<h&&l<=u.maxYear;l++)l>=u.minYear&&d.push('<option value="'+l+'" '+(l===i?'selected="selected"':"")+">"+l+"</option>");r='<select class="datepicker-select orig-select-year" tabindex="-1">'+d.join("")+"</select>";v+='<button class="month-prev'+(f?"":" is-disabled")+'" type="button"><svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"/><path d="M0-.5h24v24H0z" fill="none"/></svg></button>',v+='<div class="selects-container">',u.showMonthAfterYear?v+=r+a:v+=a+r,v+="</div>",c&&(0===n||u.minMonth>=n)&&(f=!1),p&&(11===n||u.maxMonth<=n)&&(m=!1);return(v+='<button class="month-next'+(m?"":" is-disabled")+'" type="button"><svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"/><path d="M0-.25h24v24H0z" fill="none"/></svg></button>')+"</div>"}},{key:"draw",value:function(t){if(this.isOpen||t){var e,i=this.options,n=i.minYear,s=i.maxYear,o=i.minMonth,a=i.maxMonth,r="";this._y<=n&&(this._y=n,!isNaN(o)&&this._m<o&&(this._m=o)),this._y>=s&&(this._y=s,!isNaN(a)&&this._m>a&&(this._m=a)),e="datepicker-title-"+Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,2);for(var l=0;l<1;l++)this._renderDateDisplay(),r+=this.renderTitle(this,l,this.calendars[l].year,this.calendars[l].month,this.calendars[0].year,e)+this.render(this.calendars[l].year,this.calendars[l].month,e);this.destroySelects(),this.calendarEl.innerHTML=r;var h=this.calendarEl.querySelector(".orig-select-year"),d=this.calendarEl.querySelector(".orig-select-month");M.FormSelect.init(h,{classes:"select-year",dropdownOptions:{container:document.body,constrainWidth:!1}}),M.FormSelect.init(d,{classes:"select-month",dropdownOptions:{container:document.body,constrainWidth:!1}}),h.addEventListener("change",this._handleYearChange.bind(this)),d.addEventListener("change",this._handleMonthChange.bind(this)),"function"==typeof this.options.onDraw&&this.options.onDraw(this)}}},{key:"_setupEventHandlers",value:function(){this._handleInputKeydownBound=this._handleInputKeydown.bind(this),this._handleInputClickBound=this._handleInputClick.bind(this),this._handleInputChangeBound=this._handleInputChange.bind(this),this._handleCalendarClickBound=this._handleCalendarClick.bind(this),this._finishSelectionBound=this._finishSelection.bind(this),this._handleMonthChange=this._handleMonthChange.bind(this),this._closeBound=this.close.bind(this),this.el.addEventListener("click",this._handleInputClickBound),this.el.addEventListener("keydown",this._handleInputKeydownBound),this.el.addEventListener("change",this._handleInputChangeBound),this.calendarEl.addEventListener("click",this._handleCalendarClickBound),this.doneBtn.addEventListener("click",this._finishSelectionBound),this.cancelBtn.addEventListener("click",this._closeBound),this.options.showClearBtn&&(this._handleClearClickBound=this._handleClearClick.bind(this),this.clearBtn.addEventListener("click",this._handleClearClickBound))}},{key:"_setupVariables",value:function(){var e=this;this.$modalEl=g(B._template),this.modalEl=this.$modalEl[0],this.calendarEl=this.modalEl.querySelector(".datepicker-calendar"),this.yearTextEl=this.modalEl.querySelector(".year-text"),this.dateTextEl=this.modalEl.querySelector(".date-text"),this.options.showClearBtn&&(this.clearBtn=this.modalEl.querySelector(".datepicker-clear")),this.doneBtn=this.modalEl.querySelector(".datepicker-done"),this.cancelBtn=this.modalEl.querySelector(".datepicker-cancel"),this.formats={d:function(){return e.date.getDate()},dd:function(){var t=e.date.getDate();return(t<10?"0":"")+t},ddd:function(){return e.options.i18n.weekdaysShort[e.date.getDay()]},dddd:function(){return e.options.i18n.weekdays[e.date.getDay()]},m:function(){return e.date.getMonth()+1},mm:function(){var t=e.date.getMonth()+1;return(t<10?"0":"")+t},mmm:function(){return e.options.i18n.monthsShort[e.date.getMonth()]},mmmm:function(){return e.options.i18n.months[e.date.getMonth()]},yy:function(){return(""+e.date.getFullYear()).slice(2)},yyyy:function(){return e.date.getFullYear()}}}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("click",this._handleInputClickBound),this.el.removeEventListener("keydown",this._handleInputKeydownBound),this.el.removeEventListener("change",this._handleInputChangeBound),this.calendarEl.removeEventListener("click",this._handleCalendarClickBound)}},{key:"_handleInputClick",value:function(){this.open()}},{key:"_handleInputKeydown",value:function(t){t.which===M.keys.ENTER&&(t.preventDefault(),this.open())}},{key:"_handleCalendarClick",value:function(t){if(this.isOpen){var e=g(t.target);e.hasClass("is-disabled")||(!e.hasClass("datepicker-day-button")||e.hasClass("is-empty")||e.parent().hasClass("is-disabled")?e.closest(".month-prev").length?this.prevMonth():e.closest(".month-next").length&&this.nextMonth():(this.setDate(new Date(t.target.getAttribute("data-year"),t.target.getAttribute("data-month"),t.target.getAttribute("data-day"))),this.options.autoClose&&this._finishSelection()))}}},{key:"_handleClearClick",value:function(){this.date=null,this.setInputValue(),this.close()}},{key:"_handleMonthChange",value:function(t){this.gotoMonth(t.target.value)}},{key:"_handleYearChange",value:function(t){this.gotoYear(t.target.value)}},{key:"gotoMonth",value:function(t){isNaN(t)||(this.calendars[0].month=parseInt(t,10),this.adjustCalendars())}},{key:"gotoYear",value:function(t){isNaN(t)||(this.calendars[0].year=parseInt(t,10),this.adjustCalendars())}},{key:"_handleInputChange",value:function(t){var e=void 0;t.firedBy!==this&&(e=this.options.parse?this.options.parse(this.el.value,this.options.format):new Date(Date.parse(this.el.value)),B._isDate(e)&&this.setDate(e))}},{key:"renderDayName",value:function(t,e,i){for(e+=t.firstDay;7<=e;)e-=7;return i?t.i18n.weekdaysAbbrev[e]:t.i18n.weekdays[e]}},{key:"_finishSelection",value:function(){this.setInputValue(),this.close()}},{key:"open",value:function(){if(!this.isOpen)return this.isOpen=!0,"function"==typeof this.options.onOpen&&this.options.onOpen.call(this),this.draw(),this.modal.open(),this}},{key:"close",value:function(){if(this.isOpen)return this.isOpen=!1,"function"==typeof this.options.onClose&&this.options.onClose.call(this),this.modal.close(),this}}],[{key:"init",value:function(t,e){return _get(B.__proto__||Object.getPrototypeOf(B),"init",this).call(this,this,t,e)}},{key:"_isDate",value:function(t){return/Date/.test(Object.prototype.toString.call(t))&&!isNaN(t.getTime())}},{key:"_isWeekend",value:function(t){var e=t.getDay();return 0===e||6===e}},{key:"_setToStartOfDay",value:function(t){B._isDate(t)&&t.setHours(0,0,0,0)}},{key:"_getDaysInMonth",value:function(t,e){return[31,B._isLeapYear(t)?29:28,31,30,31,30,31,31,30,31,30,31][e]}},{key:"_isLeapYear",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:"_compareDates",value:function(t,e){return t.getTime()===e.getTime()}},{key:"_setToStartOfDay",value:function(t){B._isDate(t)&&t.setHours(0,0,0,0)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Datepicker}},{key:"defaults",get:function(){return e}}]),B}();t._template=['<div class= "modal datepicker-modal">','<div class="modal-content datepicker-container">','<div class="datepicker-date-display">','<span class="year-text"></span>','<span class="date-text"></span>',"</div>",'<div class="datepicker-calendar-container">','<div class="datepicker-calendar"></div>','<div class="datepicker-footer">','<button class="btn-flat datepicker-clear waves-effect" style="visibility: hidden;" type="button"></button>','<div class="confirmation-btns">','<button class="btn-flat datepicker-cancel waves-effect" type="button"></button>','<button class="btn-flat datepicker-done waves-effect" type="button"></button>',"</div>","</div>","</div>","</div>","</div>"].join(""),M.Datepicker=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"datepicker","M_Datepicker")}(cash),function(h){"use strict";var e={dialRadius:135,outerRadius:105,innerRadius:70,tickRadius:20,duration:350,container:null,defaultTime:"now",fromNow:0,showClearBtn:!1,i18n:{cancel:"Cancel",clear:"Clear",done:"Ok"},autoClose:!1,twelveHour:!0,vibrate:!0,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null,onSelect:null},t=function(t){function f(t,e){_classCallCheck(this,f);var i=_possibleConstructorReturn(this,(f.__proto__||Object.getPrototypeOf(f)).call(this,f,t,e));return(i.el.M_Timepicker=i).options=h.extend({},f.defaults,e),i.id=M.guid(),i._insertHTMLIntoDOM(),i._setupModal(),i._setupVariables(),i._setupEventHandlers(),i._clockSetup(),i._pickerSetup(),i}return _inherits(f,Component),_createClass(f,[{key:"destroy",value:function(){this._removeEventHandlers(),this.modal.destroy(),h(this.modalEl).remove(),this.el.M_Timepicker=void 0}},{key:"_setupEventHandlers",value:function(){this._handleInputKeydownBound=this._handleInputKeydown.bind(this),this._handleInputClickBound=this._handleInputClick.bind(this),this._handleClockClickStartBound=this._handleClockClickStart.bind(this),this._handleDocumentClickMoveBound=this._handleDocumentClickMove.bind(this),this._handleDocumentClickEndBound=this._handleDocumentClickEnd.bind(this),this.el.addEventListener("click",this._handleInputClickBound),this.el.addEventListener("keydown",this._handleInputKeydownBound),this.plate.addEventListener("mousedown",this._handleClockClickStartBound),this.plate.addEventListener("touchstart",this._handleClockClickStartBound),h(this.spanHours).on("click",this.showView.bind(this,"hours")),h(this.spanMinutes).on("click",this.showView.bind(this,"minutes"))}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("click",this._handleInputClickBound),this.el.removeEventListener("keydown",this._handleInputKeydownBound)}},{key:"_handleInputClick",value:function(){this.open()}},{key:"_handleInputKeydown",value:function(t){t.which===M.keys.ENTER&&(t.preventDefault(),this.open())}},{key:"_handleClockClickStart",value:function(t){t.preventDefault();var e=this.plate.getBoundingClientRect(),i=e.left,n=e.top;this.x0=i+this.options.dialRadius,this.y0=n+this.options.dialRadius,this.moved=!1;var s=f._Pos(t);this.dx=s.x-this.x0,this.dy=s.y-this.y0,this.setHand(this.dx,this.dy,!1),document.addEventListener("mousemove",this._handleDocumentClickMoveBound),document.addEventListener("touchmove",this._handleDocumentClickMoveBound),document.addEventListener("mouseup",this._handleDocumentClickEndBound),document.addEventListener("touchend",this._handleDocumentClickEndBound)}},{key:"_handleDocumentClickMove",value:function(t){t.preventDefault();var e=f._Pos(t),i=e.x-this.x0,n=e.y-this.y0;this.moved=!0,this.setHand(i,n,!1,!0)}},{key:"_handleDocumentClickEnd",value:function(t){var e=this;t.preventDefault(),document.removeEventListener("mouseup",this._handleDocumentClickEndBound),document.removeEventListener("touchend",this._handleDocumentClickEndBound);var i=f._Pos(t),n=i.x-this.x0,s=i.y-this.y0;this.moved&&n===this.dx&&s===this.dy&&this.setHand(n,s),"hours"===this.currentView?this.showView("minutes",this.options.duration/2):this.options.autoClose&&(h(this.minutesView).addClass("timepicker-dial-out"),setTimeout(function(){e.done()},this.options.duration/2)),"function"==typeof this.options.onSelect&&this.options.onSelect.call(this,this.hours,this.minutes),document.removeEventListener("mousemove",this._handleDocumentClickMoveBound),document.removeEventListener("touchmove",this._handleDocumentClickMoveBound)}},{key:"_insertHTMLIntoDOM",value:function(){this.$modalEl=h(f._template),this.modalEl=this.$modalEl[0],this.modalEl.id="modal-"+this.id;var t=document.querySelector(this.options.container);this.options.container&&t?this.$modalEl.appendTo(t):this.$modalEl.insertBefore(this.el)}},{key:"_setupModal",value:function(){var t=this;this.modal=M.Modal.init(this.modalEl,{onOpenStart:this.options.onOpenStart,onOpenEnd:this.options.onOpenEnd,onCloseStart:this.options.onCloseStart,onCloseEnd:function(){"function"==typeof t.options.onCloseEnd&&t.options.onCloseEnd.call(t),t.isOpen=!1}})}},{key:"_setupVariables",value:function(){this.currentView="hours",this.vibrate=navigator.vibrate?"vibrate":navigator.webkitVibrate?"webkitVibrate":null,this._canvas=this.modalEl.querySelector(".timepicker-canvas"),this.plate=this.modalEl.querySelector(".timepicker-plate"),this.hoursView=this.modalEl.querySelector(".timepicker-hours"),this.minutesView=this.modalEl.querySelector(".timepicker-minutes"),this.spanHours=this.modalEl.querySelector(".timepicker-span-hours"),this.spanMinutes=this.modalEl.querySelector(".timepicker-span-minutes"),this.spanAmPm=this.modalEl.querySelector(".timepicker-span-am-pm"),this.footer=this.modalEl.querySelector(".timepicker-footer"),this.amOrPm="PM"}},{key:"_pickerSetup",value:function(){var t=h('<button class="btn-flat timepicker-clear waves-effect" style="visibility: hidden;" type="button" tabindex="'+(this.options.twelveHour?"3":"1")+'">'+this.options.i18n.clear+"</button>").appendTo(this.footer).on("click",this.clear.bind(this));this.options.showClearBtn&&t.css({visibility:""});var e=h('<div class="confirmation-btns"></div>');h('<button class="btn-flat timepicker-close waves-effect" type="button" tabindex="'+(this.options.twelveHour?"3":"1")+'">'+this.options.i18n.cancel+"</button>").appendTo(e).on("click",this.close.bind(this)),h('<button class="btn-flat timepicker-close waves-effect" type="button" tabindex="'+(this.options.twelveHour?"3":"1")+'">'+this.options.i18n.done+"</button>").appendTo(e).on("click",this.done.bind(this)),e.appendTo(this.footer)}},{key:"_clockSetup",value:function(){this.options.twelveHour&&(this.$amBtn=h('<div class="am-btn">AM</div>'),this.$pmBtn=h('<div class="pm-btn">PM</div>'),this.$amBtn.on("click",this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm),this.$pmBtn.on("click",this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm)),this._buildHoursView(),this._buildMinutesView(),this._buildSVGClock()}},{key:"_buildSVGClock",value:function(){var t=this.options.dialRadius,e=this.options.tickRadius,i=2*t,n=f._createSVGEl("svg");n.setAttribute("class","timepicker-svg"),n.setAttribute("width",i),n.setAttribute("height",i);var s=f._createSVGEl("g");s.setAttribute("transform","translate("+t+","+t+")");var o=f._createSVGEl("circle");o.setAttribute("class","timepicker-canvas-bearing"),o.setAttribute("cx",0),o.setAttribute("cy",0),o.setAttribute("r",4);var a=f._createSVGEl("line");a.setAttribute("x1",0),a.setAttribute("y1",0);var r=f._createSVGEl("circle");r.setAttribute("class","timepicker-canvas-bg"),r.setAttribute("r",e),s.appendChild(a),s.appendChild(r),s.appendChild(o),n.appendChild(s),this._canvas.appendChild(n),this.hand=a,this.bg=r,this.bearing=o,this.g=s}},{key:"_buildHoursView",value:function(){var t=h('<div class="timepicker-tick"></div>');if(this.options.twelveHour)for(var e=1;e<13;e+=1){var i=t.clone(),n=e/6*Math.PI,s=this.options.outerRadius;i.css({left:this.options.dialRadius+Math.sin(n)*s-this.options.tickRadius+"px",top:this.options.dialRadius-Math.cos(n)*s-this.options.tickRadius+"px"}),i.html(0===e?"00":e),this.hoursView.appendChild(i[0])}else for(var o=0;o<24;o+=1){var a=t.clone(),r=o/6*Math.PI,l=0<o&&o<13?this.options.innerRadius:this.options.outerRadius;a.css({left:this.options.dialRadius+Math.sin(r)*l-this.options.tickRadius+"px",top:this.options.dialRadius-Math.cos(r)*l-this.options.tickRadius+"px"}),a.html(0===o?"00":o),this.hoursView.appendChild(a[0])}}},{key:"_buildMinutesView",value:function(){for(var t=h('<div class="timepicker-tick"></div>'),e=0;e<60;e+=5){var i=t.clone(),n=e/30*Math.PI;i.css({left:this.options.dialRadius+Math.sin(n)*this.options.outerRadius-this.options.tickRadius+"px",top:this.options.dialRadius-Math.cos(n)*this.options.outerRadius-this.options.tickRadius+"px"}),i.html(f._addLeadingZero(e)),this.minutesView.appendChild(i[0])}}},{key:"_handleAmPmClick",value:function(t){var e=h(t.target);this.amOrPm=e.hasClass("am-btn")?"AM":"PM",this._updateAmPmView()}},{key:"_updateAmPmView",value:function(){this.options.twelveHour&&(this.$amBtn.toggleClass("text-primary","AM"===this.amOrPm),this.$pmBtn.toggleClass("text-primary","PM"===this.amOrPm))}},{key:"_updateTimeFromInput",value:function(){var t=((this.el.value||this.options.defaultTime||"")+"").split(":");if(this.options.twelveHour&&void 0!==t[1]&&(0<t[1].toUpperCase().indexOf("AM")?this.amOrPm="AM":this.amOrPm="PM",t[1]=t[1].replace("AM","").replace("PM","")),"now"===t[0]){var e=new Date(+new Date+this.options.fromNow);t=[e.getHours(),e.getMinutes()],this.options.twelveHour&&(this.amOrPm=12<=t[0]&&t[0]<24?"PM":"AM")}this.hours=+t[0]||0,this.minutes=+t[1]||0,this.spanHours.innerHTML=this.hours,this.spanMinutes.innerHTML=f._addLeadingZero(this.minutes),this._updateAmPmView()}},{key:"showView",value:function(t,e){"minutes"===t&&h(this.hoursView).css("visibility");var i="hours"===t,n=i?this.hoursView:this.minutesView,s=i?this.minutesView:this.hoursView;this.currentView=t,h(this.spanHours).toggleClass("text-primary",i),h(this.spanMinutes).toggleClass("text-primary",!i),s.classList.add("timepicker-dial-out"),h(n).css("visibility","visible").removeClass("timepicker-dial-out"),this.resetClock(e),clearTimeout(this.toggleViewTimer),this.toggleViewTimer=setTimeout(function(){h(s).css("visibility","hidden")},this.options.duration)}},{key:"resetClock",value:function(t){var e=this.currentView,i=this[e],n="hours"===e,s=i*(Math.PI/(n?6:30)),o=n&&0<i&&i<13?this.options.innerRadius:this.options.outerRadius,a=Math.sin(s)*o,r=-Math.cos(s)*o,l=this;t?(h(this.canvas).addClass("timepicker-canvas-out"),setTimeout(function(){h(l.canvas).removeClass("timepicker-canvas-out"),l.setHand(a,r)},t)):this.setHand(a,r)}},{key:"setHand",value:function(t,e,i){var n=this,s=Math.atan2(t,-e),o="hours"===this.currentView,a=Math.PI/(o||i?6:30),r=Math.sqrt(t*t+e*e),l=o&&r<(this.options.outerRadius+this.options.innerRadius)/2,h=l?this.options.innerRadius:this.options.outerRadius;this.options.twelveHour&&(h=this.options.outerRadius),s<0&&(s=2*Math.PI+s);var d=Math.round(s/a);s=d*a,this.options.twelveHour?o?0===d&&(d=12):(i&&(d*=5),60===d&&(d=0)):o?(12===d&&(d=0),d=l?0===d?12:d:0===d?0:d+12):(i&&(d*=5),60===d&&(d=0)),this[this.currentView]!==d&&this.vibrate&&this.options.vibrate&&(this.vibrateTimer||(navigator[this.vibrate](10),this.vibrateTimer=setTimeout(function(){n.vibrateTimer=null},100))),this[this.currentView]=d,o?this.spanHours.innerHTML=d:this.spanMinutes.innerHTML=f._addLeadingZero(d);var u=Math.sin(s)*(h-this.options.tickRadius),c=-Math.cos(s)*(h-this.options.tickRadius),p=Math.sin(s)*h,v=-Math.cos(s)*h;this.hand.setAttribute("x2",u),this.hand.setAttribute("y2",c),this.bg.setAttribute("cx",p),this.bg.setAttribute("cy",v)}},{key:"open",value:function(){this.isOpen||(this.isOpen=!0,this._updateTimeFromInput(),this.showView("hours"),this.modal.open())}},{key:"close",value:function(){this.isOpen&&(this.isOpen=!1,this.modal.close())}},{key:"done",value:function(t,e){var i=this.el.value,n=e?"":f._addLeadingZero(this.hours)+":"+f._addLeadingZero(this.minutes);this.time=n,!e&&this.options.twelveHour&&(n=n+" "+this.amOrPm),(this.el.value=n)!==i&&this.$el.trigger("change"),this.close(),this.el.focus()}},{key:"clear",value:function(){this.done(null,!0)}}],[{key:"init",value:function(t,e){return _get(f.__proto__||Object.getPrototypeOf(f),"init",this).call(this,this,t,e)}},{key:"_addLeadingZero",value:function(t){return(t<10?"0":"")+t}},{key:"_createSVGEl",value:function(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}},{key:"_Pos",value:function(t){return t.targetTouches&&1<=t.targetTouches.length?{x:t.targetTouches[0].clientX,y:t.targetTouches[0].clientY}:{x:t.clientX,y:t.clientY}}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Timepicker}},{key:"defaults",get:function(){return e}}]),f}();t._template=['<div class= "modal timepicker-modal">','<div class="modal-content timepicker-container">','<div class="timepicker-digital-display">','<div class="timepicker-text-container">','<div class="timepicker-display-column">','<span class="timepicker-span-hours text-primary"></span>',":",'<span class="timepicker-span-minutes"></span>',"</div>",'<div class="timepicker-display-column timepicker-display-am-pm">','<div class="timepicker-span-am-pm"></div>',"</div>","</div>","</div>",'<div class="timepicker-analog-display">','<div class="timepicker-plate">','<div class="timepicker-canvas"></div>','<div class="timepicker-dial timepicker-hours"></div>','<div class="timepicker-dial timepicker-minutes timepicker-dial-out"></div>',"</div>",'<div class="timepicker-footer"></div>',"</div>","</div>","</div>"].join(""),M.Timepicker=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"timepicker","M_Timepicker")}(cash),function(s){"use strict";var e={},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_CharacterCounter=i).options=s.extend({},n.defaults,e),i.isInvalid=!1,i.isValidLength=!1,i._setupCounter(),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.CharacterCounter=void 0,this._removeCounter()}},{key:"_setupEventHandlers",value:function(){this._handleUpdateCounterBound=this.updateCounter.bind(this),this.el.addEventListener("focus",this._handleUpdateCounterBound,!0),this.el.addEventListener("input",this._handleUpdateCounterBound,!0)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("focus",this._handleUpdateCounterBound,!0),this.el.removeEventListener("input",this._handleUpdateCounterBound,!0)}},{key:"_setupCounter",value:function(){this.counterEl=document.createElement("span"),s(this.counterEl).addClass("character-counter").css({float:"right","font-size":"12px",height:1}),this.$el.parent().append(this.counterEl)}},{key:"_removeCounter",value:function(){s(this.counterEl).remove()}},{key:"updateCounter",value:function(){var t=+this.$el.attr("data-length"),e=this.el.value.length;this.isValidLength=e<=t;var i=e;t&&(i+="/"+t,this._validateInput()),s(this.counterEl).html(i)}},{key:"_validateInput",value:function(){this.isValidLength&&this.isInvalid?(this.isInvalid=!1,this.$el.removeClass("invalid")):this.isValidLength||this.isInvalid||(this.isInvalid=!0,this.$el.removeClass("valid"),this.$el.addClass("invalid"))}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_CharacterCounter}},{key:"defaults",get:function(){return e}}]),n}();M.CharacterCounter=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"characterCounter","M_CharacterCounter")}(cash),function(b){"use strict";var e={duration:200,dist:-100,shift:0,padding:0,numVisible:5,fullWidth:!1,indicators:!1,noWrap:!1,onCycleTo:null},t=function(t){function i(t,e){_classCallCheck(this,i);var n=_possibleConstructorReturn(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,i,t,e));return(n.el.M_Carousel=n).options=b.extend({},i.defaults,e),n.hasMultipleSlides=1<n.$el.find(".carousel-item").length,n.showIndicators=n.options.indicators&&n.hasMultipleSlides,n.noWrap=n.options.noWrap||!n.hasMultipleSlides,n.pressed=!1,n.dragged=!1,n.offset=n.target=0,n.images=[],n.itemWidth=n.$el.find(".carousel-item").first().innerWidth(),n.itemHeight=n.$el.find(".carousel-item").first().innerHeight(),n.dim=2*n.itemWidth+n.options.padding||1,n._autoScrollBound=n._autoScroll.bind(n),n._trackBound=n._track.bind(n),n.options.fullWidth&&(n.options.dist=0,n._setCarouselHeight(),n.showIndicators&&n.$el.find(".carousel-fixed-item").addClass("with-indicators")),n.$indicators=b('<ul class="indicators"></ul>'),n.$el.find(".carousel-item").each(function(t,e){if(n.images.push(t),n.showIndicators){var i=b('<li class="indicator-item"></li>');0===e&&i[0].classList.add("active"),n.$indicators.append(i)}}),n.showIndicators&&n.$el.append(n.$indicators),n.count=n.images.length,n.options.numVisible=Math.min(n.count,n.options.numVisible),n.xform="transform",["webkit","Moz","O","ms"].every(function(t){var e=t+"Transform";return void 0===document.body.style[e]||(n.xform=e,!1)}),n._setupEventHandlers(),n._scroll(n.offset),n}return _inherits(i,Component),_createClass(i,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.M_Carousel=void 0}},{key:"_setupEventHandlers",value:function(){var i=this;this._handleCarouselTapBound=this._handleCarouselTap.bind(this),this._handleCarouselDragBound=this._handleCarouselDrag.bind(this),this._handleCarouselReleaseBound=this._handleCarouselRelease.bind(this),this._handleCarouselClickBound=this._handleCarouselClick.bind(this),void 0!==window.ontouchstart&&(this.el.addEventListener("touchstart",this._handleCarouselTapBound),this.el.addEventListener("touchmove",this._handleCarouselDragBound),this.el.addEventListener("touchend",this._handleCarouselReleaseBound)),this.el.addEventListener("mousedown",this._handleCarouselTapBound),this.el.addEventListener("mousemove",this._handleCarouselDragBound),this.el.addEventListener("mouseup",this._handleCarouselReleaseBound),this.el.addEventListener("mouseleave",this._handleCarouselReleaseBound),this.el.addEventListener("click",this._handleCarouselClickBound),this.showIndicators&&this.$indicators&&(this._handleIndicatorClickBound=this._handleIndicatorClick.bind(this),this.$indicators.find(".indicator-item").each(function(t,e){t.addEventListener("click",i._handleIndicatorClickBound)}));var t=M.throttle(this._handleResize,200);this._handleThrottledResizeBound=t.bind(this),window.addEventListener("resize",this._handleThrottledResizeBound)}},{key:"_removeEventHandlers",value:function(){var i=this;void 0!==window.ontouchstart&&(this.el.removeEventListener("touchstart",this._handleCarouselTapBound),this.el.removeEventListener("touchmove",this._handleCarouselDragBound),this.el.removeEventListener("touchend",this._handleCarouselReleaseBound)),this.el.removeEventListener("mousedown",this._handleCarouselTapBound),this.el.removeEventListener("mousemove",this._handleCarouselDragBound),this.el.removeEventListener("mouseup",this._handleCarouselReleaseBound),this.el.removeEventListener("mouseleave",this._handleCarouselReleaseBound),this.el.removeEventListener("click",this._handleCarouselClickBound),this.showIndicators&&this.$indicators&&this.$indicators.find(".indicator-item").each(function(t,e){t.removeEventListener("click",i._handleIndicatorClickBound)}),window.removeEventListener("resize",this._handleThrottledResizeBound)}},{key:"_handleCarouselTap",value:function(t){"mousedown"===t.type&&b(t.target).is("img")&&t.preventDefault(),this.pressed=!0,this.dragged=!1,this.verticalDragged=!1,this.reference=this._xpos(t),this.referenceY=this._ypos(t),this.velocity=this.amplitude=0,this.frame=this.offset,this.timestamp=Date.now(),clearInterval(this.ticker),this.ticker=setInterval(this._trackBound,100)}},{key:"_handleCarouselDrag",value:function(t){var e=void 0,i=void 0,n=void 0;if(this.pressed)if(e=this._xpos(t),i=this._ypos(t),n=this.reference-e,Math.abs(this.referenceY-i)<30&&!this.verticalDragged)(2<n||n<-2)&&(this.dragged=!0,this.reference=e,this._scroll(this.offset+n));else{if(this.dragged)return t.preventDefault(),t.stopPropagation(),!1;this.verticalDragged=!0}if(this.dragged)return t.preventDefault(),t.stopPropagation(),!1}},{key:"_handleCarouselRelease",value:function(t){if(this.pressed)return this.pressed=!1,clearInterval(this.ticker),this.target=this.offset,(10<this.velocity||this.velocity<-10)&&(this.amplitude=.9*this.velocity,this.target=this.offset+this.amplitude),this.target=Math.round(this.target/this.dim)*this.dim,this.noWrap&&(this.target>=this.dim*(this.count-1)?this.target=this.dim*(this.count-1):this.target<0&&(this.target=0)),this.amplitude=this.target-this.offset,this.timestamp=Date.now(),requestAnimationFrame(this._autoScrollBound),this.dragged&&(t.preventDefault(),t.stopPropagation()),!1}},{key:"_handleCarouselClick",value:function(t){if(this.dragged)return t.preventDefault(),t.stopPropagation(),!1;if(!this.options.fullWidth){var e=b(t.target).closest(".carousel-item").index();0!==this._wrap(this.center)-e&&(t.preventDefault(),t.stopPropagation()),this._cycleTo(e)}}},{key:"_handleIndicatorClick",value:function(t){t.stopPropagation();var e=b(t.target).closest(".indicator-item");e.length&&this._cycleTo(e.index())}},{key:"_handleResize",value:function(t){this.options.fullWidth?(this.itemWidth=this.$el.find(".carousel-item").first().innerWidth(),this.imageHeight=this.$el.find(".carousel-item.active").height(),this.dim=2*this.itemWidth+this.options.padding,this.offset=2*this.center*this.itemWidth,this.target=this.offset,this._setCarouselHeight(!0)):this._scroll()}},{key:"_setCarouselHeight",value:function(t){var i=this,e=this.$el.find(".carousel-item.active").length?this.$el.find(".carousel-item.active").first():this.$el.find(".carousel-item").first(),n=e.find("img").first();if(n.length)if(n[0].complete){var s=n.height();if(0<s)this.$el.css("height",s+"px");else{var o=n[0].naturalWidth,a=n[0].naturalHeight,r=this.$el.width()/o*a;this.$el.css("height",r+"px")}}else n.one("load",function(t,e){i.$el.css("height",t.offsetHeight+"px")});else if(!t){var l=e.height();this.$el.css("height",l+"px")}}},{key:"_xpos",value:function(t){return t.targetTouches&&1<=t.targetTouches.length?t.targetTouches[0].clientX:t.clientX}},{key:"_ypos",value:function(t){return t.targetTouches&&1<=t.targetTouches.length?t.targetTouches[0].clientY:t.clientY}},{key:"_wrap",value:function(t){return t>=this.count?t%this.count:t<0?this._wrap(this.count+t%this.count):t}},{key:"_track",value:function(){var t,e,i,n;e=(t=Date.now())-this.timestamp,this.timestamp=t,i=this.offset-this.frame,this.frame=this.offset,n=1e3*i/(1+e),this.velocity=.8*n+.2*this.velocity}},{key:"_autoScroll",value:function(){var t=void 0,e=void 0;this.amplitude&&(t=Date.now()-this.timestamp,2<(e=this.amplitude*Math.exp(-t/this.options.duration))||e<-2?(this._scroll(this.target-e),requestAnimationFrame(this._autoScrollBound)):this._scroll(this.target))}},{key:"_scroll",value:function(t){var e=this;this.$el.hasClass("scrolling")||this.el.classList.add("scrolling"),null!=this.scrollingTimeout&&window.clearTimeout(this.scrollingTimeout),this.scrollingTimeout=window.setTimeout(function(){e.$el.removeClass("scrolling")},this.options.duration);var i,n,s,o,a=void 0,r=void 0,l=void 0,h=void 0,d=void 0,u=void 0,c=this.center,p=1/this.options.numVisible;if(this.offset="number"==typeof t?t:this.offset,this.center=Math.floor((this.offset+this.dim/2)/this.dim),o=-(s=(n=this.offset-this.center*this.dim)<0?1:-1)*n*2/this.dim,i=this.count>>1,this.options.fullWidth?(l="translateX(0)",u=1):(l="translateX("+(this.el.clientWidth-this.itemWidth)/2+"px) ",l+="translateY("+(this.el.clientHeight-this.itemHeight)/2+"px)",u=1-p*o),this.showIndicators){var v=this.center%this.count,f=this.$indicators.find(".indicator-item.active");f.index()!==v&&(f.removeClass("active"),this.$indicators.find(".indicator-item").eq(v)[0].classList.add("active"))}if(!this.noWrap||0<=this.center&&this.center<this.count){r=this.images[this._wrap(this.center)],b(r).hasClass("active")||(this.$el.find(".carousel-item").removeClass("active"),r.classList.add("active"));var m=l+" translateX("+-n/2+"px) translateX("+s*this.options.shift*o*a+"px) translateZ("+this.options.dist*o+"px)";this._updateItemStyle(r,u,0,m)}for(a=1;a<=i;++a){if(this.options.fullWidth?(h=this.options.dist,d=a===i&&n<0?1-o:1):(h=this.options.dist*(2*a+o*s),d=1-p*(2*a+o*s)),!this.noWrap||this.center+a<this.count){r=this.images[this._wrap(this.center+a)];var g=l+" translateX("+(this.options.shift+(this.dim*a-n)/2)+"px) translateZ("+h+"px)";this._updateItemStyle(r,d,-a,g)}if(this.options.fullWidth?(h=this.options.dist,d=a===i&&0<n?1-o:1):(h=this.options.dist*(2*a-o*s),d=1-p*(2*a-o*s)),!this.noWrap||0<=this.center-a){r=this.images[this._wrap(this.center-a)];var _=l+" translateX("+(-this.options.shift+(-this.dim*a-n)/2)+"px) translateZ("+h+"px)";this._updateItemStyle(r,d,-a,_)}}if(!this.noWrap||0<=this.center&&this.center<this.count){r=this.images[this._wrap(this.center)];var y=l+" translateX("+-n/2+"px) translateX("+s*this.options.shift*o+"px) translateZ("+this.options.dist*o+"px)";this._updateItemStyle(r,u,0,y)}var k=this.$el.find(".carousel-item").eq(this._wrap(this.center));c!==this.center&&"function"==typeof this.options.onCycleTo&&this.options.onCycleTo.call(this,k[0],this.dragged),"function"==typeof this.oneTimeCallback&&(this.oneTimeCallback.call(this,k[0],this.dragged),this.oneTimeCallback=null)}},{key:"_updateItemStyle",value:function(t,e,i,n){t.style[this.xform]=n,t.style.zIndex=i,t.style.opacity=e,t.style.visibility="visible"}},{key:"_cycleTo",value:function(t,e){var i=this.center%this.count-t;this.noWrap||(i<0?Math.abs(i+this.count)<Math.abs(i)&&(i+=this.count):0<i&&Math.abs(i-this.count)<i&&(i-=this.count)),this.target=this.dim*Math.round(this.offset/this.dim),i<0?this.target+=this.dim*Math.abs(i):0<i&&(this.target-=this.dim*i),"function"==typeof e&&(this.oneTimeCallback=e),this.offset!==this.target&&(this.amplitude=this.target-this.offset,this.timestamp=Date.now(),requestAnimationFrame(this._autoScrollBound))}},{key:"next",value:function(t){(void 0===t||isNaN(t))&&(t=1);var e=this.center+t;if(e>=this.count||e<0){if(this.noWrap)return;e=this._wrap(e)}this._cycleTo(e)}},{key:"prev",value:function(t){(void 0===t||isNaN(t))&&(t=1);var e=this.center-t;if(e>=this.count||e<0){if(this.noWrap)return;e=this._wrap(e)}this._cycleTo(e)}},{key:"set",value:function(t,e){if((void 0===t||isNaN(t))&&(t=0),t>this.count||t<0){if(this.noWrap)return;t=this._wrap(t)}this._cycleTo(t,e)}}],[{key:"init",value:function(t,e){return _get(i.__proto__||Object.getPrototypeOf(i),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Carousel}},{key:"defaults",get:function(){return e}}]),i}();M.Carousel=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"carousel","M_Carousel")}(cash),function(S){"use strict";var e={onOpen:void 0,onClose:void 0},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_TapTarget=i).options=S.extend({},n.defaults,e),i.isOpen=!1,i.$origin=S("#"+i.$el.attr("data-target")),i._setup(),i._calculatePositioning(),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.TapTarget=void 0}},{key:"_setupEventHandlers",value:function(){this._handleDocumentClickBound=this._handleDocumentClick.bind(this),this._handleTargetClickBound=this._handleTargetClick.bind(this),this._handleOriginClickBound=this._handleOriginClick.bind(this),this.el.addEventListener("click",this._handleTargetClickBound),this.originEl.addEventListener("click",this._handleOriginClickBound);var t=M.throttle(this._handleResize,200);this._handleThrottledResizeBound=t.bind(this),window.addEventListener("resize",this._handleThrottledResizeBound)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("click",this._handleTargetClickBound),this.originEl.removeEventListener("click",this._handleOriginClickBound),window.removeEventListener("resize",this._handleThrottledResizeBound)}},{key:"_handleTargetClick",value:function(t){this.open()}},{key:"_handleOriginClick",value:function(t){this.close()}},{key:"_handleResize",value:function(t){this._calculatePositioning()}},{key:"_handleDocumentClick",value:function(t){S(t.target).closest(".tap-target-wrapper").length||(this.close(),t.preventDefault(),t.stopPropagation())}},{key:"_setup",value:function(){this.wrapper=this.$el.parent()[0],this.waveEl=S(this.wrapper).find(".tap-target-wave")[0],this.originEl=S(this.wrapper).find(".tap-target-origin")[0],this.contentEl=this.$el.find(".tap-target-content")[0],S(this.wrapper).hasClass(".tap-target-wrapper")||(this.wrapper=document.createElement("div"),this.wrapper.classList.add("tap-target-wrapper"),this.$el.before(S(this.wrapper)),this.wrapper.append(this.el)),this.contentEl||(this.contentEl=document.createElement("div"),this.contentEl.classList.add("tap-target-content"),this.$el.append(this.contentEl)),this.waveEl||(this.waveEl=document.createElement("div"),this.waveEl.classList.add("tap-target-wave"),this.originEl||(this.originEl=this.$origin.clone(!0,!0),this.originEl.addClass("tap-target-origin"),this.originEl.removeAttr("id"),this.originEl.removeAttr("style"),this.originEl=this.originEl[0],this.waveEl.append(this.originEl)),this.wrapper.append(this.waveEl))}},{key:"_calculatePositioning",value:function(){var t="fixed"===this.$origin.css("position");if(!t)for(var e=this.$origin.parents(),i=0;i<e.length&&!(t="fixed"==S(e[i]).css("position"));i++);var n=this.$origin.outerWidth(),s=this.$origin.outerHeight(),o=t?this.$origin.offset().top-M.getDocumentScrollTop():this.$origin.offset().top,a=t?this.$origin.offset().left-M.getDocumentScrollLeft():this.$origin.offset().left,r=window.innerWidth,l=window.innerHeight,h=r/2,d=l/2,u=a<=h,c=h<a,p=o<=d,v=d<o,f=.25*r<=a&&a<=.75*r,m=this.$el.outerWidth(),g=this.$el.outerHeight(),_=o+s/2-g/2,y=a+n/2-m/2,k=t?"fixed":"absolute",b=f?m:m/2+n,w=g/2,C=p?g/2:0,E=u&&!f?m/2-n:0,O=n,x=v?"bottom":"top",L=2*n,T=L,$=g/2-T/2,B=m/2-L/2,D={};D.top=p?_+"px":"",D.right=c?r-y-m+"px":"",D.bottom=v?l-_-g+"px":"",D.left=u?y+"px":"",D.position=k,S(this.wrapper).css(D),S(this.contentEl).css({width:b+"px",height:w+"px",top:C+"px",right:"0px",bottom:"0px",left:E+"px",padding:O+"px",verticalAlign:x}),S(this.waveEl).css({top:$+"px",left:B+"px",width:L+"px",height:T+"px"})}},{key:"open",value:function(){this.isOpen||("function"==typeof this.options.onOpen&&this.options.onOpen.call(this,this.$origin[0]),this.isOpen=!0,this.wrapper.classList.add("open"),document.body.addEventListener("click",this._handleDocumentClickBound,!0),document.body.addEventListener("touchend",this._handleDocumentClickBound))}},{key:"close",value:function(){this.isOpen&&("function"==typeof this.options.onClose&&this.options.onClose.call(this,this.$origin[0]),this.isOpen=!1,this.wrapper.classList.remove("open"),document.body.removeEventListener("click",this._handleDocumentClickBound,!0),document.body.removeEventListener("touchend",this._handleDocumentClickBound))}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_TapTarget}},{key:"defaults",get:function(){return e}}]),n}();M.TapTarget=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"tapTarget","M_TapTarget")}(cash),function(d){"use strict";var e={classes:"",dropdownOptions:{}},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return i.$el.hasClass("browser-default")?_possibleConstructorReturn(i):((i.el.M_FormSelect=i).options=d.extend({},n.defaults,e),i.isMultiple=i.$el.prop("multiple"),i.el.tabIndex=-1,i._keysSelected={},i._valueDict={},i._setupDropdown(),i._setupEventHandlers(),i)}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this._removeDropdown(),this.el.M_FormSelect=void 0}},{key:"_setupEventHandlers",value:function(){var e=this;this._handleSelectChangeBound=this._handleSelectChange.bind(this),this._handleOptionClickBound=this._handleOptionClick.bind(this),this._handleInputClickBound=this._handleInputClick.bind(this),d(this.dropdownOptions).find("li:not(.optgroup)").each(function(t){t.addEventListener("click",e._handleOptionClickBound)}),this.el.addEventListener("change",this._handleSelectChangeBound),this.input.addEventListener("click",this._handleInputClickBound)}},{key:"_removeEventHandlers",value:function(){var e=this;d(this.dropdownOptions).find("li:not(.optgroup)").each(function(t){t.removeEventListener("click",e._handleOptionClickBound)}),this.el.removeEventListener("change",this._handleSelectChangeBound),this.input.removeEventListener("click",this._handleInputClickBound)}},{key:"_handleSelectChange",value:function(t){this._setValueToInput()}},{key:"_handleOptionClick",value:function(t){t.preventDefault();var e=d(t.target).closest("li")[0],i=e.id;if(!d(e).hasClass("disabled")&&!d(e).hasClass("optgroup")&&i.length){var n=!0;if(this.isMultiple){var s=d(this.dropdownOptions).find("li.disabled.selected");s.length&&(s.removeClass("selected"),s.find('input[type="checkbox"]').prop("checked",!1),this._toggleEntryFromArray(s[0].id)),n=this._toggleEntryFromArray(i)}else d(this.dropdownOptions).find("li").removeClass("selected"),d(e).toggleClass("selected",n);d(this._valueDict[i].el).prop("selected")!==n&&(d(this._valueDict[i].el).prop("selected",n),this.$el.trigger("change"))}t.stopPropagation()}},{key:"_handleInputClick",value:function(){this.dropdown&&this.dropdown.isOpen&&(this._setValueToInput(),this._setSelectedStates())}},{key:"_setupDropdown",value:function(){var n=this;this.wrapper=document.createElement("div"),d(this.wrapper).addClass("select-wrapper "+this.options.classes),this.$el.before(d(this.wrapper)),this.wrapper.appendChild(this.el),this.el.disabled&&this.wrapper.classList.add("disabled"),this.$selectOptions=this.$el.children("option, optgroup"),this.dropdownOptions=document.createElement("ul"),this.dropdownOptions.id="select-options-"+M.guid(),d(this.dropdownOptions).addClass("dropdown-content select-dropdown "+(this.isMultiple?"multiple-select-dropdown":"")),this.$selectOptions.length&&this.$selectOptions.each(function(t){if(d(t).is("option")){var e=void 0;e=n.isMultiple?n._appendOptionWithIcon(n.$el,t,"multiple"):n._appendOptionWithIcon(n.$el,t),n._addOptionToValueDict(t,e)}else if(d(t).is("optgroup")){var i=d(t).children("option");d(n.dropdownOptions).append(d('<li class="optgroup"><span>'+t.getAttribute("label")+"</span></li>")[0]),i.each(function(t){var e=n._appendOptionWithIcon(n.$el,t,"optgroup-option");n._addOptionToValueDict(t,e)})}}),this.$el.after(this.dropdownOptions),this.input=document.createElement("input"),d(this.input).addClass("select-dropdown dropdown-trigger"),this.input.setAttribute("type","text"),this.input.setAttribute("readonly","true"),this.input.setAttribute("data-target",this.dropdownOptions.id),this.el.disabled&&d(this.input).prop("disabled","true"),this.$el.before(this.input),this._setValueToInput();var t=d('<svg class="caret" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>');if(this.$el.before(t[0]),!this.el.disabled){var e=d.extend({},this.options.dropdownOptions);e.onOpenEnd=function(t){var e=d(n.dropdownOptions).find(".selected").first();if(e.length&&(M.keyDown=!0,n.dropdown.focusedIndex=e.index(),n.dropdown._focusFocusedItem(),M.keyDown=!1,n.dropdown.isScrollable)){var i=e[0].getBoundingClientRect().top-n.dropdownOptions.getBoundingClientRect().top;i-=n.dropdownOptions.clientHeight/2,n.dropdownOptions.scrollTop=i}},this.isMultiple&&(e.closeOnClick=!1),this.dropdown=M.Dropdown.init(this.input,e)}this._setSelectedStates()}},{key:"_addOptionToValueDict",value:function(t,e){var i=Object.keys(this._valueDict).length,n=this.dropdownOptions.id+i,s={};e.id=n,s.el=t,s.optionEl=e,this._valueDict[n]=s}},{key:"_removeDropdown",value:function(){d(this.wrapper).find(".caret").remove(),d(this.input).remove(),d(this.dropdownOptions).remove(),d(this.wrapper).before(this.$el),d(this.wrapper).remove()}},{key:"_appendOptionWithIcon",value:function(t,e,i){var n=e.disabled?"disabled ":"",s="optgroup-option"===i?"optgroup-option ":"",o=this.isMultiple?'<label><input type="checkbox"'+n+'"/><span>'+e.innerHTML+"</span></label>":e.innerHTML,a=d("<li></li>"),r=d("<span></span>");r.html(o),a.addClass(n+" "+s),a.append(r);var l=e.getAttribute("data-icon");if(l){var h=d('<img alt="" src="'+l+'">');a.prepend(h)}return d(this.dropdownOptions).append(a[0]),a[0]}},{key:"_toggleEntryFromArray",value:function(t){var e=!this._keysSelected.hasOwnProperty(t),i=d(this._valueDict[t].optionEl);return e?this._keysSelected[t]=!0:delete this._keysSelected[t],i.toggleClass("selected",e),i.find('input[type="checkbox"]').prop("checked",e),i.prop("selected",e),e}},{key:"_setValueToInput",value:function(){var i=[];if(this.$el.find("option").each(function(t){if(d(t).prop("selected")){var e=d(t).text();i.push(e)}}),!i.length){var t=this.$el.find("option:disabled").eq(0);t.length&&""===t[0].value&&i.push(t.text())}this.input.value=i.join(", ")}},{key:"_setSelectedStates",value:function(){for(var t in this._keysSelected={},this._valueDict){var e=this._valueDict[t],i=d(e.el).prop("selected");d(e.optionEl).find('input[type="checkbox"]').prop("checked",i),i?(this._activateOption(d(this.dropdownOptions),d(e.optionEl)),this._keysSelected[t]=!0):d(e.optionEl).removeClass("selected")}}},{key:"_activateOption",value:function(t,e){e&&(this.isMultiple||t.find("li.selected").removeClass("selected"),d(e).addClass("selected"))}},{key:"getSelectedValues",value:function(){var t=[];for(var e in this._keysSelected)t.push(this._valueDict[e].el.value);return t}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_FormSelect}},{key:"defaults",get:function(){return e}}]),n}();M.FormSelect=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"formSelect","M_FormSelect")}(cash),function(s,e){"use strict";var i={},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Range=i).options=s.extend({},n.defaults,e),i._mousedown=!1,i._setupThumb(),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this._removeThumb(),this.el.M_Range=void 0}},{key:"_setupEventHandlers",value:function(){this._handleRangeChangeBound=this._handleRangeChange.bind(this),this._handleRangeMousedownTouchstartBound=this._handleRangeMousedownTouchstart.bind(this),this._handleRangeInputMousemoveTouchmoveBound=this._handleRangeInputMousemoveTouchmove.bind(this),this._handleRangeMouseupTouchendBound=this._handleRangeMouseupTouchend.bind(this),this._handleRangeBlurMouseoutTouchleaveBound=this._handleRangeBlurMouseoutTouchleave.bind(this),this.el.addEventListener("change",this._handleRangeChangeBound),this.el.addEventListener("mousedown",this._handleRangeMousedownTouchstartBound),this.el.addEventListener("touchstart",this._handleRangeMousedownTouchstartBound),this.el.addEventListener("input",this._handleRangeInputMousemoveTouchmoveBound),this.el.addEventListener("mousemove",this._handleRangeInputMousemoveTouchmoveBound),this.el.addEventListener("touchmove",this._handleRangeInputMousemoveTouchmoveBound),this.el.addEventListener("mouseup",this._handleRangeMouseupTouchendBound),this.el.addEventListener("touchend",this._handleRangeMouseupTouchendBound),this.el.addEventListener("blur",this._handleRangeBlurMouseoutTouchleaveBound),this.el.addEventListener("mouseout",this._handleRangeBlurMouseoutTouchleaveBound),this.el.addEventListener("touchleave",this._handleRangeBlurMouseoutTouchleaveBound)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("change",this._handleRangeChangeBound),this.el.removeEventListener("mousedown",this._handleRangeMousedownTouchstartBound),this.el.removeEventListener("touchstart",this._handleRangeMousedownTouchstartBound),this.el.removeEventListener("input",this._handleRangeInputMousemoveTouchmoveBound),this.el.removeEventListener("mousemove",this._handleRangeInputMousemoveTouchmoveBound),this.el.removeEventListener("touchmove",this._handleRangeInputMousemoveTouchmoveBound),this.el.removeEventListener("mouseup",this._handleRangeMouseupTouchendBound),this.el.removeEventListener("touchend",this._handleRangeMouseupTouchendBound),this.el.removeEventListener("blur",this._handleRangeBlurMouseoutTouchleaveBound),this.el.removeEventListener("mouseout",this._handleRangeBlurMouseoutTouchleaveBound),this.el.removeEventListener("touchleave",this._handleRangeBlurMouseoutTouchleaveBound)}},{key:"_handleRangeChange",value:function(){s(this.value).html(this.$el.val()),s(this.thumb).hasClass("active")||this._showRangeBubble();var t=this._calcRangeOffset();s(this.thumb).addClass("active").css("left",t+"px")}},{key:"_handleRangeMousedownTouchstart",value:function(t){if(s(this.value).html(this.$el.val()),this._mousedown=!0,this.$el.addClass("active"),s(this.thumb).hasClass("active")||this._showRangeBubble(),"input"!==t.type){var e=this._calcRangeOffset();s(this.thumb).addClass("active").css("left",e+"px")}}},{key:"_handleRangeInputMousemoveTouchmove",value:function(){if(this._mousedown){s(this.thumb).hasClass("active")||this._showRangeBubble();var t=this._calcRangeOffset();s(this.thumb).addClass("active").css("left",t+"px"),s(this.value).html(this.$el.val())}}},{key:"_handleRangeMouseupTouchend",value:function(){this._mousedown=!1,this.$el.removeClass("active")}},{key:"_handleRangeBlurMouseoutTouchleave",value:function(){if(!this._mousedown){var t=7+parseInt(this.$el.css("padding-left"))+"px";s(this.thumb).hasClass("active")&&(e.remove(this.thumb),e({targets:this.thumb,height:0,width:0,top:10,easing:"easeOutQuad",marginLeft:t,duration:100})),s(this.thumb).removeClass("active")}}},{key:"_setupThumb",value:function(){this.thumb=document.createElement("span"),this.value=document.createElement("span"),s(this.thumb).addClass("thumb"),s(this.value).addClass("value"),s(this.thumb).append(this.value),this.$el.after(this.thumb)}},{key:"_removeThumb",value:function(){s(this.thumb).remove()}},{key:"_showRangeBubble",value:function(){var t=-7+parseInt(s(this.thumb).parent().css("padding-left"))+"px";e.remove(this.thumb),e({targets:this.thumb,height:30,width:30,top:-30,marginLeft:t,duration:300,easing:"easeOutQuint"})}},{key:"_calcRangeOffset",value:function(){var t=this.$el.width()-15,e=parseFloat(this.$el.attr("max"))||100,i=parseFloat(this.$el.attr("min"))||0;return(parseFloat(this.$el.val())-i)/(e-i)*t}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Range}},{key:"defaults",get:function(){return i}}]),n}();M.Range=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"range","M_Range"),t.init(s("input[type=range]"))}(cash,M.anime);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
* Copyright 2014-2017 Materialize
|
4 |
* MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)
|
5 |
*/
|
6 |
+
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
|
7 |
+
|
8 |
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
9 |
+
|
10 |
+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
11 |
+
|
12 |
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
13 |
+
|
14 |
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
15 |
+
|
16 |
+
/*! cash-dom 1.3.5, https://github.com/kenwheeler/cash @license MIT */
|
17 |
+
(function (factory) {
|
18 |
+
window.cash = factory();
|
19 |
+
})(function () {
|
20 |
+
var doc = document,
|
21 |
+
win = window,
|
22 |
+
ArrayProto = Array.prototype,
|
23 |
+
slice = ArrayProto.slice,
|
24 |
+
filter = ArrayProto.filter,
|
25 |
+
push = ArrayProto.push;
|
26 |
+
|
27 |
+
var noop = function () {},
|
28 |
+
isFunction = function (item) {
|
29 |
+
// @see https://crbug.com/568448
|
30 |
+
return typeof item === typeof noop && item.call;
|
31 |
+
},
|
32 |
+
isString = function (item) {
|
33 |
+
return typeof item === typeof "";
|
34 |
+
};
|
35 |
+
|
36 |
+
var idMatch = /^#[\w-]*$/,
|
37 |
+
classMatch = /^\.[\w-]*$/,
|
38 |
+
htmlMatch = /<.+>/,
|
39 |
+
singlet = /^\w+$/;
|
40 |
+
|
41 |
+
function find(selector, context) {
|
42 |
+
context = context || doc;
|
43 |
+
var elems = classMatch.test(selector) ? context.getElementsByClassName(selector.slice(1)) : singlet.test(selector) ? context.getElementsByTagName(selector) : context.querySelectorAll(selector);
|
44 |
+
return elems;
|
45 |
+
}
|
46 |
+
|
47 |
+
var frag;
|
48 |
+
function parseHTML(str) {
|
49 |
+
if (!frag) {
|
50 |
+
frag = doc.implementation.createHTMLDocument(null);
|
51 |
+
var base = frag.createElement("base");
|
52 |
+
base.href = doc.location.href;
|
53 |
+
frag.head.appendChild(base);
|
54 |
+
}
|
55 |
+
|
56 |
+
frag.body.innerHTML = str;
|
57 |
+
|
58 |
+
return frag.body.childNodes;
|
59 |
+
}
|
60 |
+
|
61 |
+
function onReady(fn) {
|
62 |
+
if (doc.readyState !== "loading") {
|
63 |
+
fn();
|
64 |
+
} else {
|
65 |
+
doc.addEventListener("DOMContentLoaded", fn);
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
function Init(selector, context) {
|
70 |
+
if (!selector) {
|
71 |
+
return this;
|
72 |
+
}
|
73 |
+
|
74 |
+
// If already a cash collection, don't do any further processing
|
75 |
+
if (selector.cash && selector !== win) {
|
76 |
+
return selector;
|
77 |
+
}
|
78 |
+
|
79 |
+
var elems = selector,
|
80 |
+
i = 0,
|
81 |
+
length;
|
82 |
+
|
83 |
+
if (isString(selector)) {
|
84 |
+
elems = idMatch.test(selector) ?
|
85 |
+
// If an ID use the faster getElementById check
|
86 |
+
doc.getElementById(selector.slice(1)) : htmlMatch.test(selector) ?
|
87 |
+
// If HTML, parse it into real elements
|
88 |
+
parseHTML(selector) :
|
89 |
+
// else use `find`
|
90 |
+
find(selector, context);
|
91 |
+
|
92 |
+
// If function, use as shortcut for DOM ready
|
93 |
+
} else if (isFunction(selector)) {
|
94 |
+
onReady(selector);return this;
|
95 |
+
}
|
96 |
+
|
97 |
+
if (!elems) {
|
98 |
+
return this;
|
99 |
+
}
|
100 |
+
|
101 |
+
// If a single DOM element is passed in or received via ID, return the single element
|
102 |
+
if (elems.nodeType || elems === win) {
|
103 |
+
this[0] = elems;
|
104 |
+
this.length = 1;
|
105 |
+
} else {
|
106 |
+
// Treat like an array and loop through each item.
|
107 |
+
length = this.length = elems.length;
|
108 |
+
for (; i < length; i++) {
|
109 |
+
this[i] = elems[i];
|
110 |
+
}
|
111 |
+
}
|
112 |
+
|
113 |
+
return this;
|
114 |
+
}
|
115 |
+
|
116 |
+
function cash(selector, context) {
|
117 |
+
return new Init(selector, context);
|
118 |
+
}
|
119 |
+
|
120 |
+
var fn = cash.fn = cash.prototype = Init.prototype = { // jshint ignore:line
|
121 |
+
cash: true,
|
122 |
+
length: 0,
|
123 |
+
push: push,
|
124 |
+
splice: ArrayProto.splice,
|
125 |
+
map: ArrayProto.map,
|
126 |
+
init: Init
|
127 |
+
};
|
128 |
+
|
129 |
+
Object.defineProperty(fn, "constructor", { value: cash });
|
130 |
+
|
131 |
+
cash.parseHTML = parseHTML;
|
132 |
+
cash.noop = noop;
|
133 |
+
cash.isFunction = isFunction;
|
134 |
+
cash.isString = isString;
|
135 |
+
|
136 |
+
cash.extend = fn.extend = function (target) {
|
137 |
+
target = target || {};
|
138 |
+
|
139 |
+
var args = slice.call(arguments),
|
140 |
+
length = args.length,
|
141 |
+
i = 1;
|
142 |
+
|
143 |
+
if (args.length === 1) {
|
144 |
+
target = this;
|
145 |
+
i = 0;
|
146 |
+
}
|
147 |
+
|
148 |
+
for (; i < length; i++) {
|
149 |
+
if (!args[i]) {
|
150 |
+
continue;
|
151 |
+
}
|
152 |
+
for (var key in args[i]) {
|
153 |
+
if (args[i].hasOwnProperty(key)) {
|
154 |
+
target[key] = args[i][key];
|
155 |
+
}
|
156 |
+
}
|
157 |
+
}
|
158 |
+
|
159 |
+
return target;
|
160 |
+
};
|
161 |
+
|
162 |
+
function each(collection, callback) {
|
163 |
+
var l = collection.length,
|
164 |
+
i = 0;
|
165 |
+
|
166 |
+
for (; i < l; i++) {
|
167 |
+
if (callback.call(collection[i], collection[i], i, collection) === false) {
|
168 |
+
break;
|
169 |
+
}
|
170 |
+
}
|
171 |
+
}
|
172 |
+
|
173 |
+
function matches(el, selector) {
|
174 |
+
var m = el && (el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector || el.oMatchesSelector);
|
175 |
+
return !!m && m.call(el, selector);
|
176 |
+
}
|
177 |
+
|
178 |
+
function getCompareFunction(selector) {
|
179 |
+
return (
|
180 |
+
/* Use browser's `matches` function if string */
|
181 |
+
isString(selector) ? matches :
|
182 |
+
/* Match a cash element */
|
183 |
+
selector.cash ? function (el) {
|
184 |
+
return selector.is(el);
|
185 |
+
} :
|
186 |
+
/* Direct comparison */
|
187 |
+
function (el, selector) {
|
188 |
+
return el === selector;
|
189 |
+
}
|
190 |
+
);
|
191 |
+
}
|
192 |
+
|
193 |
+
function unique(collection) {
|
194 |
+
return cash(slice.call(collection).filter(function (item, index, self) {
|
195 |
+
return self.indexOf(item) === index;
|
196 |
+
}));
|
197 |
+
}
|
198 |
+
|
199 |
+
cash.extend({
|
200 |
+
merge: function (first, second) {
|
201 |
+
var len = +second.length,
|
202 |
+
i = first.length,
|
203 |
+
j = 0;
|
204 |
+
|
205 |
+
for (; j < len; i++, j++) {
|
206 |
+
first[i] = second[j];
|
207 |
+
}
|
208 |
+
|
209 |
+
first.length = i;
|
210 |
+
return first;
|
211 |
+
},
|
212 |
+
|
213 |
+
each: each,
|
214 |
+
matches: matches,
|
215 |
+
unique: unique,
|
216 |
+
isArray: Array.isArray,
|
217 |
+
isNumeric: function (n) {
|
218 |
+
return !isNaN(parseFloat(n)) && isFinite(n);
|
219 |
+
}
|
220 |
+
|
221 |
+
});
|
222 |
+
|
223 |
+
var uid = cash.uid = "_cash" + Date.now();
|
224 |
+
|
225 |
+
function getDataCache(node) {
|
226 |
+
return node[uid] = node[uid] || {};
|
227 |
+
}
|
228 |
+
|
229 |
+
function setData(node, key, value) {
|
230 |
+
return getDataCache(node)[key] = value;
|
231 |
+
}
|
232 |
+
|
233 |
+
function getData(node, key) {
|
234 |
+
var c = getDataCache(node);
|
235 |
+
if (c[key] === undefined) {
|
236 |
+
c[key] = node.dataset ? node.dataset[key] : cash(node).attr("data-" + key);
|
237 |
+
}
|
238 |
+
return c[key];
|
239 |
+
}
|
240 |
+
|
241 |
+
function removeData(node, key) {
|
242 |
+
var c = getDataCache(node);
|
243 |
+
if (c) {
|
244 |
+
delete c[key];
|
245 |
+
} else if (node.dataset) {
|
246 |
+
delete node.dataset[key];
|
247 |
+
} else {
|
248 |
+
cash(node).removeAttr("data-" + name);
|
249 |
+
}
|
250 |
+
}
|
251 |
+
|
252 |
+
fn.extend({
|
253 |
+
data: function (name, value) {
|
254 |
+
if (isString(name)) {
|
255 |
+
return value === undefined ? getData(this[0], name) : this.each(function (v) {
|
256 |
+
return setData(v, name, value);
|
257 |
+
});
|
258 |
+
}
|
259 |
+
|
260 |
+
for (var key in name) {
|
261 |
+
this.data(key, name[key]);
|
262 |
+
}
|
263 |
+
|
264 |
+
return this;
|
265 |
+
},
|
266 |
+
|
267 |
+
removeData: function (key) {
|
268 |
+
return this.each(function (v) {
|
269 |
+
return removeData(v, key);
|
270 |
+
});
|
271 |
+
}
|
272 |
+
|
273 |
+
});
|
274 |
+
|
275 |
+
var notWhiteMatch = /\S+/g;
|
276 |
+
|
277 |
+
function getClasses(c) {
|
278 |
+
return isString(c) && c.match(notWhiteMatch);
|
279 |
+
}
|
280 |
+
|
281 |
+
function hasClass(v, c) {
|
282 |
+
return v.classList ? v.classList.contains(c) : new RegExp("(^| )" + c + "( |$)", "gi").test(v.className);
|
283 |
+
}
|
284 |
+
|
285 |
+
function addClass(v, c, spacedName) {
|
286 |
+
if (v.classList) {
|
287 |
+
v.classList.add(c);
|
288 |
+
} else if (spacedName.indexOf(" " + c + " ")) {
|
289 |
+
v.className += " " + c;
|
290 |
+
}
|
291 |
+
}
|
292 |
+
|
293 |
+
function removeClass(v, c) {
|
294 |
+
if (v.classList) {
|
295 |
+
v.classList.remove(c);
|
296 |
+
} else {
|
297 |
+
v.className = v.className.replace(c, "");
|
298 |
+
}
|
299 |
+
}
|
300 |
+
|
301 |
+
fn.extend({
|
302 |
+
addClass: function (c) {
|
303 |
+
var classes = getClasses(c);
|
304 |
+
|
305 |
+
return classes ? this.each(function (v) {
|
306 |
+
var spacedName = " " + v.className + " ";
|
307 |
+
each(classes, function (c) {
|
308 |
+
addClass(v, c, spacedName);
|
309 |
+
});
|
310 |
+
}) : this;
|
311 |
+
},
|
312 |
+
|
313 |
+
attr: function (name, value) {
|
314 |
+
if (!name) {
|
315 |
+
return undefined;
|
316 |
+
}
|
317 |
+
|
318 |
+
if (isString(name)) {
|
319 |
+
if (value === undefined) {
|
320 |
+
return this[0] ? this[0].getAttribute ? this[0].getAttribute(name) : this[0][name] : undefined;
|
321 |
+
}
|
322 |
+
|
323 |
+
return this.each(function (v) {
|
324 |
+
if (v.setAttribute) {
|
325 |
+
v.setAttribute(name, value);
|
326 |
+
} else {
|
327 |
+
v[name] = value;
|
328 |
+
}
|
329 |
+
});
|
330 |
+
}
|
331 |
+
|
332 |
+
for (var key in name) {
|
333 |
+
this.attr(key, name[key]);
|
334 |
+
}
|
335 |
+
|
336 |
+
return this;
|
337 |
+
},
|
338 |
+
|
339 |
+
hasClass: function (c) {
|
340 |
+
var check = false,
|
341 |
+
classes = getClasses(c);
|
342 |
+
if (classes && classes.length) {
|
343 |
+
this.each(function (v) {
|
344 |
+
check = hasClass(v, classes[0]);
|
345 |
+
return !check;
|
346 |
+
});
|
347 |
+
}
|
348 |
+
return check;
|
349 |
+
},
|
350 |
+
|
351 |
+
prop: function (name, value) {
|
352 |
+
if (isString(name)) {
|
353 |
+
return value === undefined ? this[0][name] : this.each(function (v) {
|
354 |
+
v[name] = value;
|
355 |
+
});
|
356 |
+
}
|
357 |
+
|
358 |
+
for (var key in name) {
|
359 |
+
this.prop(key, name[key]);
|
360 |
+
}
|
361 |
+
|
362 |
+
return this;
|
363 |
+
},
|
364 |
+
|
365 |
+
removeAttr: function (name) {
|
366 |
+
return this.each(function (v) {
|
367 |
+
if (v.removeAttribute) {
|
368 |
+
v.removeAttribute(name);
|
369 |
+
} else {
|
370 |
+
delete v[name];
|
371 |
+
}
|
372 |
+
});
|
373 |
+
},
|
374 |
+
|
375 |
+
removeClass: function (c) {
|
376 |
+
if (!arguments.length) {
|
377 |
+
return this.attr("class", "");
|
378 |
+
}
|
379 |
+
var classes = getClasses(c);
|
380 |
+
return classes ? this.each(function (v) {
|
381 |
+
each(classes, function (c) {
|
382 |
+
removeClass(v, c);
|
383 |
+
});
|
384 |
+
}) : this;
|
385 |
+
},
|
386 |
+
|
387 |
+
removeProp: function (name) {
|
388 |
+
return this.each(function (v) {
|
389 |
+
delete v[name];
|
390 |
+
});
|
391 |
+
},
|
392 |
+
|
393 |
+
toggleClass: function (c, state) {
|
394 |
+
if (state !== undefined) {
|
395 |
+
return this[state ? "addClass" : "removeClass"](c);
|
396 |
+
}
|
397 |
+
var classes = getClasses(c);
|
398 |
+
return classes ? this.each(function (v) {
|
399 |
+
var spacedName = " " + v.className + " ";
|
400 |
+
each(classes, function (c) {
|
401 |
+
if (hasClass(v, c)) {
|
402 |
+
removeClass(v, c);
|
403 |
+
} else {
|
404 |
+
addClass(v, c, spacedName);
|
405 |
+
}
|
406 |
+
});
|
407 |
+
}) : this;
|
408 |
+
} });
|
409 |
+
|
410 |
+
fn.extend({
|
411 |
+
add: function (selector, context) {
|
412 |
+
return unique(cash.merge(this, cash(selector, context)));
|
413 |
+
},
|
414 |
+
|
415 |
+
each: function (callback) {
|
416 |
+
each(this, callback);
|
417 |
+
return this;
|
418 |
+
},
|
419 |
+
|
420 |
+
eq: function (index) {
|
421 |
+
return cash(this.get(index));
|
422 |
+
},
|
423 |
+
|
424 |
+
filter: function (selector) {
|
425 |
+
if (!selector) {
|
426 |
+
return this;
|
427 |
+
}
|
428 |
+
|
429 |
+
var comparator = isFunction(selector) ? selector : getCompareFunction(selector);
|
430 |
+
|
431 |
+
return cash(filter.call(this, function (e) {
|
432 |
+
return comparator(e, selector);
|
433 |
+
}));
|
434 |
+
},
|
435 |
+
|
436 |
+
first: function () {
|
437 |
+
return this.eq(0);
|
438 |
+
},
|
439 |
+
|
440 |
+
get: function (index) {
|
441 |
+
if (index === undefined) {
|
442 |
+
return slice.call(this);
|
443 |
+
}
|
444 |
+
return index < 0 ? this[index + this.length] : this[index];
|
445 |
+
},
|
446 |
+
|
447 |
+
index: function (elem) {
|
448 |
+
var child = elem ? cash(elem)[0] : this[0],
|
449 |
+
collection = elem ? this : cash(child).parent().children();
|
450 |
+
return slice.call(collection).indexOf(child);
|
451 |
+
},
|
452 |
+
|
453 |
+
last: function () {
|
454 |
+
return this.eq(-1);
|
455 |
+
}
|
456 |
+
|
457 |
+
});
|
458 |
+
|
459 |
+
var camelCase = function () {
|
460 |
+
var camelRegex = /(?:^\w|[A-Z]|\b\w)/g,
|
461 |
+
whiteSpace = /[\s-_]+/g;
|
462 |
+
return function (str) {
|
463 |
+
return str.replace(camelRegex, function (letter, index) {
|
464 |
+
return letter[index === 0 ? "toLowerCase" : "toUpperCase"]();
|
465 |
+
}).replace(whiteSpace, "");
|
466 |
+
};
|
467 |
+
}();
|
468 |
+
|
469 |
+
var getPrefixedProp = function () {
|
470 |
+
var cache = {},
|
471 |
+
doc = document,
|
472 |
+
div = doc.createElement("div"),
|
473 |
+
style = div.style;
|
474 |
+
|
475 |
+
return function (prop) {
|
476 |
+
prop = camelCase(prop);
|
477 |
+
if (cache[prop]) {
|
478 |
+
return cache[prop];
|
479 |
+
}
|
480 |
+
|
481 |
+
var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),
|
482 |
+
prefixes = ["webkit", "moz", "ms", "o"],
|
483 |
+
props = (prop + " " + prefixes.join(ucProp + " ") + ucProp).split(" ");
|
484 |
+
|
485 |
+
each(props, function (p) {
|
486 |
+
if (p in style) {
|
487 |
+
cache[p] = prop = cache[prop] = p;
|
488 |
+
return false;
|
489 |
+
}
|
490 |
+
});
|
491 |
+
|
492 |
+
return cache[prop];
|
493 |
+
};
|
494 |
+
}();
|
495 |
+
|
496 |
+
cash.prefixedProp = getPrefixedProp;
|
497 |
+
cash.camelCase = camelCase;
|
498 |
+
|
499 |
+
fn.extend({
|
500 |
+
css: function (prop, value) {
|
501 |
+
if (isString(prop)) {
|
502 |
+
prop = getPrefixedProp(prop);
|
503 |
+
return arguments.length > 1 ? this.each(function (v) {
|
504 |
+
return v.style[prop] = value;
|
505 |
+
}) : win.getComputedStyle(this[0])[prop];
|
506 |
+
}
|
507 |
+
|
508 |
+
for (var key in prop) {
|
509 |
+
this.css(key, prop[key]);
|
510 |
+
}
|
511 |
+
|
512 |
+
return this;
|
513 |
+
}
|
514 |
+
|
515 |
+
});
|
516 |
+
|
517 |
+
function compute(el, prop) {
|
518 |
+
return parseInt(win.getComputedStyle(el[0], null)[prop], 10) || 0;
|
519 |
+
}
|
520 |
+
|
521 |
+
each(["Width", "Height"], function (v) {
|
522 |
+
var lower = v.toLowerCase();
|
523 |
+
|
524 |
+
fn[lower] = function () {
|
525 |
+
return this[0].getBoundingClientRect()[lower];
|
526 |
+
};
|
527 |
+
|
528 |
+
fn["inner" + v] = function () {
|
529 |
+
return this[0]["client" + v];
|
530 |
+
};
|
531 |
+
|
532 |
+
fn["outer" + v] = function (margins) {
|
533 |
+
return this[0]["offset" + v] + (margins ? compute(this, "margin" + (v === "Width" ? "Left" : "Top")) + compute(this, "margin" + (v === "Width" ? "Right" : "Bottom")) : 0);
|
534 |
+
};
|
535 |
+
});
|
536 |
+
|
537 |
+
function registerEvent(node, eventName, callback) {
|
538 |
+
var eventCache = getData(node, "_cashEvents") || setData(node, "_cashEvents", {});
|
539 |
+
eventCache[eventName] = eventCache[eventName] || [];
|
540 |
+
eventCache[eventName].push(callback);
|
541 |
+
node.addEventListener(eventName, callback);
|
542 |
+
}
|
543 |
+
|
544 |
+
function removeEvent(node, eventName, callback) {
|
545 |
+
var events = getData(node, "_cashEvents"),
|
546 |
+
eventCache = events && events[eventName],
|
547 |
+
index;
|
548 |
+
|
549 |
+
if (!eventCache) {
|
550 |
+
return;
|
551 |
+
}
|
552 |
+
|
553 |
+
if (callback) {
|
554 |
+
node.removeEventListener(eventName, callback);
|
555 |
+
index = eventCache.indexOf(callback);
|
556 |
+
if (index >= 0) {
|
557 |
+
eventCache.splice(index, 1);
|
558 |
+
}
|
559 |
+
} else {
|
560 |
+
each(eventCache, function (event) {
|
561 |
+
node.removeEventListener(eventName, event);
|
562 |
+
});
|
563 |
+
eventCache = [];
|
564 |
+
}
|
565 |
+
}
|
566 |
+
|
567 |
+
fn.extend({
|
568 |
+
off: function (eventName, callback) {
|
569 |
+
return this.each(function (v) {
|
570 |
+
return removeEvent(v, eventName, callback);
|
571 |
+
});
|
572 |
+
},
|
573 |
+
|
574 |
+
on: function (eventName, delegate, callback, runOnce) {
|
575 |
+
// jshint ignore:line
|
576 |
+
var originalCallback;
|
577 |
+
if (!isString(eventName)) {
|
578 |
+
for (var key in eventName) {
|
579 |
+
this.on(key, delegate, eventName[key]);
|
580 |
+
}
|
581 |
+
return this;
|
582 |
+
}
|
583 |
+
|
584 |
+
if (isFunction(delegate)) {
|
585 |
+
callback = delegate;
|
586 |
+
delegate = null;
|
587 |
+
}
|
588 |
+
|
589 |
+
if (eventName === "ready") {
|
590 |
+
onReady(callback);
|
591 |
+
return this;
|
592 |
+
}
|
593 |
+
|
594 |
+
if (delegate) {
|
595 |
+
originalCallback = callback;
|
596 |
+
callback = function (e) {
|
597 |
+
var t = e.target;
|
598 |
+
while (!matches(t, delegate)) {
|
599 |
+
if (t === this || t === null) {
|
600 |
+
return t = false;
|
601 |
+
}
|
602 |
+
|
603 |
+
t = t.parentNode;
|
604 |
+
}
|
605 |
+
|
606 |
+
if (t) {
|
607 |
+
originalCallback.call(t, e);
|
608 |
+
}
|
609 |
+
};
|
610 |
+
}
|
611 |
+
|
612 |
+
return this.each(function (v) {
|
613 |
+
var finalCallback = callback;
|
614 |
+
if (runOnce) {
|
615 |
+
finalCallback = function () {
|
616 |
+
callback.apply(this, arguments);
|
617 |
+
removeEvent(v, eventName, finalCallback);
|
618 |
+
};
|
619 |
+
}
|
620 |
+
registerEvent(v, eventName, finalCallback);
|
621 |
+
});
|
622 |
+
},
|
623 |
+
|
624 |
+
one: function (eventName, delegate, callback) {
|
625 |
+
return this.on(eventName, delegate, callback, true);
|
626 |
+
},
|
627 |
+
|
628 |
+
ready: onReady,
|
629 |
+
|
630 |
+
/**
|
631 |
+
* Modified
|
632 |
+
* Triggers browser event
|
633 |
+
* @param String eventName
|
634 |
+
* @param Object data - Add properties to event object
|
635 |
+
*/
|
636 |
+
trigger: function (eventName, data) {
|
637 |
+
if (document.createEvent) {
|
638 |
+
var evt = document.createEvent('HTMLEvents');
|
639 |
+
evt.initEvent(eventName, true, false);
|
640 |
+
evt = this.extend(evt, data);
|
641 |
+
return this.each(function (v) {
|
642 |
+
return v.dispatchEvent(evt);
|
643 |
+
});
|
644 |
+
}
|
645 |
+
}
|
646 |
+
|
647 |
+
});
|
648 |
+
|
649 |
+
function encode(name, value) {
|
650 |
+
return "&" + encodeURIComponent(name) + "=" + encodeURIComponent(value).replace(/%20/g, "+");
|
651 |
+
}
|
652 |
+
|
653 |
+
function getSelectMultiple_(el) {
|
654 |
+
var values = [];
|
655 |
+
each(el.options, function (o) {
|
656 |
+
if (o.selected) {
|
657 |
+
values.push(o.value);
|
658 |
+
}
|
659 |
+
});
|
660 |
+
return values.length ? values : null;
|
661 |
+
}
|
662 |
+
|
663 |
+
function getSelectSingle_(el) {
|
664 |
+
var selectedIndex = el.selectedIndex;
|
665 |
+
return selectedIndex >= 0 ? el.options[selectedIndex].value : null;
|
666 |
+
}
|
667 |
+
|
668 |
+
function getValue(el) {
|
669 |
+
var type = el.type;
|
670 |
+
if (!type) {
|
671 |
+
return null;
|
672 |
+
}
|
673 |
+
switch (type.toLowerCase()) {
|
674 |
+
case "select-one":
|
675 |
+
return getSelectSingle_(el);
|
676 |
+
case "select-multiple":
|
677 |
+
return getSelectMultiple_(el);
|
678 |
+
case "radio":
|
679 |
+
return el.checked ? el.value : null;
|
680 |
+
case "checkbox":
|
681 |
+
return el.checked ? el.value : null;
|
682 |
+
default:
|
683 |
+
return el.value ? el.value : null;
|
684 |
+
}
|
685 |
+
}
|
686 |
+
|
687 |
+
fn.extend({
|
688 |
+
serialize: function () {
|
689 |
+
var query = "";
|
690 |
+
|
691 |
+
each(this[0].elements || this, function (el) {
|
692 |
+
if (el.disabled || el.tagName === "FIELDSET") {
|
693 |
+
return;
|
694 |
+
}
|
695 |
+
var name = el.name;
|
696 |
+
switch (el.type.toLowerCase()) {
|
697 |
+
case "file":
|
698 |
+
case "reset":
|
699 |
+
case "submit":
|
700 |
+
case "button":
|
701 |
+
break;
|
702 |
+
case "select-multiple":
|
703 |
+
var values = getValue(el);
|
704 |
+
if (values !== null) {
|
705 |
+
each(values, function (value) {
|
706 |
+
query += encode(name, value);
|
707 |
+
});
|
708 |
+
}
|
709 |
+
break;
|
710 |
+
default:
|
711 |
+
var value = getValue(el);
|
712 |
+
if (value !== null) {
|
713 |
+
query += encode(name, value);
|
714 |
+
}
|
715 |
+
}
|
716 |
+
});
|
717 |
+
|
718 |
+
return query.substr(1);
|
719 |
+
},
|
720 |
+
|
721 |
+
val: function (value) {
|
722 |
+
if (value === undefined) {
|
723 |
+
return getValue(this[0]);
|
724 |
+
}
|
725 |
+
|
726 |
+
return this.each(function (v) {
|
727 |
+
return v.value = value;
|
728 |
+
});
|
729 |
+
}
|
730 |
+
|
731 |
+
});
|
732 |
+
|
733 |
+
function insertElement(el, child, prepend) {
|
734 |
+
if (prepend) {
|
735 |
+
var first = el.childNodes[0];
|
736 |
+
el.insertBefore(child, first);
|
737 |
+
} else {
|
738 |
+
el.appendChild(child);
|
739 |
+
}
|
740 |
+
}
|
741 |
+
|
742 |
+
function insertContent(parent, child, prepend) {
|
743 |
+
var str = isString(child);
|
744 |
+
|
745 |
+
if (!str && child.length) {
|
746 |
+
each(child, function (v) {
|
747 |
+
return insertContent(parent, v, prepend);
|
748 |
+
});
|
749 |
+
return;
|
750 |
+
}
|
751 |
+
|
752 |
+
each(parent, str ? function (v) {
|
753 |
+
return v.insertAdjacentHTML(prepend ? "afterbegin" : "beforeend", child);
|
754 |
+
} : function (v, i) {
|
755 |
+
return insertElement(v, i === 0 ? child : child.cloneNode(true), prepend);
|
756 |
+
});
|
757 |
+
}
|
758 |
+
|
759 |
+
fn.extend({
|
760 |
+
after: function (selector) {
|
761 |
+
cash(selector).insertAfter(this);
|
762 |
+
return this;
|
763 |
+
},
|
764 |
+
|
765 |
+
append: function (content) {
|
766 |
+
insertContent(this, content);
|
767 |
+
return this;
|
768 |
+
},
|
769 |
+
|
770 |
+
appendTo: function (parent) {
|
771 |
+
insertContent(cash(parent), this);
|
772 |
+
return this;
|
773 |
+
},
|
774 |
+
|
775 |
+
before: function (selector) {
|
776 |
+
cash(selector).insertBefore(this);
|
777 |
+
return this;
|
778 |
+
},
|
779 |
+
|
780 |
+
clone: function () {
|
781 |
+
return cash(this.map(function (v) {
|
782 |
+
return v.cloneNode(true);
|
783 |
+
}));
|
784 |
+
},
|
785 |
+
|
786 |
+
empty: function () {
|
787 |
+
this.html("");
|
788 |
+
return this;
|
789 |
+
},
|
790 |
+
|
791 |
+
html: function (content) {
|
792 |
+
if (content === undefined) {
|
793 |
+
return this[0].innerHTML;
|
794 |
+
}
|
795 |
+
var source = content.nodeType ? content[0].outerHTML : content;
|
796 |
+
return this.each(function (v) {
|
797 |
+
return v.innerHTML = source;
|
798 |
+
});
|
799 |
+
},
|
800 |
+
|
801 |
+
insertAfter: function (selector) {
|
802 |
+
var _this = this;
|
803 |
+
|
804 |
+
cash(selector).each(function (el, i) {
|
805 |
+
var parent = el.parentNode,
|
806 |
+
sibling = el.nextSibling;
|
807 |
+
_this.each(function (v) {
|
808 |
+
parent.insertBefore(i === 0 ? v : v.cloneNode(true), sibling);
|
809 |
+
});
|
810 |
+
});
|
811 |
+
|
812 |
+
return this;
|
813 |
+
},
|
814 |
+
|
815 |
+
insertBefore: function (selector) {
|
816 |
+
var _this2 = this;
|
817 |
+
cash(selector).each(function (el, i) {
|
818 |
+
var parent = el.parentNode;
|
819 |
+
_this2.each(function (v) {
|
820 |
+
parent.insertBefore(i === 0 ? v : v.cloneNode(true), el);
|
821 |
+
});
|
822 |
+
});
|
823 |
+
return this;
|
824 |
+
},
|
825 |
+
|
826 |
+
prepend: function (content) {
|
827 |
+
insertContent(this, content, true);
|
828 |
+
return this;
|
829 |
+
},
|
830 |
+
|
831 |
+
prependTo: function (parent) {
|
832 |
+
insertContent(cash(parent), this, true);
|
833 |
+
return this;
|
834 |
+
},
|
835 |
+
|
836 |
+
remove: function () {
|
837 |
+
return this.each(function (v) {
|
838 |
+
if (!!v.parentNode) {
|
839 |
+
return v.parentNode.removeChild(v);
|
840 |
+
}
|
841 |
+
});
|
842 |
+
},
|
843 |
+
|
844 |
+
text: function (content) {
|
845 |
+
if (content === undefined) {
|
846 |
+
return this[0].textContent;
|
847 |
+
}
|
848 |
+
return this.each(function (v) {
|
849 |
+
return v.textContent = content;
|
850 |
+
});
|
851 |
+
}
|
852 |
+
|
853 |
+
});
|
854 |
+
|
855 |
+
var docEl = doc.documentElement;
|
856 |
+
|
857 |
+
fn.extend({
|
858 |
+
position: function () {
|
859 |
+
var el = this[0];
|
860 |
+
return {
|
861 |
+
left: el.offsetLeft,
|
862 |
+
top: el.offsetTop
|
863 |
+
};
|
864 |
+
},
|
865 |
+
|
866 |
+
offset: function () {
|
867 |
+
var rect = this[0].getBoundingClientRect();
|
868 |
+
return {
|
869 |
+
top: rect.top + win.pageYOffset - docEl.clientTop,
|
870 |
+
left: rect.left + win.pageXOffset - docEl.clientLeft
|
871 |
+
};
|
872 |
+
},
|
873 |
+
|
874 |
+
offsetParent: function () {
|
875 |
+
return cash(this[0].offsetParent);
|
876 |
+
}
|
877 |
+
|
878 |
+
});
|
879 |
+
|
880 |
+
fn.extend({
|
881 |
+
children: function (selector) {
|
882 |
+
var elems = [];
|
883 |
+
this.each(function (el) {
|
884 |
+
push.apply(elems, el.children);
|
885 |
+
});
|
886 |
+
elems = unique(elems);
|
887 |
+
|
888 |
+
return !selector ? elems : elems.filter(function (v) {
|
889 |
+
return matches(v, selector);
|
890 |
+
});
|
891 |
+
},
|
892 |
+
|
893 |
+
closest: function (selector) {
|
894 |
+
if (!selector || this.length < 1) {
|
895 |
+
return cash();
|
896 |
+
}
|
897 |
+
if (this.is(selector)) {
|
898 |
+
return this.filter(selector);
|
899 |
+
}
|
900 |
+
return this.parent().closest(selector);
|
901 |
+
},
|
902 |
+
|
903 |
+
is: function (selector) {
|
904 |
+
if (!selector) {
|
905 |
+
return false;
|
906 |
+
}
|
907 |
+
|
908 |
+
var match = false,
|
909 |
+
comparator = getCompareFunction(selector);
|
910 |
+
|
911 |
+
this.each(function (el) {
|
912 |
+
match = comparator(el, selector);
|
913 |
+
return !match;
|
914 |
+
});
|
915 |
+
|
916 |
+
return match;
|
917 |
+
},
|
918 |
+
|
919 |
+
find: function (selector) {
|
920 |
+
if (!selector || selector.nodeType) {
|
921 |
+
return cash(selector && this.has(selector).length ? selector : null);
|
922 |
+
}
|
923 |
+
|
924 |
+
var elems = [];
|
925 |
+
this.each(function (el) {
|
926 |
+
push.apply(elems, find(selector, el));
|
927 |
+
});
|
928 |
+
|
929 |
+
return unique(elems);
|
930 |
+
},
|
931 |
+
|
932 |
+
has: function (selector) {
|
933 |
+
var comparator = isString(selector) ? function (el) {
|
934 |
+
return find(selector, el).length !== 0;
|
935 |
+
} : function (el) {
|
936 |
+
return el.contains(selector);
|
937 |
+
};
|
938 |
+
|
939 |
+
return this.filter(comparator);
|
940 |
+
},
|
941 |
+
|
942 |
+
next: function () {
|
943 |
+
return cash(this[0].nextElementSibling);
|
944 |
+
},
|
945 |
+
|
946 |
+
not: function (selector) {
|
947 |
+
if (!selector) {
|
948 |
+
return this;
|
949 |
+
}
|
950 |
+
|
951 |
+
var comparator = getCompareFunction(selector);
|
952 |
+
|
953 |
+
return this.filter(function (el) {
|
954 |
+
return !comparator(el, selector);
|
955 |
+
});
|
956 |
+
},
|
957 |
+
|
958 |
+
parent: function () {
|
959 |
+
var result = [];
|
960 |
+
|
961 |
+
this.each(function (item) {
|
962 |
+
if (item && item.parentNode) {
|
963 |
+
result.push(item.parentNode);
|
964 |
+
}
|
965 |
+
});
|
966 |
+
|
967 |
+
return unique(result);
|
968 |
+
},
|
969 |
+
|
970 |
+
parents: function (selector) {
|
971 |
+
var last,
|
972 |
+
result = [];
|
973 |
+
|
974 |
+
this.each(function (item) {
|
975 |
+
last = item;
|
976 |
+
|
977 |
+
while (last && last.parentNode && last !== doc.body.parentNode) {
|
978 |
+
last = last.parentNode;
|
979 |
+
|
980 |
+
if (!selector || selector && matches(last, selector)) {
|
981 |
+
result.push(last);
|
982 |
+
}
|
983 |
+
}
|
984 |
+
});
|
985 |
+
|
986 |
+
return unique(result);
|
987 |
+
},
|
988 |
+
|
989 |
+
prev: function () {
|
990 |
+
return cash(this[0].previousElementSibling);
|
991 |
+
},
|
992 |
+
|
993 |
+
siblings: function (selector) {
|
994 |
+
var collection = this.parent().children(selector),
|
995 |
+
el = this[0];
|
996 |
+
|
997 |
+
return collection.filter(function (i) {
|
998 |
+
return i !== el;
|
999 |
+
});
|
1000 |
+
}
|
1001 |
+
|
1002 |
+
});
|
1003 |
+
|
1004 |
+
return cash;
|
1005 |
+
});
|
1006 |
+
;
|
1007 |
+
var Component = function () {
|
1008 |
+
/**
|
1009 |
+
* Generic constructor for all components
|
1010 |
+
* @constructor
|
1011 |
+
* @param {Element} el
|
1012 |
+
* @param {Object} options
|
1013 |
+
*/
|
1014 |
+
function Component(classDef, el, options) {
|
1015 |
+
_classCallCheck(this, Component);
|
1016 |
+
|
1017 |
+
// Display error if el is valid HTML Element
|
1018 |
+
if (!(el instanceof Element)) {
|
1019 |
+
console.error(Error(el + ' is not an HTML Element'));
|
1020 |
+
}
|
1021 |
+
|
1022 |
+
// If exists, destroy and reinitialize in child
|
1023 |
+
var ins = classDef.getInstance(el);
|
1024 |
+
if (!!ins) {
|
1025 |
+
ins.destroy();
|
1026 |
+
}
|
1027 |
+
|
1028 |
+
this.el = el;
|
1029 |
+
this.$el = cash(el);
|
1030 |
+
}
|
1031 |
+
|
1032 |
+
/**
|
1033 |
+
* Initializes components
|
1034 |
+
* @param {class} classDef
|
1035 |
+
* @param {Element | NodeList | jQuery} els
|
1036 |
+
* @param {Object} options
|
1037 |
+
*/
|
1038 |
+
|
1039 |
+
|
1040 |
+
_createClass(Component, null, [{
|
1041 |
+
key: "init",
|
1042 |
+
value: function init(classDef, els, options) {
|
1043 |
+
var instances = null;
|
1044 |
+
if (els instanceof Element) {
|
1045 |
+
instances = new classDef(els, options);
|
1046 |
+
} else if (!!els && (els.jquery || els.cash || els instanceof NodeList)) {
|
1047 |
+
var instancesArr = [];
|
1048 |
+
for (var i = 0; i < els.length; i++) {
|
1049 |
+
instancesArr.push(new classDef(els[i], options));
|
1050 |
+
}
|
1051 |
+
instances = instancesArr;
|
1052 |
+
}
|
1053 |
+
|
1054 |
+
return instances;
|
1055 |
+
}
|
1056 |
+
}]);
|
1057 |
+
|
1058 |
+
return Component;
|
1059 |
+
}();
|
1060 |
+
|
1061 |
+
; // Required for Meteor package, the use of window prevents export by Meteor
|
1062 |
+
(function (window) {
|
1063 |
+
if (window.Package) {
|
1064 |
+
M = {};
|
1065 |
+
} else {
|
1066 |
+
window.M = {};
|
1067 |
+
}
|
1068 |
+
|
1069 |
+
// Check for jQuery
|
1070 |
+
M.jQueryLoaded = !!window.jQuery;
|
1071 |
+
})(window);
|
1072 |
+
|
1073 |
+
// AMD
|
1074 |
+
if (typeof define === 'function' && define.amd) {
|
1075 |
+
define('M', [], function () {
|
1076 |
+
return M;
|
1077 |
+
});
|
1078 |
+
|
1079 |
+
// Common JS
|
1080 |
+
} else if (typeof exports !== 'undefined' && !exports.nodeType) {
|
1081 |
+
if (typeof module !== 'undefined' && !module.nodeType && module.exports) {
|
1082 |
+
exports = module.exports = M;
|
1083 |
+
}
|
1084 |
+
exports.default = M;
|
1085 |
+
}
|
1086 |
+
|
1087 |
+
M.version = '1.0.0';
|
1088 |
+
|
1089 |
+
M.keys = {
|
1090 |
+
TAB: 9,
|
1091 |
+
ENTER: 13,
|
1092 |
+
ESC: 27,
|
1093 |
+
ARROW_UP: 38,
|
1094 |
+
ARROW_DOWN: 40
|
1095 |
+
};
|
1096 |
+
|
1097 |
+
/**
|
1098 |
+
* TabPress Keydown handler
|
1099 |
+
*/
|
1100 |
+
M.tabPressed = false;
|
1101 |
+
M.keyDown = false;
|
1102 |
+
var docHandleKeydown = function (e) {
|
1103 |
+
M.keyDown = true;
|
1104 |
+
if (e.which === M.keys.TAB || e.which === M.keys.ARROW_DOWN || e.which === M.keys.ARROW_UP) {
|
1105 |
+
M.tabPressed = true;
|
1106 |
+
}
|
1107 |
+
};
|
1108 |
+
var docHandleKeyup = function (e) {
|
1109 |
+
M.keyDown = false;
|
1110 |
+
if (e.which === M.keys.TAB || e.which === M.keys.ARROW_DOWN || e.which === M.keys.ARROW_UP) {
|
1111 |
+
M.tabPressed = false;
|
1112 |
+
}
|
1113 |
+
};
|
1114 |
+
var docHandleFocus = function (e) {
|
1115 |
+
if (M.keyDown) {
|
1116 |
+
document.body.classList.add('keyboard-focused');
|
1117 |
+
}
|
1118 |
+
};
|
1119 |
+
var docHandleBlur = function (e) {
|
1120 |
+
document.body.classList.remove('keyboard-focused');
|
1121 |
+
};
|
1122 |
+
document.addEventListener('keydown', docHandleKeydown, true);
|
1123 |
+
document.addEventListener('keyup', docHandleKeyup, true);
|
1124 |
+
document.addEventListener('focus', docHandleFocus, true);
|
1125 |
+
document.addEventListener('blur', docHandleBlur, true);
|
1126 |
+
|
1127 |
+
/**
|
1128 |
+
* Initialize jQuery wrapper for plugin
|
1129 |
+
* @param {Class} plugin javascript class
|
1130 |
+
* @param {string} pluginName jQuery plugin name
|
1131 |
+
* @param {string} classRef Class reference name
|
1132 |
+
*/
|
1133 |
+
M.initializeJqueryWrapper = function (plugin, pluginName, classRef) {
|
1134 |
+
jQuery.fn[pluginName] = function (methodOrOptions) {
|
1135 |
+
// Call plugin method if valid method name is passed in
|
1136 |
+
if (plugin.prototype[methodOrOptions]) {
|
1137 |
+
var params = Array.prototype.slice.call(arguments, 1);
|
1138 |
+
|
1139 |
+
// Getter methods
|
1140 |
+
if (methodOrOptions.slice(0, 3) === 'get') {
|
1141 |
+
var instance = this.first()[0][classRef];
|
1142 |
+
return instance[methodOrOptions].apply(instance, params);
|
1143 |
+
}
|
1144 |
+
|
1145 |
+
// Void methods
|
1146 |
+
return this.each(function () {
|
1147 |
+
var instance = this[classRef];
|
1148 |
+
instance[methodOrOptions].apply(instance, params);
|
1149 |
+
});
|
1150 |
+
|
1151 |
+
// Initialize plugin if options or no argument is passed in
|
1152 |
+
} else if (typeof methodOrOptions === 'object' || !methodOrOptions) {
|
1153 |
+
plugin.init(this, arguments[0]);
|
1154 |
+
return this;
|
1155 |
+
}
|
1156 |
+
|
1157 |
+
// Return error if an unrecognized method name is passed in
|
1158 |
+
jQuery.error("Method " + methodOrOptions + " does not exist on jQuery." + pluginName);
|
1159 |
+
};
|
1160 |
+
};
|
1161 |
+
|
1162 |
+
/**
|
1163 |
+
* Automatically initialize components
|
1164 |
+
* @param {Element} context DOM Element to search within for components
|
1165 |
+
*/
|
1166 |
+
M.AutoInit = function (context) {
|
1167 |
+
// Use document.body if no context is given
|
1168 |
+
var root = !!context ? context : document.body;
|
1169 |
+
|
1170 |
+
var registry = {
|
1171 |
+
Autocomplete: root.querySelectorAll('.autocomplete:not(.no-autoinit)'),
|
1172 |
+
Carousel: root.querySelectorAll('.carousel:not(.no-autoinit)'),
|
1173 |
+
Chips: root.querySelectorAll('.chips:not(.no-autoinit)'),
|
1174 |
+
Collapsible: root.querySelectorAll('.collapsible:not(.no-autoinit)'),
|
1175 |
+
Datepicker: root.querySelectorAll('.datepicker:not(.no-autoinit)'),
|
1176 |
+
Dropdown: root.querySelectorAll('.dropdown-trigger:not(.no-autoinit)'),
|
1177 |
+
Materialbox: root.querySelectorAll('.materialboxed:not(.no-autoinit)'),
|
1178 |
+
Modal: root.querySelectorAll('.modal:not(.no-autoinit)'),
|
1179 |
+
Parallax: root.querySelectorAll('.parallax:not(.no-autoinit)'),
|
1180 |
+
Pushpin: root.querySelectorAll('.pushpin:not(.no-autoinit)'),
|
1181 |
+
ScrollSpy: root.querySelectorAll('.scrollspy:not(.no-autoinit)'),
|
1182 |
+
FormSelect: root.querySelectorAll('select:not(.no-autoinit)'),
|
1183 |
+
Sidenav: root.querySelectorAll('.sidenav:not(.no-autoinit)'),
|
1184 |
+
Tabs: root.querySelectorAll('.tabs:not(.no-autoinit)'),
|
1185 |
+
TapTarget: root.querySelectorAll('.tap-target:not(.no-autoinit)'),
|
1186 |
+
Timepicker: root.querySelectorAll('.timepicker:not(.no-autoinit)'),
|
1187 |
+
Tooltip: root.querySelectorAll('.tooltipped:not(.no-autoinit)'),
|
1188 |
+
FloatingActionButton: root.querySelectorAll('.fixed-action-btn:not(.no-autoinit)')
|
1189 |
+
};
|
1190 |
+
|
1191 |
+
for (var pluginName in registry) {
|
1192 |
+
var plugin = M[pluginName];
|
1193 |
+
plugin.init(registry[pluginName]);
|
1194 |
+
}
|
1195 |
+
};
|
1196 |
+
|
1197 |
+
/**
|
1198 |
+
* Generate approximated selector string for a jQuery object
|
1199 |
+
* @param {jQuery} obj jQuery object to be parsed
|
1200 |
+
* @returns {string}
|
1201 |
+
*/
|
1202 |
+
M.objectSelectorString = function (obj) {
|
1203 |
+
var tagStr = obj.prop('tagName') || '';
|
1204 |
+
var idStr = obj.attr('id') || '';
|
1205 |
+
var classStr = obj.attr('class') || '';
|
1206 |
+
return (tagStr + idStr + classStr).replace(/\s/g, '');
|
1207 |
+
};
|
1208 |
+
|
1209 |
+
// Unique Random ID
|
1210 |
+
M.guid = function () {
|
1211 |
+
function s4() {
|
1212 |
+
return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
|
1213 |
+
}
|
1214 |
+
return function () {
|
1215 |
+
return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
|
1216 |
+
};
|
1217 |
+
}();
|
1218 |
+
|
1219 |
+
/**
|
1220 |
+
* Escapes hash from special characters
|
1221 |
+
* @param {string} hash String returned from this.hash
|
1222 |
+
* @returns {string}
|
1223 |
+
*/
|
1224 |
+
M.escapeHash = function (hash) {
|
1225 |
+
return hash.replace(/(:|\.|\[|\]|,|=|\/)/g, '\\$1');
|
1226 |
+
};
|
1227 |
+
|
1228 |
+
M.elementOrParentIsFixed = function (element) {
|
1229 |
+
var $element = $(element);
|
1230 |
+
var $checkElements = $element.add($element.parents());
|
1231 |
+
var isFixed = false;
|
1232 |
+
$checkElements.each(function () {
|
1233 |
+
if ($(this).css('position') === 'fixed') {
|
1234 |
+
isFixed = true;
|
1235 |
+
return false;
|
1236 |
+
}
|
1237 |
+
});
|
1238 |
+
return isFixed;
|
1239 |
+
};
|
1240 |
+
|
1241 |
+
/**
|
1242 |
+
* @typedef {Object} Edges
|
1243 |
+
* @property {Boolean} top If the top edge was exceeded
|
1244 |
+
* @property {Boolean} right If the right edge was exceeded
|
1245 |
+
* @property {Boolean} bottom If the bottom edge was exceeded
|
1246 |
+
* @property {Boolean} left If the left edge was exceeded
|
1247 |
+
*/
|
1248 |
+
|
1249 |
+
/**
|
1250 |
+
* @typedef {Object} Bounding
|
1251 |
+
* @property {Number} left left offset coordinate
|
1252 |
+
* @property {Number} top top offset coordinate
|
1253 |
+
* @property {Number} width
|
1254 |
+
* @property {Number} height
|
1255 |
+
*/
|
1256 |
+
|
1257 |
+
/**
|
1258 |
+
* Escapes hash from special characters
|
1259 |
+
* @param {Element} container Container element that acts as the boundary
|
1260 |
+
* @param {Bounding} bounding element bounding that is being checked
|
1261 |
+
* @param {Number} offset offset from edge that counts as exceeding
|
1262 |
+
* @returns {Edges}
|
1263 |
+
*/
|
1264 |
+
M.checkWithinContainer = function (container, bounding, offset) {
|
1265 |
+
var edges = {
|
1266 |
+
top: false,
|
1267 |
+
right: false,
|
1268 |
+
bottom: false,
|
1269 |
+
left: false
|
1270 |
+
};
|
1271 |
+
|
1272 |
+
var containerRect = container.getBoundingClientRect();
|
1273 |
+
// If body element is smaller than viewport, use viewport height instead.
|
1274 |
+
var containerBottom = container === document.body ? Math.max(containerRect.bottom, window.innerHeight) : containerRect.bottom;
|
1275 |
+
|
1276 |
+
var scrollLeft = container.scrollLeft;
|
1277 |
+
var scrollTop = container.scrollTop;
|
1278 |
+
|
1279 |
+
var scrolledX = bounding.left - scrollLeft;
|
1280 |
+
var scrolledY = bounding.top - scrollTop;
|
1281 |
+
|
1282 |
+
// Check for container and viewport for each edge
|
1283 |
+
if (scrolledX < containerRect.left + offset || scrolledX < offset) {
|
1284 |
+
edges.left = true;
|
1285 |
+
}
|
1286 |
+
|
1287 |
+
if (scrolledX + bounding.width > containerRect.right - offset || scrolledX + bounding.width > window.innerWidth - offset) {
|
1288 |
+
edges.right = true;
|
1289 |
+
}
|
1290 |
+
|
1291 |
+
if (scrolledY < containerRect.top + offset || scrolledY < offset) {
|
1292 |
+
edges.top = true;
|
1293 |
+
}
|
1294 |
+
|
1295 |
+
if (scrolledY + bounding.height > containerBottom - offset || scrolledY + bounding.height > window.innerHeight - offset) {
|
1296 |
+
edges.bottom = true;
|
1297 |
+
}
|
1298 |
+
|
1299 |
+
return edges;
|
1300 |
+
};
|
1301 |
+
|
1302 |
+
M.checkPossibleAlignments = function (el, container, bounding, offset) {
|
1303 |
+
var canAlign = {
|
1304 |
+
top: true,
|
1305 |
+
right: true,
|
1306 |
+
bottom: true,
|
1307 |
+
left: true,
|
1308 |
+
spaceOnTop: null,
|
1309 |
+
spaceOnRight: null,
|
1310 |
+
spaceOnBottom: null,
|
1311 |
+
spaceOnLeft: null
|
1312 |
+
};
|
1313 |
+
|
1314 |
+
var containerAllowsOverflow = getComputedStyle(container).overflow === 'visible';
|
1315 |
+
var containerRect = container.getBoundingClientRect();
|
1316 |
+
var containerHeight = Math.min(containerRect.height, window.innerHeight);
|
1317 |
+
var containerWidth = Math.min(containerRect.width, window.innerWidth);
|
1318 |
+
var elOffsetRect = el.getBoundingClientRect();
|
1319 |
+
|
1320 |
+
var scrollLeft = container.scrollLeft;
|
1321 |
+
var scrollTop = container.scrollTop;
|
1322 |
+
|
1323 |
+
var scrolledX = bounding.left - scrollLeft;
|
1324 |
+
var scrolledYTopEdge = bounding.top - scrollTop;
|
1325 |
+
var scrolledYBottomEdge = bounding.top + elOffsetRect.height - scrollTop;
|
1326 |
+
|
1327 |
+
// Check for container and viewport for left
|
1328 |
+
canAlign.spaceOnRight = !containerAllowsOverflow ? containerWidth - (scrolledX + bounding.width) : window.innerWidth - (elOffsetRect.left + bounding.width);
|
1329 |
+
if (canAlign.spaceOnRight < 0) {
|
1330 |
+
canAlign.left = false;
|
1331 |
+
}
|
1332 |
+
|
1333 |
+
// Check for container and viewport for Right
|
1334 |
+
canAlign.spaceOnLeft = !containerAllowsOverflow ? scrolledX - bounding.width + elOffsetRect.width : elOffsetRect.right - bounding.width;
|
1335 |
+
if (canAlign.spaceOnLeft < 0) {
|
1336 |
+
canAlign.right = false;
|
1337 |
+
}
|
1338 |
+
|
1339 |
+
// Check for container and viewport for Top
|
1340 |
+
canAlign.spaceOnBottom = !containerAllowsOverflow ? containerHeight - (scrolledYTopEdge + bounding.height + offset) : window.innerHeight - (elOffsetRect.top + bounding.height + offset);
|
1341 |
+
if (canAlign.spaceOnBottom < 0) {
|
1342 |
+
canAlign.top = false;
|
1343 |
+
}
|
1344 |
+
|
1345 |
+
// Check for container and viewport for Bottom
|
1346 |
+
canAlign.spaceOnTop = !containerAllowsOverflow ? scrolledYBottomEdge - (bounding.height - offset) : elOffsetRect.bottom - (bounding.height + offset);
|
1347 |
+
if (canAlign.spaceOnTop < 0) {
|
1348 |
+
canAlign.bottom = false;
|
1349 |
+
}
|
1350 |
+
|
1351 |
+
return canAlign;
|
1352 |
+
};
|
1353 |
+
|
1354 |
+
M.getOverflowParent = function (element) {
|
1355 |
+
if (element == null) {
|
1356 |
+
return null;
|
1357 |
+
}
|
1358 |
+
|
1359 |
+
if (element === document.body || getComputedStyle(element).overflow !== 'visible') {
|
1360 |
+
return element;
|
1361 |
+
}
|
1362 |
+
|
1363 |
+
return M.getOverflowParent(element.parentElement);
|
1364 |
+
};
|
1365 |
+
|
1366 |
+
/**
|
1367 |
+
* Gets id of component from a trigger
|
1368 |
+
* @param {Element} trigger trigger
|
1369 |
+
* @returns {string}
|
1370 |
+
*/
|
1371 |
+
M.getIdFromTrigger = function (trigger) {
|
1372 |
+
var id = trigger.getAttribute('data-target');
|
1373 |
+
if (!id) {
|
1374 |
+
id = trigger.getAttribute('href');
|
1375 |
+
if (id) {
|
1376 |
+
id = id.slice(1);
|
1377 |
+
} else {
|
1378 |
+
id = '';
|
1379 |
+
}
|
1380 |
+
}
|
1381 |
+
return id;
|
1382 |
+
};
|
1383 |
+
|
1384 |
+
/**
|
1385 |
+
* Multi browser support for document scroll top
|
1386 |
+
* @returns {Number}
|
1387 |
+
*/
|
1388 |
+
M.getDocumentScrollTop = function () {
|
1389 |
+
return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
|
1390 |
+
};
|
1391 |
+
|
1392 |
+
/**
|
1393 |
+
* Multi browser support for document scroll left
|
1394 |
+
* @returns {Number}
|
1395 |
+
*/
|
1396 |
+
M.getDocumentScrollLeft = function () {
|
1397 |
+
return window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
|
1398 |
+
};
|
1399 |
+
|
1400 |
+
/**
|
1401 |
+
* @typedef {Object} Edges
|
1402 |
+
* @property {Boolean} top If the top edge was exceeded
|
1403 |
+
* @property {Boolean} right If the right edge was exceeded
|
1404 |
+
* @property {Boolean} bottom If the bottom edge was exceeded
|
1405 |
+
* @property {Boolean} left If the left edge was exceeded
|
1406 |
+
*/
|
1407 |
+
|
1408 |
+
/**
|
1409 |
+
* @typedef {Object} Bounding
|
1410 |
+
* @property {Number} left left offset coordinate
|
1411 |
+
* @property {Number} top top offset coordinate
|
1412 |
+
* @property {Number} width
|
1413 |
+
* @property {Number} height
|
1414 |
+
*/
|
1415 |
+
|
1416 |
+
/**
|
1417 |
+
* Get time in ms
|
1418 |
+
* @license https://raw.github.com/jashkenas/underscore/master/LICENSE
|
1419 |
+
* @type {function}
|
1420 |
+
* @return {number}
|
1421 |
+
*/
|
1422 |
+
var getTime = Date.now || function () {
|
1423 |
+
return new Date().getTime();
|
1424 |
+
};
|
1425 |
+
|
1426 |
+
/**
|
1427 |
+
* Returns a function, that, when invoked, will only be triggered at most once
|
1428 |
+
* during a given window of time. Normally, the throttled function will run
|
1429 |
+
* as much as it can, without ever going more than once per `wait` duration;
|
1430 |
+
* but if you'd like to disable the execution on the leading edge, pass
|
1431 |
+
* `{leading: false}`. To disable execution on the trailing edge, ditto.
|
1432 |
+
* @license https://raw.github.com/jashkenas/underscore/master/LICENSE
|
1433 |
+
* @param {function} func
|
1434 |
+
* @param {number} wait
|
1435 |
+
* @param {Object=} options
|
1436 |
+
* @returns {Function}
|
1437 |
+
*/
|
1438 |
+
M.throttle = function (func, wait, options) {
|
1439 |
+
var context = void 0,
|
1440 |
+
args = void 0,
|
1441 |
+
result = void 0;
|
1442 |
+
var timeout = null;
|
1443 |
+
var previous = 0;
|
1444 |
+
options || (options = {});
|
1445 |
+
var later = function () {
|
1446 |
+
previous = options.leading === false ? 0 : getTime();
|
1447 |
+
timeout = null;
|
1448 |
+
result = func.apply(context, args);
|
1449 |
+
context = args = null;
|
1450 |
+
};
|
1451 |
+
return function () {
|
1452 |
+
var now = getTime();
|
1453 |
+
if (!previous && options.leading === false) previous = now;
|
1454 |
+
var remaining = wait - (now - previous);
|
1455 |
+
context = this;
|
1456 |
+
args = arguments;
|
1457 |
+
if (remaining <= 0) {
|
1458 |
+
clearTimeout(timeout);
|
1459 |
+
timeout = null;
|
1460 |
+
previous = now;
|
1461 |
+
result = func.apply(context, args);
|
1462 |
+
context = args = null;
|
1463 |
+
} else if (!timeout && options.trailing !== false) {
|
1464 |
+
timeout = setTimeout(later, remaining);
|
1465 |
+
}
|
1466 |
+
return result;
|
1467 |
+
};
|
1468 |
+
};
|
1469 |
+
; /*
|
1470 |
+
v2.2.0
|
1471 |
+
2017 Julian Garnier
|
1472 |
+
Released under the MIT license
|
1473 |
+
*/
|
1474 |
+
var $jscomp = { scope: {} };$jscomp.defineProperty = "function" == typeof Object.defineProperties ? Object.defineProperty : function (e, r, p) {
|
1475 |
+
if (p.get || p.set) throw new TypeError("ES3 does not support getters and setters.");e != Array.prototype && e != Object.prototype && (e[r] = p.value);
|
1476 |
+
};$jscomp.getGlobal = function (e) {
|
1477 |
+
return "undefined" != typeof window && window === e ? e : "undefined" != typeof global && null != global ? global : e;
|
1478 |
+
};$jscomp.global = $jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX = "jscomp_symbol_";
|
1479 |
+
$jscomp.initSymbol = function () {
|
1480 |
+
$jscomp.initSymbol = function () {};$jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol);
|
1481 |
+
};$jscomp.symbolCounter_ = 0;$jscomp.Symbol = function (e) {
|
1482 |
+
return $jscomp.SYMBOL_PREFIX + (e || "") + $jscomp.symbolCounter_++;
|
1483 |
+
};
|
1484 |
+
$jscomp.initSymbolIterator = function () {
|
1485 |
+
$jscomp.initSymbol();var e = $jscomp.global.Symbol.iterator;e || (e = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol("iterator"));"function" != typeof Array.prototype[e] && $jscomp.defineProperty(Array.prototype, e, { configurable: !0, writable: !0, value: function () {
|
1486 |
+
return $jscomp.arrayIterator(this);
|
1487 |
+
} });$jscomp.initSymbolIterator = function () {};
|
1488 |
+
};$jscomp.arrayIterator = function (e) {
|
1489 |
+
var r = 0;return $jscomp.iteratorPrototype(function () {
|
1490 |
+
return r < e.length ? { done: !1, value: e[r++] } : { done: !0 };
|
1491 |
+
});
|
1492 |
+
};
|
1493 |
+
$jscomp.iteratorPrototype = function (e) {
|
1494 |
+
$jscomp.initSymbolIterator();e = { next: e };e[$jscomp.global.Symbol.iterator] = function () {
|
1495 |
+
return this;
|
1496 |
+
};return e;
|
1497 |
+
};$jscomp.array = $jscomp.array || {};$jscomp.iteratorFromArray = function (e, r) {
|
1498 |
+
$jscomp.initSymbolIterator();e instanceof String && (e += "");var p = 0,
|
1499 |
+
m = { next: function () {
|
1500 |
+
if (p < e.length) {
|
1501 |
+
var u = p++;return { value: r(u, e[u]), done: !1 };
|
1502 |
+
}m.next = function () {
|
1503 |
+
return { done: !0, value: void 0 };
|
1504 |
+
};return m.next();
|
1505 |
+
} };m[Symbol.iterator] = function () {
|
1506 |
+
return m;
|
1507 |
+
};return m;
|
1508 |
+
};
|
1509 |
+
$jscomp.polyfill = function (e, r, p, m) {
|
1510 |
+
if (r) {
|
1511 |
+
p = $jscomp.global;e = e.split(".");for (m = 0; m < e.length - 1; m++) {
|
1512 |
+
var u = e[m];u in p || (p[u] = {});p = p[u];
|
1513 |
+
}e = e[e.length - 1];m = p[e];r = r(m);r != m && null != r && $jscomp.defineProperty(p, e, { configurable: !0, writable: !0, value: r });
|
1514 |
+
}
|
1515 |
+
};$jscomp.polyfill("Array.prototype.keys", function (e) {
|
1516 |
+
return e ? e : function () {
|
1517 |
+
return $jscomp.iteratorFromArray(this, function (e) {
|
1518 |
+
return e;
|
1519 |
+
});
|
1520 |
+
};
|
1521 |
+
}, "es6-impl", "es3");var $jscomp$this = this;
|
1522 |
+
(function (r) {
|
1523 |
+
M.anime = r();
|
1524 |
+
})(function () {
|
1525 |
+
function e(a) {
|
1526 |
+
if (!h.col(a)) try {
|
1527 |
+
return document.querySelectorAll(a);
|
1528 |
+
} catch (c) {}
|
1529 |
+
}function r(a, c) {
|
1530 |
+
for (var d = a.length, b = 2 <= arguments.length ? arguments[1] : void 0, f = [], n = 0; n < d; n++) {
|
1531 |
+
if (n in a) {
|
1532 |
+
var k = a[n];c.call(b, k, n, a) && f.push(k);
|
1533 |
+
}
|
1534 |
+
}return f;
|
1535 |
+
}function p(a) {
|
1536 |
+
return a.reduce(function (a, d) {
|
1537 |
+
return a.concat(h.arr(d) ? p(d) : d);
|
1538 |
+
}, []);
|
1539 |
+
}function m(a) {
|
1540 |
+
if (h.arr(a)) return a;
|
1541 |
+
h.str(a) && (a = e(a) || a);return a instanceof NodeList || a instanceof HTMLCollection ? [].slice.call(a) : [a];
|
1542 |
+
}function u(a, c) {
|
1543 |
+
return a.some(function (a) {
|
1544 |
+
return a === c;
|
1545 |
+
});
|
1546 |
+
}function C(a) {
|
1547 |
+
var c = {},
|
1548 |
+
d;for (d in a) {
|
1549 |
+
c[d] = a[d];
|
1550 |
+
}return c;
|
1551 |
+
}function D(a, c) {
|
1552 |
+
var d = C(a),
|
1553 |
+
b;for (b in a) {
|
1554 |
+
d[b] = c.hasOwnProperty(b) ? c[b] : a[b];
|
1555 |
+
}return d;
|
1556 |
+
}function z(a, c) {
|
1557 |
+
var d = C(a),
|
1558 |
+
b;for (b in c) {
|
1559 |
+
d[b] = h.und(a[b]) ? c[b] : a[b];
|
1560 |
+
}return d;
|
1561 |
+
}function T(a) {
|
1562 |
+
a = a.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function (a, c, d, k) {
|
1563 |
+
return c + c + d + d + k + k;
|
1564 |
+
});var c = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);
|
1565 |
+
a = parseInt(c[1], 16);var d = parseInt(c[2], 16),
|
1566 |
+
c = parseInt(c[3], 16);return "rgba(" + a + "," + d + "," + c + ",1)";
|
1567 |
+
}function U(a) {
|
1568 |
+
function c(a, c, b) {
|
1569 |
+
0 > b && (b += 1);1 < b && --b;return b < 1 / 6 ? a + 6 * (c - a) * b : .5 > b ? c : b < 2 / 3 ? a + (c - a) * (2 / 3 - b) * 6 : a;
|
1570 |
+
}var d = /hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(a) || /hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(a);a = parseInt(d[1]) / 360;var b = parseInt(d[2]) / 100,
|
1571 |
+
f = parseInt(d[3]) / 100,
|
1572 |
+
d = d[4] || 1;if (0 == b) f = b = a = f;else {
|
1573 |
+
var n = .5 > f ? f * (1 + b) : f + b - f * b,
|
1574 |
+
k = 2 * f - n,
|
1575 |
+
f = c(k, n, a + 1 / 3),
|
1576 |
+
b = c(k, n, a);a = c(k, n, a - 1 / 3);
|
1577 |
+
}return "rgba(" + 255 * f + "," + 255 * b + "," + 255 * a + "," + d + ")";
|
1578 |
+
}function y(a) {
|
1579 |
+
if (a = /([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(a)) return a[2];
|
1580 |
+
}function V(a) {
|
1581 |
+
if (-1 < a.indexOf("translate") || "perspective" === a) return "px";if (-1 < a.indexOf("rotate") || -1 < a.indexOf("skew")) return "deg";
|
1582 |
+
}function I(a, c) {
|
1583 |
+
return h.fnc(a) ? a(c.target, c.id, c.total) : a;
|
1584 |
+
}function E(a, c) {
|
1585 |
+
if (c in a.style) return getComputedStyle(a).getPropertyValue(c.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase()) || "0";
|
1586 |
+
}function J(a, c) {
|
1587 |
+
if (h.dom(a) && u(W, c)) return "transform";if (h.dom(a) && (a.getAttribute(c) || h.svg(a) && a[c])) return "attribute";if (h.dom(a) && "transform" !== c && E(a, c)) return "css";if (null != a[c]) return "object";
|
1588 |
+
}function X(a, c) {
|
1589 |
+
var d = V(c),
|
1590 |
+
d = -1 < c.indexOf("scale") ? 1 : 0 + d;a = a.style.transform;if (!a) return d;for (var b = [], f = [], n = [], k = /(\w+)\((.+?)\)/g; b = k.exec(a);) {
|
1591 |
+
f.push(b[1]), n.push(b[2]);
|
1592 |
+
}a = r(n, function (a, b) {
|
1593 |
+
return f[b] === c;
|
1594 |
+
});return a.length ? a[0] : d;
|
1595 |
+
}function K(a, c) {
|
1596 |
+
switch (J(a, c)) {case "transform":
|
1597 |
+
return X(a, c);case "css":
|
1598 |
+
return E(a, c);case "attribute":
|
1599 |
+
return a.getAttribute(c);}return a[c] || 0;
|
1600 |
+
}function L(a, c) {
|
1601 |
+
var d = /^(\*=|\+=|-=)/.exec(a);if (!d) return a;var b = y(a) || 0;c = parseFloat(c);a = parseFloat(a.replace(d[0], ""));switch (d[0][0]) {case "+":
|
1602 |
+
return c + a + b;case "-":
|
1603 |
+
return c - a + b;case "*":
|
1604 |
+
return c * a + b;}
|
1605 |
+
}function F(a, c) {
|
1606 |
+
return Math.sqrt(Math.pow(c.x - a.x, 2) + Math.pow(c.y - a.y, 2));
|
1607 |
+
}function M(a) {
|
1608 |
+
a = a.points;for (var c = 0, d, b = 0; b < a.numberOfItems; b++) {
|
1609 |
+
var f = a.getItem(b);0 < b && (c += F(d, f));d = f;
|
1610 |
+
}return c;
|
1611 |
+
}function N(a) {
|
1612 |
+
if (a.getTotalLength) return a.getTotalLength();switch (a.tagName.toLowerCase()) {case "circle":
|
1613 |
+
return 2 * Math.PI * a.getAttribute("r");case "rect":
|
1614 |
+
return 2 * a.getAttribute("width") + 2 * a.getAttribute("height");case "line":
|
1615 |
+
return F({ x: a.getAttribute("x1"), y: a.getAttribute("y1") }, { x: a.getAttribute("x2"), y: a.getAttribute("y2") });case "polyline":
|
1616 |
+
return M(a);case "polygon":
|
1617 |
+
var c = a.points;return M(a) + F(c.getItem(c.numberOfItems - 1), c.getItem(0));}
|
1618 |
+
}function Y(a, c) {
|
1619 |
+
function d(b) {
|
1620 |
+
b = void 0 === b ? 0 : b;return a.el.getPointAtLength(1 <= c + b ? c + b : 0);
|
1621 |
+
}var b = d(),
|
1622 |
+
f = d(-1),
|
1623 |
+
n = d(1);switch (a.property) {case "x":
|
1624 |
+
return b.x;case "y":
|
1625 |
+
return b.y;
|
1626 |
+
case "angle":
|
1627 |
+
return 180 * Math.atan2(n.y - f.y, n.x - f.x) / Math.PI;}
|
1628 |
+
}function O(a, c) {
|
1629 |
+
var d = /-?\d*\.?\d+/g,
|
1630 |
+
b;b = h.pth(a) ? a.totalLength : a;if (h.col(b)) {
|
1631 |
+
if (h.rgb(b)) {
|
1632 |
+
var f = /rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(b);b = f ? "rgba(" + f[1] + ",1)" : b;
|
1633 |
+
} else b = h.hex(b) ? T(b) : h.hsl(b) ? U(b) : void 0;
|
1634 |
+
} else f = (f = y(b)) ? b.substr(0, b.length - f.length) : b, b = c && !/\s/g.test(b) ? f + c : f;b += "";return { original: b, numbers: b.match(d) ? b.match(d).map(Number) : [0], strings: h.str(a) || c ? b.split(d) : [] };
|
1635 |
+
}function P(a) {
|
1636 |
+
a = a ? p(h.arr(a) ? a.map(m) : m(a)) : [];return r(a, function (a, d, b) {
|
1637 |
+
return b.indexOf(a) === d;
|
1638 |
+
});
|
1639 |
+
}function Z(a) {
|
1640 |
+
var c = P(a);return c.map(function (a, b) {
|
1641 |
+
return { target: a, id: b, total: c.length };
|
1642 |
+
});
|
1643 |
+
}function aa(a, c) {
|
1644 |
+
var d = C(c);if (h.arr(a)) {
|
1645 |
+
var b = a.length;2 !== b || h.obj(a[0]) ? h.fnc(c.duration) || (d.duration = c.duration / b) : a = { value: a };
|
1646 |
+
}return m(a).map(function (a, b) {
|
1647 |
+
b = b ? 0 : c.delay;a = h.obj(a) && !h.pth(a) ? a : { value: a };h.und(a.delay) && (a.delay = b);return a;
|
1648 |
+
}).map(function (a) {
|
1649 |
+
return z(a, d);
|
1650 |
+
});
|
1651 |
+
}function ba(a, c) {
|
1652 |
+
var d = {},
|
1653 |
+
b;for (b in a) {
|
1654 |
+
var f = I(a[b], c);h.arr(f) && (f = f.map(function (a) {
|
1655 |
+
return I(a, c);
|
1656 |
+
}), 1 === f.length && (f = f[0]));d[b] = f;
|
1657 |
+
}d.duration = parseFloat(d.duration);d.delay = parseFloat(d.delay);return d;
|
1658 |
+
}function ca(a) {
|
1659 |
+
return h.arr(a) ? A.apply(this, a) : Q[a];
|
1660 |
+
}function da(a, c) {
|
1661 |
+
var d;return a.tweens.map(function (b) {
|
1662 |
+
b = ba(b, c);var f = b.value,
|
1663 |
+
e = K(c.target, a.name),
|
1664 |
+
k = d ? d.to.original : e,
|
1665 |
+
k = h.arr(f) ? f[0] : k,
|
1666 |
+
w = L(h.arr(f) ? f[1] : f, k),
|
1667 |
+
e = y(w) || y(k) || y(e);b.from = O(k, e);b.to = O(w, e);b.start = d ? d.end : a.offset;b.end = b.start + b.delay + b.duration;b.easing = ca(b.easing);b.elasticity = (1E3 - Math.min(Math.max(b.elasticity, 1), 999)) / 1E3;b.isPath = h.pth(f);b.isColor = h.col(b.from.original);b.isColor && (b.round = 1);return d = b;
|
1668 |
+
});
|
1669 |
+
}function ea(a, c) {
|
1670 |
+
return r(p(a.map(function (a) {
|
1671 |
+
return c.map(function (b) {
|
1672 |
+
var c = J(a.target, b.name);if (c) {
|
1673 |
+
var d = da(b, a);b = { type: c, property: b.name, animatable: a, tweens: d, duration: d[d.length - 1].end, delay: d[0].delay };
|
1674 |
+
} else b = void 0;return b;
|
1675 |
+
});
|
1676 |
+
})), function (a) {
|
1677 |
+
return !h.und(a);
|
1678 |
+
});
|
1679 |
+
}function R(a, c, d, b) {
|
1680 |
+
var f = "delay" === a;return c.length ? (f ? Math.min : Math.max).apply(Math, c.map(function (b) {
|
1681 |
+
return b[a];
|
1682 |
+
})) : f ? b.delay : d.offset + b.delay + b.duration;
|
1683 |
+
}function fa(a) {
|
1684 |
+
var c = D(ga, a),
|
1685 |
+
d = D(S, a),
|
1686 |
+
b = Z(a.targets),
|
1687 |
+
f = [],
|
1688 |
+
e = z(c, d),
|
1689 |
+
k;for (k in a) {
|
1690 |
+
e.hasOwnProperty(k) || "targets" === k || f.push({ name: k, offset: e.offset, tweens: aa(a[k], d) });
|
1691 |
+
}a = ea(b, f);return z(c, { children: [], animatables: b, animations: a, duration: R("duration", a, c, d), delay: R("delay", a, c, d) });
|
1692 |
+
}function q(a) {
|
1693 |
+
function c() {
|
1694 |
+
return window.Promise && new Promise(function (a) {
|
1695 |
+
return p = a;
|
1696 |
+
});
|
1697 |
+
}function d(a) {
|
1698 |
+
return g.reversed ? g.duration - a : a;
|
1699 |
+
}function b(a) {
|
1700 |
+
for (var b = 0, c = {}, d = g.animations, f = d.length; b < f;) {
|
1701 |
+
var e = d[b],
|
1702 |
+
k = e.animatable,
|
1703 |
+
h = e.tweens,
|
1704 |
+
n = h.length - 1,
|
1705 |
+
l = h[n];n && (l = r(h, function (b) {
|
1706 |
+
return a < b.end;
|
1707 |
+
})[0] || l);for (var h = Math.min(Math.max(a - l.start - l.delay, 0), l.duration) / l.duration, w = isNaN(h) ? 1 : l.easing(h, l.elasticity), h = l.to.strings, p = l.round, n = [], m = void 0, m = l.to.numbers.length, t = 0; t < m; t++) {
|
1708 |
+
var x = void 0,
|
1709 |
+
x = l.to.numbers[t],
|
1710 |
+
q = l.from.numbers[t],
|
1711 |
+
x = l.isPath ? Y(l.value, w * x) : q + w * (x - q);p && (l.isColor && 2 < t || (x = Math.round(x * p) / p));n.push(x);
|
1712 |
+
}if (l = h.length) for (m = h[0], w = 0; w < l; w++) {
|
1713 |
+
p = h[w + 1], t = n[w], isNaN(t) || (m = p ? m + (t + p) : m + (t + " "));
|
1714 |
+
} else m = n[0];ha[e.type](k.target, e.property, m, c, k.id);e.currentValue = m;b++;
|
1715 |
+
}if (b = Object.keys(c).length) for (d = 0; d < b; d++) {
|
1716 |
+
H || (H = E(document.body, "transform") ? "transform" : "-webkit-transform"), g.animatables[d].target.style[H] = c[d].join(" ");
|
1717 |
+
}g.currentTime = a;g.progress = a / g.duration * 100;
|
1718 |
+
}function f(a) {
|
1719 |
+
if (g[a]) g[a](g);
|
1720 |
+
}function e() {
|
1721 |
+
g.remaining && !0 !== g.remaining && g.remaining--;
|
1722 |
+
}function k(a) {
|
1723 |
+
var k = g.duration,
|
1724 |
+
n = g.offset,
|
1725 |
+
w = n + g.delay,
|
1726 |
+
r = g.currentTime,
|
1727 |
+
x = g.reversed,
|
1728 |
+
q = d(a);if (g.children.length) {
|
1729 |
+
var u = g.children,
|
1730 |
+
v = u.length;
|
1731 |
+
if (q >= g.currentTime) for (var G = 0; G < v; G++) {
|
1732 |
+
u[G].seek(q);
|
1733 |
+
} else for (; v--;) {
|
1734 |
+
u[v].seek(q);
|
1735 |
+
}
|
1736 |
+
}if (q >= w || !k) g.began || (g.began = !0, f("begin")), f("run");if (q > n && q < k) b(q);else if (q <= n && 0 !== r && (b(0), x && e()), q >= k && r !== k || !k) b(k), x || e();f("update");a >= k && (g.remaining ? (t = h, "alternate" === g.direction && (g.reversed = !g.reversed)) : (g.pause(), g.completed || (g.completed = !0, f("complete"), "Promise" in window && (p(), m = c()))), l = 0);
|
1737 |
+
}a = void 0 === a ? {} : a;var h,
|
1738 |
+
t,
|
1739 |
+
l = 0,
|
1740 |
+
p = null,
|
1741 |
+
m = c(),
|
1742 |
+
g = fa(a);g.reset = function () {
|
1743 |
+
var a = g.direction,
|
1744 |
+
c = g.loop;g.currentTime = 0;g.progress = 0;g.paused = !0;g.began = !1;g.completed = !1;g.reversed = "reverse" === a;g.remaining = "alternate" === a && 1 === c ? 2 : c;b(0);for (a = g.children.length; a--;) {
|
1745 |
+
g.children[a].reset();
|
1746 |
+
}
|
1747 |
+
};g.tick = function (a) {
|
1748 |
+
h = a;t || (t = h);k((l + h - t) * q.speed);
|
1749 |
+
};g.seek = function (a) {
|
1750 |
+
k(d(a));
|
1751 |
+
};g.pause = function () {
|
1752 |
+
var a = v.indexOf(g);-1 < a && v.splice(a, 1);g.paused = !0;
|
1753 |
+
};g.play = function () {
|
1754 |
+
g.paused && (g.paused = !1, t = 0, l = d(g.currentTime), v.push(g), B || ia());
|
1755 |
+
};g.reverse = function () {
|
1756 |
+
g.reversed = !g.reversed;t = 0;l = d(g.currentTime);
|
1757 |
+
};g.restart = function () {
|
1758 |
+
g.pause();
|
1759 |
+
g.reset();g.play();
|
1760 |
+
};g.finished = m;g.reset();g.autoplay && g.play();return g;
|
1761 |
+
}var ga = { update: void 0, begin: void 0, run: void 0, complete: void 0, loop: 1, direction: "normal", autoplay: !0, offset: 0 },
|
1762 |
+
S = { duration: 1E3, delay: 0, easing: "easeOutElastic", elasticity: 500, round: 0 },
|
1763 |
+
W = "translateX translateY translateZ rotate rotateX rotateY rotateZ scale scaleX scaleY scaleZ skewX skewY perspective".split(" "),
|
1764 |
+
H,
|
1765 |
+
h = { arr: function (a) {
|
1766 |
+
return Array.isArray(a);
|
1767 |
+
}, obj: function (a) {
|
1768 |
+
return -1 < Object.prototype.toString.call(a).indexOf("Object");
|
1769 |
+
},
|
1770 |
+
pth: function (a) {
|
1771 |
+
return h.obj(a) && a.hasOwnProperty("totalLength");
|
1772 |
+
}, svg: function (a) {
|
1773 |
+
return a instanceof SVGElement;
|
1774 |
+
}, dom: function (a) {
|
1775 |
+
return a.nodeType || h.svg(a);
|
1776 |
+
}, str: function (a) {
|
1777 |
+
return "string" === typeof a;
|
1778 |
+
}, fnc: function (a) {
|
1779 |
+
return "function" === typeof a;
|
1780 |
+
}, und: function (a) {
|
1781 |
+
return "undefined" === typeof a;
|
1782 |
+
}, hex: function (a) {
|
1783 |
+
return (/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a)
|
1784 |
+
);
|
1785 |
+
}, rgb: function (a) {
|
1786 |
+
return (/^rgb/.test(a)
|
1787 |
+
);
|
1788 |
+
}, hsl: function (a) {
|
1789 |
+
return (/^hsl/.test(a)
|
1790 |
+
);
|
1791 |
+
}, col: function (a) {
|
1792 |
+
return h.hex(a) || h.rgb(a) || h.hsl(a);
|
1793 |
+
} },
|
1794 |
+
A = function () {
|
1795 |
+
function a(a, d, b) {
|
1796 |
+
return (((1 - 3 * b + 3 * d) * a + (3 * b - 6 * d)) * a + 3 * d) * a;
|
1797 |
+
}return function (c, d, b, f) {
|
1798 |
+
if (0 <= c && 1 >= c && 0 <= b && 1 >= b) {
|
1799 |
+
var e = new Float32Array(11);if (c !== d || b !== f) for (var k = 0; 11 > k; ++k) {
|
1800 |
+
e[k] = a(.1 * k, c, b);
|
1801 |
+
}return function (k) {
|
1802 |
+
if (c === d && b === f) return k;if (0 === k) return 0;if (1 === k) return 1;for (var h = 0, l = 1; 10 !== l && e[l] <= k; ++l) {
|
1803 |
+
h += .1;
|
1804 |
+
}--l;var l = h + (k - e[l]) / (e[l + 1] - e[l]) * .1,
|
1805 |
+
n = 3 * (1 - 3 * b + 3 * c) * l * l + 2 * (3 * b - 6 * c) * l + 3 * c;if (.001 <= n) {
|
1806 |
+
for (h = 0; 4 > h; ++h) {
|
1807 |
+
n = 3 * (1 - 3 * b + 3 * c) * l * l + 2 * (3 * b - 6 * c) * l + 3 * c;if (0 === n) break;var m = a(l, c, b) - k,
|
1808 |
+
l = l - m / n;
|
1809 |
+
}k = l;
|
1810 |
+
} else if (0 === n) k = l;else {
|
1811 |
+
var l = h,
|
1812 |
+
h = h + .1,
|
1813 |
+
g = 0;do {
|
1814 |
+
m = l + (h - l) / 2, n = a(m, c, b) - k, 0 < n ? h = m : l = m;
|
1815 |
+
} while (1e-7 < Math.abs(n) && 10 > ++g);k = m;
|
1816 |
+
}return a(k, d, f);
|
1817 |
+
};
|
1818 |
+
}
|
1819 |
+
};
|
1820 |
+
}(),
|
1821 |
+
Q = function () {
|
1822 |
+
function a(a, b) {
|
1823 |
+
return 0 === a || 1 === a ? a : -Math.pow(2, 10 * (a - 1)) * Math.sin(2 * (a - 1 - b / (2 * Math.PI) * Math.asin(1)) * Math.PI / b);
|
1824 |
+
}var c = "Quad Cubic Quart Quint Sine Expo Circ Back Elastic".split(" "),
|
1825 |
+
d = { In: [[.55, .085, .68, .53], [.55, .055, .675, .19], [.895, .03, .685, .22], [.755, .05, .855, .06], [.47, 0, .745, .715], [.95, .05, .795, .035], [.6, .04, .98, .335], [.6, -.28, .735, .045], a], Out: [[.25, .46, .45, .94], [.215, .61, .355, 1], [.165, .84, .44, 1], [.23, 1, .32, 1], [.39, .575, .565, 1], [.19, 1, .22, 1], [.075, .82, .165, 1], [.175, .885, .32, 1.275], function (b, c) {
|
1826 |
+
return 1 - a(1 - b, c);
|
1827 |
+
}], InOut: [[.455, .03, .515, .955], [.645, .045, .355, 1], [.77, 0, .175, 1], [.86, 0, .07, 1], [.445, .05, .55, .95], [1, 0, 0, 1], [.785, .135, .15, .86], [.68, -.55, .265, 1.55], function (b, c) {
|
1828 |
+
return .5 > b ? a(2 * b, c) / 2 : 1 - a(-2 * b + 2, c) / 2;
|
1829 |
+
}] },
|
1830 |
+
b = { linear: A(.25, .25, .75, .75) },
|
1831 |
+
f = {},
|
1832 |
+
e;for (e in d) {
|
1833 |
+
f.type = e, d[f.type].forEach(function (a) {
|
1834 |
+
return function (d, f) {
|
1835 |
+
b["ease" + a.type + c[f]] = h.fnc(d) ? d : A.apply($jscomp$this, d);
|
1836 |
+
};
|
1837 |
+
}(f)), f = { type: f.type };
|
1838 |
+
}return b;
|
1839 |
+
}(),
|
1840 |
+
ha = { css: function (a, c, d) {
|
1841 |
+
return a.style[c] = d;
|
1842 |
+
}, attribute: function (a, c, d) {
|
1843 |
+
return a.setAttribute(c, d);
|
1844 |
+
}, object: function (a, c, d) {
|
1845 |
+
return a[c] = d;
|
1846 |
+
}, transform: function (a, c, d, b, f) {
|
1847 |
+
b[f] || (b[f] = []);b[f].push(c + "(" + d + ")");
|
1848 |
+
} },
|
1849 |
+
v = [],
|
1850 |
+
B = 0,
|
1851 |
+
ia = function () {
|
1852 |
+
function a() {
|
1853 |
+
B = requestAnimationFrame(c);
|
1854 |
+
}function c(c) {
|
1855 |
+
var b = v.length;if (b) {
|
1856 |
+
for (var d = 0; d < b;) {
|
1857 |
+
v[d] && v[d].tick(c), d++;
|
1858 |
+
}a();
|
1859 |
+
} else cancelAnimationFrame(B), B = 0;
|
1860 |
+
}return a;
|
1861 |
+
}();q.version = "2.2.0";q.speed = 1;q.running = v;q.remove = function (a) {
|
1862 |
+
a = P(a);for (var c = v.length; c--;) {
|
1863 |
+
for (var d = v[c], b = d.animations, f = b.length; f--;) {
|
1864 |
+
u(a, b[f].animatable.target) && (b.splice(f, 1), b.length || d.pause());
|
1865 |
+
}
|
1866 |
+
}
|
1867 |
+
};q.getValue = K;q.path = function (a, c) {
|
1868 |
+
var d = h.str(a) ? e(a)[0] : a,
|
1869 |
+
b = c || 100;return function (a) {
|
1870 |
+
return { el: d, property: a, totalLength: N(d) * (b / 100) };
|
1871 |
+
};
|
1872 |
+
};q.setDashoffset = function (a) {
|
1873 |
+
var c = N(a);a.setAttribute("stroke-dasharray", c);return c;
|
1874 |
+
};q.bezier = A;q.easings = Q;q.timeline = function (a) {
|
1875 |
+
var c = q(a);c.pause();c.duration = 0;c.add = function (d) {
|
1876 |
+
c.children.forEach(function (a) {
|
1877 |
+
a.began = !0;a.completed = !0;
|
1878 |
+
});m(d).forEach(function (b) {
|
1879 |
+
var d = z(b, D(S, a || {}));d.targets = d.targets || a.targets;b = c.duration;var e = d.offset;d.autoplay = !1;d.direction = c.direction;d.offset = h.und(e) ? b : L(e, b);c.began = !0;c.completed = !0;c.seek(d.offset);d = q(d);d.began = !0;d.completed = !0;d.duration > b && (c.duration = d.duration);c.children.push(d);
|
1880 |
+
});c.seek(0);c.reset();c.autoplay && c.restart();return c;
|
1881 |
+
};return c;
|
1882 |
+
};q.random = function (a, c) {
|
1883 |
+
return Math.floor(Math.random() * (c - a + 1)) + a;
|
1884 |
+
};return q;
|
1885 |
+
});
|
1886 |
+
;(function ($, anim) {
|
1887 |
+
'use strict';
|
1888 |
+
|
1889 |
+
var _defaults = {
|
1890 |
+
accordion: true,
|
1891 |
+
onOpenStart: undefined,
|
1892 |
+
onOpenEnd: undefined,
|
1893 |
+
onCloseStart: undefined,
|
1894 |
+
onCloseEnd: undefined,
|
1895 |
+
inDuration: 300,
|
1896 |
+
outDuration: 300
|
1897 |
+
};
|
1898 |
+
|
1899 |
+
/**
|
1900 |
+
* @class
|
1901 |
+
*
|
1902 |
+
*/
|
1903 |
+
|
1904 |
+
var Collapsible = function (_Component) {
|
1905 |
+
_inherits(Collapsible, _Component);
|
1906 |
+
|
1907 |
+
/**
|
1908 |
+
* Construct Collapsible instance
|
1909 |
+
* @constructor
|
1910 |
+
* @param {Element} el
|
1911 |
+
* @param {Object} options
|
1912 |
+
*/
|
1913 |
+
function Collapsible(el, options) {
|
1914 |
+
_classCallCheck(this, Collapsible);
|
1915 |
+
|
1916 |
+
var _this3 = _possibleConstructorReturn(this, (Collapsible.__proto__ || Object.getPrototypeOf(Collapsible)).call(this, Collapsible, el, options));
|
1917 |
+
|
1918 |
+
_this3.el.M_Collapsible = _this3;
|
1919 |
+
|
1920 |
+
/**
|
1921 |
+
* Options for the collapsible
|
1922 |
+
* @member Collapsible#options
|
1923 |
+
* @prop {Boolean} [accordion=false] - Type of the collapsible
|
1924 |
+
* @prop {Function} onOpenStart - Callback function called before collapsible is opened
|
1925 |
+
* @prop {Function} onOpenEnd - Callback function called after collapsible is opened
|
1926 |
+
* @prop {Function} onCloseStart - Callback function called before collapsible is closed
|
1927 |
+
* @prop {Function} onCloseEnd - Callback function called after collapsible is closed
|
1928 |
+
* @prop {Number} inDuration - Transition in duration in milliseconds.
|
1929 |
+
* @prop {Number} outDuration - Transition duration in milliseconds.
|
1930 |
+
*/
|
1931 |
+
_this3.options = $.extend({}, Collapsible.defaults, options);
|
1932 |
+
|
1933 |
+
// Setup tab indices
|
1934 |
+
_this3.$headers = _this3.$el.children('li').children('.collapsible-header');
|
1935 |
+
_this3.$headers.attr('tabindex', 0);
|
1936 |
+
|
1937 |
+
_this3._setupEventHandlers();
|
1938 |
+
|
1939 |
+
// Open first active
|
1940 |
+
var $activeBodies = _this3.$el.children('li.active').children('.collapsible-body');
|
1941 |
+
if (_this3.options.accordion) {
|
1942 |
+
// Handle Accordion
|
1943 |
+
$activeBodies.first().css('display', 'block');
|
1944 |
+
} else {
|
1945 |
+
// Handle Expandables
|
1946 |
+
$activeBodies.css('display', 'block');
|
1947 |
+
}
|
1948 |
+
return _this3;
|
1949 |
+
}
|
1950 |
+
|
1951 |
+
_createClass(Collapsible, [{
|
1952 |
+
key: "destroy",
|
1953 |
+
|
1954 |
+
|
1955 |
+
/**
|
1956 |
+
* Teardown component
|
1957 |
+
*/
|
1958 |
+
value: function destroy() {
|
1959 |
+
this._removeEventHandlers();
|
1960 |
+
this.el.M_Collapsible = undefined;
|
1961 |
+
}
|
1962 |
+
|
1963 |
+
/**
|
1964 |
+
* Setup Event Handlers
|
1965 |
+
*/
|
1966 |
+
|
1967 |
+
}, {
|
1968 |
+
key: "_setupEventHandlers",
|
1969 |
+
value: function _setupEventHandlers() {
|
1970 |
+
var _this4 = this;
|
1971 |
+
|
1972 |
+
this._handleCollapsibleClickBound = this._handleCollapsibleClick.bind(this);
|
1973 |
+
this._handleCollapsibleKeydownBound = this._handleCollapsibleKeydown.bind(this);
|
1974 |
+
this.el.addEventListener('click', this._handleCollapsibleClickBound);
|
1975 |
+
this.$headers.each(function (header) {
|
1976 |
+
header.addEventListener('keydown', _this4._handleCollapsibleKeydownBound);
|
1977 |
+
});
|
1978 |
+
}
|
1979 |
+
|
1980 |
+
/**
|
1981 |
+
* Remove Event Handlers
|
1982 |
+
*/
|
1983 |
+
|
1984 |
+
}, {
|
1985 |
+
key: "_removeEventHandlers",
|
1986 |
+
value: function _removeEventHandlers() {
|
1987 |
+
var _this5 = this;
|
1988 |
+
|
1989 |
+
this.el.removeEventListener('click', this._handleCollapsibleClickBound);
|
1990 |
+
this.$headers.each(function (header) {
|
1991 |
+
header.removeEventListener('keydown', _this5._handleCollapsibleKeydownBound);
|
1992 |
+
});
|
1993 |
+
}
|
1994 |
+
|
1995 |
+
/**
|
1996 |
+
* Handle Collapsible Click
|
1997 |
+
* @param {Event} e
|
1998 |
+
*/
|
1999 |
+
|
2000 |
+
}, {
|
2001 |
+
key: "_handleCollapsibleClick",
|
2002 |
+
value: function _handleCollapsibleClick(e) {
|
2003 |
+
var $header = $(e.target).closest('.collapsible-header');
|
2004 |
+
if (e.target && $header.length) {
|
2005 |
+
var $collapsible = $header.closest('.collapsible');
|
2006 |
+
if ($collapsible[0] === this.el) {
|
2007 |
+
var $collapsibleLi = $header.closest('li');
|
2008 |
+
var $collapsibleLis = $collapsible.children('li');
|
2009 |
+
var isActive = $collapsibleLi[0].classList.contains('active');
|
2010 |
+
var index = $collapsibleLis.index($collapsibleLi);
|
2011 |
+
|
2012 |
+
if (isActive) {
|
2013 |
+
this.close(index);
|
2014 |
+
} else {
|
2015 |
+
this.open(index);
|
2016 |
+
}
|
2017 |
+
}
|
2018 |
+
}
|
2019 |
+
}
|
2020 |
+
|
2021 |
+
/**
|
2022 |
+
* Handle Collapsible Keydown
|
2023 |
+
* @param {Event} e
|
2024 |
+
*/
|
2025 |
+
|
2026 |
+
}, {
|
2027 |
+
key: "_handleCollapsibleKeydown",
|
2028 |
+
value: function _handleCollapsibleKeydown(e) {
|
2029 |
+
if (e.keyCode === 13) {
|
2030 |
+
this._handleCollapsibleClickBound(e);
|
2031 |
+
}
|
2032 |
+
}
|
2033 |
+
|
2034 |
+
/**
|
2035 |
+
* Animate in collapsible slide
|
2036 |
+
* @param {Number} index - 0th index of slide
|
2037 |
+
*/
|
2038 |
+
|
2039 |
+
}, {
|
2040 |
+
key: "_animateIn",
|
2041 |
+
value: function _animateIn(index) {
|
2042 |
+
var _this6 = this;
|
2043 |
+
|
2044 |
+
var $collapsibleLi = this.$el.children('li').eq(index);
|
2045 |
+
if ($collapsibleLi.length) {
|
2046 |
+
var $body = $collapsibleLi.children('.collapsible-body');
|
2047 |
+
|
2048 |
+
anim.remove($body[0]);
|
2049 |
+
$body.css({
|
2050 |
+
display: 'block',
|
2051 |
+
overflow: 'hidden',
|
2052 |
+
height: 0,
|
2053 |
+
paddingTop: '',
|
2054 |
+
paddingBottom: ''
|
2055 |
+
});
|
2056 |
+
|
2057 |
+
var pTop = $body.css('padding-top');
|
2058 |
+
var pBottom = $body.css('padding-bottom');
|
2059 |
+
var finalHeight = $body[0].scrollHeight;
|
2060 |
+
$body.css({
|
2061 |
+
paddingTop: 0,
|
2062 |
+
paddingBottom: 0
|
2063 |
+
});
|
2064 |
+
|
2065 |
+
anim({
|
2066 |
+
targets: $body[0],
|
2067 |
+
height: finalHeight,
|
2068 |
+
paddingTop: pTop,
|
2069 |
+
paddingBottom: pBottom,
|
2070 |
+
duration: this.options.inDuration,
|
2071 |
+
easing: 'easeInOutCubic',
|
2072 |
+
complete: function (anim) {
|
2073 |
+
$body.css({
|
2074 |
+
overflow: '',
|
2075 |
+
paddingTop: '',
|
2076 |
+
paddingBottom: '',
|
2077 |
+
height: ''
|
2078 |
+
});
|
2079 |
+
|
2080 |
+
// onOpenEnd callback
|
2081 |
+
if (typeof _this6.options.onOpenEnd === 'function') {
|
2082 |
+
_this6.options.onOpenEnd.call(_this6, $collapsibleLi[0]);
|
2083 |
+
}
|
2084 |
+
}
|
2085 |
+
});
|
2086 |
+
}
|
2087 |
+
}
|
2088 |
+
|
2089 |
+
/**
|
2090 |
+
* Animate out collapsible slide
|
2091 |
+
* @param {Number} index - 0th index of slide to open
|
2092 |
+
*/
|
2093 |
+
|
2094 |
+
}, {
|
2095 |
+
key: "_animateOut",
|
2096 |
+
value: function _animateOut(index) {
|
2097 |
+
var _this7 = this;
|
2098 |
+
|
2099 |
+
var $collapsibleLi = this.$el.children('li').eq(index);
|
2100 |
+
if ($collapsibleLi.length) {
|
2101 |
+
var $body = $collapsibleLi.children('.collapsible-body');
|
2102 |
+
anim.remove($body[0]);
|
2103 |
+
$body.css('overflow', 'hidden');
|
2104 |
+
anim({
|
2105 |
+
targets: $body[0],
|
2106 |
+
height: 0,
|
2107 |
+
paddingTop: 0,
|
2108 |
+
paddingBottom: 0,
|
2109 |
+
duration: this.options.outDuration,
|
2110 |
+
easing: 'easeInOutCubic',
|
2111 |
+
complete: function () {
|
2112 |
+
$body.css({
|
2113 |
+
height: '',
|
2114 |
+
overflow: '',
|
2115 |
+
padding: '',
|
2116 |
+
display: ''
|
2117 |
+
});
|
2118 |
+
|
2119 |
+
// onCloseEnd callback
|
2120 |
+
if (typeof _this7.options.onCloseEnd === 'function') {
|
2121 |
+
_this7.options.onCloseEnd.call(_this7, $collapsibleLi[0]);
|
2122 |
+
}
|
2123 |
+
}
|
2124 |
+
});
|
2125 |
+
}
|
2126 |
+
}
|
2127 |
+
|
2128 |
+
/**
|
2129 |
+
* Open Collapsible
|
2130 |
+
* @param {Number} index - 0th index of slide
|
2131 |
+
*/
|
2132 |
+
|
2133 |
+
}, {
|
2134 |
+
key: "open",
|
2135 |
+
value: function open(index) {
|
2136 |
+
var _this8 = this;
|
2137 |
+
|
2138 |
+
var $collapsibleLi = this.$el.children('li').eq(index);
|
2139 |
+
if ($collapsibleLi.length && !$collapsibleLi[0].classList.contains('active')) {
|
2140 |
+
// onOpenStart callback
|
2141 |
+
if (typeof this.options.onOpenStart === 'function') {
|
2142 |
+
this.options.onOpenStart.call(this, $collapsibleLi[0]);
|
2143 |
+
}
|
2144 |
+
|
2145 |
+
// Handle accordion behavior
|
2146 |
+
if (this.options.accordion) {
|
2147 |
+
var $collapsibleLis = this.$el.children('li');
|
2148 |
+
var $activeLis = this.$el.children('li.active');
|
2149 |
+
$activeLis.each(function (el) {
|
2150 |
+
var index = $collapsibleLis.index($(el));
|
2151 |
+
_this8.close(index);
|
2152 |
+
});
|
2153 |
+
}
|
2154 |
+
|
2155 |
+
// Animate in
|
2156 |
+
$collapsibleLi[0].classList.add('active');
|
2157 |
+
this._animateIn(index);
|
2158 |
+
}
|
2159 |
+
}
|
2160 |
+
|
2161 |
+
/**
|
2162 |
+
* Close Collapsible
|
2163 |
+
* @param {Number} index - 0th index of slide
|
2164 |
+
*/
|
2165 |
+
|
2166 |
+
}, {
|
2167 |
+
key: "close",
|
2168 |
+
value: function close(index) {
|
2169 |
+
var $collapsibleLi = this.$el.children('li').eq(index);
|
2170 |
+
if ($collapsibleLi.length && $collapsibleLi[0].classList.contains('active')) {
|
2171 |
+
// onCloseStart callback
|
2172 |
+
if (typeof this.options.onCloseStart === 'function') {
|
2173 |
+
this.options.onCloseStart.call(this, $collapsibleLi[0]);
|
2174 |
+
}
|
2175 |
+
|
2176 |
+
// Animate out
|
2177 |
+
$collapsibleLi[0].classList.remove('active');
|
2178 |
+
this._animateOut(index);
|
2179 |
+
}
|
2180 |
+
}
|
2181 |
+
}], [{
|
2182 |
+
key: "init",
|
2183 |
+
value: function init(els, options) {
|
2184 |
+
return _get(Collapsible.__proto__ || Object.getPrototypeOf(Collapsible), "init", this).call(this, this, els, options);
|
2185 |
+
}
|
2186 |
+
|
2187 |
+
/**
|
2188 |
+
* Get Instance
|
2189 |
+
*/
|
2190 |
+
|
2191 |
+
}, {
|
2192 |
+
key: "getInstance",
|
2193 |
+
value: function getInstance(el) {
|
2194 |
+
var domElem = !!el.jquery ? el[0] : el;
|
2195 |
+
return domElem.M_Collapsible;
|
2196 |
+
}
|
2197 |
+
}, {
|
2198 |
+
key: "defaults",
|
2199 |
+
get: function () {
|
2200 |
+
return _defaults;
|
2201 |
+
}
|
2202 |
+
}]);
|
2203 |
+
|
2204 |
+
return Collapsible;
|
2205 |
+
}(Component);
|
2206 |
+
|
2207 |
+
M.Collapsible = Collapsible;
|
2208 |
+
|
2209 |
+
if (M.jQueryLoaded) {
|
2210 |
+
M.initializeJqueryWrapper(Collapsible, 'collapsible', 'M_Collapsible');
|
2211 |
+
}
|
2212 |
+
})(cash, M.anime);
|
2213 |
+
;(function ($, anim) {
|
2214 |
+
'use strict';
|
2215 |
+
|
2216 |
+
var _defaults = {
|
2217 |
+
alignment: 'left',
|
2218 |
+
autoFocus: true,
|
2219 |
+
constrainWidth: true,
|
2220 |
+
container: null,
|
2221 |
+
coverTrigger: true,
|
2222 |
+
closeOnClick: true,
|
2223 |
+
hover: false,
|
2224 |
+
inDuration: 150,
|
2225 |
+
outDuration: 250,
|
2226 |
+
onOpenStart: null,
|
2227 |
+
onOpenEnd: null,
|
2228 |
+
onCloseStart: null,
|
2229 |
+
onCloseEnd: null,
|
2230 |
+
onItemClick: null
|
2231 |
+
};
|
2232 |
+
|
2233 |
+
/**
|
2234 |
+
* @class
|
2235 |
+
*/
|
2236 |
+
|
2237 |
+
var Dropdown = function (_Component2) {
|
2238 |
+
_inherits(Dropdown, _Component2);
|
2239 |
+
|
2240 |
+
function Dropdown(el, options) {
|
2241 |
+
_classCallCheck(this, Dropdown);
|
2242 |
+
|
2243 |
+
var _this9 = _possibleConstructorReturn(this, (Dropdown.__proto__ || Object.getPrototypeOf(Dropdown)).call(this, Dropdown, el, options));
|
2244 |
+
|
2245 |
+
_this9.el.M_Dropdown = _this9;
|
2246 |
+
Dropdown._dropdowns.push(_this9);
|
2247 |
+
|
2248 |
+
_this9.id = M.getIdFromTrigger(el);
|
2249 |
+
_this9.dropdownEl = document.getElementById(_this9.id);
|
2250 |
+
_this9.$dropdownEl = $(_this9.dropdownEl);
|
2251 |
+
|
2252 |
+
/**
|
2253 |
+
* Options for the dropdown
|
2254 |
+
* @member Dropdown#options
|
2255 |
+
* @prop {String} [alignment='left'] - Edge which the dropdown is aligned to
|
2256 |
+
* @prop {Boolean} [autoFocus=true] - Automatically focus dropdown el for keyboard
|
2257 |
+
* @prop {Boolean} [constrainWidth=true] - Constrain width to width of the button
|
2258 |
+
* @prop {Element} container - Container element to attach dropdown to (optional)
|
2259 |
+
* @prop {Boolean} [coverTrigger=true] - Place dropdown over trigger
|
2260 |
+
* @prop {Boolean} [closeOnClick=true] - Close on click of dropdown item
|
2261 |
+
* @prop {Boolean} [hover=false] - Open dropdown on hover
|
2262 |
+
* @prop {Number} [inDuration=150] - Duration of open animation in ms
|
2263 |
+
* @prop {Number} [outDuration=250] - Duration of close animation in ms
|
2264 |
+
* @prop {Function} onOpenStart - Function called when dropdown starts opening
|
2265 |
+
* @prop {Function} onOpenEnd - Function called when dropdown finishes opening
|
2266 |
+
* @prop {Function} onCloseStart - Function called when dropdown starts closing
|
2267 |
+
* @prop {Function} onCloseEnd - Function called when dropdown finishes closing
|
2268 |
+
*/
|
2269 |
+
_this9.options = $.extend({}, Dropdown.defaults, options);
|
2270 |
+
|
2271 |
+
/**
|
2272 |
+
* Describes open/close state of dropdown
|
2273 |
+
* @type {Boolean}
|
2274 |
+
*/
|
2275 |
+
_this9.isOpen = false;
|
2276 |
+
|
2277 |
+
/**
|
2278 |
+
* Describes if dropdown content is scrollable
|
2279 |
+
* @type {Boolean}
|
2280 |
+
*/
|
2281 |
+
_this9.isScrollable = false;
|
2282 |
+
|
2283 |
+
/**
|
2284 |
+
* Describes if touch moving on dropdown content
|
2285 |
+
* @type {Boolean}
|
2286 |
+
*/
|
2287 |
+
_this9.isTouchMoving = false;
|
2288 |
+
|
2289 |
+
_this9.focusedIndex = -1;
|
2290 |
+
_this9.filterQuery = [];
|
2291 |
+
|
2292 |
+
// Move dropdown-content after dropdown-trigger
|
2293 |
+
if (!!_this9.options.container) {
|
2294 |
+
$(_this9.options.container).append(_this9.dropdownEl);
|
2295 |
+
} else {
|
2296 |
+
_this9.$el.after(_this9.dropdownEl);
|
2297 |
+
}
|
2298 |
+
|
2299 |
+
_this9._makeDropdownFocusable();
|
2300 |
+
_this9._resetFilterQueryBound = _this9._resetFilterQuery.bind(_this9);
|
2301 |
+
_this9._handleDocumentClickBound = _this9._handleDocumentClick.bind(_this9);
|
2302 |
+
_this9._handleDocumentTouchmoveBound = _this9._handleDocumentTouchmove.bind(_this9);
|
2303 |
+
_this9._handleDropdownClickBound = _this9._handleDropdownClick.bind(_this9);
|
2304 |
+
_this9._handleDropdownKeydownBound = _this9._handleDropdownKeydown.bind(_this9);
|
2305 |
+
_this9._handleTriggerKeydownBound = _this9._handleTriggerKeydown.bind(_this9);
|
2306 |
+
_this9._setupEventHandlers();
|
2307 |
+
return _this9;
|
2308 |
+
}
|
2309 |
+
|
2310 |
+
_createClass(Dropdown, [{
|
2311 |
+
key: "destroy",
|
2312 |
+
|
2313 |
+
|
2314 |
+
/**
|
2315 |
+
* Teardown component
|
2316 |
+
*/
|
2317 |
+
value: function destroy() {
|
2318 |
+
this._resetDropdownStyles();
|
2319 |
+
this._removeEventHandlers();
|
2320 |
+
Dropdown._dropdowns.splice(Dropdown._dropdowns.indexOf(this), 1);
|
2321 |
+
this.el.M_Dropdown = undefined;
|
2322 |
+
}
|
2323 |
+
|
2324 |
+
/**
|
2325 |
+
* Setup Event Handlers
|
2326 |
+
*/
|
2327 |
+
|
2328 |
+
}, {
|
2329 |
+
key: "_setupEventHandlers",
|
2330 |
+
value: function _setupEventHandlers() {
|
2331 |
+
// Trigger keydown handler
|
2332 |
+
this.el.addEventListener('keydown', this._handleTriggerKeydownBound);
|
2333 |
+
|
2334 |
+
// Item click handler
|
2335 |
+
this.dropdownEl.addEventListener('click', this._handleDropdownClickBound);
|
2336 |
+
|
2337 |
+
// Hover event handlers
|
2338 |
+
if (this.options.hover) {
|
2339 |
+
this._handleMouseEnterBound = this._handleMouseEnter.bind(this);
|
2340 |
+
this.el.addEventListener('mouseenter', this._handleMouseEnterBound);
|
2341 |
+
this._handleMouseLeaveBound = this._handleMouseLeave.bind(this);
|
2342 |
+
this.el.addEventListener('mouseleave', this._handleMouseLeaveBound);
|
2343 |
+
this.dropdownEl.addEventListener('mouseleave', this._handleMouseLeaveBound);
|
2344 |
+
|
2345 |
+
// Click event handlers
|
2346 |
+
} else {
|
2347 |
+
this._handleClickBound = this._handleClick.bind(this);
|
2348 |
+
this.el.addEventListener('click', this._handleClickBound);
|
2349 |
+
}
|
2350 |
+
}
|
2351 |
+
|
2352 |
+
/**
|
2353 |
+
* Remove Event Handlers
|
2354 |
+
*/
|
2355 |
+
|
2356 |
+
}, {
|
2357 |
+
key: "_removeEventHandlers",
|
2358 |
+
value: function _removeEventHandlers() {
|
2359 |
+
this.el.removeEventListener('keydown', this._handleTriggerKeydownBound);
|
2360 |
+
this.dropdownEl.removeEventListener('click', this._handleDropdownClickBound);
|
2361 |
+
|
2362 |
+
if (this.options.hover) {
|
2363 |
+
this.el.removeEventListener('mouseenter', this._handleMouseEnterBound);
|
2364 |
+
this.el.removeEventListener('mouseleave', this._handleMouseLeaveBound);
|
2365 |
+
this.dropdownEl.removeEventListener('mouseleave', this._handleMouseLeaveBound);
|
2366 |
+
} else {
|
2367 |
+
this.el.removeEventListener('click', this._handleClickBound);
|
2368 |
+
}
|
2369 |
+
}
|
2370 |
+
}, {
|
2371 |
+
key: "_setupTemporaryEventHandlers",
|
2372 |
+
value: function _setupTemporaryEventHandlers() {
|
2373 |
+
// Use capture phase event handler to prevent click
|
2374 |
+
document.body.addEventListener('click', this._handleDocumentClickBound, true);
|
2375 |
+
document.body.addEventListener('touchend', this._handleDocumentClickBound);
|
2376 |
+
document.body.addEventListener('touchmove', this._handleDocumentTouchmoveBound);
|
2377 |
+
this.dropdownEl.addEventListener('keydown', this._handleDropdownKeydownBound);
|
2378 |
+
}
|
2379 |
+
}, {
|
2380 |
+
key: "_removeTemporaryEventHandlers",
|
2381 |
+
value: function _removeTemporaryEventHandlers() {
|
2382 |
+
// Use capture phase event handler to prevent click
|
2383 |
+
document.body.removeEventListener('click', this._handleDocumentClickBound, true);
|
2384 |
+
document.body.removeEventListener('touchend', this._handleDocumentClickBound);
|
2385 |
+
document.body.removeEventListener('touchmove', this._handleDocumentTouchmoveBound);
|
2386 |
+
this.dropdownEl.removeEventListener('keydown', this._handleDropdownKeydownBound);
|
2387 |
+
}
|
2388 |
+
}, {
|
2389 |
+
key: "_handleClick",
|
2390 |
+
value: function _handleClick(e) {
|
2391 |
+
e.preventDefault();
|
2392 |
+
this.open();
|
2393 |
+
}
|
2394 |
+
}, {
|
2395 |
+
key: "_handleMouseEnter",
|
2396 |
+
value: function _handleMouseEnter() {
|
2397 |
+
this.open();
|
2398 |
+
}
|
2399 |
+
}, {
|
2400 |
+
key: "_handleMouseLeave",
|
2401 |
+
value: function _handleMouseLeave(e) {
|
2402 |
+
var toEl = e.toElement || e.relatedTarget;
|
2403 |
+
var leaveToDropdownContent = !!$(toEl).closest('.dropdown-content').length;
|
2404 |
+
var leaveToActiveDropdownTrigger = false;
|
2405 |
+
|
2406 |
+
var $closestTrigger = $(toEl).closest('.dropdown-trigger');
|
2407 |
+
if ($closestTrigger.length && !!$closestTrigger[0].M_Dropdown && $closestTrigger[0].M_Dropdown.isOpen) {
|
2408 |
+
leaveToActiveDropdownTrigger = true;
|
2409 |
+
}
|
2410 |
+
|
2411 |
+
// Close hover dropdown if mouse did not leave to either active dropdown-trigger or dropdown-content
|
2412 |
+
if (!leaveToActiveDropdownTrigger && !leaveToDropdownContent) {
|
2413 |
+
this.close();
|
2414 |
+
}
|
2415 |
+
}
|
2416 |
+
}, {
|
2417 |
+
key: "_handleDocumentClick",
|
2418 |
+
value: function _handleDocumentClick(e) {
|
2419 |
+
var _this10 = this;
|
2420 |
+
|
2421 |
+
var $target = $(e.target);
|
2422 |
+
if (this.options.closeOnClick && $target.closest('.dropdown-content').length && !this.isTouchMoving) {
|
2423 |
+
// isTouchMoving to check if scrolling on mobile.
|
2424 |
+
setTimeout(function () {
|
2425 |
+
_this10.close();
|
2426 |
+
}, 0);
|
2427 |
+
} else if ($target.closest('.dropdown-trigger').length || !$target.closest('.dropdown-content').length) {
|
2428 |
+
setTimeout(function () {
|
2429 |
+
_this10.close();
|
2430 |
+
}, 0);
|
2431 |
+
}
|
2432 |
+
this.isTouchMoving = false;
|
2433 |
+
}
|
2434 |
+
}, {
|
2435 |
+
key: "_handleTriggerKeydown",
|
2436 |
+
value: function _handleTriggerKeydown(e) {
|
2437 |
+
// ARROW DOWN OR ENTER WHEN SELECT IS CLOSED - open Dropdown
|
2438 |
+
if ((e.which === M.keys.ARROW_DOWN || e.which === M.keys.ENTER) && !this.isOpen) {
|
2439 |
+
e.preventDefault();
|
2440 |
+
this.open();
|
2441 |
+
}
|
2442 |
+
}
|
2443 |
+
|
2444 |
+
/**
|
2445 |
+
* Handle Document Touchmove
|
2446 |
+
* @param {Event} e
|
2447 |
+
*/
|
2448 |
+
|
2449 |
+
}, {
|
2450 |
+
key: "_handleDocumentTouchmove",
|
2451 |
+
value: function _handleDocumentTouchmove(e) {
|
2452 |
+
var $target = $(e.target);
|
2453 |
+
if ($target.closest('.dropdown-content').length) {
|
2454 |
+
this.isTouchMoving = true;
|
2455 |
+
}
|
2456 |
+
}
|
2457 |
+
|
2458 |
+
/**
|
2459 |
+
* Handle Dropdown Click
|
2460 |
+
* @param {Event} e
|
2461 |
+
*/
|
2462 |
+
|
2463 |
+
}, {
|
2464 |
+
key: "_handleDropdownClick",
|
2465 |
+
value: function _handleDropdownClick(e) {
|
2466 |
+
// onItemClick callback
|
2467 |
+
if (typeof this.options.onItemClick === 'function') {
|
2468 |
+
var itemEl = $(e.target).closest('li')[0];
|
2469 |
+
this.options.onItemClick.call(this, itemEl);
|
2470 |
+
}
|
2471 |
+
}
|
2472 |
+
|
2473 |
+
/**
|
2474 |
+
* Handle Dropdown Keydown
|
2475 |
+
* @param {Event} e
|
2476 |
+
*/
|
2477 |
+
|
2478 |
+
}, {
|
2479 |
+
key: "_handleDropdownKeydown",
|
2480 |
+
value: function _handleDropdownKeydown(e) {
|
2481 |
+
if (e.which === M.keys.TAB) {
|
2482 |
+
e.preventDefault();
|
2483 |
+
this.close();
|
2484 |
+
|
2485 |
+
// Navigate down dropdown list
|
2486 |
+
} else if ((e.which === M.keys.ARROW_DOWN || e.which === M.keys.ARROW_UP) && this.isOpen) {
|
2487 |
+
e.preventDefault();
|
2488 |
+
var direction = e.which === M.keys.ARROW_DOWN ? 1 : -1;
|
2489 |
+
var newFocusedIndex = this.focusedIndex;
|
2490 |
+
var foundNewIndex = false;
|
2491 |
+
do {
|
2492 |
+
newFocusedIndex = newFocusedIndex + direction;
|
2493 |
+
|
2494 |
+
if (!!this.dropdownEl.children[newFocusedIndex] && this.dropdownEl.children[newFocusedIndex].tabIndex !== -1) {
|
2495 |
+
foundNewIndex = true;
|
2496 |
+
break;
|
2497 |
+
}
|
2498 |
+
} while (newFocusedIndex < this.dropdownEl.children.length && newFocusedIndex >= 0);
|
2499 |
+
|
2500 |
+
if (foundNewIndex) {
|
2501 |
+
this.focusedIndex = newFocusedIndex;
|
2502 |
+
this._focusFocusedItem();
|
2503 |
+
}
|
2504 |
+
|
2505 |
+
// ENTER selects choice on focused item
|
2506 |
+
} else if (e.which === M.keys.ENTER && this.isOpen) {
|
2507 |
+
// Search for <a> and <button>
|
2508 |
+
var focusedElement = this.dropdownEl.children[this.focusedIndex];
|
2509 |
+
var $activatableElement = $(focusedElement).find('a, button').first();
|
2510 |
+
|
2511 |
+
// Click a or button tag if exists, otherwise click li tag
|
2512 |
+
if (!!$activatableElement.length) {
|
2513 |
+
$activatableElement[0].click();
|
2514 |
+
} else if (!!focusedElement) {
|
2515 |
+
focusedElement.click();
|
2516 |
+
}
|
2517 |
+
|
2518 |
+
// Close dropdown on ESC
|
2519 |
+
} else if (e.which === M.keys.ESC && this.isOpen) {
|
2520 |
+
e.preventDefault();
|
2521 |
+
this.close();
|
2522 |
+
}
|
2523 |
+
|
2524 |
+
// CASE WHEN USER TYPE LETTERS
|
2525 |
+
var letter = String.fromCharCode(e.which).toLowerCase(),
|
2526 |
+
nonLetters = [9, 13, 27, 38, 40];
|
2527 |
+
if (letter && nonLetters.indexOf(e.which) === -1) {
|
2528 |
+
this.filterQuery.push(letter);
|
2529 |
+
|
2530 |
+
var string = this.filterQuery.join(''),
|
2531 |
+
newOptionEl = $(this.dropdownEl).find('li').filter(function (el) {
|
2532 |
+
return $(el).text().toLowerCase().indexOf(string) === 0;
|
2533 |
+
})[0];
|
2534 |
+
|
2535 |
+
if (newOptionEl) {
|
2536 |
+
this.focusedIndex = $(newOptionEl).index();
|
2537 |
+
this._focusFocusedItem();
|
2538 |
+
}
|
2539 |
+
}
|
2540 |
+
|
2541 |
+
this.filterTimeout = setTimeout(this._resetFilterQueryBound, 1000);
|
2542 |
+
}
|
2543 |
+
|
2544 |
+
/**
|
2545 |
+
* Setup dropdown
|
2546 |
+
*/
|
2547 |
+
|
2548 |
+
}, {
|
2549 |
+
key: "_resetFilterQuery",
|
2550 |
+
value: function _resetFilterQuery() {
|
2551 |
+
this.filterQuery = [];
|
2552 |
+
}
|
2553 |
+
}, {
|
2554 |
+
key: "_resetDropdownStyles",
|
2555 |
+
value: function _resetDropdownStyles() {
|
2556 |
+
this.$dropdownEl.css({
|
2557 |
+
display: '',
|
2558 |
+
width: '',
|
2559 |
+
height: '',
|
2560 |
+
left: '',
|
2561 |
+
top: '',
|
2562 |
+
'transform-origin': '',
|
2563 |
+
transform: '',
|
2564 |
+
opacity: ''
|
2565 |
+
});
|
2566 |
+
}
|
2567 |
+
}, {
|
2568 |
+
key: "_makeDropdownFocusable",
|
2569 |
+
value: function _makeDropdownFocusable() {
|
2570 |
+
// Needed for arrow key navigation
|
2571 |
+
this.dropdownEl.tabIndex = 0;
|
2572 |
+
|
2573 |
+
// Only set tabindex if it hasn't been set by user
|
2574 |
+
$(this.dropdownEl).children().each(function (el) {
|
2575 |
+
if (!el.getAttribute('tabindex')) {
|
2576 |
+
el.setAttribute('tabindex', 0);
|
2577 |
+
}
|
2578 |
+
});
|
2579 |
+
}
|
2580 |
+
}, {
|
2581 |
+
key: "_focusFocusedItem",
|
2582 |
+
value: function _focusFocusedItem() {
|
2583 |
+
if (this.focusedIndex >= 0 && this.focusedIndex < this.dropdownEl.children.length && this.options.autoFocus) {
|
2584 |
+
this.dropdownEl.children[this.focusedIndex].focus();
|
2585 |
+
}
|
2586 |
+
}
|
2587 |
+
}, {
|
2588 |
+
key: "_getDropdownPosition",
|
2589 |
+
value: function _getDropdownPosition() {
|
2590 |
+
var offsetParentBRect = this.el.offsetParent.getBoundingClientRect();
|
2591 |
+
var triggerBRect = this.el.getBoundingClientRect();
|
2592 |
+
var dropdownBRect = this.dropdownEl.getBoundingClientRect();
|
2593 |
+
|
2594 |
+
var idealHeight = dropdownBRect.height;
|
2595 |
+
var idealWidth = dropdownBRect.width;
|
2596 |
+
var idealXPos = triggerBRect.left - dropdownBRect.left;
|
2597 |
+
var idealYPos = triggerBRect.top - dropdownBRect.top;
|
2598 |
+
|
2599 |
+
var dropdownBounds = {
|
2600 |
+
left: idealXPos,
|
2601 |
+
top: idealYPos,
|
2602 |
+
height: idealHeight,
|
2603 |
+
width: idealWidth
|
2604 |
+
};
|
2605 |
+
|
2606 |
+
// Countainer here will be closest ancestor with overflow: hidden
|
2607 |
+
var closestOverflowParent = !!this.dropdownEl.offsetParent ? this.dropdownEl.offsetParent : this.dropdownEl.parentNode;
|
2608 |
+
|
2609 |
+
var alignments = M.checkPossibleAlignments(this.el, closestOverflowParent, dropdownBounds, this.options.coverTrigger ? 0 : triggerBRect.height);
|
2610 |
+
|
2611 |
+
var verticalAlignment = 'top';
|
2612 |
+
var horizontalAlignment = this.options.alignment;
|
2613 |
+
idealYPos += this.options.coverTrigger ? 0 : triggerBRect.height;
|
2614 |
+
|
2615 |
+
// Reset isScrollable
|
2616 |
+
this.isScrollable = false;
|
2617 |
+
|
2618 |
+
if (!alignments.top) {
|
2619 |
+
if (alignments.bottom) {
|
2620 |
+
verticalAlignment = 'bottom';
|
2621 |
+
} else {
|
2622 |
+
this.isScrollable = true;
|
2623 |
+
|
2624 |
+
// Determine which side has most space and cutoff at correct height
|
2625 |
+
if (alignments.spaceOnTop > alignments.spaceOnBottom) {
|
2626 |
+
verticalAlignment = 'bottom';
|
2627 |
+
idealHeight += alignments.spaceOnTop;
|
2628 |
+
idealYPos -= alignments.spaceOnTop;
|
2629 |
+
} else {
|
2630 |
+
idealHeight += alignments.spaceOnBottom;
|
2631 |
+
}
|
2632 |
+
}
|
2633 |
+
}
|
2634 |
+
|
2635 |
+
// If preferred horizontal alignment is possible
|
2636 |
+
if (!alignments[horizontalAlignment]) {
|
2637 |
+
var oppositeAlignment = horizontalAlignment === 'left' ? 'right' : 'left';
|
2638 |
+
if (alignments[oppositeAlignment]) {
|
2639 |
+
horizontalAlignment = oppositeAlignment;
|
2640 |
+
} else {
|
2641 |
+
// Determine which side has most space and cutoff at correct height
|
2642 |
+
if (alignments.spaceOnLeft > alignments.spaceOnRight) {
|
2643 |
+
horizontalAlignment = 'right';
|
2644 |
+
idealWidth += alignments.spaceOnLeft;
|
2645 |
+
idealXPos -= alignments.spaceOnLeft;
|
2646 |
+
} else {
|
2647 |
+
horizontalAlignment = 'left';
|
2648 |
+
idealWidth += alignments.spaceOnRight;
|
2649 |
+
}
|
2650 |
+
}
|
2651 |
+
}
|
2652 |
+
|
2653 |
+
if (verticalAlignment === 'bottom') {
|
2654 |
+
idealYPos = idealYPos - dropdownBRect.height + (this.options.coverTrigger ? triggerBRect.height : 0);
|
2655 |
+
}
|
2656 |
+
if (horizontalAlignment === 'right') {
|
2657 |
+
idealXPos = idealXPos - dropdownBRect.width + triggerBRect.width;
|
2658 |
+
}
|
2659 |
+
return {
|
2660 |
+
x: idealXPos,
|
2661 |
+
y: idealYPos,
|
2662 |
+
verticalAlignment: verticalAlignment,
|
2663 |
+
horizontalAlignment: horizontalAlignment,
|
2664 |
+
height: idealHeight,
|
2665 |
+
width: idealWidth
|
2666 |
+
};
|
2667 |
+
}
|
2668 |
+
|
2669 |
+
/**
|
2670 |
+
* Animate in dropdown
|
2671 |
+
*/
|
2672 |
+
|
2673 |
+
}, {
|
2674 |
+
key: "_animateIn",
|
2675 |
+
value: function _animateIn() {
|
2676 |
+
var _this11 = this;
|
2677 |
+
|
2678 |
+
anim.remove(this.dropdownEl);
|
2679 |
+
anim({
|
2680 |
+
targets: this.dropdownEl,
|
2681 |
+
opacity: {
|
2682 |
+
value: [0, 1],
|
2683 |
+
easing: 'easeOutQuad'
|
2684 |
+
},
|
2685 |
+
scaleX: [0.3, 1],
|
2686 |
+
scaleY: [0.3, 1],
|
2687 |
+
duration: this.options.inDuration,
|
2688 |
+
easing: 'easeOutQuint',
|
2689 |
+
complete: function (anim) {
|
2690 |
+
if (_this11.options.autoFocus) {
|
2691 |
+
_this11.dropdownEl.focus();
|
2692 |
+
}
|
2693 |
+
|
2694 |
+
// onOpenEnd callback
|
2695 |
+
if (typeof _this11.options.onOpenEnd === 'function') {
|
2696 |
+
_this11.options.onOpenEnd.call(_this11, _this11.el);
|
2697 |
+
}
|
2698 |
+
}
|
2699 |
+
});
|
2700 |
+
}
|
2701 |
+
|
2702 |
+
/**
|
2703 |
+
* Animate out dropdown
|
2704 |
+
*/
|
2705 |
+
|
2706 |
+
}, {
|
2707 |
+
key: "_animateOut",
|
2708 |
+
value: function _animateOut() {
|
2709 |
+
var _this12 = this;
|
2710 |
+
|
2711 |
+
anim.remove(this.dropdownEl);
|
2712 |
+
anim({
|
2713 |
+
targets: this.dropdownEl,
|
2714 |
+
opacity: {
|
2715 |
+
value: 0,
|
2716 |
+
easing: 'easeOutQuint'
|
2717 |
+
},
|
2718 |
+
scaleX: 0.3,
|
2719 |
+
scaleY: 0.3,
|
2720 |
+
duration: this.options.outDuration,
|
2721 |
+
easing: 'easeOutQuint',
|
2722 |
+
complete: function (anim) {
|
2723 |
+
_this12._resetDropdownStyles();
|
2724 |
+
|
2725 |
+
// onCloseEnd callback
|
2726 |
+
if (typeof _this12.options.onCloseEnd === 'function') {
|
2727 |
+
_this12.options.onCloseEnd.call(_this12, _this12.el);
|
2728 |
+
}
|
2729 |
+
}
|
2730 |
+
});
|
2731 |
+
}
|
2732 |
+
|
2733 |
+
/**
|
2734 |
+
* Place dropdown
|
2735 |
+
*/
|
2736 |
+
|
2737 |
+
}, {
|
2738 |
+
key: "_placeDropdown",
|
2739 |
+
value: function _placeDropdown() {
|
2740 |
+
// Set width before calculating positionInfo
|
2741 |
+
var idealWidth = this.options.constrainWidth ? this.el.getBoundingClientRect().width : this.dropdownEl.getBoundingClientRect().width;
|
2742 |
+
this.dropdownEl.style.width = idealWidth + 'px';
|
2743 |
+
|
2744 |
+
var positionInfo = this._getDropdownPosition();
|
2745 |
+
this.dropdownEl.style.left = positionInfo.x + 'px';
|
2746 |
+
this.dropdownEl.style.top = positionInfo.y + 'px';
|
2747 |
+
this.dropdownEl.style.height = positionInfo.height + 'px';
|
2748 |
+
this.dropdownEl.style.width = positionInfo.width + 'px';
|
2749 |
+
this.dropdownEl.style.transformOrigin = (positionInfo.horizontalAlignment === 'left' ? '0' : '100%') + " " + (positionInfo.verticalAlignment === 'top' ? '0' : '100%');
|
2750 |
+
}
|
2751 |
+
|
2752 |
+
/**
|
2753 |
+
* Open Dropdown
|
2754 |
+
*/
|
2755 |
+
|
2756 |
+
}, {
|
2757 |
+
key: "open",
|
2758 |
+
value: function open() {
|
2759 |
+
if (this.isOpen) {
|
2760 |
+
return;
|
2761 |
+
}
|
2762 |
+
this.isOpen = true;
|
2763 |
+
|
2764 |
+
// onOpenStart callback
|
2765 |
+
if (typeof this.options.onOpenStart === 'function') {
|
2766 |
+
this.options.onOpenStart.call(this, this.el);
|
2767 |
+
}
|
2768 |
+
|
2769 |
+
// Reset styles
|
2770 |
+
this._resetDropdownStyles();
|
2771 |
+
this.dropdownEl.style.display = 'block';
|
2772 |
+
|
2773 |
+
this._placeDropdown();
|
2774 |
+
this._animateIn();
|
2775 |
+
this._setupTemporaryEventHandlers();
|
2776 |
+
}
|
2777 |
+
|
2778 |
+
/**
|
2779 |
+
* Close Dropdown
|
2780 |
+
*/
|
2781 |
+
|
2782 |
+
}, {
|
2783 |
+
key: "close",
|
2784 |
+
value: function close() {
|
2785 |
+
if (!this.isOpen) {
|
2786 |
+
return;
|
2787 |
+
}
|
2788 |
+
this.isOpen = false;
|
2789 |
+
this.focusedIndex = -1;
|
2790 |
+
|
2791 |
+
// onCloseStart callback
|
2792 |
+
if (typeof this.options.onCloseStart === 'function') {
|
2793 |
+
this.options.onCloseStart.call(this, this.el);
|
2794 |
+
}
|
2795 |
+
|
2796 |
+
this._animateOut();
|
2797 |
+
this._removeTemporaryEventHandlers();
|
2798 |
+
|
2799 |
+
if (this.options.autoFocus) {
|
2800 |
+
this.el.focus();
|
2801 |
+
}
|
2802 |
+
}
|
2803 |
+
|
2804 |
+
/**
|
2805 |
+
* Recalculate dimensions
|
2806 |
+
*/
|
2807 |
+
|
2808 |
+
}, {
|
2809 |
+
key: "recalculateDimensions",
|
2810 |
+
value: function recalculateDimensions() {
|
2811 |
+
if (this.isOpen) {
|
2812 |
+
this.$dropdownEl.css({
|
2813 |
+
width: '',
|
2814 |
+
height: '',
|
2815 |
+
left: '',
|
2816 |
+
top: '',
|
2817 |
+
'transform-origin': ''
|
2818 |
+
});
|
2819 |
+
this._placeDropdown();
|
2820 |
+
}
|
2821 |
+
}
|
2822 |
+
}], [{
|
2823 |
+
key: "init",
|
2824 |
+
value: function init(els, options) {
|
2825 |
+
return _get(Dropdown.__proto__ || Object.getPrototypeOf(Dropdown), "init", this).call(this, this, els, options);
|
2826 |
+
}
|
2827 |
+
|
2828 |
+
/**
|
2829 |
+
* Get Instance
|
2830 |
+
*/
|
2831 |
+
|
2832 |
+
}, {
|
2833 |
+
key: "getInstance",
|
2834 |
+
value: function getInstance(el) {
|
2835 |
+
var domElem = !!el.jquery ? el[0] : el;
|
2836 |
+
return domElem.M_Dropdown;
|
2837 |
+
}
|
2838 |
+
}, {
|
2839 |
+
key: "defaults",
|
2840 |
+
get: function () {
|
2841 |
+
return _defaults;
|
2842 |
+
}
|
2843 |
+
}]);
|
2844 |
+
|
2845 |
+
return Dropdown;
|
2846 |
+
}(Component);
|
2847 |
+
|
2848 |
+
/**
|
2849 |
+
* @static
|
2850 |
+
* @memberof Dropdown
|
2851 |
+
*/
|
2852 |
+
|
2853 |
+
|
2854 |
+
Dropdown._dropdowns = [];
|
2855 |
+
|
2856 |
+
M.Dropdown = Dropdown;
|
2857 |
+
|
2858 |
+
if (M.jQueryLoaded) {
|
2859 |
+
M.initializeJqueryWrapper(Dropdown, 'dropdown', 'M_Dropdown');
|
2860 |
+
}
|
2861 |
+
})(cash, M.anime);
|
2862 |
+
;(function ($, anim) {
|
2863 |
+
'use strict';
|
2864 |
+
|
2865 |
+
var _defaults = {
|
2866 |
+
opacity: 0.5,
|
2867 |
+
inDuration: 250,
|
2868 |
+
outDuration: 250,
|
2869 |
+
onOpenStart: null,
|
2870 |
+
onOpenEnd: null,
|
2871 |
+
onCloseStart: null,
|
2872 |
+
onCloseEnd: null,
|
2873 |
+
preventScrolling: true,
|
2874 |
+
dismissible: true,
|
2875 |
+
startingTop: '4%',
|
2876 |
+
endingTop: '10%'
|
2877 |
+
};
|
2878 |
+
|
2879 |
+
/**
|
2880 |
+
* @class
|
2881 |
+
*
|
2882 |
+
*/
|
2883 |
+
|
2884 |
+
var Modal = function (_Component3) {
|
2885 |
+
_inherits(Modal, _Component3);
|
2886 |
+
|
2887 |
+
/**
|
2888 |
+
* Construct Modal instance and set up overlay
|
2889 |
+
* @constructor
|
2890 |
+
* @param {Element} el
|
2891 |
+
* @param {Object} options
|
2892 |
+
*/
|
2893 |
+
function Modal(el, options) {
|
2894 |
+
_classCallCheck(this, Modal);
|
2895 |
+
|
2896 |
+
var _this13 = _possibleConstructorReturn(this, (Modal.__proto__ || Object.getPrototypeOf(Modal)).call(this, Modal, el, options));
|
2897 |
+
|
2898 |
+
_this13.el.M_Modal = _this13;
|
2899 |
+
|
2900 |
+
/**
|
2901 |
+
* Options for the modal
|
2902 |
+
* @member Modal#options
|
2903 |
+
* @prop {Number} [opacity=0.5] - Opacity of the modal overlay
|
2904 |
+
* @prop {Number} [inDuration=250] - Length in ms of enter transition
|
2905 |
+
* @prop {Number} [outDuration=250] - Length in ms of exit transition
|
2906 |
+
* @prop {Function} onOpenStart - Callback function called before modal is opened
|
2907 |
+
* @prop {Function} onOpenEnd - Callback function called after modal is opened
|
2908 |
+
* @prop {Function} onCloseStart - Callback function called before modal is closed
|
2909 |
+
* @prop {Function} onCloseEnd - Callback function called after modal is closed
|
2910 |
+
* @prop {Boolean} [dismissible=true] - Allow modal to be dismissed by keyboard or overlay click
|
2911 |
+
* @prop {String} [startingTop='4%'] - startingTop
|
2912 |
+
* @prop {String} [endingTop='10%'] - endingTop
|
2913 |
+
*/
|
2914 |
+
_this13.options = $.extend({}, Modal.defaults, options);
|
2915 |
+
|
2916 |
+
/**
|
2917 |
+
* Describes open/close state of modal
|
2918 |
+
* @type {Boolean}
|
2919 |
+
*/
|
2920 |
+
_this13.isOpen = false;
|
2921 |
+
|
2922 |
+
_this13.id = _this13.$el.attr('id');
|
2923 |
+
_this13._openingTrigger = undefined;
|
2924 |
+
_this13.$overlay = $('<div class="modal-overlay"></div>');
|
2925 |
+
_this13.el.tabIndex = 0;
|
2926 |
+
_this13._nthModalOpened = 0;
|
2927 |
+
|
2928 |
+
Modal._count++;
|
2929 |
+
_this13._setupEventHandlers();
|
2930 |
+
return _this13;
|
2931 |
+
}
|
2932 |
+
|
2933 |
+
_createClass(Modal, [{
|
2934 |
+
key: "destroy",
|
2935 |
+
|
2936 |
+
|
2937 |
+
/**
|
2938 |
+
* Teardown component
|
2939 |
+
*/
|
2940 |
+
value: function destroy() {
|
2941 |
+
Modal._count--;
|
2942 |
+
this._removeEventHandlers();
|
2943 |
+
this.el.removeAttribute('style');
|
2944 |
+
this.$overlay.remove();
|
2945 |
+
this.el.M_Modal = undefined;
|
2946 |
+
}
|
2947 |
+
|
2948 |
+
/**
|
2949 |
+
* Setup Event Handlers
|
2950 |
+
*/
|
2951 |
+
|
2952 |
+
}, {
|
2953 |
+
key: "_setupEventHandlers",
|
2954 |
+
value: function _setupEventHandlers() {
|
2955 |
+
this._handleOverlayClickBound = this._handleOverlayClick.bind(this);
|
2956 |
+
this._handleModalCloseClickBound = this._handleModalCloseClick.bind(this);
|
2957 |
+
|
2958 |
+
if (Modal._count === 1) {
|
2959 |
+
document.body.addEventListener('click', this._handleTriggerClick);
|
2960 |
+
}
|
2961 |
+
this.$overlay[0].addEventListener('click', this._handleOverlayClickBound);
|
2962 |
+
this.el.addEventListener('click', this._handleModalCloseClickBound);
|
2963 |
+
}
|
2964 |
+
|
2965 |
+
/**
|
2966 |
+
* Remove Event Handlers
|
2967 |
+
*/
|
2968 |
+
|
2969 |
+
}, {
|
2970 |
+
key: "_removeEventHandlers",
|
2971 |
+
value: function _removeEventHandlers() {
|
2972 |
+
if (Modal._count === 0) {
|
2973 |
+
document.body.removeEventListener('click', this._handleTriggerClick);
|
2974 |
+
}
|
2975 |
+
this.$overlay[0].removeEventListener('click', this._handleOverlayClickBound);
|
2976 |
+
this.el.removeEventListener('click', this._handleModalCloseClickBound);
|
2977 |
+
}
|
2978 |
+
|
2979 |
+
/**
|
2980 |
+
* Handle Trigger Click
|
2981 |
+
* @param {Event} e
|
2982 |
+
*/
|
2983 |
+
|
2984 |
+
}, {
|
2985 |
+
key: "_handleTriggerClick",
|
2986 |
+
value: function _handleTriggerClick(e) {
|
2987 |
+
var $trigger = $(e.target).closest('.modal-trigger');
|
2988 |
+
if ($trigger.length) {
|
2989 |
+
var modalId = M.getIdFromTrigger($trigger[0]);
|
2990 |
+
var modalInstance = document.getElementById(modalId).M_Modal;
|
2991 |
+
if (modalInstance) {
|
2992 |
+
modalInstance.open($trigger);
|
2993 |
+
}
|
2994 |
+
e.preventDefault();
|
2995 |
+
}
|
2996 |
+
}
|
2997 |
+
|
2998 |
+
/**
|
2999 |
+
* Handle Overlay Click
|
3000 |
+
*/
|
3001 |
+
|
3002 |
+
}, {
|
3003 |
+
key: "_handleOverlayClick",
|
3004 |
+
value: function _handleOverlayClick() {
|
3005 |
+
if (this.options.dismissible) {
|
3006 |
+
this.close();
|
3007 |
+
}
|
3008 |
+
}
|
3009 |
+
|
3010 |
+
/**
|
3011 |
+
* Handle Modal Close Click
|
3012 |
+
* @param {Event} e
|
3013 |
+
*/
|
3014 |
+
|
3015 |
+
}, {
|
3016 |
+
key: "_handleModalCloseClick",
|
3017 |
+
value: function _handleModalCloseClick(e) {
|
3018 |
+
var $closeTrigger = $(e.target).closest('.modal-close');
|
3019 |
+
if ($closeTrigger.length) {
|
3020 |
+
this.close();
|
3021 |
+
}
|
3022 |
+
}
|
3023 |
+
|
3024 |
+
/**
|
3025 |
+
* Handle Keydown
|
3026 |
+
* @param {Event} e
|
3027 |
+
*/
|
3028 |
+
|
3029 |
+
}, {
|
3030 |
+
key: "_handleKeydown",
|
3031 |
+
value: function _handleKeydown(e) {
|
3032 |
+
// ESC key
|
3033 |
+
if (e.keyCode === 27 && this.options.dismissible) {
|
3034 |
+
this.close();
|
3035 |
+
}
|
3036 |
+
}
|
3037 |
+
|
3038 |
+
/**
|
3039 |
+
* Handle Focus
|
3040 |
+
* @param {Event} e
|
3041 |
+
*/
|
3042 |
+
|
3043 |
+
}, {
|
3044 |
+
key: "_handleFocus",
|
3045 |
+
value: function _handleFocus(e) {
|
3046 |
+
// Only trap focus if this modal is the last model opened (prevents loops in nested modals).
|
3047 |
+
if (!this.el.contains(e.target) && this._nthModalOpened === Modal._modalsOpen) {
|
3048 |
+
this.el.focus();
|
3049 |
+
}
|
3050 |
+
}
|
3051 |
+
|
3052 |
+
/**
|
3053 |
+
* Animate in modal
|
3054 |
+
*/
|
3055 |
+
|
3056 |
+
}, {
|
3057 |
+
key: "_animateIn",
|
3058 |
+
value: function _animateIn() {
|
3059 |
+
var _this14 = this;
|
3060 |
+
|
3061 |
+
// Set initial styles
|
3062 |
+
$.extend(this.el.style, {
|
3063 |
+
display: 'block',
|
3064 |
+
opacity: 0
|
3065 |
+
});
|
3066 |
+
$.extend(this.$overlay[0].style, {
|
3067 |
+
display: 'block',
|
3068 |
+
opacity: 0
|
3069 |
+
});
|
3070 |
+
|
3071 |
+
// Animate overlay
|
3072 |
+
anim({
|
3073 |
+
targets: this.$overlay[0],
|
3074 |
+
opacity: this.options.opacity,
|
3075 |
+
duration: this.options.inDuration,
|
3076 |
+
easing: 'easeOutQuad'
|
3077 |
+
});
|
3078 |
+
|
3079 |
+
// Define modal animation options
|
3080 |
+
var enterAnimOptions = {
|
3081 |
+
targets: this.el,
|
3082 |
+
duration: this.options.inDuration,
|
3083 |
+
easing: 'easeOutCubic',
|
3084 |
+
// Handle modal onOpenEnd callback
|
3085 |
+
complete: function () {
|
3086 |
+
if (typeof _this14.options.onOpenEnd === 'function') {
|
3087 |
+
_this14.options.onOpenEnd.call(_this14, _this14.el, _this14._openingTrigger);
|
3088 |
+
}
|
3089 |
+
}
|
3090 |
+
};
|
3091 |
+
|
3092 |
+
// Bottom sheet animation
|
3093 |
+
if (this.el.classList.contains('bottom-sheet')) {
|
3094 |
+
$.extend(enterAnimOptions, {
|
3095 |
+
bottom: 0,
|
3096 |
+
opacity: 1
|
3097 |
+
});
|
3098 |
+
anim(enterAnimOptions);
|
3099 |
+
|
3100 |
+
// Normal modal animation
|
3101 |
+
} else {
|
3102 |
+
$.extend(enterAnimOptions, {
|
3103 |
+
top: [this.options.startingTop, this.options.endingTop],
|
3104 |
+
opacity: 1,
|
3105 |
+
scaleX: [0.8, 1],
|
3106 |
+
scaleY: [0.8, 1]
|
3107 |
+
});
|
3108 |
+
anim(enterAnimOptions);
|
3109 |
+
}
|
3110 |
+
}
|
3111 |
+
|
3112 |
+
/**
|
3113 |
+
* Animate out modal
|
3114 |
+
*/
|
3115 |
+
|
3116 |
+
}, {
|
3117 |
+
key: "_animateOut",
|
3118 |
+
value: function _animateOut() {
|
3119 |
+
var _this15 = this;
|
3120 |
+
|
3121 |
+
// Animate overlay
|
3122 |
+
anim({
|
3123 |
+
targets: this.$overlay[0],
|
3124 |
+
opacity: 0,
|
3125 |
+
duration: this.options.outDuration,
|
3126 |
+
easing: 'easeOutQuart'
|
3127 |
+
});
|
3128 |
+
|
3129 |
+
// Define modal animation options
|
3130 |
+
var exitAnimOptions = {
|
3131 |
+
targets: this.el,
|
3132 |
+
duration: this.options.outDuration,
|
3133 |
+
easing: 'easeOutCubic',
|
3134 |
+
// Handle modal ready callback
|
3135 |
+
complete: function () {
|
3136 |
+
_this15.el.style.display = 'none';
|
3137 |
+
_this15.$overlay.remove();
|
3138 |
+
|
3139 |
+
// Call onCloseEnd callback
|
3140 |
+
if (typeof _this15.options.onCloseEnd === 'function') {
|
3141 |
+
_this15.options.onCloseEnd.call(_this15, _this15.el);
|
3142 |
+
}
|
3143 |
+
}
|
3144 |
+
};
|
3145 |
+
|
3146 |
+
// Bottom sheet animation
|
3147 |
+
if (this.el.classList.contains('bottom-sheet')) {
|
3148 |
+
$.extend(exitAnimOptions, {
|
3149 |
+
bottom: '-100%',
|
3150 |
+
opacity: 0
|
3151 |
+
});
|
3152 |
+
anim(exitAnimOptions);
|
3153 |
+
|
3154 |
+
// Normal modal animation
|
3155 |
+
} else {
|
3156 |
+
$.extend(exitAnimOptions, {
|
3157 |
+
top: [this.options.endingTop, this.options.startingTop],
|
3158 |
+
opacity: 0,
|
3159 |
+
scaleX: 0.8,
|
3160 |
+
scaleY: 0.8
|
3161 |
+
});
|
3162 |
+
anim(exitAnimOptions);
|
3163 |
+
}
|
3164 |
+
}
|
3165 |
+
|
3166 |
+
/**
|
3167 |
+
* Open Modal
|
3168 |
+
* @param {cash} [$trigger]
|
3169 |
+
*/
|
3170 |
+
|
3171 |
+
}, {
|
3172 |
+
key: "open",
|
3173 |
+
value: function open($trigger) {
|
3174 |
+
if (this.isOpen) {
|
3175 |
+
return;
|
3176 |
+
}
|
3177 |
+
|
3178 |
+
this.isOpen = true;
|
3179 |
+
Modal._modalsOpen++;
|
3180 |
+
this._nthModalOpened = Modal._modalsOpen;
|
3181 |
+
|
3182 |
+
// Set Z-Index based on number of currently open modals
|
3183 |
+
this.$overlay[0].style.zIndex = 1000 + Modal._modalsOpen * 2;
|
3184 |
+
this.el.style.zIndex = 1000 + Modal._modalsOpen * 2 + 1;
|
3185 |
+
|
3186 |
+
// Set opening trigger, undefined indicates modal was opened by javascript
|
3187 |
+
this._openingTrigger = !!$trigger ? $trigger[0] : undefined;
|
3188 |
+
|
3189 |
+
// onOpenStart callback
|
3190 |
+
if (typeof this.options.onOpenStart === 'function') {
|
3191 |
+
this.options.onOpenStart.call(this, this.el, this._openingTrigger);
|
3192 |
+
}
|
3193 |
+
|
3194 |
+
if (this.options.preventScrolling) {
|
3195 |
+
document.body.style.overflow = 'hidden';
|
3196 |
+
}
|
3197 |
+
|
3198 |
+
this.el.classList.add('open');
|
3199 |
+
this.el.insertAdjacentElement('afterend', this.$overlay[0]);
|
3200 |
+
|
3201 |
+
if (this.options.dismissible) {
|
3202 |
+
this._handleKeydownBound = this._handleKeydown.bind(this);
|
3203 |
+
this._handleFocusBound = this._handleFocus.bind(this);
|
3204 |
+
document.addEventListener('keydown', this._handleKeydownBound);
|
3205 |
+
document.addEventListener('focus', this._handleFocusBound, true);
|
3206 |
+
}
|
3207 |
+
|
3208 |
+
anim.remove(this.el);
|
3209 |
+
anim.remove(this.$overlay[0]);
|
3210 |
+
this._animateIn();
|
3211 |
+
|
3212 |
+
// Focus modal
|
3213 |
+
this.el.focus();
|
3214 |
+
|
3215 |
+
return this;
|
3216 |
+
}
|
3217 |
+
|
3218 |
+
/**
|
3219 |
+
* Close Modal
|
3220 |
+
*/
|
3221 |
+
|
3222 |
+
}, {
|
3223 |
+
key: "close",
|
3224 |
+
value: function close() {
|
3225 |
+
if (!this.isOpen) {
|
3226 |
+
return;
|
3227 |
+
}
|
3228 |
+
|
3229 |
+
this.isOpen = false;
|
3230 |
+
Modal._modalsOpen--;
|
3231 |
+
this._nthModalOpened = 0;
|
3232 |
+
|
3233 |
+
// Call onCloseStart callback
|
3234 |
+
if (typeof this.options.onCloseStart === 'function') {
|
3235 |
+
this.options.onCloseStart.call(this, this.el);
|
3236 |
+
}
|
3237 |
+
|
3238 |
+
this.el.classList.remove('open');
|
3239 |
+
|
3240 |
+
// Enable body scrolling only if there are no more modals open.
|
3241 |
+
if (Modal._modalsOpen === 0) {
|
3242 |
+
document.body.style.overflow = '';
|
3243 |
+
}
|
3244 |
+
|
3245 |
+
if (this.options.dismissible) {
|
3246 |
+
document.removeEventListener('keydown', this._handleKeydownBound);
|
3247 |
+
document.removeEventListener('focus', this._handleFocusBound, true);
|
3248 |
+
}
|
3249 |
+
|
3250 |
+
anim.remove(this.el);
|
3251 |
+
anim.remove(this.$overlay[0]);
|
3252 |
+
this._animateOut();
|
3253 |
+
return this;
|
3254 |
+
}
|
3255 |
+
}], [{
|
3256 |
+
key: "init",
|
3257 |
+
value: function init(els, options) {
|
3258 |
+
return _get(Modal.__proto__ || Object.getPrototypeOf(Modal), "init", this).call(this, this, els, options);
|
3259 |
+
}
|
3260 |
+
|
3261 |
+
/**
|
3262 |
+
* Get Instance
|
3263 |
+
*/
|
3264 |
+
|
3265 |
+
}, {
|
3266 |
+
key: "getInstance",
|
3267 |
+
value: function getInstance(el) {
|
3268 |
+
var domElem = !!el.jquery ? el[0] : el;
|
3269 |
+
return domElem.M_Modal;
|
3270 |
+
}
|
3271 |
+
}, {
|
3272 |
+
key: "defaults",
|
3273 |
+
get: function () {
|
3274 |
+
return _defaults;
|
3275 |
+
}
|
3276 |
+
}]);
|
3277 |
+
|
3278 |
+
return Modal;
|
3279 |
+
}(Component);
|
3280 |
+
|
3281 |
+
/**
|
3282 |
+
* @static
|
3283 |
+
* @memberof Modal
|
3284 |
+
*/
|
3285 |
+
|
3286 |
+
|
3287 |
+
Modal._modalsOpen = 0;
|
3288 |
+
|
3289 |
+
/**
|
3290 |
+
* @static
|
3291 |
+
* @memberof Modal
|
3292 |
+
*/
|
3293 |
+
Modal._count = 0;
|
3294 |
+
|
3295 |
+
M.Modal = Modal;
|
3296 |
+
|
3297 |
+
if (M.jQueryLoaded) {
|
3298 |
+
M.initializeJqueryWrapper(Modal, 'modal', 'M_Modal');
|
3299 |
+
}
|
3300 |
+
})(cash, M.anime);
|
3301 |
+
;(function ($, anim) {
|
3302 |
+
'use strict';
|
3303 |
+
|
3304 |
+
var _defaults = {
|
3305 |
+
inDuration: 275,
|
3306 |
+
outDuration: 200,
|
3307 |
+
onOpenStart: null,
|
3308 |
+
onOpenEnd: null,
|
3309 |
+
onCloseStart: null,
|
3310 |
+
onCloseEnd: null
|
3311 |
+
};
|
3312 |
+
|
3313 |
+
/**
|
3314 |
+
* @class
|
3315 |
+
*
|
3316 |
+
*/
|
3317 |
+
|
3318 |
+
var Materialbox = function (_Component4) {
|
3319 |
+
_inherits(Materialbox, _Component4);
|
3320 |
+
|
3321 |
+
/**
|
3322 |
+
* Construct Materialbox instance
|
3323 |
+
* @constructor
|
3324 |
+
* @param {Element} el
|
3325 |
+
* @param {Object} options
|
3326 |
+
*/
|
3327 |
+
function Materialbox(el, options) {
|
3328 |
+
_classCallCheck(this, Materialbox);
|
3329 |
+
|
3330 |
+
var _this16 = _possibleConstructorReturn(this, (Materialbox.__proto__ || Object.getPrototypeOf(Materialbox)).call(this, Materialbox, el, options));
|
3331 |
+
|
3332 |
+
_this16.el.M_Materialbox = _this16;
|
3333 |
+
|
3334 |
+
/**
|
3335 |
+
* Options for the modal
|
3336 |
+
* @member Materialbox#options
|
3337 |
+
* @prop {Number} [inDuration=275] - Length in ms of enter transition
|
3338 |
+
* @prop {Number} [outDuration=200] - Length in ms of exit transition
|
3339 |
+
* @prop {Function} onOpenStart - Callback function called before materialbox is opened
|
3340 |
+
* @prop {Function} onOpenEnd - Callback function called after materialbox is opened
|
3341 |
+
* @prop {Function} onCloseStart - Callback function called before materialbox is closed
|
3342 |
+
* @prop {Function} onCloseEnd - Callback function called after materialbox is closed
|
3343 |
+
*/
|
3344 |
+
_this16.options = $.extend({}, Materialbox.defaults, options);
|
3345 |
+
|
3346 |
+
_this16.overlayActive = false;
|
3347 |
+
_this16.doneAnimating = true;
|
3348 |
+
_this16.placeholder = $('<div></div>').addClass('material-placeholder');
|
3349 |
+
_this16.originalWidth = 0;
|
3350 |
+
_this16.originalHeight = 0;
|
3351 |
+
_this16.originInlineStyles = _this16.$el.attr('style');
|
3352 |
+
_this16.caption = _this16.el.getAttribute('data-caption') || '';
|
3353 |
+
|
3354 |
+
// Wrap
|
3355 |
+
_this16.$el.before(_this16.placeholder);
|
3356 |
+
_this16.placeholder.append(_this16.$el);
|
3357 |
+
|
3358 |
+
_this16._setupEventHandlers();
|
3359 |
+
return _this16;
|
3360 |
+
}
|
3361 |
+
|
3362 |
+
_createClass(Materialbox, [{
|
3363 |
+
key: "destroy",
|
3364 |
+
|
3365 |
+
|
3366 |
+
/**
|
3367 |
+
* Teardown component
|
3368 |
+
*/
|
3369 |
+
value: function destroy() {
|
3370 |
+
this._removeEventHandlers();
|
3371 |
+
this.el.M_Materialbox = undefined;
|
3372 |
+
|
3373 |
+
// Unwrap image
|
3374 |
+
$(this.placeholder).after(this.el).remove();
|
3375 |
+
|
3376 |
+
this.$el.removeAttr('style');
|
3377 |
+
}
|
3378 |
+
|
3379 |
+
/**
|
3380 |
+
* Setup Event Handlers
|
3381 |
+
*/
|
3382 |
+
|
3383 |
+
}, {
|
3384 |
+
key: "_setupEventHandlers",
|
3385 |
+
value: function _setupEventHandlers() {
|
3386 |
+
this._handleMaterialboxClickBound = this._handleMaterialboxClick.bind(this);
|
3387 |
+
this.el.addEventListener('click', this._handleMaterialboxClickBound);
|
3388 |
+
}
|
3389 |
+
|
3390 |
+
/**
|
3391 |
+
* Remove Event Handlers
|
3392 |
+
*/
|
3393 |
+
|
3394 |
+
}, {
|
3395 |
+
key: "_removeEventHandlers",
|
3396 |
+
value: function _removeEventHandlers() {
|
3397 |
+
this.el.removeEventListener('click', this._handleMaterialboxClickBound);
|
3398 |
+
}
|
3399 |
+
|
3400 |
+
/**
|
3401 |
+
* Handle Materialbox Click
|
3402 |
+
* @param {Event} e
|
3403 |
+
*/
|
3404 |
+
|
3405 |
+
}, {
|
3406 |
+
key: "_handleMaterialboxClick",
|
3407 |
+
value: function _handleMaterialboxClick(e) {
|
3408 |
+
// If already modal, return to original
|
3409 |
+
if (this.doneAnimating === false || this.overlayActive && this.doneAnimating) {
|
3410 |
+
this.close();
|
3411 |
+
} else {
|
3412 |
+
this.open();
|
3413 |
+
}
|
3414 |
+
}
|
3415 |
+
|
3416 |
+
/**
|
3417 |
+
* Handle Window Scroll
|
3418 |
+
*/
|
3419 |
+
|
3420 |
+
}, {
|
3421 |
+
key: "_handleWindowScroll",
|
3422 |
+
value: function _handleWindowScroll() {
|
3423 |
+
if (this.overlayActive) {
|
3424 |
+
this.close();
|
3425 |
+
}
|
3426 |
+
}
|
3427 |
+
|
3428 |
+
/**
|
3429 |
+
* Handle Window Resize
|
3430 |
+
*/
|
3431 |
+
|
3432 |
+
}, {
|
3433 |
+
key: "_handleWindowResize",
|
3434 |
+
value: function _handleWindowResize() {
|
3435 |
+
if (this.overlayActive) {
|
3436 |
+
this.close();
|
3437 |
+
}
|
3438 |
+
}
|
3439 |
+
|
3440 |
+
/**
|
3441 |
+
* Handle Window Resize
|
3442 |
+
* @param {Event} e
|
3443 |
+
*/
|
3444 |
+
|
3445 |
+
}, {
|
3446 |
+
key: "_handleWindowEscape",
|
3447 |
+
value: function _handleWindowEscape(e) {
|
3448 |
+
// ESC key
|
3449 |
+
if (e.keyCode === 27 && this.doneAnimating && this.overlayActive) {
|
3450 |
+
this.close();
|
3451 |
+
}
|
3452 |
+
}
|
3453 |
+
|
3454 |
+
/**
|
3455 |
+
* Find ancestors with overflow: hidden; and make visible
|
3456 |
+
*/
|
3457 |
+
|
3458 |
+
}, {
|
3459 |
+
key: "_makeAncestorsOverflowVisible",
|
3460 |
+
value: function _makeAncestorsOverflowVisible() {
|
3461 |
+
this.ancestorsChanged = $();
|
3462 |
+
var ancestor = this.placeholder[0].parentNode;
|
3463 |
+
while (ancestor !== null && !$(ancestor).is(document)) {
|
3464 |
+
var curr = $(ancestor);
|
3465 |
+
if (curr.css('overflow') !== 'visible') {
|
3466 |
+
curr.css('overflow', 'visible');
|
3467 |
+
if (this.ancestorsChanged === undefined) {
|
3468 |
+
this.ancestorsChanged = curr;
|
3469 |
+
} else {
|
3470 |
+
this.ancestorsChanged = this.ancestorsChanged.add(curr);
|
3471 |
+
}
|
3472 |
+
}
|
3473 |
+
ancestor = ancestor.parentNode;
|
3474 |
+
}
|
3475 |
+
}
|
3476 |
+
|
3477 |
+
/**
|
3478 |
+
* Animate image in
|
3479 |
+
*/
|
3480 |
+
|
3481 |
+
}, {
|
3482 |
+
key: "_animateImageIn",
|
3483 |
+
value: function _animateImageIn() {
|
3484 |
+
var _this17 = this;
|
3485 |
+
|
3486 |
+
var animOptions = {
|
3487 |
+
targets: this.el,
|
3488 |
+
height: [this.originalHeight, this.newHeight],
|
3489 |
+
width: [this.originalWidth, this.newWidth],
|
3490 |
+
left: M.getDocumentScrollLeft() + this.windowWidth / 2 - this.placeholder.offset().left - this.newWidth / 2,
|
3491 |
+
top: M.getDocumentScrollTop() + this.windowHeight / 2 - this.placeholder.offset().top - this.newHeight / 2,
|
3492 |
+
duration: this.options.inDuration,
|
3493 |
+
easing: 'easeOutQuad',
|
3494 |
+
complete: function () {
|
3495 |
+
_this17.doneAnimating = true;
|
3496 |
+
|
3497 |
+
// onOpenEnd callback
|
3498 |
+
if (typeof _this17.options.onOpenEnd === 'function') {
|
3499 |
+
_this17.options.onOpenEnd.call(_this17, _this17.el);
|
3500 |
+
}
|
3501 |
+
}
|
3502 |
+
};
|
3503 |
+
|
3504 |
+
// Override max-width or max-height if needed
|
3505 |
+
this.maxWidth = this.$el.css('max-width');
|
3506 |
+
this.maxHeight = this.$el.css('max-height');
|
3507 |
+
if (this.maxWidth !== 'none') {
|
3508 |
+
animOptions.maxWidth = this.newWidth;
|
3509 |
+
}
|
3510 |
+
if (this.maxHeight !== 'none') {
|
3511 |
+
animOptions.maxHeight = this.newHeight;
|
3512 |
+
}
|
3513 |
+
|
3514 |
+
anim(animOptions);
|
3515 |
+
}
|
3516 |
+
|
3517 |
+
/**
|
3518 |
+
* Animate image out
|
3519 |
+
*/
|
3520 |
+
|
3521 |
+
}, {
|
3522 |
+
key: "_animateImageOut",
|
3523 |
+
value: function _animateImageOut() {
|
3524 |
+
var _this18 = this;
|
3525 |
+
|
3526 |
+
var animOptions = {
|
3527 |
+
targets: this.el,
|
3528 |
+
width: this.originalWidth,
|
3529 |
+
height: this.originalHeight,
|
3530 |
+
left: 0,
|
3531 |
+
top: 0,
|
3532 |
+
duration: this.options.outDuration,
|
3533 |
+
easing: 'easeOutQuad',
|
3534 |
+
complete: function () {
|
3535 |
+
_this18.placeholder.css({
|
3536 |
+
height: '',
|
3537 |
+
width: '',
|
3538 |
+
position: '',
|
3539 |
+
top: '',
|
3540 |
+
left: ''
|
3541 |
+
});
|
3542 |
+
|
3543 |
+
// Revert to width or height attribute
|
3544 |
+
if (_this18.attrWidth) {
|
3545 |
+
_this18.$el.attr('width', _this18.attrWidth);
|
3546 |
+
}
|
3547 |
+
if (_this18.attrHeight) {
|
3548 |
+
_this18.$el.attr('height', _this18.attrHeight);
|
3549 |
+
}
|
3550 |
+
|
3551 |
+
_this18.$el.removeAttr('style');
|
3552 |
+
_this18.originInlineStyles && _this18.$el.attr('style', _this18.originInlineStyles);
|
3553 |
+
|
3554 |
+
// Remove class
|
3555 |
+
_this18.$el.removeClass('active');
|
3556 |
+
_this18.doneAnimating = true;
|
3557 |
+
|
3558 |
+
// Remove overflow overrides on ancestors
|
3559 |
+
if (_this18.ancestorsChanged.length) {
|
3560 |
+
_this18.ancestorsChanged.css('overflow', '');
|
3561 |
+
}
|
3562 |
+
|
3563 |
+
// onCloseEnd callback
|
3564 |
+
if (typeof _this18.options.onCloseEnd === 'function') {
|
3565 |
+
_this18.options.onCloseEnd.call(_this18, _this18.el);
|
3566 |
+
}
|
3567 |
+
}
|
3568 |
+
};
|
3569 |
+
|
3570 |
+
anim(animOptions);
|
3571 |
+
}
|
3572 |
+
|
3573 |
+
/**
|
3574 |
+
* Update open and close vars
|
3575 |
+
*/
|
3576 |
+
|
3577 |
+
}, {
|
3578 |
+
key: "_updateVars",
|
3579 |
+
value: function _updateVars() {
|
3580 |
+
this.windowWidth = window.innerWidth;
|
3581 |
+
this.windowHeight = window.innerHeight;
|
3582 |
+
this.caption = this.el.getAttribute('data-caption') || '';
|
3583 |
+
}
|
3584 |
+
|
3585 |
+
/**
|
3586 |
+
* Open Materialbox
|
3587 |
+
*/
|
3588 |
+
|
3589 |
+
}, {
|
3590 |
+
key: "open",
|
3591 |
+
value: function open() {
|
3592 |
+
var _this19 = this;
|
3593 |
+
|
3594 |
+
this._updateVars();
|
3595 |
+
this.originalWidth = this.el.getBoundingClientRect().width;
|
3596 |
+
this.originalHeight = this.el.getBoundingClientRect().height;
|
3597 |
+
|
3598 |
+
// Set states
|
3599 |
+
this.doneAnimating = false;
|
3600 |
+
this.$el.addClass('active');
|
3601 |
+
this.overlayActive = true;
|
3602 |
+
|
3603 |
+
// onOpenStart callback
|
3604 |
+
if (typeof this.options.onOpenStart === 'function') {
|
3605 |
+
this.options.onOpenStart.call(this, this.el);
|
3606 |
+
}
|
3607 |
+
|
3608 |
+
// Set positioning for placeholder
|
3609 |
+
this.placeholder.css({
|
3610 |
+
width: this.placeholder[0].getBoundingClientRect().width + 'px',
|
3611 |
+
height: this.placeholder[0].getBoundingClientRect().height + 'px',
|
3612 |
+
position: 'relative',
|
3613 |
+
top: 0,
|
3614 |
+
left: 0
|
3615 |
+
});
|
3616 |
+
|
3617 |
+
this._makeAncestorsOverflowVisible();
|
3618 |
+
|
3619 |
+
// Set css on origin
|
3620 |
+
this.$el.css({
|
3621 |
+
position: 'absolute',
|
3622 |
+
'z-index': 1000,
|
3623 |
+
'will-change': 'left, top, width, height'
|
3624 |
+
});
|
3625 |
+
|
3626 |
+
// Change from width or height attribute to css
|
3627 |
+
this.attrWidth = this.$el.attr('width');
|
3628 |
+
this.attrHeight = this.$el.attr('height');
|
3629 |
+
if (this.attrWidth) {
|
3630 |
+
this.$el.css('width', this.attrWidth + 'px');
|
3631 |
+
this.$el.removeAttr('width');
|
3632 |
+
}
|
3633 |
+
if (this.attrHeight) {
|
3634 |
+
this.$el.css('width', this.attrHeight + 'px');
|
3635 |
+
this.$el.removeAttr('height');
|
3636 |
+
}
|
3637 |
+
|
3638 |
+
// Add overlay
|
3639 |
+
this.$overlay = $('<div id="materialbox-overlay"></div>').css({
|
3640 |
+
opacity: 0
|
3641 |
+
}).one('click', function () {
|
3642 |
+
if (_this19.doneAnimating) {
|
3643 |
+
_this19.close();
|
3644 |
+
}
|
3645 |
+
});
|
3646 |
+
|
3647 |
+
// Put before in origin image to preserve z-index layering.
|
3648 |
+
this.$el.before(this.$overlay);
|
3649 |
+
|
3650 |
+
// Set dimensions if needed
|
3651 |
+
var overlayOffset = this.$overlay[0].getBoundingClientRect();
|
3652 |
+
this.$overlay.css({
|
3653 |
+
width: this.windowWidth + 'px',
|
3654 |
+
height: this.windowHeight + 'px',
|
3655 |
+
left: -1 * overlayOffset.left + 'px',
|
3656 |
+
top: -1 * overlayOffset.top + 'px'
|
3657 |
+
});
|
3658 |
+
|
3659 |
+
anim.remove(this.el);
|
3660 |
+
anim.remove(this.$overlay[0]);
|
3661 |
+
|
3662 |
+
// Animate Overlay
|
3663 |
+
anim({
|
3664 |
+
targets: this.$overlay[0],
|
3665 |
+
opacity: 1,
|
3666 |
+
duration: this.options.inDuration,
|
3667 |
+
easing: 'easeOutQuad'
|
3668 |
+
});
|
3669 |
+
|
3670 |
+
// Add and animate caption if it exists
|
3671 |
+
if (this.caption !== '') {
|
3672 |
+
if (this.$photocaption) {
|
3673 |
+
anim.remove(this.$photoCaption[0]);
|
3674 |
+
}
|
3675 |
+
this.$photoCaption = $('<div class="materialbox-caption"></div>');
|
3676 |
+
this.$photoCaption.text(this.caption);
|
3677 |
+
$('body').append(this.$photoCaption);
|
3678 |
+
this.$photoCaption.css({ display: 'inline' });
|
3679 |
+
|
3680 |
+
anim({
|
3681 |
+
targets: this.$photoCaption[0],
|
3682 |
+
opacity: 1,
|
3683 |
+
duration: this.options.inDuration,
|
3684 |
+
easing: 'easeOutQuad'
|
3685 |
+
});
|
3686 |
+
}
|
3687 |
+
|
3688 |
+
// Resize Image
|
3689 |
+
var ratio = 0;
|
3690 |
+
var widthPercent = this.originalWidth / this.windowWidth;
|
3691 |
+
var heightPercent = this.originalHeight / this.windowHeight;
|
3692 |
+
this.newWidth = 0;
|
3693 |
+
this.newHeight = 0;
|
3694 |
+
|
3695 |
+
if (widthPercent > heightPercent) {
|
3696 |
+
ratio = this.originalHeight / this.originalWidth;
|
3697 |
+
this.newWidth = this.windowWidth * 0.9;
|
3698 |
+
this.newHeight = this.windowWidth * 0.9 * ratio;
|
3699 |
+
} else {
|
3700 |
+
ratio = this.originalWidth / this.originalHeight;
|
3701 |
+
this.newWidth = this.windowHeight * 0.9 * ratio;
|
3702 |
+
this.newHeight = this.windowHeight * 0.9;
|
3703 |
+
}
|
3704 |
+
|
3705 |
+
this._animateImageIn();
|
3706 |
+
|
3707 |
+
// Handle Exit triggers
|
3708 |
+
this._handleWindowScrollBound = this._handleWindowScroll.bind(this);
|
3709 |
+
this._handleWindowResizeBound = this._handleWindowResize.bind(this);
|
3710 |
+
this._handleWindowEscapeBound = this._handleWindowEscape.bind(this);
|
3711 |
+
|
3712 |
+
window.addEventListener('scroll', this._handleWindowScrollBound);
|
3713 |
+
window.addEventListener('resize', this._handleWindowResizeBound);
|
3714 |
+
window.addEventListener('keyup', this._handleWindowEscapeBound);
|
3715 |
+
}
|
3716 |
+
|
3717 |
+
/**
|
3718 |
+
* Close Materialbox
|
3719 |
+
*/
|
3720 |
+
|
3721 |
+
}, {
|
3722 |
+
key: "close",
|
3723 |
+
value: function close() {
|
3724 |
+
var _this20 = this;
|
3725 |
+
|
3726 |
+
this._updateVars();
|
3727 |
+
this.doneAnimating = false;
|
3728 |
+
|
3729 |
+
// onCloseStart callback
|
3730 |
+
if (typeof this.options.onCloseStart === 'function') {
|
3731 |
+
this.options.onCloseStart.call(this, this.el);
|
3732 |
+
}
|
3733 |
+
|
3734 |
+
anim.remove(this.el);
|
3735 |
+
anim.remove(this.$overlay[0]);
|
3736 |
+
|
3737 |
+
if (this.caption !== '') {
|
3738 |
+
anim.remove(this.$photoCaption[0]);
|
3739 |
+
}
|
3740 |
+
|
3741 |
+
// disable exit handlers
|
3742 |
+
window.removeEventListener('scroll', this._handleWindowScrollBound);
|
3743 |
+
window.removeEventListener('resize', this._handleWindowResizeBound);
|
3744 |
+
window.removeEventListener('keyup', this._handleWindowEscapeBound);
|
3745 |
+
|
3746 |
+
anim({
|
3747 |
+
targets: this.$overlay[0],
|
3748 |
+
opacity: 0,
|
3749 |
+
duration: this.options.outDuration,
|
3750 |
+
easing: 'easeOutQuad',
|
3751 |
+
complete: function () {
|
3752 |
+
_this20.overlayActive = false;
|
3753 |
+
_this20.$overlay.remove();
|
3754 |
+
}
|
3755 |
+
});
|
3756 |
+
|
3757 |
+
this._animateImageOut();
|
3758 |
+
|
3759 |
+
// Remove Caption + reset css settings on image
|
3760 |
+
if (this.caption !== '') {
|
3761 |
+
anim({
|
3762 |
+
targets: this.$photoCaption[0],
|
3763 |
+
opacity: 0,
|
3764 |
+
duration: this.options.outDuration,
|
3765 |
+
easing: 'easeOutQuad',
|
3766 |
+
complete: function () {
|
3767 |
+
_this20.$photoCaption.remove();
|
3768 |
+
}
|
3769 |
+
});
|
3770 |
+
}
|
3771 |
+
}
|
3772 |
+
}], [{
|
3773 |
+
key: "init",
|
3774 |
+
value: function init(els, options) {
|
3775 |
+
return _get(Materialbox.__proto__ || Object.getPrototypeOf(Materialbox), "init", this).call(this, this, els, options);
|
3776 |
+
}
|
3777 |
+
|
3778 |
+
/**
|
3779 |
+
* Get Instance
|
3780 |
+
*/
|
3781 |
+
|
3782 |
+
}, {
|
3783 |
+
key: "getInstance",
|
3784 |
+
value: function getInstance(el) {
|
3785 |
+
var domElem = !!el.jquery ? el[0] : el;
|
3786 |
+
return domElem.M_Materialbox;
|
3787 |
+
}
|
3788 |
+
}, {
|
3789 |
+
key: "defaults",
|
3790 |
+
get: function () {
|
3791 |
+
return _defaults;
|
3792 |
+
}
|
3793 |
+
}]);
|
3794 |
+
|
3795 |
+
return Materialbox;
|
3796 |
+
}(Component);
|
3797 |
+
|
3798 |
+
M.Materialbox = Materialbox;
|
3799 |
+
|
3800 |
+
if (M.jQueryLoaded) {
|
3801 |
+
M.initializeJqueryWrapper(Materialbox, 'materialbox', 'M_Materialbox');
|
3802 |
+
}
|
3803 |
+
})(cash, M.anime);
|
3804 |
+
;(function ($) {
|
3805 |
+
'use strict';
|
3806 |
+
|
3807 |
+
var _defaults = {
|
3808 |
+
responsiveThreshold: 0 // breakpoint for swipeable
|
3809 |
+
};
|
3810 |
+
|
3811 |
+
var Parallax = function (_Component5) {
|
3812 |
+
_inherits(Parallax, _Component5);
|
3813 |
+
|
3814 |
+
function Parallax(el, options) {
|
3815 |
+
_classCallCheck(this, Parallax);
|
3816 |
+
|
3817 |
+
var _this21 = _possibleConstructorReturn(this, (Parallax.__proto__ || Object.getPrototypeOf(Parallax)).call(this, Parallax, el, options));
|
3818 |
+
|
3819 |
+
_this21.el.M_Parallax = _this21;
|
3820 |
+
|
3821 |
+
/**
|
3822 |
+
* Options for the Parallax
|
3823 |
+
* @member Parallax#options
|
3824 |
+
* @prop {Number} responsiveThreshold
|
3825 |
+
*/
|
3826 |
+
_this21.options = $.extend({}, Parallax.defaults, options);
|
3827 |
+
_this21._enabled = window.innerWidth > _this21.options.responsiveThreshold;
|
3828 |
+
|
3829 |
+
_this21.$img = _this21.$el.find('img').first();
|
3830 |
+
_this21.$img.each(function () {
|
3831 |
+
var el = this;
|
3832 |
+
if (el.complete) $(el).trigger('load');
|
3833 |
+
});
|
3834 |
+
|
3835 |
+
_this21._updateParallax();
|
3836 |
+
_this21._setupEventHandlers();
|
3837 |
+
_this21._setupStyles();
|
3838 |
+
|
3839 |
+
Parallax._parallaxes.push(_this21);
|
3840 |
+
return _this21;
|
3841 |
+
}
|
3842 |
+
|
3843 |
+
_createClass(Parallax, [{
|
3844 |
+
key: "destroy",
|
3845 |
+
|
3846 |
+
|
3847 |
+
/**
|
3848 |
+
* Teardown component
|
3849 |
+
*/
|
3850 |
+
value: function destroy() {
|
3851 |
+
Parallax._parallaxes.splice(Parallax._parallaxes.indexOf(this), 1);
|
3852 |
+
this.$img[0].style.transform = '';
|
3853 |
+
this._removeEventHandlers();
|
3854 |
+
|
3855 |
+
this.$el[0].M_Parallax = undefined;
|
3856 |
+
}
|
3857 |
+
}, {
|
3858 |
+
key: "_setupEventHandlers",
|
3859 |
+
value: function _setupEventHandlers() {
|
3860 |
+
this._handleImageLoadBound = this._handleImageLoad.bind(this);
|
3861 |
+
this.$img[0].addEventListener('load', this._handleImageLoadBound);
|
3862 |
+
|
3863 |
+
if (Parallax._parallaxes.length === 0) {
|
3864 |
+
Parallax._handleScrollThrottled = M.throttle(Parallax._handleScroll, 5);
|
3865 |
+
window.addEventListener('scroll', Parallax._handleScrollThrottled);
|
3866 |
+
|
3867 |
+
Parallax._handleWindowResizeThrottled = M.throttle(Parallax._handleWindowResize, 5);
|
3868 |
+
window.addEventListener('resize', Parallax._handleWindowResizeThrottled);
|
3869 |
+
}
|
3870 |
+
}
|
3871 |
+
}, {
|
3872 |
+
key: "_removeEventHandlers",
|
3873 |
+
value: function _removeEventHandlers() {
|
3874 |
+
this.$img[0].removeEventListener('load', this._handleImageLoadBound);
|
3875 |
+
|
3876 |
+
if (Parallax._parallaxes.length === 0) {
|
3877 |
+
window.removeEventListener('scroll', Parallax._handleScrollThrottled);
|
3878 |
+
window.removeEventListener('resize', Parallax._handleWindowResizeThrottled);
|
3879 |
+
}
|
3880 |
+
}
|
3881 |
+
}, {
|
3882 |
+
key: "_setupStyles",
|
3883 |
+
value: function _setupStyles() {
|
3884 |
+
this.$img[0].style.opacity = 1;
|
3885 |
+
}
|
3886 |
+
}, {
|
3887 |
+
key: "_handleImageLoad",
|
3888 |
+
value: function _handleImageLoad() {
|
3889 |
+
this._updateParallax();
|
3890 |
+
}
|
3891 |
+
}, {
|
3892 |
+
key: "_updateParallax",
|
3893 |
+
value: function _updateParallax() {
|
3894 |
+
var containerHeight = this.$el.height() > 0 ? this.el.parentNode.offsetHeight : 500;
|
3895 |
+
var imgHeight = this.$img[0].offsetHeight;
|
3896 |
+
var parallaxDist = imgHeight - containerHeight;
|
3897 |
+
var bottom = this.$el.offset().top + containerHeight;
|
3898 |
+
var top = this.$el.offset().top;
|
3899 |
+
var scrollTop = M.getDocumentScrollTop();
|
3900 |
+
var windowHeight = window.innerHeight;
|
3901 |
+
var windowBottom = scrollTop + windowHeight;
|
3902 |
+
var percentScrolled = (windowBottom - top) / (containerHeight + windowHeight);
|
3903 |
+
var parallax = parallaxDist * percentScrolled;
|
3904 |
+
|
3905 |
+
if (!this._enabled) {
|
3906 |
+
this.$img[0].style.transform = '';
|
3907 |
+
} else if (bottom > scrollTop && top < scrollTop + windowHeight) {
|
3908 |
+
this.$img[0].style.transform = "translate3D(-50%, " + parallax + "px, 0)";
|
3909 |
+
}
|
3910 |
+
}
|
3911 |
+
}], [{
|
3912 |
+
key: "init",
|
3913 |
+
value: function init(els, options) {
|
3914 |
+
return _get(Parallax.__proto__ || Object.getPrototypeOf(Parallax), "init", this).call(this, this, els, options);
|
3915 |
+
}
|
3916 |
+
|
3917 |
+
/**
|
3918 |
+
* Get Instance
|
3919 |
+
*/
|
3920 |
+
|
3921 |
+
}, {
|
3922 |
+
key: "getInstance",
|
3923 |
+
value: function getInstance(el) {
|
3924 |
+
var domElem = !!el.jquery ? el[0] : el;
|
3925 |
+
return domElem.M_Parallax;
|
3926 |
+
}
|
3927 |
+
}, {
|
3928 |
+
key: "_handleScroll",
|
3929 |
+
value: function _handleScroll() {
|
3930 |
+
for (var i = 0; i < Parallax._parallaxes.length; i++) {
|
3931 |
+
var parallaxInstance = Parallax._parallaxes[i];
|
3932 |
+
parallaxInstance._updateParallax.call(parallaxInstance);
|
3933 |
+
}
|
3934 |
+
}
|
3935 |
+
}, {
|
3936 |
+
key: "_handleWindowResize",
|
3937 |
+
value: function _handleWindowResize() {
|
3938 |
+
for (var i = 0; i < Parallax._parallaxes.length; i++) {
|
3939 |
+
var parallaxInstance = Parallax._parallaxes[i];
|
3940 |
+
parallaxInstance._enabled = window.innerWidth > parallaxInstance.options.responsiveThreshold;
|
3941 |
+
}
|
3942 |
+
}
|
3943 |
+
}, {
|
3944 |
+
key: "defaults",
|
3945 |
+
get: function () {
|
3946 |
+
return _defaults;
|
3947 |
+
}
|
3948 |
+
}]);
|
3949 |
+
|
3950 |
+
return Parallax;
|
3951 |
+
}(Component);
|
3952 |
+
|
3953 |
+
/**
|
3954 |
+
* @static
|
3955 |
+
* @memberof Parallax
|
3956 |
+
*/
|
3957 |
+
|
3958 |
+
|
3959 |
+
Parallax._parallaxes = [];
|
3960 |
+
|
3961 |
+
M.Parallax = Parallax;
|
3962 |
+
|
3963 |
+
if (M.jQueryLoaded) {
|
3964 |
+
M.initializeJqueryWrapper(Parallax, 'parallax', 'M_Parallax');
|
3965 |
+
}
|
3966 |
+
})(cash);
|
3967 |
+
;(function ($, anim) {
|
3968 |
+
'use strict';
|
3969 |
+
|
3970 |
+
var _defaults = {
|
3971 |
+
duration: 300,
|
3972 |
+
onShow: null,
|
3973 |
+
swipeable: false,
|
3974 |
+
responsiveThreshold: Infinity // breakpoint for swipeable
|
3975 |
+
};
|
3976 |
+
|
3977 |
+
/**
|
3978 |
+
* @class
|
3979 |
+
*
|
3980 |
+
*/
|
3981 |
+
|
3982 |
+
var Tabs = function (_Component6) {
|
3983 |
+
_inherits(Tabs, _Component6);
|
3984 |
+
|
3985 |
+
/**
|
3986 |
+
* Construct Tabs instance
|
3987 |
+
* @constructor
|
3988 |
+
* @param {Element} el
|
3989 |
+
* @param {Object} options
|
3990 |
+
*/
|
3991 |
+
function Tabs(el, options) {
|
3992 |
+
_classCallCheck(this, Tabs);
|
3993 |
+
|
3994 |
+
var _this22 = _possibleConstructorReturn(this, (Tabs.__proto__ || Object.getPrototypeOf(Tabs)).call(this, Tabs, el, options));
|
3995 |
+
|
3996 |
+
_this22.el.M_Tabs = _this22;
|
3997 |
+
|
3998 |
+
/**
|
3999 |
+
* Options for the Tabs
|
4000 |
+
* @member Tabs#options
|
4001 |
+
* @prop {Number} duration
|
4002 |
+
* @prop {Function} onShow
|
4003 |
+
* @prop {Boolean} swipeable
|
4004 |
+
* @prop {Number} responsiveThreshold
|
4005 |
+
*/
|
4006 |
+
_this22.options = $.extend({}, Tabs.defaults, options);
|
4007 |
+
|
4008 |
+
// Setup
|
4009 |
+
_this22.$tabLinks = _this22.$el.children('li.tab').children('a');
|
4010 |
+
_this22.index = 0;
|
4011 |
+
_this22._setupActiveTabLink();
|
4012 |
+
|
4013 |
+
// Setup tabs content
|
4014 |
+
if (_this22.options.swipeable) {
|
4015 |
+
_this22._setupSwipeableTabs();
|
4016 |
+
} else {
|
4017 |
+
_this22._setupNormalTabs();
|
4018 |
+
}
|
4019 |
+
|
4020 |
+
// Setup tabs indicator after content to ensure accurate widths
|
4021 |
+
_this22._setTabsAndTabWidth();
|
4022 |
+
_this22._createIndicator();
|
4023 |
+
|
4024 |
+
_this22._setupEventHandlers();
|
4025 |
+
return _this22;
|
4026 |
+
}
|
4027 |
+
|
4028 |
+
_createClass(Tabs, [{
|
4029 |
+
key: "destroy",
|
4030 |
+
|
4031 |
+
|
4032 |
+
/**
|
4033 |
+
* Teardown component
|
4034 |
+
*/
|
4035 |
+
value: function destroy() {
|
4036 |
+
this._removeEventHandlers();
|
4037 |
+
this._indicator.parentNode.removeChild(this._indicator);
|
4038 |
+
|
4039 |
+
if (this.options.swipeable) {
|
4040 |
+
this._teardownSwipeableTabs();
|
4041 |
+
} else {
|
4042 |
+
this._teardownNormalTabs();
|
4043 |
+
}
|
4044 |
+
|
4045 |
+
this.$el[0].M_Tabs = undefined;
|
4046 |
+
}
|
4047 |
+
|
4048 |
+
/**
|
4049 |
+
* Setup Event Handlers
|
4050 |
+
*/
|
4051 |
+
|
4052 |
+
}, {
|
4053 |
+
key: "_setupEventHandlers",
|
4054 |
+
value: function _setupEventHandlers() {
|
4055 |
+
this._handleWindowResizeBound = this._handleWindowResize.bind(this);
|
4056 |
+
window.addEventListener('resize', this._handleWindowResizeBound);
|
4057 |
+
|
4058 |
+
this._handleTabClickBound = this._handleTabClick.bind(this);
|
4059 |
+
this.el.addEventListener('click', this._handleTabClickBound);
|
4060 |
+
}
|
4061 |
+
|
4062 |
+
/**
|
4063 |
+
* Remove Event Handlers
|
4064 |
+
*/
|
4065 |
+
|
4066 |
+
}, {
|
4067 |
+
key: "_removeEventHandlers",
|
4068 |
+
value: function _removeEventHandlers() {
|
4069 |
+
window.removeEventListener('resize', this._handleWindowResizeBound);
|
4070 |
+
this.el.removeEventListener('click', this._handleTabClickBound);
|
4071 |
+
}
|
4072 |
+
|
4073 |
+
/**
|
4074 |
+
* Handle window Resize
|
4075 |
+
*/
|
4076 |
+
|
4077 |
+
}, {
|
4078 |
+
key: "_handleWindowResize",
|
4079 |
+
value: function _handleWindowResize() {
|
4080 |
+
this._setTabsAndTabWidth();
|
4081 |
+
|
4082 |
+
if (this.tabWidth !== 0 && this.tabsWidth !== 0) {
|
4083 |
+
this._indicator.style.left = this._calcLeftPos(this.$activeTabLink) + 'px';
|
4084 |
+
this._indicator.style.right = this._calcRightPos(this.$activeTabLink) + 'px';
|
4085 |
+
}
|
4086 |
+
}
|
4087 |
+
|
4088 |
+
/**
|
4089 |
+
* Handle tab click
|
4090 |
+
* @param {Event} e
|
4091 |
+
*/
|
4092 |
+
|
4093 |
+
}, {
|
4094 |
+
key: "_handleTabClick",
|
4095 |
+
value: function _handleTabClick(e) {
|
4096 |
+
var _this23 = this;
|
4097 |
+
|
4098 |
+
var tab = $(e.target).closest('li.tab');
|
4099 |
+
var tabLink = $(e.target).closest('a');
|
4100 |
+
|
4101 |
+
// Handle click on tab link only
|
4102 |
+
if (!tabLink.length || !tabLink.parent().hasClass('tab')) {
|
4103 |
+
return;
|
4104 |
+
}
|
4105 |
+
|
4106 |
+
if (tab.hasClass('disabled')) {
|
4107 |
+
e.preventDefault();
|
4108 |
+
return;
|
4109 |
+
}
|
4110 |
+
|
4111 |
+
// Act as regular link if target attribute is specified.
|
4112 |
+
if (!!tabLink.attr('target')) {
|
4113 |
+
return;
|
4114 |
+
}
|
4115 |
+
|
4116 |
+
// Make the old tab inactive.
|
4117 |
+
this.$activeTabLink.removeClass('active');
|
4118 |
+
var $oldContent = this.$content;
|
4119 |
+
|
4120 |
+
// Update the variables with the new link and content
|
4121 |
+
this.$activeTabLink = tabLink;
|
4122 |
+
this.$content = $(M.escapeHash(tabLink[0].hash));
|
4123 |
+
this.$tabLinks = this.$el.children('li.tab').children('a');
|
4124 |
+
|
4125 |
+
// Make the tab active.
|
4126 |
+
this.$activeTabLink.addClass('active');
|
4127 |
+
var prevIndex = this.index;
|
4128 |
+
this.index = Math.max(this.$tabLinks.index(tabLink), 0);
|
4129 |
+
|
4130 |
+
// Swap content
|
4131 |
+
if (this.options.swipeable) {
|
4132 |
+
if (this._tabsCarousel) {
|
4133 |
+
this._tabsCarousel.set(this.index, function () {
|
4134 |
+
if (typeof _this23.options.onShow === 'function') {
|
4135 |
+
_this23.options.onShow.call(_this23, _this23.$content[0]);
|
4136 |
+
}
|
4137 |
+
});
|
4138 |
+
}
|
4139 |
+
} else {
|
4140 |
+
if (this.$content.length) {
|
4141 |
+
this.$content[0].style.display = 'block';
|
4142 |
+
this.$content.addClass('active');
|
4143 |
+
if (typeof this.options.onShow === 'function') {
|
4144 |
+
this.options.onShow.call(this, this.$content[0]);
|
4145 |
+
}
|
4146 |
+
|
4147 |
+
if ($oldContent.length && !$oldContent.is(this.$content)) {
|
4148 |
+
$oldContent[0].style.display = 'none';
|
4149 |
+
$oldContent.removeClass('active');
|
4150 |
+
}
|
4151 |
+
}
|
4152 |
+
}
|
4153 |
+
|
4154 |
+
// Update widths after content is swapped (scrollbar bugfix)
|
4155 |
+
this._setTabsAndTabWidth();
|
4156 |
+
|
4157 |
+
// Update indicator
|
4158 |
+
this._animateIndicator(prevIndex);
|
4159 |
+
|
4160 |
+
// Prevent the anchor's default click action
|
4161 |
+
e.preventDefault();
|
4162 |
+
}
|
4163 |
+
|
4164 |
+
/**
|
4165 |
+
* Generate elements for tab indicator.
|
4166 |
+
*/
|
4167 |
+
|
4168 |
+
}, {
|
4169 |
+
key: "_createIndicator",
|
4170 |
+
value: function _createIndicator() {
|
4171 |
+
var _this24 = this;
|
4172 |
+
|
4173 |
+
var indicator = document.createElement('li');
|
4174 |
+
indicator.classList.add('indicator');
|
4175 |
+
|
4176 |
+
this.el.appendChild(indicator);
|
4177 |
+
this._indicator = indicator;
|
4178 |
+
|
4179 |
+
setTimeout(function () {
|
4180 |
+
_this24._indicator.style.left = _this24._calcLeftPos(_this24.$activeTabLink) + 'px';
|
4181 |
+
_this24._indicator.style.right = _this24._calcRightPos(_this24.$activeTabLink) + 'px';
|
4182 |
+
}, 0);
|
4183 |
+
}
|
4184 |
+
|
4185 |
+
/**
|
4186 |
+
* Setup first active tab link.
|
4187 |
+
*/
|
4188 |
+
|
4189 |
+
}, {
|
4190 |
+
key: "_setupActiveTabLink",
|
4191 |
+
value: function _setupActiveTabLink() {
|
4192 |
+
// If the location.hash matches one of the links, use that as the active tab.
|
4193 |
+
this.$activeTabLink = $(this.$tabLinks.filter('[href="' + location.hash + '"]'));
|
4194 |
+
|
4195 |
+
// If no match is found, use the first link or any with class 'active' as the initial active tab.
|
4196 |
+
if (this.$activeTabLink.length === 0) {
|
4197 |
+
this.$activeTabLink = this.$el.children('li.tab').children('a.active').first();
|
4198 |
+
}
|
4199 |
+
if (this.$activeTabLink.length === 0) {
|
4200 |
+
this.$activeTabLink = this.$el.children('li.tab').children('a').first();
|
4201 |
+
}
|
4202 |
+
|
4203 |
+
this.$tabLinks.removeClass('active');
|
4204 |
+
this.$activeTabLink[0].classList.add('active');
|
4205 |
+
|
4206 |
+
this.index = Math.max(this.$tabLinks.index(this.$activeTabLink), 0);
|
4207 |
+
|
4208 |
+
if (this.$activeTabLink.length) {
|
4209 |
+
this.$content = $(M.escapeHash(this.$activeTabLink[0].hash));
|
4210 |
+
this.$content.addClass('active');
|
4211 |
+
}
|
4212 |
+
}
|
4213 |
+
|
4214 |
+
/**
|
4215 |
+
* Setup swipeable tabs
|
4216 |
+
*/
|
4217 |
+
|
4218 |
+
}, {
|
4219 |
+
key: "_setupSwipeableTabs",
|
4220 |
+
value: function _setupSwipeableTabs() {
|
4221 |
+
var _this25 = this;
|
4222 |
+
|
4223 |
+
// Change swipeable according to responsive threshold
|
4224 |
+
if (window.innerWidth > this.options.responsiveThreshold) {
|
4225 |
+
this.options.swipeable = false;
|
4226 |
+
}
|
4227 |
+
|
4228 |
+
var $tabsContent = $();
|
4229 |
+
this.$tabLinks.each(function (link) {
|
4230 |
+
var $currContent = $(M.escapeHash(link.hash));
|
4231 |
+
$currContent.addClass('carousel-item');
|
4232 |
+
$tabsContent = $tabsContent.add($currContent);
|
4233 |
+
});
|
4234 |
+
|
4235 |
+
var $tabsWrapper = $('<div class="tabs-content carousel carousel-slider"></div>');
|
4236 |
+
$tabsContent.first().before($tabsWrapper);
|
4237 |
+
$tabsWrapper.append($tabsContent);
|
4238 |
+
$tabsContent[0].style.display = '';
|
4239 |
+
|
4240 |
+
// Keep active tab index to set initial carousel slide
|
4241 |
+
var activeTabIndex = this.$activeTabLink.closest('.tab').index();
|
4242 |
+
|
4243 |
+
this._tabsCarousel = M.Carousel.init($tabsWrapper[0], {
|
4244 |
+
fullWidth: true,
|
4245 |
+
noWrap: true,
|
4246 |
+
onCycleTo: function (item) {
|
4247 |
+
var prevIndex = _this25.index;
|
4248 |
+
_this25.index = $(item).index();
|
4249 |
+
_this25.$activeTabLink.removeClass('active');
|
4250 |
+
_this25.$activeTabLink = _this25.$tabLinks.eq(_this25.index);
|
4251 |
+
_this25.$activeTabLink.addClass('active');
|
4252 |
+
_this25._animateIndicator(prevIndex);
|
4253 |
+
if (typeof _this25.options.onShow === 'function') {
|
4254 |
+
_this25.options.onShow.call(_this25, _this25.$content[0]);
|
4255 |
+
}
|
4256 |
+
}
|
4257 |
+
});
|
4258 |
+
|
4259 |
+
// Set initial carousel slide to active tab
|
4260 |
+
this._tabsCarousel.set(activeTabIndex);
|
4261 |
+
}
|
4262 |
+
|
4263 |
+
/**
|
4264 |
+
* Teardown normal tabs.
|
4265 |
+
*/
|
4266 |
+
|
4267 |
+
}, {
|
4268 |
+
key: "_teardownSwipeableTabs",
|
4269 |
+
value: function _teardownSwipeableTabs() {
|
4270 |
+
var $tabsWrapper = this._tabsCarousel.$el;
|
4271 |
+
this._tabsCarousel.destroy();
|
4272 |
+
|
4273 |
+
// Unwrap
|
4274 |
+
$tabsWrapper.after($tabsWrapper.children());
|
4275 |
+
$tabsWrapper.remove();
|
4276 |
+
}
|
4277 |
+
|
4278 |
+
/**
|
4279 |
+
* Setup normal tabs.
|
4280 |
+
*/
|
4281 |
+
|
4282 |
+
}, {
|
4283 |
+
key: "_setupNormalTabs",
|
4284 |
+
value: function _setupNormalTabs() {
|
4285 |
+
// Hide Tabs Content
|
4286 |
+
this.$tabLinks.not(this.$activeTabLink).each(function (link) {
|
4287 |
+
if (!!link.hash) {
|
4288 |
+
var $currContent = $(M.escapeHash(link.hash));
|
4289 |
+
if ($currContent.length) {
|
4290 |
+
$currContent[0].style.display = 'none';
|
4291 |
+
}
|
4292 |
+
}
|
4293 |
+
});
|
4294 |
+
}
|
4295 |
+
|
4296 |
+
/**
|
4297 |
+
* Teardown normal tabs.
|
4298 |
+
*/
|
4299 |
+
|
4300 |
+
}, {
|
4301 |
+
key: "_teardownNormalTabs",
|
4302 |
+
value: function _teardownNormalTabs() {
|
4303 |
+
// show Tabs Content
|
4304 |
+
this.$tabLinks.each(function (link) {
|
4305 |
+
if (!!link.hash) {
|
4306 |
+
var $currContent = $(M.escapeHash(link.hash));
|
4307 |
+
if ($currContent.length) {
|
4308 |
+
$currContent[0].style.display = '';
|
4309 |
+
}
|
4310 |
+
}
|
4311 |
+
});
|
4312 |
+
}
|
4313 |
+
|
4314 |
+
/**
|
4315 |
+
* set tabs and tab width
|
4316 |
+
*/
|
4317 |
+
|
4318 |
+
}, {
|
4319 |
+
key: "_setTabsAndTabWidth",
|
4320 |
+
value: function _setTabsAndTabWidth() {
|
4321 |
+
this.tabsWidth = this.$el.width();
|
4322 |
+
this.tabWidth = Math.max(this.tabsWidth, this.el.scrollWidth) / this.$tabLinks.length;
|
4323 |
+
}
|
4324 |
+
|
4325 |
+
/**
|
4326 |
+
* Finds right attribute for indicator based on active tab.
|
4327 |
+
* @param {cash} el
|
4328 |
+
*/
|
4329 |
+
|
4330 |
+
}, {
|
4331 |
+
key: "_calcRightPos",
|
4332 |
+
value: function _calcRightPos(el) {
|
4333 |
+
return Math.ceil(this.tabsWidth - el.position().left - el[0].getBoundingClientRect().width);
|
4334 |
+
}
|
4335 |
+
|
4336 |
+
/**
|
4337 |
+
* Finds left attribute for indicator based on active tab.
|
4338 |
+
* @param {cash} el
|
4339 |
+
*/
|
4340 |
+
|
4341 |
+
}, {
|
4342 |
+
key: "_calcLeftPos",
|
4343 |
+
value: function _calcLeftPos(el) {
|
4344 |
+
return Math.floor(el.position().left);
|
4345 |
+
}
|
4346 |
+
}, {
|
4347 |
+
key: "updateTabIndicator",
|
4348 |
+
value: function updateTabIndicator() {
|
4349 |
+
this._setTabsAndTabWidth();
|
4350 |
+
this._animateIndicator(this.index);
|
4351 |
+
}
|
4352 |
+
|
4353 |
+
/**
|
4354 |
+
* Animates Indicator to active tab.
|
4355 |
+
* @param {Number} prevIndex
|
4356 |
+
*/
|
4357 |
+
|
4358 |
+
}, {
|
4359 |
+
key: "_animateIndicator",
|
4360 |
+
value: function _animateIndicator(prevIndex) {
|
4361 |
+
var leftDelay = 0,
|
4362 |
+
rightDelay = 0;
|
4363 |
+
|
4364 |
+
if (this.index - prevIndex >= 0) {
|
4365 |
+
leftDelay = 90;
|
4366 |
+
} else {
|
4367 |
+
rightDelay = 90;
|
4368 |
+
}
|
4369 |
+
|
4370 |
+
// Animate
|
4371 |
+
var animOptions = {
|
4372 |
+
targets: this._indicator,
|
4373 |
+
left: {
|
4374 |
+
value: this._calcLeftPos(this.$activeTabLink),
|
4375 |
+
delay: leftDelay
|
4376 |
+
},
|
4377 |
+
right: {
|
4378 |
+
value: this._calcRightPos(this.$activeTabLink),
|
4379 |
+
delay: rightDelay
|
4380 |
+
},
|
4381 |
+
duration: this.options.duration,
|
4382 |
+
easing: 'easeOutQuad'
|
4383 |
+
};
|
4384 |
+
anim.remove(this._indicator);
|
4385 |
+
anim(animOptions);
|
4386 |
+
}
|
4387 |
+
|
4388 |
+
/**
|
4389 |
+
* Select tab.
|
4390 |
+
* @param {String} tabId
|
4391 |
+
*/
|
4392 |
+
|
4393 |
+
}, {
|
4394 |
+
key: "select",
|
4395 |
+
value: function select(tabId) {
|
4396 |
+
var tab = this.$tabLinks.filter('[href="#' + tabId + '"]');
|
4397 |
+
if (tab.length) {
|
4398 |
+
tab.trigger('click');
|
4399 |
+
}
|
4400 |
+
}
|
4401 |
+
}], [{
|
4402 |
+
key: "init",
|
4403 |
+
value: function init(els, options) {
|
4404 |
+
return _get(Tabs.__proto__ || Object.getPrototypeOf(Tabs), "init", this).call(this, this, els, options);
|
4405 |
+
}
|
4406 |
+
|
4407 |
+
/**
|
4408 |
+
* Get Instance
|
4409 |
+
*/
|
4410 |
+
|
4411 |
+
}, {
|
4412 |
+
key: "getInstance",
|
4413 |
+
value: function getInstance(el) {
|
4414 |
+
var domElem = !!el.jquery ? el[0] : el;
|
4415 |
+
return domElem.M_Tabs;
|
4416 |
+
}
|
4417 |
+
}, {
|
4418 |
+
key: "defaults",
|
4419 |
+
get: function () {
|
4420 |
+
return _defaults;
|
4421 |
+
}
|
4422 |
+
}]);
|
4423 |
+
|
4424 |
+
return Tabs;
|
4425 |
+
}(Component);
|
4426 |
+
|
4427 |
+
M.Tabs = Tabs;
|
4428 |
+
|
4429 |
+
if (M.jQueryLoaded) {
|
4430 |
+
M.initializeJqueryWrapper(Tabs, 'tabs', 'M_Tabs');
|
4431 |
+
}
|
4432 |
+
})(cash, M.anime);
|
4433 |
+
;(function ($, anim) {
|
4434 |
+
'use strict';
|
4435 |
+
|
4436 |
+
var _defaults = {
|
4437 |
+
exitDelay: 200,
|
4438 |
+
enterDelay: 0,
|
4439 |
+
html: null,
|
4440 |
+
margin: 5,
|
4441 |
+
inDuration: 250,
|
4442 |
+
outDuration: 200,
|
4443 |
+
position: 'bottom',
|
4444 |
+
transitionMovement: 10
|
4445 |
+
};
|
4446 |
+
|
4447 |
+
/**
|
4448 |
+
* @class
|
4449 |
+
*
|
4450 |
+
*/
|
4451 |
+
|
4452 |
+
var Tooltip = function (_Component7) {
|
4453 |
+
_inherits(Tooltip, _Component7);
|
4454 |
+
|
4455 |
+
/**
|
4456 |
+
* Construct Tooltip instance
|
4457 |
+
* @constructor
|
4458 |
+
* @param {Element} el
|
4459 |
+
* @param {Object} options
|
4460 |
+
*/
|
4461 |
+
function Tooltip(el, options) {
|
4462 |
+
_classCallCheck(this, Tooltip);
|
4463 |
+
|
4464 |
+
var _this26 = _possibleConstructorReturn(this, (Tooltip.__proto__ || Object.getPrototypeOf(Tooltip)).call(this, Tooltip, el, options));
|
4465 |
+
|
4466 |
+
_this26.el.M_Tooltip = _this26;
|
4467 |
+
_this26.options = $.extend({}, Tooltip.defaults, options);
|
4468 |
+
|
4469 |
+
_this26.isOpen = false;
|
4470 |
+
_this26.isHovered = false;
|
4471 |
+
_this26.isFocused = false;
|
4472 |
+
_this26._appendTooltipEl();
|
4473 |
+
_this26._setupEventHandlers();
|
4474 |
+
return _this26;
|
4475 |
+
}
|
4476 |
+
|
4477 |
+
_createClass(Tooltip, [{
|
4478 |
+
key: "destroy",
|
4479 |
+
|
4480 |
+
|
4481 |
+
/**
|
4482 |
+
* Teardown component
|
4483 |
+
*/
|
4484 |
+
value: function destroy() {
|
4485 |
+
$(this.tooltipEl).remove();
|
4486 |
+
this._removeEventHandlers();
|
4487 |
+
this.el.M_Tooltip = undefined;
|
4488 |
+
}
|
4489 |
+
}, {
|
4490 |
+
key: "_appendTooltipEl",
|
4491 |
+
value: function _appendTooltipEl() {
|
4492 |
+
var tooltipEl = document.createElement('div');
|
4493 |
+
tooltipEl.classList.add('material-tooltip');
|
4494 |
+
this.tooltipEl = tooltipEl;
|
4495 |
+
|
4496 |
+
var tooltipContentEl = document.createElement('div');
|
4497 |
+
tooltipContentEl.classList.add('tooltip-content');
|
4498 |
+
tooltipContentEl.innerHTML = this.options.html;
|
4499 |
+
tooltipEl.appendChild(tooltipContentEl);
|
4500 |
+
document.body.appendChild(tooltipEl);
|
4501 |
+
}
|
4502 |
+
}, {
|
4503 |
+
key: "_updateTooltipContent",
|
4504 |
+
value: function _updateTooltipContent() {
|
4505 |
+
this.tooltipEl.querySelector('.tooltip-content').innerHTML = this.options.html;
|
4506 |
+
}
|
4507 |
+
}, {
|
4508 |
+
key: "_setupEventHandlers",
|
4509 |
+
value: function _setupEventHandlers() {
|
4510 |
+
this._handleMouseEnterBound = this._handleMouseEnter.bind(this);
|
4511 |
+
this._handleMouseLeaveBound = this._handleMouseLeave.bind(this);
|
4512 |
+
this._handleFocusBound = this._handleFocus.bind(this);
|
4513 |
+
this._handleBlurBound = this._handleBlur.bind(this);
|
4514 |
+
this.el.addEventListener('mouseenter', this._handleMouseEnterBound);
|
4515 |
+
this.el.addEventListener('mouseleave', this._handleMouseLeaveBound);
|
4516 |
+
this.el.addEventListener('focus', this._handleFocusBound, true);
|
4517 |
+
this.el.addEventListener('blur', this._handleBlurBound, true);
|
4518 |
+
}
|
4519 |
+
}, {
|
4520 |
+
key: "_removeEventHandlers",
|
4521 |
+
value: function _removeEventHandlers() {
|
4522 |
+
this.el.removeEventListener('mouseenter', this._handleMouseEnterBound);
|
4523 |
+
this.el.removeEventListener('mouseleave', this._handleMouseLeaveBound);
|
4524 |
+
this.el.removeEventListener('focus', this._handleFocusBound, true);
|
4525 |
+
this.el.removeEventListener('blur', this._handleBlurBound, true);
|
4526 |
+
}
|
4527 |
+
}, {
|
4528 |
+
key: "open",
|
4529 |
+
value: function open(isManual) {
|
4530 |
+
if (this.isOpen) {
|
4531 |
+
return;
|
4532 |
+
}
|
4533 |
+
isManual = isManual === undefined ? true : undefined; // Default value true
|
4534 |
+
this.isOpen = true;
|
4535 |
+
// Update tooltip content with HTML attribute options
|
4536 |
+
this.options = $.extend({}, this.options, this._getAttributeOptions());
|
4537 |
+
this._updateTooltipContent();
|
4538 |
+
this._setEnterDelayTimeout(isManual);
|
4539 |
+
}
|
4540 |
+
}, {
|
4541 |
+
key: "close",
|
4542 |
+
value: function close() {
|
4543 |
+
if (!this.isOpen) {
|
4544 |
+
return;
|
4545 |
+
}
|
4546 |
+
|
4547 |
+
this.isHovered = false;
|
4548 |
+
this.isFocused = false;
|
4549 |
+
this.isOpen = false;
|
4550 |
+
this._setExitDelayTimeout();
|
4551 |
+
}
|
4552 |
+
|
4553 |
+
/**
|
4554 |
+
* Create timeout which delays when the tooltip closes
|
4555 |
+
*/
|
4556 |
+
|
4557 |
+
}, {
|
4558 |
+
key: "_setExitDelayTimeout",
|
4559 |
+
value: function _setExitDelayTimeout() {
|
4560 |
+
var _this27 = this;
|
4561 |
+
|
4562 |
+
clearTimeout(this._exitDelayTimeout);
|
4563 |
+
|
4564 |
+
this._exitDelayTimeout = setTimeout(function () {
|
4565 |
+
if (_this27.isHovered || _this27.isFocused) {
|
4566 |
+
return;
|
4567 |
+
}
|
4568 |
+
|
4569 |
+
_this27._animateOut();
|
4570 |
+
}, this.options.exitDelay);
|
4571 |
+
}
|
4572 |
+
|
4573 |
+
/**
|
4574 |
+
* Create timeout which delays when the toast closes
|
4575 |
+
*/
|
4576 |
+
|
4577 |
+
}, {
|
4578 |
+
key: "_setEnterDelayTimeout",
|
4579 |
+
value: function _setEnterDelayTimeout(isManual) {
|
4580 |
+
var _this28 = this;
|
4581 |
+
|
4582 |
+
clearTimeout(this._enterDelayTimeout);
|
4583 |
+
|
4584 |
+
this._enterDelayTimeout = setTimeout(function () {
|
4585 |
+
if (!_this28.isHovered && !_this28.isFocused && !isManual) {
|
4586 |
+
return;
|
4587 |
+
}
|
4588 |
+
|
4589 |
+
_this28._animateIn();
|
4590 |
+
}, this.options.enterDelay);
|
4591 |
+
}
|
4592 |
+
}, {
|
4593 |
+
key: "_positionTooltip",
|
4594 |
+
value: function _positionTooltip() {
|
4595 |
+
var origin = this.el,
|
4596 |
+
tooltip = this.tooltipEl,
|
4597 |
+
originHeight = origin.offsetHeight,
|
4598 |
+
originWidth = origin.offsetWidth,
|
4599 |
+
tooltipHeight = tooltip.offsetHeight,
|
4600 |
+
tooltipWidth = tooltip.offsetWidth,
|
4601 |
+
newCoordinates = void 0,
|
4602 |
+
margin = this.options.margin,
|
4603 |
+
targetTop = void 0,
|
4604 |
+
targetLeft = void 0;
|
4605 |
+
|
4606 |
+
this.xMovement = 0, this.yMovement = 0;
|
4607 |
+
|
4608 |
+
targetTop = origin.getBoundingClientRect().top + M.getDocumentScrollTop();
|
4609 |
+
targetLeft = origin.getBoundingClientRect().left + M.getDocumentScrollLeft();
|
4610 |
+
|
4611 |
+
if (this.options.position === 'top') {
|
4612 |
+
targetTop += -tooltipHeight - margin;
|
4613 |
+
targetLeft += originWidth / 2 - tooltipWidth / 2;
|
4614 |
+
this.yMovement = -this.options.transitionMovement;
|
4615 |
+
} else if (this.options.position === 'right') {
|
4616 |
+
targetTop += originHeight / 2 - tooltipHeight / 2;
|
4617 |
+
targetLeft += originWidth + margin;
|
4618 |
+
this.xMovement = this.options.transitionMovement;
|
4619 |
+
} else if (this.options.position === 'left') {
|
4620 |
+
targetTop += originHeight / 2 - tooltipHeight / 2;
|
4621 |
+
targetLeft += -tooltipWidth - margin;
|
4622 |
+
this.xMovement = -this.options.transitionMovement;
|
4623 |
+
} else {
|
4624 |
+
targetTop += originHeight + margin;
|
4625 |
+
targetLeft += originWidth / 2 - tooltipWidth / 2;
|
4626 |
+
this.yMovement = this.options.transitionMovement;
|
4627 |
+
}
|
4628 |
+
|
4629 |
+
newCoordinates = this._repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight);
|
4630 |
+
$(tooltip).css({
|
4631 |
+
top: newCoordinates.y + 'px',
|
4632 |
+
left: newCoordinates.x + 'px'
|
4633 |
+
});
|
4634 |
+
}
|
4635 |
+
}, {
|
4636 |
+
key: "_repositionWithinScreen",
|
4637 |
+
value: function _repositionWithinScreen(x, y, width, height) {
|
4638 |
+
var scrollLeft = M.getDocumentScrollLeft();
|
4639 |
+
var scrollTop = M.getDocumentScrollTop();
|
4640 |
+
var newX = x - scrollLeft;
|
4641 |
+
var newY = y - scrollTop;
|
4642 |
+
|
4643 |
+
var bounding = {
|
4644 |
+
left: newX,
|
4645 |
+
top: newY,
|
4646 |
+
width: width,
|
4647 |
+
height: height
|
4648 |
+
};
|
4649 |
+
|
4650 |
+
var offset = this.options.margin + this.options.transitionMovement;
|
4651 |
+
var edges = M.checkWithinContainer(document.body, bounding, offset);
|
4652 |
+
|
4653 |
+
if (edges.left) {
|
4654 |
+
newX = offset;
|
4655 |
+
} else if (edges.right) {
|
4656 |
+
newX -= newX + width - window.innerWidth;
|
4657 |
+
}
|
4658 |
+
|
4659 |
+
if (edges.top) {
|
4660 |
+
newY = offset;
|
4661 |
+
} else if (edges.bottom) {
|
4662 |
+
newY -= newY + height - window.innerHeight;
|
4663 |
+
}
|
4664 |
+
|
4665 |
+
return {
|
4666 |
+
x: newX + scrollLeft,
|
4667 |
+
y: newY + scrollTop
|
4668 |
+
};
|
4669 |
+
}
|
4670 |
+
}, {
|
4671 |
+
key: "_animateIn",
|
4672 |
+
value: function _animateIn() {
|
4673 |
+
this._positionTooltip();
|
4674 |
+
this.tooltipEl.style.visibility = 'visible';
|
4675 |
+
anim.remove(this.tooltipEl);
|
4676 |
+
anim({
|
4677 |
+
targets: this.tooltipEl,
|
4678 |
+
opacity: 1,
|
4679 |
+
translateX: this.xMovement,
|
4680 |
+
translateY: this.yMovement,
|
4681 |
+
duration: this.options.inDuration,
|
4682 |
+
easing: 'easeOutCubic'
|
4683 |
+
});
|
4684 |
+
}
|
4685 |
+
}, {
|
4686 |
+
key: "_animateOut",
|
4687 |
+
value: function _animateOut() {
|
4688 |
+
anim.remove(this.tooltipEl);
|
4689 |
+
anim({
|
4690 |
+
targets: this.tooltipEl,
|
4691 |
+
opacity: 0,
|
4692 |
+
translateX: 0,
|
4693 |
+
translateY: 0,
|
4694 |
+
duration: this.options.outDuration,
|
4695 |
+
easing: 'easeOutCubic'
|
4696 |
+
});
|
4697 |
+
}
|
4698 |
+
}, {
|
4699 |
+
key: "_handleMouseEnter",
|
4700 |
+
value: function _handleMouseEnter() {
|
4701 |
+
this.isHovered = true;
|
4702 |
+
this.isFocused = false; // Allows close of tooltip when opened by focus.
|
4703 |
+
this.open(false);
|
4704 |
+
}
|
4705 |
+
}, {
|
4706 |
+
key: "_handleMouseLeave",
|
4707 |
+
value: function _handleMouseLeave() {
|
4708 |
+
this.isHovered = false;
|
4709 |
+
this.isFocused = false; // Allows close of tooltip when opened by focus.
|
4710 |
+
this.close();
|
4711 |
+
}
|
4712 |
+
}, {
|
4713 |
+
key: "_handleFocus",
|
4714 |
+
value: function _handleFocus() {
|
4715 |
+
if (M.tabPressed) {
|
4716 |
+
this.isFocused = true;
|
4717 |
+
this.open(false);
|
4718 |
+
}
|
4719 |
+
}
|
4720 |
+
}, {
|
4721 |
+
key: "_handleBlur",
|
4722 |
+
value: function _handleBlur() {
|
4723 |
+
this.isFocused = false;
|
4724 |
+
this.close();
|
4725 |
+
}
|
4726 |
+
}, {
|
4727 |
+
key: "_getAttributeOptions",
|
4728 |
+
value: function _getAttributeOptions() {
|
4729 |
+
var attributeOptions = {};
|
4730 |
+
var tooltipTextOption = this.el.getAttribute('data-tooltip');
|
4731 |
+
var positionOption = this.el.getAttribute('data-position');
|
4732 |
+
|
4733 |
+
if (tooltipTextOption) {
|
4734 |
+
attributeOptions.html = tooltipTextOption;
|
4735 |
+
}
|
4736 |
+
|
4737 |
+
if (positionOption) {
|
4738 |
+
attributeOptions.position = positionOption;
|
4739 |
+
}
|
4740 |
+
return attributeOptions;
|
4741 |
+
}
|
4742 |
+
}], [{
|
4743 |
+
key: "init",
|
4744 |
+
value: function init(els, options) {
|
4745 |
+
return _get(Tooltip.__proto__ || Object.getPrototypeOf(Tooltip), "init", this).call(this, this, els, options);
|
4746 |
+
}
|
4747 |
+
|
4748 |
+
/**
|
4749 |
+
* Get Instance
|
4750 |
+
*/
|
4751 |
+
|
4752 |
+
}, {
|
4753 |
+
key: "getInstance",
|
4754 |
+
value: function getInstance(el) {
|
4755 |
+
var domElem = !!el.jquery ? el[0] : el;
|
4756 |
+
return domElem.M_Tooltip;
|
4757 |
+
}
|
4758 |
+
}, {
|
4759 |
+
key: "defaults",
|
4760 |
+
get: function () {
|
4761 |
+
return _defaults;
|
4762 |
+
}
|
4763 |
+
}]);
|
4764 |
+
|
4765 |
+
return Tooltip;
|
4766 |
+
}(Component);
|
4767 |
+
|
4768 |
+
M.Tooltip = Tooltip;
|
4769 |
+
|
4770 |
+
if (M.jQueryLoaded) {
|
4771 |
+
M.initializeJqueryWrapper(Tooltip, 'tooltip', 'M_Tooltip');
|
4772 |
+
}
|
4773 |
+
})(cash, M.anime);
|
4774 |
+
; /*!
|
4775 |
+
* Waves v0.6.4
|
4776 |
+
* http://fian.my.id/Waves
|
4777 |
+
*
|
4778 |
+
* Copyright 2014 Alfiana E. Sibuea and other contributors
|
4779 |
+
* Released under the MIT license
|
4780 |
+
* https://github.com/fians/Waves/blob/master/LICENSE
|
4781 |
+
*/
|
4782 |
+
|
4783 |
+
;(function (window) {
|
4784 |
+
'use strict';
|
4785 |
+
|
4786 |
+
var Waves = Waves || {};
|
4787 |
+
var $$ = document.querySelectorAll.bind(document);
|
4788 |
+
|
4789 |
+
// Find exact position of element
|
4790 |
+
function isWindow(obj) {
|
4791 |
+
return obj !== null && obj === obj.window;
|
4792 |
+
}
|
4793 |
+
|
4794 |
+
function getWindow(elem) {
|
4795 |
+
return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView;
|
4796 |
+
}
|
4797 |
+
|
4798 |
+
function offset(elem) {
|
4799 |
+
var docElem,
|
4800 |
+
win,
|
4801 |
+
box = { top: 0, left: 0 },
|
4802 |
+
doc = elem && elem.ownerDocument;
|
4803 |
+
|
4804 |
+
docElem = doc.documentElement;
|
4805 |
+
|
4806 |
+
if (typeof elem.getBoundingClientRect !== typeof undefined) {
|
4807 |
+
box = elem.getBoundingClientRect();
|
4808 |
+
}
|
4809 |
+
win = getWindow(doc);
|
4810 |
+
return {
|
4811 |
+
top: box.top + win.pageYOffset - docElem.clientTop,
|
4812 |
+
left: box.left + win.pageXOffset - docElem.clientLeft
|
4813 |
+
};
|
4814 |
+
}
|
4815 |
+
|
4816 |
+
function convertStyle(obj) {
|
4817 |
+
var style = '';
|
4818 |
+
|
4819 |
+
for (var a in obj) {
|
4820 |
+
if (obj.hasOwnProperty(a)) {
|
4821 |
+
style += a + ':' + obj[a] + ';';
|
4822 |
+
}
|
4823 |
+
}
|
4824 |
+
|
4825 |
+
return style;
|
4826 |
+
}
|
4827 |
+
|
4828 |
+
var Effect = {
|
4829 |
+
|
4830 |
+
// Effect delay
|
4831 |
+
duration: 750,
|
4832 |
+
|
4833 |
+
show: function (e, element) {
|
4834 |
+
|
4835 |
+
// Disable right click
|
4836 |
+
if (e.button === 2) {
|
4837 |
+
return false;
|
4838 |
+
}
|
4839 |
+
|
4840 |
+
var el = element || this;
|
4841 |
+
|
4842 |
+
// Create ripple
|
4843 |
+
var ripple = document.createElement('div');
|
4844 |
+
ripple.className = 'waves-ripple';
|
4845 |
+
el.appendChild(ripple);
|
4846 |
+
|
4847 |
+
// Get click coordinate and element witdh
|
4848 |
+
var pos = offset(el);
|
4849 |
+
var relativeY = e.pageY - pos.top;
|
4850 |
+
var relativeX = e.pageX - pos.left;
|
4851 |
+
var scale = 'scale(' + el.clientWidth / 100 * 10 + ')';
|
4852 |
+
|
4853 |
+
// Support for touch devices
|
4854 |
+
if ('touches' in e) {
|
4855 |
+
relativeY = e.touches[0].pageY - pos.top;
|
4856 |
+
relativeX = e.touches[0].pageX - pos.left;
|
4857 |
+
}
|
4858 |
+
|
4859 |
+
// Attach data to element
|
4860 |
+
ripple.setAttribute('data-hold', Date.now());
|
4861 |
+
ripple.setAttribute('data-scale', scale);
|
4862 |
+
ripple.setAttribute('data-x', relativeX);
|
4863 |
+
ripple.setAttribute('data-y', relativeY);
|
4864 |
+
|
4865 |
+
// Set ripple position
|
4866 |
+
var rippleStyle = {
|
4867 |
+
'top': relativeY + 'px',
|
4868 |
+
'left': relativeX + 'px'
|
4869 |
+
};
|
4870 |
+
|
4871 |
+
ripple.className = ripple.className + ' waves-notransition';
|
4872 |
+
ripple.setAttribute('style', convertStyle(rippleStyle));
|
4873 |
+
ripple.className = ripple.className.replace('waves-notransition', '');
|
4874 |
+
|
4875 |
+
// Scale the ripple
|
4876 |
+
rippleStyle['-webkit-transform'] = scale;
|
4877 |
+
rippleStyle['-moz-transform'] = scale;
|
4878 |
+
rippleStyle['-ms-transform'] = scale;
|
4879 |
+
rippleStyle['-o-transform'] = scale;
|
4880 |
+
rippleStyle.transform = scale;
|
4881 |
+
rippleStyle.opacity = '1';
|
4882 |
+
|
4883 |
+
rippleStyle['-webkit-transition-duration'] = Effect.duration + 'ms';
|
4884 |
+
rippleStyle['-moz-transition-duration'] = Effect.duration + 'ms';
|
4885 |
+
rippleStyle['-o-transition-duration'] = Effect.duration + 'ms';
|
4886 |
+
rippleStyle['transition-duration'] = Effect.duration + 'ms';
|
4887 |
+
|
4888 |
+
rippleStyle['-webkit-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
|
4889 |
+
rippleStyle['-moz-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
|
4890 |
+
rippleStyle['-o-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
|
4891 |
+
rippleStyle['transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
|
4892 |
+
|
4893 |
+
ripple.setAttribute('style', convertStyle(rippleStyle));
|
4894 |
+
},
|
4895 |
+
|
4896 |
+
hide: function (e) {
|
4897 |
+
TouchHandler.touchup(e);
|
4898 |
+
|
4899 |
+
var el = this;
|
4900 |
+
var width = el.clientWidth * 1.4;
|
4901 |
+
|
4902 |
+
// Get first ripple
|
4903 |
+
var ripple = null;
|
4904 |
+
var ripples = el.getElementsByClassName('waves-ripple');
|
4905 |
+
if (ripples.length > 0) {
|
4906 |
+
ripple = ripples[ripples.length - 1];
|
4907 |
+
} else {
|
4908 |
+
return false;
|
4909 |
+
}
|
4910 |
+
|
4911 |
+
var relativeX = ripple.getAttribute('data-x');
|
4912 |
+
var relativeY = ripple.getAttribute('data-y');
|
4913 |
+
var scale = ripple.getAttribute('data-scale');
|
4914 |
+
|
4915 |
+
// Get delay beetween mousedown and mouse leave
|
4916 |
+
var diff = Date.now() - Number(ripple.getAttribute('data-hold'));
|
4917 |
+
var delay = 350 - diff;
|
4918 |
+
|
4919 |
+
if (delay < 0) {
|
4920 |
+
delay = 0;
|
4921 |
+
}
|
4922 |
+
|
4923 |
+
// Fade out ripple after delay
|
4924 |
+
setTimeout(function () {
|
4925 |
+
var style = {
|
4926 |
+
'top': relativeY + 'px',
|
4927 |
+
'left': relativeX + 'px',
|
4928 |
+
'opacity': '0',
|
4929 |
+
|
4930 |
+
// Duration
|
4931 |
+
'-webkit-transition-duration': Effect.duration + 'ms',
|
4932 |
+
'-moz-transition-duration': Effect.duration + 'ms',
|
4933 |
+
'-o-transition-duration': Effect.duration + 'ms',
|
4934 |
+
'transition-duration': Effect.duration + 'ms',
|
4935 |
+
'-webkit-transform': scale,
|
4936 |
+
'-moz-transform': scale,
|
4937 |
+
'-ms-transform': scale,
|
4938 |
+
'-o-transform': scale,
|
4939 |
+
'transform': scale
|
4940 |
+
};
|
4941 |
+
|
4942 |
+
ripple.setAttribute('style', convertStyle(style));
|
4943 |
+
|
4944 |
+
setTimeout(function () {
|
4945 |
+
try {
|
4946 |
+
el.removeChild(ripple);
|
4947 |
+
} catch (e) {
|
4948 |
+
return false;
|
4949 |
+
}
|
4950 |
+
}, Effect.duration);
|
4951 |
+
}, delay);
|
4952 |
+
},
|
4953 |
+
|
4954 |
+
// Little hack to make <input> can perform waves effect
|
4955 |
+
wrapInput: function (elements) {
|
4956 |
+
for (var a = 0; a < elements.length; a++) {
|
4957 |
+
var el = elements[a];
|
4958 |
+
|
4959 |
+
if (el.tagName.toLowerCase() === 'input') {
|
4960 |
+
var parent = el.parentNode;
|
4961 |
+
|
4962 |
+
// If input already have parent just pass through
|
4963 |
+
if (parent.tagName.toLowerCase() === 'i' && parent.className.indexOf('waves-effect') !== -1) {
|
4964 |
+
continue;
|
4965 |
+
}
|
4966 |
+
|
4967 |
+
// Put element class and style to the specified parent
|
4968 |
+
var wrapper = document.createElement('i');
|
4969 |
+
wrapper.className = el.className + ' waves-input-wrapper';
|
4970 |
+
|
4971 |
+
var elementStyle = el.getAttribute('style');
|
4972 |
+
|
4973 |
+
if (!elementStyle) {
|
4974 |
+
elementStyle = '';
|
4975 |
+
}
|
4976 |
+
|
4977 |
+
wrapper.setAttribute('style', elementStyle);
|
4978 |
+
|
4979 |
+
el.className = 'waves-button-input';
|
4980 |
+
el.removeAttribute('style');
|
4981 |
+
|
4982 |
+
// Put element as child
|
4983 |
+
parent.replaceChild(wrapper, el);
|
4984 |
+
wrapper.appendChild(el);
|
4985 |
+
}
|
4986 |
+
}
|
4987 |
+
}
|
4988 |
+
};
|
4989 |
+
|
4990 |
+
/**
|
4991 |
+
* Disable mousedown event for 500ms during and after touch
|
4992 |
+
*/
|
4993 |
+
var TouchHandler = {
|
4994 |
+
/* uses an integer rather than bool so there's no issues with
|
4995 |
+
* needing to clear timeouts if another touch event occurred
|
4996 |
+
* within the 500ms. Cannot mouseup between touchstart and
|
4997 |
+
* touchend, nor in the 500ms after touchend. */
|
4998 |
+
touches: 0,
|
4999 |
+
allowEvent: function (e) {
|
5000 |
+
var allow = true;
|
5001 |
+
|
5002 |
+
if (e.type === 'touchstart') {
|
5003 |
+
TouchHandler.touches += 1; //push
|
5004 |
+
} else if (e.type === 'touchend' || e.type === 'touchcancel') {
|
5005 |
+
setTimeout(function () {
|
5006 |
+
if (TouchHandler.touches > 0) {
|
5007 |
+
TouchHandler.touches -= 1; //pop after 500ms
|
5008 |
+
}
|
5009 |
+
}, 500);
|
5010 |
+
} else if (e.type === 'mousedown' && TouchHandler.touches > 0) {
|
5011 |
+
allow = false;
|
5012 |
+
}
|
5013 |
+
|
5014 |
+
return allow;
|
5015 |
+
},
|
5016 |
+
touchup: function (e) {
|
5017 |
+
TouchHandler.allowEvent(e);
|
5018 |
+
}
|
5019 |
+
};
|
5020 |
+
|
5021 |
+
/**
|
5022 |
+
* Delegated click handler for .waves-effect element.
|
5023 |
+
* returns null when .waves-effect element not in "click tree"
|
5024 |
+
*/
|
5025 |
+
function getWavesEffectElement(e) {
|
5026 |
+
if (TouchHandler.allowEvent(e) === false) {
|
5027 |
+
return null;
|
5028 |
+
}
|
5029 |
+
|
5030 |
+
var element = null;
|
5031 |
+
var target = e.target || e.srcElement;
|
5032 |
+
|
5033 |
+
while (target.parentNode !== null) {
|
5034 |
+
if (!(target instanceof SVGElement) && target.className.indexOf('waves-effect') !== -1) {
|
5035 |
+
element = target;
|
5036 |
+
break;
|
5037 |
+
}
|
5038 |
+
target = target.parentNode;
|
5039 |
+
}
|
5040 |
+
return element;
|
5041 |
+
}
|
5042 |
+
|
5043 |
+
/**
|
5044 |
+
* Bubble the click and show effect if .waves-effect elem was found
|
5045 |
+
*/
|
5046 |
+
function showEffect(e) {
|
5047 |
+
var element = getWavesEffectElement(e);
|
5048 |
+
|
5049 |
+
if (element !== null) {
|
5050 |
+
Effect.show(e, element);
|
5051 |
+
|
5052 |
+
if ('ontouchstart' in window) {
|
5053 |
+
element.addEventListener('touchend', Effect.hide, false);
|
5054 |
+
element.addEventListener('touchcancel', Effect.hide, false);
|
5055 |
+
}
|
5056 |
+
|
5057 |
+
element.addEventListener('mouseup', Effect.hide, false);
|
5058 |
+
element.addEventListener('mouseleave', Effect.hide, false);
|
5059 |
+
element.addEventListener('dragend', Effect.hide, false);
|
5060 |
+
}
|
5061 |
+
}
|
5062 |
+
|
5063 |
+
Waves.displayEffect = function (options) {
|
5064 |
+
options = options || {};
|
5065 |
+
|
5066 |
+
if ('duration' in options) {
|
5067 |
+
Effect.duration = options.duration;
|
5068 |
+
}
|
5069 |
+
|
5070 |
+
//Wrap input inside <i> tag
|
5071 |
+
Effect.wrapInput($$('.waves-effect'));
|
5072 |
+
|
5073 |
+
if ('ontouchstart' in window) {
|
5074 |
+
document.body.addEventListener('touchstart', showEffect, false);
|
5075 |
+
}
|
5076 |
+
|
5077 |
+
document.body.addEventListener('mousedown', showEffect, false);
|
5078 |
+
};
|
5079 |
+
|
5080 |
+
/**
|
5081 |
+
* Attach Waves to an input element (or any element which doesn't
|
5082 |
+
* bubble mouseup/mousedown events).
|
5083 |
+
* Intended to be used with dynamically loaded forms/inputs, or
|
5084 |
+
* where the user doesn't want a delegated click handler.
|
5085 |
+
*/
|
5086 |
+
Waves.attach = function (element) {
|
5087 |
+
//FUTURE: automatically add waves classes and allow users
|
5088 |
+
// to specify them with an options param? Eg. light/classic/button
|
5089 |
+
if (element.tagName.toLowerCase() === 'input') {
|
5090 |
+
Effect.wrapInput([element]);
|
5091 |
+
element = element.parentNode;
|
5092 |
+
}
|
5093 |
+
|
5094 |
+
if ('ontouchstart' in window) {
|
5095 |
+
element.addEventListener('touchstart', showEffect, false);
|
5096 |
+
}
|
5097 |
+
|
5098 |
+
element.addEventListener('mousedown', showEffect, false);
|
5099 |
+
};
|
5100 |
+
|
5101 |
+
window.Waves = Waves;
|
5102 |
+
|
5103 |
+
document.addEventListener('DOMContentLoaded', function () {
|
5104 |
+
Waves.displayEffect();
|
5105 |
+
}, false);
|
5106 |
+
})(window);
|
5107 |
+
;(function ($, anim) {
|
5108 |
+
'use strict';
|
5109 |
+
|
5110 |
+
var _defaults = {
|
5111 |
+
html: '',
|
5112 |
+
displayLength: 4000,
|
5113 |
+
inDuration: 300,
|
5114 |
+
outDuration: 375,
|
5115 |
+
classes: '',
|
5116 |
+
completeCallback: null,
|
5117 |
+
activationPercent: 0.8
|
5118 |
+
};
|
5119 |
+
|
5120 |
+
var Toast = function () {
|
5121 |
+
function Toast(options) {
|
5122 |
+
_classCallCheck(this, Toast);
|
5123 |
+
|
5124 |
+
/**
|
5125 |
+
* Options for the toast
|
5126 |
+
* @member Toast#options
|
5127 |
+
*/
|
5128 |
+
this.options = $.extend({}, Toast.defaults, options);
|
5129 |
+
this.message = this.options.html;
|
5130 |
+
|
5131 |
+
/**
|
5132 |
+
* Describes current pan state toast
|
5133 |
+
* @type {Boolean}
|
5134 |
+
*/
|
5135 |
+
this.panning = false;
|
5136 |
+
|
5137 |
+
/**
|
5138 |
+
* Time remaining until toast is removed
|
5139 |
+
*/
|
5140 |
+
this.timeRemaining = this.options.displayLength;
|
5141 |
+
|
5142 |
+
if (Toast._toasts.length === 0) {
|
5143 |
+
Toast._createContainer();
|
5144 |
+
}
|
5145 |
+
|
5146 |
+
// Create new toast
|
5147 |
+
Toast._toasts.push(this);
|
5148 |
+
var toastElement = this._createToast();
|
5149 |
+
toastElement.M_Toast = this;
|
5150 |
+
this.el = toastElement;
|
5151 |
+
this.$el = $(toastElement);
|
5152 |
+
this._animateIn();
|
5153 |
+
this._setTimer();
|
5154 |
+
}
|
5155 |
+
|
5156 |
+
_createClass(Toast, [{
|
5157 |
+
key: "_createToast",
|
5158 |
+
|
5159 |
+
|
5160 |
+
/**
|
5161 |
+
* Create toast and append it to toast container
|
5162 |
+
*/
|
5163 |
+
value: function _createToast() {
|
5164 |
+
var toast = document.createElement('div');
|
5165 |
+
toast.classList.add('toast');
|
5166 |
+
|
5167 |
+
// Add custom classes onto toast
|
5168 |
+
if (!!this.options.classes.length) {
|
5169 |
+
$(toast).addClass(this.options.classes);
|
5170 |
+
}
|
5171 |
+
|
5172 |
+
// Set content
|
5173 |
+
if (typeof HTMLElement === 'object' ? this.message instanceof HTMLElement : this.message && typeof this.message === 'object' && this.message !== null && this.message.nodeType === 1 && typeof this.message.nodeName === 'string') {
|
5174 |
+
toast.appendChild(this.message);
|
5175 |
+
|
5176 |
+
// Check if it is jQuery object
|
5177 |
+
} else if (!!this.message.jquery) {
|
5178 |
+
$(toast).append(this.message[0]);
|
5179 |
+
|
5180 |
+
// Insert as html;
|
5181 |
+
} else {
|
5182 |
+
toast.innerHTML = this.message;
|
5183 |
+
}
|
5184 |
+
|
5185 |
+
// Append toasft
|
5186 |
+
Toast._container.appendChild(toast);
|
5187 |
+
return toast;
|
5188 |
+
}
|
5189 |
+
|
5190 |
+
/**
|
5191 |
+
* Animate in toast
|
5192 |
+
*/
|
5193 |
+
|
5194 |
+
}, {
|
5195 |
+
key: "_animateIn",
|
5196 |
+
value: function _animateIn() {
|
5197 |
+
// Animate toast in
|
5198 |
+
anim({
|
5199 |
+
targets: this.el,
|
5200 |
+
top: 0,
|
5201 |
+
opacity: 1,
|
5202 |
+
duration: this.options.inDuration,
|
5203 |
+
easing: 'easeOutCubic'
|
5204 |
+
});
|
5205 |
+
}
|
5206 |
+
|
5207 |
+
/**
|
5208 |
+
* Create setInterval which automatically removes toast when timeRemaining >= 0
|
5209 |
+
* has been reached
|
5210 |
+
*/
|
5211 |
+
|
5212 |
+
}, {
|
5213 |
+
key: "_setTimer",
|
5214 |
+
value: function _setTimer() {
|
5215 |
+
var _this29 = this;
|
5216 |
+
|
5217 |
+
if (this.timeRemaining !== Infinity) {
|
5218 |
+
this.counterInterval = setInterval(function () {
|
5219 |
+
// If toast is not being dragged, decrease its time remaining
|
5220 |
+
if (!_this29.panning) {
|
5221 |
+
_this29.timeRemaining -= 20;
|
5222 |
+
}
|
5223 |
+
|
5224 |
+
// Animate toast out
|
5225 |
+
if (_this29.timeRemaining <= 0) {
|
5226 |
+
_this29.dismiss();
|
5227 |
+
}
|
5228 |
+
}, 20);
|
5229 |
+
}
|
5230 |
+
}
|
5231 |
+
|
5232 |
+
/**
|
5233 |
+
* Dismiss toast with animation
|
5234 |
+
*/
|
5235 |
+
|
5236 |
+
}, {
|
5237 |
+
key: "dismiss",
|
5238 |
+
value: function dismiss() {
|
5239 |
+
var _this30 = this;
|
5240 |
+
|
5241 |
+
window.clearInterval(this.counterInterval);
|
5242 |
+
var activationDistance = this.el.offsetWidth * this.options.activationPercent;
|
5243 |
+
|
5244 |
+
if (this.wasSwiped) {
|
5245 |
+
this.el.style.transition = 'transform .05s, opacity .05s';
|
5246 |
+
this.el.style.transform = "translateX(" + activationDistance + "px)";
|
5247 |
+
this.el.style.opacity = 0;
|
5248 |
+
}
|
5249 |
+
|
5250 |
+
anim({
|
5251 |
+
targets: this.el,
|
5252 |
+
opacity: 0,
|
5253 |
+
marginTop: -40,
|
5254 |
+
duration: this.options.outDuration,
|
5255 |
+
easing: 'easeOutExpo',
|
5256 |
+
complete: function () {
|
5257 |
+
// Call the optional callback
|
5258 |
+
if (typeof _this30.options.completeCallback === 'function') {
|
5259 |
+
_this30.options.completeCallback();
|
5260 |
+
}
|
5261 |
+
// Remove toast from DOM
|
5262 |
+
_this30.$el.remove();
|
5263 |
+
Toast._toasts.splice(Toast._toasts.indexOf(_this30), 1);
|
5264 |
+
if (Toast._toasts.length === 0) {
|
5265 |
+
Toast._removeContainer();
|
5266 |
+
}
|
5267 |
+
}
|
5268 |
+
});
|
5269 |
+
}
|
5270 |
+
}], [{
|
5271 |
+
key: "getInstance",
|
5272 |
+
|
5273 |
+
|
5274 |
+
/**
|
5275 |
+
* Get Instance
|
5276 |
+
*/
|
5277 |
+
value: function getInstance(el) {
|
5278 |
+
var domElem = !!el.jquery ? el[0] : el;
|
5279 |
+
return domElem.M_Toast;
|
5280 |
+
}
|
5281 |
+
|
5282 |
+
/**
|
5283 |
+
* Append toast container and add event handlers
|
5284 |
+
*/
|
5285 |
+
|
5286 |
+
}, {
|
5287 |
+
key: "_createContainer",
|
5288 |
+
value: function _createContainer() {
|
5289 |
+
var container = document.createElement('div');
|
5290 |
+
container.setAttribute('id', 'toast-container');
|
5291 |
+
|
5292 |
+
// Add event handler
|
5293 |
+
container.addEventListener('touchstart', Toast._onDragStart);
|
5294 |
+
container.addEventListener('touchmove', Toast._onDragMove);
|
5295 |
+
container.addEventListener('touchend', Toast._onDragEnd);
|
5296 |
+
|
5297 |
+
container.addEventListener('mousedown', Toast._onDragStart);
|
5298 |
+
document.addEventListener('mousemove', Toast._onDragMove);
|
5299 |
+
document.addEventListener('mouseup', Toast._onDragEnd);
|
5300 |
+
|
5301 |
+
document.body.appendChild(container);
|
5302 |
+
Toast._container = container;
|
5303 |
+
}
|
5304 |
+
|
5305 |
+
/**
|
5306 |
+
* Remove toast container and event handlers
|
5307 |
+
*/
|
5308 |
+
|
5309 |
+
}, {
|
5310 |
+
key: "_removeContainer",
|
5311 |
+
value: function _removeContainer() {
|
5312 |
+
// Add event handler
|
5313 |
+
document.removeEventListener('mousemove', Toast._onDragMove);
|
5314 |
+
document.removeEventListener('mouseup', Toast._onDragEnd);
|
5315 |
+
|
5316 |
+
$(Toast._container).remove();
|
5317 |
+
Toast._container = null;
|
5318 |
+
}
|
5319 |
+
|
5320 |
+
/**
|
5321 |
+
* Begin drag handler
|
5322 |
+
* @param {Event} e
|
5323 |
+
*/
|
5324 |
+
|
5325 |
+
}, {
|
5326 |
+
key: "_onDragStart",
|
5327 |
+
value: function _onDragStart(e) {
|
5328 |
+
if (e.target && $(e.target).closest('.toast').length) {
|
5329 |
+
var $toast = $(e.target).closest('.toast');
|
5330 |
+
var toast = $toast[0].M_Toast;
|
5331 |
+
toast.panning = true;
|
5332 |
+
Toast._draggedToast = toast;
|
5333 |
+
toast.el.classList.add('panning');
|
5334 |
+
toast.el.style.transition = '';
|
5335 |
+
toast.startingXPos = Toast._xPos(e);
|
5336 |
+
toast.time = Date.now();
|
5337 |
+
toast.xPos = Toast._xPos(e);
|
5338 |
+
}
|
5339 |
+
}
|
5340 |
+
|
5341 |
+
/**
|
5342 |
+
* Drag move handler
|
5343 |
+
* @param {Event} e
|
5344 |
+
*/
|
5345 |
+
|
5346 |
+
}, {
|
5347 |
+
key: "_onDragMove",
|
5348 |
+
value: function _onDragMove(e) {
|
5349 |
+
if (!!Toast._draggedToast) {
|
5350 |
+
e.preventDefault();
|
5351 |
+
var toast = Toast._draggedToast;
|
5352 |
+
toast.deltaX = Math.abs(toast.xPos - Toast._xPos(e));
|
5353 |
+
toast.xPos = Toast._xPos(e);
|
5354 |
+
toast.velocityX = toast.deltaX / (Date.now() - toast.time);
|
5355 |
+
toast.time = Date.now();
|
5356 |
+
|
5357 |
+
var totalDeltaX = toast.xPos - toast.startingXPos;
|
5358 |
+
var activationDistance = toast.el.offsetWidth * toast.options.activationPercent;
|
5359 |
+
toast.el.style.transform = "translateX(" + totalDeltaX + "px)";
|
5360 |
+
toast.el.style.opacity = 1 - Math.abs(totalDeltaX / activationDistance);
|
5361 |
+
}
|
5362 |
+
}
|
5363 |
+
|
5364 |
+
/**
|
5365 |
+
* End drag handler
|
5366 |
+
*/
|
5367 |
+
|
5368 |
+
}, {
|
5369 |
+
key: "_onDragEnd",
|
5370 |
+
value: function _onDragEnd() {
|
5371 |
+
if (!!Toast._draggedToast) {
|
5372 |
+
var toast = Toast._draggedToast;
|
5373 |
+
toast.panning = false;
|
5374 |
+
toast.el.classList.remove('panning');
|
5375 |
+
|
5376 |
+
var totalDeltaX = toast.xPos - toast.startingXPos;
|
5377 |
+
var activationDistance = toast.el.offsetWidth * toast.options.activationPercent;
|
5378 |
+
var shouldBeDismissed = Math.abs(totalDeltaX) > activationDistance || toast.velocityX > 1;
|
5379 |
+
|
5380 |
+
// Remove toast
|
5381 |
+
if (shouldBeDismissed) {
|
5382 |
+
toast.wasSwiped = true;
|
5383 |
+
toast.dismiss();
|
5384 |
+
|
5385 |
+
// Animate toast back to original position
|
5386 |
+
} else {
|
5387 |
+
toast.el.style.transition = 'transform .2s, opacity .2s';
|
5388 |
+
toast.el.style.transform = '';
|
5389 |
+
toast.el.style.opacity = '';
|
5390 |
+
}
|
5391 |
+
Toast._draggedToast = null;
|
5392 |
+
}
|
5393 |
+
}
|
5394 |
+
|
5395 |
+
/**
|
5396 |
+
* Get x position of mouse or touch event
|
5397 |
+
* @param {Event} e
|
5398 |
+
*/
|
5399 |
+
|
5400 |
+
}, {
|
5401 |
+
key: "_xPos",
|
5402 |
+
value: function _xPos(e) {
|
5403 |
+
if (e.targetTouches && e.targetTouches.length >= 1) {
|
5404 |
+
return e.targetTouches[0].clientX;
|
5405 |
+
}
|
5406 |
+
// mouse event
|
5407 |
+
return e.clientX;
|
5408 |
+
}
|
5409 |
+
|
5410 |
+
/**
|
5411 |
+
* Remove all toasts
|
5412 |
+
*/
|
5413 |
+
|
5414 |
+
}, {
|
5415 |
+
key: "dismissAll",
|
5416 |
+
value: function dismissAll() {
|
5417 |
+
for (var toastIndex in Toast._toasts) {
|
5418 |
+
Toast._toasts[toastIndex].dismiss();
|
5419 |
+
}
|
5420 |
+
}
|
5421 |
+
}, {
|
5422 |
+
key: "defaults",
|
5423 |
+
get: function () {
|
5424 |
+
return _defaults;
|
5425 |
+
}
|
5426 |
+
}]);
|
5427 |
+
|
5428 |
+
return Toast;
|
5429 |
+
}();
|
5430 |
+
|
5431 |
+
/**
|
5432 |
+
* @static
|
5433 |
+
* @memberof Toast
|
5434 |
+
* @type {Array.<Toast>}
|
5435 |
+
*/
|
5436 |
+
|
5437 |
+
|
5438 |
+
Toast._toasts = [];
|
5439 |
+
|
5440 |
+
/**
|
5441 |
+
* @static
|
5442 |
+
* @memberof Toast
|
5443 |
+
*/
|
5444 |
+
Toast._container = null;
|
5445 |
+
|
5446 |
+
/**
|
5447 |
+
* @static
|
5448 |
+
* @memberof Toast
|
5449 |
+
* @type {Toast}
|
5450 |
+
*/
|
5451 |
+
Toast._draggedToast = null;
|
5452 |
+
|
5453 |
+
M.Toast = Toast;
|
5454 |
+
M.toast = function (options) {
|
5455 |
+
return new Toast(options);
|
5456 |
+
};
|
5457 |
+
})(cash, M.anime);
|
5458 |
+
;(function ($, anim) {
|
5459 |
+
'use strict';
|
5460 |
+
|
5461 |
+
var _defaults = {
|
5462 |
+
edge: 'left',
|
5463 |
+
draggable: true,
|
5464 |
+
inDuration: 250,
|
5465 |
+
outDuration: 200,
|
5466 |
+
onOpenStart: null,
|
5467 |
+
onOpenEnd: null,
|
5468 |
+
onCloseStart: null,
|
5469 |
+
onCloseEnd: null,
|
5470 |
+
preventScrolling: true
|
5471 |
+
};
|
5472 |
+
|
5473 |
+
/**
|
5474 |
+
* @class
|
5475 |
+
*/
|
5476 |
+
|
5477 |
+
var Sidenav = function (_Component8) {
|
5478 |
+
_inherits(Sidenav, _Component8);
|
5479 |
+
|
5480 |
+
/**
|
5481 |
+
* Construct Sidenav instance and set up overlay
|
5482 |
+
* @constructor
|
5483 |
+
* @param {Element} el
|
5484 |
+
* @param {Object} options
|
5485 |
+
*/
|
5486 |
+
function Sidenav(el, options) {
|
5487 |
+
_classCallCheck(this, Sidenav);
|
5488 |
+
|
5489 |
+
var _this31 = _possibleConstructorReturn(this, (Sidenav.__proto__ || Object.getPrototypeOf(Sidenav)).call(this, Sidenav, el, options));
|
5490 |
+
|
5491 |
+
_this31.el.M_Sidenav = _this31;
|
5492 |
+
_this31.id = _this31.$el.attr('id');
|
5493 |
+
|
5494 |
+
/**
|
5495 |
+
* Options for the Sidenav
|
5496 |
+
* @member Sidenav#options
|
5497 |
+
* @prop {String} [edge='left'] - Side of screen on which Sidenav appears
|
5498 |
+
* @prop {Boolean} [draggable=true] - Allow swipe gestures to open/close Sidenav
|
5499 |
+
* @prop {Number} [inDuration=250] - Length in ms of enter transition
|
5500 |
+
* @prop {Number} [outDuration=200] - Length in ms of exit transition
|
5501 |
+
* @prop {Function} onOpenStart - Function called when sidenav starts entering
|
5502 |
+
* @prop {Function} onOpenEnd - Function called when sidenav finishes entering
|
5503 |
+
* @prop {Function} onCloseStart - Function called when sidenav starts exiting
|
5504 |
+
* @prop {Function} onCloseEnd - Function called when sidenav finishes exiting
|
5505 |
+
*/
|
5506 |
+
_this31.options = $.extend({}, Sidenav.defaults, options);
|
5507 |
+
|
5508 |
+
/**
|
5509 |
+
* Describes open/close state of Sidenav
|
5510 |
+
* @type {Boolean}
|
5511 |
+
*/
|
5512 |
+
_this31.isOpen = false;
|
5513 |
+
|
5514 |
+
/**
|
5515 |
+
* Describes if Sidenav is fixed
|
5516 |
+
* @type {Boolean}
|
5517 |
+
*/
|
5518 |
+
_this31.isFixed = _this31.el.classList.contains('sidenav-fixed');
|
5519 |
+
|
5520 |
+
/**
|
5521 |
+
* Describes if Sidenav is being draggeed
|
5522 |
+
* @type {Boolean}
|
5523 |
+
*/
|
5524 |
+
_this31.isDragged = false;
|
5525 |
+
|
5526 |
+
// Window size variables for window resize checks
|
5527 |
+
_this31.lastWindowWidth = window.innerWidth;
|
5528 |
+
_this31.lastWindowHeight = window.innerHeight;
|
5529 |
+
|
5530 |
+
_this31._createOverlay();
|
5531 |
+
_this31._createDragTarget();
|
5532 |
+
_this31._setupEventHandlers();
|
5533 |
+
_this31._setupClasses();
|
5534 |
+
_this31._setupFixed();
|
5535 |
+
|
5536 |
+
Sidenav._sidenavs.push(_this31);
|
5537 |
+
return _this31;
|
5538 |
+
}
|
5539 |
+
|
5540 |
+
_createClass(Sidenav, [{
|
5541 |
+
key: "destroy",
|
5542 |
+
|
5543 |
+
|
5544 |
+
/**
|
5545 |
+
* Teardown component
|
5546 |
+
*/
|
5547 |
+
value: function destroy() {
|
5548 |
+
this._removeEventHandlers();
|
5549 |
+
this._enableBodyScrolling();
|
5550 |
+
this._overlay.parentNode.removeChild(this._overlay);
|
5551 |
+
this.dragTarget.parentNode.removeChild(this.dragTarget);
|
5552 |
+
this.el.M_Sidenav = undefined;
|
5553 |
+
this.el.style.transform = '';
|
5554 |
+
|
5555 |
+
var index = Sidenav._sidenavs.indexOf(this);
|
5556 |
+
if (index >= 0) {
|
5557 |
+
Sidenav._sidenavs.splice(index, 1);
|
5558 |
+
}
|
5559 |
+
}
|
5560 |
+
}, {
|
5561 |
+
key: "_createOverlay",
|
5562 |
+
value: function _createOverlay() {
|
5563 |
+
var overlay = document.createElement('div');
|
5564 |
+
this._closeBound = this.close.bind(this);
|
5565 |
+
overlay.classList.add('sidenav-overlay');
|
5566 |
+
|
5567 |
+
overlay.addEventListener('click', this._closeBound);
|
5568 |
+
|
5569 |
+
document.body.appendChild(overlay);
|
5570 |
+
this._overlay = overlay;
|
5571 |
+
}
|
5572 |
+
}, {
|
5573 |
+
key: "_setupEventHandlers",
|
5574 |
+
value: function _setupEventHandlers() {
|
5575 |
+
if (Sidenav._sidenavs.length === 0) {
|
5576 |
+
document.body.addEventListener('click', this._handleTriggerClick);
|
5577 |
+
}
|
5578 |
+
|
5579 |
+
this._handleDragTargetDragBound = this._handleDragTargetDrag.bind(this);
|
5580 |
+
this._handleDragTargetReleaseBound = this._handleDragTargetRelease.bind(this);
|
5581 |
+
this._handleCloseDragBound = this._handleCloseDrag.bind(this);
|
5582 |
+
this._handleCloseReleaseBound = this._handleCloseRelease.bind(this);
|
5583 |
+
this._handleCloseTriggerClickBound = this._handleCloseTriggerClick.bind(this);
|
5584 |
+
|
5585 |
+
this.dragTarget.addEventListener('touchmove', this._handleDragTargetDragBound);
|
5586 |
+
this.dragTarget.addEventListener('touchend', this._handleDragTargetReleaseBound);
|
5587 |
+
this._overlay.addEventListener('touchmove', this._handleCloseDragBound);
|
5588 |
+
this._overlay.addEventListener('touchend', this._handleCloseReleaseBound);
|
5589 |
+
this.el.addEventListener('touchmove', this._handleCloseDragBound);
|
5590 |
+
this.el.addEventListener('touchend', this._handleCloseReleaseBound);
|
5591 |
+
this.el.addEventListener('click', this._handleCloseTriggerClickBound);
|
5592 |
+
|
5593 |
+
// Add resize for side nav fixed
|
5594 |
+
if (this.isFixed) {
|
5595 |
+
this._handleWindowResizeBound = this._handleWindowResize.bind(this);
|
5596 |
+
window.addEventListener('resize', this._handleWindowResizeBound);
|
5597 |
+
}
|
5598 |
+
}
|
5599 |
+
}, {
|
5600 |
+
key: "_removeEventHandlers",
|
5601 |
+
value: function _removeEventHandlers() {
|
5602 |
+
if (Sidenav._sidenavs.length === 1) {
|
5603 |
+
document.body.removeEventListener('click', this._handleTriggerClick);
|
5604 |
+
}
|
5605 |
+
|
5606 |
+
this.dragTarget.removeEventListener('touchmove', this._handleDragTargetDragBound);
|
5607 |
+
this.dragTarget.removeEventListener('touchend', this._handleDragTargetReleaseBound);
|
5608 |
+
this._overlay.removeEventListener('touchmove', this._handleCloseDragBound);
|
5609 |
+
this._overlay.removeEventListener('touchend', this._handleCloseReleaseBound);
|
5610 |
+
this.el.removeEventListener('touchmove', this._handleCloseDragBound);
|
5611 |
+
this.el.removeEventListener('touchend', this._handleCloseReleaseBound);
|
5612 |
+
this.el.removeEventListener('click', this._handleCloseTriggerClickBound);
|
5613 |
+
|
5614 |
+
// Remove resize for side nav fixed
|
5615 |
+
if (this.isFixed) {
|
5616 |
+
window.removeEventListener('resize', this._handleWindowResizeBound);
|
5617 |
+
}
|
5618 |
+
}
|
5619 |
+
|
5620 |
+
/**
|
5621 |
+
* Handle Trigger Click
|
5622 |
+
* @param {Event} e
|
5623 |
+
*/
|
5624 |
+
|
5625 |
+
}, {
|
5626 |
+
key: "_handleTriggerClick",
|
5627 |
+
value: function _handleTriggerClick(e) {
|
5628 |
+
var $trigger = $(e.target).closest('.sidenav-trigger');
|
5629 |
+
if (e.target && $trigger.length) {
|
5630 |
+
var sidenavId = M.getIdFromTrigger($trigger[0]);
|
5631 |
+
|
5632 |
+
var sidenavInstance = document.getElementById(sidenavId).M_Sidenav;
|
5633 |
+
if (sidenavInstance) {
|
5634 |
+
sidenavInstance.open($trigger);
|
5635 |
+
}
|
5636 |
+
e.preventDefault();
|
5637 |
+
}
|
5638 |
+
}
|
5639 |
+
|
5640 |
+
/**
|
5641 |
+
* Set variables needed at the beggining of drag
|
5642 |
+
* and stop any current transition.
|
5643 |
+
* @param {Event} e
|
5644 |
+
*/
|
5645 |
+
|
5646 |
+
}, {
|
5647 |
+
key: "_startDrag",
|
5648 |
+
value: function _startDrag(e) {
|
5649 |
+
var clientX = e.targetTouches[0].clientX;
|
5650 |
+
this.isDragged = true;
|
5651 |
+
this._startingXpos = clientX;
|
5652 |
+
this._xPos = this._startingXpos;
|
5653 |
+
this._time = Date.now();
|
5654 |
+
this._width = this.el.getBoundingClientRect().width;
|
5655 |
+
this._overlay.style.display = 'block';
|
5656 |
+
this._initialScrollTop = this.isOpen ? this.el.scrollTop : M.getDocumentScrollTop();
|
5657 |
+
this._verticallyScrolling = false;
|
5658 |
+
anim.remove(this.el);
|
5659 |
+
anim.remove(this._overlay);
|
5660 |
+
}
|
5661 |
+
|
5662 |
+
/**
|
5663 |
+
* Set variables needed at each drag move update tick
|
5664 |
+
* @param {Event} e
|
5665 |
+
*/
|
5666 |
+
|
5667 |
+
}, {
|
5668 |
+
key: "_dragMoveUpdate",
|
5669 |
+
value: function _dragMoveUpdate(e) {
|
5670 |
+
var clientX = e.targetTouches[0].clientX;
|
5671 |
+
var currentScrollTop = this.isOpen ? this.el.scrollTop : M.getDocumentScrollTop();
|
5672 |
+
this.deltaX = Math.abs(this._xPos - clientX);
|
5673 |
+
this._xPos = clientX;
|
5674 |
+
this.velocityX = this.deltaX / (Date.now() - this._time);
|
5675 |
+
this._time = Date.now();
|
5676 |
+
if (this._initialScrollTop !== currentScrollTop) {
|
5677 |
+
this._verticallyScrolling = true;
|
5678 |
+
}
|
5679 |
+
}
|
5680 |
+
|
5681 |
+
/**
|
5682 |
+
* Handles Dragging of Sidenav
|
5683 |
+
* @param {Event} e
|
5684 |
+
*/
|
5685 |
+
|
5686 |
+
}, {
|
5687 |
+
key: "_handleDragTargetDrag",
|
5688 |
+
value: function _handleDragTargetDrag(e) {
|
5689 |
+
// Check if draggable
|
5690 |
+
if (!this.options.draggable || this._isCurrentlyFixed() || this._verticallyScrolling) {
|
5691 |
+
return;
|
5692 |
+
}
|
5693 |
+
|
5694 |
+
// If not being dragged, set initial drag start variables
|
5695 |
+
if (!this.isDragged) {
|
5696 |
+
this._startDrag(e);
|
5697 |
+
}
|
5698 |
+
|
5699 |
+
// Run touchmove updates
|
5700 |
+
this._dragMoveUpdate(e);
|
5701 |
+
|
5702 |
+
// Calculate raw deltaX
|
5703 |
+
var totalDeltaX = this._xPos - this._startingXpos;
|
5704 |
+
|
5705 |
+
// dragDirection is the attempted user drag direction
|
5706 |
+
var dragDirection = totalDeltaX > 0 ? 'right' : 'left';
|
5707 |
+
|
5708 |
+
// Don't allow totalDeltaX to exceed Sidenav width or be dragged in the opposite direction
|
5709 |
+
totalDeltaX = Math.min(this._width, Math.abs(totalDeltaX));
|
5710 |
+
if (this.options.edge === dragDirection) {
|
5711 |
+
totalDeltaX = 0;
|
5712 |
+
}
|
5713 |
+
|
5714 |
+
/**
|
5715 |
+
* transformX is the drag displacement
|
5716 |
+
* transformPrefix is the initial transform placement
|
5717 |
+
* Invert values if Sidenav is right edge
|
5718 |
+
*/
|
5719 |
+
var transformX = totalDeltaX;
|
5720 |
+
var transformPrefix = 'translateX(-100%)';
|
5721 |
+
if (this.options.edge === 'right') {
|
5722 |
+
transformPrefix = 'translateX(100%)';
|
5723 |
+
transformX = -transformX;
|
5724 |
+
}
|
5725 |
+
|
5726 |
+
// Calculate open/close percentage of sidenav, with open = 1 and close = 0
|
5727 |
+
this.percentOpen = Math.min(1, totalDeltaX / this._width);
|
5728 |
+
|
5729 |
+
// Set transform and opacity styles
|
5730 |
+
this.el.style.transform = transformPrefix + " translateX(" + transformX + "px)";
|
5731 |
+
this._overlay.style.opacity = this.percentOpen;
|
5732 |
+
}
|
5733 |
+
|
5734 |
+
/**
|
5735 |
+
* Handle Drag Target Release
|
5736 |
+
*/
|
5737 |
+
|
5738 |
+
}, {
|
5739 |
+
key: "_handleDragTargetRelease",
|
5740 |
+
value: function _handleDragTargetRelease() {
|
5741 |
+
if (this.isDragged) {
|
5742 |
+
if (this.percentOpen > 0.2) {
|
5743 |
+
this.open();
|
5744 |
+
} else {
|
5745 |
+
this._animateOut();
|
5746 |
+
}
|
5747 |
+
|
5748 |
+
this.isDragged = false;
|
5749 |
+
this._verticallyScrolling = false;
|
5750 |
+
}
|
5751 |
+
}
|
5752 |
+
|
5753 |
+
/**
|
5754 |
+
* Handle Close Drag
|
5755 |
+
* @param {Event} e
|
5756 |
+
*/
|
5757 |
+
|
5758 |
+
}, {
|
5759 |
+
key: "_handleCloseDrag",
|
5760 |
+
value: function _handleCloseDrag(e) {
|
5761 |
+
if (this.isOpen) {
|
5762 |
+
// Check if draggable
|
5763 |
+
if (!this.options.draggable || this._isCurrentlyFixed() || this._verticallyScrolling) {
|
5764 |
+
return;
|
5765 |
+
}
|
5766 |
+
|
5767 |
+
// If not being dragged, set initial drag start variables
|
5768 |
+
if (!this.isDragged) {
|
5769 |
+
this._startDrag(e);
|
5770 |
+
}
|
5771 |
+
|
5772 |
+
// Run touchmove updates
|
5773 |
+
this._dragMoveUpdate(e);
|
5774 |
+
|
5775 |
+
// Calculate raw deltaX
|
5776 |
+
var totalDeltaX = this._xPos - this._startingXpos;
|
5777 |
+
|
5778 |
+
// dragDirection is the attempted user drag direction
|
5779 |
+
var dragDirection = totalDeltaX > 0 ? 'right' : 'left';
|
5780 |
+
|
5781 |
+
// Don't allow totalDeltaX to exceed Sidenav width or be dragged in the opposite direction
|
5782 |
+
totalDeltaX = Math.min(this._width, Math.abs(totalDeltaX));
|
5783 |
+
if (this.options.edge !== dragDirection) {
|
5784 |
+
totalDeltaX = 0;
|
5785 |
+
}
|
5786 |
+
|
5787 |
+
var transformX = -totalDeltaX;
|
5788 |
+
if (this.options.edge === 'right') {
|
5789 |
+
transformX = -transformX;
|
5790 |
+
}
|
5791 |
+
|
5792 |
+
// Calculate open/close percentage of sidenav, with open = 1 and close = 0
|
5793 |
+
this.percentOpen = Math.min(1, 1 - totalDeltaX / this._width);
|
5794 |
+
|
5795 |
+
// Set transform and opacity styles
|
5796 |
+
this.el.style.transform = "translateX(" + transformX + "px)";
|
5797 |
+
this._overlay.style.opacity = this.percentOpen;
|
5798 |
+
}
|
5799 |
+
}
|
5800 |
+
|
5801 |
+
/**
|
5802 |
+
* Handle Close Release
|
5803 |
+
*/
|
5804 |
+
|
5805 |
+
}, {
|
5806 |
+
key: "_handleCloseRelease",
|
5807 |
+
value: function _handleCloseRelease() {
|
5808 |
+
if (this.isOpen && this.isDragged) {
|
5809 |
+
if (this.percentOpen > 0.8) {
|
5810 |
+
this._animateIn();
|
5811 |
+
} else {
|
5812 |
+
this.close();
|
5813 |
+
}
|
5814 |
+
|
5815 |
+
this.isDragged = false;
|
5816 |
+
this._verticallyScrolling = false;
|
5817 |
+
}
|
5818 |
+
}
|
5819 |
+
|
5820 |
+
/**
|
5821 |
+
* Handles closing of Sidenav when element with class .sidenav-close
|
5822 |
+
*/
|
5823 |
+
|
5824 |
+
}, {
|
5825 |
+
key: "_handleCloseTriggerClick",
|
5826 |
+
value: function _handleCloseTriggerClick(e) {
|
5827 |
+
var $closeTrigger = $(e.target).closest('.sidenav-close');
|
5828 |
+
if ($closeTrigger.length && !this._isCurrentlyFixed()) {
|
5829 |
+
this.close();
|
5830 |
+
}
|
5831 |
+
}
|
5832 |
+
|
5833 |
+
/**
|
5834 |
+
* Handle Window Resize
|
5835 |
+
*/
|
5836 |
+
|
5837 |
+
}, {
|
5838 |
+
key: "_handleWindowResize",
|
5839 |
+
value: function _handleWindowResize() {
|
5840 |
+
// Only handle horizontal resizes
|
5841 |
+
if (this.lastWindowWidth !== window.innerWidth) {
|
5842 |
+
if (window.innerWidth > 992) {
|
5843 |
+
this.open();
|
5844 |
+
} else {
|
5845 |
+
this.close();
|
5846 |
+
}
|
5847 |
+
}
|
5848 |
+
|
5849 |
+
this.lastWindowWidth = window.innerWidth;
|
5850 |
+
this.lastWindowHeight = window.innerHeight;
|
5851 |
+
}
|
5852 |
+
}, {
|
5853 |
+
key: "_setupClasses",
|
5854 |
+
value: function _setupClasses() {
|
5855 |
+
if (this.options.edge === 'right') {
|
5856 |
+
this.el.classList.add('right-aligned');
|
5857 |
+
this.dragTarget.classList.add('right-aligned');
|
5858 |
+
}
|
5859 |
+
}
|
5860 |
+
}, {
|
5861 |
+
key: "_removeClasses",
|
5862 |
+
value: function _removeClasses() {
|
5863 |
+
this.el.classList.remove('right-aligned');
|
5864 |
+
this.dragTarget.classList.remove('right-aligned');
|
5865 |
+
}
|
5866 |
+
}, {
|
5867 |
+
key: "_setupFixed",
|
5868 |
+
value: function _setupFixed() {
|
5869 |
+
if (this._isCurrentlyFixed()) {
|
5870 |
+
this.open();
|
5871 |
+
}
|
5872 |
+
}
|
5873 |
+
}, {
|
5874 |
+
key: "_isCurrentlyFixed",
|
5875 |
+
value: function _isCurrentlyFixed() {
|
5876 |
+
return this.isFixed && window.innerWidth > 992;
|
5877 |
+
}
|
5878 |
+
}, {
|
5879 |
+
key: "_createDragTarget",
|
5880 |
+
value: function _createDragTarget() {
|
5881 |
+
var dragTarget = document.createElement('div');
|
5882 |
+
dragTarget.classList.add('drag-target');
|
5883 |
+
document.body.appendChild(dragTarget);
|
5884 |
+
this.dragTarget = dragTarget;
|
5885 |
+
}
|
5886 |
+
}, {
|
5887 |
+
key: "_preventBodyScrolling",
|
5888 |
+
value: function _preventBodyScrolling() {
|
5889 |
+
var body = document.body;
|
5890 |
+
body.style.overflow = 'hidden';
|
5891 |
+
}
|
5892 |
+
}, {
|
5893 |
+
key: "_enableBodyScrolling",
|
5894 |
+
value: function _enableBodyScrolling() {
|
5895 |
+
var body = document.body;
|
5896 |
+
body.style.overflow = '';
|
5897 |
+
}
|
5898 |
+
}, {
|
5899 |
+
key: "open",
|
5900 |
+
value: function open() {
|
5901 |
+
if (this.isOpen === true) {
|
5902 |
+
return;
|
5903 |
+
}
|
5904 |
+
|
5905 |
+
this.isOpen = true;
|
5906 |
+
|
5907 |
+
// Run onOpenStart callback
|
5908 |
+
if (typeof this.options.onOpenStart === 'function') {
|
5909 |
+
this.options.onOpenStart.call(this, this.el);
|
5910 |
+
}
|
5911 |
+
|
5912 |
+
// Handle fixed Sidenav
|
5913 |
+
if (this._isCurrentlyFixed()) {
|
5914 |
+
anim.remove(this.el);
|
5915 |
+
anim({
|
5916 |
+
targets: this.el,
|
5917 |
+
translateX: 0,
|
5918 |
+
duration: 0,
|
5919 |
+
easing: 'easeOutQuad'
|
5920 |
+
});
|
5921 |
+
this._enableBodyScrolling();
|
5922 |
+
this._overlay.style.display = 'none';
|
5923 |
+
|
5924 |
+
// Handle non-fixed Sidenav
|
5925 |
+
} else {
|
5926 |
+
if (this.options.preventScrolling) {
|
5927 |
+
this._preventBodyScrolling();
|
5928 |
+
}
|
5929 |
+
|
5930 |
+
if (!this.isDragged || this.percentOpen != 1) {
|
5931 |
+
this._animateIn();
|
5932 |
+
}
|
5933 |
+
}
|
5934 |
+
}
|
5935 |
+
}, {
|
5936 |
+
key: "close",
|
5937 |
+
value: function close() {
|
5938 |
+
if (this.isOpen === false) {
|
5939 |
+
return;
|
5940 |
+
}
|
5941 |
+
|
5942 |
+
this.isOpen = false;
|
5943 |
+
|
5944 |
+
// Run onCloseStart callback
|
5945 |
+
if (typeof this.options.onCloseStart === 'function') {
|
5946 |
+
this.options.onCloseStart.call(this, this.el);
|
5947 |
+
}
|
5948 |
+
|
5949 |
+
// Handle fixed Sidenav
|
5950 |
+
if (this._isCurrentlyFixed()) {
|
5951 |
+
var transformX = this.options.edge === 'left' ? '-105%' : '105%';
|
5952 |
+
this.el.style.transform = "translateX(" + transformX + ")";
|
5953 |
+
|
5954 |
+
// Handle non-fixed Sidenav
|
5955 |
+
} else {
|
5956 |
+
this._enableBodyScrolling();
|
5957 |
+
|
5958 |
+
if (!this.isDragged || this.percentOpen != 0) {
|
5959 |
+
this._animateOut();
|
5960 |
+
} else {
|
5961 |
+
this._overlay.style.display = 'none';
|
5962 |
+
}
|
5963 |
+
}
|
5964 |
+
}
|
5965 |
+
}, {
|
5966 |
+
key: "_animateIn",
|
5967 |
+
value: function _animateIn() {
|
5968 |
+
this._animateSidenavIn();
|
5969 |
+
this._animateOverlayIn();
|
5970 |
+
}
|
5971 |
+
}, {
|
5972 |
+
key: "_animateSidenavIn",
|
5973 |
+
value: function _animateSidenavIn() {
|
5974 |
+
var _this32 = this;
|
5975 |
+
|
5976 |
+
var slideOutPercent = this.options.edge === 'left' ? -1 : 1;
|
5977 |
+
if (this.isDragged) {
|
5978 |
+
slideOutPercent = this.options.edge === 'left' ? slideOutPercent + this.percentOpen : slideOutPercent - this.percentOpen;
|
5979 |
+
}
|
5980 |
+
|
5981 |
+
anim.remove(this.el);
|
5982 |
+
anim({
|
5983 |
+
targets: this.el,
|
5984 |
+
translateX: [slideOutPercent * 100 + "%", 0],
|
5985 |
+
duration: this.options.inDuration,
|
5986 |
+
easing: 'easeOutQuad',
|
5987 |
+
complete: function () {
|
5988 |
+
// Run onOpenEnd callback
|
5989 |
+
if (typeof _this32.options.onOpenEnd === 'function') {
|
5990 |
+
_this32.options.onOpenEnd.call(_this32, _this32.el);
|
5991 |
+
}
|
5992 |
+
}
|
5993 |
+
});
|
5994 |
+
}
|
5995 |
+
}, {
|
5996 |
+
key: "_animateOverlayIn",
|
5997 |
+
value: function _animateOverlayIn() {
|
5998 |
+
var start = 0;
|
5999 |
+
if (this.isDragged) {
|
6000 |
+
start = this.percentOpen;
|
6001 |
+
} else {
|
6002 |
+
$(this._overlay).css({
|
6003 |
+
display: 'block'
|
6004 |
+
});
|
6005 |
+
}
|
6006 |
+
|
6007 |
+
anim.remove(this._overlay);
|
6008 |
+
anim({
|
6009 |
+
targets: this._overlay,
|
6010 |
+
opacity: [start, 1],
|
6011 |
+
duration: this.options.inDuration,
|
6012 |
+
easing: 'easeOutQuad'
|
6013 |
+
});
|
6014 |
+
}
|
6015 |
+
}, {
|
6016 |
+
key: "_animateOut",
|
6017 |
+
value: function _animateOut() {
|
6018 |
+
this._animateSidenavOut();
|
6019 |
+
this._animateOverlayOut();
|
6020 |
+
}
|
6021 |
+
}, {
|
6022 |
+
key: "_animateSidenavOut",
|
6023 |
+
value: function _animateSidenavOut() {
|
6024 |
+
var _this33 = this;
|
6025 |
+
|
6026 |
+
var endPercent = this.options.edge === 'left' ? -1 : 1;
|
6027 |
+
var slideOutPercent = 0;
|
6028 |
+
if (this.isDragged) {
|
6029 |
+
slideOutPercent = this.options.edge === 'left' ? endPercent + this.percentOpen : endPercent - this.percentOpen;
|
6030 |
+
}
|
6031 |
+
|
6032 |
+
anim.remove(this.el);
|
6033 |
+
anim({
|
6034 |
+
targets: this.el,
|
6035 |
+
translateX: [slideOutPercent * 100 + "%", endPercent * 105 + "%"],
|
6036 |
+
duration: this.options.outDuration,
|
6037 |
+
easing: 'easeOutQuad',
|
6038 |
+
complete: function () {
|
6039 |
+
// Run onOpenEnd callback
|
6040 |
+
if (typeof _this33.options.onCloseEnd === 'function') {
|
6041 |
+
_this33.options.onCloseEnd.call(_this33, _this33.el);
|
6042 |
+
}
|
6043 |
+
}
|
6044 |
+
});
|
6045 |
+
}
|
6046 |
+
}, {
|
6047 |
+
key: "_animateOverlayOut",
|
6048 |
+
value: function _animateOverlayOut() {
|
6049 |
+
var _this34 = this;
|
6050 |
+
|
6051 |
+
anim.remove(this._overlay);
|
6052 |
+
anim({
|
6053 |
+
targets: this._overlay,
|
6054 |
+
opacity: 0,
|
6055 |
+
duration: this.options.outDuration,
|
6056 |
+
easing: 'easeOutQuad',
|
6057 |
+
complete: function () {
|
6058 |
+
$(_this34._overlay).css('display', 'none');
|
6059 |
+
}
|
6060 |
+
});
|
6061 |
+
}
|
6062 |
+
}], [{
|
6063 |
+
key: "init",
|
6064 |
+
value: function init(els, options) {
|
6065 |
+
return _get(Sidenav.__proto__ || Object.getPrototypeOf(Sidenav), "init", this).call(this, this, els, options);
|
6066 |
+
}
|
6067 |
+
|
6068 |
+
/**
|
6069 |
+
* Get Instance
|
6070 |
+
*/
|
6071 |
+
|
6072 |
+
}, {
|
6073 |
+
key: "getInstance",
|
6074 |
+
value: function getInstance(el) {
|
6075 |
+
var domElem = !!el.jquery ? el[0] : el;
|
6076 |
+
return domElem.M_Sidenav;
|
6077 |
+
}
|
6078 |
+
}, {
|
6079 |
+
key: "defaults",
|
6080 |
+
get: function () {
|
6081 |
+
return _defaults;
|
6082 |
+
}
|
6083 |
+
}]);
|
6084 |
+
|
6085 |
+
return Sidenav;
|
6086 |
+
}(Component);
|
6087 |
+
|
6088 |
+
/**
|
6089 |
+
* @static
|
6090 |
+
* @memberof Sidenav
|
6091 |
+
* @type {Array.<Sidenav>}
|
6092 |
+
*/
|
6093 |
+
|
6094 |
+
|
6095 |
+
Sidenav._sidenavs = [];
|
6096 |
+
|
6097 |
+
M.Sidenav = Sidenav;
|
6098 |
+
|
6099 |
+
if (M.jQueryLoaded) {
|
6100 |
+
M.initializeJqueryWrapper(Sidenav, 'sidenav', 'M_Sidenav');
|
6101 |
+
}
|
6102 |
+
})(cash, M.anime);
|
6103 |
+
;(function ($, anim) {
|
6104 |
+
'use strict';
|
6105 |
+
|
6106 |
+
var _defaults = {
|
6107 |
+
throttle: 100,
|
6108 |
+
scrollOffset: 200, // offset - 200 allows elements near bottom of page to scroll
|
6109 |
+
activeClass: 'active',
|
6110 |
+
getActiveElement: function (id) {
|
6111 |
+
return 'a[href="#' + id + '"]';
|
6112 |
+
}
|
6113 |
+
};
|
6114 |
+
|
6115 |
+
/**
|
6116 |
+
* @class
|
6117 |
+
*
|
6118 |
+
*/
|
6119 |
+
|
6120 |
+
var ScrollSpy = function (_Component9) {
|
6121 |
+
_inherits(ScrollSpy, _Component9);
|
6122 |
+
|
6123 |
+
/**
|
6124 |
+
* Construct ScrollSpy instance
|
6125 |
+
* @constructor
|
6126 |
+
* @param {Element} el
|
6127 |
+
* @param {Object} options
|
6128 |
+
*/
|
6129 |
+
function ScrollSpy(el, options) {
|
6130 |
+
_classCallCheck(this, ScrollSpy);
|
6131 |
+
|
6132 |
+
var _this35 = _possibleConstructorReturn(this, (ScrollSpy.__proto__ || Object.getPrototypeOf(ScrollSpy)).call(this, ScrollSpy, el, options));
|
6133 |
+
|
6134 |
+
_this35.el.M_ScrollSpy = _this35;
|
6135 |
+
|
6136 |
+
/**
|
6137 |
+
* Options for the modal
|
6138 |
+
* @member Modal#options
|
6139 |
+
* @prop {Number} [throttle=100] - Throttle of scroll handler
|
6140 |
+
* @prop {Number} [scrollOffset=200] - Offset for centering element when scrolled to
|
6141 |
+
* @prop {String} [activeClass='active'] - Class applied to active elements
|
6142 |
+
* @prop {Function} [getActiveElement] - Used to find active element
|
6143 |
+
*/
|
6144 |
+
_this35.options = $.extend({}, ScrollSpy.defaults, options);
|
6145 |
+
|
6146 |
+
// setup
|
6147 |
+
ScrollSpy._elements.push(_this35);
|
6148 |
+
ScrollSpy._count++;
|
6149 |
+
ScrollSpy._increment++;
|
6150 |
+
_this35.tickId = -1;
|
6151 |
+
_this35.id = ScrollSpy._increment;
|
6152 |
+
_this35._setupEventHandlers();
|
6153 |
+
_this35._handleWindowScroll();
|
6154 |
+
return _this35;
|
6155 |
+
}
|
6156 |
+
|
6157 |
+
_createClass(ScrollSpy, [{
|
6158 |
+
key: "destroy",
|
6159 |
+
|
6160 |
+
|
6161 |
+
/**
|
6162 |
+
* Teardown component
|
6163 |
+
*/
|
6164 |
+
value: function destroy() {
|
6165 |
+
ScrollSpy._elements.splice(ScrollSpy._elements.indexOf(this), 1);
|
6166 |
+
ScrollSpy._elementsInView.splice(ScrollSpy._elementsInView.indexOf(this), 1);
|
6167 |
+
ScrollSpy._visibleElements.splice(ScrollSpy._visibleElements.indexOf(this.$el), 1);
|
6168 |
+
ScrollSpy._count--;
|
6169 |
+
this._removeEventHandlers();
|
6170 |
+
$(this.options.getActiveElement(this.$el.attr('id'))).removeClass(this.options.activeClass);
|
6171 |
+
this.el.M_ScrollSpy = undefined;
|
6172 |
+
}
|
6173 |
+
|
6174 |
+
/**
|
6175 |
+
* Setup Event Handlers
|
6176 |
+
*/
|
6177 |
+
|
6178 |
+
}, {
|
6179 |
+
key: "_setupEventHandlers",
|
6180 |
+
value: function _setupEventHandlers() {
|
6181 |
+
var throttledResize = M.throttle(this._handleWindowScroll, 200);
|
6182 |
+
this._handleThrottledResizeBound = throttledResize.bind(this);
|
6183 |
+
this._handleWindowScrollBound = this._handleWindowScroll.bind(this);
|
6184 |
+
if (ScrollSpy._count === 1) {
|
6185 |
+
window.addEventListener('scroll', this._handleWindowScrollBound);
|
6186 |
+
window.addEventListener('resize', this._handleThrottledResizeBound);
|
6187 |
+
document.body.addEventListener('click', this._handleTriggerClick);
|
6188 |
+
}
|
6189 |
+
}
|
6190 |
+
|
6191 |
+
/**
|
6192 |
+
* Remove Event Handlers
|
6193 |
+
*/
|
6194 |
+
|
6195 |
+
}, {
|
6196 |
+
key: "_removeEventHandlers",
|
6197 |
+
value: function _removeEventHandlers() {
|
6198 |
+
if (ScrollSpy._count === 0) {
|
6199 |
+
window.removeEventListener('scroll', this._handleWindowScrollBound);
|
6200 |
+
window.removeEventListener('resize', this._handleThrottledResizeBound);
|
6201 |
+
document.body.removeEventListener('click', this._handleTriggerClick);
|
6202 |
+
}
|
6203 |
+
}
|
6204 |
+
|
6205 |
+
/**
|
6206 |
+
* Handle Trigger Click
|
6207 |
+
* @param {Event} e
|
6208 |
+
*/
|
6209 |
+
|
6210 |
+
}, {
|
6211 |
+
key: "_handleTriggerClick",
|
6212 |
+
value: function _handleTriggerClick(e) {
|
6213 |
+
var $trigger = $(e.target);
|
6214 |
+
for (var i = ScrollSpy._elements.length - 1; i >= 0; i--) {
|
6215 |
+
var scrollspy = ScrollSpy._elements[i];
|
6216 |
+
if ($trigger.is('a[href="#' + scrollspy.$el.attr('id') + '"]')) {
|
6217 |
+
e.preventDefault();
|
6218 |
+
var offset = scrollspy.$el.offset().top + 1;
|
6219 |
+
|
6220 |
+
anim({
|
6221 |
+
targets: [document.documentElement, document.body],
|
6222 |
+
scrollTop: offset - scrollspy.options.scrollOffset,
|
6223 |
+
duration: 400,
|
6224 |
+
easing: 'easeOutCubic'
|
6225 |
+
});
|
6226 |
+
break;
|
6227 |
+
}
|
6228 |
+
}
|
6229 |
+
}
|
6230 |
+
|
6231 |
+
/**
|
6232 |
+
* Handle Window Scroll
|
6233 |
+
*/
|
6234 |
+
|
6235 |
+
}, {
|
6236 |
+
key: "_handleWindowScroll",
|
6237 |
+
value: function _handleWindowScroll() {
|
6238 |
+
// unique tick id
|
6239 |
+
ScrollSpy._ticks++;
|
6240 |
+
|
6241 |
+
// viewport rectangle
|
6242 |
+
var top = M.getDocumentScrollTop(),
|
6243 |
+
left = M.getDocumentScrollLeft(),
|
6244 |
+
right = left + window.innerWidth,
|
6245 |
+
bottom = top + window.innerHeight;
|
6246 |
+
|
6247 |
+
// determine which elements are in view
|
6248 |
+
var intersections = ScrollSpy._findElements(top, right, bottom, left);
|
6249 |
+
for (var i = 0; i < intersections.length; i++) {
|
6250 |
+
var scrollspy = intersections[i];
|
6251 |
+
var lastTick = scrollspy.tickId;
|
6252 |
+
if (lastTick < 0) {
|
6253 |
+
// entered into view
|
6254 |
+
scrollspy._enter();
|
6255 |
+
}
|
6256 |
+
|
6257 |
+
// update tick id
|
6258 |
+
scrollspy.tickId = ScrollSpy._ticks;
|
6259 |
+
}
|
6260 |
+
|
6261 |
+
for (var _i = 0; _i < ScrollSpy._elementsInView.length; _i++) {
|
6262 |
+
var _scrollspy = ScrollSpy._elementsInView[_i];
|
6263 |
+
var _lastTick = _scrollspy.tickId;
|
6264 |
+
if (_lastTick >= 0 && _lastTick !== ScrollSpy._ticks) {
|
6265 |
+
// exited from view
|
6266 |
+
_scrollspy._exit();
|
6267 |
+
_scrollspy.tickId = -1;
|
6268 |
+
}
|
6269 |
+
}
|
6270 |
+
|
6271 |
+
// remember elements in view for next tick
|
6272 |
+
ScrollSpy._elementsInView = intersections;
|
6273 |
+
}
|
6274 |
+
|
6275 |
+
/**
|
6276 |
+
* Find elements that are within the boundary
|
6277 |
+
* @param {number} top
|
6278 |
+
* @param {number} right
|
6279 |
+
* @param {number} bottom
|
6280 |
+
* @param {number} left
|
6281 |
+
* @return {Array.<ScrollSpy>} A collection of elements
|
6282 |
+
*/
|
6283 |
+
|
6284 |
+
}, {
|
6285 |
+
key: "_enter",
|
6286 |
+
value: function _enter() {
|
6287 |
+
ScrollSpy._visibleElements = ScrollSpy._visibleElements.filter(function (value) {
|
6288 |
+
return value.height() != 0;
|
6289 |
+
});
|
6290 |
+
|
6291 |
+
if (ScrollSpy._visibleElements[0]) {
|
6292 |
+
$(this.options.getActiveElement(ScrollSpy._visibleElements[0].attr('id'))).removeClass(this.options.activeClass);
|
6293 |
+
if (ScrollSpy._visibleElements[0][0].M_ScrollSpy && this.id < ScrollSpy._visibleElements[0][0].M_ScrollSpy.id) {
|
6294 |
+
ScrollSpy._visibleElements.unshift(this.$el);
|
6295 |
+
} else {
|
6296 |
+
ScrollSpy._visibleElements.push(this.$el);
|
6297 |
+
}
|
6298 |
+
} else {
|
6299 |
+
ScrollSpy._visibleElements.push(this.$el);
|
6300 |
+
}
|
6301 |
+
|
6302 |
+
$(this.options.getActiveElement(ScrollSpy._visibleElements[0].attr('id'))).addClass(this.options.activeClass);
|
6303 |
+
}
|
6304 |
+
}, {
|
6305 |
+
key: "_exit",
|
6306 |
+
value: function _exit() {
|
6307 |
+
var _this36 = this;
|
6308 |
+
|
6309 |
+
ScrollSpy._visibleElements = ScrollSpy._visibleElements.filter(function (value) {
|
6310 |
+
return value.height() != 0;
|
6311 |
+
});
|
6312 |
+
|
6313 |
+
if (ScrollSpy._visibleElements[0]) {
|
6314 |
+
$(this.options.getActiveElement(ScrollSpy._visibleElements[0].attr('id'))).removeClass(this.options.activeClass);
|
6315 |
+
|
6316 |
+
ScrollSpy._visibleElements = ScrollSpy._visibleElements.filter(function (el) {
|
6317 |
+
return el.attr('id') != _this36.$el.attr('id');
|
6318 |
+
});
|
6319 |
+
if (ScrollSpy._visibleElements[0]) {
|
6320 |
+
// Check if empty
|
6321 |
+
$(this.options.getActiveElement(ScrollSpy._visibleElements[0].attr('id'))).addClass(this.options.activeClass);
|
6322 |
+
}
|
6323 |
+
}
|
6324 |
+
}
|
6325 |
+
}], [{
|
6326 |
+
key: "init",
|
6327 |
+
value: function init(els, options) {
|
6328 |
+
return _get(ScrollSpy.__proto__ || Object.getPrototypeOf(ScrollSpy), "init", this).call(this, this, els, options);
|
6329 |
+
}
|
6330 |
+
|
6331 |
+
/**
|
6332 |
+
* Get Instance
|
6333 |
+
*/
|
6334 |
+
|
6335 |
+
}, {
|
6336 |
+
key: "getInstance",
|
6337 |
+
value: function getInstance(el) {
|
6338 |
+
var domElem = !!el.jquery ? el[0] : el;
|
6339 |
+
return domElem.M_ScrollSpy;
|
6340 |
+
}
|
6341 |
+
}, {
|
6342 |
+
key: "_findElements",
|
6343 |
+
value: function _findElements(top, right, bottom, left) {
|
6344 |
+
var hits = [];
|
6345 |
+
for (var i = 0; i < ScrollSpy._elements.length; i++) {
|
6346 |
+
var scrollspy = ScrollSpy._elements[i];
|
6347 |
+
var currTop = top + scrollspy.options.scrollOffset || 200;
|
6348 |
+
|
6349 |
+
if (scrollspy.$el.height() > 0) {
|
6350 |
+
var elTop = scrollspy.$el.offset().top,
|
6351 |
+
elLeft = scrollspy.$el.offset().left,
|
6352 |
+
elRight = elLeft + scrollspy.$el.width(),
|
6353 |
+
elBottom = elTop + scrollspy.$el.height();
|
6354 |
+
|
6355 |
+
var isIntersect = !(elLeft > right || elRight < left || elTop > bottom || elBottom < currTop);
|
6356 |
+
|
6357 |
+
if (isIntersect) {
|
6358 |
+
hits.push(scrollspy);
|
6359 |
+
}
|
6360 |
+
}
|
6361 |
+
}
|
6362 |
+
return hits;
|
6363 |
+
}
|
6364 |
+
}, {
|
6365 |
+
key: "defaults",
|
6366 |
+
get: function () {
|
6367 |
+
return _defaults;
|
6368 |
+
}
|
6369 |
+
}]);
|
6370 |
+
|
6371 |
+
return ScrollSpy;
|
6372 |
+
}(Component);
|
6373 |
+
|
6374 |
+
/**
|
6375 |
+
* @static
|
6376 |
+
* @memberof ScrollSpy
|
6377 |
+
* @type {Array.<ScrollSpy>}
|
6378 |
+
*/
|
6379 |
+
|
6380 |
+
|
6381 |
+
ScrollSpy._elements = [];
|
6382 |
+
|
6383 |
+
/**
|
6384 |
+
* @static
|
6385 |
+
* @memberof ScrollSpy
|
6386 |
+
* @type {Array.<ScrollSpy>}
|
6387 |
+
*/
|
6388 |
+
ScrollSpy._elementsInView = [];
|
6389 |
+
|
6390 |
+
/**
|
6391 |
+
* @static
|
6392 |
+
* @memberof ScrollSpy
|
6393 |
+
* @type {Array.<cash>}
|
6394 |
+
*/
|
6395 |
+
ScrollSpy._visibleElements = [];
|
6396 |
+
|
6397 |
+
/**
|
6398 |
+
* @static
|
6399 |
+
* @memberof ScrollSpy
|
6400 |
+
*/
|
6401 |
+
ScrollSpy._count = 0;
|
6402 |
+
|
6403 |
+
/**
|
6404 |
+
* @static
|
6405 |
+
* @memberof ScrollSpy
|
6406 |
+
*/
|
6407 |
+
ScrollSpy._increment = 0;
|
6408 |
+
|
6409 |
+
/**
|
6410 |
+
* @static
|
6411 |
+
* @memberof ScrollSpy
|
6412 |
+
*/
|
6413 |
+
ScrollSpy._ticks = 0;
|
6414 |
+
|
6415 |
+
M.ScrollSpy = ScrollSpy;
|
6416 |
+
|
6417 |
+
if (M.jQueryLoaded) {
|
6418 |
+
M.initializeJqueryWrapper(ScrollSpy, 'scrollSpy', 'M_ScrollSpy');
|
6419 |
+
}
|
6420 |
+
})(cash, M.anime);
|
6421 |
+
;(function ($) {
|
6422 |
+
'use strict';
|
6423 |
+
|
6424 |
+
var _defaults = {
|
6425 |
+
data: {}, // Autocomplete data set
|
6426 |
+
limit: Infinity, // Limit of results the autocomplete shows
|
6427 |
+
onAutocomplete: null, // Callback for when autocompleted
|
6428 |
+
minLength: 1, // Min characters before autocomplete starts
|
6429 |
+
sortFunction: function (a, b, inputString) {
|
6430 |
+
// Sort function for sorting autocomplete results
|
6431 |
+
return a.indexOf(inputString) - b.indexOf(inputString);
|
6432 |
+
}
|
6433 |
+
};
|
6434 |
+
|
6435 |
+
/**
|
6436 |
+
* @class
|
6437 |
+
*
|
6438 |
+
*/
|
6439 |
+
|
6440 |
+
var Autocomplete = function (_Component10) {
|
6441 |
+
_inherits(Autocomplete, _Component10);
|
6442 |
+
|
6443 |
+
/**
|
6444 |
+
* Construct Autocomplete instance
|
6445 |
+
* @constructor
|
6446 |
+
* @param {Element} el
|
6447 |
+
* @param {Object} options
|
6448 |
+
*/
|
6449 |
+
function Autocomplete(el, options) {
|
6450 |
+
_classCallCheck(this, Autocomplete);
|
6451 |
+
|
6452 |
+
var _this37 = _possibleConstructorReturn(this, (Autocomplete.__proto__ || Object.getPrototypeOf(Autocomplete)).call(this, Autocomplete, el, options));
|
6453 |
+
|
6454 |
+
_this37.el.M_Autocomplete = _this37;
|
6455 |
+
|
6456 |
+
/**
|
6457 |
+
* Options for the autocomplete
|
6458 |
+
* @member Autocomplete#options
|
6459 |
+
* @prop {Number} duration
|
6460 |
+
* @prop {Number} dist
|
6461 |
+
* @prop {number} shift
|
6462 |
+
* @prop {number} padding
|
6463 |
+
* @prop {Boolean} fullWidth
|
6464 |
+
* @prop {Boolean} indicators
|
6465 |
+
* @prop {Boolean} noWrap
|
6466 |
+
* @prop {Function} onCycleTo
|
6467 |
+
*/
|
6468 |
+
_this37.options = $.extend({}, Autocomplete.defaults, options);
|
6469 |
+
|
6470 |
+
// Setup
|
6471 |
+
_this37.isOpen = false;
|
6472 |
+
_this37.count = 0;
|
6473 |
+
_this37.activeIndex = -1;
|
6474 |
+
_this37.oldVal;
|
6475 |
+
_this37.$inputField = _this37.$el.closest('.input-field');
|
6476 |
+
_this37.$active = $();
|
6477 |
+
_this37._mousedown = false;
|
6478 |
+
_this37._setupDropdown();
|
6479 |
+
|
6480 |
+
_this37._setupEventHandlers();
|
6481 |
+
return _this37;
|
6482 |
+
}
|
6483 |
+
|
6484 |
+
_createClass(Autocomplete, [{
|
6485 |
+
key: "destroy",
|
6486 |
+
|
6487 |
+
|
6488 |
+
/**
|
6489 |
+
* Teardown component
|
6490 |
+
*/
|
6491 |
+
value: function destroy() {
|
6492 |
+
this._removeEventHandlers();
|
6493 |
+
this._removeDropdown();
|
6494 |
+
this.el.M_Autocomplete = undefined;
|
6495 |
+
}
|
6496 |
+
|
6497 |
+
/**
|
6498 |
+
* Setup Event Handlers
|
6499 |
+
*/
|
6500 |
+
|
6501 |
+
}, {
|
6502 |
+
key: "_setupEventHandlers",
|
6503 |
+
value: function _setupEventHandlers() {
|
6504 |
+
this._handleInputBlurBound = this._handleInputBlur.bind(this);
|
6505 |
+
this._handleInputKeyupAndFocusBound = this._handleInputKeyupAndFocus.bind(this);
|
6506 |
+
this._handleInputKeydownBound = this._handleInputKeydown.bind(this);
|
6507 |
+
this._handleInputClickBound = this._handleInputClick.bind(this);
|
6508 |
+
this._handleContainerMousedownAndTouchstartBound = this._handleContainerMousedownAndTouchstart.bind(this);
|
6509 |
+
this._handleContainerMouseupAndTouchendBound = this._handleContainerMouseupAndTouchend.bind(this);
|
6510 |
+
|
6511 |
+
this.el.addEventListener('blur', this._handleInputBlurBound);
|
6512 |
+
this.el.addEventListener('keyup', this._handleInputKeyupAndFocusBound);
|
6513 |
+
this.el.addEventListener('focus', this._handleInputKeyupAndFocusBound);
|
6514 |
+
this.el.addEventListener('keydown', this._handleInputKeydownBound);
|
6515 |
+
this.el.addEventListener('click', this._handleInputClickBound);
|
6516 |
+
this.container.addEventListener('mousedown', this._handleContainerMousedownAndTouchstartBound);
|
6517 |
+
this.container.addEventListener('mouseup', this._handleContainerMouseupAndTouchendBound);
|
6518 |
+
|
6519 |
+
if (typeof window.ontouchstart !== 'undefined') {
|
6520 |
+
this.container.addEventListener('touchstart', this._handleContainerMousedownAndTouchstartBound);
|
6521 |
+
this.container.addEventListener('touchend', this._handleContainerMouseupAndTouchendBound);
|
6522 |
+
}
|
6523 |
+
}
|
6524 |
+
|
6525 |
+
/**
|
6526 |
+
* Remove Event Handlers
|
6527 |
+
*/
|
6528 |
+
|
6529 |
+
}, {
|
6530 |
+
key: "_removeEventHandlers",
|
6531 |
+
value: function _removeEventHandlers() {
|
6532 |
+
this.el.removeEventListener('blur', this._handleInputBlurBound);
|
6533 |
+
this.el.removeEventListener('keyup', this._handleInputKeyupAndFocusBound);
|
6534 |
+
this.el.removeEventListener('focus', this._handleInputKeyupAndFocusBound);
|
6535 |
+
this.el.removeEventListener('keydown', this._handleInputKeydownBound);
|
6536 |
+
this.el.removeEventListener('click', this._handleInputClickBound);
|
6537 |
+
this.container.removeEventListener('mousedown', this._handleContainerMousedownAndTouchstartBound);
|
6538 |
+
this.container.removeEventListener('mouseup', this._handleContainerMouseupAndTouchendBound);
|
6539 |
+
|
6540 |
+
if (typeof window.ontouchstart !== 'undefined') {
|
6541 |
+
this.container.removeEventListener('touchstart', this._handleContainerMousedownAndTouchstartBound);
|
6542 |
+
this.container.removeEventListener('touchend', this._handleContainerMouseupAndTouchendBound);
|
6543 |
+
}
|
6544 |
+
}
|
6545 |
+
|
6546 |
+
/**
|
6547 |
+
* Setup dropdown
|
6548 |
+
*/
|
6549 |
+
|
6550 |
+
}, {
|
6551 |
+
key: "_setupDropdown",
|
6552 |
+
value: function _setupDropdown() {
|
6553 |
+
var _this38 = this;
|
6554 |
+
|
6555 |
+
this.container = document.createElement('ul');
|
6556 |
+
this.container.id = "autocomplete-options-" + M.guid();
|
6557 |
+
$(this.container).addClass('autocomplete-content dropdown-content');
|
6558 |
+
this.$inputField.append(this.container);
|
6559 |
+
this.el.setAttribute('data-target', this.container.id);
|
6560 |
+
|
6561 |
+
this.dropdown = M.Dropdown.init(this.el, {
|
6562 |
+
autoFocus: false,
|
6563 |
+
closeOnClick: false,
|
6564 |
+
coverTrigger: false,
|
6565 |
+
onItemClick: function (itemEl) {
|
6566 |
+
_this38.selectOption($(itemEl));
|
6567 |
+
}
|
6568 |
+
});
|
6569 |
+
|
6570 |
+
// Sketchy removal of dropdown click handler
|
6571 |
+
this.el.removeEventListener('click', this.dropdown._handleClickBound);
|
6572 |
+
}
|
6573 |
+
|
6574 |
+
/**
|
6575 |
+
* Remove dropdown
|
6576 |
+
*/
|
6577 |
+
|
6578 |
+
}, {
|
6579 |
+
key: "_removeDropdown",
|
6580 |
+
value: function _removeDropdown() {
|
6581 |
+
this.container.parentNode.removeChild(this.container);
|
6582 |
+
}
|
6583 |
+
|
6584 |
+
/**
|
6585 |
+
* Handle Input Blur
|
6586 |
+
*/
|
6587 |
+
|
6588 |
+
}, {
|
6589 |
+
key: "_handleInputBlur",
|
6590 |
+
value: function _handleInputBlur() {
|
6591 |
+
if (!this._mousedown) {
|
6592 |
+
this.close();
|
6593 |
+
this._resetAutocomplete();
|
6594 |
+
}
|
6595 |
+
}
|
6596 |
+
|
6597 |
+
/**
|
6598 |
+
* Handle Input Keyup and Focus
|
6599 |
+
* @param {Event} e
|
6600 |
+
*/
|
6601 |
+
|
6602 |
+
}, {
|
6603 |
+
key: "_handleInputKeyupAndFocus",
|
6604 |
+
value: function _handleInputKeyupAndFocus(e) {
|
6605 |
+
if (e.type === 'keyup') {
|
6606 |
+
Autocomplete._keydown = false;
|
6607 |
+
}
|
6608 |
+
|
6609 |
+
this.count = 0;
|
6610 |
+
var val = this.el.value.toLowerCase();
|
6611 |
+
|
6612 |
+
// Don't capture enter or arrow key usage.
|
6613 |
+
if (e.keyCode === 13 || e.keyCode === 38 || e.keyCode === 40) {
|
6614 |
+
return;
|
6615 |
+
}
|
6616 |
+
|
6617 |
+
// Check if the input isn't empty
|
6618 |
+
// Check if focus triggered by tab
|
6619 |
+
if (this.oldVal !== val && (M.tabPressed || e.type !== 'focus')) {
|
6620 |
+
this.open();
|
6621 |
+
}
|
6622 |
+
|
6623 |
+
// Update oldVal
|
6624 |
+
this.oldVal = val;
|
6625 |
+
}
|
6626 |
+
|
6627 |
+
/**
|
6628 |
+
* Handle Input Keydown
|
6629 |
+
* @param {Event} e
|
6630 |
+
*/
|
6631 |
+
|
6632 |
+
}, {
|
6633 |
+
key: "_handleInputKeydown",
|
6634 |
+
value: function _handleInputKeydown(e) {
|
6635 |
+
Autocomplete._keydown = true;
|
6636 |
+
|
6637 |
+
// Arrow keys and enter key usage
|
6638 |
+
var keyCode = e.keyCode,
|
6639 |
+
liElement = void 0,
|
6640 |
+
numItems = $(this.container).children('li').length;
|
6641 |
+
|
6642 |
+
// select element on Enter
|
6643 |
+
if (keyCode === M.keys.ENTER && this.activeIndex >= 0) {
|
6644 |
+
liElement = $(this.container).children('li').eq(this.activeIndex);
|
6645 |
+
if (liElement.length) {
|
6646 |
+
this.selectOption(liElement);
|
6647 |
+
e.preventDefault();
|
6648 |
+
}
|
6649 |
+
return;
|
6650 |
+
}
|
6651 |
+
|
6652 |
+
// Capture up and down key
|
6653 |
+
if (keyCode === M.keys.ARROW_UP || keyCode === M.keys.ARROW_DOWN) {
|
6654 |
+
e.preventDefault();
|
6655 |
+
|
6656 |
+
if (keyCode === M.keys.ARROW_UP && this.activeIndex > 0) {
|
6657 |
+
this.activeIndex--;
|
6658 |
+
}
|
6659 |
+
|
6660 |
+
if (keyCode === M.keys.ARROW_DOWN && this.activeIndex < numItems - 1) {
|
6661 |
+
this.activeIndex++;
|
6662 |
+
}
|
6663 |
+
|
6664 |
+
this.$active.removeClass('active');
|
6665 |
+
if (this.activeIndex >= 0) {
|
6666 |
+
this.$active = $(this.container).children('li').eq(this.activeIndex);
|
6667 |
+
this.$active.addClass('active');
|
6668 |
+
}
|
6669 |
+
}
|
6670 |
+
}
|
6671 |
+
|
6672 |
+
/**
|
6673 |
+
* Handle Input Click
|
6674 |
+
* @param {Event} e
|
6675 |
+
*/
|
6676 |
+
|
6677 |
+
}, {
|
6678 |
+
key: "_handleInputClick",
|
6679 |
+
value: function _handleInputClick(e) {
|
6680 |
+
this.open();
|
6681 |
+
}
|
6682 |
+
|
6683 |
+
/**
|
6684 |
+
* Handle Container Mousedown and Touchstart
|
6685 |
+
* @param {Event} e
|
6686 |
+
*/
|
6687 |
+
|
6688 |
+
}, {
|
6689 |
+
key: "_handleContainerMousedownAndTouchstart",
|
6690 |
+
value: function _handleContainerMousedownAndTouchstart(e) {
|
6691 |
+
this._mousedown = true;
|
6692 |
+
}
|
6693 |
+
|
6694 |
+
/**
|
6695 |
+
* Handle Container Mouseup and Touchend
|
6696 |
+
* @param {Event} e
|
6697 |
+
*/
|
6698 |
+
|
6699 |
+
}, {
|
6700 |
+
key: "_handleContainerMouseupAndTouchend",
|
6701 |
+
value: function _handleContainerMouseupAndTouchend(e) {
|
6702 |
+
this._mousedown = false;
|
6703 |
+
}
|
6704 |
+
|
6705 |
+
/**
|
6706 |
+
* Highlight partial match
|
6707 |
+
*/
|
6708 |
+
|
6709 |
+
}, {
|
6710 |
+
key: "_highlight",
|
6711 |
+
value: function _highlight(string, $el) {
|
6712 |
+
var img = $el.find('img');
|
6713 |
+
var matchStart = $el.text().toLowerCase().indexOf('' + string.toLowerCase() + ''),
|
6714 |
+
matchEnd = matchStart + string.length - 1,
|
6715 |
+
beforeMatch = $el.text().slice(0, matchStart),
|
6716 |
+
matchText = $el.text().slice(matchStart, matchEnd + 1),
|
6717 |
+
afterMatch = $el.text().slice(matchEnd + 1);
|
6718 |
+
$el.html("<span>" + beforeMatch + "<span class='highlight'>" + matchText + "</span>" + afterMatch + "</span>");
|
6719 |
+
if (img.length) {
|
6720 |
+
$el.prepend(img);
|
6721 |
+
}
|
6722 |
+
}
|
6723 |
+
|
6724 |
+
/**
|
6725 |
+
* Reset current element position
|
6726 |
+
*/
|
6727 |
+
|
6728 |
+
}, {
|
6729 |
+
key: "_resetCurrentElement",
|
6730 |
+
value: function _resetCurrentElement() {
|
6731 |
+
this.activeIndex = -1;
|
6732 |
+
this.$active.removeClass('active');
|
6733 |
+
}
|
6734 |
+
|
6735 |
+
/**
|
6736 |
+
* Reset autocomplete elements
|
6737 |
+
*/
|
6738 |
+
|
6739 |
+
}, {
|
6740 |
+
key: "_resetAutocomplete",
|
6741 |
+
value: function _resetAutocomplete() {
|
6742 |
+
$(this.container).empty();
|
6743 |
+
this._resetCurrentElement();
|
6744 |
+
this.oldVal = null;
|
6745 |
+
this.isOpen = false;
|
6746 |
+
this._mousedown = false;
|
6747 |
+
}
|
6748 |
+
|
6749 |
+
/**
|
6750 |
+
* Select autocomplete option
|
6751 |
+
* @param {Element} el Autocomplete option list item element
|
6752 |
+
*/
|
6753 |
+
|
6754 |
+
}, {
|
6755 |
+
key: "selectOption",
|
6756 |
+
value: function selectOption(el) {
|
6757 |
+
var text = el.text().trim();
|
6758 |
+
this.el.value = text;
|
6759 |
+
this.$el.trigger('change');
|
6760 |
+
this._resetAutocomplete();
|
6761 |
+
this.close();
|
6762 |
+
|
6763 |
+
// Handle onAutocomplete callback.
|
6764 |
+
if (typeof this.options.onAutocomplete === 'function') {
|
6765 |
+
this.options.onAutocomplete.call(this, text);
|
6766 |
+
}
|
6767 |
+
}
|
6768 |
+
|
6769 |
+
/**
|
6770 |
+
* Render dropdown content
|
6771 |
+
* @param {Object} data data set
|
6772 |
+
* @param {String} val current input value
|
6773 |
+
*/
|
6774 |
+
|
6775 |
+
}, {
|
6776 |
+
key: "_renderDropdown",
|
6777 |
+
value: function _renderDropdown(data, val) {
|
6778 |
+
var _this39 = this;
|
6779 |
+
|
6780 |
+
this._resetAutocomplete();
|
6781 |
+
|
6782 |
+
var matchingData = [];
|
6783 |
+
|
6784 |
+
// Gather all matching data
|
6785 |
+
for (var key in data) {
|
6786 |
+
if (data.hasOwnProperty(key) && key.toLowerCase().indexOf(val) !== -1) {
|
6787 |
+
// Break if past limit
|
6788 |
+
if (this.count >= this.options.limit) {
|
6789 |
+
break;
|
6790 |
+
}
|
6791 |
+
|
6792 |
+
var entry = {
|
6793 |
+
data: data[key],
|
6794 |
+
key: key
|
6795 |
+
};
|
6796 |
+
matchingData.push(entry);
|
6797 |
+
|
6798 |
+
this.count++;
|
6799 |
+
}
|
6800 |
+
}
|
6801 |
+
|
6802 |
+
// Sort
|
6803 |
+
if (this.options.sortFunction) {
|
6804 |
+
var sortFunctionBound = function (a, b) {
|
6805 |
+
return _this39.options.sortFunction(a.key.toLowerCase(), b.key.toLowerCase(), val.toLowerCase());
|
6806 |
+
};
|
6807 |
+
matchingData.sort(sortFunctionBound);
|
6808 |
+
}
|
6809 |
+
|
6810 |
+
// Render
|
6811 |
+
for (var i = 0; i < matchingData.length; i++) {
|
6812 |
+
var _entry = matchingData[i];
|
6813 |
+
var $autocompleteOption = $('<li></li>');
|
6814 |
+
if (!!_entry.data) {
|
6815 |
+
$autocompleteOption.append("<img src=\"" + _entry.data + "\" class=\"right circle\"><span>" + _entry.key + "</span>");
|
6816 |
+
} else {
|
6817 |
+
$autocompleteOption.append('<span>' + _entry.key + '</span>');
|
6818 |
+
}
|
6819 |
+
|
6820 |
+
$(this.container).append($autocompleteOption);
|
6821 |
+
this._highlight(val, $autocompleteOption);
|
6822 |
+
}
|
6823 |
+
}
|
6824 |
+
|
6825 |
+
/**
|
6826 |
+
* Open Autocomplete Dropdown
|
6827 |
+
*/
|
6828 |
+
|
6829 |
+
}, {
|
6830 |
+
key: "open",
|
6831 |
+
value: function open() {
|
6832 |
+
var val = this.el.value.toLowerCase();
|
6833 |
+
|
6834 |
+
this._resetAutocomplete();
|
6835 |
+
|
6836 |
+
if (val.length >= this.options.minLength) {
|
6837 |
+
this.isOpen = true;
|
6838 |
+
this._renderDropdown(this.options.data, val);
|
6839 |
+
}
|
6840 |
+
|
6841 |
+
// Open dropdown
|
6842 |
+
if (!this.dropdown.isOpen) {
|
6843 |
+
this.dropdown.open();
|
6844 |
+
} else {
|
6845 |
+
// Recalculate dropdown when its already open
|
6846 |
+
this.dropdown.recalculateDimensions();
|
6847 |
+
}
|
6848 |
+
}
|
6849 |
+
|
6850 |
+
/**
|
6851 |
+
* Close Autocomplete Dropdown
|
6852 |
+
*/
|
6853 |
+
|
6854 |
+
}, {
|
6855 |
+
key: "close",
|
6856 |
+
value: function close() {
|
6857 |
+
this.dropdown.close();
|
6858 |
+
}
|
6859 |
+
|
6860 |
+
/**
|
6861 |
+
* Update Data
|
6862 |
+
* @param {Object} data
|
6863 |
+
*/
|
6864 |
+
|
6865 |
+
}, {
|
6866 |
+
key: "updateData",
|
6867 |
+
value: function updateData(data) {
|
6868 |
+
var val = this.el.value.toLowerCase();
|
6869 |
+
this.options.data = data;
|
6870 |
+
|
6871 |
+
if (this.isOpen) {
|
6872 |
+
this._renderDropdown(data, val);
|
6873 |
+
}
|
6874 |
+
}
|
6875 |
+
}], [{
|
6876 |
+
key: "init",
|
6877 |
+
value: function init(els, options) {
|
6878 |
+
return _get(Autocomplete.__proto__ || Object.getPrototypeOf(Autocomplete), "init", this).call(this, this, els, options);
|
6879 |
+
}
|
6880 |
+
|
6881 |
+
/**
|
6882 |
+
* Get Instance
|
6883 |
+
*/
|
6884 |
+
|
6885 |
+
}, {
|
6886 |
+
key: "getInstance",
|
6887 |
+
value: function getInstance(el) {
|
6888 |
+
var domElem = !!el.jquery ? el[0] : el;
|
6889 |
+
return domElem.M_Autocomplete;
|
6890 |
+
}
|
6891 |
+
}, {
|
6892 |
+
key: "defaults",
|
6893 |
+
get: function () {
|
6894 |
+
return _defaults;
|
6895 |
+
}
|
6896 |
+
}]);
|
6897 |
+
|
6898 |
+
return Autocomplete;
|
6899 |
+
}(Component);
|
6900 |
+
|
6901 |
+
/**
|
6902 |
+
* @static
|
6903 |
+
* @memberof Autocomplete
|
6904 |
+
*/
|
6905 |
+
|
6906 |
+
|
6907 |
+
Autocomplete._keydown = false;
|
6908 |
+
|
6909 |
+
M.Autocomplete = Autocomplete;
|
6910 |
+
|
6911 |
+
if (M.jQueryLoaded) {
|
6912 |
+
M.initializeJqueryWrapper(Autocomplete, 'autocomplete', 'M_Autocomplete');
|
6913 |
+
}
|
6914 |
+
})(cash);
|
6915 |
+
;(function ($) {
|
6916 |
+
// Function to update labels of text fields
|
6917 |
+
M.updateTextFields = function () {
|
6918 |
+
var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=date], input[type=time], textarea';
|
6919 |
+
$(input_selector).each(function (element, index) {
|
6920 |
+
var $this = $(this);
|
6921 |
+
if (element.value.length > 0 || $(element).is(':focus') || element.autofocus || $this.attr('placeholder') !== null) {
|
6922 |
+
$this.siblings('label').addClass('active');
|
6923 |
+
} else if (element.validity) {
|
6924 |
+
$this.siblings('label').toggleClass('active', element.validity.badInput === true);
|
6925 |
+
} else {
|
6926 |
+
$this.siblings('label').removeClass('active');
|
6927 |
+
}
|
6928 |
+
});
|
6929 |
+
};
|
6930 |
+
|
6931 |
+
M.validate_field = function (object) {
|
6932 |
+
var hasLength = object.attr('data-length') !== null;
|
6933 |
+
var lenAttr = parseInt(object.attr('data-length'));
|
6934 |
+
var len = object[0].value.length;
|
6935 |
+
|
6936 |
+
if (len === 0 && object[0].validity.badInput === false && !object.is(':required')) {
|
6937 |
+
if (object.hasClass('validate')) {
|
6938 |
+
object.removeClass('valid');
|
6939 |
+
object.removeClass('invalid');
|
6940 |
+
}
|
6941 |
+
} else {
|
6942 |
+
if (object.hasClass('validate')) {
|
6943 |
+
// Check for character counter attributes
|
6944 |
+
if (object.is(':valid') && hasLength && len <= lenAttr || object.is(':valid') && !hasLength) {
|
6945 |
+
object.removeClass('invalid');
|
6946 |
+
object.addClass('valid');
|
6947 |
+
} else {
|
6948 |
+
object.removeClass('valid');
|
6949 |
+
object.addClass('invalid');
|
6950 |
+
}
|
6951 |
+
}
|
6952 |
+
}
|
6953 |
+
};
|
6954 |
+
|
6955 |
+
M.textareaAutoResize = function ($textarea) {
|
6956 |
+
// Wrap if native element
|
6957 |
+
if ($textarea instanceof Element) {
|
6958 |
+
$textarea = $($textarea);
|
6959 |
+
}
|
6960 |
+
|
6961 |
+
if (!$textarea.length) {
|
6962 |
+
console.error('No textarea element found');
|
6963 |
+
return;
|
6964 |
+
}
|
6965 |
+
|
6966 |
+
// Textarea Auto Resize
|
6967 |
+
var hiddenDiv = $('.hiddendiv').first();
|
6968 |
+
if (!hiddenDiv.length) {
|
6969 |
+
hiddenDiv = $('<div class="hiddendiv common"></div>');
|
6970 |
+
$('body').append(hiddenDiv);
|
6971 |
+
}
|
6972 |
+
|
6973 |
+
// Set font properties of hiddenDiv
|
6974 |
+
var fontFamily = $textarea.css('font-family');
|
6975 |
+
var fontSize = $textarea.css('font-size');
|
6976 |
+
var lineHeight = $textarea.css('line-height');
|
6977 |
+
|
6978 |
+
// Firefox can't handle padding shorthand.
|
6979 |
+
var paddingTop = $textarea.css('padding-top');
|
6980 |
+
var paddingRight = $textarea.css('padding-right');
|
6981 |
+
var paddingBottom = $textarea.css('padding-bottom');
|
6982 |
+
var paddingLeft = $textarea.css('padding-left');
|
6983 |
+
|
6984 |
+
if (fontSize) {
|
6985 |
+
hiddenDiv.css('font-size', fontSize);
|
6986 |
+
}
|
6987 |
+
if (fontFamily) {
|
6988 |
+
hiddenDiv.css('font-family', fontFamily);
|
6989 |
+
}
|
6990 |
+
if (lineHeight) {
|
6991 |
+
hiddenDiv.css('line-height', lineHeight);
|
6992 |
+
}
|
6993 |
+
if (paddingTop) {
|
6994 |
+
hiddenDiv.css('padding-top', paddingTop);
|
6995 |
+
}
|
6996 |
+
if (paddingRight) {
|
6997 |
+
hiddenDiv.css('padding-right', paddingRight);
|
6998 |
+
}
|
6999 |
+
if (paddingBottom) {
|
7000 |
+
hiddenDiv.css('padding-bottom', paddingBottom);
|
7001 |
+
}
|
7002 |
+
if (paddingLeft) {
|
7003 |
+
hiddenDiv.css('padding-left', paddingLeft);
|
7004 |
+
}
|
7005 |
+
|
7006 |
+
// Set original-height, if none
|
7007 |
+
if (!$textarea.data('original-height')) {
|
7008 |
+
$textarea.data('original-height', $textarea.height());
|
7009 |
+
}
|
7010 |
+
|
7011 |
+
if ($textarea.attr('wrap') === 'off') {
|
7012 |
+
hiddenDiv.css('overflow-wrap', 'normal').css('white-space', 'pre');
|
7013 |
+
}
|
7014 |
+
|
7015 |
+
hiddenDiv.text($textarea[0].value + '\n');
|
7016 |
+
var content = hiddenDiv.html().replace(/\n/g, '<br>');
|
7017 |
+
hiddenDiv.html(content);
|
7018 |
+
|
7019 |
+
// When textarea is hidden, width goes crazy.
|
7020 |
+
// Approximate with half of window size
|
7021 |
+
|
7022 |
+
if ($textarea[0].offsetWidth > 0 && $textarea[0].offsetHeight > 0) {
|
7023 |
+
hiddenDiv.css('width', $textarea.width() + 'px');
|
7024 |
+
} else {
|
7025 |
+
hiddenDiv.css('width', window.innerWidth / 2 + 'px');
|
7026 |
+
}
|
7027 |
+
|
7028 |
+
/**
|
7029 |
+
* Resize if the new height is greater than the
|
7030 |
+
* original height of the textarea
|
7031 |
+
*/
|
7032 |
+
if ($textarea.data('original-height') <= hiddenDiv.innerHeight()) {
|
7033 |
+
$textarea.css('height', hiddenDiv.innerHeight() + 'px');
|
7034 |
+
} else if ($textarea[0].value.length < $textarea.data('previous-length')) {
|
7035 |
+
/**
|
7036 |
+
* In case the new height is less than original height, it
|
7037 |
+
* means the textarea has less text than before
|
7038 |
+
* So we set the height to the original one
|
7039 |
+
*/
|
7040 |
+
$textarea.css('height', $textarea.data('original-height') + 'px');
|
7041 |
+
}
|
7042 |
+
$textarea.data('previous-length', $textarea[0].value.length);
|
7043 |
+
};
|
7044 |
+
|
7045 |
+
$(document).ready(function () {
|
7046 |
+
// Text based inputs
|
7047 |
+
var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=date], input[type=time], textarea';
|
7048 |
+
|
7049 |
+
// Add active if form auto complete
|
7050 |
+
$(document).on('change', input_selector, function () {
|
7051 |
+
if (this.value.length !== 0 || $(this).attr('placeholder') !== null) {
|
7052 |
+
$(this).siblings('label').addClass('active');
|
7053 |
+
}
|
7054 |
+
M.validate_field($(this));
|
7055 |
+
});
|
7056 |
+
|
7057 |
+
// Add active if input element has been pre-populated on document ready
|
7058 |
+
$(document).ready(function () {
|
7059 |
+
M.updateTextFields();
|
7060 |
+
});
|
7061 |
+
|
7062 |
+
// HTML DOM FORM RESET handling
|
7063 |
+
$(document).on('reset', function (e) {
|
7064 |
+
var formReset = $(e.target);
|
7065 |
+
if (formReset.is('form')) {
|
7066 |
+
formReset.find(input_selector).removeClass('valid').removeClass('invalid');
|
7067 |
+
formReset.find(input_selector).each(function (e) {
|
7068 |
+
if (this.value.length) {
|
7069 |
+
$(this).siblings('label').removeClass('active');
|
7070 |
+
}
|
7071 |
+
});
|
7072 |
+
|
7073 |
+
// Reset select (after native reset)
|
7074 |
+
setTimeout(function () {
|
7075 |
+
formReset.find('select').each(function () {
|
7076 |
+
// check if initialized
|
7077 |
+
if (this.M_FormSelect) {
|
7078 |
+
$(this).trigger('change');
|
7079 |
+
}
|
7080 |
+
});
|
7081 |
+
}, 0);
|
7082 |
+
}
|
7083 |
+
});
|
7084 |
+
|
7085 |
+
/**
|
7086 |
+
* Add active when element has focus
|
7087 |
+
* @param {Event} e
|
7088 |
+
*/
|
7089 |
+
document.addEventListener('focus', function (e) {
|
7090 |
+
if ($(e.target).is(input_selector)) {
|
7091 |
+
$(e.target).siblings('label, .prefix').addClass('active');
|
7092 |
+
}
|
7093 |
+
}, true);
|
7094 |
+
|
7095 |
+
/**
|
7096 |
+
* Remove active when element is blurred
|
7097 |
+
* @param {Event} e
|
7098 |
+
*/
|
7099 |
+
document.addEventListener('blur', function (e) {
|
7100 |
+
var $inputElement = $(e.target);
|
7101 |
+
if ($inputElement.is(input_selector)) {
|
7102 |
+
var selector = '.prefix';
|
7103 |
+
|
7104 |
+
if ($inputElement[0].value.length === 0 && $inputElement[0].validity.badInput !== true && $inputElement.attr('placeholder') === null) {
|
7105 |
+
selector += ', label';
|
7106 |
+
}
|
7107 |
+
$inputElement.siblings(selector).removeClass('active');
|
7108 |
+
M.validate_field($inputElement);
|
7109 |
+
}
|
7110 |
+
}, true);
|
7111 |
+
|
7112 |
+
// Radio and Checkbox focus class
|
7113 |
+
var radio_checkbox = 'input[type=radio], input[type=checkbox]';
|
7114 |
+
$(document).on('keyup', radio_checkbox, function (e) {
|
7115 |
+
// TAB, check if tabbing to radio or checkbox.
|
7116 |
+
if (e.which === M.keys.TAB) {
|
7117 |
+
$(this).addClass('tabbed');
|
7118 |
+
var $this = $(this);
|
7119 |
+
$this.one('blur', function (e) {
|
7120 |
+
$(this).removeClass('tabbed');
|
7121 |
+
});
|
7122 |
+
return;
|
7123 |
+
}
|
7124 |
+
});
|
7125 |
+
|
7126 |
+
var text_area_selector = '.materialize-textarea';
|
7127 |
+
$(text_area_selector).each(function () {
|
7128 |
+
var $textarea = $(this);
|
7129 |
+
/**
|
7130 |
+
* Resize textarea on document load after storing
|
7131 |
+
* the original height and the original length
|
7132 |
+
*/
|
7133 |
+
$textarea.data('original-height', $textarea.height());
|
7134 |
+
$textarea.data('previous-length', this.value.length);
|
7135 |
+
M.textareaAutoResize($textarea);
|
7136 |
+
});
|
7137 |
+
|
7138 |
+
$(document).on('keyup', text_area_selector, function () {
|
7139 |
+
M.textareaAutoResize($(this));
|
7140 |
+
});
|
7141 |
+
$(document).on('keydown', text_area_selector, function () {
|
7142 |
+
M.textareaAutoResize($(this));
|
7143 |
+
});
|
7144 |
+
|
7145 |
+
// File Input Path
|
7146 |
+
$(document).on('change', '.file-field input[type="file"]', function () {
|
7147 |
+
var file_field = $(this).closest('.file-field');
|
7148 |
+
var path_input = file_field.find('input.file-path');
|
7149 |
+
var files = $(this)[0].files;
|
7150 |
+
var file_names = [];
|
7151 |
+
for (var i = 0; i < files.length; i++) {
|
7152 |
+
file_names.push(files[i].name);
|
7153 |
+
}
|
7154 |
+
path_input[0].value = file_names.join(', ');
|
7155 |
+
path_input.trigger('change');
|
7156 |
+
});
|
7157 |
+
}); // End of $(document).ready
|
7158 |
+
})(cash);
|
7159 |
+
|
7160 |
+
;(function ($, anim) {
|
7161 |
+
$(document).on('click', '.card', function (e) {
|
7162 |
+
if ($(this).children('.card-reveal').length) {
|
7163 |
+
var $card = $(e.target).closest('.card');
|
7164 |
+
if ($card.data('initialOverflow') === undefined) {
|
7165 |
+
$card.data('initialOverflow', $card.css('overflow') === undefined ? '' : $card.css('overflow'));
|
7166 |
+
}
|
7167 |
+
var $cardReveal = $(this).find('.card-reveal');
|
7168 |
+
if ($(e.target).is($('.card-reveal .card-title')) || $(e.target).is($('.card-reveal .card-title i'))) {
|
7169 |
+
// Make Reveal animate down and display none
|
7170 |
+
anim({
|
7171 |
+
targets: $cardReveal[0],
|
7172 |
+
translateY: 0,
|
7173 |
+
duration: 225,
|
7174 |
+
easing: 'easeInOutQuad',
|
7175 |
+
complete: function (anim) {
|
7176 |
+
var el = anim.animatables[0].target;
|
7177 |
+
$(el).css({ display: 'none' });
|
7178 |
+
$card.css('overflow', $card.data('initialOverflow'));
|
7179 |
+
}
|
7180 |
+
});
|
7181 |
+
} else if ($(e.target).is($('.card .activator')) || $(e.target).is($('.card .activator i'))) {
|
7182 |
+
$card.css('overflow', 'hidden');
|
7183 |
+
$cardReveal.css({ display: 'block' });
|
7184 |
+
anim({
|
7185 |
+
targets: $cardReveal[0],
|
7186 |
+
translateY: '-100%',
|
7187 |
+
duration: 300,
|
7188 |
+
easing: 'easeInOutQuad'
|
7189 |
+
});
|
7190 |
+
}
|
7191 |
+
}
|
7192 |
+
});
|
7193 |
+
})(cash, M.anime);
|
7194 |
+
;(function ($) {
|
7195 |
+
'use strict';
|
7196 |
+
|
7197 |
+
var _defaults = {
|
7198 |
+
data: [],
|
7199 |
+
placeholder: '',
|
7200 |
+
secondaryPlaceholder: '',
|
7201 |
+
autocompleteOptions: {},
|
7202 |
+
limit: Infinity,
|
7203 |
+
onChipAdd: null,
|
7204 |
+
onChipSelect: null,
|
7205 |
+
onChipDelete: null
|
7206 |
+
};
|
7207 |
+
|
7208 |
+
/**
|
7209 |
+
* @typedef {Object} chip
|
7210 |
+
* @property {String} tag chip tag string
|
7211 |
+
* @property {String} [image] chip avatar image string
|
7212 |
+
*/
|
7213 |
+
|
7214 |
+
/**
|
7215 |
+
* @class
|
7216 |
+
*
|
7217 |
+
*/
|
7218 |
+
|
7219 |
+
var Chips = function (_Component12) {
|
7220 |
+
_inherits(Chips, _Component12);
|
7221 |
+
|
7222 |
+
/**
|
7223 |
+
* Construct Chips instance and set up overlay
|
7224 |
+
* @constructor
|
7225 |
+
* @param {Element} el
|
7226 |
+
* @param {Object} options
|
7227 |
+
*/
|
7228 |
+
function Chips(el, options) {
|
7229 |
+
_classCallCheck(this, Chips);
|
7230 |
+
|
7231 |
+
var _this45 = _possibleConstructorReturn(this, (Chips.__proto__ || Object.getPrototypeOf(Chips)).call(this, Chips, el, options));
|
7232 |
+
|
7233 |
+
_this45.el.M_Chips = _this45;
|
7234 |
+
|
7235 |
+
/**
|
7236 |
+
* Options for the modal
|
7237 |
+
* @member Chips#options
|
7238 |
+
* @prop {Array} data
|
7239 |
+
* @prop {String} placeholder
|
7240 |
+
* @prop {String} secondaryPlaceholder
|
7241 |
+
* @prop {Object} autocompleteOptions
|
7242 |
+
*/
|
7243 |
+
_this45.options = $.extend({}, Chips.defaults, options);
|
7244 |
+
|
7245 |
+
_this45.$el.addClass('chips input-field');
|
7246 |
+
_this45.chipsData = [];
|
7247 |
+
_this45.$chips = $();
|
7248 |
+
_this45._setupInput();
|
7249 |
+
_this45.hasAutocomplete = Object.keys(_this45.options.autocompleteOptions).length > 0;
|
7250 |
+
|
7251 |
+
// Set input id
|
7252 |
+
if (!_this45.$input.attr('id')) {
|
7253 |
+
_this45.$input.attr('id', M.guid());
|
7254 |
+
}
|
7255 |
+
|
7256 |
+
// Render initial chips
|
7257 |
+
if (_this45.options.data.length) {
|
7258 |
+
_this45.chipsData = _this45.options.data;
|
7259 |
+
_this45._renderChips(_this45.chipsData);
|
7260 |
+
}
|
7261 |
+
|
7262 |
+
// Setup autocomplete if needed
|
7263 |
+
if (_this45.hasAutocomplete) {
|
7264 |
+
_this45._setupAutocomplete();
|
7265 |
+
}
|
7266 |
+
|
7267 |
+
_this45._setPlaceholder();
|
7268 |
+
_this45._setupLabel();
|
7269 |
+
_this45._setupEventHandlers();
|
7270 |
+
return _this45;
|
7271 |
+
}
|
7272 |
+
|
7273 |
+
_createClass(Chips, [{
|
7274 |
+
key: "getData",
|
7275 |
+
|
7276 |
+
|
7277 |
+
/**
|
7278 |
+
* Get Chips Data
|
7279 |
+
*/
|
7280 |
+
value: function getData() {
|
7281 |
+
return this.chipsData;
|
7282 |
+
}
|
7283 |
+
|
7284 |
+
/**
|
7285 |
+
* Teardown component
|
7286 |
+
*/
|
7287 |
+
|
7288 |
+
}, {
|
7289 |
+
key: "destroy",
|
7290 |
+
value: function destroy() {
|
7291 |
+
this._removeEventHandlers();
|
7292 |
+
this.$chips.remove();
|
7293 |
+
this.el.M_Chips = undefined;
|
7294 |
+
}
|
7295 |
+
|
7296 |
+
/**
|
7297 |
+
* Setup Event Handlers
|
7298 |
+
*/
|
7299 |
+
|
7300 |
+
}, {
|
7301 |
+
key: "_setupEventHandlers",
|
7302 |
+
value: function _setupEventHandlers() {
|
7303 |
+
this._handleChipClickBound = this._handleChipClick.bind(this);
|
7304 |
+
this._handleInputKeydownBound = this._handleInputKeydown.bind(this);
|
7305 |
+
this._handleInputFocusBound = this._handleInputFocus.bind(this);
|
7306 |
+
this._handleInputBlurBound = this._handleInputBlur.bind(this);
|
7307 |
+
|
7308 |
+
this.el.addEventListener('click', this._handleChipClickBound);
|
7309 |
+
document.addEventListener('keydown', Chips._handleChipsKeydown);
|
7310 |
+
document.addEventListener('keyup', Chips._handleChipsKeyup);
|
7311 |
+
this.el.addEventListener('blur', Chips._handleChipsBlur, true);
|
7312 |
+
this.$input[0].addEventListener('focus', this._handleInputFocusBound);
|
7313 |
+
this.$input[0].addEventListener('blur', this._handleInputBlurBound);
|
7314 |
+
this.$input[0].addEventListener('keydown', this._handleInputKeydownBound);
|
7315 |
+
}
|
7316 |
+
|
7317 |
+
/**
|
7318 |
+
* Remove Event Handlers
|
7319 |
+
*/
|
7320 |
+
|
7321 |
+
}, {
|
7322 |
+
key: "_removeEventHandlers",
|
7323 |
+
value: function _removeEventHandlers() {
|
7324 |
+
this.el.removeEventListener('click', this._handleChipClickBound);
|
7325 |
+
document.removeEventListener('keydown', Chips._handleChipsKeydown);
|
7326 |
+
document.removeEventListener('keyup', Chips._handleChipsKeyup);
|
7327 |
+
this.el.removeEventListener('blur', Chips._handleChipsBlur, true);
|
7328 |
+
this.$input[0].removeEventListener('focus', this._handleInputFocusBound);
|
7329 |
+
this.$input[0].removeEventListener('blur', this._handleInputBlurBound);
|
7330 |
+
this.$input[0].removeEventListener('keydown', this._handleInputKeydownBound);
|
7331 |
+
}
|
7332 |
+
|
7333 |
+
/**
|
7334 |
+
* Handle Chip Click
|
7335 |
+
* @param {Event} e
|
7336 |
+
*/
|
7337 |
+
|
7338 |
+
}, {
|
7339 |
+
key: "_handleChipClick",
|
7340 |
+
value: function _handleChipClick(e) {
|
7341 |
+
var $chip = $(e.target).closest('.chip');
|
7342 |
+
var clickedClose = $(e.target).is('.close');
|
7343 |
+
if ($chip.length) {
|
7344 |
+
var index = $chip.index();
|
7345 |
+
if (clickedClose) {
|
7346 |
+
// delete chip
|
7347 |
+
this.deleteChip(index);
|
7348 |
+
this.$input[0].focus();
|
7349 |
+
} else {
|
7350 |
+
// select chip
|
7351 |
+
this.selectChip(index);
|
7352 |
+
}
|
7353 |
+
|
7354 |
+
// Default handle click to focus on input
|
7355 |
+
} else {
|
7356 |
+
this.$input[0].focus();
|
7357 |
+
}
|
7358 |
+
}
|
7359 |
+
|
7360 |
+
/**
|
7361 |
+
* Handle Chips Keydown
|
7362 |
+
* @param {Event} e
|
7363 |
+
*/
|
7364 |
+
|
7365 |
+
}, {
|
7366 |
+
key: "_handleInputFocus",
|
7367 |
+
|
7368 |
+
|
7369 |
+
/**
|
7370 |
+
* Handle Input Focus
|
7371 |
+
*/
|
7372 |
+
value: function _handleInputFocus() {
|
7373 |
+
this.$el.addClass('focus');
|
7374 |
+
}
|
7375 |
+
|
7376 |
+
/**
|
7377 |
+
* Handle Input Blur
|
7378 |
+
*/
|
7379 |
+
|
7380 |
+
}, {
|
7381 |
+
key: "_handleInputBlur",
|
7382 |
+
value: function _handleInputBlur() {
|
7383 |
+
this.$el.removeClass('focus');
|
7384 |
+
}
|
7385 |
+
|
7386 |
+
/**
|
7387 |
+
* Handle Input Keydown
|
7388 |
+
* @param {Event} e
|
7389 |
+
*/
|
7390 |
+
|
7391 |
+
}, {
|
7392 |
+
key: "_handleInputKeydown",
|
7393 |
+
value: function _handleInputKeydown(e) {
|
7394 |
+
Chips._keydown = true;
|
7395 |
+
|
7396 |
+
// enter
|
7397 |
+
if (e.keyCode === 13) {
|
7398 |
+
// Override enter if autocompleting.
|
7399 |
+
if (this.hasAutocomplete && this.autocomplete && this.autocomplete.isOpen) {
|
7400 |
+
return;
|
7401 |
+
}
|
7402 |
+
|
7403 |
+
e.preventDefault();
|
7404 |
+
this.addChip({
|
7405 |
+
tag: this.$input[0].value
|
7406 |
+
});
|
7407 |
+
this.$input[0].value = '';
|
7408 |
+
|
7409 |
+
// delete or left
|
7410 |
+
} else if ((e.keyCode === 8 || e.keyCode === 37) && this.$input[0].value === '' && this.chipsData.length) {
|
7411 |
+
e.preventDefault();
|
7412 |
+
this.selectChip(this.chipsData.length - 1);
|
7413 |
+
}
|
7414 |
+
}
|
7415 |
+
|
7416 |
+
/**
|
7417 |
+
* Render Chip
|
7418 |
+
* @param {chip} chip
|
7419 |
+
* @return {Element}
|
7420 |
+
*/
|
7421 |
+
|
7422 |
+
}, {
|
7423 |
+
key: "_renderChip",
|
7424 |
+
value: function _renderChip(chip) {
|
7425 |
+
if (!chip.tag) {
|
7426 |
+
return;
|
7427 |
+
}
|
7428 |
+
|
7429 |
+
var renderedChip = document.createElement('div');
|
7430 |
+
var closeIcon = document.createElement('i');
|
7431 |
+
renderedChip.classList.add('chip');
|
7432 |
+
renderedChip.textContent = chip.tag;
|
7433 |
+
renderedChip.setAttribute('tabindex', 0);
|
7434 |
+
$(closeIcon).addClass('material-icons close');
|
7435 |
+
closeIcon.textContent = 'close';
|
7436 |
+
|
7437 |
+
// attach image if needed
|
7438 |
+
if (chip.image) {
|
7439 |
+
var img = document.createElement('img');
|
7440 |
+
img.setAttribute('src', chip.image);
|
7441 |
+
renderedChip.insertBefore(img, renderedChip.firstChild);
|
7442 |
+
}
|
7443 |
+
|
7444 |
+
renderedChip.appendChild(closeIcon);
|
7445 |
+
return renderedChip;
|
7446 |
+
}
|
7447 |
+
|
7448 |
+
/**
|
7449 |
+
* Render Chips
|
7450 |
+
*/
|
7451 |
+
|
7452 |
+
}, {
|
7453 |
+
key: "_renderChips",
|
7454 |
+
value: function _renderChips() {
|
7455 |
+
this.$chips.remove();
|
7456 |
+
for (var i = 0; i < this.chipsData.length; i++) {
|
7457 |
+
var chipEl = this._renderChip(this.chipsData[i]);
|
7458 |
+
this.$el.append(chipEl);
|
7459 |
+
this.$chips.add(chipEl);
|
7460 |
+
}
|
7461 |
+
|
7462 |
+
// move input to end
|
7463 |
+
this.$el.append(this.$input[0]);
|
7464 |
+
}
|
7465 |
+
|
7466 |
+
/**
|
7467 |
+
* Setup Autocomplete
|
7468 |
+
*/
|
7469 |
+
|
7470 |
+
}, {
|
7471 |
+
key: "_setupAutocomplete",
|
7472 |
+
value: function _setupAutocomplete() {
|
7473 |
+
var _this46 = this;
|
7474 |
+
|
7475 |
+
this.options.autocompleteOptions.onAutocomplete = function (val) {
|
7476 |
+
_this46.addChip({
|
7477 |
+
tag: val
|
7478 |
+
});
|
7479 |
+
_this46.$input[0].value = '';
|
7480 |
+
_this46.$input[0].focus();
|
7481 |
+
};
|
7482 |
+
|
7483 |
+
this.autocomplete = M.Autocomplete.init(this.$input[0], this.options.autocompleteOptions);
|
7484 |
+
}
|
7485 |
+
|
7486 |
+
/**
|
7487 |
+
* Setup Input
|
7488 |
+
*/
|
7489 |
+
|
7490 |
+
}, {
|
7491 |
+
key: "_setupInput",
|
7492 |
+
value: function _setupInput() {
|
7493 |
+
this.$input = this.$el.find('input');
|
7494 |
+
if (!this.$input.length) {
|
7495 |
+
this.$input = $('<input></input>');
|
7496 |
+
this.$el.append(this.$input);
|
7497 |
+
}
|
7498 |
+
|
7499 |
+
this.$input.addClass('input');
|
7500 |
+
}
|
7501 |
+
|
7502 |
+
/**
|
7503 |
+
* Setup Label
|
7504 |
+
*/
|
7505 |
+
|
7506 |
+
}, {
|
7507 |
+
key: "_setupLabel",
|
7508 |
+
value: function _setupLabel() {
|
7509 |
+
this.$label = this.$el.find('label');
|
7510 |
+
if (this.$label.length) {
|
7511 |
+
this.$label.setAttribute('for', this.$input.attr('id'));
|
7512 |
+
}
|
7513 |
+
}
|
7514 |
+
|
7515 |
+
/**
|
7516 |
+
* Set placeholder
|
7517 |
+
*/
|
7518 |
+
|
7519 |
+
}, {
|
7520 |
+
key: "_setPlaceholder",
|
7521 |
+
value: function _setPlaceholder() {
|
7522 |
+
if (this.chipsData !== undefined && !this.chipsData.length && this.options.placeholder) {
|
7523 |
+
$(this.$input).prop('placeholder', this.options.placeholder);
|
7524 |
+
} else if ((this.chipsData === undefined || !!this.chipsData.length) && this.options.secondaryPlaceholder) {
|
7525 |
+
$(this.$input).prop('placeholder', this.options.secondaryPlaceholder);
|
7526 |
+
}
|
7527 |
+
}
|
7528 |
+
|
7529 |
+
/**
|
7530 |
+
* Check if chip is valid
|
7531 |
+
* @param {chip} chip
|
7532 |
+
*/
|
7533 |
+
|
7534 |
+
}, {
|
7535 |
+
key: "_isValid",
|
7536 |
+
value: function _isValid(chip) {
|
7537 |
+
if (chip.hasOwnProperty('tag') && chip.tag !== '') {
|
7538 |
+
var exists = false;
|
7539 |
+
for (var i = 0; i < this.chipsData.length; i++) {
|
7540 |
+
if (this.chipsData[i].tag === chip.tag) {
|
7541 |
+
exists = true;
|
7542 |
+
break;
|
7543 |
+
}
|
7544 |
+
}
|
7545 |
+
return !exists;
|
7546 |
+
}
|
7547 |
+
|
7548 |
+
return false;
|
7549 |
+
}
|
7550 |
+
|
7551 |
+
/**
|
7552 |
+
* Add chip
|
7553 |
+
* @param {chip} chip
|
7554 |
+
*/
|
7555 |
+
|
7556 |
+
}, {
|
7557 |
+
key: "addChip",
|
7558 |
+
value: function addChip(chip) {
|
7559 |
+
if (!this._isValid(chip) || this.chipsData.length >= this.options.limit) {
|
7560 |
+
return;
|
7561 |
+
}
|
7562 |
+
|
7563 |
+
var renderedChip = this._renderChip(chip);
|
7564 |
+
this.$chips.add(renderedChip);
|
7565 |
+
this.chipsData.push(chip);
|
7566 |
+
$(this.$input).before(renderedChip);
|
7567 |
+
this._setPlaceholder();
|
7568 |
+
|
7569 |
+
// fire chipAdd callback
|
7570 |
+
if (typeof this.options.onChipAdd === 'function') {
|
7571 |
+
this.options.onChipAdd.call(this, this.$el, renderedChip);
|
7572 |
+
}
|
7573 |
+
}
|
7574 |
+
|
7575 |
+
/**
|
7576 |
+
* Delete chip
|
7577 |
+
* @param {Number} chip
|
7578 |
+
*/
|
7579 |
+
|
7580 |
+
}, {
|
7581 |
+
key: "deleteChip",
|
7582 |
+
value: function deleteChip(chipIndex) {
|
7583 |
+
var $chip = this.$chips.eq(chipIndex);
|
7584 |
+
this.$chips.eq(chipIndex).remove();
|
7585 |
+
this.$chips = this.$chips.filter(function (el) {
|
7586 |
+
return $(el).index() >= 0;
|
7587 |
+
});
|
7588 |
+
this.chipsData.splice(chipIndex, 1);
|
7589 |
+
this._setPlaceholder();
|
7590 |
+
|
7591 |
+
// fire chipDelete callback
|
7592 |
+
if (typeof this.options.onChipDelete === 'function') {
|
7593 |
+
this.options.onChipDelete.call(this, this.$el, $chip[0]);
|
7594 |
+
}
|
7595 |
+
}
|
7596 |
+
|
7597 |
+
/**
|
7598 |
+
* Select chip
|
7599 |
+
* @param {Number} chip
|
7600 |
+
*/
|
7601 |
+
|
7602 |
+
}, {
|
7603 |
+
key: "selectChip",
|
7604 |
+
value: function selectChip(chipIndex) {
|
7605 |
+
var $chip = this.$chips.eq(chipIndex);
|
7606 |
+
this._selectedChip = $chip;
|
7607 |
+
$chip[0].focus();
|
7608 |
+
|
7609 |
+
// fire chipSelect callback
|
7610 |
+
if (typeof this.options.onChipSelect === 'function') {
|
7611 |
+
this.options.onChipSelect.call(this, this.$el, $chip[0]);
|
7612 |
+
}
|
7613 |
+
}
|
7614 |
+
}], [{
|
7615 |
+
key: "init",
|
7616 |
+
value: function init(els, options) {
|
7617 |
+
return _get(Chips.__proto__ || Object.getPrototypeOf(Chips), "init", this).call(this, this, els, options);
|
7618 |
+
}
|
7619 |
+
|
7620 |
+
/**
|
7621 |
+
* Get Instance
|
7622 |
+
*/
|
7623 |
+
|
7624 |
+
}, {
|
7625 |
+
key: "getInstance",
|
7626 |
+
value: function getInstance(el) {
|
7627 |
+
var domElem = !!el.jquery ? el[0] : el;
|
7628 |
+
return domElem.M_Chips;
|
7629 |
+
}
|
7630 |
+
}, {
|
7631 |
+
key: "_handleChipsKeydown",
|
7632 |
+
value: function _handleChipsKeydown(e) {
|
7633 |
+
Chips._keydown = true;
|
7634 |
+
|
7635 |
+
var $chips = $(e.target).closest('.chips');
|
7636 |
+
var chipsKeydown = e.target && $chips.length;
|
7637 |
+
|
7638 |
+
// Don't handle keydown inputs on input and textarea
|
7639 |
+
if ($(e.target).is('input, textarea') || !chipsKeydown) {
|
7640 |
+
return;
|
7641 |
+
}
|
7642 |
+
|
7643 |
+
var currChips = $chips[0].M_Chips;
|
7644 |
+
|
7645 |
+
// backspace and delete
|
7646 |
+
if (e.keyCode === 8 || e.keyCode === 46) {
|
7647 |
+
e.preventDefault();
|
7648 |
+
|
7649 |
+
var selectIndex = currChips.chipsData.length;
|
7650 |
+
if (currChips._selectedChip) {
|
7651 |
+
var index = currChips._selectedChip.index();
|
7652 |
+
currChips.deleteChip(index);
|
7653 |
+
currChips._selectedChip = null;
|
7654 |
+
|
7655 |
+
// Make sure selectIndex doesn't go negative
|
7656 |
+
selectIndex = Math.max(index - 1, 0);
|
7657 |
+
}
|
7658 |
+
|
7659 |
+
if (currChips.chipsData.length) {
|
7660 |
+
currChips.selectChip(selectIndex);
|
7661 |
+
}
|
7662 |
+
|
7663 |
+
// left arrow key
|
7664 |
+
} else if (e.keyCode === 37) {
|
7665 |
+
if (currChips._selectedChip) {
|
7666 |
+
var _selectIndex = currChips._selectedChip.index() - 1;
|
7667 |
+
if (_selectIndex < 0) {
|
7668 |
+
return;
|
7669 |
+
}
|
7670 |
+
currChips.selectChip(_selectIndex);
|
7671 |
+
}
|
7672 |
+
|
7673 |
+
// right arrow key
|
7674 |
+
} else if (e.keyCode === 39) {
|
7675 |
+
if (currChips._selectedChip) {
|
7676 |
+
var _selectIndex2 = currChips._selectedChip.index() + 1;
|
7677 |
+
|
7678 |
+
if (_selectIndex2 >= currChips.chipsData.length) {
|
7679 |
+
currChips.$input[0].focus();
|
7680 |
+
} else {
|
7681 |
+
currChips.selectChip(_selectIndex2);
|
7682 |
+
}
|
7683 |
+
}
|
7684 |
+
}
|
7685 |
+
}
|
7686 |
+
|
7687 |
+
/**
|
7688 |
+
* Handle Chips Keyup
|
7689 |
+
* @param {Event} e
|
7690 |
+
*/
|
7691 |
+
|
7692 |
+
}, {
|
7693 |
+
key: "_handleChipsKeyup",
|
7694 |
+
value: function _handleChipsKeyup(e) {
|
7695 |
+
Chips._keydown = false;
|
7696 |
+
}
|
7697 |
+
|
7698 |
+
/**
|
7699 |
+
* Handle Chips Blur
|
7700 |
+
* @param {Event} e
|
7701 |
+
*/
|
7702 |
+
|
7703 |
+
}, {
|
7704 |
+
key: "_handleChipsBlur",
|
7705 |
+
value: function _handleChipsBlur(e) {
|
7706 |
+
if (!Chips._keydown) {
|
7707 |
+
var $chips = $(e.target).closest('.chips');
|
7708 |
+
var currChips = $chips[0].M_Chips;
|
7709 |
+
|
7710 |
+
currChips._selectedChip = null;
|
7711 |
+
}
|
7712 |
+
}
|
7713 |
+
}, {
|
7714 |
+
key: "defaults",
|
7715 |
+
get: function () {
|
7716 |
+
return _defaults;
|
7717 |
+
}
|
7718 |
+
}]);
|
7719 |
+
|
7720 |
+
return Chips;
|
7721 |
+
}(Component);
|
7722 |
+
|
7723 |
+
/**
|
7724 |
+
* @static
|
7725 |
+
* @memberof Chips
|
7726 |
+
*/
|
7727 |
+
|
7728 |
+
|
7729 |
+
Chips._keydown = false;
|
7730 |
+
|
7731 |
+
M.Chips = Chips;
|
7732 |
+
|
7733 |
+
if (M.jQueryLoaded) {
|
7734 |
+
M.initializeJqueryWrapper(Chips, 'chips', 'M_Chips');
|
7735 |
+
}
|
7736 |
+
|
7737 |
+
$(document).ready(function () {
|
7738 |
+
// Handle removal of static chips.
|
7739 |
+
$(document.body).on('click', '.chip .close', function () {
|
7740 |
+
var $chips = $(this).closest('.chips');
|
7741 |
+
if ($chips.length && $chips[0].M_Chips) {
|
7742 |
+
return;
|
7743 |
+
}
|
7744 |
+
$(this).closest('.chip').remove();
|
7745 |
+
});
|
7746 |
+
});
|
7747 |
+
})(cash);
|
7748 |
+
;(function ($) {
|
7749 |
+
'use strict';
|
7750 |
+
|
7751 |
+
var _defaults = {
|
7752 |
+
top: 0,
|
7753 |
+
bottom: Infinity,
|
7754 |
+
offset: 0,
|
7755 |
+
onPositionChange: null
|
7756 |
+
};
|
7757 |
+
|
7758 |
+
/**
|
7759 |
+
* @class
|
7760 |
+
*
|
7761 |
+
*/
|
7762 |
+
|
7763 |
+
var Pushpin = function (_Component13) {
|
7764 |
+
_inherits(Pushpin, _Component13);
|
7765 |
+
|
7766 |
+
/**
|
7767 |
+
* Construct Pushpin instance
|
7768 |
+
* @constructor
|
7769 |
+
* @param {Element} el
|
7770 |
+
* @param {Object} options
|
7771 |
+
*/
|
7772 |
+
function Pushpin(el, options) {
|
7773 |
+
_classCallCheck(this, Pushpin);
|
7774 |
+
|
7775 |
+
var _this47 = _possibleConstructorReturn(this, (Pushpin.__proto__ || Object.getPrototypeOf(Pushpin)).call(this, Pushpin, el, options));
|
7776 |
+
|
7777 |
+
_this47.el.M_Pushpin = _this47;
|
7778 |
+
|
7779 |
+
/**
|
7780 |
+
* Options for the modal
|
7781 |
+
* @member Pushpin#options
|
7782 |
+
*/
|
7783 |
+
_this47.options = $.extend({}, Pushpin.defaults, options);
|
7784 |
+
|
7785 |
+
_this47.originalOffset = _this47.el.offsetTop;
|
7786 |
+
Pushpin._pushpins.push(_this47);
|
7787 |
+
_this47._setupEventHandlers();
|
7788 |
+
_this47._updatePosition();
|
7789 |
+
return _this47;
|
7790 |
+
}
|
7791 |
+
|
7792 |
+
_createClass(Pushpin, [{
|
7793 |
+
key: "destroy",
|
7794 |
+
|
7795 |
+
|
7796 |
+
/**
|
7797 |
+
* Teardown component
|
7798 |
+
*/
|
7799 |
+
value: function destroy() {
|
7800 |
+
this.el.style.top = null;
|
7801 |
+
this._removePinClasses();
|
7802 |
+
this._removeEventHandlers();
|
7803 |
+
|
7804 |
+
// Remove pushpin Inst
|
7805 |
+
var index = Pushpin._pushpins.indexOf(this);
|
7806 |
+
Pushpin._pushpins.splice(index, 1);
|
7807 |
+
}
|
7808 |
+
}, {
|
7809 |
+
key: "_setupEventHandlers",
|
7810 |
+
value: function _setupEventHandlers() {
|
7811 |
+
document.addEventListener('scroll', Pushpin._updateElements);
|
7812 |
+
}
|
7813 |
+
}, {
|
7814 |
+
key: "_removeEventHandlers",
|
7815 |
+
value: function _removeEventHandlers() {
|
7816 |
+
document.removeEventListener('scroll', Pushpin._updateElements);
|
7817 |
+
}
|
7818 |
+
}, {
|
7819 |
+
key: "_updatePosition",
|
7820 |
+
value: function _updatePosition() {
|
7821 |
+
var scrolled = M.getDocumentScrollTop() + this.options.offset;
|
7822 |
+
|
7823 |
+
if (this.options.top <= scrolled && this.options.bottom >= scrolled && !this.el.classList.contains('pinned')) {
|
7824 |
+
this._removePinClasses();
|
7825 |
+
this.el.style.top = this.options.offset + "px";
|
7826 |
+
this.el.classList.add('pinned');
|
7827 |
+
|
7828 |
+
// onPositionChange callback
|
7829 |
+
if (typeof this.options.onPositionChange === 'function') {
|
7830 |
+
this.options.onPositionChange.call(this, 'pinned');
|
7831 |
+
}
|
7832 |
+
}
|
7833 |
+
|
7834 |
+
// Add pin-top (when scrolled position is above top)
|
7835 |
+
if (scrolled < this.options.top && !this.el.classList.contains('pin-top')) {
|
7836 |
+
this._removePinClasses();
|
7837 |
+
this.el.style.top = 0;
|
7838 |
+
this.el.classList.add('pin-top');
|
7839 |
+
|
7840 |
+
// onPositionChange callback
|
7841 |
+
if (typeof this.options.onPositionChange === 'function') {
|
7842 |
+
this.options.onPositionChange.call(this, 'pin-top');
|
7843 |
+
}
|
7844 |
+
}
|
7845 |
+
|
7846 |
+
// Add pin-bottom (when scrolled position is below bottom)
|
7847 |
+
if (scrolled > this.options.bottom && !this.el.classList.contains('pin-bottom')) {
|
7848 |
+
this._removePinClasses();
|
7849 |
+
this.el.classList.add('pin-bottom');
|
7850 |
+
this.el.style.top = this.options.bottom - this.originalOffset + "px";
|
7851 |
+
|
7852 |
+
// onPositionChange callback
|
7853 |
+
if (typeof this.options.onPositionChange === 'function') {
|
7854 |
+
this.options.onPositionChange.call(this, 'pin-bottom');
|
7855 |
+
}
|
7856 |
+
}
|
7857 |
+
}
|
7858 |
+
}, {
|
7859 |
+
key: "_removePinClasses",
|
7860 |
+
value: function _removePinClasses() {
|
7861 |
+
// IE 11 bug (can't remove multiple classes in one line)
|
7862 |
+
this.el.classList.remove('pin-top');
|
7863 |
+
this.el.classList.remove('pinned');
|
7864 |
+
this.el.classList.remove('pin-bottom');
|
7865 |
+
}
|
7866 |
+
}], [{
|
7867 |
+
key: "init",
|
7868 |
+
value: function init(els, options) {
|
7869 |
+
return _get(Pushpin.__proto__ || Object.getPrototypeOf(Pushpin), "init", this).call(this, this, els, options);
|
7870 |
+
}
|
7871 |
+
|
7872 |
+
/**
|
7873 |
+
* Get Instance
|
7874 |
+
*/
|
7875 |
+
|
7876 |
+
}, {
|
7877 |
+
key: "getInstance",
|
7878 |
+
value: function getInstance(el) {
|
7879 |
+
var domElem = !!el.jquery ? el[0] : el;
|
7880 |
+
return domElem.M_Pushpin;
|
7881 |
+
}
|
7882 |
+
}, {
|
7883 |
+
key: "_updateElements",
|
7884 |
+
value: function _updateElements() {
|
7885 |
+
for (var elIndex in Pushpin._pushpins) {
|
7886 |
+
var pInstance = Pushpin._pushpins[elIndex];
|
7887 |
+
pInstance._updatePosition();
|
7888 |
+
}
|
7889 |
+
}
|
7890 |
+
}, {
|
7891 |
+
key: "defaults",
|
7892 |
+
get: function () {
|
7893 |
+
return _defaults;
|
7894 |
+
}
|
7895 |
+
}]);
|
7896 |
+
|
7897 |
+
return Pushpin;
|
7898 |
+
}(Component);
|
7899 |
+
|
7900 |
+
/**
|
7901 |
+
* @static
|
7902 |
+
* @memberof Pushpin
|
7903 |
+
*/
|
7904 |
+
|
7905 |
+
|
7906 |
+
Pushpin._pushpins = [];
|
7907 |
+
|
7908 |
+
M.Pushpin = Pushpin;
|
7909 |
+
|
7910 |
+
if (M.jQueryLoaded) {
|
7911 |
+
M.initializeJqueryWrapper(Pushpin, 'pushpin', 'M_Pushpin');
|
7912 |
+
}
|
7913 |
+
})(cash);
|
7914 |
+
;(function ($, anim) {
|
7915 |
+
'use strict';
|
7916 |
+
|
7917 |
+
var _defaults = {
|
7918 |
+
direction: 'top',
|
7919 |
+
hoverEnabled: true,
|
7920 |
+
toolbarEnabled: false
|
7921 |
+
};
|
7922 |
+
|
7923 |
+
$.fn.reverse = [].reverse;
|
7924 |
+
|
7925 |
+
/**
|
7926 |
+
* @class
|
7927 |
+
*
|
7928 |
+
*/
|
7929 |
+
|
7930 |
+
var FloatingActionButton = function (_Component14) {
|
7931 |
+
_inherits(FloatingActionButton, _Component14);
|
7932 |
+
|
7933 |
+
/**
|
7934 |
+
* Construct FloatingActionButton instance
|
7935 |
+
* @constructor
|
7936 |
+
* @param {Element} el
|
7937 |
+
* @param {Object} options
|
7938 |
+
*/
|
7939 |
+
function FloatingActionButton(el, options) {
|
7940 |
+
_classCallCheck(this, FloatingActionButton);
|
7941 |
+
|
7942 |
+
var _this48 = _possibleConstructorReturn(this, (FloatingActionButton.__proto__ || Object.getPrototypeOf(FloatingActionButton)).call(this, FloatingActionButton, el, options));
|
7943 |
+
|
7944 |
+
_this48.el.M_FloatingActionButton = _this48;
|
7945 |
+
|
7946 |
+
/**
|
7947 |
+
* Options for the fab
|
7948 |
+
* @member FloatingActionButton#options
|
7949 |
+
* @prop {Boolean} [direction] - Direction fab menu opens
|
7950 |
+
* @prop {Boolean} [hoverEnabled=true] - Enable hover vs click
|
7951 |
+
* @prop {Boolean} [toolbarEnabled=false] - Enable toolbar transition
|
7952 |
+
*/
|
7953 |
+
_this48.options = $.extend({}, FloatingActionButton.defaults, options);
|
7954 |
+
|
7955 |
+
_this48.isOpen = false;
|
7956 |
+
_this48.$anchor = _this48.$el.children('a').first();
|
7957 |
+
_this48.$menu = _this48.$el.children('ul').first();
|
7958 |
+
_this48.$floatingBtns = _this48.$el.find('ul .btn-floating');
|
7959 |
+
_this48.$floatingBtnsReverse = _this48.$el.find('ul .btn-floating').reverse();
|
7960 |
+
_this48.offsetY = 0;
|
7961 |
+
_this48.offsetX = 0;
|
7962 |
+
|
7963 |
+
_this48.$el.addClass("direction-" + _this48.options.direction);
|
7964 |
+
if (_this48.options.direction === 'top') {
|
7965 |
+
_this48.offsetY = 40;
|
7966 |
+
} else if (_this48.options.direction === 'right') {
|
7967 |
+
_this48.offsetX = -40;
|
7968 |
+
} else if (_this48.options.direction === 'bottom') {
|
7969 |
+
_this48.offsetY = -40;
|
7970 |
+
} else {
|
7971 |
+
_this48.offsetX = 40;
|
7972 |
+
}
|
7973 |
+
_this48._setupEventHandlers();
|
7974 |
+
return _this48;
|
7975 |
+
}
|
7976 |
+
|
7977 |
+
_createClass(FloatingActionButton, [{
|
7978 |
+
key: "destroy",
|
7979 |
+
|
7980 |
+
|
7981 |
+
/**
|
7982 |
+
* Teardown component
|
7983 |
+
*/
|
7984 |
+
value: function destroy() {
|
7985 |
+
this._removeEventHandlers();
|
7986 |
+
this.el.M_FloatingActionButton = undefined;
|
7987 |
+
}
|
7988 |
+
|
7989 |
+
/**
|
7990 |
+
* Setup Event Handlers
|
7991 |
+
*/
|
7992 |
+
|
7993 |
+
}, {
|
7994 |
+
key: "_setupEventHandlers",
|
7995 |
+
value: function _setupEventHandlers() {
|
7996 |
+
this._handleFABClickBound = this._handleFABClick.bind(this);
|
7997 |
+
this._handleOpenBound = this.open.bind(this);
|
7998 |
+
this._handleCloseBound = this.close.bind(this);
|
7999 |
+
|
8000 |
+
if (this.options.hoverEnabled && !this.options.toolbarEnabled) {
|
8001 |
+
this.el.addEventListener('mouseenter', this._handleOpenBound);
|
8002 |
+
this.el.addEventListener('mouseleave', this._handleCloseBound);
|
8003 |
+
} else {
|
8004 |
+
this.el.addEventListener('click', this._handleFABClickBound);
|
8005 |
+
}
|
8006 |
+
}
|
8007 |
+
|
8008 |
+
/**
|
8009 |
+
* Remove Event Handlers
|
8010 |
+
*/
|
8011 |
+
|
8012 |
+
}, {
|
8013 |
+
key: "_removeEventHandlers",
|
8014 |
+
value: function _removeEventHandlers() {
|
8015 |
+
if (this.options.hoverEnabled && !this.options.toolbarEnabled) {
|
8016 |
+
this.el.removeEventListener('mouseenter', this._handleOpenBound);
|
8017 |
+
this.el.removeEventListener('mouseleave', this._handleCloseBound);
|
8018 |
+
} else {
|
8019 |
+
this.el.removeEventListener('click', this._handleFABClickBound);
|
8020 |
+
}
|
8021 |
+
}
|
8022 |
+
|
8023 |
+
/**
|
8024 |
+
* Handle FAB Click
|
8025 |
+
*/
|
8026 |
+
|
8027 |
+
}, {
|
8028 |
+
key: "_handleFABClick",
|
8029 |
+
value: function _handleFABClick() {
|
8030 |
+
if (this.isOpen) {
|
8031 |
+
this.close();
|
8032 |
+
} else {
|
8033 |
+
this.open();
|
8034 |
+
}
|
8035 |
+
}
|
8036 |
+
|
8037 |
+
/**
|
8038 |
+
* Handle Document Click
|
8039 |
+
* @param {Event} e
|
8040 |
+
*/
|
8041 |
+
|
8042 |
+
}, {
|
8043 |
+
key: "_handleDocumentClick",
|
8044 |
+
value: function _handleDocumentClick(e) {
|
8045 |
+
if (!$(e.target).closest(this.$menu).length) {
|
8046 |
+
this.close();
|
8047 |
+
}
|
8048 |
+
}
|
8049 |
+
|
8050 |
+
/**
|
8051 |
+
* Open FAB
|
8052 |
+
*/
|
8053 |
+
|
8054 |
+
}, {
|
8055 |
+
key: "open",
|
8056 |
+
value: function open() {
|
8057 |
+
if (this.isOpen) {
|
8058 |
+
return;
|
8059 |
+
}
|
8060 |
+
|
8061 |
+
if (this.options.toolbarEnabled) {
|
8062 |
+
this._animateInToolbar();
|
8063 |
+
} else {
|
8064 |
+
this._animateInFAB();
|
8065 |
+
}
|
8066 |
+
this.isOpen = true;
|
8067 |
+
}
|
8068 |
+
|
8069 |
+
/**
|
8070 |
+
* Close FAB
|
8071 |
+
*/
|
8072 |
+
|
8073 |
+
}, {
|
8074 |
+
key: "close",
|
8075 |
+
value: function close() {
|
8076 |
+
if (!this.isOpen) {
|
8077 |
+
return;
|
8078 |
+
}
|
8079 |
+
|
8080 |
+
if (this.options.toolbarEnabled) {
|
8081 |
+
window.removeEventListener('scroll', this._handleCloseBound, true);
|
8082 |
+
document.body.removeEventListener('click', this._handleDocumentClickBound, true);
|
8083 |
+
this._animateOutToolbar();
|
8084 |
+
} else {
|
8085 |
+
this._animateOutFAB();
|
8086 |
+
}
|
8087 |
+
this.isOpen = false;
|
8088 |
+
}
|
8089 |
+
|
8090 |
+
/**
|
8091 |
+
* Classic FAB Menu open
|
8092 |
+
*/
|
8093 |
+
|
8094 |
+
}, {
|
8095 |
+
key: "_animateInFAB",
|
8096 |
+
value: function _animateInFAB() {
|
8097 |
+
var _this49 = this;
|
8098 |
+
|
8099 |
+
this.$el.addClass('active');
|
8100 |
+
|
8101 |
+
var time = 0;
|
8102 |
+
this.$floatingBtnsReverse.each(function (el) {
|
8103 |
+
anim({
|
8104 |
+
targets: el,
|
8105 |
+
opacity: 1,
|
8106 |
+
scale: [0.4, 1],
|
8107 |
+
translateY: [_this49.offsetY, 0],
|
8108 |
+
translateX: [_this49.offsetX, 0],
|
8109 |
+
duration: 275,
|
8110 |
+
delay: time,
|
8111 |
+
easing: 'easeInOutQuad'
|
8112 |
+
});
|
8113 |
+
time += 40;
|
8114 |
+
});
|
8115 |
+
}
|
8116 |
+
|
8117 |
+
/**
|
8118 |
+
* Classic FAB Menu close
|
8119 |
+
*/
|
8120 |
+
|
8121 |
+
}, {
|
8122 |
+
key: "_animateOutFAB",
|
8123 |
+
value: function _animateOutFAB() {
|
8124 |
+
var _this50 = this;
|
8125 |
+
|
8126 |
+
this.$floatingBtnsReverse.each(function (el) {
|
8127 |
+
anim.remove(el);
|
8128 |
+
anim({
|
8129 |
+
targets: el,
|
8130 |
+
opacity: 0,
|
8131 |
+
scale: 0.4,
|
8132 |
+
translateY: _this50.offsetY,
|
8133 |
+
translateX: _this50.offsetX,
|
8134 |
+
duration: 175,
|
8135 |
+
easing: 'easeOutQuad',
|
8136 |
+
complete: function () {
|
8137 |
+
_this50.$el.removeClass('active');
|
8138 |
+
}
|
8139 |
+
});
|
8140 |
+
});
|
8141 |
+
}
|
8142 |
+
|
8143 |
+
/**
|
8144 |
+
* Toolbar transition Menu open
|
8145 |
+
*/
|
8146 |
+
|
8147 |
+
}, {
|
8148 |
+
key: "_animateInToolbar",
|
8149 |
+
value: function _animateInToolbar() {
|
8150 |
+
var _this51 = this;
|
8151 |
+
|
8152 |
+
var scaleFactor = void 0;
|
8153 |
+
var windowWidth = window.innerWidth;
|
8154 |
+
var windowHeight = window.innerHeight;
|
8155 |
+
var btnRect = this.el.getBoundingClientRect();
|
8156 |
+
var backdrop = $('<div class="fab-backdrop"></div>');
|
8157 |
+
var fabColor = this.$anchor.css('background-color');
|
8158 |
+
this.$anchor.append(backdrop);
|
8159 |
+
|
8160 |
+
this.offsetX = btnRect.left - windowWidth / 2 + btnRect.width / 2;
|
8161 |
+
this.offsetY = windowHeight - btnRect.bottom;
|
8162 |
+
scaleFactor = windowWidth / backdrop[0].clientWidth;
|
8163 |
+
this.btnBottom = btnRect.bottom;
|
8164 |
+
this.btnLeft = btnRect.left;
|
8165 |
+
this.btnWidth = btnRect.width;
|
8166 |
+
|
8167 |
+
// Set initial state
|
8168 |
+
this.$el.addClass('active');
|
8169 |
+
this.$el.css({
|
8170 |
+
'text-align': 'center',
|
8171 |
+
width: '100%',
|
8172 |
+
bottom: 0,
|
8173 |
+
left: 0,
|
8174 |
+
transform: 'translateX(' + this.offsetX + 'px)',
|
8175 |
+
transition: 'none'
|
8176 |
+
});
|
8177 |
+
this.$anchor.css({
|
8178 |
+
transform: 'translateY(' + -this.offsetY + 'px)',
|
8179 |
+
transition: 'none'
|
8180 |
+
});
|
8181 |
+
backdrop.css({
|
8182 |
+
'background-color': fabColor
|
8183 |
+
});
|
8184 |
+
|
8185 |
+
setTimeout(function () {
|
8186 |
+
_this51.$el.css({
|
8187 |
+
transform: '',
|
8188 |
+
transition: 'transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s'
|
8189 |
+
});
|
8190 |
+
_this51.$anchor.css({
|
8191 |
+
overflow: 'visible',
|
8192 |
+
transform: '',
|
8193 |
+
transition: 'transform .2s'
|
8194 |
+
});
|
8195 |
+
|
8196 |
+
setTimeout(function () {
|
8197 |
+
_this51.$el.css({
|
8198 |
+
overflow: 'hidden',
|
8199 |
+
'background-color': fabColor
|
8200 |
+
});
|
8201 |
+
backdrop.css({
|
8202 |
+
transform: 'scale(' + scaleFactor + ')',
|
8203 |
+
transition: 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)'
|
8204 |
+
});
|
8205 |
+
_this51.$menu.children('li').children('a').css({
|
8206 |
+
opacity: 1
|
8207 |
+
});
|
8208 |
+
|
8209 |
+
// Scroll to close.
|
8210 |
+
_this51._handleDocumentClickBound = _this51._handleDocumentClick.bind(_this51);
|
8211 |
+
window.addEventListener('scroll', _this51._handleCloseBound, true);
|
8212 |
+
document.body.addEventListener('click', _this51._handleDocumentClickBound, true);
|
8213 |
+
}, 100);
|
8214 |
+
}, 0);
|
8215 |
+
}
|
8216 |
+
|
8217 |
+
/**
|
8218 |
+
* Toolbar transition Menu close
|
8219 |
+
*/
|
8220 |
+
|
8221 |
+
}, {
|
8222 |
+
key: "_animateOutToolbar",
|
8223 |
+
value: function _animateOutToolbar() {
|
8224 |
+
var _this52 = this;
|
8225 |
+
|
8226 |
+
var windowWidth = window.innerWidth;
|
8227 |
+
var windowHeight = window.innerHeight;
|
8228 |
+
var backdrop = this.$el.find('.fab-backdrop');
|
8229 |
+
var fabColor = this.$anchor.css('background-color');
|
8230 |
+
|
8231 |
+
this.offsetX = this.btnLeft - windowWidth / 2 + this.btnWidth / 2;
|
8232 |
+
this.offsetY = windowHeight - this.btnBottom;
|
8233 |
+
|
8234 |
+
// Hide backdrop
|
8235 |
+
this.$el.removeClass('active');
|
8236 |
+
this.$el.css({
|
8237 |
+
'background-color': 'transparent',
|
8238 |
+
transition: 'none'
|
8239 |
+
});
|
8240 |
+
this.$anchor.css({
|
8241 |
+
transition: 'none'
|
8242 |
+
});
|
8243 |
+
backdrop.css({
|
8244 |
+
transform: 'scale(0)',
|
8245 |
+
'background-color': fabColor
|
8246 |
+
});
|
8247 |
+
this.$menu.children('li').children('a').css({
|
8248 |
+
opacity: ''
|
8249 |
+
});
|
8250 |
+
|
8251 |
+
setTimeout(function () {
|
8252 |
+
backdrop.remove();
|
8253 |
+
|
8254 |
+
// Set initial state.
|
8255 |
+
_this52.$el.css({
|
8256 |
+
'text-align': '',
|
8257 |
+
width: '',
|
8258 |
+
bottom: '',
|
8259 |
+
left: '',
|
8260 |
+
overflow: '',
|
8261 |
+
'background-color': '',
|
8262 |
+
transform: 'translate3d(' + -_this52.offsetX + 'px,0,0)'
|
8263 |
+
});
|
8264 |
+
_this52.$anchor.css({
|
8265 |
+
overflow: '',
|
8266 |
+
transform: 'translate3d(0,' + _this52.offsetY + 'px,0)'
|
8267 |
+
});
|
8268 |
+
|
8269 |
+
setTimeout(function () {
|
8270 |
+
_this52.$el.css({
|
8271 |
+
transform: 'translate3d(0,0,0)',
|
8272 |
+
transition: 'transform .2s'
|
8273 |
+
});
|
8274 |
+
_this52.$anchor.css({
|
8275 |
+
transform: 'translate3d(0,0,0)',
|
8276 |
+
transition: 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)'
|
8277 |
+
});
|
8278 |
+
}, 20);
|
8279 |
+
}, 200);
|
8280 |
+
}
|
8281 |
+
}], [{
|
8282 |
+
key: "init",
|
8283 |
+
value: function init(els, options) {
|
8284 |
+
return _get(FloatingActionButton.__proto__ || Object.getPrototypeOf(FloatingActionButton), "init", this).call(this, this, els, options);
|
8285 |
+
}
|
8286 |
+
|
8287 |
+
/**
|
8288 |
+
* Get Instance
|
8289 |
+
*/
|
8290 |
+
|
8291 |
+
}, {
|
8292 |
+
key: "getInstance",
|
8293 |
+
value: function getInstance(el) {
|
8294 |
+
var domElem = !!el.jquery ? el[0] : el;
|
8295 |
+
return domElem.M_FloatingActionButton;
|
8296 |
+
}
|
8297 |
+
}, {
|
8298 |
+
key: "defaults",
|
8299 |
+
get: function () {
|
8300 |
+
return _defaults;
|
8301 |
+
}
|
8302 |
+
}]);
|
8303 |
+
|
8304 |
+
return FloatingActionButton;
|
8305 |
+
}(Component);
|
8306 |
+
|
8307 |
+
M.FloatingActionButton = FloatingActionButton;
|
8308 |
+
|
8309 |
+
if (M.jQueryLoaded) {
|
8310 |
+
M.initializeJqueryWrapper(FloatingActionButton, 'floatingActionButton', 'M_FloatingActionButton');
|
8311 |
+
}
|
8312 |
+
})(cash, M.anime);
|
8313 |
+
;(function ($) {
|
8314 |
+
'use strict';
|
8315 |
+
|
8316 |
+
var _defaults = {
|
8317 |
+
// Close when date is selected
|
8318 |
+
autoClose: false,
|
8319 |
+
|
8320 |
+
// the default output format for the input field value
|
8321 |
+
format: 'mmm dd, yyyy',
|
8322 |
+
|
8323 |
+
// Used to create date object from current input string
|
8324 |
+
parse: null,
|
8325 |
+
|
8326 |
+
// The initial date to view when first opened
|
8327 |
+
defaultDate: null,
|
8328 |
+
|
8329 |
+
// Make the `defaultDate` the initial selected value
|
8330 |
+
setDefaultDate: false,
|
8331 |
+
|
8332 |
+
disableWeekends: false,
|
8333 |
+
|
8334 |
+
disableDayFn: null,
|
8335 |
+
|
8336 |
+
// First day of week (0: Sunday, 1: Monday etc)
|
8337 |
+
firstDay: 0,
|
8338 |
+
|
8339 |
+
// The earliest date that can be selected
|
8340 |
+
minDate: null,
|
8341 |
+
// Thelatest date that can be selected
|
8342 |
+
maxDate: null,
|
8343 |
+
|
8344 |
+
// Number of years either side, or array of upper/lower range
|
8345 |
+
yearRange: 10,
|
8346 |
+
|
8347 |
+
// used internally (don't config outside)
|
8348 |
+
minYear: 0,
|
8349 |
+
maxYear: 9999,
|
8350 |
+
minMonth: undefined,
|
8351 |
+
maxMonth: undefined,
|
8352 |
+
|
8353 |
+
startRange: null,
|
8354 |
+
endRange: null,
|
8355 |
+
|
8356 |
+
isRTL: false,
|
8357 |
+
|
8358 |
+
// Render the month after year in the calendar title
|
8359 |
+
showMonthAfterYear: false,
|
8360 |
+
|
8361 |
+
// Render days of the calendar grid that fall in the next or previous month
|
8362 |
+
showDaysInNextAndPreviousMonths: false,
|
8363 |
+
|
8364 |
+
// Specify a DOM element to render the calendar in
|
8365 |
+
container: null,
|
8366 |
+
|
8367 |
+
// Show clear button
|
8368 |
+
showClearBtn: false,
|
8369 |
+
|
8370 |
+
// internationalization
|
8371 |
+
i18n: {
|
8372 |
+
cancel: 'Cancel',
|
8373 |
+
clear: 'Clear',
|
8374 |
+
done: 'Ok',
|
8375 |
+
previousMonth: '‹',
|
8376 |
+
nextMonth: '›',
|
8377 |
+
months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
|
8378 |
+
monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
8379 |
+
weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
8380 |
+
weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
8381 |
+
weekdaysAbbrev: ['S', 'M', 'T', 'W', 'T', 'F', 'S']
|
8382 |
+
},
|
8383 |
+
|
8384 |
+
// events array
|
8385 |
+
events: [],
|
8386 |
+
|
8387 |
+
// callback function
|
8388 |
+
onSelect: null,
|
8389 |
+
onOpen: null,
|
8390 |
+
onClose: null,
|
8391 |
+
onDraw: null
|
8392 |
+
};
|
8393 |
+
|
8394 |
+
/**
|
8395 |
+
* @class
|
8396 |
+
*
|
8397 |
+
*/
|
8398 |
+
|
8399 |
+
var Datepicker = function (_Component15) {
|
8400 |
+
_inherits(Datepicker, _Component15);
|
8401 |
+
|
8402 |
+
/**
|
8403 |
+
* Construct Datepicker instance and set up overlay
|
8404 |
+
* @constructor
|
8405 |
+
* @param {Element} el
|
8406 |
+
* @param {Object} options
|
8407 |
+
*/
|
8408 |
+
function Datepicker(el, options) {
|
8409 |
+
_classCallCheck(this, Datepicker);
|
8410 |
+
|
8411 |
+
var _this53 = _possibleConstructorReturn(this, (Datepicker.__proto__ || Object.getPrototypeOf(Datepicker)).call(this, Datepicker, el, options));
|
8412 |
+
|
8413 |
+
_this53.el.M_Datepicker = _this53;
|
8414 |
+
|
8415 |
+
_this53.options = $.extend({}, Datepicker.defaults, options);
|
8416 |
+
|
8417 |
+
// make sure i18n defaults are not lost when only few i18n option properties are passed
|
8418 |
+
if (!!options && options.hasOwnProperty('i18n') && typeof options.i18n === 'object') {
|
8419 |
+
_this53.options.i18n = $.extend({}, Datepicker.defaults.i18n, options.i18n);
|
8420 |
+
}
|
8421 |
+
|
8422 |
+
// Remove time component from minDate and maxDate options
|
8423 |
+
if (_this53.options.minDate) _this53.options.minDate.setHours(0, 0, 0, 0);
|
8424 |
+
if (_this53.options.maxDate) _this53.options.maxDate.setHours(0, 0, 0, 0);
|
8425 |
+
|
8426 |
+
_this53.id = M.guid();
|
8427 |
+
|
8428 |
+
_this53._setupVariables();
|
8429 |
+
_this53._insertHTMLIntoDOM();
|
8430 |
+
_this53._setupModal();
|
8431 |
+
|
8432 |
+
_this53._setupEventHandlers();
|
8433 |
+
|
8434 |
+
if (!_this53.options.defaultDate) {
|
8435 |
+
_this53.options.defaultDate = new Date(Date.parse(_this53.el.value));
|
8436 |
+
}
|
8437 |
+
|
8438 |
+
var defDate = _this53.options.defaultDate;
|
8439 |
+
if (Datepicker._isDate(defDate)) {
|
8440 |
+
if (_this53.options.setDefaultDate) {
|
8441 |
+
_this53.setDate(defDate, true);
|
8442 |
+
_this53.setInputValue();
|
8443 |
+
} else {
|
8444 |
+
_this53.gotoDate(defDate);
|
8445 |
+
}
|
8446 |
+
} else {
|
8447 |
+
_this53.gotoDate(new Date());
|
8448 |
+
}
|
8449 |
+
|
8450 |
+
/**
|
8451 |
+
* Describes open/close state of datepicker
|
8452 |
+
* @type {Boolean}
|
8453 |
+
*/
|
8454 |
+
_this53.isOpen = false;
|
8455 |
+
return _this53;
|
8456 |
+
}
|
8457 |
+
|
8458 |
+
_createClass(Datepicker, [{
|
8459 |
+
key: "destroy",
|
8460 |
+
|
8461 |
+
|
8462 |
+
/**
|
8463 |
+
* Teardown component
|
8464 |
+
*/
|
8465 |
+
value: function destroy() {
|
8466 |
+
this._removeEventHandlers();
|
8467 |
+
this.modal.destroy();
|
8468 |
+
$(this.modalEl).remove();
|
8469 |
+
this.destroySelects();
|
8470 |
+
this.el.M_Datepicker = undefined;
|
8471 |
+
}
|
8472 |
+
}, {
|
8473 |
+
key: "destroySelects",
|
8474 |
+
value: function destroySelects() {
|
8475 |
+
var oldYearSelect = this.calendarEl.querySelector('.orig-select-year');
|
8476 |
+
if (oldYearSelect) {
|
8477 |
+
M.FormSelect.getInstance(oldYearSelect).destroy();
|
8478 |
+
}
|
8479 |
+
var oldMonthSelect = this.calendarEl.querySelector('.orig-select-month');
|
8480 |
+
if (oldMonthSelect) {
|
8481 |
+
M.FormSelect.getInstance(oldMonthSelect).destroy();
|
8482 |
+
}
|
8483 |
+
}
|
8484 |
+
}, {
|
8485 |
+
key: "_insertHTMLIntoDOM",
|
8486 |
+
value: function _insertHTMLIntoDOM() {
|
8487 |
+
if (this.options.showClearBtn) {
|
8488 |
+
$(this.clearBtn).css({ visibility: '' });
|
8489 |
+
this.clearBtn.innerHTML = this.options.i18n.clear;
|
8490 |
+
}
|
8491 |
+
|
8492 |
+
this.doneBtn.innerHTML = this.options.i18n.done;
|
8493 |
+
this.cancelBtn.innerHTML = this.options.i18n.cancel;
|
8494 |
+
|
8495 |
+
if (this.options.container) {
|
8496 |
+
this.$modalEl.appendTo(this.options.container);
|
8497 |
+
} else {
|
8498 |
+
this.$modalEl.insertBefore(this.el);
|
8499 |
+
}
|
8500 |
+
}
|
8501 |
+
}, {
|
8502 |
+
key: "_setupModal",
|
8503 |
+
value: function _setupModal() {
|
8504 |
+
var _this54 = this;
|
8505 |
+
|
8506 |
+
this.modalEl.id = 'modal-' + this.id;
|
8507 |
+
this.modal = M.Modal.init(this.modalEl, {
|
8508 |
+
onCloseEnd: function () {
|
8509 |
+
_this54.isOpen = false;
|
8510 |
+
}
|
8511 |
+
});
|
8512 |
+
}
|
8513 |
+
}, {
|
8514 |
+
key: "toString",
|
8515 |
+
value: function toString(format) {
|
8516 |
+
var _this55 = this;
|
8517 |
+
|
8518 |
+
format = format || this.options.format;
|
8519 |
+
if (!Datepicker._isDate(this.date)) {
|
8520 |
+
return '';
|
8521 |
+
}
|
8522 |
+
|
8523 |
+
var formatArray = format.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g);
|
8524 |
+
var formattedDate = formatArray.map(function (label) {
|
8525 |
+
if (_this55.formats[label]) {
|
8526 |
+
return _this55.formats[label]();
|
8527 |
+
}
|
8528 |
+
|
8529 |
+
return label;
|
8530 |
+
}).join('');
|
8531 |
+
return formattedDate;
|
8532 |
+
}
|
8533 |
+
}, {
|
8534 |
+
key: "setDate",
|
8535 |
+
value: function setDate(date, preventOnSelect) {
|
8536 |
+
if (!date) {
|
8537 |
+
this.date = null;
|
8538 |
+
this._renderDateDisplay();
|
8539 |
+
return this.draw();
|
8540 |
+
}
|
8541 |
+
if (typeof date === 'string') {
|
8542 |
+
date = new Date(Date.parse(date));
|
8543 |
+
}
|
8544 |
+
if (!Datepicker._isDate(date)) {
|
8545 |
+
return;
|
8546 |
+
}
|
8547 |
+
|
8548 |
+
var min = this.options.minDate,
|
8549 |
+
max = this.options.maxDate;
|
8550 |
+
|
8551 |
+
if (Datepicker._isDate(min) && date < min) {
|
8552 |
+
date = min;
|
8553 |
+
} else if (Datepicker._isDate(max) && date > max) {
|
8554 |
+
date = max;
|
8555 |
+
}
|
8556 |
+
|
8557 |
+
this.date = new Date(date.getTime());
|
8558 |
+
|
8559 |
+
this._renderDateDisplay();
|
8560 |
+
|
8561 |
+
Datepicker._setToStartOfDay(this.date);
|
8562 |
+
this.gotoDate(this.date);
|
8563 |
+
|
8564 |
+
if (!preventOnSelect && typeof this.options.onSelect === 'function') {
|
8565 |
+
this.options.onSelect.call(this, this.date);
|
8566 |
+
}
|
8567 |
+
}
|
8568 |
+
}, {
|
8569 |
+
key: "setInputValue",
|
8570 |
+
value: function setInputValue() {
|
8571 |
+
this.el.value = this.toString();
|
8572 |
+
this.$el.trigger('change', { firedBy: this });
|
8573 |
+
}
|
8574 |
+
}, {
|
8575 |
+
key: "_renderDateDisplay",
|
8576 |
+
value: function _renderDateDisplay() {
|
8577 |
+
var displayDate = Datepicker._isDate(this.date) ? this.date : new Date();
|
8578 |
+
var i18n = this.options.i18n;
|
8579 |
+
var day = i18n.weekdaysShort[displayDate.getDay()];
|
8580 |
+
var month = i18n.monthsShort[displayDate.getMonth()];
|
8581 |
+
var date = displayDate.getDate();
|
8582 |
+
this.yearTextEl.innerHTML = displayDate.getFullYear();
|
8583 |
+
this.dateTextEl.innerHTML = day + ", " + month + " " + date;
|
8584 |
+
}
|
8585 |
+
|
8586 |
+
/**
|
8587 |
+
* change view to a specific date
|
8588 |
+
*/
|
8589 |
+
|
8590 |
+
}, {
|
8591 |
+
key: "gotoDate",
|
8592 |
+
value: function gotoDate(date) {
|
8593 |
+
var newCalendar = true;
|
8594 |
+
|
8595 |
+
if (!Datepicker._isDate(date)) {
|
8596 |
+
return;
|
8597 |
+
}
|
8598 |
+
|
8599 |
+
if (this.calendars) {
|
8600 |
+
var firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1),
|
8601 |
+
lastVisibleDate = new Date(this.calendars[this.calendars.length - 1].year, this.calendars[this.calendars.length - 1].month, 1),
|
8602 |
+
visibleDate = date.getTime();
|
8603 |
+
// get the end of the month
|
8604 |
+
lastVisibleDate.setMonth(lastVisibleDate.getMonth() + 1);
|
8605 |
+
lastVisibleDate.setDate(lastVisibleDate.getDate() - 1);
|
8606 |
+
newCalendar = visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate;
|
8607 |
+
}
|
8608 |
+
|
8609 |
+
if (newCalendar) {
|
8610 |
+
this.calendars = [{
|
8611 |
+
month: date.getMonth(),
|
8612 |
+
year: date.getFullYear()
|
8613 |
+
}];
|
8614 |
+
}
|
8615 |
+
|
8616 |
+
this.adjustCalendars();
|
8617 |
+
}
|
8618 |
+
}, {
|
8619 |
+
key: "adjustCalendars",
|
8620 |
+
value: function adjustCalendars() {
|
8621 |
+
this.calendars[0] = this.adjustCalendar(this.calendars[0]);
|
8622 |
+
this.draw();
|
8623 |
+
}
|
8624 |
+
}, {
|
8625 |
+
key: "adjustCalendar",
|
8626 |
+
value: function adjustCalendar(calendar) {
|
8627 |
+
if (calendar.month < 0) {
|
8628 |
+
calendar.year -= Math.ceil(Math.abs(calendar.month) / 12);
|
8629 |
+
calendar.month += 12;
|
8630 |
+
}
|
8631 |
+
if (calendar.month > 11) {
|
8632 |
+
calendar.year += Math.floor(Math.abs(calendar.month) / 12);
|
8633 |
+
calendar.month -= 12;
|
8634 |
+
}
|
8635 |
+
return calendar;
|
8636 |
+
}
|
8637 |
+
}, {
|
8638 |
+
key: "nextMonth",
|
8639 |
+
value: function nextMonth() {
|
8640 |
+
this.calendars[0].month++;
|
8641 |
+
this.adjustCalendars();
|
8642 |
+
}
|
8643 |
+
}, {
|
8644 |
+
key: "prevMonth",
|
8645 |
+
value: function prevMonth() {
|
8646 |
+
this.calendars[0].month--;
|
8647 |
+
this.adjustCalendars();
|
8648 |
+
}
|
8649 |
+
}, {
|
8650 |
+
key: "render",
|
8651 |
+
value: function render(year, month, randId) {
|
8652 |
+
var opts = this.options,
|
8653 |
+
now = new Date(),
|
8654 |
+
days = Datepicker._getDaysInMonth(year, month),
|
8655 |
+
before = new Date(year, month, 1).getDay(),
|
8656 |
+
data = [],
|
8657 |
+
row = [];
|
8658 |
+
Datepicker._setToStartOfDay(now);
|
8659 |
+
if (opts.firstDay > 0) {
|
8660 |
+
before -= opts.firstDay;
|
8661 |
+
if (before < 0) {
|
8662 |
+
before += 7;
|
8663 |
+
}
|
8664 |
+
}
|
8665 |
+
var previousMonth = month === 0 ? 11 : month - 1,
|
8666 |
+
nextMonth = month === 11 ? 0 : month + 1,
|
8667 |
+
yearOfPreviousMonth = month === 0 ? year - 1 : year,
|
8668 |
+
yearOfNextMonth = month === 11 ? year + 1 : year,
|
8669 |
+
daysInPreviousMonth = Datepicker._getDaysInMonth(yearOfPreviousMonth, previousMonth);
|
8670 |
+
var cells = days + before,
|
8671 |
+
after = cells;
|
8672 |
+
while (after > 7) {
|
8673 |
+
after -= 7;
|
8674 |
+
}
|
8675 |
+
cells += 7 - after;
|
8676 |
+
var isWeekSelected = false;
|
8677 |
+
for (var i = 0, r = 0; i < cells; i++) {
|
8678 |
+
var day = new Date(year, month, 1 + (i - before)),
|
8679 |
+
isSelected = Datepicker._isDate(this.date) ? Datepicker._compareDates(day, this.date) : false,
|
8680 |
+
isToday = Datepicker._compareDates(day, now),
|
8681 |
+
hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false,
|
8682 |
+
isEmpty = i < before || i >= days + before,
|
8683 |
+
dayNumber = 1 + (i - before),
|
8684 |
+
monthNumber = month,
|
8685 |
+
yearNumber = year,
|
8686 |
+
isStartRange = opts.startRange && Datepicker._compareDates(opts.startRange, day),
|
8687 |
+
isEndRange = opts.endRange && Datepicker._compareDates(opts.endRange, day),
|
8688 |
+
isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange,
|
8689 |
+
isDisabled = opts.minDate && day < opts.minDate || opts.maxDate && day > opts.maxDate || opts.disableWeekends && Datepicker._isWeekend(day) || opts.disableDayFn && opts.disableDayFn(day);
|
8690 |
+
|
8691 |
+
if (isEmpty) {
|
8692 |
+
if (i < before) {
|
8693 |
+
dayNumber = daysInPreviousMonth + dayNumber;
|
8694 |
+
monthNumber = previousMonth;
|
8695 |
+
yearNumber = yearOfPreviousMonth;
|
8696 |
+
} else {
|
8697 |
+
dayNumber = dayNumber - days;
|
8698 |
+
monthNumber = nextMonth;
|
8699 |
+
yearNumber = yearOfNextMonth;
|
8700 |
+
}
|
8701 |
+
}
|
8702 |
+
|
8703 |
+
var dayConfig = {
|
8704 |
+
day: dayNumber,
|
8705 |
+
month: monthNumber,
|
8706 |
+
year: yearNumber,
|
8707 |
+
hasEvent: hasEvent,
|
8708 |
+
isSelected: isSelected,
|
8709 |
+
isToday: isToday,
|
8710 |
+
isDisabled: isDisabled,
|
8711 |
+
isEmpty: isEmpty,
|
8712 |
+
isStartRange: isStartRange,
|
8713 |
+
isEndRange: isEndRange,
|
8714 |
+
isInRange: isInRange,
|
8715 |
+
showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths
|
8716 |
+
};
|
8717 |
+
|
8718 |
+
row.push(this.renderDay(dayConfig));
|
8719 |
+
|
8720 |
+
if (++r === 7) {
|
8721 |
+
data.push(this.renderRow(row, opts.isRTL, isWeekSelected));
|
8722 |
+
row = [];
|
8723 |
+
r = 0;
|
8724 |
+
isWeekSelected = false;
|
8725 |
+
}
|
8726 |
+
}
|
8727 |
+
return this.renderTable(opts, data, randId);
|
8728 |
+
}
|
8729 |
+
}, {
|
8730 |
+
key: "renderDay",
|
8731 |
+
value: function renderDay(opts) {
|
8732 |
+
var arr = [];
|
8733 |
+
var ariaSelected = 'false';
|
8734 |
+
if (opts.isEmpty) {
|
8735 |
+
if (opts.showDaysInNextAndPreviousMonths) {
|
8736 |
+
arr.push('is-outside-current-month');
|
8737 |
+
arr.push('is-selection-disabled');
|
8738 |
+
} else {
|
8739 |
+
return '<td class="is-empty"></td>';
|
8740 |
+
}
|
8741 |
+
}
|
8742 |
+
if (opts.isDisabled) {
|
8743 |
+
arr.push('is-disabled');
|
8744 |
+
}
|
8745 |
+
|
8746 |
+
if (opts.isToday) {
|
8747 |
+
arr.push('is-today');
|
8748 |
+
}
|
8749 |
+
if (opts.isSelected) {
|
8750 |
+
arr.push('is-selected');
|
8751 |
+
ariaSelected = 'true';
|
8752 |
+
}
|
8753 |
+
if (opts.hasEvent) {
|
8754 |
+
arr.push('has-event');
|
8755 |
+
}
|
8756 |
+
if (opts.isInRange) {
|
8757 |
+
arr.push('is-inrange');
|
8758 |
+
}
|
8759 |
+
if (opts.isStartRange) {
|
8760 |
+
arr.push('is-startrange');
|
8761 |
+
}
|
8762 |
+
if (opts.isEndRange) {
|
8763 |
+
arr.push('is-endrange');
|
8764 |
+
}
|
8765 |
+
return "<td data-day=\"" + opts.day + "\" class=\"" + arr.join(' ') + "\" aria-selected=\"" + ariaSelected + "\">" + ("<button class=\"datepicker-day-button\" type=\"button\" data-year=\"" + opts.year + "\" data-month=\"" + opts.month + "\" data-day=\"" + opts.day + "\">" + opts.day + "</button>") + '</td>';
|
8766 |
+
}
|
8767 |
+
}, {
|
8768 |
+
key: "renderRow",
|
8769 |
+
value: function renderRow(days, isRTL, isRowSelected) {
|
8770 |
+
return '<tr class="datepicker-row' + (isRowSelected ? ' is-selected' : '') + '">' + (isRTL ? days.reverse() : days).join('') + '</tr>';
|
8771 |
+
}
|
8772 |
+
}, {
|
8773 |
+
key: "renderTable",
|
8774 |
+
value: function renderTable(opts, data, randId) {
|
8775 |
+
return '<div class="datepicker-table-wrapper"><table cellpadding="0" cellspacing="0" class="datepicker-table" role="grid" aria-labelledby="' + randId + '">' + this.renderHead(opts) + this.renderBody(data) + '</table></div>';
|
8776 |
+
}
|
8777 |
+
}, {
|
8778 |
+
key: "renderHead",
|
8779 |
+
value: function renderHead(opts) {
|
8780 |
+
var i = void 0,
|
8781 |
+
arr = [];
|
8782 |
+
for (i = 0; i < 7; i++) {
|
8783 |
+
arr.push("<th scope=\"col\"><abbr title=\"" + this.renderDayName(opts, i) + "\">" + this.renderDayName(opts, i, true) + "</abbr></th>");
|
8784 |
+
}
|
8785 |
+
return '<thead><tr>' + (opts.isRTL ? arr.reverse() : arr).join('') + '</tr></thead>';
|
8786 |
+
}
|
8787 |
+
}, {
|
8788 |
+
key: "renderBody",
|
8789 |
+
value: function renderBody(rows) {
|
8790 |
+
return '<tbody>' + rows.join('') + '</tbody>';
|
8791 |
+
}
|
8792 |
+
}, {
|
8793 |
+
key: "renderTitle",
|
8794 |
+
value: function renderTitle(instance, c, year, month, refYear, randId) {
|
8795 |
+
var i = void 0,
|
8796 |
+
j = void 0,
|
8797 |
+
arr = void 0,
|
8798 |
+
opts = this.options,
|
8799 |
+
isMinYear = year === opts.minYear,
|
8800 |
+
isMaxYear = year === opts.maxYear,
|
8801 |
+
html = '<div id="' + randId + '" class="datepicker-controls" role="heading" aria-live="assertive">',
|
8802 |
+
monthHtml = void 0,
|
8803 |
+
yearHtml = void 0,
|
8804 |
+
prev = true,
|
8805 |
+
next = true;
|
8806 |
+
|
8807 |
+
for (arr = [], i = 0; i < 12; i++) {
|
8808 |
+
arr.push('<option value="' + (year === refYear ? i - c : 12 + i - c) + '"' + (i === month ? ' selected="selected"' : '') + (isMinYear && i < opts.minMonth || isMaxYear && i > opts.maxMonth ? 'disabled="disabled"' : '') + '>' + opts.i18n.months[i] + '</option>');
|
8809 |
+
}
|
8810 |
+
|
8811 |
+
monthHtml = '<select class="datepicker-select orig-select-month" tabindex="-1">' + arr.join('') + '</select>';
|
8812 |
+
|
8813 |
+
if ($.isArray(opts.yearRange)) {
|
8814 |
+
i = opts.yearRange[0];
|
8815 |
+
j = opts.yearRange[1] + 1;
|
8816 |
+
} else {
|
8817 |
+
i = year - opts.yearRange;
|
8818 |
+
j = 1 + year + opts.yearRange;
|
8819 |
+
}
|
8820 |
+
|
8821 |
+
for (arr = []; i < j && i <= opts.maxYear; i++) {
|
8822 |
+
if (i >= opts.minYear) {
|
8823 |
+
arr.push("<option value=\"" + i + "\" " + (i === year ? 'selected="selected"' : '') + ">" + i + "</option>");
|
8824 |
+
}
|
8825 |
+
}
|
8826 |
+
|
8827 |
+
yearHtml = "<select class=\"datepicker-select orig-select-year\" tabindex=\"-1\">" + arr.join('') + "</select>";
|
8828 |
+
|
8829 |
+
var leftArrow = '<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"/><path d="M0-.5h24v24H0z" fill="none"/></svg>';
|
8830 |
+
html += "<button class=\"month-prev" + (prev ? '' : ' is-disabled') + "\" type=\"button\">" + leftArrow + "</button>";
|
8831 |
+
|
8832 |
+
html += '<div class="selects-container">';
|
8833 |
+
if (opts.showMonthAfterYear) {
|
8834 |
+
html += yearHtml + monthHtml;
|
8835 |
+
} else {
|
8836 |
+
html += monthHtml + yearHtml;
|
8837 |
+
}
|
8838 |
+
html += '</div>';
|
8839 |
+
|
8840 |
+
if (isMinYear && (month === 0 || opts.minMonth >= month)) {
|
8841 |
+
prev = false;
|
8842 |
+
}
|
8843 |
+
|
8844 |
+
if (isMaxYear && (month === 11 || opts.maxMonth <= month)) {
|
8845 |
+
next = false;
|
8846 |
+
}
|
8847 |
+
|
8848 |
+
var rightArrow = '<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"/><path d="M0-.25h24v24H0z" fill="none"/></svg>';
|
8849 |
+
html += "<button class=\"month-next" + (next ? '' : ' is-disabled') + "\" type=\"button\">" + rightArrow + "</button>";
|
8850 |
+
|
8851 |
+
return html += '</div>';
|
8852 |
+
}
|
8853 |
+
|
8854 |
+
/**
|
8855 |
+
* refresh the HTML
|
8856 |
+
*/
|
8857 |
+
|
8858 |
+
}, {
|
8859 |
+
key: "draw",
|
8860 |
+
value: function draw(force) {
|
8861 |
+
if (!this.isOpen && !force) {
|
8862 |
+
return;
|
8863 |
+
}
|
8864 |
+
var opts = this.options,
|
8865 |
+
minYear = opts.minYear,
|
8866 |
+
maxYear = opts.maxYear,
|
8867 |
+
minMonth = opts.minMonth,
|
8868 |
+
maxMonth = opts.maxMonth,
|
8869 |
+
html = '',
|
8870 |
+
randId = void 0;
|
8871 |
+
|
8872 |
+
if (this._y <= minYear) {
|
8873 |
+
this._y = minYear;
|
8874 |
+
if (!isNaN(minMonth) && this._m < minMonth) {
|
8875 |
+
this._m = minMonth;
|
8876 |
+
}
|
8877 |
+
}
|
8878 |
+
if (this._y >= maxYear) {
|
8879 |
+
this._y = maxYear;
|
8880 |
+
if (!isNaN(maxMonth) && this._m > maxMonth) {
|
8881 |
+
this._m = maxMonth;
|
8882 |
+
}
|
8883 |
+
}
|
8884 |
+
|
8885 |
+
randId = 'datepicker-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2);
|
8886 |
+
|
8887 |
+
for (var c = 0; c < 1; c++) {
|
8888 |
+
this._renderDateDisplay();
|
8889 |
+
html += this.renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId);
|
8890 |
+
}
|
8891 |
+
|
8892 |
+
this.destroySelects();
|
8893 |
+
|
8894 |
+
this.calendarEl.innerHTML = html;
|
8895 |
+
|
8896 |
+
// Init Materialize Select
|
8897 |
+
var yearSelect = this.calendarEl.querySelector('.orig-select-year');
|
8898 |
+
var monthSelect = this.calendarEl.querySelector('.orig-select-month');
|
8899 |
+
M.FormSelect.init(yearSelect, {
|
8900 |
+
classes: 'select-year',
|
8901 |
+
dropdownOptions: { container: document.body, constrainWidth: false }
|
8902 |
+
});
|
8903 |
+
M.FormSelect.init(monthSelect, {
|
8904 |
+
classes: 'select-month',
|
8905 |
+
dropdownOptions: { container: document.body, constrainWidth: false }
|
8906 |
+
});
|
8907 |
+
|
8908 |
+
// Add change handlers for select
|
8909 |
+
yearSelect.addEventListener('change', this._handleYearChange.bind(this));
|
8910 |
+
monthSelect.addEventListener('change', this._handleMonthChange.bind(this));
|
8911 |
+
|
8912 |
+
if (typeof this.options.onDraw === 'function') {
|
8913 |
+
this.options.onDraw(this);
|
8914 |
+
}
|
8915 |
+
}
|
8916 |
+
|
8917 |
+
/**
|
8918 |
+
* Setup Event Handlers
|
8919 |
+
*/
|
8920 |
+
|
8921 |
+
}, {
|
8922 |
+
key: "_setupEventHandlers",
|
8923 |
+
value: function _setupEventHandlers() {
|
8924 |
+
this._handleInputKeydownBound = this._handleInputKeydown.bind(this);
|
8925 |
+
this._handleInputClickBound = this._handleInputClick.bind(this);
|
8926 |
+
this._handleInputChangeBound = this._handleInputChange.bind(this);
|
8927 |
+
this._handleCalendarClickBound = this._handleCalendarClick.bind(this);
|
8928 |
+
this._finishSelectionBound = this._finishSelection.bind(this);
|
8929 |
+
this._handleMonthChange = this._handleMonthChange.bind(this);
|
8930 |
+
this._closeBound = this.close.bind(this);
|
8931 |
+
|
8932 |
+
this.el.addEventListener('click', this._handleInputClickBound);
|
8933 |
+
this.el.addEventListener('keydown', this._handleInputKeydownBound);
|
8934 |
+
this.el.addEventListener('change', this._handleInputChangeBound);
|
8935 |
+
this.calendarEl.addEventListener('click', this._handleCalendarClickBound);
|
8936 |
+
this.doneBtn.addEventListener('click', this._finishSelectionBound);
|
8937 |
+
this.cancelBtn.addEventListener('click', this._closeBound);
|
8938 |
+
|
8939 |
+
if (this.options.showClearBtn) {
|
8940 |
+
this._handleClearClickBound = this._handleClearClick.bind(this);
|
8941 |
+
this.clearBtn.addEventListener('click', this._handleClearClickBound);
|
8942 |
+
}
|
8943 |
+
}
|
8944 |
+
}, {
|
8945 |
+
key: "_setupVariables",
|
8946 |
+
value: function _setupVariables() {
|
8947 |
+
var _this56 = this;
|
8948 |
+
|
8949 |
+
this.$modalEl = $(Datepicker._template);
|
8950 |
+
this.modalEl = this.$modalEl[0];
|
8951 |
+
|
8952 |
+
this.calendarEl = this.modalEl.querySelector('.datepicker-calendar');
|
8953 |
+
|
8954 |
+
this.yearTextEl = this.modalEl.querySelector('.year-text');
|
8955 |
+
this.dateTextEl = this.modalEl.querySelector('.date-text');
|
8956 |
+
if (this.options.showClearBtn) {
|
8957 |
+
this.clearBtn = this.modalEl.querySelector('.datepicker-clear');
|
8958 |
+
}
|
8959 |
+
this.doneBtn = this.modalEl.querySelector('.datepicker-done');
|
8960 |
+
this.cancelBtn = this.modalEl.querySelector('.datepicker-cancel');
|
8961 |
+
|
8962 |
+
this.formats = {
|
8963 |
+
d: function () {
|
8964 |
+
return _this56.date.getDate();
|
8965 |
+
},
|
8966 |
+
dd: function () {
|
8967 |
+
var d = _this56.date.getDate();
|
8968 |
+
return (d < 10 ? '0' : '') + d;
|
8969 |
+
},
|
8970 |
+
ddd: function () {
|
8971 |
+
return _this56.options.i18n.weekdaysShort[_this56.date.getDay()];
|
8972 |
+
},
|
8973 |
+
dddd: function () {
|
8974 |
+
return _this56.options.i18n.weekdays[_this56.date.getDay()];
|
8975 |
+
},
|
8976 |
+
m: function () {
|
8977 |
+
return _this56.date.getMonth() + 1;
|
8978 |
+
},
|
8979 |
+
mm: function () {
|
8980 |
+
var m = _this56.date.getMonth() + 1;
|
8981 |
+
return (m < 10 ? '0' : '') + m;
|
8982 |
+
},
|
8983 |
+
mmm: function () {
|
8984 |
+
return _this56.options.i18n.monthsShort[_this56.date.getMonth()];
|
8985 |
+
},
|
8986 |
+
mmmm: function () {
|
8987 |
+
return _this56.options.i18n.months[_this56.date.getMonth()];
|
8988 |
+
},
|
8989 |
+
yy: function () {
|
8990 |
+
return ('' + _this56.date.getFullYear()).slice(2);
|
8991 |
+
},
|
8992 |
+
yyyy: function () {
|
8993 |
+
return _this56.date.getFullYear();
|
8994 |
+
}
|
8995 |
+
};
|
8996 |
+
}
|
8997 |
+
|
8998 |
+
/**
|
8999 |
+
* Remove Event Handlers
|
9000 |
+
*/
|
9001 |
+
|
9002 |
+
}, {
|
9003 |
+
key: "_removeEventHandlers",
|
9004 |
+
value: function _removeEventHandlers() {
|
9005 |
+
this.el.removeEventListener('click', this._handleInputClickBound);
|
9006 |
+
this.el.removeEventListener('keydown', this._handleInputKeydownBound);
|
9007 |
+
this.el.removeEventListener('change', this._handleInputChangeBound);
|
9008 |
+
this.calendarEl.removeEventListener('click', this._handleCalendarClickBound);
|
9009 |
+
}
|
9010 |
+
}, {
|
9011 |
+
key: "_handleInputClick",
|
9012 |
+
value: function _handleInputClick() {
|
9013 |
+
this.open();
|
9014 |
+
}
|
9015 |
+
}, {
|
9016 |
+
key: "_handleInputKeydown",
|
9017 |
+
value: function _handleInputKeydown(e) {
|
9018 |
+
if (e.which === M.keys.ENTER) {
|
9019 |
+
e.preventDefault();
|
9020 |
+
this.open();
|
9021 |
+
}
|
9022 |
+
}
|
9023 |
+
}, {
|
9024 |
+
key: "_handleCalendarClick",
|
9025 |
+
value: function _handleCalendarClick(e) {
|
9026 |
+
if (!this.isOpen) {
|
9027 |
+
return;
|
9028 |
+
}
|
9029 |
+
|
9030 |
+
var $target = $(e.target);
|
9031 |
+
if (!$target.hasClass('is-disabled')) {
|
9032 |
+
if ($target.hasClass('datepicker-day-button') && !$target.hasClass('is-empty') && !$target.parent().hasClass('is-disabled')) {
|
9033 |
+
this.setDate(new Date(e.target.getAttribute('data-year'), e.target.getAttribute('data-month'), e.target.getAttribute('data-day')));
|
9034 |
+
if (this.options.autoClose) {
|
9035 |
+
this._finishSelection();
|
9036 |
+
}
|
9037 |
+
} else if ($target.closest('.month-prev').length) {
|
9038 |
+
this.prevMonth();
|
9039 |
+
} else if ($target.closest('.month-next').length) {
|
9040 |
+
this.nextMonth();
|
9041 |
+
}
|
9042 |
+
}
|
9043 |
+
}
|
9044 |
+
}, {
|
9045 |
+
key: "_handleClearClick",
|
9046 |
+
value: function _handleClearClick() {
|
9047 |
+
this.date = null;
|
9048 |
+
this.setInputValue();
|
9049 |
+
this.close();
|
9050 |
+
}
|
9051 |
+
}, {
|
9052 |
+
key: "_handleMonthChange",
|
9053 |
+
value: function _handleMonthChange(e) {
|
9054 |
+
this.gotoMonth(e.target.value);
|
9055 |
+
}
|
9056 |
+
}, {
|
9057 |
+
key: "_handleYearChange",
|
9058 |
+
value: function _handleYearChange(e) {
|
9059 |
+
this.gotoYear(e.target.value);
|
9060 |
+
}
|
9061 |
+
|
9062 |
+
/**
|
9063 |
+
* change view to a specific month (zero-index, e.g. 0: January)
|
9064 |
+
*/
|
9065 |
+
|
9066 |
+
}, {
|
9067 |
+
key: "gotoMonth",
|
9068 |
+
value: function gotoMonth(month) {
|
9069 |
+
if (!isNaN(month)) {
|
9070 |
+
this.calendars[0].month = parseInt(month, 10);
|
9071 |
+
this.adjustCalendars();
|
9072 |
+
}
|
9073 |
+
}
|
9074 |
+
|
9075 |
+
/**
|
9076 |
+
* change view to a specific full year (e.g. "2012")
|
9077 |
+
*/
|
9078 |
+
|
9079 |
+
}, {
|
9080 |
+
key: "gotoYear",
|
9081 |
+
value: function gotoYear(year) {
|
9082 |
+
if (!isNaN(year)) {
|
9083 |
+
this.calendars[0].year = parseInt(year, 10);
|
9084 |
+
this.adjustCalendars();
|
9085 |
+
}
|
9086 |
+
}
|
9087 |
+
}, {
|
9088 |
+
key: "_handleInputChange",
|
9089 |
+
value: function _handleInputChange(e) {
|
9090 |
+
var date = void 0;
|
9091 |
+
|
9092 |
+
// Prevent change event from being fired when triggered by the plugin
|
9093 |
+
if (e.firedBy === this) {
|
9094 |
+
return;
|
9095 |
+
}
|
9096 |
+
if (this.options.parse) {
|
9097 |
+
date = this.options.parse(this.el.value, this.options.format);
|
9098 |
+
} else {
|
9099 |
+
date = new Date(Date.parse(this.el.value));
|
9100 |
+
}
|
9101 |
+
|
9102 |
+
if (Datepicker._isDate(date)) {
|
9103 |
+
this.setDate(date);
|
9104 |
+
}
|
9105 |
+
}
|
9106 |
+
}, {
|
9107 |
+
key: "renderDayName",
|
9108 |
+
value: function renderDayName(opts, day, abbr) {
|
9109 |
+
day += opts.firstDay;
|
9110 |
+
while (day >= 7) {
|
9111 |
+
day -= 7;
|
9112 |
+
}
|
9113 |
+
return abbr ? opts.i18n.weekdaysAbbrev[day] : opts.i18n.weekdays[day];
|
9114 |
+
}
|
9115 |
+
|
9116 |
+
/**
|
9117 |
+
* Set input value to the selected date and close Datepicker
|
9118 |
+
*/
|
9119 |
+
|
9120 |
+
}, {
|
9121 |
+
key: "_finishSelection",
|
9122 |
+
value: function _finishSelection() {
|
9123 |
+
this.setInputValue();
|
9124 |
+
this.close();
|
9125 |
+
}
|
9126 |
+
|
9127 |
+
/**
|
9128 |
+
* Open Datepicker
|
9129 |
+
*/
|
9130 |
+
|
9131 |
+
}, {
|
9132 |
+
key: "open",
|
9133 |
+
value: function open() {
|
9134 |
+
if (this.isOpen) {
|
9135 |
+
return;
|
9136 |
+
}
|
9137 |
+
|
9138 |
+
this.isOpen = true;
|
9139 |
+
if (typeof this.options.onOpen === 'function') {
|
9140 |
+
this.options.onOpen.call(this);
|
9141 |
+
}
|
9142 |
+
this.draw();
|
9143 |
+
this.modal.open();
|
9144 |
+
return this;
|
9145 |
+
}
|
9146 |
+
|
9147 |
+
/**
|
9148 |
+
* Close Datepicker
|
9149 |
+
*/
|
9150 |
+
|
9151 |
+
}, {
|
9152 |
+
key: "close",
|
9153 |
+
value: function close() {
|
9154 |
+
if (!this.isOpen) {
|
9155 |
+
return;
|
9156 |
+
}
|
9157 |
+
|
9158 |
+
this.isOpen = false;
|
9159 |
+
if (typeof this.options.onClose === 'function') {
|
9160 |
+
this.options.onClose.call(this);
|
9161 |
+
}
|
9162 |
+
this.modal.close();
|
9163 |
+
return this;
|
9164 |
+
}
|
9165 |
+
}], [{
|
9166 |
+
key: "init",
|
9167 |
+
value: function init(els, options) {
|
9168 |
+
return _get(Datepicker.__proto__ || Object.getPrototypeOf(Datepicker), "init", this).call(this, this, els, options);
|
9169 |
+
}
|
9170 |
+
}, {
|
9171 |
+
key: "_isDate",
|
9172 |
+
value: function _isDate(obj) {
|
9173 |
+
return (/Date/.test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime())
|
9174 |
+
);
|
9175 |
+
}
|
9176 |
+
}, {
|
9177 |
+
key: "_isWeekend",
|
9178 |
+
value: function _isWeekend(date) {
|
9179 |
+
var day = date.getDay();
|
9180 |
+
return day === 0 || day === 6;
|
9181 |
+
}
|
9182 |
+
}, {
|
9183 |
+
key: "_setToStartOfDay",
|
9184 |
+
value: function _setToStartOfDay(date) {
|
9185 |
+
if (Datepicker._isDate(date)) date.setHours(0, 0, 0, 0);
|
9186 |
+
}
|
9187 |
+
}, {
|
9188 |
+
key: "_getDaysInMonth",
|
9189 |
+
value: function _getDaysInMonth(year, month) {
|
9190 |
+
return [31, Datepicker._isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
|
9191 |
+
}
|
9192 |
+
}, {
|
9193 |
+
key: "_isLeapYear",
|
9194 |
+
value: function _isLeapYear(year) {
|
9195 |
+
// solution by Matti Virkkunen: http://stackoverflow.com/a/4881951
|
9196 |
+
return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
|
9197 |
+
}
|
9198 |
+
}, {
|
9199 |
+
key: "_compareDates",
|
9200 |
+
value: function _compareDates(a, b) {
|
9201 |
+
// weak date comparison (use setToStartOfDay(date) to ensure correct result)
|
9202 |
+
return a.getTime() === b.getTime();
|
9203 |
+
}
|
9204 |
+
}, {
|
9205 |
+
key: "_setToStartOfDay",
|
9206 |
+
value: function _setToStartOfDay(date) {
|
9207 |
+
if (Datepicker._isDate(date)) date.setHours(0, 0, 0, 0);
|
9208 |
+
}
|
9209 |
+
|
9210 |
+
/**
|
9211 |
+
* Get Instance
|
9212 |
+
*/
|
9213 |
+
|
9214 |
+
}, {
|
9215 |
+
key: "getInstance",
|
9216 |
+
value: function getInstance(el) {
|
9217 |
+
var domElem = !!el.jquery ? el[0] : el;
|
9218 |
+
return domElem.M_Datepicker;
|
9219 |
+
}
|
9220 |
+
}, {
|
9221 |
+
key: "defaults",
|
9222 |
+
get: function () {
|
9223 |
+
return _defaults;
|
9224 |
+
}
|
9225 |
+
}]);
|
9226 |
+
|
9227 |
+
return Datepicker;
|
9228 |
+
}(Component);
|
9229 |
+
|
9230 |
+
Datepicker._template = ['<div class= "modal datepicker-modal">', '<div class="modal-content datepicker-container">', '<div class="datepicker-date-display">', '<span class="year-text"></span>', '<span class="date-text"></span>', '</div>', '<div class="datepicker-calendar-container">', '<div class="datepicker-calendar"></div>', '<div class="datepicker-footer">', '<button class="btn-flat datepicker-clear waves-effect" style="visibility: hidden;" type="button"></button>', '<div class="confirmation-btns">', '<button class="btn-flat datepicker-cancel waves-effect" type="button"></button>', '<button class="btn-flat datepicker-done waves-effect" type="button"></button>', '</div>', '</div>', '</div>', '</div>', '</div>'].join('');
|
9231 |
+
|
9232 |
+
M.Datepicker = Datepicker;
|
9233 |
+
|
9234 |
+
if (M.jQueryLoaded) {
|
9235 |
+
M.initializeJqueryWrapper(Datepicker, 'datepicker', 'M_Datepicker');
|
9236 |
+
}
|
9237 |
+
})(cash);
|
9238 |
+
;(function ($) {
|
9239 |
+
'use strict';
|
9240 |
+
|
9241 |
+
var _defaults = {
|
9242 |
+
dialRadius: 135,
|
9243 |
+
outerRadius: 105,
|
9244 |
+
innerRadius: 70,
|
9245 |
+
tickRadius: 20,
|
9246 |
+
duration: 350,
|
9247 |
+
container: null,
|
9248 |
+
defaultTime: 'now', // default time, 'now' or '13:14' e.g.
|
9249 |
+
fromNow: 0, // Millisecond offset from the defaultTime
|
9250 |
+
showClearBtn: false,
|
9251 |
+
|
9252 |
+
// internationalization
|
9253 |
+
i18n: {
|
9254 |
+
cancel: 'Cancel',
|
9255 |
+
clear: 'Clear',
|
9256 |
+
done: 'Ok'
|
9257 |
+
},
|
9258 |
+
|
9259 |
+
autoClose: false, // auto close when minute is selected
|
9260 |
+
twelveHour: true, // change to 12 hour AM/PM clock from 24 hour
|
9261 |
+
vibrate: true, // vibrate the device when dragging clock hand
|
9262 |
+
|
9263 |
+
// Callbacks
|
9264 |
+
onOpenStart: null,
|
9265 |
+
onOpenEnd: null,
|
9266 |
+
onCloseStart: null,
|
9267 |
+
onCloseEnd: null,
|
9268 |
+
onSelect: null
|
9269 |
+
};
|
9270 |
+
|
9271 |
+
/**
|
9272 |
+
* @class
|
9273 |
+
*
|
9274 |
+
*/
|
9275 |
+
|
9276 |
+
var Timepicker = function (_Component16) {
|
9277 |
+
_inherits(Timepicker, _Component16);
|
9278 |
+
|
9279 |
+
function Timepicker(el, options) {
|
9280 |
+
_classCallCheck(this, Timepicker);
|
9281 |
+
|
9282 |
+
var _this57 = _possibleConstructorReturn(this, (Timepicker.__proto__ || Object.getPrototypeOf(Timepicker)).call(this, Timepicker, el, options));
|
9283 |
+
|
9284 |
+
_this57.el.M_Timepicker = _this57;
|
9285 |
+
|
9286 |
+
_this57.options = $.extend({}, Timepicker.defaults, options);
|
9287 |
+
|
9288 |
+
_this57.id = M.guid();
|
9289 |
+
_this57._insertHTMLIntoDOM();
|
9290 |
+
_this57._setupModal();
|
9291 |
+
_this57._setupVariables();
|
9292 |
+
_this57._setupEventHandlers();
|
9293 |
+
|
9294 |
+
_this57._clockSetup();
|
9295 |
+
_this57._pickerSetup();
|
9296 |
+
return _this57;
|
9297 |
+
}
|
9298 |
+
|
9299 |
+
_createClass(Timepicker, [{
|
9300 |
+
key: "destroy",
|
9301 |
+
|
9302 |
+
|
9303 |
+
/**
|
9304 |
+
* Teardown component
|
9305 |
+
*/
|
9306 |
+
value: function destroy() {
|
9307 |
+
this._removeEventHandlers();
|
9308 |
+
this.modal.destroy();
|
9309 |
+
$(this.modalEl).remove();
|
9310 |
+
this.el.M_Timepicker = undefined;
|
9311 |
+
}
|
9312 |
+
|
9313 |
+
/**
|
9314 |
+
* Setup Event Handlers
|
9315 |
+
*/
|
9316 |
+
|
9317 |
+
}, {
|
9318 |
+
key: "_setupEventHandlers",
|
9319 |
+
value: function _setupEventHandlers() {
|
9320 |
+
this._handleInputKeydownBound = this._handleInputKeydown.bind(this);
|
9321 |
+
this._handleInputClickBound = this._handleInputClick.bind(this);
|
9322 |
+
this._handleClockClickStartBound = this._handleClockClickStart.bind(this);
|
9323 |
+
this._handleDocumentClickMoveBound = this._handleDocumentClickMove.bind(this);
|
9324 |
+
this._handleDocumentClickEndBound = this._handleDocumentClickEnd.bind(this);
|
9325 |
+
|
9326 |
+
this.el.addEventListener('click', this._handleInputClickBound);
|
9327 |
+
this.el.addEventListener('keydown', this._handleInputKeydownBound);
|
9328 |
+
this.plate.addEventListener('mousedown', this._handleClockClickStartBound);
|
9329 |
+
this.plate.addEventListener('touchstart', this._handleClockClickStartBound);
|
9330 |
+
|
9331 |
+
$(this.spanHours).on('click', this.showView.bind(this, 'hours'));
|
9332 |
+
$(this.spanMinutes).on('click', this.showView.bind(this, 'minutes'));
|
9333 |
+
}
|
9334 |
+
}, {
|
9335 |
+
key: "_removeEventHandlers",
|
9336 |
+
value: function _removeEventHandlers() {
|
9337 |
+
this.el.removeEventListener('click', this._handleInputClickBound);
|
9338 |
+
this.el.removeEventListener('keydown', this._handleInputKeydownBound);
|
9339 |
+
}
|
9340 |
+
}, {
|
9341 |
+
key: "_handleInputClick",
|
9342 |
+
value: function _handleInputClick() {
|
9343 |
+
this.open();
|
9344 |
+
}
|
9345 |
+
}, {
|
9346 |
+
key: "_handleInputKeydown",
|
9347 |
+
value: function _handleInputKeydown(e) {
|
9348 |
+
if (e.which === M.keys.ENTER) {
|
9349 |
+
e.preventDefault();
|
9350 |
+
this.open();
|
9351 |
+
}
|
9352 |
+
}
|
9353 |
+
}, {
|
9354 |
+
key: "_handleClockClickStart",
|
9355 |
+
value: function _handleClockClickStart(e) {
|
9356 |
+
e.preventDefault();
|
9357 |
+
var clockPlateBR = this.plate.getBoundingClientRect();
|
9358 |
+
var offset = { x: clockPlateBR.left, y: clockPlateBR.top };
|
9359 |
+
|
9360 |
+
this.x0 = offset.x + this.options.dialRadius;
|
9361 |
+
this.y0 = offset.y + this.options.dialRadius;
|
9362 |
+
this.moved = false;
|
9363 |
+
var clickPos = Timepicker._Pos(e);
|
9364 |
+
this.dx = clickPos.x - this.x0;
|
9365 |
+
this.dy = clickPos.y - this.y0;
|
9366 |
+
|
9367 |
+
// Set clock hands
|
9368 |
+
this.setHand(this.dx, this.dy, false);
|
9369 |
+
|
9370 |
+
// Mousemove on document
|
9371 |
+
document.addEventListener('mousemove', this._handleDocumentClickMoveBound);
|
9372 |
+
document.addEventListener('touchmove', this._handleDocumentClickMoveBound);
|
9373 |
+
|
9374 |
+
// Mouseup on document
|
9375 |
+
document.addEventListener('mouseup', this._handleDocumentClickEndBound);
|
9376 |
+
document.addEventListener('touchend', this._handleDocumentClickEndBound);
|
9377 |
+
}
|
9378 |
+
}, {
|
9379 |
+
key: "_handleDocumentClickMove",
|
9380 |
+
value: function _handleDocumentClickMove(e) {
|
9381 |
+
e.preventDefault();
|
9382 |
+
var clickPos = Timepicker._Pos(e);
|
9383 |
+
var x = clickPos.x - this.x0;
|
9384 |
+
var y = clickPos.y - this.y0;
|
9385 |
+
this.moved = true;
|
9386 |
+
this.setHand(x, y, false, true);
|
9387 |
+
}
|
9388 |
+
}, {
|
9389 |
+
key: "_handleDocumentClickEnd",
|
9390 |
+
value: function _handleDocumentClickEnd(e) {
|
9391 |
+
var _this58 = this;
|
9392 |
+
|
9393 |
+
e.preventDefault();
|
9394 |
+
document.removeEventListener('mouseup', this._handleDocumentClickEndBound);
|
9395 |
+
document.removeEventListener('touchend', this._handleDocumentClickEndBound);
|
9396 |
+
var clickPos = Timepicker._Pos(e);
|
9397 |
+
var x = clickPos.x - this.x0;
|
9398 |
+
var y = clickPos.y - this.y0;
|
9399 |
+
if (this.moved && x === this.dx && y === this.dy) {
|
9400 |
+
this.setHand(x, y);
|
9401 |
+
}
|
9402 |
+
|
9403 |
+
if (this.currentView === 'hours') {
|
9404 |
+
this.showView('minutes', this.options.duration / 2);
|
9405 |
+
} else if (this.options.autoClose) {
|
9406 |
+
$(this.minutesView).addClass('timepicker-dial-out');
|
9407 |
+
setTimeout(function () {
|
9408 |
+
_this58.done();
|
9409 |
+
}, this.options.duration / 2);
|
9410 |
+
}
|
9411 |
+
|
9412 |
+
if (typeof this.options.onSelect === 'function') {
|
9413 |
+
this.options.onSelect.call(this, this.hours, this.minutes);
|
9414 |
+
}
|
9415 |
+
|
9416 |
+
// Unbind mousemove event
|
9417 |
+
document.removeEventListener('mousemove', this._handleDocumentClickMoveBound);
|
9418 |
+
document.removeEventListener('touchmove', this._handleDocumentClickMoveBound);
|
9419 |
+
}
|
9420 |
+
}, {
|
9421 |
+
key: "_insertHTMLIntoDOM",
|
9422 |
+
value: function _insertHTMLIntoDOM() {
|
9423 |
+
this.$modalEl = $(Timepicker._template);
|
9424 |
+
this.modalEl = this.$modalEl[0];
|
9425 |
+
this.modalEl.id = 'modal-' + this.id;
|
9426 |
+
|
9427 |
+
// Append popover to input by default
|
9428 |
+
var containerEl = document.querySelector(this.options.container);
|
9429 |
+
if (this.options.container && !!containerEl) {
|
9430 |
+
this.$modalEl.appendTo(containerEl);
|
9431 |
+
} else {
|
9432 |
+
this.$modalEl.insertBefore(this.el);
|
9433 |
+
}
|
9434 |
+
}
|
9435 |
+
}, {
|
9436 |
+
key: "_setupModal",
|
9437 |
+
value: function _setupModal() {
|
9438 |
+
var _this59 = this;
|
9439 |
+
|
9440 |
+
this.modal = M.Modal.init(this.modalEl, {
|
9441 |
+
onOpenStart: this.options.onOpenStart,
|
9442 |
+
onOpenEnd: this.options.onOpenEnd,
|
9443 |
+
onCloseStart: this.options.onCloseStart,
|
9444 |
+
onCloseEnd: function () {
|
9445 |
+
if (typeof _this59.options.onCloseEnd === 'function') {
|
9446 |
+
_this59.options.onCloseEnd.call(_this59);
|
9447 |
+
}
|
9448 |
+
_this59.isOpen = false;
|
9449 |
+
}
|
9450 |
+
});
|
9451 |
+
}
|
9452 |
+
}, {
|
9453 |
+
key: "_setupVariables",
|
9454 |
+
value: function _setupVariables() {
|
9455 |
+
this.currentView = 'hours';
|
9456 |
+
this.vibrate = navigator.vibrate ? 'vibrate' : navigator.webkitVibrate ? 'webkitVibrate' : null;
|
9457 |
+
|
9458 |
+
this._canvas = this.modalEl.querySelector('.timepicker-canvas');
|
9459 |
+
this.plate = this.modalEl.querySelector('.timepicker-plate');
|
9460 |
+
|
9461 |
+
this.hoursView = this.modalEl.querySelector('.timepicker-hours');
|
9462 |
+
this.minutesView = this.modalEl.querySelector('.timepicker-minutes');
|
9463 |
+
this.spanHours = this.modalEl.querySelector('.timepicker-span-hours');
|
9464 |
+
this.spanMinutes = this.modalEl.querySelector('.timepicker-span-minutes');
|
9465 |
+
this.spanAmPm = this.modalEl.querySelector('.timepicker-span-am-pm');
|
9466 |
+
this.footer = this.modalEl.querySelector('.timepicker-footer');
|
9467 |
+
this.amOrPm = 'PM';
|
9468 |
+
}
|
9469 |
+
}, {
|
9470 |
+
key: "_pickerSetup",
|
9471 |
+
value: function _pickerSetup() {
|
9472 |
+
var $clearBtn = $("<button class=\"btn-flat timepicker-clear waves-effect\" style=\"visibility: hidden;\" type=\"button\" tabindex=\"" + (this.options.twelveHour ? '3' : '1') + "\">" + this.options.i18n.clear + "</button>").appendTo(this.footer).on('click', this.clear.bind(this));
|
9473 |
+
if (this.options.showClearBtn) {
|
9474 |
+
$clearBtn.css({ visibility: '' });
|
9475 |
+
}
|
9476 |
+
|
9477 |
+
var confirmationBtnsContainer = $('<div class="confirmation-btns"></div>');
|
9478 |
+
$('<button class="btn-flat timepicker-close waves-effect" type="button" tabindex="' + (this.options.twelveHour ? '3' : '1') + '">' + this.options.i18n.cancel + '</button>').appendTo(confirmationBtnsContainer).on('click', this.close.bind(this));
|
9479 |
+
$('<button class="btn-flat timepicker-close waves-effect" type="button" tabindex="' + (this.options.twelveHour ? '3' : '1') + '">' + this.options.i18n.done + '</button>').appendTo(confirmationBtnsContainer).on('click', this.done.bind(this));
|
9480 |
+
confirmationBtnsContainer.appendTo(this.footer);
|
9481 |
+
}
|
9482 |
+
}, {
|
9483 |
+
key: "_clockSetup",
|
9484 |
+
value: function _clockSetup() {
|
9485 |
+
if (this.options.twelveHour) {
|
9486 |
+
this.$amBtn = $('<div class="am-btn">AM</div>');
|
9487 |
+
this.$pmBtn = $('<div class="pm-btn">PM</div>');
|
9488 |
+
this.$amBtn.on('click', this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm);
|
9489 |
+
this.$pmBtn.on('click', this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm);
|
9490 |
+
}
|
9491 |
+
|
9492 |
+
this._buildHoursView();
|
9493 |
+
this._buildMinutesView();
|
9494 |
+
this._buildSVGClock();
|
9495 |
+
}
|
9496 |
+
}, {
|
9497 |
+
key: "_buildSVGClock",
|
9498 |
+
value: function _buildSVGClock() {
|
9499 |
+
// Draw clock hands and others
|
9500 |
+
var dialRadius = this.options.dialRadius;
|
9501 |
+
var tickRadius = this.options.tickRadius;
|
9502 |
+
var diameter = dialRadius * 2;
|
9503 |
+
|
9504 |
+
var svg = Timepicker._createSVGEl('svg');
|
9505 |
+
svg.setAttribute('class', 'timepicker-svg');
|
9506 |
+
svg.setAttribute('width', diameter);
|
9507 |
+
svg.setAttribute('height', diameter);
|
9508 |
+
var g = Timepicker._createSVGEl('g');
|
9509 |
+
g.setAttribute('transform', 'translate(' + dialRadius + ',' + dialRadius + ')');
|
9510 |
+
var bearing = Timepicker._createSVGEl('circle');
|
9511 |
+
bearing.setAttribute('class', 'timepicker-canvas-bearing');
|
9512 |
+
bearing.setAttribute('cx', 0);
|
9513 |
+
bearing.setAttribute('cy', 0);
|
9514 |
+
bearing.setAttribute('r', 4);
|
9515 |
+
var hand = Timepicker._createSVGEl('line');
|
9516 |
+
hand.setAttribute('x1', 0);
|
9517 |
+
hand.setAttribute('y1', 0);
|
9518 |
+
var bg = Timepicker._createSVGEl('circle');
|
9519 |
+
bg.setAttribute('class', 'timepicker-canvas-bg');
|
9520 |
+
bg.setAttribute('r', tickRadius);
|
9521 |
+
g.appendChild(hand);
|
9522 |
+
g.appendChild(bg);
|
9523 |
+
g.appendChild(bearing);
|
9524 |
+
svg.appendChild(g);
|
9525 |
+
this._canvas.appendChild(svg);
|
9526 |
+
|
9527 |
+
this.hand = hand;
|
9528 |
+
this.bg = bg;
|
9529 |
+
this.bearing = bearing;
|
9530 |
+
this.g = g;
|
9531 |
+
}
|
9532 |
+
}, {
|
9533 |
+
key: "_buildHoursView",
|
9534 |
+
value: function _buildHoursView() {
|
9535 |
+
var $tick = $('<div class="timepicker-tick"></div>');
|
9536 |
+
// Hours view
|
9537 |
+
if (this.options.twelveHour) {
|
9538 |
+
for (var i = 1; i < 13; i += 1) {
|
9539 |
+
var tick = $tick.clone();
|
9540 |
+
var radian = i / 6 * Math.PI;
|
9541 |
+
var radius = this.options.outerRadius;
|
9542 |
+
tick.css({
|
9543 |
+
left: this.options.dialRadius + Math.sin(radian) * radius - this.options.tickRadius + 'px',
|
9544 |
+
top: this.options.dialRadius - Math.cos(radian) * radius - this.options.tickRadius + 'px'
|
9545 |
+
});
|
9546 |
+
tick.html(i === 0 ? '00' : i);
|
9547 |
+
this.hoursView.appendChild(tick[0]);
|
9548 |
+
// tick.on(mousedownEvent, mousedown);
|
9549 |
+
}
|
9550 |
+
} else {
|
9551 |
+
for (var _i2 = 0; _i2 < 24; _i2 += 1) {
|
9552 |
+
var _tick = $tick.clone();
|
9553 |
+
var _radian = _i2 / 6 * Math.PI;
|
9554 |
+
var inner = _i2 > 0 && _i2 < 13;
|
9555 |
+
var _radius = inner ? this.options.innerRadius : this.options.outerRadius;
|
9556 |
+
_tick.css({
|
9557 |
+
left: this.options.dialRadius + Math.sin(_radian) * _radius - this.options.tickRadius + 'px',
|
9558 |
+
top: this.options.dialRadius - Math.cos(_radian) * _radius - this.options.tickRadius + 'px'
|
9559 |
+
});
|
9560 |
+
_tick.html(_i2 === 0 ? '00' : _i2);
|
9561 |
+
this.hoursView.appendChild(_tick[0]);
|
9562 |
+
// tick.on(mousedownEvent, mousedown);
|
9563 |
+
}
|
9564 |
+
}
|
9565 |
+
}
|
9566 |
+
}, {
|
9567 |
+
key: "_buildMinutesView",
|
9568 |
+
value: function _buildMinutesView() {
|
9569 |
+
var $tick = $('<div class="timepicker-tick"></div>');
|
9570 |
+
// Minutes view
|
9571 |
+
for (var i = 0; i < 60; i += 5) {
|
9572 |
+
var tick = $tick.clone();
|
9573 |
+
var radian = i / 30 * Math.PI;
|
9574 |
+
tick.css({
|
9575 |
+
left: this.options.dialRadius + Math.sin(radian) * this.options.outerRadius - this.options.tickRadius + 'px',
|
9576 |
+
top: this.options.dialRadius - Math.cos(radian) * this.options.outerRadius - this.options.tickRadius + 'px'
|
9577 |
+
});
|
9578 |
+
tick.html(Timepicker._addLeadingZero(i));
|
9579 |
+
this.minutesView.appendChild(tick[0]);
|
9580 |
+
}
|
9581 |
+
}
|
9582 |
+
}, {
|
9583 |
+
key: "_handleAmPmClick",
|
9584 |
+
value: function _handleAmPmClick(e) {
|
9585 |
+
var $btnClicked = $(e.target);
|
9586 |
+
this.amOrPm = $btnClicked.hasClass('am-btn') ? 'AM' : 'PM';
|
9587 |
+
this._updateAmPmView();
|
9588 |
+
}
|
9589 |
+
}, {
|
9590 |
+
key: "_updateAmPmView",
|
9591 |
+
value: function _updateAmPmView() {
|
9592 |
+
if (this.options.twelveHour) {
|
9593 |
+
this.$amBtn.toggleClass('text-primary', this.amOrPm === 'AM');
|
9594 |
+
this.$pmBtn.toggleClass('text-primary', this.amOrPm === 'PM');
|
9595 |
+
}
|
9596 |
+
}
|
9597 |
+
}, {
|
9598 |
+
key: "_updateTimeFromInput",
|
9599 |
+
value: function _updateTimeFromInput() {
|
9600 |
+
// Get the time
|
9601 |
+
var value = ((this.el.value || this.options.defaultTime || '') + '').split(':');
|
9602 |
+
if (this.options.twelveHour && !(typeof value[1] === 'undefined')) {
|
9603 |
+
if (value[1].toUpperCase().indexOf('AM') > 0) {
|
9604 |
+
this.amOrPm = 'AM';
|
9605 |
+
} else {
|
9606 |
+
this.amOrPm = 'PM';
|
9607 |
+
}
|
9608 |
+
value[1] = value[1].replace('AM', '').replace('PM', '');
|
9609 |
+
}
|
9610 |
+
if (value[0] === 'now') {
|
9611 |
+
var now = new Date(+new Date() + this.options.fromNow);
|
9612 |
+
value = [now.getHours(), now.getMinutes()];
|
9613 |
+
if (this.options.twelveHour) {
|
9614 |
+
this.amOrPm = value[0] >= 12 && value[0] < 24 ? 'PM' : 'AM';
|
9615 |
+
}
|
9616 |
+
}
|
9617 |
+
this.hours = +value[0] || 0;
|
9618 |
+
this.minutes = +value[1] || 0;
|
9619 |
+
this.spanHours.innerHTML = this.hours;
|
9620 |
+
this.spanMinutes.innerHTML = Timepicker._addLeadingZero(this.minutes);
|
9621 |
+
|
9622 |
+
this._updateAmPmView();
|
9623 |
+
}
|
9624 |
+
}, {
|
9625 |
+
key: "showView",
|
9626 |
+
value: function showView(view, delay) {
|
9627 |
+
if (view === 'minutes' && $(this.hoursView).css('visibility') === 'visible') {
|
9628 |
+
// raiseCallback(this.options.beforeHourSelect);
|
9629 |
+
}
|
9630 |
+
var isHours = view === 'hours',
|
9631 |
+
nextView = isHours ? this.hoursView : this.minutesView,
|
9632 |
+
hideView = isHours ? this.minutesView : this.hoursView;
|
9633 |
+
this.currentView = view;
|
9634 |
+
|
9635 |
+
$(this.spanHours).toggleClass('text-primary', isHours);
|
9636 |
+
$(this.spanMinutes).toggleClass('text-primary', !isHours);
|
9637 |
+
|
9638 |
+
// Transition view
|
9639 |
+
hideView.classList.add('timepicker-dial-out');
|
9640 |
+
$(nextView).css('visibility', 'visible').removeClass('timepicker-dial-out');
|
9641 |
+
|
9642 |
+
// Reset clock hand
|
9643 |
+
this.resetClock(delay);
|
9644 |
+
|
9645 |
+
// After transitions ended
|
9646 |
+
clearTimeout(this.toggleViewTimer);
|
9647 |
+
this.toggleViewTimer = setTimeout(function () {
|
9648 |
+
$(hideView).css('visibility', 'hidden');
|
9649 |
+
}, this.options.duration);
|
9650 |
+
}
|
9651 |
+
}, {
|
9652 |
+
key: "resetClock",
|
9653 |
+
value: function resetClock(delay) {
|
9654 |
+
var view = this.currentView,
|
9655 |
+
value = this[view],
|
9656 |
+
isHours = view === 'hours',
|
9657 |
+
unit = Math.PI / (isHours ? 6 : 30),
|
9658 |
+
radian = value * unit,
|
9659 |
+
radius = isHours && value > 0 && value < 13 ? this.options.innerRadius : this.options.outerRadius,
|
9660 |
+
x = Math.sin(radian) * radius,
|
9661 |
+
y = -Math.cos(radian) * radius,
|
9662 |
+
self = this;
|
9663 |
+
|
9664 |
+
if (delay) {
|
9665 |
+
$(this.canvas).addClass('timepicker-canvas-out');
|
9666 |
+
setTimeout(function () {
|
9667 |
+
$(self.canvas).removeClass('timepicker-canvas-out');
|
9668 |
+
self.setHand(x, y);
|
9669 |
+
}, delay);
|
9670 |
+
} else {
|
9671 |
+
this.setHand(x, y);
|
9672 |
+
}
|
9673 |
+
}
|
9674 |
+
}, {
|
9675 |
+
key: "setHand",
|
9676 |
+
value: function setHand(x, y, roundBy5) {
|
9677 |
+
var _this60 = this;
|
9678 |
+
|
9679 |
+
var radian = Math.atan2(x, -y),
|
9680 |
+
isHours = this.currentView === 'hours',
|
9681 |
+
unit = Math.PI / (isHours || roundBy5 ? 6 : 30),
|
9682 |
+
z = Math.sqrt(x * x + y * y),
|
9683 |
+
inner = isHours && z < (this.options.outerRadius + this.options.innerRadius) / 2,
|
9684 |
+
radius = inner ? this.options.innerRadius : this.options.outerRadius;
|
9685 |
+
|
9686 |
+
if (this.options.twelveHour) {
|
9687 |
+
radius = this.options.outerRadius;
|
9688 |
+
}
|
9689 |
+
|
9690 |
+
// Radian should in range [0, 2PI]
|
9691 |
+
if (radian < 0) {
|
9692 |
+
radian = Math.PI * 2 + radian;
|
9693 |
+
}
|
9694 |
+
|
9695 |
+
// Get the round value
|
9696 |
+
var value = Math.round(radian / unit);
|
9697 |
+
|
9698 |
+
// Get the round radian
|
9699 |
+
radian = value * unit;
|
9700 |
+
|
9701 |
+
// Correct the hours or minutes
|
9702 |
+
if (this.options.twelveHour) {
|
9703 |
+
if (isHours) {
|
9704 |
+
if (value === 0) value = 12;
|
9705 |
+
} else {
|
9706 |
+
if (roundBy5) value *= 5;
|
9707 |
+
if (value === 60) value = 0;
|
9708 |
+
}
|
9709 |
+
} else {
|
9710 |
+
if (isHours) {
|
9711 |
+
if (value === 12) {
|
9712 |
+
value = 0;
|
9713 |
+
}
|
9714 |
+
value = inner ? value === 0 ? 12 : value : value === 0 ? 0 : value + 12;
|
9715 |
+
} else {
|
9716 |
+
if (roundBy5) {
|
9717 |
+
value *= 5;
|
9718 |
+
}
|
9719 |
+
if (value === 60) {
|
9720 |
+
value = 0;
|
9721 |
+
}
|
9722 |
+
}
|
9723 |
+
}
|
9724 |
+
|
9725 |
+
// Once hours or minutes changed, vibrate the device
|
9726 |
+
if (this[this.currentView] !== value) {
|
9727 |
+
if (this.vibrate && this.options.vibrate) {
|
9728 |
+
// Do not vibrate too frequently
|
9729 |
+
if (!this.vibrateTimer) {
|
9730 |
+
navigator[this.vibrate](10);
|
9731 |
+
this.vibrateTimer = setTimeout(function () {
|
9732 |
+
_this60.vibrateTimer = null;
|
9733 |
+
}, 100);
|
9734 |
+
}
|
9735 |
+
}
|
9736 |
+
}
|
9737 |
+
|
9738 |
+
this[this.currentView] = value;
|
9739 |
+
if (isHours) {
|
9740 |
+
this['spanHours'].innerHTML = value;
|
9741 |
+
} else {
|
9742 |
+
this['spanMinutes'].innerHTML = Timepicker._addLeadingZero(value);
|
9743 |
+
}
|
9744 |
+
|
9745 |
+
// Set clock hand and others' position
|
9746 |
+
var cx1 = Math.sin(radian) * (radius - this.options.tickRadius),
|
9747 |
+
cy1 = -Math.cos(radian) * (radius - this.options.tickRadius),
|
9748 |
+
cx2 = Math.sin(radian) * radius,
|
9749 |
+
cy2 = -Math.cos(radian) * radius;
|
9750 |
+
this.hand.setAttribute('x2', cx1);
|
9751 |
+
this.hand.setAttribute('y2', cy1);
|
9752 |
+
this.bg.setAttribute('cx', cx2);
|
9753 |
+
this.bg.setAttribute('cy', cy2);
|
9754 |
+
}
|
9755 |
+
}, {
|
9756 |
+
key: "open",
|
9757 |
+
value: function open() {
|
9758 |
+
if (this.isOpen) {
|
9759 |
+
return;
|
9760 |
+
}
|
9761 |
+
|
9762 |
+
this.isOpen = true;
|
9763 |
+
this._updateTimeFromInput();
|
9764 |
+
this.showView('hours');
|
9765 |
+
|
9766 |
+
this.modal.open();
|
9767 |
+
}
|
9768 |
+
}, {
|
9769 |
+
key: "close",
|
9770 |
+
value: function close() {
|
9771 |
+
if (!this.isOpen) {
|
9772 |
+
return;
|
9773 |
+
}
|
9774 |
+
|
9775 |
+
this.isOpen = false;
|
9776 |
+
this.modal.close();
|
9777 |
+
}
|
9778 |
+
|
9779 |
+
/**
|
9780 |
+
* Finish timepicker selection.
|
9781 |
+
*/
|
9782 |
+
|
9783 |
+
}, {
|
9784 |
+
key: "done",
|
9785 |
+
value: function done(e, clearValue) {
|
9786 |
+
// Set input value
|
9787 |
+
var last = this.el.value;
|
9788 |
+
var value = clearValue ? '' : Timepicker._addLeadingZero(this.hours) + ':' + Timepicker._addLeadingZero(this.minutes);
|
9789 |
+
this.time = value;
|
9790 |
+
if (!clearValue && this.options.twelveHour) {
|
9791 |
+
value = value + " " + this.amOrPm;
|
9792 |
+
}
|
9793 |
+
this.el.value = value;
|
9794 |
+
|
9795 |
+
// Trigger change event
|
9796 |
+
if (value !== last) {
|
9797 |
+
this.$el.trigger('change');
|
9798 |
+
}
|
9799 |
+
|
9800 |
+
this.close();
|
9801 |
+
this.el.focus();
|
9802 |
+
}
|
9803 |
+
}, {
|
9804 |
+
key: "clear",
|
9805 |
+
value: function clear() {
|
9806 |
+
this.done(null, true);
|
9807 |
+
}
|
9808 |
+
}], [{
|
9809 |
+
key: "init",
|
9810 |
+
value: function init(els, options) {
|
9811 |
+
return _get(Timepicker.__proto__ || Object.getPrototypeOf(Timepicker), "init", this).call(this, this, els, options);
|
9812 |
+
}
|
9813 |
+
}, {
|
9814 |
+
key: "_addLeadingZero",
|
9815 |
+
value: function _addLeadingZero(num) {
|
9816 |
+
return (num < 10 ? '0' : '') + num;
|
9817 |
+
}
|
9818 |
+
}, {
|
9819 |
+
key: "_createSVGEl",
|
9820 |
+
value: function _createSVGEl(name) {
|
9821 |
+
var svgNS = 'http://www.w3.org/2000/svg';
|
9822 |
+
return document.createElementNS(svgNS, name);
|
9823 |
+
}
|
9824 |
+
|
9825 |
+
/**
|
9826 |
+
* @typedef {Object} Point
|
9827 |
+
* @property {number} x The X Coordinate
|
9828 |
+
* @property {number} y The Y Coordinate
|
9829 |
+
*/
|
9830 |
+
|
9831 |
+
/**
|
9832 |
+
* Get x position of mouse or touch event
|
9833 |
+
* @param {Event} e
|
9834 |
+
* @return {Point} x and y location
|
9835 |
+
*/
|
9836 |
+
|
9837 |
+
}, {
|
9838 |
+
key: "_Pos",
|
9839 |
+
value: function _Pos(e) {
|
9840 |
+
if (e.targetTouches && e.targetTouches.length >= 1) {
|
9841 |
+
return { x: e.targetTouches[0].clientX, y: e.targetTouches[0].clientY };
|
9842 |
+
}
|
9843 |
+
// mouse event
|
9844 |
+
return { x: e.clientX, y: e.clientY };
|
9845 |
+
}
|
9846 |
+
|
9847 |
+
/**
|
9848 |
+
* Get Instance
|
9849 |
+
*/
|
9850 |
+
|
9851 |
+
}, {
|
9852 |
+
key: "getInstance",
|
9853 |
+
value: function getInstance(el) {
|
9854 |
+
var domElem = !!el.jquery ? el[0] : el;
|
9855 |
+
return domElem.M_Timepicker;
|
9856 |
+
}
|
9857 |
+
}, {
|
9858 |
+
key: "defaults",
|
9859 |
+
get: function () {
|
9860 |
+
return _defaults;
|
9861 |
+
}
|
9862 |
+
}]);
|
9863 |
+
|
9864 |
+
return Timepicker;
|
9865 |
+
}(Component);
|
9866 |
+
|
9867 |
+
Timepicker._template = ['<div class= "modal timepicker-modal">', '<div class="modal-content timepicker-container">', '<div class="timepicker-digital-display">', '<div class="timepicker-text-container">', '<div class="timepicker-display-column">', '<span class="timepicker-span-hours text-primary"></span>', ':', '<span class="timepicker-span-minutes"></span>', '</div>', '<div class="timepicker-display-column timepicker-display-am-pm">', '<div class="timepicker-span-am-pm"></div>', '</div>', '</div>', '</div>', '<div class="timepicker-analog-display">', '<div class="timepicker-plate">', '<div class="timepicker-canvas"></div>', '<div class="timepicker-dial timepicker-hours"></div>', '<div class="timepicker-dial timepicker-minutes timepicker-dial-out"></div>', '</div>', '<div class="timepicker-footer"></div>', '</div>', '</div>', '</div>'].join('');
|
9868 |
+
|
9869 |
+
M.Timepicker = Timepicker;
|
9870 |
+
|
9871 |
+
if (M.jQueryLoaded) {
|
9872 |
+
M.initializeJqueryWrapper(Timepicker, 'timepicker', 'M_Timepicker');
|
9873 |
+
}
|
9874 |
+
})(cash);
|
9875 |
+
;(function ($) {
|
9876 |
+
'use strict';
|
9877 |
+
|
9878 |
+
var _defaults = {};
|
9879 |
+
|
9880 |
+
/**
|
9881 |
+
* @class
|
9882 |
+
*
|
9883 |
+
*/
|
9884 |
+
|
9885 |
+
var CharacterCounter = function (_Component17) {
|
9886 |
+
_inherits(CharacterCounter, _Component17);
|
9887 |
+
|
9888 |
+
/**
|
9889 |
+
* Construct CharacterCounter instance
|
9890 |
+
* @constructor
|
9891 |
+
* @param {Element} el
|
9892 |
+
* @param {Object} options
|
9893 |
+
*/
|
9894 |
+
function CharacterCounter(el, options) {
|
9895 |
+
_classCallCheck(this, CharacterCounter);
|
9896 |
+
|
9897 |
+
var _this61 = _possibleConstructorReturn(this, (CharacterCounter.__proto__ || Object.getPrototypeOf(CharacterCounter)).call(this, CharacterCounter, el, options));
|
9898 |
+
|
9899 |
+
_this61.el.M_CharacterCounter = _this61;
|
9900 |
+
|
9901 |
+
/**
|
9902 |
+
* Options for the character counter
|
9903 |
+
*/
|
9904 |
+
_this61.options = $.extend({}, CharacterCounter.defaults, options);
|
9905 |
+
|
9906 |
+
_this61.isInvalid = false;
|
9907 |
+
_this61.isValidLength = false;
|
9908 |
+
_this61._setupCounter();
|
9909 |
+
_this61._setupEventHandlers();
|
9910 |
+
return _this61;
|
9911 |
+
}
|
9912 |
+
|
9913 |
+
_createClass(CharacterCounter, [{
|
9914 |
+
key: "destroy",
|
9915 |
+
|
9916 |
+
|
9917 |
+
/**
|
9918 |
+
* Teardown component
|
9919 |
+
*/
|
9920 |
+
value: function destroy() {
|
9921 |
+
this._removeEventHandlers();
|
9922 |
+
this.el.CharacterCounter = undefined;
|
9923 |
+
this._removeCounter();
|
9924 |
+
}
|
9925 |
+
|
9926 |
+
/**
|
9927 |
+
* Setup Event Handlers
|
9928 |
+
*/
|
9929 |
+
|
9930 |
+
}, {
|
9931 |
+
key: "_setupEventHandlers",
|
9932 |
+
value: function _setupEventHandlers() {
|
9933 |
+
this._handleUpdateCounterBound = this.updateCounter.bind(this);
|
9934 |
+
|
9935 |
+
this.el.addEventListener('focus', this._handleUpdateCounterBound, true);
|
9936 |
+
this.el.addEventListener('input', this._handleUpdateCounterBound, true);
|
9937 |
+
}
|
9938 |
+
|
9939 |
+
/**
|
9940 |
+
* Remove Event Handlers
|
9941 |
+
*/
|
9942 |
+
|
9943 |
+
}, {
|
9944 |
+
key: "_removeEventHandlers",
|
9945 |
+
value: function _removeEventHandlers() {
|
9946 |
+
this.el.removeEventListener('focus', this._handleUpdateCounterBound, true);
|
9947 |
+
this.el.removeEventListener('input', this._handleUpdateCounterBound, true);
|
9948 |
+
}
|
9949 |
+
|
9950 |
+
/**
|
9951 |
+
* Setup counter element
|
9952 |
+
*/
|
9953 |
+
|
9954 |
+
}, {
|
9955 |
+
key: "_setupCounter",
|
9956 |
+
value: function _setupCounter() {
|
9957 |
+
this.counterEl = document.createElement('span');
|
9958 |
+
$(this.counterEl).addClass('character-counter').css({
|
9959 |
+
float: 'right',
|
9960 |
+
'font-size': '12px',
|
9961 |
+
height: 1
|
9962 |
+
});
|
9963 |
+
|
9964 |
+
this.$el.parent().append(this.counterEl);
|
9965 |
+
}
|
9966 |
+
|
9967 |
+
/**
|
9968 |
+
* Remove counter element
|
9969 |
+
*/
|
9970 |
+
|
9971 |
+
}, {
|
9972 |
+
key: "_removeCounter",
|
9973 |
+
value: function _removeCounter() {
|
9974 |
+
$(this.counterEl).remove();
|
9975 |
+
}
|
9976 |
+
|
9977 |
+
/**
|
9978 |
+
* Update counter
|
9979 |
+
*/
|
9980 |
+
|
9981 |
+
}, {
|
9982 |
+
key: "updateCounter",
|
9983 |
+
value: function updateCounter() {
|
9984 |
+
var maxLength = +this.$el.attr('data-length'),
|
9985 |
+
actualLength = this.el.value.length;
|
9986 |
+
this.isValidLength = actualLength <= maxLength;
|
9987 |
+
var counterString = actualLength;
|
9988 |
+
|
9989 |
+
if (maxLength) {
|
9990 |
+
counterString += '/' + maxLength;
|
9991 |
+
this._validateInput();
|
9992 |
+
}
|
9993 |
+
|
9994 |
+
$(this.counterEl).html(counterString);
|
9995 |
+
}
|
9996 |
+
|
9997 |
+
/**
|
9998 |
+
* Add validation classes
|
9999 |
+
*/
|
10000 |
+
|
10001 |
+
}, {
|
10002 |
+
key: "_validateInput",
|
10003 |
+
value: function _validateInput() {
|
10004 |
+
if (this.isValidLength && this.isInvalid) {
|
10005 |
+
this.isInvalid = false;
|
10006 |
+
this.$el.removeClass('invalid');
|
10007 |
+
} else if (!this.isValidLength && !this.isInvalid) {
|
10008 |
+
this.isInvalid = true;
|
10009 |
+
this.$el.removeClass('valid');
|
10010 |
+
this.$el.addClass('invalid');
|
10011 |
+
}
|
10012 |
+
}
|
10013 |
+
}], [{
|
10014 |
+
key: "init",
|
10015 |
+
value: function init(els, options) {
|
10016 |
+
return _get(CharacterCounter.__proto__ || Object.getPrototypeOf(CharacterCounter), "init", this).call(this, this, els, options);
|
10017 |
+
}
|
10018 |
+
|
10019 |
+
/**
|
10020 |
+
* Get Instance
|
10021 |
+
*/
|
10022 |
+
|
10023 |
+
}, {
|
10024 |
+
key: "getInstance",
|
10025 |
+
value: function getInstance(el) {
|
10026 |
+
var domElem = !!el.jquery ? el[0] : el;
|
10027 |
+
return domElem.M_CharacterCounter;
|
10028 |
+
}
|
10029 |
+
}, {
|
10030 |
+
key: "defaults",
|
10031 |
+
get: function () {
|
10032 |
+
return _defaults;
|
10033 |
+
}
|
10034 |
+
}]);
|
10035 |
+
|
10036 |
+
return CharacterCounter;
|
10037 |
+
}(Component);
|
10038 |
+
|
10039 |
+
M.CharacterCounter = CharacterCounter;
|
10040 |
+
|
10041 |
+
if (M.jQueryLoaded) {
|
10042 |
+
M.initializeJqueryWrapper(CharacterCounter, 'characterCounter', 'M_CharacterCounter');
|
10043 |
+
}
|
10044 |
+
})(cash);
|
10045 |
+
;(function ($) {
|
10046 |
+
'use strict';
|
10047 |
+
|
10048 |
+
var _defaults = {
|
10049 |
+
duration: 200, // ms
|
10050 |
+
dist: -100, // zoom scale TODO: make this more intuitive as an option
|
10051 |
+
shift: 0, // spacing for center image
|
10052 |
+
padding: 0, // Padding between non center items
|
10053 |
+
numVisible: 5, // Number of visible items in carousel
|
10054 |
+
fullWidth: false, // Change to full width styles
|
10055 |
+
indicators: false, // Toggle indicators
|
10056 |
+
noWrap: false, // Don't wrap around and cycle through items.
|
10057 |
+
onCycleTo: null // Callback for when a new slide is cycled to.
|
10058 |
+
};
|
10059 |
+
|
10060 |
+
/**
|
10061 |
+
* @class
|
10062 |
+
*
|
10063 |
+
*/
|
10064 |
+
|
10065 |
+
var Carousel = function (_Component18) {
|
10066 |
+
_inherits(Carousel, _Component18);
|
10067 |
+
|
10068 |
+
/**
|
10069 |
+
* Construct Carousel instance
|
10070 |
+
* @constructor
|
10071 |
+
* @param {Element} el
|
10072 |
+
* @param {Object} options
|
10073 |
+
*/
|
10074 |
+
function Carousel(el, options) {
|
10075 |
+
_classCallCheck(this, Carousel);
|
10076 |
+
|
10077 |
+
var _this62 = _possibleConstructorReturn(this, (Carousel.__proto__ || Object.getPrototypeOf(Carousel)).call(this, Carousel, el, options));
|
10078 |
+
|
10079 |
+
_this62.el.M_Carousel = _this62;
|
10080 |
+
|
10081 |
+
/**
|
10082 |
+
* Options for the carousel
|
10083 |
+
* @member Carousel#options
|
10084 |
+
* @prop {Number} duration
|
10085 |
+
* @prop {Number} dist
|
10086 |
+
* @prop {Number} shift
|
10087 |
+
* @prop {Number} padding
|
10088 |
+
* @prop {Number} numVisible
|
10089 |
+
* @prop {Boolean} fullWidth
|
10090 |
+
* @prop {Boolean} indicators
|
10091 |
+
* @prop {Boolean} noWrap
|
10092 |
+
* @prop {Function} onCycleTo
|
10093 |
+
*/
|
10094 |
+
_this62.options = $.extend({}, Carousel.defaults, options);
|
10095 |
+
|
10096 |
+
// Setup
|
10097 |
+
_this62.hasMultipleSlides = _this62.$el.find('.carousel-item').length > 1;
|
10098 |
+
_this62.showIndicators = _this62.options.indicators && _this62.hasMultipleSlides;
|
10099 |
+
_this62.noWrap = _this62.options.noWrap || !_this62.hasMultipleSlides;
|
10100 |
+
_this62.pressed = false;
|
10101 |
+
_this62.dragged = false;
|
10102 |
+
_this62.offset = _this62.target = 0;
|
10103 |
+
_this62.images = [];
|
10104 |
+
_this62.itemWidth = _this62.$el.find('.carousel-item').first().innerWidth();
|
10105 |
+
_this62.itemHeight = _this62.$el.find('.carousel-item').first().innerHeight();
|
10106 |
+
_this62.dim = _this62.itemWidth * 2 + _this62.options.padding || 1; // Make sure dim is non zero for divisions.
|
10107 |
+
_this62._autoScrollBound = _this62._autoScroll.bind(_this62);
|
10108 |
+
_this62._trackBound = _this62._track.bind(_this62);
|
10109 |
+
|
10110 |
+
// Full Width carousel setup
|
10111 |
+
if (_this62.options.fullWidth) {
|
10112 |
+
_this62.options.dist = 0;
|
10113 |
+
_this62._setCarouselHeight();
|
10114 |
+
|
10115 |
+
// Offset fixed items when indicators.
|
10116 |
+
if (_this62.showIndicators) {
|
10117 |
+
_this62.$el.find('.carousel-fixed-item').addClass('with-indicators');
|
10118 |
+
}
|
10119 |
+
}
|
10120 |
+
|
10121 |
+
// Iterate through slides
|
10122 |
+
_this62.$indicators = $('<ul class="indicators"></ul>');
|
10123 |
+
_this62.$el.find('.carousel-item').each(function (el, i) {
|
10124 |
+
_this62.images.push(el);
|
10125 |
+
if (_this62.showIndicators) {
|
10126 |
+
var $indicator = $('<li class="indicator-item"></li>');
|
10127 |
+
|
10128 |
+
// Add active to first by default.
|
10129 |
+
if (i === 0) {
|
10130 |
+
$indicator[0].classList.add('active');
|
10131 |
+
}
|
10132 |
+
|
10133 |
+
_this62.$indicators.append($indicator);
|
10134 |
+
}
|
10135 |
+
});
|
10136 |
+
if (_this62.showIndicators) {
|
10137 |
+
_this62.$el.append(_this62.$indicators);
|
10138 |
+
}
|
10139 |
+
_this62.count = _this62.images.length;
|
10140 |
+
|
10141 |
+
// Cap numVisible at count
|
10142 |
+
_this62.options.numVisible = Math.min(_this62.count, _this62.options.numVisible);
|
10143 |
+
|
10144 |
+
// Setup cross browser string
|
10145 |
+
_this62.xform = 'transform';
|
10146 |
+
['webkit', 'Moz', 'O', 'ms'].every(function (prefix) {
|
10147 |
+
var e = prefix + 'Transform';
|
10148 |
+
if (typeof document.body.style[e] !== 'undefined') {
|
10149 |
+
_this62.xform = e;
|
10150 |
+
return false;
|
10151 |
+
}
|
10152 |
+
return true;
|
10153 |
+
});
|
10154 |
+
|
10155 |
+
_this62._setupEventHandlers();
|
10156 |
+
_this62._scroll(_this62.offset);
|
10157 |
+
return _this62;
|
10158 |
+
}
|
10159 |
+
|
10160 |
+
_createClass(Carousel, [{
|
10161 |
+
key: "destroy",
|
10162 |
+
|
10163 |
+
|
10164 |
+
/**
|
10165 |
+
* Teardown component
|
10166 |
+
*/
|
10167 |
+
value: function destroy() {
|
10168 |
+
this._removeEventHandlers();
|
10169 |
+
this.el.M_Carousel = undefined;
|
10170 |
+
}
|
10171 |
+
|
10172 |
+
/**
|
10173 |
+
* Setup Event Handlers
|
10174 |
+
*/
|
10175 |
+
|
10176 |
+
}, {
|
10177 |
+
key: "_setupEventHandlers",
|
10178 |
+
value: function _setupEventHandlers() {
|
10179 |
+
var _this63 = this;
|
10180 |
+
|
10181 |
+
this._handleCarouselTapBound = this._handleCarouselTap.bind(this);
|
10182 |
+
this._handleCarouselDragBound = this._handleCarouselDrag.bind(this);
|
10183 |
+
this._handleCarouselReleaseBound = this._handleCarouselRelease.bind(this);
|
10184 |
+
this._handleCarouselClickBound = this._handleCarouselClick.bind(this);
|
10185 |
+
|
10186 |
+
if (typeof window.ontouchstart !== 'undefined') {
|
10187 |
+
this.el.addEventListener('touchstart', this._handleCarouselTapBound);
|
10188 |
+
this.el.addEventListener('touchmove', this._handleCarouselDragBound);
|
10189 |
+
this.el.addEventListener('touchend', this._handleCarouselReleaseBound);
|
10190 |
+
}
|
10191 |
+
|
10192 |
+
this.el.addEventListener('mousedown', this._handleCarouselTapBound);
|
10193 |
+
this.el.addEventListener('mousemove', this._handleCarouselDragBound);
|
10194 |
+
this.el.addEventListener('mouseup', this._handleCarouselReleaseBound);
|
10195 |
+
this.el.addEventListener('mouseleave', this._handleCarouselReleaseBound);
|
10196 |
+
this.el.addEventListener('click', this._handleCarouselClickBound);
|
10197 |
+
|
10198 |
+
if (this.showIndicators && this.$indicators) {
|
10199 |
+
this._handleIndicatorClickBound = this._handleIndicatorClick.bind(this);
|
10200 |
+
this.$indicators.find('.indicator-item').each(function (el, i) {
|
10201 |
+
el.addEventListener('click', _this63._handleIndicatorClickBound);
|
10202 |
+
});
|
10203 |
+
}
|
10204 |
+
|
10205 |
+
// Resize
|
10206 |
+
var throttledResize = M.throttle(this._handleResize, 200);
|
10207 |
+
this._handleThrottledResizeBound = throttledResize.bind(this);
|
10208 |
+
|
10209 |
+
window.addEventListener('resize', this._handleThrottledResizeBound);
|
10210 |
+
}
|
10211 |
+
|
10212 |
+
/**
|
10213 |
+
* Remove Event Handlers
|
10214 |
+
*/
|
10215 |
+
|
10216 |
+
}, {
|
10217 |
+
key: "_removeEventHandlers",
|
10218 |
+
value: function _removeEventHandlers() {
|
10219 |
+
var _this64 = this;
|
10220 |
+
|
10221 |
+
if (typeof window.ontouchstart !== 'undefined') {
|
10222 |
+
this.el.removeEventListener('touchstart', this._handleCarouselTapBound);
|
10223 |
+
this.el.removeEventListener('touchmove', this._handleCarouselDragBound);
|
10224 |
+
this.el.removeEventListener('touchend', this._handleCarouselReleaseBound);
|
10225 |
+
}
|
10226 |
+
this.el.removeEventListener('mousedown', this._handleCarouselTapBound);
|
10227 |
+
this.el.removeEventListener('mousemove', this._handleCarouselDragBound);
|
10228 |
+
this.el.removeEventListener('mouseup', this._handleCarouselReleaseBound);
|
10229 |
+
this.el.removeEventListener('mouseleave', this._handleCarouselReleaseBound);
|
10230 |
+
this.el.removeEventListener('click', this._handleCarouselClickBound);
|
10231 |
+
|
10232 |
+
if (this.showIndicators && this.$indicators) {
|
10233 |
+
this.$indicators.find('.indicator-item').each(function (el, i) {
|
10234 |
+
el.removeEventListener('click', _this64._handleIndicatorClickBound);
|
10235 |
+
});
|
10236 |
+
}
|
10237 |
+
|
10238 |
+
window.removeEventListener('resize', this._handleThrottledResizeBound);
|
10239 |
+
}
|
10240 |
+
|
10241 |
+
/**
|
10242 |
+
* Handle Carousel Tap
|
10243 |
+
* @param {Event} e
|
10244 |
+
*/
|
10245 |
+
|
10246 |
+
}, {
|
10247 |
+
key: "_handleCarouselTap",
|
10248 |
+
value: function _handleCarouselTap(e) {
|
10249 |
+
// Fixes firefox draggable image bug
|
10250 |
+
if (e.type === 'mousedown' && $(e.target).is('img')) {
|
10251 |
+
e.preventDefault();
|
10252 |
+
}
|
10253 |
+
this.pressed = true;
|
10254 |
+
this.dragged = false;
|
10255 |
+
this.verticalDragged = false;
|
10256 |
+
this.reference = this._xpos(e);
|
10257 |
+
this.referenceY = this._ypos(e);
|
10258 |
+
|
10259 |
+
this.velocity = this.amplitude = 0;
|
10260 |
+
this.frame = this.offset;
|
10261 |
+
this.timestamp = Date.now();
|
10262 |
+
clearInterval(this.ticker);
|
10263 |
+
this.ticker = setInterval(this._trackBound, 100);
|
10264 |
+
}
|
10265 |
+
|
10266 |
+
/**
|
10267 |
+
* Handle Carousel Drag
|
10268 |
+
* @param {Event} e
|
10269 |
+
*/
|
10270 |
+
|
10271 |
+
}, {
|
10272 |
+
key: "_handleCarouselDrag",
|
10273 |
+
value: function _handleCarouselDrag(e) {
|
10274 |
+
var x = void 0,
|
10275 |
+
y = void 0,
|
10276 |
+
delta = void 0,
|
10277 |
+
deltaY = void 0;
|
10278 |
+
if (this.pressed) {
|
10279 |
+
x = this._xpos(e);
|
10280 |
+
y = this._ypos(e);
|
10281 |
+
delta = this.reference - x;
|
10282 |
+
deltaY = Math.abs(this.referenceY - y);
|
10283 |
+
if (deltaY < 30 && !this.verticalDragged) {
|
10284 |
+
// If vertical scrolling don't allow dragging.
|
10285 |
+
if (delta > 2 || delta < -2) {
|
10286 |
+
this.dragged = true;
|
10287 |
+
this.reference = x;
|
10288 |
+
this._scroll(this.offset + delta);
|
10289 |
+
}
|
10290 |
+
} else if (this.dragged) {
|
10291 |
+
// If dragging don't allow vertical scroll.
|
10292 |
+
e.preventDefault();
|
10293 |
+
e.stopPropagation();
|
10294 |
+
return false;
|
10295 |
+
} else {
|
10296 |
+
// Vertical scrolling.
|
10297 |
+
this.verticalDragged = true;
|
10298 |
+
}
|
10299 |
+
}
|
10300 |
+
|
10301 |
+
if (this.dragged) {
|
10302 |
+
// If dragging don't allow vertical scroll.
|
10303 |
+
e.preventDefault();
|
10304 |
+
e.stopPropagation();
|
10305 |
+
return false;
|
10306 |
+
}
|
10307 |
+
}
|
10308 |
+
|
10309 |
+
/**
|
10310 |
+
* Handle Carousel Release
|
10311 |
+
* @param {Event} e
|
10312 |
+
*/
|
10313 |
+
|
10314 |
+
}, {
|
10315 |
+
key: "_handleCarouselRelease",
|
10316 |
+
value: function _handleCarouselRelease(e) {
|
10317 |
+
if (this.pressed) {
|
10318 |
+
this.pressed = false;
|
10319 |
+
} else {
|
10320 |
+
return;
|
10321 |
+
}
|
10322 |
+
|
10323 |
+
clearInterval(this.ticker);
|
10324 |
+
this.target = this.offset;
|
10325 |
+
if (this.velocity > 10 || this.velocity < -10) {
|
10326 |
+
this.amplitude = 0.9 * this.velocity;
|
10327 |
+
this.target = this.offset + this.amplitude;
|
10328 |
+
}
|
10329 |
+
this.target = Math.round(this.target / this.dim) * this.dim;
|
10330 |
+
|
10331 |
+
// No wrap of items.
|
10332 |
+
if (this.noWrap) {
|
10333 |
+
if (this.target >= this.dim * (this.count - 1)) {
|
10334 |
+
this.target = this.dim * (this.count - 1);
|
10335 |
+
} else if (this.target < 0) {
|
10336 |
+
this.target = 0;
|
10337 |
+
}
|
10338 |
+
}
|
10339 |
+
this.amplitude = this.target - this.offset;
|
10340 |
+
this.timestamp = Date.now();
|
10341 |
+
requestAnimationFrame(this._autoScrollBound);
|
10342 |
+
|
10343 |
+
if (this.dragged) {
|
10344 |
+
e.preventDefault();
|
10345 |
+
e.stopPropagation();
|
10346 |
+
}
|
10347 |
+
return false;
|
10348 |
+
}
|
10349 |
+
|
10350 |
+
/**
|
10351 |
+
* Handle Carousel CLick
|
10352 |
+
* @param {Event} e
|
10353 |
+
*/
|
10354 |
+
|
10355 |
+
}, {
|
10356 |
+
key: "_handleCarouselClick",
|
10357 |
+
value: function _handleCarouselClick(e) {
|
10358 |
+
// Disable clicks if carousel was dragged.
|
10359 |
+
if (this.dragged) {
|
10360 |
+
e.preventDefault();
|
10361 |
+
e.stopPropagation();
|
10362 |
+
return false;
|
10363 |
+
} else if (!this.options.fullWidth) {
|
10364 |
+
var clickedIndex = $(e.target).closest('.carousel-item').index();
|
10365 |
+
var diff = this._wrap(this.center) - clickedIndex;
|
10366 |
+
|
10367 |
+
// Disable clicks if carousel was shifted by click
|
10368 |
+
if (diff !== 0) {
|
10369 |
+
e.preventDefault();
|
10370 |
+
e.stopPropagation();
|
10371 |
+
}
|
10372 |
+
this._cycleTo(clickedIndex);
|
10373 |
+
}
|
10374 |
+
}
|
10375 |
+
|
10376 |
+
/**
|
10377 |
+
* Handle Indicator CLick
|
10378 |
+
* @param {Event} e
|
10379 |
+
*/
|
10380 |
+
|
10381 |
+
}, {
|
10382 |
+
key: "_handleIndicatorClick",
|
10383 |
+
value: function _handleIndicatorClick(e) {
|
10384 |
+
e.stopPropagation();
|
10385 |
+
|
10386 |
+
var indicator = $(e.target).closest('.indicator-item');
|
10387 |
+
if (indicator.length) {
|
10388 |
+
this._cycleTo(indicator.index());
|
10389 |
+
}
|
10390 |
+
}
|
10391 |
+
|
10392 |
+
/**
|
10393 |
+
* Handle Throttle Resize
|
10394 |
+
* @param {Event} e
|
10395 |
+
*/
|
10396 |
+
|
10397 |
+
}, {
|
10398 |
+
key: "_handleResize",
|
10399 |
+
value: function _handleResize(e) {
|
10400 |
+
if (this.options.fullWidth) {
|
10401 |
+
this.itemWidth = this.$el.find('.carousel-item').first().innerWidth();
|
10402 |
+
this.imageHeight = this.$el.find('.carousel-item.active').height();
|
10403 |
+
this.dim = this.itemWidth * 2 + this.options.padding;
|
10404 |
+
this.offset = this.center * 2 * this.itemWidth;
|
10405 |
+
this.target = this.offset;
|
10406 |
+
this._setCarouselHeight(true);
|
10407 |
+
} else {
|
10408 |
+
this._scroll();
|
10409 |
+
}
|
10410 |
+
}
|
10411 |
+
|
10412 |
+
/**
|
10413 |
+
* Set carousel height based on first slide
|
10414 |
+
* @param {Booleam} imageOnly - true for image slides
|
10415 |
+
*/
|
10416 |
+
|
10417 |
+
}, {
|
10418 |
+
key: "_setCarouselHeight",
|
10419 |
+
value: function _setCarouselHeight(imageOnly) {
|
10420 |
+
var _this65 = this;
|
10421 |
+
|
10422 |
+
var firstSlide = this.$el.find('.carousel-item.active').length ? this.$el.find('.carousel-item.active').first() : this.$el.find('.carousel-item').first();
|
10423 |
+
var firstImage = firstSlide.find('img').first();
|
10424 |
+
if (firstImage.length) {
|
10425 |
+
if (firstImage[0].complete) {
|
10426 |
+
// If image won't trigger the load event
|
10427 |
+
var imageHeight = firstImage.height();
|
10428 |
+
if (imageHeight > 0) {
|
10429 |
+
this.$el.css('height', imageHeight + 'px');
|
10430 |
+
} else {
|
10431 |
+
// If image still has no height, use the natural dimensions to calculate
|
10432 |
+
var naturalWidth = firstImage[0].naturalWidth;
|
10433 |
+
var naturalHeight = firstImage[0].naturalHeight;
|
10434 |
+
var adjustedHeight = this.$el.width() / naturalWidth * naturalHeight;
|
10435 |
+
this.$el.css('height', adjustedHeight + 'px');
|
10436 |
+
}
|
10437 |
+
} else {
|
10438 |
+
// Get height when image is loaded normally
|
10439 |
+
firstImage.one('load', function (el, i) {
|
10440 |
+
_this65.$el.css('height', el.offsetHeight + 'px');
|
10441 |
+
});
|
10442 |
+
}
|
10443 |
+
} else if (!imageOnly) {
|
10444 |
+
var slideHeight = firstSlide.height();
|
10445 |
+
this.$el.css('height', slideHeight + 'px');
|
10446 |
+
}
|
10447 |
+
}
|
10448 |
+
|
10449 |
+
/**
|
10450 |
+
* Get x position from event
|
10451 |
+
* @param {Event} e
|
10452 |
+
*/
|
10453 |
+
|
10454 |
+
}, {
|
10455 |
+
key: "_xpos",
|
10456 |
+
value: function _xpos(e) {
|
10457 |
+
// touch event
|
10458 |
+
if (e.targetTouches && e.targetTouches.length >= 1) {
|
10459 |
+
return e.targetTouches[0].clientX;
|
10460 |
+
}
|
10461 |
+
|
10462 |
+
// mouse event
|
10463 |
+
return e.clientX;
|
10464 |
+
}
|
10465 |
+
|
10466 |
+
/**
|
10467 |
+
* Get y position from event
|
10468 |
+
* @param {Event} e
|
10469 |
+
*/
|
10470 |
+
|
10471 |
+
}, {
|
10472 |
+
key: "_ypos",
|
10473 |
+
value: function _ypos(e) {
|
10474 |
+
// touch event
|
10475 |
+
if (e.targetTouches && e.targetTouches.length >= 1) {
|
10476 |
+
return e.targetTouches[0].clientY;
|
10477 |
+
}
|
10478 |
+
|
10479 |
+
// mouse event
|
10480 |
+
return e.clientY;
|
10481 |
+
}
|
10482 |
+
|
10483 |
+
/**
|
10484 |
+
* Wrap index
|
10485 |
+
* @param {Number} x
|
10486 |
+
*/
|
10487 |
+
|
10488 |
+
}, {
|
10489 |
+
key: "_wrap",
|
10490 |
+
value: function _wrap(x) {
|
10491 |
+
return x >= this.count ? x % this.count : x < 0 ? this._wrap(this.count + x % this.count) : x;
|
10492 |
+
}
|
10493 |
+
|
10494 |
+
/**
|
10495 |
+
* Tracks scrolling information
|
10496 |
+
*/
|
10497 |
+
|
10498 |
+
}, {
|
10499 |
+
key: "_track",
|
10500 |
+
value: function _track() {
|
10501 |
+
var now = void 0,
|
10502 |
+
elapsed = void 0,
|
10503 |
+
delta = void 0,
|
10504 |
+
v = void 0;
|
10505 |
+
|
10506 |
+
now = Date.now();
|
10507 |
+
elapsed = now - this.timestamp;
|
10508 |
+
this.timestamp = now;
|
10509 |
+
delta = this.offset - this.frame;
|
10510 |
+
this.frame = this.offset;
|
10511 |
+
|
10512 |
+
v = 1000 * delta / (1 + elapsed);
|
10513 |
+
this.velocity = 0.8 * v + 0.2 * this.velocity;
|
10514 |
+
}
|
10515 |
+
|
10516 |
+
/**
|
10517 |
+
* Auto scrolls to nearest carousel item.
|
10518 |
+
*/
|
10519 |
+
|
10520 |
+
}, {
|
10521 |
+
key: "_autoScroll",
|
10522 |
+
value: function _autoScroll() {
|
10523 |
+
var elapsed = void 0,
|
10524 |
+
delta = void 0;
|
10525 |
+
|
10526 |
+
if (this.amplitude) {
|
10527 |
+
elapsed = Date.now() - this.timestamp;
|
10528 |
+
delta = this.amplitude * Math.exp(-elapsed / this.options.duration);
|
10529 |
+
if (delta > 2 || delta < -2) {
|
10530 |
+
this._scroll(this.target - delta);
|
10531 |
+
requestAnimationFrame(this._autoScrollBound);
|
10532 |
+
} else {
|
10533 |
+
this._scroll(this.target);
|
10534 |
+
}
|
10535 |
+
}
|
10536 |
+
}
|
10537 |
+
|
10538 |
+
/**
|
10539 |
+
* Scroll to target
|
10540 |
+
* @param {Number} x
|
10541 |
+
*/
|
10542 |
+
|
10543 |
+
}, {
|
10544 |
+
key: "_scroll",
|
10545 |
+
value: function _scroll(x) {
|
10546 |
+
var _this66 = this;
|
10547 |
+
|
10548 |
+
// Track scrolling state
|
10549 |
+
if (!this.$el.hasClass('scrolling')) {
|
10550 |
+
this.el.classList.add('scrolling');
|
10551 |
+
}
|
10552 |
+
if (this.scrollingTimeout != null) {
|
10553 |
+
window.clearTimeout(this.scrollingTimeout);
|
10554 |
+
}
|
10555 |
+
this.scrollingTimeout = window.setTimeout(function () {
|
10556 |
+
_this66.$el.removeClass('scrolling');
|
10557 |
+
}, this.options.duration);
|
10558 |
+
|
10559 |
+
// Start actual scroll
|
10560 |
+
var i = void 0,
|
10561 |
+
half = void 0,
|
10562 |
+
delta = void 0,
|
10563 |
+
dir = void 0,
|
10564 |
+
tween = void 0,
|
10565 |
+
el = void 0,
|
10566 |
+
alignment = void 0,
|
10567 |
+
zTranslation = void 0,
|
10568 |
+
tweenedOpacity = void 0,
|
10569 |
+
centerTweenedOpacity = void 0;
|
10570 |
+
var lastCenter = this.center;
|
10571 |
+
var numVisibleOffset = 1 / this.options.numVisible;
|
10572 |
+
|
10573 |
+
this.offset = typeof x === 'number' ? x : this.offset;
|
10574 |
+
this.center = Math.floor((this.offset + this.dim / 2) / this.dim);
|
10575 |
+
delta = this.offset - this.center * this.dim;
|
10576 |
+
dir = delta < 0 ? 1 : -1;
|
10577 |
+
tween = -dir * delta * 2 / this.dim;
|
10578 |
+
half = this.count >> 1;
|
10579 |
+
|
10580 |
+
if (this.options.fullWidth) {
|
10581 |
+
alignment = 'translateX(0)';
|
10582 |
+
centerTweenedOpacity = 1;
|
10583 |
+
} else {
|
10584 |
+
alignment = 'translateX(' + (this.el.clientWidth - this.itemWidth) / 2 + 'px) ';
|
10585 |
+
alignment += 'translateY(' + (this.el.clientHeight - this.itemHeight) / 2 + 'px)';
|
10586 |
+
centerTweenedOpacity = 1 - numVisibleOffset * tween;
|
10587 |
+
}
|
10588 |
+
|
10589 |
+
// Set indicator active
|
10590 |
+
if (this.showIndicators) {
|
10591 |
+
var diff = this.center % this.count;
|
10592 |
+
var activeIndicator = this.$indicators.find('.indicator-item.active');
|
10593 |
+
if (activeIndicator.index() !== diff) {
|
10594 |
+
activeIndicator.removeClass('active');
|
10595 |
+
this.$indicators.find('.indicator-item').eq(diff)[0].classList.add('active');
|
10596 |
+
}
|
10597 |
+
}
|
10598 |
+
|
10599 |
+
// center
|
10600 |
+
// Don't show wrapped items.
|
10601 |
+
if (!this.noWrap || this.center >= 0 && this.center < this.count) {
|
10602 |
+
el = this.images[this._wrap(this.center)];
|
10603 |
+
|
10604 |
+
// Add active class to center item.
|
10605 |
+
if (!$(el).hasClass('active')) {
|
10606 |
+
this.$el.find('.carousel-item').removeClass('active');
|
10607 |
+
el.classList.add('active');
|
10608 |
+
}
|
10609 |
+
var transformString = alignment + " translateX(" + -delta / 2 + "px) translateX(" + dir * this.options.shift * tween * i + "px) translateZ(" + this.options.dist * tween + "px)";
|
10610 |
+
this._updateItemStyle(el, centerTweenedOpacity, 0, transformString);
|
10611 |
+
}
|
10612 |
+
|
10613 |
+
for (i = 1; i <= half; ++i) {
|
10614 |
+
// right side
|
10615 |
+
if (this.options.fullWidth) {
|
10616 |
+
zTranslation = this.options.dist;
|
10617 |
+
tweenedOpacity = i === half && delta < 0 ? 1 - tween : 1;
|
10618 |
+
} else {
|
10619 |
+
zTranslation = this.options.dist * (i * 2 + tween * dir);
|
10620 |
+
tweenedOpacity = 1 - numVisibleOffset * (i * 2 + tween * dir);
|
10621 |
+
}
|
10622 |
+
// Don't show wrapped items.
|
10623 |
+
if (!this.noWrap || this.center + i < this.count) {
|
10624 |
+
el = this.images[this._wrap(this.center + i)];
|
10625 |
+
var _transformString = alignment + " translateX(" + (this.options.shift + (this.dim * i - delta) / 2) + "px) translateZ(" + zTranslation + "px)";
|
10626 |
+
this._updateItemStyle(el, tweenedOpacity, -i, _transformString);
|
10627 |
+
}
|
10628 |
+
|
10629 |
+
// left side
|
10630 |
+
if (this.options.fullWidth) {
|
10631 |
+
zTranslation = this.options.dist;
|
10632 |
+
tweenedOpacity = i === half && delta > 0 ? 1 - tween : 1;
|
10633 |
+
} else {
|
10634 |
+
zTranslation = this.options.dist * (i * 2 - tween * dir);
|
10635 |
+
tweenedOpacity = 1 - numVisibleOffset * (i * 2 - tween * dir);
|
10636 |
+
}
|
10637 |
+
// Don't show wrapped items.
|
10638 |
+
if (!this.noWrap || this.center - i >= 0) {
|
10639 |
+
el = this.images[this._wrap(this.center - i)];
|
10640 |
+
var _transformString2 = alignment + " translateX(" + (-this.options.shift + (-this.dim * i - delta) / 2) + "px) translateZ(" + zTranslation + "px)";
|
10641 |
+
this._updateItemStyle(el, tweenedOpacity, -i, _transformString2);
|
10642 |
+
}
|
10643 |
+
}
|
10644 |
+
|
10645 |
+
// center
|
10646 |
+
// Don't show wrapped items.
|
10647 |
+
if (!this.noWrap || this.center >= 0 && this.center < this.count) {
|
10648 |
+
el = this.images[this._wrap(this.center)];
|
10649 |
+
var _transformString3 = alignment + " translateX(" + -delta / 2 + "px) translateX(" + dir * this.options.shift * tween + "px) translateZ(" + this.options.dist * tween + "px)";
|
10650 |
+
this._updateItemStyle(el, centerTweenedOpacity, 0, _transformString3);
|
10651 |
+
}
|
10652 |
+
|
10653 |
+
// onCycleTo callback
|
10654 |
+
var $currItem = this.$el.find('.carousel-item').eq(this._wrap(this.center));
|
10655 |
+
if (lastCenter !== this.center && typeof this.options.onCycleTo === 'function') {
|
10656 |
+
this.options.onCycleTo.call(this, $currItem[0], this.dragged);
|
10657 |
+
}
|
10658 |
+
|
10659 |
+
// One time callback
|
10660 |
+
if (typeof this.oneTimeCallback === 'function') {
|
10661 |
+
this.oneTimeCallback.call(this, $currItem[0], this.dragged);
|
10662 |
+
this.oneTimeCallback = null;
|
10663 |
+
}
|
10664 |
+
}
|
10665 |
+
|
10666 |
+
/**
|
10667 |
+
* Cycle to target
|
10668 |
+
* @param {Element} el
|
10669 |
+
* @param {Number} opacity
|
10670 |
+
* @param {Number} zIndex
|
10671 |
+
* @param {String} transform
|
10672 |
+
*/
|
10673 |
+
|
10674 |
+
}, {
|
10675 |
+
key: "_updateItemStyle",
|
10676 |
+
value: function _updateItemStyle(el, opacity, zIndex, transform) {
|
10677 |
+
el.style[this.xform] = transform;
|
10678 |
+
el.style.zIndex = zIndex;
|
10679 |
+
el.style.opacity = opacity;
|
10680 |
+
el.style.visibility = 'visible';
|
10681 |
+
}
|
10682 |
+
|
10683 |
+
/**
|
10684 |
+
* Cycle to target
|
10685 |
+
* @param {Number} n
|
10686 |
+
* @param {Function} callback
|
10687 |
+
*/
|
10688 |
+
|
10689 |
+
}, {
|
10690 |
+
key: "_cycleTo",
|
10691 |
+
value: function _cycleTo(n, callback) {
|
10692 |
+
var diff = this.center % this.count - n;
|
10693 |
+
|
10694 |
+
// Account for wraparound.
|
10695 |
+
if (!this.noWrap) {
|
10696 |
+
if (diff < 0) {
|
10697 |
+
if (Math.abs(diff + this.count) < Math.abs(diff)) {
|
10698 |
+
diff += this.count;
|
10699 |
+
}
|
10700 |
+
} else if (diff > 0) {
|
10701 |
+
if (Math.abs(diff - this.count) < diff) {
|
10702 |
+
diff -= this.count;
|
10703 |
+
}
|
10704 |
+
}
|
10705 |
+
}
|
10706 |
+
|
10707 |
+
this.target = this.dim * Math.round(this.offset / this.dim);
|
10708 |
+
// Next
|
10709 |
+
if (diff < 0) {
|
10710 |
+
this.target += this.dim * Math.abs(diff);
|
10711 |
+
|
10712 |
+
// Prev
|
10713 |
+
} else if (diff > 0) {
|
10714 |
+
this.target -= this.dim * diff;
|
10715 |
+
}
|
10716 |
+
|
10717 |
+
// Set one time callback
|
10718 |
+
if (typeof callback === 'function') {
|
10719 |
+
this.oneTimeCallback = callback;
|
10720 |
+
}
|
10721 |
+
|
10722 |
+
// Scroll
|
10723 |
+
if (this.offset !== this.target) {
|
10724 |
+
this.amplitude = this.target - this.offset;
|
10725 |
+
this.timestamp = Date.now();
|
10726 |
+
requestAnimationFrame(this._autoScrollBound);
|
10727 |
+
}
|
10728 |
+
}
|
10729 |
+
|
10730 |
+
/**
|
10731 |
+
* Cycle to next item
|
10732 |
+
* @param {Number} [n]
|
10733 |
+
*/
|
10734 |
+
|
10735 |
+
}, {
|
10736 |
+
key: "next",
|
10737 |
+
value: function next(n) {
|
10738 |
+
if (n === undefined || isNaN(n)) {
|
10739 |
+
n = 1;
|
10740 |
+
}
|
10741 |
+
|
10742 |
+
var index = this.center + n;
|
10743 |
+
if (index >= this.count || index < 0) {
|
10744 |
+
if (this.noWrap) {
|
10745 |
+
return;
|
10746 |
+
}
|
10747 |
+
|
10748 |
+
index = this._wrap(index);
|
10749 |
+
}
|
10750 |
+
this._cycleTo(index);
|
10751 |
+
}
|
10752 |
+
|
10753 |
+
/**
|
10754 |
+
* Cycle to previous item
|
10755 |
+
* @param {Number} [n]
|
10756 |
+
*/
|
10757 |
+
|
10758 |
+
}, {
|
10759 |
+
key: "prev",
|
10760 |
+
value: function prev(n) {
|
10761 |
+
if (n === undefined || isNaN(n)) {
|
10762 |
+
n = 1;
|
10763 |
+
}
|
10764 |
+
|
10765 |
+
var index = this.center - n;
|
10766 |
+
if (index >= this.count || index < 0) {
|
10767 |
+
if (this.noWrap) {
|
10768 |
+
return;
|
10769 |
+
}
|
10770 |
+
|
10771 |
+
index = this._wrap(index);
|
10772 |
+
}
|
10773 |
+
|
10774 |
+
this._cycleTo(index);
|
10775 |
+
}
|
10776 |
+
|
10777 |
+
/**
|
10778 |
+
* Cycle to nth item
|
10779 |
+
* @param {Number} [n]
|
10780 |
+
* @param {Function} callback
|
10781 |
+
*/
|
10782 |
+
|
10783 |
+
}, {
|
10784 |
+
key: "set",
|
10785 |
+
value: function set(n, callback) {
|
10786 |
+
if (n === undefined || isNaN(n)) {
|
10787 |
+
n = 0;
|
10788 |
+
}
|
10789 |
+
|
10790 |
+
if (n > this.count || n < 0) {
|
10791 |
+
if (this.noWrap) {
|
10792 |
+
return;
|
10793 |
+
}
|
10794 |
+
|
10795 |
+
n = this._wrap(n);
|
10796 |
+
}
|
10797 |
+
|
10798 |
+
this._cycleTo(n, callback);
|
10799 |
+
}
|
10800 |
+
}], [{
|
10801 |
+
key: "init",
|
10802 |
+
value: function init(els, options) {
|
10803 |
+
return _get(Carousel.__proto__ || Object.getPrototypeOf(Carousel), "init", this).call(this, this, els, options);
|
10804 |
+
}
|
10805 |
+
|
10806 |
+
/**
|
10807 |
+
* Get Instance
|
10808 |
+
*/
|
10809 |
+
|
10810 |
+
}, {
|
10811 |
+
key: "getInstance",
|
10812 |
+
value: function getInstance(el) {
|
10813 |
+
var domElem = !!el.jquery ? el[0] : el;
|
10814 |
+
return domElem.M_Carousel;
|
10815 |
+
}
|
10816 |
+
}, {
|
10817 |
+
key: "defaults",
|
10818 |
+
get: function () {
|
10819 |
+
return _defaults;
|
10820 |
+
}
|
10821 |
+
}]);
|
10822 |
+
|
10823 |
+
return Carousel;
|
10824 |
+
}(Component);
|
10825 |
+
|
10826 |
+
M.Carousel = Carousel;
|
10827 |
+
|
10828 |
+
if (M.jQueryLoaded) {
|
10829 |
+
M.initializeJqueryWrapper(Carousel, 'carousel', 'M_Carousel');
|
10830 |
+
}
|
10831 |
+
})(cash);
|
10832 |
+
;(function ($) {
|
10833 |
+
'use strict';
|
10834 |
+
|
10835 |
+
var _defaults = {
|
10836 |
+
onOpen: undefined,
|
10837 |
+
onClose: undefined
|
10838 |
+
};
|
10839 |
+
|
10840 |
+
/**
|
10841 |
+
* @class
|
10842 |
+
*
|
10843 |
+
*/
|
10844 |
+
|
10845 |
+
var TapTarget = function (_Component19) {
|
10846 |
+
_inherits(TapTarget, _Component19);
|
10847 |
+
|
10848 |
+
/**
|
10849 |
+
* Construct TapTarget instance
|
10850 |
+
* @constructor
|
10851 |
+
* @param {Element} el
|
10852 |
+
* @param {Object} options
|
10853 |
+
*/
|
10854 |
+
function TapTarget(el, options) {
|
10855 |
+
_classCallCheck(this, TapTarget);
|
10856 |
+
|
10857 |
+
var _this67 = _possibleConstructorReturn(this, (TapTarget.__proto__ || Object.getPrototypeOf(TapTarget)).call(this, TapTarget, el, options));
|
10858 |
+
|
10859 |
+
_this67.el.M_TapTarget = _this67;
|
10860 |
+
|
10861 |
+
/**
|
10862 |
+
* Options for the select
|
10863 |
+
* @member TapTarget#options
|
10864 |
+
* @prop {Function} onOpen - Callback function called when feature discovery is opened
|
10865 |
+
* @prop {Function} onClose - Callback function called when feature discovery is closed
|
10866 |
+
*/
|
10867 |
+
_this67.options = $.extend({}, TapTarget.defaults, options);
|
10868 |
+
|
10869 |
+
_this67.isOpen = false;
|
10870 |
+
|
10871 |
+
// setup
|
10872 |
+
_this67.$origin = $('#' + _this67.$el.attr('data-target'));
|
10873 |
+
_this67._setup();
|
10874 |
+
|
10875 |
+
_this67._calculatePositioning();
|
10876 |
+
_this67._setupEventHandlers();
|
10877 |
+
return _this67;
|
10878 |
+
}
|
10879 |
+
|
10880 |
+
_createClass(TapTarget, [{
|
10881 |
+
key: "destroy",
|
10882 |
+
|
10883 |
+
|
10884 |
+
/**
|
10885 |
+
* Teardown component
|
10886 |
+
*/
|
10887 |
+
value: function destroy() {
|
10888 |
+
this._removeEventHandlers();
|
10889 |
+
this.el.TapTarget = undefined;
|
10890 |
+
}
|
10891 |
+
|
10892 |
+
/**
|
10893 |
+
* Setup Event Handlers
|
10894 |
+
*/
|
10895 |
+
|
10896 |
+
}, {
|
10897 |
+
key: "_setupEventHandlers",
|
10898 |
+
value: function _setupEventHandlers() {
|
10899 |
+
this._handleDocumentClickBound = this._handleDocumentClick.bind(this);
|
10900 |
+
this._handleTargetClickBound = this._handleTargetClick.bind(this);
|
10901 |
+
this._handleOriginClickBound = this._handleOriginClick.bind(this);
|
10902 |
+
|
10903 |
+
this.el.addEventListener('click', this._handleTargetClickBound);
|
10904 |
+
this.originEl.addEventListener('click', this._handleOriginClickBound);
|
10905 |
+
|
10906 |
+
// Resize
|
10907 |
+
var throttledResize = M.throttle(this._handleResize, 200);
|
10908 |
+
this._handleThrottledResizeBound = throttledResize.bind(this);
|
10909 |
+
|
10910 |
+
window.addEventListener('resize', this._handleThrottledResizeBound);
|
10911 |
+
}
|
10912 |
+
|
10913 |
+
/**
|
10914 |
+
* Remove Event Handlers
|
10915 |
+
*/
|
10916 |
+
|
10917 |
+
}, {
|
10918 |
+
key: "_removeEventHandlers",
|
10919 |
+
value: function _removeEventHandlers() {
|
10920 |
+
this.el.removeEventListener('click', this._handleTargetClickBound);
|
10921 |
+
this.originEl.removeEventListener('click', this._handleOriginClickBound);
|
10922 |
+
window.removeEventListener('resize', this._handleThrottledResizeBound);
|
10923 |
+
}
|
10924 |
+
|
10925 |
+
/**
|
10926 |
+
* Handle Target Click
|
10927 |
+
* @param {Event} e
|
10928 |
+
*/
|
10929 |
+
|
10930 |
+
}, {
|
10931 |
+
key: "_handleTargetClick",
|
10932 |
+
value: function _handleTargetClick(e) {
|
10933 |
+
this.open();
|
10934 |
+
}
|
10935 |
+
|
10936 |
+
/**
|
10937 |
+
* Handle Origin Click
|
10938 |
+
* @param {Event} e
|
10939 |
+
*/
|
10940 |
+
|
10941 |
+
}, {
|
10942 |
+
key: "_handleOriginClick",
|
10943 |
+
value: function _handleOriginClick(e) {
|
10944 |
+
this.close();
|
10945 |
+
}
|
10946 |
+
|
10947 |
+
/**
|
10948 |
+
* Handle Resize
|
10949 |
+
* @param {Event} e
|
10950 |
+
*/
|
10951 |
+
|
10952 |
+
}, {
|
10953 |
+
key: "_handleResize",
|
10954 |
+
value: function _handleResize(e) {
|
10955 |
+
this._calculatePositioning();
|
10956 |
+
}
|
10957 |
+
|
10958 |
+
/**
|
10959 |
+
* Handle Resize
|
10960 |
+
* @param {Event} e
|
10961 |
+
*/
|
10962 |
+
|
10963 |
+
}, {
|
10964 |
+
key: "_handleDocumentClick",
|
10965 |
+
value: function _handleDocumentClick(e) {
|
10966 |
+
if (!$(e.target).closest('.tap-target-wrapper').length) {
|
10967 |
+
this.close();
|
10968 |
+
e.preventDefault();
|
10969 |
+
e.stopPropagation();
|
10970 |
+
}
|
10971 |
+
}
|
10972 |
+
|
10973 |
+
/**
|
10974 |
+
* Setup Tap Target
|
10975 |
+
*/
|
10976 |
+
|
10977 |
+
}, {
|
10978 |
+
key: "_setup",
|
10979 |
+
value: function _setup() {
|
10980 |
+
// Creating tap target
|
10981 |
+
this.wrapper = this.$el.parent()[0];
|
10982 |
+
this.waveEl = $(this.wrapper).find('.tap-target-wave')[0];
|
10983 |
+
this.originEl = $(this.wrapper).find('.tap-target-origin')[0];
|
10984 |
+
this.contentEl = this.$el.find('.tap-target-content')[0];
|
10985 |
+
|
10986 |
+
// Creating wrapper
|
10987 |
+
if (!$(this.wrapper).hasClass('.tap-target-wrapper')) {
|
10988 |
+
this.wrapper = document.createElement('div');
|
10989 |
+
this.wrapper.classList.add('tap-target-wrapper');
|
10990 |
+
this.$el.before($(this.wrapper));
|
10991 |
+
this.wrapper.append(this.el);
|
10992 |
+
}
|
10993 |
+
|
10994 |
+
// Creating content
|
10995 |
+
if (!this.contentEl) {
|
10996 |
+
this.contentEl = document.createElement('div');
|
10997 |
+
this.contentEl.classList.add('tap-target-content');
|
10998 |
+
this.$el.append(this.contentEl);
|
10999 |
+
}
|
11000 |
+
|
11001 |
+
// Creating foreground wave
|
11002 |
+
if (!this.waveEl) {
|
11003 |
+
this.waveEl = document.createElement('div');
|
11004 |
+
this.waveEl.classList.add('tap-target-wave');
|
11005 |
+
|
11006 |
+
// Creating origin
|
11007 |
+
if (!this.originEl) {
|
11008 |
+
this.originEl = this.$origin.clone(true, true);
|
11009 |
+
this.originEl.addClass('tap-target-origin');
|
11010 |
+
this.originEl.removeAttr('id');
|
11011 |
+
this.originEl.removeAttr('style');
|
11012 |
+
this.originEl = this.originEl[0];
|
11013 |
+
this.waveEl.append(this.originEl);
|
11014 |
+
}
|
11015 |
+
|
11016 |
+
this.wrapper.append(this.waveEl);
|
11017 |
+
}
|
11018 |
+
}
|
11019 |
+
|
11020 |
+
/**
|
11021 |
+
* Calculate positioning
|
11022 |
+
*/
|
11023 |
+
|
11024 |
+
}, {
|
11025 |
+
key: "_calculatePositioning",
|
11026 |
+
value: function _calculatePositioning() {
|
11027 |
+
// Element or parent is fixed position?
|
11028 |
+
var isFixed = this.$origin.css('position') === 'fixed';
|
11029 |
+
if (!isFixed) {
|
11030 |
+
var parents = this.$origin.parents();
|
11031 |
+
for (var i = 0; i < parents.length; i++) {
|
11032 |
+
isFixed = $(parents[i]).css('position') == 'fixed';
|
11033 |
+
if (isFixed) {
|
11034 |
+
break;
|
11035 |
+
}
|
11036 |
+
}
|
11037 |
+
}
|
11038 |
+
|
11039 |
+
// Calculating origin
|
11040 |
+
var originWidth = this.$origin.outerWidth();
|
11041 |
+
var originHeight = this.$origin.outerHeight();
|
11042 |
+
var originTop = isFixed ? this.$origin.offset().top - M.getDocumentScrollTop() : this.$origin.offset().top;
|
11043 |
+
var originLeft = isFixed ? this.$origin.offset().left - M.getDocumentScrollLeft() : this.$origin.offset().left;
|
11044 |
+
|
11045 |
+
// Calculating screen
|
11046 |
+
var windowWidth = window.innerWidth;
|
11047 |
+
var windowHeight = window.innerHeight;
|
11048 |
+
var centerX = windowWidth / 2;
|
11049 |
+
var centerY = windowHeight / 2;
|
11050 |
+
var isLeft = originLeft <= centerX;
|
11051 |
+
var isRight = originLeft > centerX;
|
11052 |
+
var isTop = originTop <= centerY;
|
11053 |
+
var isBottom = originTop > centerY;
|
11054 |
+
var isCenterX = originLeft >= windowWidth * 0.25 && originLeft <= windowWidth * 0.75;
|
11055 |
+
|
11056 |
+
// Calculating tap target
|
11057 |
+
var tapTargetWidth = this.$el.outerWidth();
|
11058 |
+
var tapTargetHeight = this.$el.outerHeight();
|
11059 |
+
var tapTargetTop = originTop + originHeight / 2 - tapTargetHeight / 2;
|
11060 |
+
var tapTargetLeft = originLeft + originWidth / 2 - tapTargetWidth / 2;
|
11061 |
+
var tapTargetPosition = isFixed ? 'fixed' : 'absolute';
|
11062 |
+
|
11063 |
+
// Calculating content
|
11064 |
+
var tapTargetTextWidth = isCenterX ? tapTargetWidth : tapTargetWidth / 2 + originWidth;
|
11065 |
+
var tapTargetTextHeight = tapTargetHeight / 2;
|
11066 |
+
var tapTargetTextTop = isTop ? tapTargetHeight / 2 : 0;
|
11067 |
+
var tapTargetTextBottom = 0;
|
11068 |
+
var tapTargetTextLeft = isLeft && !isCenterX ? tapTargetWidth / 2 - originWidth : 0;
|
11069 |
+
var tapTargetTextRight = 0;
|
11070 |
+
var tapTargetTextPadding = originWidth;
|
11071 |
+
var tapTargetTextAlign = isBottom ? 'bottom' : 'top';
|
11072 |
+
|
11073 |
+
// Calculating wave
|
11074 |
+
var tapTargetWaveWidth = originWidth > originHeight ? originWidth * 2 : originWidth * 2;
|
11075 |
+
var tapTargetWaveHeight = tapTargetWaveWidth;
|
11076 |
+
var tapTargetWaveTop = tapTargetHeight / 2 - tapTargetWaveHeight / 2;
|
11077 |
+
var tapTargetWaveLeft = tapTargetWidth / 2 - tapTargetWaveWidth / 2;
|
11078 |
+
|
11079 |
+
// Setting tap target
|
11080 |
+
var tapTargetWrapperCssObj = {};
|
11081 |
+
tapTargetWrapperCssObj.top = isTop ? tapTargetTop + 'px' : '';
|
11082 |
+
tapTargetWrapperCssObj.right = isRight ? windowWidth - tapTargetLeft - tapTargetWidth + 'px' : '';
|
11083 |
+
tapTargetWrapperCssObj.bottom = isBottom ? windowHeight - tapTargetTop - tapTargetHeight + 'px' : '';
|
11084 |
+
tapTargetWrapperCssObj.left = isLeft ? tapTargetLeft + 'px' : '';
|
11085 |
+
tapTargetWrapperCssObj.position = tapTargetPosition;
|
11086 |
+
$(this.wrapper).css(tapTargetWrapperCssObj);
|
11087 |
+
|
11088 |
+
// Setting content
|
11089 |
+
$(this.contentEl).css({
|
11090 |
+
width: tapTargetTextWidth + 'px',
|
11091 |
+
height: tapTargetTextHeight + 'px',
|
11092 |
+
top: tapTargetTextTop + 'px',
|
11093 |
+
right: tapTargetTextRight + 'px',
|
11094 |
+
bottom: tapTargetTextBottom + 'px',
|
11095 |
+
left: tapTargetTextLeft + 'px',
|
11096 |
+
padding: tapTargetTextPadding + 'px',
|
11097 |
+
verticalAlign: tapTargetTextAlign
|
11098 |
+
});
|
11099 |
+
|
11100 |
+
// Setting wave
|
11101 |
+
$(this.waveEl).css({
|
11102 |
+
top: tapTargetWaveTop + 'px',
|
11103 |
+
left: tapTargetWaveLeft + 'px',
|
11104 |
+
width: tapTargetWaveWidth + 'px',
|
11105 |
+
height: tapTargetWaveHeight + 'px'
|
11106 |
+
});
|
11107 |
+
}
|
11108 |
+
|
11109 |
+
/**
|
11110 |
+
* Open TapTarget
|
11111 |
+
*/
|
11112 |
+
|
11113 |
+
}, {
|
11114 |
+
key: "open",
|
11115 |
+
value: function open() {
|
11116 |
+
if (this.isOpen) {
|
11117 |
+
return;
|
11118 |
+
}
|
11119 |
+
|
11120 |
+
// onOpen callback
|
11121 |
+
if (typeof this.options.onOpen === 'function') {
|
11122 |
+
this.options.onOpen.call(this, this.$origin[0]);
|
11123 |
+
}
|
11124 |
+
|
11125 |
+
this.isOpen = true;
|
11126 |
+
this.wrapper.classList.add('open');
|
11127 |
+
|
11128 |
+
document.body.addEventListener('click', this._handleDocumentClickBound, true);
|
11129 |
+
document.body.addEventListener('touchend', this._handleDocumentClickBound);
|
11130 |
+
}
|
11131 |
+
|
11132 |
+
/**
|
11133 |
+
* Close Tap Target
|
11134 |
+
*/
|
11135 |
+
|
11136 |
+
}, {
|
11137 |
+
key: "close",
|
11138 |
+
value: function close() {
|
11139 |
+
if (!this.isOpen) {
|
11140 |
+
return;
|
11141 |
+
}
|
11142 |
+
|
11143 |
+
// onClose callback
|
11144 |
+
if (typeof this.options.onClose === 'function') {
|
11145 |
+
this.options.onClose.call(this, this.$origin[0]);
|
11146 |
+
}
|
11147 |
+
|
11148 |
+
this.isOpen = false;
|
11149 |
+
this.wrapper.classList.remove('open');
|
11150 |
+
|
11151 |
+
document.body.removeEventListener('click', this._handleDocumentClickBound, true);
|
11152 |
+
document.body.removeEventListener('touchend', this._handleDocumentClickBound);
|
11153 |
+
}
|
11154 |
+
}], [{
|
11155 |
+
key: "init",
|
11156 |
+
value: function init(els, options) {
|
11157 |
+
return _get(TapTarget.__proto__ || Object.getPrototypeOf(TapTarget), "init", this).call(this, this, els, options);
|
11158 |
+
}
|
11159 |
+
|
11160 |
+
/**
|
11161 |
+
* Get Instance
|
11162 |
+
*/
|
11163 |
+
|
11164 |
+
}, {
|
11165 |
+
key: "getInstance",
|
11166 |
+
value: function getInstance(el) {
|
11167 |
+
var domElem = !!el.jquery ? el[0] : el;
|
11168 |
+
return domElem.M_TapTarget;
|
11169 |
+
}
|
11170 |
+
}, {
|
11171 |
+
key: "defaults",
|
11172 |
+
get: function () {
|
11173 |
+
return _defaults;
|
11174 |
+
}
|
11175 |
+
}]);
|
11176 |
+
|
11177 |
+
return TapTarget;
|
11178 |
+
}(Component);
|
11179 |
+
|
11180 |
+
M.TapTarget = TapTarget;
|
11181 |
+
|
11182 |
+
if (M.jQueryLoaded) {
|
11183 |
+
M.initializeJqueryWrapper(TapTarget, 'tapTarget', 'M_TapTarget');
|
11184 |
+
}
|
11185 |
+
})(cash);
|
11186 |
+
;(function ($) {
|
11187 |
+
'use strict';
|
11188 |
+
|
11189 |
+
var _defaults = {
|
11190 |
+
classes: '',
|
11191 |
+
dropdownOptions: {}
|
11192 |
+
};
|
11193 |
+
|
11194 |
+
/**
|
11195 |
+
* @class
|
11196 |
+
*
|
11197 |
+
*/
|
11198 |
+
|
11199 |
+
var FormSelect = function (_Component20) {
|
11200 |
+
_inherits(FormSelect, _Component20);
|
11201 |
+
|
11202 |
+
/**
|
11203 |
+
* Construct FormSelect instance
|
11204 |
+
* @constructor
|
11205 |
+
* @param {Element} el
|
11206 |
+
* @param {Object} options
|
11207 |
+
*/
|
11208 |
+
function FormSelect(el, options) {
|
11209 |
+
_classCallCheck(this, FormSelect);
|
11210 |
+
|
11211 |
+
// Don't init if browser default version
|
11212 |
+
var _this68 = _possibleConstructorReturn(this, (FormSelect.__proto__ || Object.getPrototypeOf(FormSelect)).call(this, FormSelect, el, options));
|
11213 |
+
|
11214 |
+
if (_this68.$el.hasClass('browser-default')) {
|
11215 |
+
return _possibleConstructorReturn(_this68);
|
11216 |
+
}
|
11217 |
+
|
11218 |
+
_this68.el.M_FormSelect = _this68;
|
11219 |
+
|
11220 |
+
/**
|
11221 |
+
* Options for the select
|
11222 |
+
* @member FormSelect#options
|
11223 |
+
*/
|
11224 |
+
_this68.options = $.extend({}, FormSelect.defaults, options);
|
11225 |
+
|
11226 |
+
_this68.isMultiple = _this68.$el.prop('multiple');
|
11227 |
+
|
11228 |
+
// Setup
|
11229 |
+
_this68.el.tabIndex = -1;
|
11230 |
+
_this68._keysSelected = {};
|
11231 |
+
_this68._valueDict = {}; // Maps key to original and generated option element.
|
11232 |
+
_this68._setupDropdown();
|
11233 |
+
|
11234 |
+
_this68._setupEventHandlers();
|
11235 |
+
return _this68;
|
11236 |
+
}
|
11237 |
+
|
11238 |
+
_createClass(FormSelect, [{
|
11239 |
+
key: "destroy",
|
11240 |
+
|
11241 |
+
|
11242 |
+
/**
|
11243 |
+
* Teardown component
|
11244 |
+
*/
|
11245 |
+
value: function destroy() {
|
11246 |
+
this._removeEventHandlers();
|
11247 |
+
this._removeDropdown();
|
11248 |
+
this.el.M_FormSelect = undefined;
|
11249 |
+
}
|
11250 |
+
|
11251 |
+
/**
|
11252 |
+
* Setup Event Handlers
|
11253 |
+
*/
|
11254 |
+
|
11255 |
+
}, {
|
11256 |
+
key: "_setupEventHandlers",
|
11257 |
+
value: function _setupEventHandlers() {
|
11258 |
+
var _this69 = this;
|
11259 |
+
|
11260 |
+
this._handleSelectChangeBound = this._handleSelectChange.bind(this);
|
11261 |
+
this._handleOptionClickBound = this._handleOptionClick.bind(this);
|
11262 |
+
this._handleInputClickBound = this._handleInputClick.bind(this);
|
11263 |
+
|
11264 |
+
$(this.dropdownOptions).find('li:not(.optgroup)').each(function (el) {
|
11265 |
+
el.addEventListener('click', _this69._handleOptionClickBound);
|
11266 |
+
});
|
11267 |
+
this.el.addEventListener('change', this._handleSelectChangeBound);
|
11268 |
+
this.input.addEventListener('click', this._handleInputClickBound);
|
11269 |
+
}
|
11270 |
+
|
11271 |
+
/**
|
11272 |
+
* Remove Event Handlers
|
11273 |
+
*/
|
11274 |
+
|
11275 |
+
}, {
|
11276 |
+
key: "_removeEventHandlers",
|
11277 |
+
value: function _removeEventHandlers() {
|
11278 |
+
var _this70 = this;
|
11279 |
+
|
11280 |
+
$(this.dropdownOptions).find('li:not(.optgroup)').each(function (el) {
|
11281 |
+
el.removeEventListener('click', _this70._handleOptionClickBound);
|
11282 |
+
});
|
11283 |
+
this.el.removeEventListener('change', this._handleSelectChangeBound);
|
11284 |
+
this.input.removeEventListener('click', this._handleInputClickBound);
|
11285 |
+
}
|
11286 |
+
|
11287 |
+
/**
|
11288 |
+
* Handle Select Change
|
11289 |
+
* @param {Event} e
|
11290 |
+
*/
|
11291 |
+
|
11292 |
+
}, {
|
11293 |
+
key: "_handleSelectChange",
|
11294 |
+
value: function _handleSelectChange(e) {
|
11295 |
+
this._setValueToInput();
|
11296 |
+
}
|
11297 |
+
|
11298 |
+
/**
|
11299 |
+
* Handle Option Click
|
11300 |
+
* @param {Event} e
|
11301 |
+
*/
|
11302 |
+
|
11303 |
+
}, {
|
11304 |
+
key: "_handleOptionClick",
|
11305 |
+
value: function _handleOptionClick(e) {
|
11306 |
+
e.preventDefault();
|
11307 |
+
var option = $(e.target).closest('li')[0];
|
11308 |
+
var key = option.id;
|
11309 |
+
if (!$(option).hasClass('disabled') && !$(option).hasClass('optgroup') && key.length) {
|
11310 |
+
var selected = true;
|
11311 |
+
|
11312 |
+
if (this.isMultiple) {
|
11313 |
+
// Deselect placeholder option if still selected.
|
11314 |
+
var placeholderOption = $(this.dropdownOptions).find('li.disabled.selected');
|
11315 |
+
if (placeholderOption.length) {
|
11316 |
+
placeholderOption.removeClass('selected');
|
11317 |
+
placeholderOption.find('input[type="checkbox"]').prop('checked', false);
|
11318 |
+
this._toggleEntryFromArray(placeholderOption[0].id);
|
11319 |
+
}
|
11320 |
+
selected = this._toggleEntryFromArray(key);
|
11321 |
+
} else {
|
11322 |
+
$(this.dropdownOptions).find('li').removeClass('selected');
|
11323 |
+
$(option).toggleClass('selected', selected);
|
11324 |
+
}
|
11325 |
+
|
11326 |
+
// Set selected on original select option
|
11327 |
+
// Only trigger if selected state changed
|
11328 |
+
var prevSelected = $(this._valueDict[key].el).prop('selected');
|
11329 |
+
if (prevSelected !== selected) {
|
11330 |
+
$(this._valueDict[key].el).prop('selected', selected);
|
11331 |
+
this.$el.trigger('change');
|
11332 |
+
}
|
11333 |
+
}
|
11334 |
+
|
11335 |
+
e.stopPropagation();
|
11336 |
+
}
|
11337 |
+
|
11338 |
+
/**
|
11339 |
+
* Handle Input Click
|
11340 |
+
*/
|
11341 |
+
|
11342 |
+
}, {
|
11343 |
+
key: "_handleInputClick",
|
11344 |
+
value: function _handleInputClick() {
|
11345 |
+
if (this.dropdown && this.dropdown.isOpen) {
|
11346 |
+
this._setValueToInput();
|
11347 |
+
this._setSelectedStates();
|
11348 |
+
}
|
11349 |
+
}
|
11350 |
+
|
11351 |
+
/**
|
11352 |
+
* Setup dropdown
|
11353 |
+
*/
|
11354 |
+
|
11355 |
+
}, {
|
11356 |
+
key: "_setupDropdown",
|
11357 |
+
value: function _setupDropdown() {
|
11358 |
+
var _this71 = this;
|
11359 |
+
|
11360 |
+
this.wrapper = document.createElement('div');
|
11361 |
+
$(this.wrapper).addClass('select-wrapper ' + this.options.classes);
|
11362 |
+
this.$el.before($(this.wrapper));
|
11363 |
+
this.wrapper.appendChild(this.el);
|
11364 |
+
|
11365 |
+
if (this.el.disabled) {
|
11366 |
+
this.wrapper.classList.add('disabled');
|
11367 |
+
}
|
11368 |
+
|
11369 |
+
// Create dropdown
|
11370 |
+
this.$selectOptions = this.$el.children('option, optgroup');
|
11371 |
+
this.dropdownOptions = document.createElement('ul');
|
11372 |
+
this.dropdownOptions.id = "select-options-" + M.guid();
|
11373 |
+
$(this.dropdownOptions).addClass('dropdown-content select-dropdown ' + (this.isMultiple ? 'multiple-select-dropdown' : ''));
|
11374 |
+
|
11375 |
+
// Create dropdown structure.
|
11376 |
+
if (this.$selectOptions.length) {
|
11377 |
+
this.$selectOptions.each(function (el) {
|
11378 |
+
if ($(el).is('option')) {
|
11379 |
+
// Direct descendant option.
|
11380 |
+
var optionEl = void 0;
|
11381 |
+
if (_this71.isMultiple) {
|
11382 |
+
optionEl = _this71._appendOptionWithIcon(_this71.$el, el, 'multiple');
|
11383 |
+
} else {
|
11384 |
+
optionEl = _this71._appendOptionWithIcon(_this71.$el, el);
|
11385 |
+
}
|
11386 |
+
|
11387 |
+
_this71._addOptionToValueDict(el, optionEl);
|
11388 |
+
} else if ($(el).is('optgroup')) {
|
11389 |
+
// Optgroup.
|
11390 |
+
var selectOptions = $(el).children('option');
|
11391 |
+
$(_this71.dropdownOptions).append($('<li class="optgroup"><span>' + el.getAttribute('label') + '</span></li>')[0]);
|
11392 |
+
|
11393 |
+
selectOptions.each(function (el) {
|
11394 |
+
var optionEl = _this71._appendOptionWithIcon(_this71.$el, el, 'optgroup-option');
|
11395 |
+
_this71._addOptionToValueDict(el, optionEl);
|
11396 |
+
});
|
11397 |
+
}
|
11398 |
+
});
|
11399 |
+
}
|
11400 |
+
|
11401 |
+
this.$el.after(this.dropdownOptions);
|
11402 |
+
|
11403 |
+
// Add input dropdown
|
11404 |
+
this.input = document.createElement('input');
|
11405 |
+
$(this.input).addClass('select-dropdown dropdown-trigger');
|
11406 |
+
this.input.setAttribute('type', 'text');
|
11407 |
+
this.input.setAttribute('readonly', 'true');
|
11408 |
+
this.input.setAttribute('data-target', this.dropdownOptions.id);
|
11409 |
+
if (this.el.disabled) {
|
11410 |
+
$(this.input).prop('disabled', 'true');
|
11411 |
+
}
|
11412 |
+
|
11413 |
+
this.$el.before(this.input);
|
11414 |
+
this._setValueToInput();
|
11415 |
+
|
11416 |
+
// Add caret
|
11417 |
+
var dropdownIcon = $('<svg class="caret" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>');
|
11418 |
+
this.$el.before(dropdownIcon[0]);
|
11419 |
+
|
11420 |
+
// Initialize dropdown
|
11421 |
+
if (!this.el.disabled) {
|
11422 |
+
var dropdownOptions = $.extend({}, this.options.dropdownOptions);
|
11423 |
+
|
11424 |
+
// Add callback for centering selected option when dropdown content is scrollable
|
11425 |
+
dropdownOptions.onOpenEnd = function (el) {
|
11426 |
+
var selectedOption = $(_this71.dropdownOptions).find('.selected').first();
|
11427 |
+
|
11428 |
+
if (selectedOption.length) {
|
11429 |
+
// Focus selected option in dropdown
|
11430 |
+
M.keyDown = true;
|
11431 |
+
_this71.dropdown.focusedIndex = selectedOption.index();
|
11432 |
+
_this71.dropdown._focusFocusedItem();
|
11433 |
+
M.keyDown = false;
|
11434 |
+
|
11435 |
+
// Handle scrolling to selected option
|
11436 |
+
if (_this71.dropdown.isScrollable) {
|
11437 |
+
var scrollOffset = selectedOption[0].getBoundingClientRect().top - _this71.dropdownOptions.getBoundingClientRect().top; // scroll to selected option
|
11438 |
+
scrollOffset -= _this71.dropdownOptions.clientHeight / 2; // center in dropdown
|
11439 |
+
_this71.dropdownOptions.scrollTop = scrollOffset;
|
11440 |
+
}
|
11441 |
+
}
|
11442 |
+
};
|
11443 |
+
|
11444 |
+
if (this.isMultiple) {
|
11445 |
+
dropdownOptions.closeOnClick = false;
|
11446 |
+
}
|
11447 |
+
this.dropdown = M.Dropdown.init(this.input, dropdownOptions);
|
11448 |
+
}
|
11449 |
+
|
11450 |
+
// Add initial selections
|
11451 |
+
this._setSelectedStates();
|
11452 |
+
}
|
11453 |
+
|
11454 |
+
/**
|
11455 |
+
* Add option to value dict
|
11456 |
+
* @param {Element} el original option element
|
11457 |
+
* @param {Element} optionEl generated option element
|
11458 |
+
*/
|
11459 |
+
|
11460 |
+
}, {
|
11461 |
+
key: "_addOptionToValueDict",
|
11462 |
+
value: function _addOptionToValueDict(el, optionEl) {
|
11463 |
+
var index = Object.keys(this._valueDict).length;
|
11464 |
+
var key = this.dropdownOptions.id + index;
|
11465 |
+
var obj = {};
|
11466 |
+
optionEl.id = key;
|
11467 |
+
|
11468 |
+
obj.el = el;
|
11469 |
+
obj.optionEl = optionEl;
|
11470 |
+
this._valueDict[key] = obj;
|
11471 |
+
}
|
11472 |
+
|
11473 |
+
/**
|
11474 |
+
* Remove dropdown
|
11475 |
+
*/
|
11476 |
+
|
11477 |
+
}, {
|
11478 |
+
key: "_removeDropdown",
|
11479 |
+
value: function _removeDropdown() {
|
11480 |
+
$(this.wrapper).find('.caret').remove();
|
11481 |
+
$(this.input).remove();
|
11482 |
+
$(this.dropdownOptions).remove();
|
11483 |
+
$(this.wrapper).before(this.$el);
|
11484 |
+
$(this.wrapper).remove();
|
11485 |
+
}
|
11486 |
+
|
11487 |
+
/**
|
11488 |
+
* Setup dropdown
|
11489 |
+
* @param {Element} select select element
|
11490 |
+
* @param {Element} option option element from select
|
11491 |
+
* @param {String} type
|
11492 |
+
* @return {Element} option element added
|
11493 |
+
*/
|
11494 |
+
|
11495 |
+
}, {
|
11496 |
+
key: "_appendOptionWithIcon",
|
11497 |
+
value: function _appendOptionWithIcon(select, option, type) {
|
11498 |
+
// Add disabled attr if disabled
|
11499 |
+
var disabledClass = option.disabled ? 'disabled ' : '';
|
11500 |
+
var optgroupClass = type === 'optgroup-option' ? 'optgroup-option ' : '';
|
11501 |
+
var multipleCheckbox = this.isMultiple ? "<label><input type=\"checkbox\"" + disabledClass + "\"/><span>" + option.innerHTML + "</span></label>" : option.innerHTML;
|
11502 |
+
var liEl = $('<li></li>');
|
11503 |
+
var spanEl = $('<span></span>');
|
11504 |
+
spanEl.html(multipleCheckbox);
|
11505 |
+
liEl.addClass(disabledClass + " " + optgroupClass);
|
11506 |
+
liEl.append(spanEl);
|
11507 |
+
|
11508 |
+
// add icons
|
11509 |
+
var iconUrl = option.getAttribute('data-icon');
|
11510 |
+
if (!!iconUrl) {
|
11511 |
+
var imgEl = $("<img alt=\"\" src=\"" + iconUrl + "\">");
|
11512 |
+
liEl.prepend(imgEl);
|
11513 |
+
}
|
11514 |
+
|
11515 |
+
// Check for multiple type.
|
11516 |
+
$(this.dropdownOptions).append(liEl[0]);
|
11517 |
+
return liEl[0];
|
11518 |
+
}
|
11519 |
+
|
11520 |
+
/**
|
11521 |
+
* Toggle entry from option
|
11522 |
+
* @param {String} key Option key
|
11523 |
+
* @return {Boolean} if entry was added or removed
|
11524 |
+
*/
|
11525 |
+
|
11526 |
+
}, {
|
11527 |
+
key: "_toggleEntryFromArray",
|
11528 |
+
value: function _toggleEntryFromArray(key) {
|
11529 |
+
var notAdded = !this._keysSelected.hasOwnProperty(key);
|
11530 |
+
var $optionLi = $(this._valueDict[key].optionEl);
|
11531 |
+
|
11532 |
+
if (notAdded) {
|
11533 |
+
this._keysSelected[key] = true;
|
11534 |
+
} else {
|
11535 |
+
delete this._keysSelected[key];
|
11536 |
+
}
|
11537 |
+
|
11538 |
+
$optionLi.toggleClass('selected', notAdded);
|
11539 |
+
|
11540 |
+
// Set checkbox checked value
|
11541 |
+
$optionLi.find('input[type="checkbox"]').prop('checked', notAdded);
|
11542 |
+
|
11543 |
+
// use notAdded instead of true (to detect if the option is selected or not)
|
11544 |
+
$optionLi.prop('selected', notAdded);
|
11545 |
+
|
11546 |
+
return notAdded;
|
11547 |
+
}
|
11548 |
+
|
11549 |
+
/**
|
11550 |
+
* Set text value to input
|
11551 |
+
*/
|
11552 |
+
|
11553 |
+
}, {
|
11554 |
+
key: "_setValueToInput",
|
11555 |
+
value: function _setValueToInput() {
|
11556 |
+
var values = [];
|
11557 |
+
var options = this.$el.find('option');
|
11558 |
+
|
11559 |
+
options.each(function (el) {
|
11560 |
+
if ($(el).prop('selected')) {
|
11561 |
+
var text = $(el).text();
|
11562 |
+
values.push(text);
|
11563 |
+
}
|
11564 |
+
});
|
11565 |
+
|
11566 |
+
if (!values.length) {
|
11567 |
+
var firstDisabled = this.$el.find('option:disabled').eq(0);
|
11568 |
+
if (firstDisabled.length && firstDisabled[0].value === '') {
|
11569 |
+
values.push(firstDisabled.text());
|
11570 |
+
}
|
11571 |
+
}
|
11572 |
+
|
11573 |
+
this.input.value = values.join(', ');
|
11574 |
+
}
|
11575 |
+
|
11576 |
+
/**
|
11577 |
+
* Set selected state of dropdown to match actual select element
|
11578 |
+
*/
|
11579 |
+
|
11580 |
+
}, {
|
11581 |
+
key: "_setSelectedStates",
|
11582 |
+
value: function _setSelectedStates() {
|
11583 |
+
this._keysSelected = {};
|
11584 |
+
|
11585 |
+
for (var key in this._valueDict) {
|
11586 |
+
var option = this._valueDict[key];
|
11587 |
+
var optionIsSelected = $(option.el).prop('selected');
|
11588 |
+
$(option.optionEl).find('input[type="checkbox"]').prop('checked', optionIsSelected);
|
11589 |
+
if (optionIsSelected) {
|
11590 |
+
this._activateOption($(this.dropdownOptions), $(option.optionEl));
|
11591 |
+
this._keysSelected[key] = true;
|
11592 |
+
} else {
|
11593 |
+
$(option.optionEl).removeClass('selected');
|
11594 |
+
}
|
11595 |
+
}
|
11596 |
+
}
|
11597 |
+
|
11598 |
+
/**
|
11599 |
+
* Make option as selected and scroll to selected position
|
11600 |
+
* @param {jQuery} collection Select options jQuery element
|
11601 |
+
* @param {Element} newOption element of the new option
|
11602 |
+
*/
|
11603 |
+
|
11604 |
+
}, {
|
11605 |
+
key: "_activateOption",
|
11606 |
+
value: function _activateOption(collection, newOption) {
|
11607 |
+
if (newOption) {
|
11608 |
+
if (!this.isMultiple) {
|
11609 |
+
collection.find('li.selected').removeClass('selected');
|
11610 |
+
}
|
11611 |
+
var option = $(newOption);
|
11612 |
+
option.addClass('selected');
|
11613 |
+
}
|
11614 |
+
}
|
11615 |
+
|
11616 |
+
/**
|
11617 |
+
* Get Selected Values
|
11618 |
+
* @return {Array} Array of selected values
|
11619 |
+
*/
|
11620 |
+
|
11621 |
+
}, {
|
11622 |
+
key: "getSelectedValues",
|
11623 |
+
value: function getSelectedValues() {
|
11624 |
+
var selectedValues = [];
|
11625 |
+
for (var key in this._keysSelected) {
|
11626 |
+
selectedValues.push(this._valueDict[key].el.value);
|
11627 |
+
}
|
11628 |
+
return selectedValues;
|
11629 |
+
}
|
11630 |
+
}], [{
|
11631 |
+
key: "init",
|
11632 |
+
value: function init(els, options) {
|
11633 |
+
return _get(FormSelect.__proto__ || Object.getPrototypeOf(FormSelect), "init", this).call(this, this, els, options);
|
11634 |
+
}
|
11635 |
+
|
11636 |
+
/**
|
11637 |
+
* Get Instance
|
11638 |
+
*/
|
11639 |
+
|
11640 |
+
}, {
|
11641 |
+
key: "getInstance",
|
11642 |
+
value: function getInstance(el) {
|
11643 |
+
var domElem = !!el.jquery ? el[0] : el;
|
11644 |
+
return domElem.M_FormSelect;
|
11645 |
+
}
|
11646 |
+
}, {
|
11647 |
+
key: "defaults",
|
11648 |
+
get: function () {
|
11649 |
+
return _defaults;
|
11650 |
+
}
|
11651 |
+
}]);
|
11652 |
+
|
11653 |
+
return FormSelect;
|
11654 |
+
}(Component);
|
11655 |
+
|
11656 |
+
M.FormSelect = FormSelect;
|
11657 |
+
|
11658 |
+
if (M.jQueryLoaded) {
|
11659 |
+
M.initializeJqueryWrapper(FormSelect, 'formSelect', 'M_FormSelect');
|
11660 |
+
}
|
11661 |
+
})(cash);
|
11662 |
+
;(function ($, anim) {
|
11663 |
+
'use strict';
|
11664 |
+
|
11665 |
+
var _defaults = {};
|
11666 |
+
|
11667 |
+
/**
|
11668 |
+
* @class
|
11669 |
+
*
|
11670 |
+
*/
|
11671 |
+
|
11672 |
+
var Range = function (_Component21) {
|
11673 |
+
_inherits(Range, _Component21);
|
11674 |
+
|
11675 |
+
/**
|
11676 |
+
* Construct Range instance
|
11677 |
+
* @constructor
|
11678 |
+
* @param {Element} el
|
11679 |
+
* @param {Object} options
|
11680 |
+
*/
|
11681 |
+
function Range(el, options) {
|
11682 |
+
_classCallCheck(this, Range);
|
11683 |
+
|
11684 |
+
var _this72 = _possibleConstructorReturn(this, (Range.__proto__ || Object.getPrototypeOf(Range)).call(this, Range, el, options));
|
11685 |
+
|
11686 |
+
_this72.el.M_Range = _this72;
|
11687 |
+
|
11688 |
+
/**
|
11689 |
+
* Options for the range
|
11690 |
+
* @member Range#options
|
11691 |
+
*/
|
11692 |
+
_this72.options = $.extend({}, Range.defaults, options);
|
11693 |
+
|
11694 |
+
_this72._mousedown = false;
|
11695 |
+
|
11696 |
+
// Setup
|
11697 |
+
_this72._setupThumb();
|
11698 |
+
|
11699 |
+
_this72._setupEventHandlers();
|
11700 |
+
return _this72;
|
11701 |
+
}
|
11702 |
+
|
11703 |
+
_createClass(Range, [{
|
11704 |
+
key: "destroy",
|
11705 |
+
|
11706 |
+
|
11707 |
+
/**
|
11708 |
+
* Teardown component
|
11709 |
+
*/
|
11710 |
+
value: function destroy() {
|
11711 |
+
this._removeEventHandlers();
|
11712 |
+
this._removeThumb();
|
11713 |
+
this.el.M_Range = undefined;
|
11714 |
+
}
|
11715 |
+
|
11716 |
+
/**
|
11717 |
+
* Setup Event Handlers
|
11718 |
+
*/
|
11719 |
+
|
11720 |
+
}, {
|
11721 |
+
key: "_setupEventHandlers",
|
11722 |
+
value: function _setupEventHandlers() {
|
11723 |
+
this._handleRangeChangeBound = this._handleRangeChange.bind(this);
|
11724 |
+
this._handleRangeMousedownTouchstartBound = this._handleRangeMousedownTouchstart.bind(this);
|
11725 |
+
this._handleRangeInputMousemoveTouchmoveBound = this._handleRangeInputMousemoveTouchmove.bind(this);
|
11726 |
+
this._handleRangeMouseupTouchendBound = this._handleRangeMouseupTouchend.bind(this);
|
11727 |
+
this._handleRangeBlurMouseoutTouchleaveBound = this._handleRangeBlurMouseoutTouchleave.bind(this);
|
11728 |
+
|
11729 |
+
this.el.addEventListener('change', this._handleRangeChangeBound);
|
11730 |
+
|
11731 |
+
this.el.addEventListener('mousedown', this._handleRangeMousedownTouchstartBound);
|
11732 |
+
this.el.addEventListener('touchstart', this._handleRangeMousedownTouchstartBound);
|
11733 |
+
|
11734 |
+
this.el.addEventListener('input', this._handleRangeInputMousemoveTouchmoveBound);
|
11735 |
+
this.el.addEventListener('mousemove', this._handleRangeInputMousemoveTouchmoveBound);
|
11736 |
+
this.el.addEventListener('touchmove', this._handleRangeInputMousemoveTouchmoveBound);
|
11737 |
+
|
11738 |
+
this.el.addEventListener('mouseup', this._handleRangeMouseupTouchendBound);
|
11739 |
+
this.el.addEventListener('touchend', this._handleRangeMouseupTouchendBound);
|
11740 |
+
|
11741 |
+
this.el.addEventListener('blur', this._handleRangeBlurMouseoutTouchleaveBound);
|
11742 |
+
this.el.addEventListener('mouseout', this._handleRangeBlurMouseoutTouchleaveBound);
|
11743 |
+
this.el.addEventListener('touchleave', this._handleRangeBlurMouseoutTouchleaveBound);
|
11744 |
+
}
|
11745 |
+
|
11746 |
+
/**
|
11747 |
+
* Remove Event Handlers
|
11748 |
+
*/
|
11749 |
+
|
11750 |
+
}, {
|
11751 |
+
key: "_removeEventHandlers",
|
11752 |
+
value: function _removeEventHandlers() {
|
11753 |
+
this.el.removeEventListener('change', this._handleRangeChangeBound);
|
11754 |
+
|
11755 |
+
this.el.removeEventListener('mousedown', this._handleRangeMousedownTouchstartBound);
|
11756 |
+
this.el.removeEventListener('touchstart', this._handleRangeMousedownTouchstartBound);
|
11757 |
+
|
11758 |
+
this.el.removeEventListener('input', this._handleRangeInputMousemoveTouchmoveBound);
|
11759 |
+
this.el.removeEventListener('mousemove', this._handleRangeInputMousemoveTouchmoveBound);
|
11760 |
+
this.el.removeEventListener('touchmove', this._handleRangeInputMousemoveTouchmoveBound);
|
11761 |
+
|
11762 |
+
this.el.removeEventListener('mouseup', this._handleRangeMouseupTouchendBound);
|
11763 |
+
this.el.removeEventListener('touchend', this._handleRangeMouseupTouchendBound);
|
11764 |
+
|
11765 |
+
this.el.removeEventListener('blur', this._handleRangeBlurMouseoutTouchleaveBound);
|
11766 |
+
this.el.removeEventListener('mouseout', this._handleRangeBlurMouseoutTouchleaveBound);
|
11767 |
+
this.el.removeEventListener('touchleave', this._handleRangeBlurMouseoutTouchleaveBound);
|
11768 |
+
}
|
11769 |
+
|
11770 |
+
/**
|
11771 |
+
* Handle Range Change
|
11772 |
+
* @param {Event} e
|
11773 |
+
*/
|
11774 |
+
|
11775 |
+
}, {
|
11776 |
+
key: "_handleRangeChange",
|
11777 |
+
value: function _handleRangeChange() {
|
11778 |
+
$(this.value).html(this.$el.val());
|
11779 |
+
|
11780 |
+
if (!$(this.thumb).hasClass('active')) {
|
11781 |
+
this._showRangeBubble();
|
11782 |
+
}
|
11783 |
+
|
11784 |
+
var offsetLeft = this._calcRangeOffset();
|
11785 |
+
$(this.thumb).addClass('active').css('left', offsetLeft + 'px');
|
11786 |
+
}
|
11787 |
+
|
11788 |
+
/**
|
11789 |
+
* Handle Range Mousedown and Touchstart
|
11790 |
+
* @param {Event} e
|
11791 |
+
*/
|
11792 |
+
|
11793 |
+
}, {
|
11794 |
+
key: "_handleRangeMousedownTouchstart",
|
11795 |
+
value: function _handleRangeMousedownTouchstart(e) {
|
11796 |
+
// Set indicator value
|
11797 |
+
$(this.value).html(this.$el.val());
|
11798 |
+
|
11799 |
+
this._mousedown = true;
|
11800 |
+
this.$el.addClass('active');
|
11801 |
+
|
11802 |
+
if (!$(this.thumb).hasClass('active')) {
|
11803 |
+
this._showRangeBubble();
|
11804 |
+
}
|
11805 |
+
|
11806 |
+
if (e.type !== 'input') {
|
11807 |
+
var offsetLeft = this._calcRangeOffset();
|
11808 |
+
$(this.thumb).addClass('active').css('left', offsetLeft + 'px');
|
11809 |
+
}
|
11810 |
+
}
|
11811 |
+
|
11812 |
+
/**
|
11813 |
+
* Handle Range Input, Mousemove and Touchmove
|
11814 |
+
*/
|
11815 |
+
|
11816 |
+
}, {
|
11817 |
+
key: "_handleRangeInputMousemoveTouchmove",
|
11818 |
+
value: function _handleRangeInputMousemoveTouchmove() {
|
11819 |
+
if (this._mousedown) {
|
11820 |
+
if (!$(this.thumb).hasClass('active')) {
|
11821 |
+
this._showRangeBubble();
|
11822 |
+
}
|
11823 |
+
|
11824 |
+
var offsetLeft = this._calcRangeOffset();
|
11825 |
+
$(this.thumb).addClass('active').css('left', offsetLeft + 'px');
|
11826 |
+
$(this.value).html(this.$el.val());
|
11827 |
+
}
|
11828 |
+
}
|
11829 |
+
|
11830 |
+
/**
|
11831 |
+
* Handle Range Mouseup and Touchend
|
11832 |
+
*/
|
11833 |
+
|
11834 |
+
}, {
|
11835 |
+
key: "_handleRangeMouseupTouchend",
|
11836 |
+
value: function _handleRangeMouseupTouchend() {
|
11837 |
+
this._mousedown = false;
|
11838 |
+
this.$el.removeClass('active');
|
11839 |
+
}
|
11840 |
+
|
11841 |
+
/**
|
11842 |
+
* Handle Range Blur, Mouseout and Touchleave
|
11843 |
+
*/
|
11844 |
+
|
11845 |
+
}, {
|
11846 |
+
key: "_handleRangeBlurMouseoutTouchleave",
|
11847 |
+
value: function _handleRangeBlurMouseoutTouchleave() {
|
11848 |
+
if (!this._mousedown) {
|
11849 |
+
var paddingLeft = parseInt(this.$el.css('padding-left'));
|
11850 |
+
var marginLeft = 7 + paddingLeft + 'px';
|
11851 |
+
|
11852 |
+
if ($(this.thumb).hasClass('active')) {
|
11853 |
+
anim.remove(this.thumb);
|
11854 |
+
anim({
|
11855 |
+
targets: this.thumb,
|
11856 |
+
height: 0,
|
11857 |
+
width: 0,
|
11858 |
+
top: 10,
|
11859 |
+
easing: 'easeOutQuad',
|
11860 |
+
marginLeft: marginLeft,
|
11861 |
+
duration: 100
|
11862 |
+
});
|
11863 |
+
}
|
11864 |
+
$(this.thumb).removeClass('active');
|
11865 |
+
}
|
11866 |
+
}
|
11867 |
+
|
11868 |
+
/**
|
11869 |
+
* Setup dropdown
|
11870 |
+
*/
|
11871 |
+
|
11872 |
+
}, {
|
11873 |
+
key: "_setupThumb",
|
11874 |
+
value: function _setupThumb() {
|
11875 |
+
this.thumb = document.createElement('span');
|
11876 |
+
this.value = document.createElement('span');
|
11877 |
+
$(this.thumb).addClass('thumb');
|
11878 |
+
$(this.value).addClass('value');
|
11879 |
+
$(this.thumb).append(this.value);
|
11880 |
+
this.$el.after(this.thumb);
|
11881 |
+
}
|
11882 |
+
|
11883 |
+
/**
|
11884 |
+
* Remove dropdown
|
11885 |
+
*/
|
11886 |
+
|
11887 |
+
}, {
|
11888 |
+
key: "_removeThumb",
|
11889 |
+
value: function _removeThumb() {
|
11890 |
+
$(this.thumb).remove();
|
11891 |
+
}
|
11892 |
+
|
11893 |
+
/**
|
11894 |
+
* morph thumb into bubble
|
11895 |
+
*/
|
11896 |
+
|
11897 |
+
}, {
|
11898 |
+
key: "_showRangeBubble",
|
11899 |
+
value: function _showRangeBubble() {
|
11900 |
+
var paddingLeft = parseInt($(this.thumb).parent().css('padding-left'));
|
11901 |
+
var marginLeft = -7 + paddingLeft + 'px'; // TODO: fix magic number?
|
11902 |
+
anim.remove(this.thumb);
|
11903 |
+
anim({
|
11904 |
+
targets: this.thumb,
|
11905 |
+
height: 30,
|
11906 |
+
width: 30,
|
11907 |
+
top: -30,
|
11908 |
+
marginLeft: marginLeft,
|
11909 |
+
duration: 300,
|
11910 |
+
easing: 'easeOutQuint'
|
11911 |
+
});
|
11912 |
+
}
|
11913 |
+
|
11914 |
+
/**
|
11915 |
+
* Calculate the offset of the thumb
|
11916 |
+
* @return {Number} offset in pixels
|
11917 |
+
*/
|
11918 |
+
|
11919 |
+
}, {
|
11920 |
+
key: "_calcRangeOffset",
|
11921 |
+
value: function _calcRangeOffset() {
|
11922 |
+
var width = this.$el.width() - 15;
|
11923 |
+
var max = parseFloat(this.$el.attr('max')) || 100; // Range default max
|
11924 |
+
var min = parseFloat(this.$el.attr('min')) || 0; // Range default min
|
11925 |
+
var percent = (parseFloat(this.$el.val()) - min) / (max - min);
|
11926 |
+
return percent * width;
|
11927 |
+
}
|
11928 |
+
}], [{
|
11929 |
+
key: "init",
|
11930 |
+
value: function init(els, options) {
|
11931 |
+
return _get(Range.__proto__ || Object.getPrototypeOf(Range), "init", this).call(this, this, els, options);
|
11932 |
+
}
|
11933 |
+
|
11934 |
+
/**
|
11935 |
+
* Get Instance
|
11936 |
+
*/
|
11937 |
+
|
11938 |
+
}, {
|
11939 |
+
key: "getInstance",
|
11940 |
+
value: function getInstance(el) {
|
11941 |
+
var domElem = !!el.jquery ? el[0] : el;
|
11942 |
+
return domElem.M_Range;
|
11943 |
+
}
|
11944 |
+
}, {
|
11945 |
+
key: "defaults",
|
11946 |
+
get: function () {
|
11947 |
+
return _defaults;
|
11948 |
+
}
|
11949 |
+
}]);
|
11950 |
+
|
11951 |
+
return Range;
|
11952 |
+
}(Component);
|
11953 |
+
|
11954 |
+
M.Range = Range;
|
11955 |
+
|
11956 |
+
if (M.jQueryLoaded) {
|
11957 |
+
M.initializeJqueryWrapper(Range, 'range', 'M_Range');
|
11958 |
+
}
|
11959 |
+
|
11960 |
+
Range.init($('input[type=range]'));
|
11961 |
+
})(cash, M.anime);
|
admin/support.php
DELETED
@@ -1,33 +0,0 @@
|
|
1 |
-
<?php if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(_e('You are not allowed to call this page directly.','final-tiles-gallery')); } ?>
|
2 |
-
<?php $ftg_subtitle = "Support" ?>
|
3 |
-
<?php include "header.php" ?>
|
4 |
-
|
5 |
-
|
6 |
-
<div class="container">
|
7 |
-
<div class="row">
|
8 |
-
<div class="section s12 m12 l12 col" id="support-page">
|
9 |
-
<p>
|
10 |
-
<strong><?php _e('Having problems with the plugin? No panic, our support is quite fast and reliable!','final-tiles-gallery')?></strong>
|
11 |
-
</p>
|
12 |
-
<p>
|
13 |
-
<?php _e('To get a fast solution you should fill a support ticket on our platform, before that')?> <strong><?php _e('prepare these basic but important informations','final-tiles-gallery')?></strong>:
|
14 |
-
</p>
|
15 |
-
<ul>
|
16 |
-
<li><?php _e('URL of the page with the gallery;','final-tiles-gallery')?></li>
|
17 |
-
<li><?php _e('describe the problem you are experiencing;','final-tiles-gallery')?></li>
|
18 |
-
<li><?php _e('browser and operating system used.','final-tiles-gallery')?></li>
|
19 |
-
</ul>
|
20 |
-
<p>
|
21 |
-
<?php _e('Another great help from you would be doing a couple of tests, try these simple operations and let us know the results:','final-tiles-gallery')?>
|
22 |
-
</p>
|
23 |
-
<ul>
|
24 |
-
<li><?php _e("Switch to the default WordPress theme and look if the problem is still there, if not we'll already know that the problem is related to your theme and we can be faster solving the issue;",'final-tiles-gallery')?></li>
|
25 |
-
<li><?php _e('See if the problem is repeatable, also on another computers.','final-tiles-gallery')?></li>
|
26 |
-
</ul>
|
27 |
-
<p><strong><?php _e("The more complete these informations are, the faster we'll be our response",'final-tiles-gallery')?></strong><?php _e('(time zone permitting), thanks!','final-tiles-gallery')?></p>
|
28 |
-
<p class="buttons">
|
29 |
-
<a class="right waves-effect waves-light btn" href="https://www.final-tiles-gallery.com/support" target="_blank"><i class="mdi-content-send right"></i> <?php _e('Go to GreenTreeLabs support platform','final-tiles-gallery')?> </a>
|
30 |
-
</p>
|
31 |
-
</div>
|
32 |
-
</div>
|
33 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/tutorial.php
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
<?php $ftg_subtitle = "Tutorial" ?>
|
2 |
-
<?php include "header.php" ?>
|
3 |
-
|
4 |
-
<div class="container" id="tutorial">
|
5 |
-
<h5><?php _e('Documentation','final-tiles-gallery') ?></h5>
|
6 |
-
<p>
|
7 |
-
<a href="http://final-tiles-gallery.com/FinalTilesGridGallery-documentation.pdf" target="_blank"><?php _e('Download','final-tiles-gallery')?></a> <?php _e('the documentation or:','final-tiles-gallery') ?>
|
8 |
-
<a target="_blank" href="http://issuu.com/greentreelabs/docs/finaltilesgridgallery-documentation?e=17859916/13243836"><?php _e('read it online','final-tiles-gallery')?></a>
|
9 |
-
</p>
|
10 |
-
|
11 |
-
<h5><?php _e('Watch a video tutorial: how to get better grids','final-tiles-gallery')?></h5>
|
12 |
-
<p><?php _e('Learn how to make better grids with this video:','final-tiles-gallery')?> <a target="_blank" href="https://www.youtube.com/watch?v=RNT4JGjtyrs">https://www.youtube.com/watch?v=RNT4JGjtyrs</a></p>
|
13 |
-
<iframe class="fit" width="640" height="360" src="https://www.youtube.com/embed/RNT4JGjtyrs?rel=0" frameborder="0" allowfullscreen></iframe>
|
14 |
-
|
15 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
freemius/languages/freemius-da_DK.po
CHANGED
@@ -7,38 +7,52 @@ msgid ""
|
|
7 |
msgstr ""
|
8 |
"Project-Id-Version: WordPress SDK\n"
|
9 |
"Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
|
10 |
-
"POT-Creation-Date: \n"
|
11 |
-
"PO-Revision-Date:
|
12 |
"Last-Translator: Vova Feldman <vova@freemius.com>\n"
|
|
|
|
|
13 |
"Language: da_DK\n"
|
14 |
-
"
|
15 |
"Content-Type: text/plain; charset=UTF-8\n"
|
16 |
"Content-Transfer-Encoding: 8bit\n"
|
17 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
18 |
-
"MIME-Version: 1.0\n"
|
19 |
"X-Poedit-Basepath: ..\n"
|
20 |
-
"X-Poedit-KeywordsList: get_text_inline;fs_text_inline;fs_echo_inline;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
"X-Poedit-SearchPath-0: .\n"
|
22 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
23 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
24 |
|
25 |
#: includes/class-freemius.php:1688
|
26 |
-
msgid "
|
27 |
-
|
|
|
|
|
|
|
|
|
28 |
|
29 |
#: includes/class-freemius.php:1690
|
30 |
msgid "Error"
|
31 |
msgstr "Fejl"
|
32 |
|
33 |
#: includes/class-freemius.php:2011
|
|
|
34 |
msgid "I found a better %s"
|
35 |
msgstr "Jeg fandt et bedre %s"
|
36 |
|
37 |
#: includes/class-freemius.php:2013
|
|
|
38 |
msgid "What's the %s's name?"
|
39 |
msgstr "Hvad er navnet på %s?"
|
40 |
|
41 |
#: includes/class-freemius.php:2019
|
|
|
42 |
msgid "It's a temporary %s. I'm just debugging an issue."
|
43 |
msgstr "Det er en midlertidig %s. Jeg er i gang med fejlrettelser."
|
44 |
|
@@ -50,23 +64,27 @@ msgstr "Deaktivering"
|
|
50 |
msgid "Theme Switch"
|
51 |
msgstr "Temaskift"
|
52 |
|
53 |
-
#: includes/class-freemius.
|
54 |
msgid "Other"
|
55 |
msgstr "Andet"
|
56 |
|
57 |
#: includes/class-freemius.php:2039
|
|
|
58 |
msgid "I no longer need the %s"
|
59 |
msgstr "Jeg har ikke længere brug for %s"
|
60 |
|
61 |
#: includes/class-freemius.php:2046
|
|
|
62 |
msgid "I only needed the %s for a short period"
|
63 |
msgstr "Jeg behøvede kun %s i en kort periode"
|
64 |
|
65 |
#: includes/class-freemius.php:2052
|
|
|
66 |
msgid "The %s broke my site"
|
67 |
msgstr "%s ødelagde min webside"
|
68 |
|
69 |
#: includes/class-freemius.php:2059
|
|
|
70 |
msgid "The %s suddenly stopped working"
|
71 |
msgstr "%s stoppede pludseligt med at virke"
|
72 |
|
@@ -83,6 +101,7 @@ msgid "I don't like to share my information with you"
|
|
83 |
msgstr "Jeg har ikke lyst til at dele mine informationer med jer"
|
84 |
|
85 |
#: includes/class-freemius.php:2098
|
|
|
86 |
msgid "The %s didn't work"
|
87 |
msgstr "%s virkede ikke"
|
88 |
|
@@ -91,14 +110,17 @@ msgid "I couldn't understand how to make it work"
|
|
91 |
msgstr "Jeg forstod ikke, hvordan jeg skulle få det til at fungere."
|
92 |
|
93 |
#: includes/class-freemius.php:2116
|
|
|
94 |
msgid "The %s is great, but I need specific feature that you don't support"
|
95 |
-
msgstr "
|
|
|
96 |
|
97 |
#: includes/class-freemius.php:2118
|
98 |
msgid "What feature?"
|
99 |
msgstr "Hvilken feature?"
|
100 |
|
101 |
#: includes/class-freemius.php:2122
|
|
|
102 |
msgid "The %s is not working"
|
103 |
msgstr "%s virker ikke"
|
104 |
|
@@ -115,6 +137,7 @@ msgid "What you've been looking for?"
|
|
115 |
msgstr "Hvad har du ledt efter?"
|
116 |
|
117 |
#: includes/class-freemius.php:2134
|
|
|
118 |
msgid "The %s didn't work as expected"
|
119 |
msgstr "%s virkede ikke som forventet"
|
120 |
|
@@ -122,686 +145,938 @@ msgstr "%s virkede ikke som forventet"
|
|
122 |
msgid "What did you expect?"
|
123 |
msgstr "Hvad forventede du?"
|
124 |
|
125 |
-
#: includes/class-freemius.
|
126 |
msgid "Freemius Debug"
|
127 |
msgstr "Freemius Debug"
|
128 |
|
129 |
-
#: includes/class-freemius.php:
|
130 |
msgid "I don't know what is cURL or how to install it, help me!"
|
131 |
-
msgstr "
|
|
|
132 |
|
133 |
-
#: includes/class-freemius.php:
|
134 |
-
|
135 |
-
|
|
|
|
|
|
|
|
|
|
|
136 |
|
137 |
-
#: includes/class-freemius.php:
|
138 |
-
|
139 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
|
141 |
-
#: includes/class-freemius.php:
|
142 |
msgid "Yes - do your thing"
|
143 |
msgstr "Ja - fortsæt bare"
|
144 |
|
145 |
-
#: includes/class-freemius.php:
|
146 |
msgid "No - just deactivate"
|
147 |
msgstr "Nej - bare deaktiver"
|
148 |
|
149 |
-
#: includes/class-freemius.
|
150 |
-
#: includes/class-freemius.
|
151 |
-
#: includes/class-freemius.
|
152 |
-
#: includes/class-freemius.
|
153 |
-
#: includes/class-freemius.
|
154 |
-
#: includes/class-freemius.
|
155 |
-
#: includes/class-freemius.
|
156 |
msgctxt "exclamation"
|
157 |
msgid "Oops"
|
158 |
msgstr "Ups"
|
159 |
|
160 |
-
#: includes/class-freemius.php:
|
161 |
-
|
162 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
|
164 |
-
#: includes/class-freemius.php:
|
|
|
165 |
msgctxt "addonX cannot run without pluginY"
|
166 |
msgid "%s cannot run without %s."
|
167 |
msgstr "%s virker ikke uden %s."
|
168 |
|
169 |
-
#: includes/class-freemius.php:
|
|
|
170 |
msgctxt "addonX cannot run..."
|
171 |
msgid "%s cannot run without the plugin."
|
172 |
msgstr "%s virker ikke uden pluginnet."
|
173 |
|
174 |
-
#: includes/class-freemius.
|
175 |
-
#: includes/class-freemius.php:
|
176 |
-
|
177 |
-
|
|
|
|
|
|
|
|
|
|
|
178 |
|
179 |
-
#: includes/class-freemius.php:
|
|
|
180 |
msgid "Premium %s version was successfully activated."
|
181 |
msgstr "Premium-versionen af %s blev aktiveret."
|
182 |
|
183 |
-
#: includes/class-freemius.
|
|
|
|
|
|
|
184 |
msgctxt ""
|
|
|
|
|
185 |
msgid "W00t"
|
186 |
msgstr "W00t"
|
187 |
|
188 |
-
#: includes/class-freemius.php:
|
|
|
189 |
msgid "You have a %s license."
|
190 |
msgstr "Du har en %s licens."
|
191 |
|
192 |
-
#: includes/class-freemius.
|
193 |
-
#: includes/class-freemius.
|
194 |
-
#: includes/class-freemius.
|
195 |
-
#: includes/class-freemius.php:
|
196 |
msgctxt "interjection expressing joy or exuberance"
|
197 |
msgid "Yee-haw"
|
198 |
msgstr "Yee-haw"
|
199 |
|
200 |
-
#: includes/class-freemius.php:
|
201 |
-
|
202 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
|
204 |
-
#: includes/class-freemius.php:
|
205 |
-
|
206 |
-
|
|
|
|
|
|
|
|
|
|
|
207 |
|
208 |
-
#: includes/class-freemius.
|
209 |
-
#: templates/
|
|
|
210 |
msgid "More information about %s"
|
211 |
msgstr "Mere information om %s"
|
212 |
|
213 |
-
#: includes/class-freemius.php:
|
214 |
msgid "Purchase License"
|
215 |
msgstr "Køb licens"
|
216 |
|
217 |
-
#: includes/class-freemius.
|
218 |
-
|
219 |
-
|
|
|
|
|
|
|
|
|
|
|
220 |
|
221 |
-
#: includes/class-freemius.php:
|
222 |
msgid "start the trial"
|
223 |
msgstr "start prøveperioden"
|
224 |
|
225 |
-
#: includes/class-freemius.
|
226 |
msgid "complete the install"
|
227 |
msgstr "færdiggør installeringen"
|
228 |
|
229 |
-
#: includes/class-freemius.php:
|
|
|
230 |
msgid "You are just one step away - %s"
|
231 |
msgstr "Du mangler kun ét skridt - %s"
|
232 |
|
233 |
-
#: includes/class-freemius.php:
|
|
|
234 |
msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
|
235 |
msgid "Complete \"%s\" Activation Now"
|
236 |
msgstr "Færdiggør aktivering af \"%s\" nu"
|
237 |
|
238 |
-
#: includes/class-freemius.php:
|
|
|
239 |
msgid "We made a few tweaks to the %s, %s"
|
240 |
msgstr "Vi har foretaget nogle rettelser til %s, %s"
|
241 |
|
242 |
-
#: includes/class-freemius.php:
|
|
|
243 |
msgid "Opt in to make \"%s\" better!"
|
244 |
msgstr "Opt in to make \"%s\" better!"
|
245 |
|
246 |
-
#: includes/class-freemius.php:
|
|
|
247 |
msgid "The upgrade of %s was successfully completed."
|
248 |
msgstr "Opgraderingen af %s blev fuldendt."
|
249 |
|
250 |
-
#: includes/class-freemius.
|
251 |
-
#: includes/class-fs-plugin-updater.
|
252 |
-
#: includes/class-fs-plugin-updater.
|
253 |
-
#: templates/auto-installation.php:32
|
254 |
msgid "Add-On"
|
255 |
msgstr "Tilføjelse"
|
256 |
|
257 |
-
#: includes/class-freemius.
|
258 |
-
#: templates/debug.php:
|
259 |
msgid "Plugin"
|
260 |
msgstr "Plugin"
|
261 |
|
262 |
-
#: includes/class-freemius.
|
263 |
-
#: templates/debug.
|
264 |
msgid "Theme"
|
265 |
msgstr "Tema"
|
266 |
|
267 |
-
#: includes/class-freemius.php:
|
268 |
msgid "Invalid site details collection."
|
269 |
msgstr "Invalid site details collection."
|
270 |
|
271 |
-
#: includes/class-freemius.php:
|
272 |
-
msgid "
|
273 |
-
|
|
|
|
|
|
|
|
|
274 |
|
275 |
-
#: includes/class-freemius.php:
|
276 |
-
msgid "
|
277 |
-
|
|
|
|
|
|
|
|
|
278 |
|
279 |
-
#: includes/class-freemius.php:
|
280 |
msgid "Account is pending activation."
|
281 |
msgstr "Konto afventer aktivering."
|
282 |
|
283 |
-
#: includes/class-freemius.
|
284 |
#: templates/forms/premium-versions-upgrade-handler.php:47
|
285 |
msgid "Buy a license now"
|
286 |
msgstr "Buy a license now"
|
287 |
|
288 |
-
#: includes/class-freemius.
|
289 |
#: templates/forms/premium-versions-upgrade-handler.php:46
|
290 |
msgid "Renew your license now"
|
291 |
msgstr "Renew your license now"
|
292 |
|
293 |
-
#: includes/class-freemius.php:
|
|
|
294 |
msgid "%s to access version %s security & feature updates, and support."
|
295 |
msgstr "%s to access version %s security & feature updates, and support."
|
296 |
|
297 |
-
#: includes/class-freemius.php:
|
|
|
298 |
msgid "%s activation was successfully completed."
|
299 |
msgstr "Aktivering af %s blev gennemført."
|
300 |
|
301 |
-
#: includes/class-freemius.php:
|
|
|
302 |
msgid "Your account was successfully activated with the %s plan."
|
303 |
msgstr "Din konto blev aktiveret med planen %s."
|
304 |
|
305 |
-
#: includes/class-freemius.
|
306 |
msgid "Your trial has been successfully started."
|
307 |
msgstr "Din prøveperiode er begyndt."
|
308 |
|
309 |
-
#: includes/class-freemius.
|
310 |
-
#: includes/class-freemius.php:
|
|
|
311 |
msgid "Couldn't activate %s."
|
312 |
msgstr "Kunne ikke aktivere %s."
|
313 |
|
314 |
-
#: includes/class-freemius.
|
315 |
-
#: includes/class-freemius.php:
|
316 |
msgid "Please contact us with the following message:"
|
317 |
msgstr "Kontakt os venligst med følgende besked:"
|
318 |
|
319 |
-
#: includes/class-freemius.
|
320 |
msgid "Upgrade"
|
321 |
msgstr "Opgrader"
|
322 |
|
323 |
-
#: includes/class-freemius.php:
|
324 |
msgid "Start Trial"
|
325 |
msgstr "Start prøveperiode"
|
326 |
|
327 |
-
#: includes/class-freemius.php:
|
328 |
msgid "Pricing"
|
329 |
msgstr "Priser"
|
330 |
|
331 |
-
#: includes/class-freemius.
|
332 |
msgid "Affiliation"
|
333 |
msgstr "Affiliation"
|
334 |
|
335 |
-
#: includes/class-freemius.
|
336 |
-
#: templates/account.
|
337 |
msgid "Account"
|
338 |
msgstr "Konto"
|
339 |
|
340 |
-
#: includes/class-freemius.
|
341 |
#: includes/customizer/class-fs-customizer-support-section.php:60
|
342 |
msgid "Contact Us"
|
343 |
msgstr "Kontakt os"
|
344 |
|
345 |
-
#: includes/class-freemius.
|
346 |
-
#: includes/class-freemius.
|
347 |
#: templates/account/partials/addon.php:41
|
348 |
msgid "Add-Ons"
|
349 |
msgstr "Tilføjelser"
|
350 |
|
351 |
-
#: includes/class-freemius.php:
|
352 |
msgctxt "ASCII arrow left icon"
|
353 |
msgid "←"
|
354 |
msgstr "←"
|
355 |
|
356 |
-
#: includes/class-freemius.php:
|
357 |
msgctxt "ASCII arrow right icon"
|
358 |
msgid "➤"
|
359 |
msgstr "➤"
|
360 |
|
361 |
-
#: includes/class-freemius.
|
362 |
msgctxt "noun"
|
363 |
msgid "Pricing"
|
364 |
msgstr "Priser"
|
365 |
|
366 |
-
#: includes/class-freemius.
|
367 |
#: includes/customizer/class-fs-customizer-support-section.php:67
|
368 |
msgid "Support Forum"
|
369 |
msgstr "Supportforum"
|
370 |
|
371 |
-
#: includes/class-freemius.php:
|
372 |
msgid "Your email has been successfully verified - you are AWESOME!"
|
373 |
msgstr "Din e-mailadresse er blevet verificeret - du er FOR SEJ!"
|
374 |
|
375 |
-
#: includes/class-freemius.php:
|
376 |
msgctxt "a positive response"
|
377 |
msgid "Right on"
|
378 |
msgstr "Sådan"
|
379 |
|
380 |
-
#: includes/class-freemius.php:
|
|
|
381 |
msgid "Your %s Add-on plan was successfully upgraded."
|
382 |
msgstr "Your %s Add-on plan was successfully upgraded."
|
383 |
|
384 |
-
#: includes/class-freemius.php:
|
|
|
385 |
msgid "%s Add-on was successfully purchased."
|
386 |
msgstr "Betalingen for tilføjelsen %s blev gennemført."
|
387 |
|
388 |
-
#: includes/class-freemius.php:
|
389 |
msgid "Download the latest version"
|
390 |
msgstr "Download den seneste version"
|
391 |
|
392 |
-
#: includes/class-freemius.php:
|
|
|
393 |
msgctxt "%1s - plugin title, %2s - API domain"
|
394 |
-
msgid "
|
395 |
-
|
|
|
|
|
|
|
|
|
396 |
|
397 |
-
#: includes/class-freemius.
|
398 |
-
#: includes/class-freemius.php:
|
399 |
msgid "Error received from the server:"
|
400 |
msgstr "Fejl modtager fra serveren:"
|
401 |
|
402 |
-
#: includes/class-freemius.php:
|
403 |
-
msgid "
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
408 |
msgctxt ""
|
|
|
409 |
msgid "Hmm"
|
410 |
msgstr "Hmm"
|
411 |
|
412 |
-
#: includes/class-freemius.php:
|
413 |
-
|
414 |
-
|
|
|
|
|
|
|
|
|
|
|
415 |
|
416 |
-
#: includes/class-freemius.
|
417 |
-
#: templates/
|
418 |
msgctxt "trial period"
|
419 |
msgid "Trial"
|
420 |
msgstr "Prøveperiode"
|
421 |
|
422 |
-
#: includes/class-freemius.php:
|
423 |
-
|
424 |
-
|
|
|
|
|
|
|
|
|
|
|
425 |
|
426 |
-
#: includes/class-freemius.
|
427 |
msgid "Please contact us here"
|
428 |
msgstr "Kontakt os her"
|
429 |
|
430 |
-
#: includes/class-freemius.php:
|
431 |
msgid "Your plan was successfully upgraded."
|
432 |
msgstr "Din plan er blevet opgraderet."
|
433 |
|
434 |
-
#: includes/class-freemius.php:
|
|
|
435 |
msgid "Your plan was successfully changed to %s."
|
436 |
msgstr "Din plan er blevet ændret til %s."
|
437 |
|
438 |
-
#: includes/class-freemius.php:
|
439 |
-
|
440 |
-
|
|
|
|
|
|
|
|
|
441 |
|
442 |
-
#: includes/class-freemius.php:
|
443 |
-
|
444 |
-
|
|
|
|
|
|
|
|
|
|
|
445 |
|
446 |
-
#: includes/class-freemius.php:
|
447 |
-
msgid "
|
448 |
-
|
|
|
|
|
|
|
|
|
449 |
|
450 |
-
#: includes/class-freemius.php:
|
451 |
-
|
452 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
453 |
|
454 |
-
#: includes/class-freemius.php:
|
455 |
-
msgid "
|
456 |
-
|
|
|
|
|
|
|
|
|
457 |
|
458 |
-
#: includes/class-freemius.php:
|
459 |
-
|
460 |
-
|
|
|
|
|
|
|
|
|
|
|
461 |
|
462 |
-
#: includes/class-freemius.php:
|
463 |
msgid "It looks like the license could not be activated."
|
464 |
msgstr "Det ser ud til, at licensen ikke kunne aktiveres."
|
465 |
|
466 |
-
#: includes/class-freemius.php:
|
467 |
msgid "Your license was successfully activated."
|
468 |
msgstr "Din licens er blevet aktiveret."
|
469 |
|
470 |
-
#: includes/class-freemius.php:
|
471 |
msgid "It looks like your site currently doesn't have an active license."
|
472 |
msgstr "Det ser ud til, at dit websted endnu ikke har en aktiv licens."
|
473 |
|
474 |
-
#: includes/class-freemius.php:
|
475 |
msgid "It looks like the license deactivation failed."
|
476 |
msgstr "Det ser ud til, at licens-deaktiveringen mislykkedes."
|
477 |
|
478 |
-
#: includes/class-freemius.php:
|
|
|
479 |
msgid "Your license was successfully deactivated, you are back to the %s plan."
|
480 |
msgstr "Din licens blev deaktiveret, du er tilbage på planen %s."
|
481 |
|
482 |
-
#: includes/class-freemius.php:
|
483 |
msgid "O.K"
|
484 |
msgstr "O.K"
|
485 |
|
486 |
-
#: includes/class-freemius.php:
|
487 |
-
msgid "
|
488 |
-
|
|
|
|
|
|
|
|
|
489 |
|
490 |
-
#: includes/class-freemius.php:
|
491 |
-
|
492 |
-
|
|
|
|
|
|
|
|
|
|
|
493 |
|
494 |
-
#: includes/class-freemius.php:
|
|
|
495 |
msgid "You are already running the %s in a trial mode."
|
496 |
msgstr "Du benytter allerede %s under en prøveperiode."
|
497 |
|
498 |
-
#: includes/class-freemius.php:
|
499 |
msgid "You already utilized a trial before."
|
500 |
msgstr "Du har allerede brugt din prøveperiode."
|
501 |
|
502 |
-
#: includes/class-freemius.php:
|
|
|
503 |
msgid "Plan %s do not exist, therefore, can't start a trial."
|
504 |
msgstr "Plan %s eksisterer ikke og kan derfor ikke starte prøveperiode."
|
505 |
|
506 |
-
#: includes/class-freemius.php:
|
|
|
507 |
msgid "Plan %s does not support a trial period."
|
508 |
msgstr "Plan %s understøtter ikke en prøveperiode."
|
509 |
|
510 |
-
#: includes/class-freemius.php:
|
|
|
511 |
msgid "None of the %s's plans supports a trial period."
|
512 |
msgstr "None of the %s's plans supports a trial period."
|
513 |
|
514 |
-
#: includes/class-freemius.php:
|
515 |
-
msgid "
|
516 |
-
|
|
|
|
|
|
|
|
|
517 |
|
518 |
-
#: includes/class-freemius.php:
|
519 |
-
msgid "
|
520 |
-
|
|
|
|
|
|
|
|
|
521 |
|
522 |
-
#: includes/class-freemius.php:
|
|
|
523 |
msgid "Your %s free trial was successfully cancelled."
|
524 |
msgstr "Din gratis prøveperiode for %s er blevet annulleret."
|
525 |
|
526 |
-
#: includes/class-freemius.php:
|
|
|
527 |
msgid "Version %s was released."
|
528 |
msgstr "Version %s er blevet udgivet."
|
529 |
|
530 |
-
#: includes/class-freemius.php:
|
|
|
531 |
msgid "Please download %s."
|
532 |
msgstr "Download venligst %s."
|
533 |
|
534 |
-
#: includes/class-freemius.php:
|
|
|
535 |
msgid "the latest %s version here"
|
536 |
msgstr "den seneste version af %s her"
|
537 |
|
538 |
-
#: includes/class-freemius.php:
|
539 |
msgid "New"
|
540 |
msgstr "Ny"
|
541 |
|
542 |
-
#: includes/class-freemius.php:
|
543 |
msgid "Seems like you got the latest release."
|
544 |
msgstr "Det ser ud til, at du har den seneste udgivelse."
|
545 |
|
546 |
-
#: includes/class-freemius.php:
|
547 |
msgid "You are all good!"
|
548 |
msgstr "Det var det!"
|
549 |
|
550 |
-
#: includes/class-freemius.php:
|
551 |
-
|
552 |
-
|
|
|
|
|
|
|
|
|
|
|
553 |
|
554 |
-
#: includes/class-freemius.php:
|
555 |
msgid "Site successfully opted in."
|
556 |
msgstr "Websted er tilmeldt."
|
557 |
|
558 |
-
#: includes/class-freemius.
|
559 |
msgid "Awesome"
|
560 |
msgstr "Sejt"
|
561 |
|
562 |
-
#: includes/class-freemius.
|
563 |
-
|
564 |
-
|
|
|
|
|
|
|
|
|
|
|
565 |
|
566 |
-
#: includes/class-freemius.php:
|
567 |
msgid "Thank you!"
|
568 |
msgstr "Mange tak!"
|
569 |
|
570 |
-
#: includes/class-freemius.php:
|
|
|
571 |
msgid "We will no longer be sending any usage data of %s on %s to %s."
|
572 |
msgstr "Vi vil ikke længere indsende brugsdata af %s på %s til %s."
|
573 |
|
574 |
-
#: includes/class-freemius.php:
|
575 |
-
|
576 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
577 |
|
578 |
-
#: includes/class-freemius.php:
|
579 |
-
|
580 |
-
|
|
|
|
|
|
|
|
|
|
|
581 |
|
582 |
-
#: includes/class-freemius.php:
|
|
|
583 |
msgid "%s is the new owner of the account."
|
584 |
msgstr "%s er den nye ejer af kontoen."
|
585 |
|
586 |
-
#: includes/class-freemius.php:
|
587 |
msgctxt "as congratulations"
|
588 |
msgid "Congrats"
|
589 |
msgstr "Tillykke"
|
590 |
|
591 |
-
#: includes/class-freemius.php:
|
592 |
-
msgid "
|
593 |
-
|
|
|
|
|
|
|
|
|
594 |
|
595 |
-
#: includes/class-freemius.php:
|
596 |
-
|
597 |
-
|
|
|
|
|
|
|
|
|
|
|
598 |
|
599 |
-
#: includes/class-freemius.php:
|
600 |
msgid "Change Ownership"
|
601 |
msgstr "Skift ejerskab"
|
602 |
|
603 |
-
#: includes/class-freemius.php:
|
604 |
-
msgid "
|
605 |
-
|
|
|
|
|
|
|
|
|
606 |
|
607 |
-
#: includes/class-freemius.php:
|
608 |
msgid "Please provide your full name."
|
609 |
msgstr "Indtast venligst dit fulde navn."
|
610 |
|
611 |
-
#: includes/class-freemius.php:
|
612 |
msgid "Your name was successfully updated."
|
613 |
msgstr "Dit navn er blevet opdateret."
|
614 |
|
615 |
-
#: includes/class-freemius.php:
|
|
|
616 |
msgid "You have successfully updated your %s."
|
617 |
msgstr "Opdatering af %s blev gennemført."
|
618 |
|
619 |
-
#: includes/class-freemius.php:
|
620 |
-
|
621 |
-
|
|
|
|
|
|
|
|
|
|
|
622 |
|
623 |
-
#: includes/class-freemius.php:
|
624 |
msgctxt "advance notice of something that will need attention."
|
625 |
msgid "Heads up"
|
626 |
msgstr "Se her"
|
627 |
|
628 |
-
#: includes/class-freemius.php:
|
629 |
msgctxt "exclamation"
|
630 |
msgid "Hey"
|
631 |
msgstr "Hey"
|
632 |
|
633 |
-
#: includes/class-freemius.php:
|
634 |
-
|
635 |
-
|
|
|
|
|
|
|
|
|
|
|
636 |
|
637 |
-
#: includes/class-freemius.php:
|
|
|
638 |
msgid "No commitment for %s days - cancel anytime!"
|
639 |
msgstr "Ingen bindinger i %s dage - annuller når som helst!"
|
640 |
|
641 |
-
#: includes/class-freemius.php:
|
642 |
msgid "No credit card required"
|
643 |
msgstr "Betalingskort ikke påkrævet"
|
644 |
|
645 |
-
#: includes/class-freemius.
|
646 |
msgctxt "call to action"
|
647 |
msgid "Start free trial"
|
648 |
msgstr "Start gratis prøveperiode"
|
649 |
|
650 |
-
#: includes/class-freemius.php:
|
651 |
-
|
652 |
-
|
|
|
|
|
|
|
|
|
|
|
653 |
|
654 |
-
#: includes/class-freemius.php:
|
655 |
msgid "Learn more"
|
656 |
msgstr "Læs mere"
|
657 |
|
658 |
-
#: includes/class-freemius.
|
659 |
-
#: templates/account.
|
660 |
-
#: templates/connect.
|
661 |
-
#: templates/
|
662 |
msgid "Activate License"
|
663 |
msgstr "Aktiver licens"
|
664 |
|
665 |
-
#: includes/class-freemius.
|
666 |
-
#: templates/account.
|
667 |
msgid "Change License"
|
668 |
msgstr "Skift licens"
|
669 |
|
670 |
-
#: includes/class-freemius.
|
671 |
msgid "Opt Out"
|
672 |
msgstr "Frameld"
|
673 |
|
674 |
-
#: includes/class-freemius.
|
675 |
-
#: templates/account/partials/site.
|
676 |
#: templates/account/partials/site.php:161
|
677 |
msgid "Opt In"
|
678 |
msgstr "Tilmeld"
|
679 |
|
680 |
-
#: includes/class-freemius.php:
|
681 |
-
|
682 |
-
|
|
|
|
|
|
|
|
|
|
|
683 |
|
684 |
-
#: includes/class-freemius.php:
|
|
|
685 |
msgid "Activate %s features"
|
686 |
msgstr "Activate %s features"
|
687 |
|
688 |
-
#: includes/class-freemius.php:
|
689 |
msgid "Please follow these steps to complete the upgrade"
|
690 |
msgstr "Følg venligst disse trin for at færdiggøre opgraderingen"
|
691 |
|
692 |
-
#: includes/class-freemius.php:
|
|
|
693 |
msgid "Download the latest %s version"
|
694 |
msgstr "Download den seneste version af %s"
|
695 |
|
696 |
-
#: includes/class-freemius.php:
|
697 |
msgid "Upload and activate the downloaded version"
|
698 |
msgstr "Upload og aktiver den downloadede version"
|
699 |
|
700 |
-
#: includes/class-freemius.php:
|
701 |
msgid "How to upload and activate?"
|
702 |
msgstr "Upload og aktivering, hvordan?"
|
703 |
|
704 |
-
#: includes/class-freemius.php:
|
705 |
-
|
706 |
-
|
|
|
|
|
|
|
|
|
|
|
707 |
|
708 |
-
#: includes/class-freemius.php:
|
709 |
msgid "Auto installation only works for opted-in users."
|
710 |
msgstr "Auto-installation fungerer kun for tilmeldte brugere."
|
711 |
|
712 |
-
#: includes/class-freemius.
|
713 |
-
#: includes/class-fs-plugin-updater.
|
714 |
#: includes/class-fs-plugin-updater.php:1074
|
715 |
msgid "Invalid module ID."
|
716 |
msgstr "Ugyldigt modul-ID."
|
717 |
|
718 |
-
#: includes/class-freemius.
|
719 |
msgid "Premium version already active."
|
720 |
msgstr "Premium version allerede aktiv."
|
721 |
|
722 |
-
#: includes/class-freemius.php:
|
723 |
msgid "You do not have a valid license to access the premium version."
|
724 |
msgstr "Du har ikke en gyldig licens til at benytte premium-versionen."
|
725 |
|
726 |
-
#: includes/class-freemius.php:
|
727 |
-
msgid "
|
728 |
-
|
|
|
|
|
|
|
|
|
729 |
|
730 |
-
#: includes/class-freemius.
|
731 |
msgid "Premium add-on version already installed."
|
732 |
msgstr "Premium tilføjelse er allerede installeret."
|
733 |
|
734 |
-
#: includes/class-freemius.php:
|
735 |
msgid "View paid features"
|
736 |
msgstr "Vis betalte features"
|
737 |
|
738 |
-
#: includes/class-freemius.php:
|
|
|
739 |
msgid "Thank you so much for using %s and its add-ons!"
|
740 |
msgstr "Thank you so much for using %s and its add-ons!"
|
741 |
|
742 |
-
#: includes/class-freemius.php:
|
|
|
743 |
msgid "Thank you so much for using %s!"
|
744 |
msgstr "Tak fordi du benytter %s!"
|
745 |
|
746 |
-
#: includes/class-freemius.php:
|
747 |
-
|
748 |
-
|
|
|
|
|
|
|
|
|
|
|
749 |
|
750 |
-
#: includes/class-freemius.php:
|
751 |
msgid "Thank you so much for using our products!"
|
752 |
msgstr "Mange tak for at benytte vores produkter!"
|
753 |
|
754 |
-
#: includes/class-freemius.php:
|
755 |
-
msgid "
|
756 |
-
|
|
|
|
|
|
|
|
|
757 |
|
758 |
-
#: includes/class-freemius.php:
|
|
|
759 |
msgid "%s and its add-ons"
|
760 |
msgstr "%s og tilføjelser"
|
761 |
|
762 |
-
#: includes/class-freemius.php:
|
763 |
msgid "Products"
|
764 |
msgstr "Produkter"
|
765 |
|
766 |
-
#: includes/class-freemius.
|
767 |
msgid "Yes"
|
768 |
msgstr "Ja"
|
769 |
|
770 |
-
#: includes/class-freemius.
|
771 |
msgid "send me security & feature updates, educational content and offers."
|
772 |
-
msgstr "
|
|
|
773 |
|
774 |
-
#: includes/class-freemius.
|
775 |
msgid "No"
|
776 |
msgstr "Nej"
|
777 |
|
778 |
-
#: includes/class-freemius.
|
779 |
-
|
780 |
-
|
|
|
|
|
|
|
|
|
|
|
781 |
|
782 |
-
#: includes/class-freemius.php:
|
783 |
-
|
784 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
785 |
|
786 |
-
#: includes/class-freemius.
|
787 |
-
msgid "
|
788 |
-
|
|
|
|
|
|
|
|
|
789 |
|
790 |
-
#: includes/class-freemius.php:
|
791 |
msgid "License key is empty."
|
792 |
msgstr "Licensnøglen er tom."
|
793 |
|
794 |
-
#: includes/class-fs-plugin-updater.
|
795 |
#: templates/forms/premium-versions-upgrade-handler.php:57
|
796 |
msgid "Renew license"
|
797 |
msgstr "Forny licens"
|
798 |
|
799 |
-
#: includes/class-fs-plugin-updater.
|
800 |
#: templates/forms/premium-versions-upgrade-handler.php:58
|
801 |
msgid "Buy license"
|
802 |
msgstr "Buy license"
|
803 |
|
804 |
#: includes/class-fs-plugin-updater.php:278
|
|
|
805 |
msgid "There is a %s of %s available."
|
806 |
msgstr "There is a %s of %s available."
|
807 |
|
@@ -814,6 +1089,7 @@ msgid "Important Upgrade Notice:"
|
|
814 |
msgstr "Important Upgrade Notice:"
|
815 |
|
816 |
#: includes/class-fs-plugin-updater.php:1125
|
|
|
817 |
msgid "Installing plugin: %s"
|
818 |
msgstr "Installerer plugin: %s"
|
819 |
|
@@ -822,16 +1098,47 @@ msgid "Unable to connect to the filesystem. Please confirm your credentials."
|
|
822 |
msgstr "Unable to connect to the filesystem. Please confirm your credentials."
|
823 |
|
824 |
#: includes/class-fs-plugin-updater.php:1348
|
825 |
-
msgid "
|
826 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
827 |
|
828 |
-
#: includes/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
829 |
#: templates/account/partials/addon.php:292
|
830 |
msgctxt "verb"
|
831 |
msgid "Purchase"
|
832 |
msgstr "Køb"
|
833 |
|
834 |
#: includes/fs-plugin-info-dialog.php:372
|
|
|
835 |
msgid "Start my free %s"
|
836 |
msgstr "Start min gratis %s"
|
837 |
|
@@ -839,9 +1146,9 @@ msgstr "Start min gratis %s"
|
|
839 |
msgid "Install Free Version Now"
|
840 |
msgstr "Installer gratis version nu"
|
841 |
|
842 |
-
#: includes/fs-plugin-info-dialog.
|
843 |
-
#: templates/account/partials/addon.
|
844 |
-
#: templates/account/partials/addon.php:322
|
845 |
msgid "Install Now"
|
846 |
msgstr "Installer nu"
|
847 |
|
@@ -850,7 +1157,7 @@ msgctxt "as download latest version"
|
|
850 |
msgid "Download Latest Free Version"
|
851 |
msgstr "Download seneste gratis version"
|
852 |
|
853 |
-
#: includes/fs-plugin-info-dialog.
|
854 |
#: templates/account/partials/addon.php:21
|
855 |
msgctxt "as download latest version"
|
856 |
msgid "Download Latest"
|
@@ -860,15 +1167,17 @@ msgstr "Download seneste"
|
|
860 |
msgid "Install Free Version Update Now"
|
861 |
msgstr "Installer opdatering til gratis version nu"
|
862 |
|
863 |
-
#: includes/fs-plugin-info-dialog.
|
864 |
msgid "Install Update Now"
|
865 |
msgstr "Installer opdatering nu"
|
866 |
|
867 |
#: includes/fs-plugin-info-dialog.php:448
|
|
|
868 |
msgid "Newer Free Version (%s) Installed"
|
869 |
msgstr "Nyere gratis version (%s) installeret"
|
870 |
|
871 |
#: includes/fs-plugin-info-dialog.php:449
|
|
|
872 |
msgid "Newer Version (%s) Installed"
|
873 |
msgstr "Nyere version (%s) installeret"
|
874 |
|
@@ -895,7 +1204,7 @@ msgctxt "Plugin installer section title"
|
|
895 |
msgid "FAQ"
|
896 |
msgstr "FAQ"
|
897 |
|
898 |
-
#: includes/fs-plugin-info-dialog.
|
899 |
#: templates/plugin-info/description.php:55
|
900 |
msgid "Screenshots"
|
901 |
msgstr "Skærmbilleder"
|
@@ -925,6 +1234,7 @@ msgid "Plugin Install"
|
|
925 |
msgstr "Plugin-installering"
|
926 |
|
927 |
#: includes/fs-plugin-info-dialog.php:716
|
|
|
928 |
msgctxt "e.g. Professional Plan"
|
929 |
msgid "%s Plan"
|
930 |
msgstr "%s Plan"
|
@@ -934,7 +1244,7 @@ msgctxt "e.g. the best product"
|
|
934 |
msgid "Best"
|
935 |
msgstr "Bedste"
|
936 |
|
937 |
-
#: includes/fs-plugin-info-dialog.
|
938 |
#: includes/fs-plugin-info-dialog.php:768
|
939 |
msgctxt "as every month"
|
940 |
msgid "Monthly"
|
@@ -949,9 +1259,10 @@ msgstr "Årligt"
|
|
949 |
msgid "Lifetime"
|
950 |
msgstr "Livstid"
|
951 |
|
952 |
-
#: includes/fs-plugin-info-dialog.
|
953 |
-
#: includes/fs-plugin-info-dialog.
|
954 |
#: includes/fs-plugin-info-dialog.php:772
|
|
|
955 |
msgctxt "e.g. billed monthly"
|
956 |
msgid "Billed %s"
|
957 |
msgstr "Faktureret %s"
|
@@ -975,17 +1286,16 @@ msgid "Unlimited Licenses"
|
|
975 |
msgstr "Ubegrænsede licenser"
|
976 |
|
977 |
#: includes/fs-plugin-info-dialog.php:782
|
|
|
978 |
msgid "Up to %s Sites"
|
979 |
msgstr "Op til %s websteder"
|
980 |
|
981 |
-
#: includes/fs-plugin-info-dialog.
|
982 |
-
#: templates/plugin-info/features.php:82
|
983 |
msgctxt "as monthly period"
|
984 |
msgid "mo"
|
985 |
msgstr "md"
|
986 |
|
987 |
-
#: includes/fs-plugin-info-dialog.
|
988 |
-
#: templates/plugin-info/features.php:80
|
989 |
msgctxt "as annual period"
|
990 |
msgid "year"
|
991 |
msgstr "år"
|
@@ -996,14 +1306,17 @@ msgid "Price"
|
|
996 |
msgstr "Pris"
|
997 |
|
998 |
#: includes/fs-plugin-info-dialog.php:901
|
|
|
999 |
msgid "Save %s"
|
1000 |
msgstr "Spar %s"
|
1001 |
|
1002 |
#: includes/fs-plugin-info-dialog.php:911
|
|
|
1003 |
msgid "No commitment for %s - cancel anytime"
|
1004 |
msgstr "Ingen bindinger ved %s - annuller når som helst"
|
1005 |
|
1006 |
#: includes/fs-plugin-info-dialog.php:914
|
|
|
1007 |
msgid "After your free %s, pay as little as %s"
|
1008 |
msgstr "Efter din gratis %s er prisen kun %s"
|
1009 |
|
@@ -1011,9 +1324,9 @@ msgstr "Efter din gratis %s er prisen kun %s"
|
|
1011 |
msgid "Details"
|
1012 |
msgstr "Detaljer"
|
1013 |
|
1014 |
-
#: includes/fs-plugin-info-dialog.
|
1015 |
-
#: templates/
|
1016 |
-
#: templates/
|
1017 |
msgctxt "product version"
|
1018 |
msgid "Version"
|
1019 |
msgstr "Version"
|
@@ -1027,7 +1340,8 @@ msgstr "Forfatter"
|
|
1027 |
msgid "Last Updated"
|
1028 |
msgstr "Senest opdateret"
|
1029 |
|
1030 |
-
#: includes/fs-plugin-info-dialog.
|
|
|
1031 |
msgctxt "x-ago"
|
1032 |
msgid "%s ago"
|
1033 |
msgstr "%s siden"
|
@@ -1037,6 +1351,7 @@ msgid "Requires WordPress Version"
|
|
1037 |
msgstr "Kræver WordPress-version"
|
1038 |
|
1039 |
#: includes/fs-plugin-info-dialog.php:958
|
|
|
1040 |
msgid "%s or higher"
|
1041 |
msgstr "%s eller højere"
|
1042 |
|
@@ -1049,10 +1364,12 @@ msgid "Downloaded"
|
|
1049 |
msgstr "Downloadet"
|
1050 |
|
1051 |
#: includes/fs-plugin-info-dialog.php:977
|
|
|
1052 |
msgid "%s time"
|
1053 |
msgstr "%s gang"
|
1054 |
|
1055 |
#: includes/fs-plugin-info-dialog.php:979
|
|
|
1056 |
msgid "%s times"
|
1057 |
msgstr "%s gange"
|
1058 |
|
@@ -1064,7 +1381,7 @@ msgstr "WordPress.org Plugin-side"
|
|
1064 |
msgid "Plugin Homepage"
|
1065 |
msgstr "Plugin-websted"
|
1066 |
|
1067 |
-
#: includes/fs-plugin-info-dialog.
|
1068 |
#: includes/fs-plugin-info-dialog.php:1087
|
1069 |
msgid "Donate to this plugin"
|
1070 |
msgstr "Donér til dette plugin"
|
@@ -1074,26 +1391,32 @@ msgid "Average Rating"
|
|
1074 |
msgstr "Gennemsnitlig vurdering"
|
1075 |
|
1076 |
#: includes/fs-plugin-info-dialog.php:1019
|
|
|
1077 |
msgid "based on %s"
|
1078 |
msgstr "baseret på %s"
|
1079 |
|
1080 |
#: includes/fs-plugin-info-dialog.php:1023
|
|
|
1081 |
msgid "%s rating"
|
1082 |
msgstr "%s vurdering"
|
1083 |
|
1084 |
#: includes/fs-plugin-info-dialog.php:1025
|
|
|
1085 |
msgid "%s ratings"
|
1086 |
msgstr "%s vurderinger"
|
1087 |
|
1088 |
#: includes/fs-plugin-info-dialog.php:1040
|
|
|
1089 |
msgid "%s star"
|
1090 |
msgstr "%s stjerne"
|
1091 |
|
1092 |
#: includes/fs-plugin-info-dialog.php:1042
|
|
|
1093 |
msgid "%s stars"
|
1094 |
msgstr "%s stjerner"
|
1095 |
|
1096 |
#: includes/fs-plugin-info-dialog.php:1053
|
|
|
1097 |
msgid "Click to see reviews that provided a rating of %s"
|
1098 |
msgstr "Click to see reviews that provided a rating of %s"
|
1099 |
|
@@ -1101,18 +1424,21 @@ msgstr "Click to see reviews that provided a rating of %s"
|
|
1101 |
msgid "Contributors"
|
1102 |
msgstr "Bidragsydere"
|
1103 |
|
1104 |
-
#: includes/fs-plugin-info-dialog.
|
1105 |
#: includes/fs-plugin-info-dialog.php:1097
|
1106 |
msgid "Warning"
|
1107 |
msgstr "Advarsel"
|
1108 |
|
1109 |
#: includes/fs-plugin-info-dialog.php:1095
|
1110 |
msgid "This plugin has not been tested with your current version of WordPress."
|
1111 |
-
msgstr "
|
|
|
1112 |
|
1113 |
#: includes/fs-plugin-info-dialog.php:1097
|
1114 |
-
msgid "
|
1115 |
-
|
|
|
|
|
1116 |
|
1117 |
#: includes/fs-plugin-info-dialog.php:1116
|
1118 |
msgid "Paid add-on must be deployed to Freemius."
|
@@ -1122,110 +1448,127 @@ msgstr "Paid add-on must be deployed to Freemius."
|
|
1122 |
msgid "Add-on must be deployed to WordPress.org or Freemius."
|
1123 |
msgstr "Add-on must be deployed to WordPress.org or Freemius."
|
1124 |
|
1125 |
-
#: templates/account.
|
1126 |
-
#: templates/account/partials/addon.php22,
|
1127 |
#: templates/account/partials/site.php:295
|
|
|
1128 |
msgid "Downgrading your plan"
|
1129 |
msgstr "Downgrading your plan"
|
1130 |
|
1131 |
-
#: templates/account.
|
1132 |
-
#: templates/account/partials/addon.php23,
|
1133 |
#: templates/account/partials/site.php:296
|
|
|
1134 |
msgid "Cancelling the subscription"
|
1135 |
msgstr "Cancelling the subscription"
|
1136 |
|
1137 |
-
|
1138 |
-
#. subscription'
|
1139 |
-
#: templates/account.php84, templates/forms/subscription-cancellation.php99,
|
1140 |
-
#: templates/account/partials/addon.php25,
|
1141 |
#: templates/account/partials/site.php:298
|
1142 |
-
|
1143 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1144 |
|
1145 |
-
#: templates/account.
|
1146 |
-
#: templates/account/partials/addon.php26,
|
1147 |
#: templates/account/partials/site.php:299
|
1148 |
-
|
1149 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1150 |
|
1151 |
-
#: templates/account.
|
1152 |
-
#: templates/
|
1153 |
-
msgid "
|
1154 |
-
|
|
|
|
|
|
|
|
|
1155 |
|
1156 |
-
#: templates/account.
|
1157 |
-
#: templates/account/partials/addon.php28,
|
1158 |
#: templates/account/partials/site.php:300
|
1159 |
-
|
1160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1161 |
|
1162 |
-
#: templates/account.
|
1163 |
-
#: templates/account/partials/addon.php29,
|
1164 |
#: templates/account/partials/site.php:301
|
1165 |
-
|
1166 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1167 |
|
1168 |
-
|
1169 |
-
#: templates/account.
|
1170 |
-
#: templates/account/partials/activate-license-button.php31,
|
1171 |
#: templates/account/partials/addon.php:31
|
|
|
1172 |
msgid "Activate %s Plan"
|
1173 |
msgstr "Aktiver %s plan"
|
1174 |
|
1175 |
-
|
1176 |
-
#: templates/account.php93, templates/account/partials/addon.php34,
|
1177 |
#: templates/account/partials/site.php:275
|
|
|
1178 |
msgid "Auto renews in %s"
|
1179 |
msgstr "Auto-fornyer om %s"
|
1180 |
|
1181 |
-
|
1182 |
-
#: templates/account.php95, templates/account/partials/addon.php36,
|
1183 |
#: templates/account/partials/site.php:277
|
|
|
1184 |
msgid "Expires in %s"
|
1185 |
msgstr "Udløber om %s"
|
1186 |
|
1187 |
-
#: templates/account.
|
1188 |
msgctxt "as synchronize license"
|
1189 |
msgid "Sync License"
|
1190 |
msgstr "Synkroniser licens"
|
1191 |
|
1192 |
-
#: templates/account.
|
1193 |
msgid "Cancel Trial"
|
1194 |
msgstr "Annuller prøveperiode"
|
1195 |
|
1196 |
-
#: templates/account.
|
1197 |
msgid "Change Plan"
|
1198 |
msgstr "Skift plan"
|
1199 |
|
1200 |
-
#: templates/account.
|
1201 |
msgctxt "verb"
|
1202 |
msgid "Upgrade"
|
1203 |
msgstr "Opgrader"
|
1204 |
|
1205 |
-
#: templates/account.
|
1206 |
#: templates/account/partials/site.php:302
|
1207 |
msgctxt "verb"
|
1208 |
msgid "Downgrade"
|
1209 |
msgstr "Nedgrader"
|
1210 |
|
1211 |
-
#: templates/account.
|
1212 |
-
#: templates/
|
1213 |
-
#: templates/
|
1214 |
-
#: templates/account/partials/site.php:31
|
1215 |
msgid "Free"
|
1216 |
msgstr "Gratis"
|
1217 |
|
1218 |
-
#: templates/account.
|
1219 |
msgid "Activate"
|
1220 |
msgstr "Aktiver"
|
1221 |
|
1222 |
-
#: templates/account.php105, templates/debug.php371,
|
1223 |
-
#: includes/customizer/class-fs-customizer-upsell-control.php106,
|
1224 |
-
#: templates/account/partials/addon.php:46
|
1225 |
-
msgctxt "as product pricing plan"
|
1226 |
-
msgid "Plan"
|
1227 |
-
msgstr "Plan"
|
1228 |
-
|
1229 |
#: templates/account.php:158
|
1230 |
msgid "Free Trial"
|
1231 |
msgstr "Gratis prøveperiode"
|
@@ -1235,27 +1578,41 @@ msgid "Account Details"
|
|
1235 |
msgstr "Kontodetaljer"
|
1236 |
|
1237 |
#: templates/account.php:179
|
1238 |
-
|
1239 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1240 |
|
1241 |
#: templates/account.php:181
|
1242 |
-
|
1243 |
-
|
|
|
|
|
|
|
|
|
|
|
1244 |
|
1245 |
#: templates/account.php:184
|
1246 |
msgid "Delete Account"
|
1247 |
msgstr "Slet konto"
|
1248 |
|
1249 |
-
#: templates/account.
|
1250 |
#: templates/account/partials/deactivate-license-button.php:35
|
1251 |
msgid "Deactivate License"
|
1252 |
msgstr "Deaktiver licens"
|
1253 |
|
1254 |
-
#: templates/account.
|
1255 |
msgid "Are you sure you want to proceed?"
|
1256 |
msgstr "Er du sikker på, du vil fortsætte?"
|
1257 |
|
1258 |
-
#: templates/account.
|
1259 |
msgid "Cancel Subscription"
|
1260 |
msgstr "Annuller abonnement"
|
1261 |
|
@@ -1264,15 +1621,15 @@ msgctxt "as synchronize"
|
|
1264 |
msgid "Sync"
|
1265 |
msgstr "Synkroniser"
|
1266 |
|
1267 |
-
#: templates/account.
|
1268 |
msgid "Name"
|
1269 |
msgstr "Navn"
|
1270 |
|
1271 |
-
#: templates/account.
|
1272 |
msgid "Email"
|
1273 |
msgstr "E-mail"
|
1274 |
|
1275 |
-
#: templates/account.
|
1276 |
msgid "User ID"
|
1277 |
msgstr "Bruger-ID"
|
1278 |
|
@@ -1284,14 +1641,14 @@ msgstr "Websteds-ID"
|
|
1284 |
msgid "No ID"
|
1285 |
msgstr "Intet ID"
|
1286 |
|
1287 |
-
#: templates/account.
|
1288 |
-
#: templates/debug.
|
1289 |
-
#: templates/
|
1290 |
msgid "Public Key"
|
1291 |
msgstr "Offentlig nøgle"
|
1292 |
|
1293 |
-
#: templates/account.
|
1294 |
-
#: templates/debug.
|
1295 |
msgid "Secret Key"
|
1296 |
msgstr "Privat nøgle"
|
1297 |
|
@@ -1300,13 +1657,13 @@ msgctxt "as secret encryption key missing"
|
|
1300 |
msgid "No Secret"
|
1301 |
msgstr "Ingen privat nøgle"
|
1302 |
|
1303 |
-
#: templates/account.
|
1304 |
#: templates/account/partials/site.php:114
|
1305 |
msgid "Trial"
|
1306 |
msgstr "Prøveperiode"
|
1307 |
|
1308 |
-
#: templates/account.
|
1309 |
-
#: templates/
|
1310 |
msgid "License Key"
|
1311 |
msgstr "Licensnøgle"
|
1312 |
|
@@ -1314,7 +1671,7 @@ msgstr "Licensnøgle"
|
|
1314 |
msgid "not verified"
|
1315 |
msgstr "ikke verificeret"
|
1316 |
|
1317 |
-
#: templates/account.
|
1318 |
msgid "Expired"
|
1319 |
msgstr "Udløbet"
|
1320 |
|
@@ -1331,21 +1688,23 @@ msgid "Verify Email"
|
|
1331 |
msgstr "Verificer e-mail"
|
1332 |
|
1333 |
#: templates/account.php:453
|
|
|
1334 |
msgid "Download %s Version"
|
1335 |
msgstr "Download 1%s version"
|
1336 |
|
1337 |
-
#: templates/account.
|
1338 |
-
#: templates/account/partials/site.
|
1339 |
#: templates/account/partials/site.php:255
|
1340 |
msgctxt "verb"
|
1341 |
msgid "Show"
|
1342 |
msgstr "Vis"
|
1343 |
|
1344 |
#: templates/account.php:481
|
|
|
1345 |
msgid "What is your %s?"
|
1346 |
msgstr "Angiv venligst %s?"
|
1347 |
|
1348 |
-
#: templates/account.
|
1349 |
msgctxt "verb"
|
1350 |
msgid "Edit"
|
1351 |
msgstr "Rediger"
|
@@ -1358,14 +1717,15 @@ msgstr "Websteder"
|
|
1358 |
msgid "Search by address"
|
1359 |
msgstr "Søg efter adresse"
|
1360 |
|
1361 |
-
#: templates/account.
|
1362 |
-
#: templates/
|
1363 |
-
#: templates/debug.
|
1364 |
-
#: templates/
|
|
|
1365 |
msgid "ID"
|
1366 |
msgstr "ID"
|
1367 |
|
1368 |
-
#: templates/account.
|
1369 |
msgid "Address"
|
1370 |
msgstr "Adresse"
|
1371 |
|
@@ -1388,47 +1748,178 @@ msgid "Hide"
|
|
1388 |
msgstr "Skjul"
|
1389 |
|
1390 |
#: templates/account.php:686
|
|
|
1391 |
msgid "Cancelling %s"
|
1392 |
msgstr "Cancelling %s"
|
1393 |
|
1394 |
-
#: templates/account.
|
1395 |
-
#: templates/forms/subscription-cancellation.php27,
|
1396 |
#: templates/forms/deactivation/form.php:117
|
|
|
1397 |
msgid "trial"
|
1398 |
msgstr "trial"
|
1399 |
|
1400 |
-
#: templates/account.
|
|
|
1401 |
msgid "Cancelling %s..."
|
1402 |
msgstr "Cancelling %s..."
|
1403 |
|
1404 |
-
#: templates/account.
|
1405 |
-
#: templates/forms/
|
1406 |
msgid "subscription"
|
1407 |
msgstr "subscription"
|
1408 |
|
1409 |
#: templates/account.php:718
|
1410 |
-
msgid "
|
1411 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1412 |
|
1413 |
#: templates/add-ons.php:36
|
|
|
1414 |
msgid "Add Ons for %s"
|
1415 |
msgstr "Tilføjelser til %s"
|
1416 |
|
1417 |
#: templates/add-ons.php:44
|
1418 |
-
msgid "
|
1419 |
-
|
|
|
|
|
|
|
|
|
1420 |
|
1421 |
#: templates/add-ons.php:139
|
1422 |
msgid "View details"
|
1423 |
msgstr "Vis detaljer"
|
1424 |
|
1425 |
-
#: templates/admin-notice.
|
1426 |
#: templates/forms/resend-key.php:77
|
1427 |
msgctxt "as close a window"
|
1428 |
msgid "Dismiss"
|
1429 |
msgstr "Fjern"
|
1430 |
|
1431 |
#: templates/auto-installation.php:45
|
|
|
1432 |
msgid "%s sec"
|
1433 |
msgstr "1%s sek"
|
1434 |
|
@@ -1437,13 +1928,24 @@ msgid "Automatic Installation"
|
|
1437 |
msgstr "Automatisk installering"
|
1438 |
|
1439 |
#: templates/auto-installation.php:93
|
1440 |
-
|
1441 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1442 |
|
1443 |
#: templates/auto-installation.php:104
|
1444 |
-
msgid "
|
1445 |
-
|
1446 |
-
|
|
|
|
|
|
|
|
|
1447 |
#: templates/auto-installation.php:109
|
1448 |
msgid "Cancel Installation"
|
1449 |
msgstr "Annuller installering"
|
@@ -1456,8 +1958,8 @@ msgstr "Udtjekning"
|
|
1456 |
msgid "PCI compliant"
|
1457 |
msgstr "PCI compliant"
|
1458 |
|
1459 |
-
#. translators: %s: name (e.g. Hey John,)
|
1460 |
#: templates/connect.php:112
|
|
|
1461 |
msgctxt "greeting"
|
1462 |
msgid "Hey %s,"
|
1463 |
msgstr "Hey %s,"
|
@@ -1471,66 +1973,119 @@ msgid "Re-send activation email"
|
|
1471 |
msgstr "Gensend e-mail om aktivering"
|
1472 |
|
1473 |
#: templates/connect.php:162
|
|
|
1474 |
msgid "Thanks %s!"
|
1475 |
msgstr "Tak %s!"
|
1476 |
|
1477 |
-
#: templates/connect.
|
1478 |
msgid "Agree & Activate License"
|
1479 |
msgstr "Accepter & aktiver licens"
|
1480 |
|
1481 |
#: templates/connect.php:181
|
1482 |
-
|
1483 |
-
|
|
|
|
|
|
|
1484 |
|
1485 |
#: templates/connect.php:188
|
1486 |
-
|
1487 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1488 |
|
1489 |
#: templates/connect.php:189
|
1490 |
-
|
1491 |
-
|
|
|
|
|
|
|
|
|
|
|
1492 |
|
1493 |
#: templates/connect.php:195
|
1494 |
-
|
1495 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1496 |
|
1497 |
#: templates/connect.php:196
|
1498 |
-
|
1499 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1500 |
|
1501 |
#: templates/connect.php:230
|
1502 |
msgid "We're excited to introduce the Freemius network-level integration."
|
1503 |
msgstr "We're excited to introduce the Freemius network-level integration."
|
1504 |
|
1505 |
#: templates/connect.php:233
|
1506 |
-
|
1507 |
-
|
|
|
|
|
|
|
|
|
|
|
1508 |
|
1509 |
#: templates/connect.php:235
|
1510 |
-
|
1511 |
-
|
|
|
|
|
|
|
|
|
|
|
1512 |
|
1513 |
#: templates/connect.php:237
|
|
|
1514 |
msgid "%s's paid features"
|
1515 |
msgstr "%s's paid features"
|
1516 |
|
1517 |
#: templates/connect.php:242
|
1518 |
-
|
1519 |
-
|
|
|
|
|
|
|
|
|
|
|
1520 |
|
1521 |
#: templates/connect.php:244
|
1522 |
-
|
1523 |
-
|
|
|
|
|
|
|
|
|
|
|
1524 |
|
1525 |
-
#: templates/connect.
|
1526 |
msgid "License key"
|
1527 |
msgstr "Licensnøgle"
|
1528 |
|
1529 |
-
#: templates/connect.
|
1530 |
msgid "Can't find your license key?"
|
1531 |
msgstr "Kan du ikke finde din licensnøgle?"
|
1532 |
|
1533 |
-
#: templates/connect.
|
1534 |
#: templates/forms/deactivation/retry-skip.php:20
|
1535 |
msgctxt "verb"
|
1536 |
msgid "Skip"
|
@@ -1541,8 +2096,10 @@ msgid "Delegate to Site Admins"
|
|
1541 |
msgstr "Delegate to Site Admins"
|
1542 |
|
1543 |
#: templates/connect.php:318
|
1544 |
-
msgid "
|
1545 |
-
|
|
|
|
|
1546 |
|
1547 |
#: templates/connect.php:346
|
1548 |
msgid "Your Profile Overview"
|
@@ -1564,11 +2121,12 @@ msgstr "Websteds-URL, WP version, PHP info, plugins og temaer"
|
|
1564 |
msgid "Admin Notices"
|
1565 |
msgstr "Admin-meddelelser"
|
1566 |
|
1567 |
-
#: templates/connect.
|
1568 |
msgid "Updates, announcements, marketing, no spam"
|
1569 |
msgstr "Updates, announcements, marketing, no spam"
|
1570 |
|
1571 |
#: templates/connect.php:364
|
|
|
1572 |
msgid "Current %s Events"
|
1573 |
msgstr "Current %s Events"
|
1574 |
|
@@ -1580,9 +2138,14 @@ msgstr "Aktivering, deaktivering og afinstallering"
|
|
1580 |
msgid "Newsletter"
|
1581 |
msgstr "Nyhedsbrev"
|
1582 |
|
1583 |
-
#: templates/connect.
|
1584 |
-
|
1585 |
-
|
|
|
|
|
|
|
|
|
|
|
1586 |
|
1587 |
#: templates/connect.php:396
|
1588 |
msgid "What permissions are being granted?"
|
@@ -1645,8 +2208,8 @@ msgctxt "as code debugging"
|
|
1645 |
msgid "Debugging"
|
1646 |
msgstr "Fejlfinding"
|
1647 |
|
1648 |
-
#: templates/debug.
|
1649 |
-
#: templates/debug.php:
|
1650 |
msgid "Actions"
|
1651 |
msgstr "Handlinger"
|
1652 |
|
@@ -1682,283 +2245,187 @@ msgstr "Hent DB-indstilling"
|
|
1682 |
msgid "Set DB Option"
|
1683 |
msgstr "Sæt DB-indstilling"
|
1684 |
|
1685 |
-
#: templates/debug.php:
|
1686 |
msgid "Key"
|
1687 |
msgstr "Nøgle"
|
1688 |
|
1689 |
-
#: templates/debug.php:
|
1690 |
msgid "Value"
|
1691 |
msgstr "Værdi"
|
1692 |
|
1693 |
-
#: templates/debug.php:
|
1694 |
msgctxt "as software development kit versions"
|
1695 |
msgid "SDK Versions"
|
1696 |
msgstr "SDK-versioner"
|
1697 |
|
1698 |
-
#: templates/debug.php:
|
1699 |
msgid "SDK Path"
|
1700 |
msgstr "SDK-sti"
|
1701 |
|
1702 |
-
#: templates/debug.
|
1703 |
msgid "Module Path"
|
1704 |
msgstr "Modul-sti"
|
1705 |
|
1706 |
-
#: templates/debug.php:
|
1707 |
msgid "Is Active"
|
1708 |
msgstr "Er aktiv"
|
1709 |
|
1710 |
-
#: templates/debug.
|
1711 |
msgid "Plugins"
|
1712 |
msgstr "Plugins"
|
1713 |
|
1714 |
-
#: templates/debug.
|
1715 |
msgid "Themes"
|
1716 |
msgstr "Temaer"
|
1717 |
|
1718 |
-
#: templates/debug.
|
1719 |
#: templates/debug/scheduled-crons.php:80
|
1720 |
msgid "Slug"
|
1721 |
msgstr "Kortnavn"
|
1722 |
|
1723 |
-
#: templates/debug.
|
1724 |
msgid "Title"
|
1725 |
msgstr "Titel"
|
1726 |
|
1727 |
-
#: templates/debug.php:
|
1728 |
msgctxt "as application program interface"
|
1729 |
msgid "API"
|
1730 |
msgstr "API"
|
1731 |
|
1732 |
-
#: templates/debug.php:
|
1733 |
msgid "Freemius State"
|
1734 |
msgstr "Freemius tilstand"
|
1735 |
|
1736 |
-
#: templates/debug.php:
|
1737 |
msgid "Network Blog"
|
1738 |
msgstr "Netværksblog"
|
1739 |
|
1740 |
-
#: templates/debug.php:
|
1741 |
msgid "Network User"
|
1742 |
msgstr "Netværksbruger"
|
1743 |
|
1744 |
-
#: templates/debug.php:
|
1745 |
msgctxt "as connection was successful"
|
1746 |
msgid "Connected"
|
1747 |
msgstr "Forbundet"
|
1748 |
|
1749 |
-
#: templates/debug.php:
|
1750 |
msgctxt "as connection blocked"
|
1751 |
msgid "Blocked"
|
1752 |
msgstr "Blokeret"
|
1753 |
|
1754 |
-
#: templates/debug.php:
|
1755 |
msgid "Simulate Trial Promotion"
|
1756 |
msgstr "Simulate Trial Promotion"
|
1757 |
|
1758 |
-
#: templates/debug.php:
|
1759 |
msgid "Simulate Network Upgrade"
|
1760 |
msgstr "Simuler netværksopgradering"
|
1761 |
|
1762 |
-
#: templates/debug.php:
|
|
|
1763 |
msgid "%s Installs"
|
1764 |
msgstr "%s installeringer"
|
1765 |
|
1766 |
-
#: templates/debug.php:
|
1767 |
msgctxt "like websites"
|
1768 |
msgid "Sites"
|
1769 |
msgstr "Websteder"
|
1770 |
|
1771 |
-
#: templates/debug.
|
1772 |
-
|
1773 |
-
msgstr "Blog-ID"
|
1774 |
-
|
1775 |
-
#: templates/debug.php431, templates/debug.php509,
|
1776 |
-
#: templates/account/partials/addon.php:339
|
1777 |
-
msgctxt "verb"
|
1778 |
-
msgid "Delete"
|
1779 |
-
msgstr "Slet"
|
1780 |
-
|
1781 |
-
#: templates/debug.php:445
|
1782 |
msgid "Add Ons of module %s"
|
1783 |
msgstr "Tilføjelser til modul %s"
|
1784 |
|
1785 |
-
#: templates/debug.php:
|
1786 |
msgid "Users"
|
1787 |
msgstr "Brugere"
|
1788 |
|
1789 |
-
#: templates/debug.php:
|
1790 |
msgid "Verified"
|
1791 |
msgstr "Verificeret"
|
1792 |
|
1793 |
-
#: templates/debug.php:
|
|
|
1794 |
msgid "%s Licenses"
|
1795 |
msgstr "1%s licenser"
|
1796 |
|
1797 |
-
#: templates/debug.php:
|
1798 |
msgid "Plugin ID"
|
1799 |
msgstr "Plugin-ID"
|
1800 |
|
1801 |
-
#: templates/debug.php:
|
1802 |
msgid "Plan ID"
|
1803 |
msgstr "Plan-ID"
|
1804 |
|
1805 |
-
#: templates/debug.php:
|
1806 |
msgid "Quota"
|
1807 |
msgstr "Kvote"
|
1808 |
|
1809 |
-
#: templates/debug.php:
|
1810 |
msgid "Activated"
|
1811 |
msgstr "Aktiveret"
|
1812 |
|
1813 |
-
#: templates/debug.php:
|
1814 |
msgid "Blocking"
|
1815 |
msgstr "Blokerer"
|
1816 |
|
1817 |
-
#: templates/debug.php:
|
1818 |
msgctxt "as expiration date"
|
1819 |
msgid "Expiration"
|
1820 |
msgstr "Udløber"
|
1821 |
|
1822 |
-
#: templates/debug.php:
|
1823 |
msgid "Debug Log"
|
1824 |
msgstr "Fejlfindingslog"
|
1825 |
|
1826 |
-
#: templates/debug.php:
|
1827 |
msgid "All Types"
|
1828 |
msgstr "Alle typer"
|
1829 |
|
1830 |
-
#: templates/debug.php:
|
1831 |
msgid "All Requests"
|
1832 |
msgstr "Alle forespørgsler"
|
1833 |
|
1834 |
-
#: templates/debug.
|
1835 |
#: templates/debug/logger.php:25
|
1836 |
msgid "File"
|
1837 |
msgstr "Fil"
|
1838 |
|
1839 |
-
#: templates/debug.
|
1840 |
#: templates/debug/logger.php:23
|
1841 |
msgid "Function"
|
1842 |
msgstr "Funktion"
|
1843 |
|
1844 |
-
#: templates/debug.php:
|
1845 |
msgid "Process ID"
|
1846 |
msgstr "Proces-ID"
|
1847 |
|
1848 |
-
#: templates/debug.php:
|
1849 |
msgid "Logger"
|
1850 |
msgstr "Logger"
|
1851 |
|
1852 |
-
#: templates/debug.
|
1853 |
#: templates/debug/logger.php:24
|
1854 |
msgid "Message"
|
1855 |
msgstr "Besked"
|
1856 |
|
1857 |
-
#: templates/debug.php:
|
1858 |
msgid "Filter"
|
1859 |
msgstr "Filter"
|
1860 |
|
1861 |
-
#: templates/debug.php:
|
1862 |
msgid "Download"
|
1863 |
msgstr "Download"
|
1864 |
|
1865 |
-
#: templates/debug.
|
1866 |
msgid "Type"
|
1867 |
msgstr "Type"
|
1868 |
|
1869 |
-
#: templates/debug.
|
1870 |
msgid "Timestamp"
|
1871 |
msgstr "Tidsstempel"
|
1872 |
|
1873 |
-
#: templates/secure-https-header.php:28
|
1874 |
-
msgid "Secure HTTPS %s page, running from an external domain"
|
1875 |
-
msgstr "Secure HTTPS %s page, running from an external domain"
|
1876 |
-
|
1877 |
-
#: includes/customizer/class-fs-customizer-support-section.php55,
|
1878 |
-
#: templates/plugin-info/features.php:43
|
1879 |
-
msgid "Support"
|
1880 |
-
msgstr "Support"
|
1881 |
-
|
1882 |
-
#: includes/debug/class-fs-debug-bar-panel.php48,
|
1883 |
-
#: templates/debug/api-calls.php54, templates/debug/logger.php:62
|
1884 |
-
msgctxt "milliseconds"
|
1885 |
-
msgid "ms"
|
1886 |
-
msgstr "ms"
|
1887 |
-
|
1888 |
-
#: includes/debug/debug-bar-start.php:41
|
1889 |
-
msgid "Freemius API"
|
1890 |
-
msgstr "Freemius API"
|
1891 |
-
|
1892 |
-
#: includes/debug/debug-bar-start.php:42
|
1893 |
-
msgid "Requests"
|
1894 |
-
msgstr "Requests"
|
1895 |
-
|
1896 |
-
#: templates/account/billing.php:28
|
1897 |
-
msgctxt "verb"
|
1898 |
-
msgid "Update"
|
1899 |
-
msgstr "Opdater"
|
1900 |
-
|
1901 |
-
#: templates/account/billing.php:39
|
1902 |
-
msgid "Billing"
|
1903 |
-
msgstr "Betaling"
|
1904 |
-
|
1905 |
-
#: templates/account/billing.php44, templates/account/billing.php:44
|
1906 |
-
msgid "Business name"
|
1907 |
-
msgstr "Firmanavn"
|
1908 |
-
|
1909 |
-
#: templates/account/billing.php45, templates/account/billing.php:45
|
1910 |
-
msgid "Tax / VAT ID"
|
1911 |
-
msgstr "Moms / VAT ID"
|
1912 |
-
|
1913 |
-
#: templates/account/billing.php48, templates/account/billing.php48,
|
1914 |
-
#: templates/account/billing.php49, templates/account/billing.php:49
|
1915 |
-
msgid "Address Line %d"
|
1916 |
-
msgstr "Adresselinje %d"
|
1917 |
-
|
1918 |
-
#: templates/account/billing.php52, templates/account/billing.php:52
|
1919 |
-
msgid "City"
|
1920 |
-
msgstr "By"
|
1921 |
-
|
1922 |
-
#: templates/account/billing.php52, templates/account/billing.php:52
|
1923 |
-
msgid "Town"
|
1924 |
-
msgstr "By"
|
1925 |
-
|
1926 |
-
#: templates/account/billing.php53, templates/account/billing.php:53
|
1927 |
-
msgid "ZIP / Postal Code"
|
1928 |
-
msgstr "ZIP / Postnummer"
|
1929 |
-
|
1930 |
-
#: templates/account/billing.php:308
|
1931 |
-
msgid "Country"
|
1932 |
-
msgstr "Land"
|
1933 |
-
|
1934 |
-
#: templates/account/billing.php:310
|
1935 |
-
msgid "Select Country"
|
1936 |
-
msgstr "Vælg land"
|
1937 |
-
|
1938 |
-
#: templates/account/billing.php317, templates/account/billing.php:318
|
1939 |
-
msgid "State"
|
1940 |
-
msgstr "Stat"
|
1941 |
-
|
1942 |
-
#: templates/account/billing.php317, templates/account/billing.php:318
|
1943 |
-
msgid "Province"
|
1944 |
-
msgstr "Provins"
|
1945 |
-
|
1946 |
-
#: templates/account/payments.php:29
|
1947 |
-
msgid "Payments"
|
1948 |
-
msgstr "Betalinger"
|
1949 |
-
|
1950 |
-
#: templates/account/payments.php:36
|
1951 |
-
msgid "Date"
|
1952 |
-
msgstr "Dato"
|
1953 |
-
|
1954 |
-
#: templates/account/payments.php:37
|
1955 |
-
msgid "Amount"
|
1956 |
-
msgstr "Beløb"
|
1957 |
-
|
1958 |
-
#: templates/account/payments.php38, templates/account/payments.php:50
|
1959 |
-
msgid "Invoice"
|
1960 |
-
msgstr "Faktura"
|
1961 |
-
|
1962 |
#: templates/debug/api-calls.php:56
|
1963 |
msgid "API"
|
1964 |
msgstr "API"
|
@@ -2000,19 +2467,19 @@ msgstr "Slut"
|
|
2000 |
msgid "Log"
|
2001 |
msgstr "Log"
|
2002 |
|
2003 |
-
|
2004 |
-
#: templates/debug/plugins-themes-sync.php18,
|
2005 |
#: templates/debug/scheduled-crons.php:91
|
|
|
2006 |
msgid "In %s"
|
2007 |
msgstr "Om %s"
|
2008 |
|
2009 |
-
|
2010 |
-
#: templates/debug/plugins-themes-sync.php20,
|
2011 |
#: templates/debug/scheduled-crons.php:93
|
|
|
2012 |
msgid "%s ago"
|
2013 |
msgstr "%s siden"
|
2014 |
|
2015 |
-
#: templates/debug/plugins-themes-sync.
|
2016 |
#: templates/debug/scheduled-crons.php:74
|
2017 |
msgctxt "seconds"
|
2018 |
msgid "sec"
|
@@ -2026,7 +2493,7 @@ msgstr "Synkronisering af plugins og temaer"
|
|
2026 |
msgid "Total"
|
2027 |
msgstr "Total"
|
2028 |
|
2029 |
-
#: templates/debug/plugins-themes-sync.
|
2030 |
#: templates/debug/scheduled-crons.php:84
|
2031 |
msgid "Last"
|
2032 |
msgstr "Sidste"
|
@@ -2060,38 +2527,64 @@ msgid "Apply to become an affiliate"
|
|
2060 |
msgstr "Apply to become an affiliate"
|
2061 |
|
2062 |
#: templates/forms/affiliation.php:104
|
2063 |
-
|
2064 |
-
|
|
|
|
|
|
|
|
|
|
|
2065 |
|
2066 |
#: templates/forms/affiliation.php:119
|
2067 |
-
msgid "
|
2068 |
-
|
|
|
|
|
|
|
|
|
2069 |
|
2070 |
#: templates/forms/affiliation.php:122
|
2071 |
msgid "Your affiliation account was temporarily suspended."
|
2072 |
msgstr "Your affiliation account was temporarily suspended."
|
2073 |
|
2074 |
#: templates/forms/affiliation.php:125
|
2075 |
-
msgid "
|
2076 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
2077 |
|
2078 |
#: templates/forms/affiliation.php:128
|
2079 |
-
msgid "
|
2080 |
-
|
|
|
|
|
|
|
|
|
2081 |
|
2082 |
#: templates/forms/affiliation.php:141
|
|
|
2083 |
msgid "Like the %s? Become our ambassador and earn cash ;-)"
|
2084 |
msgstr "Like the %s? Become our ambassador and earn cash ;-)"
|
2085 |
|
2086 |
#: templates/forms/affiliation.php:142
|
2087 |
-
|
2088 |
-
|
|
|
|
|
|
|
|
|
|
|
2089 |
|
2090 |
#: templates/forms/affiliation.php:145
|
2091 |
msgid "Program Summary"
|
2092 |
msgstr "Programoversigt"
|
2093 |
|
2094 |
#: templates/forms/affiliation.php:147
|
|
|
2095 |
msgid "%s commission when a customer purchases a new license."
|
2096 |
msgstr "%s commission when a customer purchases a new license."
|
2097 |
|
@@ -2100,14 +2593,18 @@ msgid "Get commission for automated subscription renewals."
|
|
2100 |
msgstr "Get commission for automated subscription renewals."
|
2101 |
|
2102 |
#: templates/forms/affiliation.php:152
|
2103 |
-
|
2104 |
-
|
|
|
|
|
|
|
2105 |
|
2106 |
#: templates/forms/affiliation.php:155
|
2107 |
msgid "Unlimited commissions."
|
2108 |
msgstr "Unlimited commissions."
|
2109 |
|
2110 |
#: templates/forms/affiliation.php:157
|
|
|
2111 |
msgid "%s minimum payout amount."
|
2112 |
msgstr "%s minimum payout amount."
|
2113 |
|
@@ -2116,14 +2613,18 @@ msgid "Payouts are in USD and processed monthly via PayPal."
|
|
2116 |
msgstr "Payouts are in USD and processed monthly via PayPal."
|
2117 |
|
2118 |
#: templates/forms/affiliation.php:159
|
2119 |
-
msgid "
|
2120 |
-
|
|
|
|
|
|
|
|
|
2121 |
|
2122 |
#: templates/forms/affiliation.php:162
|
2123 |
msgid "Affiliate"
|
2124 |
msgstr "Affiliate"
|
2125 |
|
2126 |
-
#: templates/forms/affiliation.
|
2127 |
msgid "Email address"
|
2128 |
msgstr "E-mailadresse"
|
2129 |
|
@@ -2136,12 +2637,18 @@ msgid "PayPal account email address"
|
|
2136 |
msgstr "E-mailadresse til PayPal-konto"
|
2137 |
|
2138 |
#: templates/forms/affiliation.php:177
|
|
|
2139 |
msgid "Where are you going to promote the %s?"
|
2140 |
msgstr "Hvor vil du promovere %s?"
|
2141 |
|
2142 |
#: templates/forms/affiliation.php:179
|
2143 |
-
|
2144 |
-
|
|
|
|
|
|
|
|
|
|
|
2145 |
|
2146 |
#: templates/forms/affiliation.php:181
|
2147 |
msgid "Add another domain"
|
@@ -2172,18 +2679,29 @@ msgid "Website, email, and social media statistics (optional)"
|
|
2172 |
msgstr "Websted, e-mail, og statistikker for sociale medier (valgfrit)"
|
2173 |
|
2174 |
#: templates/forms/affiliation.php:210
|
2175 |
-
msgid "
|
2176 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
2177 |
|
2178 |
#: templates/forms/affiliation.php:214
|
2179 |
msgid "How will you promote us?"
|
2180 |
msgstr "Hvordan vil du promovere os?"
|
2181 |
|
2182 |
#: templates/forms/affiliation.php:217
|
2183 |
-
|
2184 |
-
|
|
|
|
|
|
|
|
|
|
|
2185 |
|
2186 |
-
#: templates/forms/affiliation.
|
2187 |
msgid "Cancel"
|
2188 |
msgstr "Annuller"
|
2189 |
|
@@ -2191,8 +2709,89 @@ msgstr "Annuller"
|
|
2191 |
msgid "Become an affiliate"
|
2192 |
msgstr "Bliv en affiliate"
|
2193 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2194 |
#: templates/forms/license-activation.php:20
|
2195 |
-
msgid "
|
|
|
|
|
2196 |
msgstr "Indtast licensnøglen, du modtog i e-mailen lige efter købet:"
|
2197 |
|
2198 |
#: templates/forms/license-activation.php:25
|
@@ -2210,18 +2809,30 @@ msgid "Opt In"
|
|
2210 |
msgstr "Tilmeld"
|
2211 |
|
2212 |
#: templates/forms/optout.php:33
|
2213 |
-
|
2214 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2215 |
|
2216 |
#: templates/forms/optout.php:35
|
2217 |
-
|
2218 |
-
|
|
|
|
|
|
|
2219 |
|
2220 |
#: templates/forms/premium-versions-upgrade-handler.php:40
|
|
|
2221 |
msgid "There is a new version of %s available."
|
2222 |
msgstr "En ny version af %s er tilgængelig."
|
2223 |
|
2224 |
#: templates/forms/premium-versions-upgrade-handler.php:41
|
|
|
2225 |
msgid " %s to access version %s security & feature updates, and support."
|
2226 |
msgstr " %s to access version %s security & feature updates, and support."
|
2227 |
|
@@ -2239,34 +2850,64 @@ msgid "Send License Key"
|
|
2239 |
msgstr "Send licensnøgle"
|
2240 |
|
2241 |
#: templates/forms/resend-key.php:57
|
2242 |
-
msgid "
|
2243 |
-
|
|
|
|
|
|
|
|
|
2244 |
|
2245 |
-
#: templates/forms/subscription-cancellation.php:
|
2246 |
-
|
2247 |
-
|
|
|
|
|
|
|
|
|
|
|
2248 |
|
2249 |
-
#: templates/forms/subscription-cancellation.php:
|
2250 |
-
|
2251 |
-
|
|
|
|
|
|
|
|
|
|
|
2252 |
|
2253 |
#: templates/forms/subscription-cancellation.php:52
|
2254 |
msgid "license"
|
2255 |
msgstr "license"
|
2256 |
|
2257 |
-
#: templates/forms/subscription-cancellation.php:
|
2258 |
-
|
2259 |
-
|
|
|
|
|
|
|
|
|
|
|
2260 |
|
2261 |
-
#: templates/forms/subscription-cancellation.php:
|
2262 |
-
|
2263 |
-
|
|
|
|
|
|
|
|
|
|
|
2264 |
|
2265 |
#: templates/forms/subscription-cancellation.php:103
|
2266 |
-
|
2267 |
-
|
|
|
|
|
|
|
|
|
|
|
2268 |
|
2269 |
#: templates/forms/subscription-cancellation.php:136
|
|
|
2270 |
msgid "Cancel %s?"
|
2271 |
msgstr "Cancel %s?"
|
2272 |
|
@@ -2274,18 +2915,26 @@ msgstr "Cancel %s?"
|
|
2274 |
msgid "Proceed"
|
2275 |
msgstr "Proceed"
|
2276 |
|
2277 |
-
#: templates/forms/subscription-cancellation.php191,
|
2278 |
-
#: templates/forms/deactivation/form.php:150
|
2279 |
-
msgid "Cancel %s & Proceed"
|
2280 |
-
msgstr "Cancel %s & Proceed"
|
2281 |
-
|
2282 |
#: templates/forms/trial-start.php:22
|
2283 |
-
|
2284 |
-
|
|
|
|
|
|
|
|
|
2285 |
|
2286 |
#: templates/forms/trial-start.php:28
|
2287 |
-
|
2288 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2289 |
|
2290 |
#: templates/js/style-premium-theme.php:37
|
2291 |
msgid "Premium"
|
@@ -2307,23 +2956,24 @@ msgstr "Akiver licens på alle afventende websteder."
|
|
2307 |
msgid "Apply on all pending sites."
|
2308 |
msgstr "Anvend på alle afventende websteder."
|
2309 |
|
2310 |
-
#: templates/partials/network-activation.
|
2311 |
#: templates/partials/network-activation.php:68
|
2312 |
msgid "allow"
|
2313 |
msgstr "tillad"
|
2314 |
|
2315 |
-
#: templates/partials/network-activation.
|
2316 |
#: templates/partials/network-activation.php:70
|
2317 |
msgid "delegate"
|
2318 |
msgstr "delegér"
|
2319 |
|
2320 |
-
#: templates/partials/network-activation.
|
2321 |
#: templates/partials/network-activation.php:73
|
2322 |
msgid "skip"
|
2323 |
msgstr "spring over"
|
2324 |
|
2325 |
-
#: templates/plugin-info/description.
|
2326 |
#: templates/plugin-info/screenshots.php:31
|
|
|
2327 |
msgid "Click to view full-size screenshot %d"
|
2328 |
msgstr "Klik for at vise skærmbillede %d i fuld skærm"
|
2329 |
|
@@ -2331,104 +2981,7 @@ msgstr "Klik for at vise skærmbillede %d i fuld skærm"
|
|
2331 |
msgid "Unlimited Updates"
|
2332 |
msgstr "Ubegrænsede opdateringer"
|
2333 |
|
2334 |
-
#: templates/
|
2335 |
-
|
2336 |
-
|
2337 |
-
|
2338 |
-
#: templates/account/partials/activate-license-button.php:50
|
2339 |
-
msgctxt "as 5 licenses left"
|
2340 |
-
msgid "%s left"
|
2341 |
-
msgstr "%s tilbage"
|
2342 |
-
|
2343 |
-
#: templates/account/partials/activate-license-button.php:51
|
2344 |
-
msgid "Last license"
|
2345 |
-
msgstr "Seneste license"
|
2346 |
-
|
2347 |
-
#: templates/account/partials/addon.php:115
|
2348 |
-
msgid "Cancelled"
|
2349 |
-
msgstr "Annulleret"
|
2350 |
-
|
2351 |
-
#: templates/account/partials/addon.php:125
|
2352 |
-
msgid "No expiration"
|
2353 |
-
msgstr "Udløber ikke"
|
2354 |
-
|
2355 |
-
#: templates/account/partials/addon.php264,
|
2356 |
-
#: templates/account/partials/addon.php:317
|
2357 |
-
msgid "Activate this add-on"
|
2358 |
-
msgstr "Aktiver denne tilføjelse"
|
2359 |
-
|
2360 |
-
#: templates/account/partials/site.php:181
|
2361 |
-
msgid "Owner Name"
|
2362 |
-
msgstr "Ejer-navn"
|
2363 |
-
|
2364 |
-
#: templates/account/partials/site.php:193
|
2365 |
-
msgid "Owner Email"
|
2366 |
-
msgstr "E-mailadresse for ejer"
|
2367 |
-
|
2368 |
-
#: templates/account/partials/site.php:205
|
2369 |
-
msgid "Owner ID"
|
2370 |
-
msgstr "Ejer-ID"
|
2371 |
-
|
2372 |
-
#: templates/account/partials/site.php:270
|
2373 |
-
msgid "Subscription"
|
2374 |
-
msgstr "Abonnement"
|
2375 |
-
|
2376 |
-
#: templates/forms/deactivation/contact.php:19
|
2377 |
-
msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
|
2378 |
-
msgstr "Vi beklager ulejligheden, og vi er her for at hjælpe, hvis du giver os chancen."
|
2379 |
-
|
2380 |
-
#: templates/forms/deactivation/contact.php:22
|
2381 |
-
msgid "Contact Support"
|
2382 |
-
msgstr "Kontakt support"
|
2383 |
-
|
2384 |
-
#: templates/forms/deactivation/form.php:59
|
2385 |
-
msgid "Anonymous feedback"
|
2386 |
-
msgstr "Anonym feedback"
|
2387 |
-
|
2388 |
-
#: templates/forms/deactivation/form.php:66
|
2389 |
-
msgid "Deactivate"
|
2390 |
-
msgstr "Deaktiver"
|
2391 |
-
|
2392 |
-
#: templates/forms/deactivation/form.php:68
|
2393 |
-
msgid "Activate %s"
|
2394 |
-
msgstr "Aktiver %s"
|
2395 |
-
|
2396 |
-
#: templates/forms/deactivation/form.php:80
|
2397 |
-
msgid "Quick Feedback"
|
2398 |
-
msgstr "Quick Feedback"
|
2399 |
-
|
2400 |
-
#: templates/forms/deactivation/form.php:84
|
2401 |
-
msgid "If you have a moment, please let us know why you are %s"
|
2402 |
-
msgstr "Hvis du har tid, så lad os venligst vide hvorfor du %s"
|
2403 |
-
|
2404 |
-
#: templates/forms/deactivation/form.php:84
|
2405 |
-
msgid "deactivating"
|
2406 |
-
msgstr "deaktiverer"
|
2407 |
-
|
2408 |
-
#: templates/forms/deactivation/form.php:84
|
2409 |
-
msgid "switching"
|
2410 |
-
msgstr "skifter"
|
2411 |
-
|
2412 |
-
#: templates/forms/deactivation/form.php:332
|
2413 |
-
msgid "Submit & %s"
|
2414 |
-
msgstr "Send & %s"
|
2415 |
-
|
2416 |
-
#: templates/forms/deactivation/form.php:353
|
2417 |
-
msgid "Kindly tell us the reason so we can improve."
|
2418 |
-
msgstr "Fortæl os venligst årsagen, så vi kan forbedre det."
|
2419 |
-
|
2420 |
-
#: templates/forms/deactivation/form.php:478
|
2421 |
-
msgid "Yes - %s"
|
2422 |
-
msgstr "Ja - %s"
|
2423 |
-
|
2424 |
-
#: templates/forms/deactivation/form.php:485
|
2425 |
-
msgid "Skip & %s"
|
2426 |
-
msgstr "Spring over & %s"
|
2427 |
-
|
2428 |
-
#: templates/forms/deactivation/retry-skip.php:21
|
2429 |
-
msgid "Click here to use the plugin anonymously"
|
2430 |
-
msgstr "Klik her for at benytte pluginnet anonymt"
|
2431 |
-
|
2432 |
-
#: templates/forms/deactivation/retry-skip.php:23
|
2433 |
-
msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
|
2434 |
-
msgstr "Du har måske overset det, men du behøver ikke at dele data og kan blot %s tilmeldingen."
|
7 |
msgstr ""
|
8 |
"Project-Id-Version: WordPress SDK\n"
|
9 |
"Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
|
10 |
+
"POT-Creation-Date: 2019-05-04 16:17+0200\n"
|
11 |
+
"PO-Revision-Date: 2019-05-04 16:17+0200\n"
|
12 |
"Last-Translator: Vova Feldman <vova@freemius.com>\n"
|
13 |
+
"Language-Team: Danish (Denmark) (http://www.transifex.com/freemius/wordpress-"
|
14 |
+
"sdk/language/da_DK/)\n"
|
15 |
"Language: da_DK\n"
|
16 |
+
"MIME-Version: 1.0\n"
|
17 |
"Content-Type: text/plain; charset=UTF-8\n"
|
18 |
"Content-Transfer-Encoding: 8bit\n"
|
19 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
|
20 |
"X-Poedit-Basepath: ..\n"
|
21 |
+
"X-Poedit-KeywordsList: get_text_inline;fs_text_inline;fs_echo_inline;"
|
22 |
+
"fs_esc_js_inline;fs_esc_attr_inline;fs_esc_attr_echo_inline;"
|
23 |
+
"fs_esc_html_inline;fs_esc_html_echo_inline;get_text_x_inline:1,2c;"
|
24 |
+
"fs_text_x_inline:1,2c;fs_echo_x_inline:1,2c;fs_esc_attr_x_inline:1,2c;"
|
25 |
+
"fs_esc_js_x_inline:1,2c;fs_esc_js_echo_x_inline:1,2c;"
|
26 |
+
"fs_esc_html_x_inline:1,2c;fs_esc_html_echo_x_inline:1,2c\n"
|
27 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
28 |
+
"X-Generator: Poedit 2.2.1\n"
|
29 |
"X-Poedit-SearchPath-0: .\n"
|
30 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
|
|
31 |
|
32 |
#: includes/class-freemius.php:1688
|
33 |
+
msgid ""
|
34 |
+
"Freemius SDK couldn't find the plugin's main file. Please contact "
|
35 |
+
"sdk@freemius.com with the current error."
|
36 |
+
msgstr ""
|
37 |
+
"Freemius SDK couldn't find the plugin's main file. Please contact "
|
38 |
+
"sdk@freemius.com with the current error."
|
39 |
|
40 |
#: includes/class-freemius.php:1690
|
41 |
msgid "Error"
|
42 |
msgstr "Fejl"
|
43 |
|
44 |
#: includes/class-freemius.php:2011
|
45 |
+
#, php-format
|
46 |
msgid "I found a better %s"
|
47 |
msgstr "Jeg fandt et bedre %s"
|
48 |
|
49 |
#: includes/class-freemius.php:2013
|
50 |
+
#, php-format
|
51 |
msgid "What's the %s's name?"
|
52 |
msgstr "Hvad er navnet på %s?"
|
53 |
|
54 |
#: includes/class-freemius.php:2019
|
55 |
+
#, php-format
|
56 |
msgid "It's a temporary %s. I'm just debugging an issue."
|
57 |
msgstr "Det er en midlertidig %s. Jeg er i gang med fejlrettelser."
|
58 |
|
64 |
msgid "Theme Switch"
|
65 |
msgstr "Temaskift"
|
66 |
|
67 |
+
#: includes/class-freemius.php:2031 templates/forms/resend-key.php:24
|
68 |
msgid "Other"
|
69 |
msgstr "Andet"
|
70 |
|
71 |
#: includes/class-freemius.php:2039
|
72 |
+
#, php-format
|
73 |
msgid "I no longer need the %s"
|
74 |
msgstr "Jeg har ikke længere brug for %s"
|
75 |
|
76 |
#: includes/class-freemius.php:2046
|
77 |
+
#, php-format
|
78 |
msgid "I only needed the %s for a short period"
|
79 |
msgstr "Jeg behøvede kun %s i en kort periode"
|
80 |
|
81 |
#: includes/class-freemius.php:2052
|
82 |
+
#, php-format
|
83 |
msgid "The %s broke my site"
|
84 |
msgstr "%s ødelagde min webside"
|
85 |
|
86 |
#: includes/class-freemius.php:2059
|
87 |
+
#, php-format
|
88 |
msgid "The %s suddenly stopped working"
|
89 |
msgstr "%s stoppede pludseligt med at virke"
|
90 |
|
101 |
msgstr "Jeg har ikke lyst til at dele mine informationer med jer"
|
102 |
|
103 |
#: includes/class-freemius.php:2098
|
104 |
+
#, php-format
|
105 |
msgid "The %s didn't work"
|
106 |
msgstr "%s virkede ikke"
|
107 |
|
110 |
msgstr "Jeg forstod ikke, hvordan jeg skulle få det til at fungere."
|
111 |
|
112 |
#: includes/class-freemius.php:2116
|
113 |
+
#, php-format
|
114 |
msgid "The %s is great, but I need specific feature that you don't support"
|
115 |
+
msgstr ""
|
116 |
+
"%s er godt, men jeg har brug for en specifik feature, som ikke understøttes"
|
117 |
|
118 |
#: includes/class-freemius.php:2118
|
119 |
msgid "What feature?"
|
120 |
msgstr "Hvilken feature?"
|
121 |
|
122 |
#: includes/class-freemius.php:2122
|
123 |
+
#, php-format
|
124 |
msgid "The %s is not working"
|
125 |
msgstr "%s virker ikke"
|
126 |
|
137 |
msgstr "Hvad har du ledt efter?"
|
138 |
|
139 |
#: includes/class-freemius.php:2134
|
140 |
+
#, php-format
|
141 |
msgid "The %s didn't work as expected"
|
142 |
msgstr "%s virkede ikke som forventet"
|
143 |
|
145 |
msgid "What did you expect?"
|
146 |
msgstr "Hvad forventede du?"
|
147 |
|
148 |
+
#: includes/class-freemius.php:2947 templates/debug.php:20
|
149 |
msgid "Freemius Debug"
|
150 |
msgstr "Freemius Debug"
|
151 |
|
152 |
+
#: includes/class-freemius.php:3696
|
153 |
msgid "I don't know what is cURL or how to install it, help me!"
|
154 |
+
msgstr ""
|
155 |
+
"Jeg ved ikke hvad cURL er, eller hvordan jeg installerer det. Hjælp mig!"
|
156 |
|
157 |
+
#: includes/class-freemius.php:3698
|
158 |
+
#, php-format
|
159 |
+
msgid ""
|
160 |
+
"We'll make sure to contact your hosting company and resolve the issue. You "
|
161 |
+
"will get a follow-up email to %s once we have an update."
|
162 |
+
msgstr ""
|
163 |
+
"Vi vil kontakte din udbyder og løse problemet. Når vi har opdatinger i "
|
164 |
+
"sagen, vil vi følge op med en email til dig på %s."
|
165 |
|
166 |
+
#: includes/class-freemius.php:3705
|
167 |
+
#, php-format
|
168 |
+
msgid ""
|
169 |
+
"Great, please install cURL and enable it in your php.ini file. In addition, "
|
170 |
+
"search for the 'disable_functions' directive in your php.ini file and remove "
|
171 |
+
"any disabled methods starting with 'curl_'. To make sure it was successfully "
|
172 |
+
"activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate "
|
173 |
+
"it back again."
|
174 |
+
msgstr ""
|
175 |
+
"Great, please install cURL and enable it in your php.ini file. In addition, "
|
176 |
+
"search for the 'disable_functions' directive in your php.ini file and remove "
|
177 |
+
"any disabled methods starting with 'curl_'. To make sure it was successfully "
|
178 |
+
"activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate "
|
179 |
+
"it back again."
|
180 |
|
181 |
+
#: includes/class-freemius.php:3810
|
182 |
msgid "Yes - do your thing"
|
183 |
msgstr "Ja - fortsæt bare"
|
184 |
|
185 |
+
#: includes/class-freemius.php:3815
|
186 |
msgid "No - just deactivate"
|
187 |
msgstr "Nej - bare deaktiver"
|
188 |
|
189 |
+
#: includes/class-freemius.php:3860 includes/class-freemius.php:4369
|
190 |
+
#: includes/class-freemius.php:5468 includes/class-freemius.php:11576
|
191 |
+
#: includes/class-freemius.php:14947 includes/class-freemius.php:14999
|
192 |
+
#: includes/class-freemius.php:15061 includes/class-freemius.php:17294
|
193 |
+
#: includes/class-freemius.php:17304 includes/class-freemius.php:17913
|
194 |
+
#: includes/class-freemius.php:18773 includes/class-freemius.php:18888
|
195 |
+
#: includes/class-freemius.php:19032 templates/add-ons.php:43
|
196 |
msgctxt "exclamation"
|
197 |
msgid "Oops"
|
198 |
msgstr "Ups"
|
199 |
|
200 |
+
#: includes/class-freemius.php:3929
|
201 |
+
#, php-format
|
202 |
+
msgid ""
|
203 |
+
"Thank for giving us the chance to fix it! A message was just sent to our "
|
204 |
+
"technical staff. We will get back to you as soon as we have an update to %s. "
|
205 |
+
"Appreciate your patience."
|
206 |
+
msgstr ""
|
207 |
+
"Tak fordi du giver os en chance for at fixe det! En besked er lige blevet "
|
208 |
+
"sendt til vores tekniske personale. Vi vil vende tilbage, så snart der er "
|
209 |
+
"nyt om %s. Vi sætter pris på din tålmodighed."
|
210 |
|
211 |
+
#: includes/class-freemius.php:4366
|
212 |
+
#, php-format
|
213 |
msgctxt "addonX cannot run without pluginY"
|
214 |
msgid "%s cannot run without %s."
|
215 |
msgstr "%s virker ikke uden %s."
|
216 |
|
217 |
+
#: includes/class-freemius.php:4367
|
218 |
+
#, php-format
|
219 |
msgctxt "addonX cannot run..."
|
220 |
msgid "%s cannot run without the plugin."
|
221 |
msgstr "%s virker ikke uden pluginnet."
|
222 |
|
223 |
+
#: includes/class-freemius.php:4513 includes/class-freemius.php:4538
|
224 |
+
#: includes/class-freemius.php:17984
|
225 |
+
#, php-format
|
226 |
+
msgid ""
|
227 |
+
"Unexpected API error. Please contact the %s's author with the following "
|
228 |
+
"error."
|
229 |
+
msgstr ""
|
230 |
+
"Unexpected API error. Please contact the %s's author with the following "
|
231 |
+
"error."
|
232 |
|
233 |
+
#: includes/class-freemius.php:5156
|
234 |
+
#, php-format
|
235 |
msgid "Premium %s version was successfully activated."
|
236 |
msgstr "Premium-versionen af %s blev aktiveret."
|
237 |
|
238 |
+
#: includes/class-freemius.php:5168 includes/class-freemius.php:7030
|
239 |
+
#, fuzzy
|
240 |
+
#| msgctxt ""
|
241 |
+
#| msgid "W00t"
|
242 |
msgctxt ""
|
243 |
+
"Used to express elation, enthusiasm, or triumph (especially in electronic "
|
244 |
+
"communication)."
|
245 |
msgid "W00t"
|
246 |
msgstr "W00t"
|
247 |
|
248 |
+
#: includes/class-freemius.php:5183
|
249 |
+
#, php-format
|
250 |
msgid "You have a %s license."
|
251 |
msgstr "Du har en %s licens."
|
252 |
|
253 |
+
#: includes/class-freemius.php:5187 includes/class-freemius.php:14368
|
254 |
+
#: includes/class-freemius.php:14379 includes/class-freemius.php:17208
|
255 |
+
#: includes/class-freemius.php:17522 includes/class-freemius.php:17588
|
256 |
+
#: includes/class-freemius.php:17738
|
257 |
msgctxt "interjection expressing joy or exuberance"
|
258 |
msgid "Yee-haw"
|
259 |
msgstr "Yee-haw"
|
260 |
|
261 |
+
#: includes/class-freemius.php:5452
|
262 |
+
#, php-format
|
263 |
+
msgid ""
|
264 |
+
"%s free trial was successfully cancelled. Since the add-on is premium only "
|
265 |
+
"it was automatically deactivated. If you like to use it in the future, "
|
266 |
+
"you'll have to purchase a license."
|
267 |
+
msgstr ""
|
268 |
+
"%s free trial was successfully cancelled. Since the add-on is premium only "
|
269 |
+
"it was automatically deactivated. If you like to use it in the future, "
|
270 |
+
"you'll have to purchase a license."
|
271 |
|
272 |
+
#: includes/class-freemius.php:5456
|
273 |
+
#, php-format
|
274 |
+
msgid ""
|
275 |
+
"%s is a premium only add-on. You have to purchase a license first before "
|
276 |
+
"activating the plugin."
|
277 |
+
msgstr ""
|
278 |
+
"%s is a premium only add-on. You have to purchase a license first before "
|
279 |
+
"activating the plugin."
|
280 |
|
281 |
+
#: includes/class-freemius.php:5464 templates/account/partials/addon.php:288
|
282 |
+
#: templates/add-ons.php:103
|
283 |
+
#, php-format
|
284 |
msgid "More information about %s"
|
285 |
msgstr "Mere information om %s"
|
286 |
|
287 |
+
#: includes/class-freemius.php:5465
|
288 |
msgid "Purchase License"
|
289 |
msgstr "Køb licens"
|
290 |
|
291 |
+
#: includes/class-freemius.php:6398 templates/connect.php:163
|
292 |
+
#, php-format
|
293 |
+
msgid ""
|
294 |
+
"You should receive an activation email for %s to your mailbox at %s. Please "
|
295 |
+
"make sure you click the activation button in that email to %s."
|
296 |
+
msgstr ""
|
297 |
+
"You should receive an activation email for %s to your mailbox at %s. Please "
|
298 |
+
"make sure you click the activation button in that email to %s."
|
299 |
|
300 |
+
#: includes/class-freemius.php:6402
|
301 |
msgid "start the trial"
|
302 |
msgstr "start prøveperioden"
|
303 |
|
304 |
+
#: includes/class-freemius.php:6403 templates/connect.php:167
|
305 |
msgid "complete the install"
|
306 |
msgstr "færdiggør installeringen"
|
307 |
|
308 |
+
#: includes/class-freemius.php:6516
|
309 |
+
#, php-format
|
310 |
msgid "You are just one step away - %s"
|
311 |
msgstr "Du mangler kun ét skridt - %s"
|
312 |
|
313 |
+
#: includes/class-freemius.php:6519
|
314 |
+
#, php-format
|
315 |
msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
|
316 |
msgid "Complete \"%s\" Activation Now"
|
317 |
msgstr "Færdiggør aktivering af \"%s\" nu"
|
318 |
|
319 |
+
#: includes/class-freemius.php:6597
|
320 |
+
#, php-format
|
321 |
msgid "We made a few tweaks to the %s, %s"
|
322 |
msgstr "Vi har foretaget nogle rettelser til %s, %s"
|
323 |
|
324 |
+
#: includes/class-freemius.php:6601
|
325 |
+
#, php-format
|
326 |
msgid "Opt in to make \"%s\" better!"
|
327 |
msgstr "Opt in to make \"%s\" better!"
|
328 |
|
329 |
+
#: includes/class-freemius.php:7029
|
330 |
+
#, php-format
|
331 |
msgid "The upgrade of %s was successfully completed."
|
332 |
msgstr "Opgraderingen af %s blev fuldendt."
|
333 |
|
334 |
+
#: includes/class-freemius.php:8956 includes/class-fs-plugin-updater.php:886
|
335 |
+
#: includes/class-fs-plugin-updater.php:1081
|
336 |
+
#: includes/class-fs-plugin-updater.php:1088 templates/auto-installation.php:32
|
|
|
337 |
msgid "Add-On"
|
338 |
msgstr "Tilføjelse"
|
339 |
|
340 |
+
#: includes/class-freemius.php:8958 templates/debug.php:361
|
341 |
+
#: templates/debug.php:522
|
342 |
msgid "Plugin"
|
343 |
msgstr "Plugin"
|
344 |
|
345 |
+
#: includes/class-freemius.php:8959 templates/debug.php:361
|
346 |
+
#: templates/debug.php:522 templates/forms/deactivation/form.php:67
|
347 |
msgid "Theme"
|
348 |
msgstr "Tema"
|
349 |
|
350 |
+
#: includes/class-freemius.php:11443
|
351 |
msgid "Invalid site details collection."
|
352 |
msgstr "Invalid site details collection."
|
353 |
|
354 |
+
#: includes/class-freemius.php:11563
|
355 |
+
msgid ""
|
356 |
+
"We couldn't find your email address in the system, are you sure it's the "
|
357 |
+
"right address?"
|
358 |
+
msgstr ""
|
359 |
+
"Vi kunne ikke finde din e-mailadresse i systemet, er du sikker på, det er "
|
360 |
+
"den rigtige adresse?"
|
361 |
|
362 |
+
#: includes/class-freemius.php:11565
|
363 |
+
msgid ""
|
364 |
+
"We can't see any active licenses associated with that email address, are you "
|
365 |
+
"sure it's the right address?"
|
366 |
+
msgstr ""
|
367 |
+
"Vi kan ikke finde nogen aktive licenser knyttet til den e-mailadresse, er du "
|
368 |
+
"sikker på, det er den rigtige adresse?"
|
369 |
|
370 |
+
#: includes/class-freemius.php:11839
|
371 |
msgid "Account is pending activation."
|
372 |
msgstr "Konto afventer aktivering."
|
373 |
|
374 |
+
#: includes/class-freemius.php:11951
|
375 |
#: templates/forms/premium-versions-upgrade-handler.php:47
|
376 |
msgid "Buy a license now"
|
377 |
msgstr "Buy a license now"
|
378 |
|
379 |
+
#: includes/class-freemius.php:11963
|
380 |
#: templates/forms/premium-versions-upgrade-handler.php:46
|
381 |
msgid "Renew your license now"
|
382 |
msgstr "Renew your license now"
|
383 |
|
384 |
+
#: includes/class-freemius.php:11967
|
385 |
+
#, php-format
|
386 |
msgid "%s to access version %s security & feature updates, and support."
|
387 |
msgstr "%s to access version %s security & feature updates, and support."
|
388 |
|
389 |
+
#: includes/class-freemius.php:14350
|
390 |
+
#, php-format
|
391 |
msgid "%s activation was successfully completed."
|
392 |
msgstr "Aktivering af %s blev gennemført."
|
393 |
|
394 |
+
#: includes/class-freemius.php:14364
|
395 |
+
#, php-format
|
396 |
msgid "Your account was successfully activated with the %s plan."
|
397 |
msgstr "Din konto blev aktiveret med planen %s."
|
398 |
|
399 |
+
#: includes/class-freemius.php:14375 includes/class-freemius.php:17584
|
400 |
msgid "Your trial has been successfully started."
|
401 |
msgstr "Din prøveperiode er begyndt."
|
402 |
|
403 |
+
#: includes/class-freemius.php:14945 includes/class-freemius.php:14997
|
404 |
+
#: includes/class-freemius.php:15059
|
405 |
+
#, php-format
|
406 |
msgid "Couldn't activate %s."
|
407 |
msgstr "Kunne ikke aktivere %s."
|
408 |
|
409 |
+
#: includes/class-freemius.php:14946 includes/class-freemius.php:14998
|
410 |
+
#: includes/class-freemius.php:15060
|
411 |
msgid "Please contact us with the following message:"
|
412 |
msgstr "Kontakt os venligst med følgende besked:"
|
413 |
|
414 |
+
#: includes/class-freemius.php:15409 includes/class-freemius.php:19870
|
415 |
msgid "Upgrade"
|
416 |
msgstr "Opgrader"
|
417 |
|
418 |
+
#: includes/class-freemius.php:15415
|
419 |
msgid "Start Trial"
|
420 |
msgstr "Start prøveperiode"
|
421 |
|
422 |
+
#: includes/class-freemius.php:15417
|
423 |
msgid "Pricing"
|
424 |
msgstr "Priser"
|
425 |
|
426 |
+
#: includes/class-freemius.php:15479 includes/class-freemius.php:15481
|
427 |
msgid "Affiliation"
|
428 |
msgstr "Affiliation"
|
429 |
|
430 |
+
#: includes/class-freemius.php:15509 includes/class-freemius.php:15511
|
431 |
+
#: templates/account.php:150 templates/debug.php:326
|
432 |
msgid "Account"
|
433 |
msgstr "Konto"
|
434 |
|
435 |
+
#: includes/class-freemius.php:15524 includes/class-freemius.php:15526
|
436 |
#: includes/customizer/class-fs-customizer-support-section.php:60
|
437 |
msgid "Contact Us"
|
438 |
msgstr "Kontakt os"
|
439 |
|
440 |
+
#: includes/class-freemius.php:15536 includes/class-freemius.php:15538
|
441 |
+
#: includes/class-freemius.php:19880 templates/account.php:100
|
442 |
#: templates/account/partials/addon.php:41
|
443 |
msgid "Add-Ons"
|
444 |
msgstr "Tilføjelser"
|
445 |
|
446 |
+
#: includes/class-freemius.php:15572
|
447 |
msgctxt "ASCII arrow left icon"
|
448 |
msgid "←"
|
449 |
msgstr "←"
|
450 |
|
451 |
+
#: includes/class-freemius.php:15572
|
452 |
msgctxt "ASCII arrow right icon"
|
453 |
msgid "➤"
|
454 |
msgstr "➤"
|
455 |
|
456 |
+
#: includes/class-freemius.php:15574 templates/pricing.php:97
|
457 |
msgctxt "noun"
|
458 |
msgid "Pricing"
|
459 |
msgstr "Priser"
|
460 |
|
461 |
+
#: includes/class-freemius.php:15787
|
462 |
#: includes/customizer/class-fs-customizer-support-section.php:67
|
463 |
msgid "Support Forum"
|
464 |
msgstr "Supportforum"
|
465 |
|
466 |
+
#: includes/class-freemius.php:16573
|
467 |
msgid "Your email has been successfully verified - you are AWESOME!"
|
468 |
msgstr "Din e-mailadresse er blevet verificeret - du er FOR SEJ!"
|
469 |
|
470 |
+
#: includes/class-freemius.php:16574
|
471 |
msgctxt "a positive response"
|
472 |
msgid "Right on"
|
473 |
msgstr "Sådan"
|
474 |
|
475 |
+
#: includes/class-freemius.php:17199
|
476 |
+
#, php-format
|
477 |
msgid "Your %s Add-on plan was successfully upgraded."
|
478 |
msgstr "Your %s Add-on plan was successfully upgraded."
|
479 |
|
480 |
+
#: includes/class-freemius.php:17201
|
481 |
+
#, php-format
|
482 |
msgid "%s Add-on was successfully purchased."
|
483 |
msgstr "Betalingen for tilføjelsen %s blev gennemført."
|
484 |
|
485 |
+
#: includes/class-freemius.php:17204
|
486 |
msgid "Download the latest version"
|
487 |
msgstr "Download den seneste version"
|
488 |
|
489 |
+
#: includes/class-freemius.php:17290
|
490 |
+
#, php-format
|
491 |
msgctxt "%1s - plugin title, %2s - API domain"
|
492 |
+
msgid ""
|
493 |
+
"Your server is blocking the access to Freemius' API, which is crucial for "
|
494 |
+
"%1s synchronization. Please contact your host to whitelist %2s"
|
495 |
+
msgstr ""
|
496 |
+
"Your server is blocking the access to Freemius' API, which is crucial for "
|
497 |
+
"%1s synchronization. Please contact your host to whitelist %2s"
|
498 |
|
499 |
+
#: includes/class-freemius.php:17293 includes/class-freemius.php:17709
|
500 |
+
#: includes/class-freemius.php:17786
|
501 |
msgid "Error received from the server:"
|
502 |
msgstr "Fejl modtager fra serveren:"
|
503 |
|
504 |
+
#: includes/class-freemius.php:17303
|
505 |
+
msgid ""
|
506 |
+
"It seems like one of the authentication parameters is wrong. Update your "
|
507 |
+
"Public Key, Secret Key & User ID, and try again."
|
508 |
+
msgstr ""
|
509 |
+
"It seems like one of the authentication parameters is wrong. Update your "
|
510 |
+
"Public Key, Secret Key & User ID, and try again."
|
511 |
+
|
512 |
+
#: includes/class-freemius.php:17485 includes/class-freemius.php:17714
|
513 |
+
#: includes/class-freemius.php:17757 includes/class-freemius.php:17860
|
514 |
+
#, fuzzy
|
515 |
+
#| msgctxt ""
|
516 |
+
#| msgid "Hmm"
|
517 |
msgctxt ""
|
518 |
+
"something somebody says when they are thinking about what you have just said."
|
519 |
msgid "Hmm"
|
520 |
msgstr "Hmm"
|
521 |
|
522 |
+
#: includes/class-freemius.php:17498
|
523 |
+
#, php-format
|
524 |
+
msgid ""
|
525 |
+
"It looks like you are still on the %s plan. If you did upgrade or change "
|
526 |
+
"your plan, it's probably an issue on our side - sorry."
|
527 |
+
msgstr ""
|
528 |
+
"It looks like you are still on the %s plan. If you did upgrade or change "
|
529 |
+
"your plan, it's probably an issue on our side - sorry."
|
530 |
|
531 |
+
#: includes/class-freemius.php:17499 templates/account.php:102
|
532 |
+
#: templates/account/partials/addon.php:43 templates/add-ons.php:134
|
533 |
msgctxt "trial period"
|
534 |
msgid "Trial"
|
535 |
msgstr "Prøveperiode"
|
536 |
|
537 |
+
#: includes/class-freemius.php:17504
|
538 |
+
#, php-format
|
539 |
+
msgid ""
|
540 |
+
"I have upgraded my account but when I try to Sync the License, the plan "
|
541 |
+
"remains %s."
|
542 |
+
msgstr ""
|
543 |
+
"Jeg har opgraderet min konto, men når jeg forsøger at synkronisere licensen, "
|
544 |
+
"forbliver planen %s."
|
545 |
|
546 |
+
#: includes/class-freemius.php:17508 includes/class-freemius.php:17566
|
547 |
msgid "Please contact us here"
|
548 |
msgstr "Kontakt os her"
|
549 |
|
550 |
+
#: includes/class-freemius.php:17518
|
551 |
msgid "Your plan was successfully upgraded."
|
552 |
msgstr "Din plan er blevet opgraderet."
|
553 |
|
554 |
+
#: includes/class-freemius.php:17536
|
555 |
+
#, php-format
|
556 |
msgid "Your plan was successfully changed to %s."
|
557 |
msgstr "Din plan er blevet ændret til %s."
|
558 |
|
559 |
+
#: includes/class-freemius.php:17552
|
560 |
+
#, php-format
|
561 |
+
msgid ""
|
562 |
+
"Your license has expired. You can still continue using the free %s forever."
|
563 |
+
msgstr ""
|
564 |
+
"Din licens er udløbet. Du kan stadig fortsætte med at benytte den gratis "
|
565 |
+
"udgave af %s."
|
566 |
|
567 |
+
#: includes/class-freemius.php:17554
|
568 |
+
#, php-format
|
569 |
+
msgid ""
|
570 |
+
"Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s "
|
571 |
+
"without interruptions."
|
572 |
+
msgstr ""
|
573 |
+
"Din licens er udløbet. %1$sOpgrader nu%2$s for at fortsætte med at benytte "
|
574 |
+
"%3$s uden forstyrrelser."
|
575 |
|
576 |
+
#: includes/class-freemius.php:17562
|
577 |
+
msgid ""
|
578 |
+
"Your license has been cancelled. If you think it's a mistake, please contact "
|
579 |
+
"support."
|
580 |
+
msgstr ""
|
581 |
+
"Din licens er blevet annulleret. Hvis du mener, dette er en fejl, så kontakt "
|
582 |
+
"venligst support."
|
583 |
|
584 |
+
#: includes/class-freemius.php:17575
|
585 |
+
#, php-format
|
586 |
+
msgid ""
|
587 |
+
"Your license has expired. You can still continue using all the %s features, "
|
588 |
+
"but you'll need to renew your license to continue getting updates and "
|
589 |
+
"support."
|
590 |
+
msgstr ""
|
591 |
+
"Din licens er udløbet. Du kan stadig benytte alle funktionerne i %s, men du "
|
592 |
+
"bliver nødt til at fornye din licens for at få opdateringer og support."
|
593 |
|
594 |
+
#: includes/class-freemius.php:17598
|
595 |
+
msgid ""
|
596 |
+
"Your free trial has expired. You can still continue using all our free "
|
597 |
+
"features."
|
598 |
+
msgstr ""
|
599 |
+
"Din gratis prøveperiode er udløbet. Du kan stadig benytte alle de gratis "
|
600 |
+
"features."
|
601 |
|
602 |
+
#: includes/class-freemius.php:17600
|
603 |
+
#, php-format
|
604 |
+
msgid ""
|
605 |
+
"Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s "
|
606 |
+
"without interruptions."
|
607 |
+
msgstr ""
|
608 |
+
"Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s "
|
609 |
+
"without interruptions."
|
610 |
|
611 |
+
#: includes/class-freemius.php:17705
|
612 |
msgid "It looks like the license could not be activated."
|
613 |
msgstr "Det ser ud til, at licensen ikke kunne aktiveres."
|
614 |
|
615 |
+
#: includes/class-freemius.php:17735
|
616 |
msgid "Your license was successfully activated."
|
617 |
msgstr "Din licens er blevet aktiveret."
|
618 |
|
619 |
+
#: includes/class-freemius.php:17761
|
620 |
msgid "It looks like your site currently doesn't have an active license."
|
621 |
msgstr "Det ser ud til, at dit websted endnu ikke har en aktiv licens."
|
622 |
|
623 |
+
#: includes/class-freemius.php:17785
|
624 |
msgid "It looks like the license deactivation failed."
|
625 |
msgstr "Det ser ud til, at licens-deaktiveringen mislykkedes."
|
626 |
|
627 |
+
#: includes/class-freemius.php:17813
|
628 |
+
#, php-format
|
629 |
msgid "Your license was successfully deactivated, you are back to the %s plan."
|
630 |
msgstr "Din licens blev deaktiveret, du er tilbage på planen %s."
|
631 |
|
632 |
+
#: includes/class-freemius.php:17814
|
633 |
msgid "O.K"
|
634 |
msgstr "O.K"
|
635 |
|
636 |
+
#: includes/class-freemius.php:17867
|
637 |
+
msgid ""
|
638 |
+
"Seems like we are having some temporary issue with your subscription "
|
639 |
+
"cancellation. Please try again in few minutes."
|
640 |
+
msgstr ""
|
641 |
+
"Seems like we are having some temporary issue with your subscription "
|
642 |
+
"cancellation. Please try again in few minutes."
|
643 |
|
644 |
+
#: includes/class-freemius.php:17876
|
645 |
+
#, php-format
|
646 |
+
msgid ""
|
647 |
+
"Your subscription was successfully cancelled. Your %s plan license will "
|
648 |
+
"expire in %s."
|
649 |
+
msgstr ""
|
650 |
+
"Your subscription was successfully cancelled. Your %s plan license will "
|
651 |
+
"expire in %s."
|
652 |
|
653 |
+
#: includes/class-freemius.php:17918
|
654 |
+
#, php-format
|
655 |
msgid "You are already running the %s in a trial mode."
|
656 |
msgstr "Du benytter allerede %s under en prøveperiode."
|
657 |
|
658 |
+
#: includes/class-freemius.php:17929
|
659 |
msgid "You already utilized a trial before."
|
660 |
msgstr "Du har allerede brugt din prøveperiode."
|
661 |
|
662 |
+
#: includes/class-freemius.php:17943
|
663 |
+
#, php-format
|
664 |
msgid "Plan %s do not exist, therefore, can't start a trial."
|
665 |
msgstr "Plan %s eksisterer ikke og kan derfor ikke starte prøveperiode."
|
666 |
|
667 |
+
#: includes/class-freemius.php:17954
|
668 |
+
#, php-format
|
669 |
msgid "Plan %s does not support a trial period."
|
670 |
msgstr "Plan %s understøtter ikke en prøveperiode."
|
671 |
|
672 |
+
#: includes/class-freemius.php:17965
|
673 |
+
#, php-format
|
674 |
msgid "None of the %s's plans supports a trial period."
|
675 |
msgstr "None of the %s's plans supports a trial period."
|
676 |
|
677 |
+
#: includes/class-freemius.php:18015
|
678 |
+
msgid ""
|
679 |
+
"It looks like you are not in trial mode anymore so there's nothing to "
|
680 |
+
"cancel :)"
|
681 |
+
msgstr ""
|
682 |
+
"Det lader ikke til du er i en prøveperiode længere, så der er ikke noget at "
|
683 |
+
"annullere :-)"
|
684 |
|
685 |
+
#: includes/class-freemius.php:18051
|
686 |
+
msgid ""
|
687 |
+
"Seems like we are having some temporary issue with your trial cancellation. "
|
688 |
+
"Please try again in few minutes."
|
689 |
+
msgstr ""
|
690 |
+
"Seems like we are having some temporary issue with your trial cancellation. "
|
691 |
+
"Please try again in few minutes."
|
692 |
|
693 |
+
#: includes/class-freemius.php:18070
|
694 |
+
#, php-format
|
695 |
msgid "Your %s free trial was successfully cancelled."
|
696 |
msgstr "Din gratis prøveperiode for %s er blevet annulleret."
|
697 |
|
698 |
+
#: includes/class-freemius.php:18377
|
699 |
+
#, php-format
|
700 |
msgid "Version %s was released."
|
701 |
msgstr "Version %s er blevet udgivet."
|
702 |
|
703 |
+
#: includes/class-freemius.php:18377
|
704 |
+
#, php-format
|
705 |
msgid "Please download %s."
|
706 |
msgstr "Download venligst %s."
|
707 |
|
708 |
+
#: includes/class-freemius.php:18384
|
709 |
+
#, php-format
|
710 |
msgid "the latest %s version here"
|
711 |
msgstr "den seneste version af %s her"
|
712 |
|
713 |
+
#: includes/class-freemius.php:18389
|
714 |
msgid "New"
|
715 |
msgstr "Ny"
|
716 |
|
717 |
+
#: includes/class-freemius.php:18394
|
718 |
msgid "Seems like you got the latest release."
|
719 |
msgstr "Det ser ud til, at du har den seneste udgivelse."
|
720 |
|
721 |
+
#: includes/class-freemius.php:18395
|
722 |
msgid "You are all good!"
|
723 |
msgstr "Det var det!"
|
724 |
|
725 |
+
#: includes/class-freemius.php:18663
|
726 |
+
#, php-format
|
727 |
+
msgid ""
|
728 |
+
"Verification mail was just sent to %s. If you can't find it after 5 min, "
|
729 |
+
"please check your spam box."
|
730 |
+
msgstr ""
|
731 |
+
"Verification mail was just sent to %s. If you can't find it after 5 min, "
|
732 |
+
"please check your spam box."
|
733 |
|
734 |
+
#: includes/class-freemius.php:18800
|
735 |
msgid "Site successfully opted in."
|
736 |
msgstr "Websted er tilmeldt."
|
737 |
|
738 |
+
#: includes/class-freemius.php:18801 includes/class-freemius.php:19612
|
739 |
msgid "Awesome"
|
740 |
msgstr "Sejt"
|
741 |
|
742 |
+
#: includes/class-freemius.php:18817 templates/forms/optout.php:32
|
743 |
+
#, php-format
|
744 |
+
msgid ""
|
745 |
+
"We appreciate your help in making the %s better by letting us track some "
|
746 |
+
"usage data."
|
747 |
+
msgstr ""
|
748 |
+
"Vi sætter pris på din hjælp med at forbedre %s ved at lade os indsamle "
|
749 |
+
"brugsdata."
|
750 |
|
751 |
+
#: includes/class-freemius.php:18818
|
752 |
msgid "Thank you!"
|
753 |
msgstr "Mange tak!"
|
754 |
|
755 |
+
#: includes/class-freemius.php:18825
|
756 |
+
#, php-format
|
757 |
msgid "We will no longer be sending any usage data of %s on %s to %s."
|
758 |
msgstr "Vi vil ikke længere indsende brugsdata af %s på %s til %s."
|
759 |
|
760 |
+
#: includes/class-freemius.php:18954
|
761 |
+
#, php-format
|
762 |
+
msgid ""
|
763 |
+
"Please check your mailbox, you should receive an email via %s to confirm the "
|
764 |
+
"ownership change. From security reasons, you must confirm the change within "
|
765 |
+
"the next 15 min. If you cannot find the email, please check your spam folder."
|
766 |
+
msgstr ""
|
767 |
+
"Please check your mailbox, you should receive an email via %s to confirm the "
|
768 |
+
"ownership change. From security reasons, you must confirm the change within "
|
769 |
+
"the next 15 min. If you cannot find the email, please check your spam folder."
|
770 |
|
771 |
+
#: includes/class-freemius.php:18960
|
772 |
+
#, php-format
|
773 |
+
msgid ""
|
774 |
+
"Thanks for confirming the ownership change. An email was just sent to %s for "
|
775 |
+
"final approval."
|
776 |
+
msgstr ""
|
777 |
+
"Thanks for confirming the ownership change. An email was just sent to %s for "
|
778 |
+
"final approval."
|
779 |
|
780 |
+
#: includes/class-freemius.php:18965
|
781 |
+
#, php-format
|
782 |
msgid "%s is the new owner of the account."
|
783 |
msgstr "%s er den nye ejer af kontoen."
|
784 |
|
785 |
+
#: includes/class-freemius.php:18967
|
786 |
msgctxt "as congratulations"
|
787 |
msgid "Congrats"
|
788 |
msgstr "Tillykke"
|
789 |
|
790 |
+
#: includes/class-freemius.php:18987
|
791 |
+
msgid ""
|
792 |
+
"Sorry, we could not complete the email update. Another user with the same "
|
793 |
+
"email is already registered."
|
794 |
+
msgstr ""
|
795 |
+
"Sorry, we could not complete the email update. Another user with the same "
|
796 |
+
"email is already registered."
|
797 |
|
798 |
+
#: includes/class-freemius.php:18988
|
799 |
+
#, php-format
|
800 |
+
msgid ""
|
801 |
+
"If you would like to give up the ownership of the %s's account to %s click "
|
802 |
+
"the Change Ownership button."
|
803 |
+
msgstr ""
|
804 |
+
"If you would like to give up the ownership of the %s's account to %s click "
|
805 |
+
"the Change Ownership button."
|
806 |
|
807 |
+
#: includes/class-freemius.php:18995
|
808 |
msgid "Change Ownership"
|
809 |
msgstr "Skift ejerskab"
|
810 |
|
811 |
+
#: includes/class-freemius.php:19003
|
812 |
+
msgid ""
|
813 |
+
"Your email was successfully updated. You should receive an email with "
|
814 |
+
"confirmation instructions in few moments."
|
815 |
+
msgstr ""
|
816 |
+
"Your email was successfully updated. You should receive an email with "
|
817 |
+
"confirmation instructions in few moments."
|
818 |
|
819 |
+
#: includes/class-freemius.php:19015
|
820 |
msgid "Please provide your full name."
|
821 |
msgstr "Indtast venligst dit fulde navn."
|
822 |
|
823 |
+
#: includes/class-freemius.php:19020
|
824 |
msgid "Your name was successfully updated."
|
825 |
msgstr "Dit navn er blevet opdateret."
|
826 |
|
827 |
+
#: includes/class-freemius.php:19081
|
828 |
+
#, php-format
|
829 |
msgid "You have successfully updated your %s."
|
830 |
msgstr "Opdatering af %s blev gennemført."
|
831 |
|
832 |
+
#: includes/class-freemius.php:19221
|
833 |
+
#, php-format
|
834 |
+
msgid ""
|
835 |
+
"Just letting you know that the add-ons information of %s is being pulled "
|
836 |
+
"from an external server."
|
837 |
+
msgstr ""
|
838 |
+
"Just letting you know that the add-ons information of %s is being pulled "
|
839 |
+
"from an external server."
|
840 |
|
841 |
+
#: includes/class-freemius.php:19222
|
842 |
msgctxt "advance notice of something that will need attention."
|
843 |
msgid "Heads up"
|
844 |
msgstr "Se her"
|
845 |
|
846 |
+
#: includes/class-freemius.php:19652
|
847 |
msgctxt "exclamation"
|
848 |
msgid "Hey"
|
849 |
msgstr "Hey"
|
850 |
|
851 |
+
#: includes/class-freemius.php:19652
|
852 |
+
#, php-format
|
853 |
+
msgid ""
|
854 |
+
"How do you like %s so far? Test all our %s premium features with a %d-day "
|
855 |
+
"free trial."
|
856 |
+
msgstr ""
|
857 |
+
"Hvad syntes du om %s indtil videre? Test alle %s premium funktioner med en "
|
858 |
+
"%d-dags gratis prøveperiode."
|
859 |
|
860 |
+
#: includes/class-freemius.php:19660
|
861 |
+
#, php-format
|
862 |
msgid "No commitment for %s days - cancel anytime!"
|
863 |
msgstr "Ingen bindinger i %s dage - annuller når som helst!"
|
864 |
|
865 |
+
#: includes/class-freemius.php:19661
|
866 |
msgid "No credit card required"
|
867 |
msgstr "Betalingskort ikke påkrævet"
|
868 |
|
869 |
+
#: includes/class-freemius.php:19668 templates/forms/trial-start.php:53
|
870 |
msgctxt "call to action"
|
871 |
msgid "Start free trial"
|
872 |
msgstr "Start gratis prøveperiode"
|
873 |
|
874 |
+
#: includes/class-freemius.php:19745
|
875 |
+
#, php-format
|
876 |
+
msgid ""
|
877 |
+
"Hey there, did you know that %s has an affiliate program? If you like the %s "
|
878 |
+
"you can become our ambassador and earn some cash!"
|
879 |
+
msgstr ""
|
880 |
+
"Hey there, did you know that %s has an affiliate program? If you like the %s "
|
881 |
+
"you can become our ambassador and earn some cash!"
|
882 |
|
883 |
+
#: includes/class-freemius.php:19754
|
884 |
msgid "Learn more"
|
885 |
msgstr "Læs mere"
|
886 |
|
887 |
+
#: includes/class-freemius.php:19904 templates/account.php:406
|
888 |
+
#: templates/account.php:509 templates/account/partials/addon.php:235
|
889 |
+
#: templates/connect.php:171 templates/connect.php:421
|
890 |
+
#: templates/forms/license-activation.php:24
|
891 |
msgid "Activate License"
|
892 |
msgstr "Aktiver licens"
|
893 |
|
894 |
+
#: includes/class-freemius.php:19905 templates/account.php:469
|
895 |
+
#: templates/account.php:508 templates/account/partials/site.php:256
|
896 |
msgid "Change License"
|
897 |
msgstr "Skift licens"
|
898 |
|
899 |
+
#: includes/class-freemius.php:19987 templates/account/partials/site.php:161
|
900 |
msgid "Opt Out"
|
901 |
msgstr "Frameld"
|
902 |
|
903 |
+
#: includes/class-freemius.php:19989 includes/class-freemius.php:19994
|
904 |
+
#: templates/account/partials/site.php:43
|
905 |
#: templates/account/partials/site.php:161
|
906 |
msgid "Opt In"
|
907 |
msgstr "Tilmeld"
|
908 |
|
909 |
+
#: includes/class-freemius.php:20218
|
910 |
+
#, php-format
|
911 |
+
msgid ""
|
912 |
+
" The paid version of %1s is already installed. Please activate it to start "
|
913 |
+
"benefiting the %2s features. %3s"
|
914 |
+
msgstr ""
|
915 |
+
" The paid version of %1s is already installed. Please activate it to start "
|
916 |
+
"benefiting the %2s features. %3s"
|
917 |
|
918 |
+
#: includes/class-freemius.php:20226
|
919 |
+
#, php-format
|
920 |
msgid "Activate %s features"
|
921 |
msgstr "Activate %s features"
|
922 |
|
923 |
+
#: includes/class-freemius.php:20239
|
924 |
msgid "Please follow these steps to complete the upgrade"
|
925 |
msgstr "Følg venligst disse trin for at færdiggøre opgraderingen"
|
926 |
|
927 |
+
#: includes/class-freemius.php:20243
|
928 |
+
#, php-format
|
929 |
msgid "Download the latest %s version"
|
930 |
msgstr "Download den seneste version af %s"
|
931 |
|
932 |
+
#: includes/class-freemius.php:20247
|
933 |
msgid "Upload and activate the downloaded version"
|
934 |
msgstr "Upload og aktiver den downloadede version"
|
935 |
|
936 |
+
#: includes/class-freemius.php:20249
|
937 |
msgid "How to upload and activate?"
|
938 |
msgstr "Upload og aktivering, hvordan?"
|
939 |
|
940 |
+
#: includes/class-freemius.php:20383
|
941 |
+
#, php-format
|
942 |
+
msgid ""
|
943 |
+
"%sClick here%s to choose the sites where you'd like to activate the license "
|
944 |
+
"on."
|
945 |
+
msgstr ""
|
946 |
+
"%sClick here%s to choose the sites where you'd like to activate the license "
|
947 |
+
"on."
|
948 |
|
949 |
+
#: includes/class-freemius.php:20544
|
950 |
msgid "Auto installation only works for opted-in users."
|
951 |
msgstr "Auto-installation fungerer kun for tilmeldte brugere."
|
952 |
|
953 |
+
#: includes/class-freemius.php:20554 includes/class-freemius.php:20587
|
954 |
+
#: includes/class-fs-plugin-updater.php:1060
|
955 |
#: includes/class-fs-plugin-updater.php:1074
|
956 |
msgid "Invalid module ID."
|
957 |
msgstr "Ugyldigt modul-ID."
|
958 |
|
959 |
+
#: includes/class-freemius.php:20563 includes/class-fs-plugin-updater.php:1096
|
960 |
msgid "Premium version already active."
|
961 |
msgstr "Premium version allerede aktiv."
|
962 |
|
963 |
+
#: includes/class-freemius.php:20570
|
964 |
msgid "You do not have a valid license to access the premium version."
|
965 |
msgstr "Du har ikke en gyldig licens til at benytte premium-versionen."
|
966 |
|
967 |
+
#: includes/class-freemius.php:20577
|
968 |
+
msgid ""
|
969 |
+
"Plugin is a \"Serviceware\" which means it does not have a premium code "
|
970 |
+
"version."
|
971 |
+
msgstr ""
|
972 |
+
"Plugin is a \"Serviceware\" which means it does not have a premium code "
|
973 |
+
"version."
|
974 |
|
975 |
+
#: includes/class-freemius.php:20595 includes/class-fs-plugin-updater.php:1095
|
976 |
msgid "Premium add-on version already installed."
|
977 |
msgstr "Premium tilføjelse er allerede installeret."
|
978 |
|
979 |
+
#: includes/class-freemius.php:20940
|
980 |
msgid "View paid features"
|
981 |
msgstr "Vis betalte features"
|
982 |
|
983 |
+
#: includes/class-freemius.php:21260
|
984 |
+
#, php-format
|
985 |
msgid "Thank you so much for using %s and its add-ons!"
|
986 |
msgstr "Thank you so much for using %s and its add-ons!"
|
987 |
|
988 |
+
#: includes/class-freemius.php:21261
|
989 |
+
#, php-format
|
990 |
msgid "Thank you so much for using %s!"
|
991 |
msgstr "Tak fordi du benytter %s!"
|
992 |
|
993 |
+
#: includes/class-freemius.php:21267
|
994 |
+
#, php-format
|
995 |
+
msgid ""
|
996 |
+
"You've already opted-in to our usage-tracking, which helps us keep improving "
|
997 |
+
"the %s."
|
998 |
+
msgstr ""
|
999 |
+
"Du er allerede tilmeldt vores brugssporing, hvilket hjælper os med at "
|
1000 |
+
"forbedre %s."
|
1001 |
|
1002 |
+
#: includes/class-freemius.php:21271
|
1003 |
msgid "Thank you so much for using our products!"
|
1004 |
msgstr "Mange tak for at benytte vores produkter!"
|
1005 |
|
1006 |
+
#: includes/class-freemius.php:21272
|
1007 |
+
msgid ""
|
1008 |
+
"You've already opted-in to our usage-tracking, which helps us keep improving "
|
1009 |
+
"them."
|
1010 |
+
msgstr ""
|
1011 |
+
"Du er allerede tilmeldt vores brugssporing, hvilket hjælper os med at "
|
1012 |
+
"forbedre dem."
|
1013 |
|
1014 |
+
#: includes/class-freemius.php:21291
|
1015 |
+
#, php-format
|
1016 |
msgid "%s and its add-ons"
|
1017 |
msgstr "%s og tilføjelser"
|
1018 |
|
1019 |
+
#: includes/class-freemius.php:21300
|
1020 |
msgid "Products"
|
1021 |
msgstr "Produkter"
|
1022 |
|
1023 |
+
#: includes/class-freemius.php:21307 templates/connect.php:272
|
1024 |
msgid "Yes"
|
1025 |
msgstr "Ja"
|
1026 |
|
1027 |
+
#: includes/class-freemius.php:21308 templates/connect.php:273
|
1028 |
msgid "send me security & feature updates, educational content and offers."
|
1029 |
+
msgstr ""
|
1030 |
+
"send mig sikkerheds- og feature-opdateringer, informativt indhold og tilbud."
|
1031 |
|
1032 |
+
#: includes/class-freemius.php:21309 templates/connect.php:278
|
1033 |
msgid "No"
|
1034 |
msgstr "Nej"
|
1035 |
|
1036 |
+
#: includes/class-freemius.php:21311 templates/connect.php:280
|
1037 |
+
#, php-format
|
1038 |
+
msgid ""
|
1039 |
+
"do %sNOT%s send me security & feature updates, educational content and "
|
1040 |
+
"offers."
|
1041 |
+
msgstr ""
|
1042 |
+
"send %sIKKE%s sikkerheds- og feature-opdateringer, informativt indhold og "
|
1043 |
+
"tilbud."
|
1044 |
|
1045 |
+
#: includes/class-freemius.php:21321
|
1046 |
+
#, php-format
|
1047 |
+
msgid ""
|
1048 |
+
"Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance "
|
1049 |
+
"requirements it is required that you provide your explicit consent, again, "
|
1050 |
+
"confirming that you are onboard 🙂"
|
1051 |
+
msgstr ""
|
1052 |
+
"Grundet krav i den nye %sEU General Data Protection Regulation (GDPR)%s, er "
|
1053 |
+
"det nødvendigt at du igen giver dit udtrykkelige samtykke og bekræfter, at "
|
1054 |
+
"du er ombord 🙂"
|
1055 |
|
1056 |
+
#: includes/class-freemius.php:21323 templates/connect.php:287
|
1057 |
+
msgid ""
|
1058 |
+
"Please let us know if you'd like us to contact you for security & feature "
|
1059 |
+
"updates, educational content, and occasional offers:"
|
1060 |
+
msgstr ""
|
1061 |
+
"Lad os vide, om vi har lov til at kontakte dig med sikkerheds- og feature-"
|
1062 |
+
"opdateringer, informativt indhold og lejlighedsvise tilbud:"
|
1063 |
|
1064 |
+
#: includes/class-freemius.php:21605
|
1065 |
msgid "License key is empty."
|
1066 |
msgstr "Licensnøglen er tom."
|
1067 |
|
1068 |
+
#: includes/class-fs-plugin-updater.php:184
|
1069 |
#: templates/forms/premium-versions-upgrade-handler.php:57
|
1070 |
msgid "Renew license"
|
1071 |
msgstr "Forny licens"
|
1072 |
|
1073 |
+
#: includes/class-fs-plugin-updater.php:189
|
1074 |
#: templates/forms/premium-versions-upgrade-handler.php:58
|
1075 |
msgid "Buy license"
|
1076 |
msgstr "Buy license"
|
1077 |
|
1078 |
#: includes/class-fs-plugin-updater.php:278
|
1079 |
+
#, php-format
|
1080 |
msgid "There is a %s of %s available."
|
1081 |
msgstr "There is a %s of %s available."
|
1082 |
|
1089 |
msgstr "Important Upgrade Notice:"
|
1090 |
|
1091 |
#: includes/class-fs-plugin-updater.php:1125
|
1092 |
+
#, php-format
|
1093 |
msgid "Installing plugin: %s"
|
1094 |
msgstr "Installerer plugin: %s"
|
1095 |
|
1098 |
msgstr "Unable to connect to the filesystem. Please confirm your credentials."
|
1099 |
|
1100 |
#: includes/class-fs-plugin-updater.php:1348
|
1101 |
+
msgid ""
|
1102 |
+
"The remote plugin package does not contain a folder with the desired slug "
|
1103 |
+
"and renaming did not work."
|
1104 |
+
msgstr ""
|
1105 |
+
"The remote plugin package does not contain a folder with the desired slug "
|
1106 |
+
"and renaming did not work."
|
1107 |
+
|
1108 |
+
#: includes/customizer/class-fs-customizer-support-section.php:55
|
1109 |
+
#: templates/plugin-info/features.php:43
|
1110 |
+
msgid "Support"
|
1111 |
+
msgstr "Support"
|
1112 |
+
|
1113 |
+
#: includes/customizer/class-fs-customizer-upsell-control.php:106
|
1114 |
+
#: templates/account.php:105 templates/account/partials/addon.php:46
|
1115 |
+
#: templates/debug.php:373
|
1116 |
+
msgctxt "as product pricing plan"
|
1117 |
+
msgid "Plan"
|
1118 |
+
msgstr "Plan"
|
1119 |
+
|
1120 |
+
#: includes/debug/class-fs-debug-bar-panel.php:48
|
1121 |
+
#: templates/debug/api-calls.php:54 templates/debug/logger.php:62
|
1122 |
+
msgctxt "milliseconds"
|
1123 |
+
msgid "ms"
|
1124 |
+
msgstr "ms"
|
1125 |
|
1126 |
+
#: includes/debug/debug-bar-start.php:41
|
1127 |
+
msgid "Freemius API"
|
1128 |
+
msgstr "Freemius API"
|
1129 |
+
|
1130 |
+
#: includes/debug/debug-bar-start.php:42
|
1131 |
+
msgid "Requests"
|
1132 |
+
msgstr "Requests"
|
1133 |
+
|
1134 |
+
#: includes/fs-plugin-info-dialog.php:369
|
1135 |
#: templates/account/partials/addon.php:292
|
1136 |
msgctxt "verb"
|
1137 |
msgid "Purchase"
|
1138 |
msgstr "Køb"
|
1139 |
|
1140 |
#: includes/fs-plugin-info-dialog.php:372
|
1141 |
+
#, php-format
|
1142 |
msgid "Start my free %s"
|
1143 |
msgstr "Start min gratis %s"
|
1144 |
|
1146 |
msgid "Install Free Version Now"
|
1147 |
msgstr "Installer gratis version nu"
|
1148 |
|
1149 |
+
#: includes/fs-plugin-info-dialog.php:414
|
1150 |
+
#: templates/account/partials/addon.php:272
|
1151 |
+
#: templates/account/partials/addon.php:322 templates/auto-installation.php:111
|
1152 |
msgid "Install Now"
|
1153 |
msgstr "Installer nu"
|
1154 |
|
1157 |
msgid "Download Latest Free Version"
|
1158 |
msgstr "Download seneste gratis version"
|
1159 |
|
1160 |
+
#: includes/fs-plugin-info-dialog.php:426 templates/account.php:80
|
1161 |
#: templates/account/partials/addon.php:21
|
1162 |
msgctxt "as download latest version"
|
1163 |
msgid "Download Latest"
|
1167 |
msgid "Install Free Version Update Now"
|
1168 |
msgstr "Installer opdatering til gratis version nu"
|
1169 |
|
1170 |
+
#: includes/fs-plugin-info-dialog.php:437 templates/account.php:460
|
1171 |
msgid "Install Update Now"
|
1172 |
msgstr "Installer opdatering nu"
|
1173 |
|
1174 |
#: includes/fs-plugin-info-dialog.php:448
|
1175 |
+
#, php-format
|
1176 |
msgid "Newer Free Version (%s) Installed"
|
1177 |
msgstr "Nyere gratis version (%s) installeret"
|
1178 |
|
1179 |
#: includes/fs-plugin-info-dialog.php:449
|
1180 |
+
#, php-format
|
1181 |
msgid "Newer Version (%s) Installed"
|
1182 |
msgstr "Nyere version (%s) installeret"
|
1183 |
|
1204 |
msgid "FAQ"
|
1205 |
msgstr "FAQ"
|
1206 |
|
1207 |
+
#: includes/fs-plugin-info-dialog.php:616
|
1208 |
#: templates/plugin-info/description.php:55
|
1209 |
msgid "Screenshots"
|
1210 |
msgstr "Skærmbilleder"
|
1234 |
msgstr "Plugin-installering"
|
1235 |
|
1236 |
#: includes/fs-plugin-info-dialog.php:716
|
1237 |
+
#, php-format
|
1238 |
msgctxt "e.g. Professional Plan"
|
1239 |
msgid "%s Plan"
|
1240 |
msgstr "%s Plan"
|
1244 |
msgid "Best"
|
1245 |
msgstr "Bedste"
|
1246 |
|
1247 |
+
#: includes/fs-plugin-info-dialog.php:748
|
1248 |
#: includes/fs-plugin-info-dialog.php:768
|
1249 |
msgctxt "as every month"
|
1250 |
msgid "Monthly"
|
1259 |
msgid "Lifetime"
|
1260 |
msgstr "Livstid"
|
1261 |
|
1262 |
+
#: includes/fs-plugin-info-dialog.php:768
|
1263 |
+
#: includes/fs-plugin-info-dialog.php:770
|
1264 |
#: includes/fs-plugin-info-dialog.php:772
|
1265 |
+
#, php-format
|
1266 |
msgctxt "e.g. billed monthly"
|
1267 |
msgid "Billed %s"
|
1268 |
msgstr "Faktureret %s"
|
1286 |
msgstr "Ubegrænsede licenser"
|
1287 |
|
1288 |
#: includes/fs-plugin-info-dialog.php:782
|
1289 |
+
#, php-format
|
1290 |
msgid "Up to %s Sites"
|
1291 |
msgstr "Op til %s websteder"
|
1292 |
|
1293 |
+
#: includes/fs-plugin-info-dialog.php:792 templates/plugin-info/features.php:82
|
|
|
1294 |
msgctxt "as monthly period"
|
1295 |
msgid "mo"
|
1296 |
msgstr "md"
|
1297 |
|
1298 |
+
#: includes/fs-plugin-info-dialog.php:799 templates/plugin-info/features.php:80
|
|
|
1299 |
msgctxt "as annual period"
|
1300 |
msgid "year"
|
1301 |
msgstr "år"
|
1306 |
msgstr "Pris"
|
1307 |
|
1308 |
#: includes/fs-plugin-info-dialog.php:901
|
1309 |
+
#, php-format
|
1310 |
msgid "Save %s"
|
1311 |
msgstr "Spar %s"
|
1312 |
|
1313 |
#: includes/fs-plugin-info-dialog.php:911
|
1314 |
+
#, php-format
|
1315 |
msgid "No commitment for %s - cancel anytime"
|
1316 |
msgstr "Ingen bindinger ved %s - annuller når som helst"
|
1317 |
|
1318 |
#: includes/fs-plugin-info-dialog.php:914
|
1319 |
+
#, php-format
|
1320 |
msgid "After your free %s, pay as little as %s"
|
1321 |
msgstr "Efter din gratis %s er prisen kun %s"
|
1322 |
|
1324 |
msgid "Details"
|
1325 |
msgstr "Detaljer"
|
1326 |
|
1327 |
+
#: includes/fs-plugin-info-dialog.php:929 templates/account.php:91
|
1328 |
+
#: templates/account/partials/addon.php:32 templates/debug.php:203
|
1329 |
+
#: templates/debug.php:240 templates/debug.php:454
|
1330 |
msgctxt "product version"
|
1331 |
msgid "Version"
|
1332 |
msgstr "Version"
|
1340 |
msgid "Last Updated"
|
1341 |
msgstr "Senest opdateret"
|
1342 |
|
1343 |
+
#: includes/fs-plugin-info-dialog.php:948 templates/account.php:376
|
1344 |
+
#, php-format
|
1345 |
msgctxt "x-ago"
|
1346 |
msgid "%s ago"
|
1347 |
msgstr "%s siden"
|
1351 |
msgstr "Kræver WordPress-version"
|
1352 |
|
1353 |
#: includes/fs-plugin-info-dialog.php:958
|
1354 |
+
#, php-format
|
1355 |
msgid "%s or higher"
|
1356 |
msgstr "%s eller højere"
|
1357 |
|
1364 |
msgstr "Downloadet"
|
1365 |
|
1366 |
#: includes/fs-plugin-info-dialog.php:977
|
1367 |
+
#, php-format
|
1368 |
msgid "%s time"
|
1369 |
msgstr "%s gang"
|
1370 |
|
1371 |
#: includes/fs-plugin-info-dialog.php:979
|
1372 |
+
#, php-format
|
1373 |
msgid "%s times"
|
1374 |
msgstr "%s gange"
|
1375 |
|
1381 |
msgid "Plugin Homepage"
|
1382 |
msgstr "Plugin-websted"
|
1383 |
|
1384 |
+
#: includes/fs-plugin-info-dialog.php:1005
|
1385 |
#: includes/fs-plugin-info-dialog.php:1087
|
1386 |
msgid "Donate to this plugin"
|
1387 |
msgstr "Donér til dette plugin"
|
1391 |
msgstr "Gennemsnitlig vurdering"
|
1392 |
|
1393 |
#: includes/fs-plugin-info-dialog.php:1019
|
1394 |
+
#, php-format
|
1395 |
msgid "based on %s"
|
1396 |
msgstr "baseret på %s"
|
1397 |
|
1398 |
#: includes/fs-plugin-info-dialog.php:1023
|
1399 |
+
#, php-format
|
1400 |
msgid "%s rating"
|
1401 |
msgstr "%s vurdering"
|
1402 |
|
1403 |
#: includes/fs-plugin-info-dialog.php:1025
|
1404 |
+
#, php-format
|
1405 |
msgid "%s ratings"
|
1406 |
msgstr "%s vurderinger"
|
1407 |
|
1408 |
#: includes/fs-plugin-info-dialog.php:1040
|
1409 |
+
#, php-format
|
1410 |
msgid "%s star"
|
1411 |
msgstr "%s stjerne"
|
1412 |
|
1413 |
#: includes/fs-plugin-info-dialog.php:1042
|
1414 |
+
#, php-format
|
1415 |
msgid "%s stars"
|
1416 |
msgstr "%s stjerner"
|
1417 |
|
1418 |
#: includes/fs-plugin-info-dialog.php:1053
|
1419 |
+
#, php-format
|
1420 |
msgid "Click to see reviews that provided a rating of %s"
|
1421 |
msgstr "Click to see reviews that provided a rating of %s"
|
1422 |
|
1424 |
msgid "Contributors"
|
1425 |
msgstr "Bidragsydere"
|
1426 |
|
1427 |
+
#: includes/fs-plugin-info-dialog.php:1095
|
1428 |
#: includes/fs-plugin-info-dialog.php:1097
|
1429 |
msgid "Warning"
|
1430 |
msgstr "Advarsel"
|
1431 |
|
1432 |
#: includes/fs-plugin-info-dialog.php:1095
|
1433 |
msgid "This plugin has not been tested with your current version of WordPress."
|
1434 |
+
msgstr ""
|
1435 |
+
"Dette plugin er ikke blevet testet med din nuværende version af WordPress."
|
1436 |
|
1437 |
#: includes/fs-plugin-info-dialog.php:1097
|
1438 |
+
msgid ""
|
1439 |
+
"This plugin has not been marked as compatible with your version of WordPress."
|
1440 |
+
msgstr ""
|
1441 |
+
"This plugin has not been marked as compatible with your version of WordPress."
|
1442 |
|
1443 |
#: includes/fs-plugin-info-dialog.php:1116
|
1444 |
msgid "Paid add-on must be deployed to Freemius."
|
1448 |
msgid "Add-on must be deployed to WordPress.org or Freemius."
|
1449 |
msgstr "Add-on must be deployed to WordPress.org or Freemius."
|
1450 |
|
1451 |
+
#: templates/account.php:81 templates/account/partials/addon.php:22
|
|
|
1452 |
#: templates/account/partials/site.php:295
|
1453 |
+
#: templates/forms/subscription-cancellation.php:96
|
1454 |
msgid "Downgrading your plan"
|
1455 |
msgstr "Downgrading your plan"
|
1456 |
|
1457 |
+
#: templates/account.php:82 templates/account/partials/addon.php:23
|
|
|
1458 |
#: templates/account/partials/site.php:296
|
1459 |
+
#: templates/forms/subscription-cancellation.php:97
|
1460 |
msgid "Cancelling the subscription"
|
1461 |
msgstr "Cancelling the subscription"
|
1462 |
|
1463 |
+
#: templates/account.php:84 templates/account/partials/addon.php:25
|
|
|
|
|
|
|
1464 |
#: templates/account/partials/site.php:298
|
1465 |
+
#: templates/forms/subscription-cancellation.php:99
|
1466 |
+
#, php-format
|
1467 |
+
msgid ""
|
1468 |
+
"%1s will immediately stop all future recurring payments and your %s plan "
|
1469 |
+
"license will expire in %s."
|
1470 |
+
msgstr ""
|
1471 |
+
"%1s will immediately stop all future recurring payments and your %s plan "
|
1472 |
+
"license will expire in %s."
|
1473 |
|
1474 |
+
#: templates/account.php:85 templates/account/partials/addon.php:26
|
|
|
1475 |
#: templates/account/partials/site.php:299
|
1476 |
+
#: templates/forms/subscription-cancellation.php:100
|
1477 |
+
msgid ""
|
1478 |
+
"Please note that we will not be able to grandfather outdated pricing for "
|
1479 |
+
"renewals/new subscriptions after a cancellation. If you choose to renew the "
|
1480 |
+
"subscription manually in the future, after a price increase, which typically "
|
1481 |
+
"occurs once a year, you will be charged the updated price."
|
1482 |
+
msgstr ""
|
1483 |
+
"Please note that we will not be able to grandfather outdated pricing for "
|
1484 |
+
"renewals/new subscriptions after a cancellation. If you choose to renew the "
|
1485 |
+
"subscription manually in the future, after a price increase, which typically "
|
1486 |
+
"occurs once a year, you will be charged the updated price."
|
1487 |
|
1488 |
+
#: templates/account.php:86 templates/account/partials/addon.php:27
|
1489 |
+
#: templates/forms/subscription-cancellation.php:106
|
1490 |
+
msgid ""
|
1491 |
+
"Cancelling the trial will immediately block access to all premium features. "
|
1492 |
+
"Are you sure?"
|
1493 |
+
msgstr ""
|
1494 |
+
"Cancelling the trial will immediately block access to all premium features. "
|
1495 |
+
"Are you sure?"
|
1496 |
|
1497 |
+
#: templates/account.php:87 templates/account/partials/addon.php:28
|
|
|
1498 |
#: templates/account/partials/site.php:300
|
1499 |
+
#: templates/forms/subscription-cancellation.php:101
|
1500 |
+
#, php-format
|
1501 |
+
msgid ""
|
1502 |
+
"You can still enjoy all %s features but you will not have access to %s "
|
1503 |
+
"security & feature updates, nor support."
|
1504 |
+
msgstr ""
|
1505 |
+
"You can still enjoy all %s features but you will not have access to %s "
|
1506 |
+
"security & feature updates, nor support."
|
1507 |
|
1508 |
+
#: templates/account.php:88 templates/account/partials/addon.php:29
|
|
|
1509 |
#: templates/account/partials/site.php:301
|
1510 |
+
#: templates/forms/subscription-cancellation.php:102
|
1511 |
+
#, php-format
|
1512 |
+
msgid ""
|
1513 |
+
"Once your license expires you can still use the Free version but you will "
|
1514 |
+
"NOT have access to the %s features."
|
1515 |
+
msgstr ""
|
1516 |
+
"Once your license expires you can still use the Free version but you will "
|
1517 |
+
"NOT have access to the %s features."
|
1518 |
|
1519 |
+
#: templates/account.php:90
|
1520 |
+
#: templates/account/partials/activate-license-button.php:31
|
|
|
1521 |
#: templates/account/partials/addon.php:31
|
1522 |
+
#, php-format
|
1523 |
msgid "Activate %s Plan"
|
1524 |
msgstr "Aktiver %s plan"
|
1525 |
|
1526 |
+
#: templates/account.php:93 templates/account/partials/addon.php:34
|
|
|
1527 |
#: templates/account/partials/site.php:275
|
1528 |
+
#, php-format
|
1529 |
msgid "Auto renews in %s"
|
1530 |
msgstr "Auto-fornyer om %s"
|
1531 |
|
1532 |
+
#: templates/account.php:95 templates/account/partials/addon.php:36
|
|
|
1533 |
#: templates/account/partials/site.php:277
|
1534 |
+
#, php-format
|
1535 |
msgid "Expires in %s"
|
1536 |
msgstr "Udløber om %s"
|
1537 |
|
1538 |
+
#: templates/account.php:96 templates/account/partials/addon.php:37
|
1539 |
msgctxt "as synchronize license"
|
1540 |
msgid "Sync License"
|
1541 |
msgstr "Synkroniser licens"
|
1542 |
|
1543 |
+
#: templates/account.php:97 templates/account/partials/addon.php:38
|
1544 |
msgid "Cancel Trial"
|
1545 |
msgstr "Annuller prøveperiode"
|
1546 |
|
1547 |
+
#: templates/account.php:98 templates/account/partials/addon.php:39
|
1548 |
msgid "Change Plan"
|
1549 |
msgstr "Skift plan"
|
1550 |
|
1551 |
+
#: templates/account.php:99 templates/account/partials/addon.php:40
|
1552 |
msgctxt "verb"
|
1553 |
msgid "Upgrade"
|
1554 |
msgstr "Opgrader"
|
1555 |
|
1556 |
+
#: templates/account.php:101 templates/account/partials/addon.php:42
|
1557 |
#: templates/account/partials/site.php:302
|
1558 |
msgctxt "verb"
|
1559 |
msgid "Downgrade"
|
1560 |
msgstr "Nedgrader"
|
1561 |
|
1562 |
+
#: templates/account.php:103 templates/account/partials/addon.php:44
|
1563 |
+
#: templates/account/partials/site.php:31 templates/add-ons.php:130
|
1564 |
+
#: templates/plugin-info/features.php:72
|
|
|
1565 |
msgid "Free"
|
1566 |
msgstr "Gratis"
|
1567 |
|
1568 |
+
#: templates/account.php:104 templates/account/partials/addon.php:45
|
1569 |
msgid "Activate"
|
1570 |
msgstr "Aktiver"
|
1571 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1572 |
#: templates/account.php:158
|
1573 |
msgid "Free Trial"
|
1574 |
msgstr "Gratis prøveperiode"
|
1578 |
msgstr "Kontodetaljer"
|
1579 |
|
1580 |
#: templates/account.php:179
|
1581 |
+
#, php-format
|
1582 |
+
msgid ""
|
1583 |
+
"Deleting the account will automatically deactivate your %s plan license so "
|
1584 |
+
"you can use it on other sites. If you want to terminate the recurring "
|
1585 |
+
"payments as well, click the \"Cancel\" button, and first \"Downgrade\" your "
|
1586 |
+
"account. Are you sure you would like to continue with the deletion?"
|
1587 |
+
msgstr ""
|
1588 |
+
"Deleting the account will automatically deactivate your %s plan license so "
|
1589 |
+
"you can use it on other sites. If you want to terminate the recurring "
|
1590 |
+
"payments as well, click the \"Cancel\" button, and first \"Downgrade\" your "
|
1591 |
+
"account. Are you sure you would like to continue with the deletion?"
|
1592 |
|
1593 |
#: templates/account.php:181
|
1594 |
+
#, php-format
|
1595 |
+
msgid ""
|
1596 |
+
"Deletion is not temporary. Only delete if you no longer want to use this %s "
|
1597 |
+
"anymore. Are you sure you would like to continue with the deletion?"
|
1598 |
+
msgstr ""
|
1599 |
+
"Deletion is not temporary. Only delete if you no longer want to use this %s "
|
1600 |
+
"anymore. Are you sure you would like to continue with the deletion?"
|
1601 |
|
1602 |
#: templates/account.php:184
|
1603 |
msgid "Delete Account"
|
1604 |
msgstr "Slet konto"
|
1605 |
|
1606 |
+
#: templates/account.php:196 templates/account/partials/addon.php:159
|
1607 |
#: templates/account/partials/deactivate-license-button.php:35
|
1608 |
msgid "Deactivate License"
|
1609 |
msgstr "Deaktiver licens"
|
1610 |
|
1611 |
+
#: templates/account.php:219 templates/forms/subscription-cancellation.php:125
|
1612 |
msgid "Are you sure you want to proceed?"
|
1613 |
msgstr "Er du sikker på, du vil fortsætte?"
|
1614 |
|
1615 |
+
#: templates/account.php:219 templates/account/partials/addon.php:182
|
1616 |
msgid "Cancel Subscription"
|
1617 |
msgstr "Annuller abonnement"
|
1618 |
|
1621 |
msgid "Sync"
|
1622 |
msgstr "Synkroniser"
|
1623 |
|
1624 |
+
#: templates/account.php:261 templates/debug.php:489
|
1625 |
msgid "Name"
|
1626 |
msgstr "Navn"
|
1627 |
|
1628 |
+
#: templates/account.php:267 templates/debug.php:490
|
1629 |
msgid "Email"
|
1630 |
msgstr "E-mail"
|
1631 |
|
1632 |
+
#: templates/account.php:274 templates/debug.php:372 templates/debug.php:528
|
1633 |
msgid "User ID"
|
1634 |
msgstr "Bruger-ID"
|
1635 |
|
1641 |
msgid "No ID"
|
1642 |
msgstr "Intet ID"
|
1643 |
|
1644 |
+
#: templates/account.php:290 templates/account/partials/site.php:219
|
1645 |
+
#: templates/debug.php:245 templates/debug.php:374 templates/debug.php:455
|
1646 |
+
#: templates/debug.php:492
|
1647 |
msgid "Public Key"
|
1648 |
msgstr "Offentlig nøgle"
|
1649 |
|
1650 |
+
#: templates/account.php:296 templates/account/partials/site.php:231
|
1651 |
+
#: templates/debug.php:375 templates/debug.php:456 templates/debug.php:493
|
1652 |
msgid "Secret Key"
|
1653 |
msgstr "Privat nøgle"
|
1654 |
|
1657 |
msgid "No Secret"
|
1658 |
msgstr "Ingen privat nøgle"
|
1659 |
|
1660 |
+
#: templates/account.php:318 templates/account/partials/site.php:112
|
1661 |
#: templates/account/partials/site.php:114
|
1662 |
msgid "Trial"
|
1663 |
msgstr "Prøveperiode"
|
1664 |
|
1665 |
+
#: templates/account.php:337 templates/account/partials/site.php:248
|
1666 |
+
#: templates/debug.php:533
|
1667 |
msgid "License Key"
|
1668 |
msgstr "Licensnøgle"
|
1669 |
|
1671 |
msgid "not verified"
|
1672 |
msgstr "ikke verificeret"
|
1673 |
|
1674 |
+
#: templates/account.php:376 templates/account/partials/addon.php:120
|
1675 |
msgid "Expired"
|
1676 |
msgstr "Udløbet"
|
1677 |
|
1688 |
msgstr "Verificer e-mail"
|
1689 |
|
1690 |
#: templates/account.php:453
|
1691 |
+
#, php-format
|
1692 |
msgid "Download %s Version"
|
1693 |
msgstr "Download 1%s version"
|
1694 |
|
1695 |
+
#: templates/account.php:467 templates/account.php:649
|
1696 |
+
#: templates/account/partials/site.php:237
|
1697 |
#: templates/account/partials/site.php:255
|
1698 |
msgctxt "verb"
|
1699 |
msgid "Show"
|
1700 |
msgstr "Vis"
|
1701 |
|
1702 |
#: templates/account.php:481
|
1703 |
+
#, php-format
|
1704 |
msgid "What is your %s?"
|
1705 |
msgstr "Angiv venligst %s?"
|
1706 |
|
1707 |
+
#: templates/account.php:489 templates/account/billing.php:27
|
1708 |
msgctxt "verb"
|
1709 |
msgid "Edit"
|
1710 |
msgstr "Rediger"
|
1717 |
msgid "Search by address"
|
1718 |
msgstr "Søg efter adresse"
|
1719 |
|
1720 |
+
#: templates/account.php:522 templates/account.php:570
|
1721 |
+
#: templates/account/payments.php:35 templates/debug.php:238
|
1722 |
+
#: templates/debug.php:366 templates/debug.php:451 templates/debug.php:488
|
1723 |
+
#: templates/debug.php:526 templates/debug.php:599
|
1724 |
+
#: templates/debug/logger.php:21
|
1725 |
msgid "ID"
|
1726 |
msgstr "ID"
|
1727 |
|
1728 |
+
#: templates/account.php:523 templates/debug.php:369
|
1729 |
msgid "Address"
|
1730 |
msgstr "Adresse"
|
1731 |
|
1748 |
msgstr "Skjul"
|
1749 |
|
1750 |
#: templates/account.php:686
|
1751 |
+
#, php-format
|
1752 |
msgid "Cancelling %s"
|
1753 |
msgstr "Cancelling %s"
|
1754 |
|
1755 |
+
#: templates/account.php:686 templates/account.php:703
|
|
|
1756 |
#: templates/forms/deactivation/form.php:117
|
1757 |
+
#: templates/forms/subscription-cancellation.php:27
|
1758 |
msgid "trial"
|
1759 |
msgstr "trial"
|
1760 |
|
1761 |
+
#: templates/account.php:701 templates/forms/deactivation/form.php:134
|
1762 |
+
#, php-format
|
1763 |
msgid "Cancelling %s..."
|
1764 |
msgstr "Cancelling %s..."
|
1765 |
|
1766 |
+
#: templates/account.php:704 templates/forms/deactivation/form.php:118
|
1767 |
+
#: templates/forms/subscription-cancellation.php:28
|
1768 |
msgid "subscription"
|
1769 |
msgstr "subscription"
|
1770 |
|
1771 |
#: templates/account.php:718
|
1772 |
+
msgid ""
|
1773 |
+
"Deactivating your license will block all premium features, but will enable "
|
1774 |
+
"activating the license on another site. Are you sure you want to proceed?"
|
1775 |
+
msgstr ""
|
1776 |
+
"Deactivating your license will block all premium features, but will enable "
|
1777 |
+
"activating the license on another site. Are you sure you want to proceed?"
|
1778 |
+
|
1779 |
+
#: templates/account/billing.php:28
|
1780 |
+
msgctxt "verb"
|
1781 |
+
msgid "Update"
|
1782 |
+
msgstr "Opdater"
|
1783 |
+
|
1784 |
+
#: templates/account/billing.php:39
|
1785 |
+
msgid "Billing"
|
1786 |
+
msgstr "Betaling"
|
1787 |
+
|
1788 |
+
#: templates/account/billing.php:44
|
1789 |
+
msgid "Business name"
|
1790 |
+
msgstr "Firmanavn"
|
1791 |
+
|
1792 |
+
#: templates/account/billing.php:45
|
1793 |
+
msgid "Tax / VAT ID"
|
1794 |
+
msgstr "Moms / VAT ID"
|
1795 |
+
|
1796 |
+
#: templates/account/billing.php:48 templates/account/billing.php:49
|
1797 |
+
#, php-format
|
1798 |
+
msgid "Address Line %d"
|
1799 |
+
msgstr "Adresselinje %d"
|
1800 |
+
|
1801 |
+
#: templates/account/billing.php:52
|
1802 |
+
msgid "City"
|
1803 |
+
msgstr "By"
|
1804 |
+
|
1805 |
+
#: templates/account/billing.php:52
|
1806 |
+
msgid "Town"
|
1807 |
+
msgstr "By"
|
1808 |
+
|
1809 |
+
#: templates/account/billing.php:53
|
1810 |
+
msgid "ZIP / Postal Code"
|
1811 |
+
msgstr "ZIP / Postnummer"
|
1812 |
+
|
1813 |
+
#: templates/account/billing.php:308
|
1814 |
+
msgid "Country"
|
1815 |
+
msgstr "Land"
|
1816 |
+
|
1817 |
+
#: templates/account/billing.php:310
|
1818 |
+
msgid "Select Country"
|
1819 |
+
msgstr "Vælg land"
|
1820 |
+
|
1821 |
+
#: templates/account/billing.php:317 templates/account/billing.php:318
|
1822 |
+
msgid "State"
|
1823 |
+
msgstr "Stat"
|
1824 |
+
|
1825 |
+
#: templates/account/billing.php:317 templates/account/billing.php:318
|
1826 |
+
msgid "Province"
|
1827 |
+
msgstr "Provins"
|
1828 |
+
|
1829 |
+
#: templates/account/partials/activate-license-button.php:46
|
1830 |
+
msgid "Localhost"
|
1831 |
+
msgstr "Localhost"
|
1832 |
+
|
1833 |
+
#: templates/account/partials/activate-license-button.php:50
|
1834 |
+
#, php-format
|
1835 |
+
msgctxt "as 5 licenses left"
|
1836 |
+
msgid "%s left"
|
1837 |
+
msgstr "%s tilbage"
|
1838 |
+
|
1839 |
+
#: templates/account/partials/activate-license-button.php:51
|
1840 |
+
msgid "Last license"
|
1841 |
+
msgstr "Seneste license"
|
1842 |
+
|
1843 |
+
#: templates/account/partials/addon.php:115
|
1844 |
+
msgid "Cancelled"
|
1845 |
+
msgstr "Annulleret"
|
1846 |
+
|
1847 |
+
#: templates/account/partials/addon.php:125
|
1848 |
+
msgid "No expiration"
|
1849 |
+
msgstr "Udløber ikke"
|
1850 |
+
|
1851 |
+
#: templates/account/partials/addon.php:264
|
1852 |
+
#: templates/account/partials/addon.php:317
|
1853 |
+
msgid "Activate this add-on"
|
1854 |
+
msgstr "Aktiver denne tilføjelse"
|
1855 |
+
|
1856 |
+
#: templates/account/partials/addon.php:339 templates/debug.php:433
|
1857 |
+
#: templates/debug.php:511
|
1858 |
+
msgctxt "verb"
|
1859 |
+
msgid "Delete"
|
1860 |
+
msgstr "Slet"
|
1861 |
+
|
1862 |
+
#: templates/account/partials/site.php:148 templates/debug.php:368
|
1863 |
+
msgid "Blog ID"
|
1864 |
+
msgstr "Blog-ID"
|
1865 |
+
|
1866 |
+
#: templates/account/partials/site.php:181
|
1867 |
+
msgid "Owner Name"
|
1868 |
+
msgstr "Ejer-navn"
|
1869 |
+
|
1870 |
+
#: templates/account/partials/site.php:193
|
1871 |
+
msgid "Owner Email"
|
1872 |
+
msgstr "E-mailadresse for ejer"
|
1873 |
+
|
1874 |
+
#: templates/account/partials/site.php:205
|
1875 |
+
msgid "Owner ID"
|
1876 |
+
msgstr "Ejer-ID"
|
1877 |
+
|
1878 |
+
#: templates/account/partials/site.php:270
|
1879 |
+
msgid "Subscription"
|
1880 |
+
msgstr "Abonnement"
|
1881 |
+
|
1882 |
+
#: templates/account/payments.php:29
|
1883 |
+
msgid "Payments"
|
1884 |
+
msgstr "Betalinger"
|
1885 |
+
|
1886 |
+
#: templates/account/payments.php:36
|
1887 |
+
msgid "Date"
|
1888 |
+
msgstr "Dato"
|
1889 |
+
|
1890 |
+
#: templates/account/payments.php:37
|
1891 |
+
msgid "Amount"
|
1892 |
+
msgstr "Beløb"
|
1893 |
+
|
1894 |
+
#: templates/account/payments.php:38 templates/account/payments.php:50
|
1895 |
+
msgid "Invoice"
|
1896 |
+
msgstr "Faktura"
|
1897 |
|
1898 |
#: templates/add-ons.php:36
|
1899 |
+
#, php-format
|
1900 |
msgid "Add Ons for %s"
|
1901 |
msgstr "Tilføjelser til %s"
|
1902 |
|
1903 |
#: templates/add-ons.php:44
|
1904 |
+
msgid ""
|
1905 |
+
"We could'nt load the add-ons list. It's probably an issue on our side, "
|
1906 |
+
"please try to come back in few minutes."
|
1907 |
+
msgstr ""
|
1908 |
+
"We could'nt load the add-ons list. It's probably an issue on our side, "
|
1909 |
+
"please try to come back in few minutes."
|
1910 |
|
1911 |
#: templates/add-ons.php:139
|
1912 |
msgid "View details"
|
1913 |
msgstr "Vis detaljer"
|
1914 |
|
1915 |
+
#: templates/admin-notice.php:13 templates/forms/license-activation.php:208
|
1916 |
#: templates/forms/resend-key.php:77
|
1917 |
msgctxt "as close a window"
|
1918 |
msgid "Dismiss"
|
1919 |
msgstr "Fjern"
|
1920 |
|
1921 |
#: templates/auto-installation.php:45
|
1922 |
+
#, php-format
|
1923 |
msgid "%s sec"
|
1924 |
msgstr "1%s sek"
|
1925 |
|
1928 |
msgstr "Automatisk installering"
|
1929 |
|
1930 |
#: templates/auto-installation.php:93
|
1931 |
+
#, php-format
|
1932 |
+
msgid ""
|
1933 |
+
"An automated download and installation of %s (paid version) from %s will "
|
1934 |
+
"start in %s. If you would like to do it manually - click the cancellation "
|
1935 |
+
"button now."
|
1936 |
+
msgstr ""
|
1937 |
+
"An automated download and installation of %s (paid version) from %s will "
|
1938 |
+
"start in %s. If you would like to do it manually - click the cancellation "
|
1939 |
+
"button now."
|
1940 |
|
1941 |
#: templates/auto-installation.php:104
|
1942 |
+
msgid ""
|
1943 |
+
"The installation process has started and may take a few minutes to complete. "
|
1944 |
+
"Please wait until it is done - do not refresh this page."
|
1945 |
+
msgstr ""
|
1946 |
+
"The installation process has started and may take a few minutes to complete. "
|
1947 |
+
"Please wait until it is done - do not refresh this page."
|
1948 |
+
|
1949 |
#: templates/auto-installation.php:109
|
1950 |
msgid "Cancel Installation"
|
1951 |
msgstr "Annuller installering"
|
1958 |
msgid "PCI compliant"
|
1959 |
msgstr "PCI compliant"
|
1960 |
|
|
|
1961 |
#: templates/connect.php:112
|
1962 |
+
#, php-format
|
1963 |
msgctxt "greeting"
|
1964 |
msgid "Hey %s,"
|
1965 |
msgstr "Hey %s,"
|
1973 |
msgstr "Gensend e-mail om aktivering"
|
1974 |
|
1975 |
#: templates/connect.php:162
|
1976 |
+
#, php-format
|
1977 |
msgid "Thanks %s!"
|
1978 |
msgstr "Tak %s!"
|
1979 |
|
1980 |
+
#: templates/connect.php:172 templates/forms/license-activation.php:43
|
1981 |
msgid "Agree & Activate License"
|
1982 |
msgstr "Accepter & aktiver licens"
|
1983 |
|
1984 |
#: templates/connect.php:181
|
1985 |
+
#, php-format
|
1986 |
+
msgid ""
|
1987 |
+
"Thanks for purchasing %s! To get started, please enter your license key:"
|
1988 |
+
msgstr ""
|
1989 |
+
"Tak for at købe %s! For at komme i gang, venligst indtast din licensnøgle:"
|
1990 |
|
1991 |
#: templates/connect.php:188
|
1992 |
+
#, php-format
|
1993 |
+
msgid ""
|
1994 |
+
"Never miss an important update - opt in to our security & feature updates "
|
1995 |
+
"notifications, educational content, offers, and non-sensitive diagnostic "
|
1996 |
+
"tracking with %4$s."
|
1997 |
+
msgstr ""
|
1998 |
+
"Never miss an important update - opt in to our security & feature updates "
|
1999 |
+
"notifications, educational content, offers, and non-sensitive diagnostic "
|
2000 |
+
"tracking with %4$s."
|
2001 |
|
2002 |
#: templates/connect.php:189
|
2003 |
+
#, php-format
|
2004 |
+
msgid ""
|
2005 |
+
"Never miss an important update - opt in to our security and feature updates "
|
2006 |
+
"notifications, and non-sensitive diagnostic tracking with %4$s."
|
2007 |
+
msgstr ""
|
2008 |
+
"Never miss an important update - opt in to our security and feature updates "
|
2009 |
+
"notifications, and non-sensitive diagnostic tracking with %4$s."
|
2010 |
|
2011 |
#: templates/connect.php:195
|
2012 |
+
#, php-format
|
2013 |
+
msgid ""
|
2014 |
+
"Never miss an important update - opt in to our security & feature updates "
|
2015 |
+
"notifications, educational content, offers, and non-sensitive diagnostic "
|
2016 |
+
"tracking with %4$s. If you skip this, that's okay! %1$s will still work just "
|
2017 |
+
"fine."
|
2018 |
+
msgstr ""
|
2019 |
+
"Never miss an important update - opt in to our security & feature updates "
|
2020 |
+
"notifications, educational content, offers, and non-sensitive diagnostic "
|
2021 |
+
"tracking with %4$s. If you skip this, that's okay! %1$s will still work just "
|
2022 |
+
"fine."
|
2023 |
|
2024 |
#: templates/connect.php:196
|
2025 |
+
#, php-format
|
2026 |
+
msgid ""
|
2027 |
+
"Never miss an important update - opt in to our security & feature updates "
|
2028 |
+
"notifications, and non-sensitive diagnostic tracking with %4$s. If you skip "
|
2029 |
+
"this, that's okay! %1$s will still work just fine."
|
2030 |
+
msgstr ""
|
2031 |
+
"Never miss an important update - opt in to our security & feature updates "
|
2032 |
+
"notifications, and non-sensitive diagnostic tracking with %4$s. If you skip "
|
2033 |
+
"this, that's okay! %1$s will still work just fine."
|
2034 |
|
2035 |
#: templates/connect.php:230
|
2036 |
msgid "We're excited to introduce the Freemius network-level integration."
|
2037 |
msgstr "We're excited to introduce the Freemius network-level integration."
|
2038 |
|
2039 |
#: templates/connect.php:233
|
2040 |
+
#, php-format
|
2041 |
+
msgid ""
|
2042 |
+
"During the update process we detected %d site(s) that are still pending "
|
2043 |
+
"license activation."
|
2044 |
+
msgstr ""
|
2045 |
+
"During the update process we detected %d site(s) that are still pending "
|
2046 |
+
"license activation."
|
2047 |
|
2048 |
#: templates/connect.php:235
|
2049 |
+
#, php-format
|
2050 |
+
msgid ""
|
2051 |
+
"If you'd like to use the %s on those sites, please enter your license key "
|
2052 |
+
"below and click the activation button."
|
2053 |
+
msgstr ""
|
2054 |
+
"If you'd like to use the %s on those sites, please enter your license key "
|
2055 |
+
"below and click the activation button."
|
2056 |
|
2057 |
#: templates/connect.php:237
|
2058 |
+
#, php-format
|
2059 |
msgid "%s's paid features"
|
2060 |
msgstr "%s's paid features"
|
2061 |
|
2062 |
#: templates/connect.php:242
|
2063 |
+
#, php-format
|
2064 |
+
msgid ""
|
2065 |
+
"Alternatively, you can skip it for now and activate the license later, in "
|
2066 |
+
"your %s's network-level Account page."
|
2067 |
+
msgstr ""
|
2068 |
+
"Alternatively, you can skip it for now and activate the license later, in "
|
2069 |
+
"your %s's network-level Account page."
|
2070 |
|
2071 |
#: templates/connect.php:244
|
2072 |
+
#, php-format
|
2073 |
+
msgid ""
|
2074 |
+
"During the update process we detected %s site(s) in the network that are "
|
2075 |
+
"still pending your attention."
|
2076 |
+
msgstr ""
|
2077 |
+
"During the update process we detected %s site(s) in the network that are "
|
2078 |
+
"still pending your attention."
|
2079 |
|
2080 |
+
#: templates/connect.php:253 templates/forms/license-activation.php:46
|
2081 |
msgid "License key"
|
2082 |
msgstr "Licensnøgle"
|
2083 |
|
2084 |
+
#: templates/connect.php:256 templates/forms/license-activation.php:19
|
2085 |
msgid "Can't find your license key?"
|
2086 |
msgstr "Kan du ikke finde din licensnøgle?"
|
2087 |
|
2088 |
+
#: templates/connect.php:315 templates/connect.php:630
|
2089 |
#: templates/forms/deactivation/retry-skip.php:20
|
2090 |
msgctxt "verb"
|
2091 |
msgid "Skip"
|
2096 |
msgstr "Delegate to Site Admins"
|
2097 |
|
2098 |
#: templates/connect.php:318
|
2099 |
+
msgid ""
|
2100 |
+
"If you click it, this decision will be delegated to the sites administrators."
|
2101 |
+
msgstr ""
|
2102 |
+
"If you click it, this decision will be delegated to the sites administrators."
|
2103 |
|
2104 |
#: templates/connect.php:346
|
2105 |
msgid "Your Profile Overview"
|
2121 |
msgid "Admin Notices"
|
2122 |
msgstr "Admin-meddelelser"
|
2123 |
|
2124 |
+
#: templates/connect.php:359 templates/connect.php:375
|
2125 |
msgid "Updates, announcements, marketing, no spam"
|
2126 |
msgstr "Updates, announcements, marketing, no spam"
|
2127 |
|
2128 |
#: templates/connect.php:364
|
2129 |
+
#, php-format
|
2130 |
msgid "Current %s Events"
|
2131 |
msgstr "Current %s Events"
|
2132 |
|
2138 |
msgid "Newsletter"
|
2139 |
msgstr "Nyhedsbrev"
|
2140 |
|
2141 |
+
#: templates/connect.php:391 templates/forms/license-activation.php:38
|
2142 |
+
#, php-format
|
2143 |
+
msgid ""
|
2144 |
+
"The %1$s will be periodically sending data to %2$s to check for security and "
|
2145 |
+
"feature updates, and verify the validity of your license."
|
2146 |
+
msgstr ""
|
2147 |
+
"The %1$s will be periodically sending data to %2$s to check for security and "
|
2148 |
+
"feature updates, and verify the validity of your license."
|
2149 |
|
2150 |
#: templates/connect.php:396
|
2151 |
msgid "What permissions are being granted?"
|
2208 |
msgid "Debugging"
|
2209 |
msgstr "Fejlfinding"
|
2210 |
|
2211 |
+
#: templates/debug.php:54 templates/debug.php:250 templates/debug.php:376
|
2212 |
+
#: templates/debug.php:494
|
2213 |
msgid "Actions"
|
2214 |
msgstr "Handlinger"
|
2215 |
|
2245 |
msgid "Set DB Option"
|
2246 |
msgstr "Sæt DB-indstilling"
|
2247 |
|
2248 |
+
#: templates/debug.php:182
|
2249 |
msgid "Key"
|
2250 |
msgstr "Nøgle"
|
2251 |
|
2252 |
+
#: templates/debug.php:183
|
2253 |
msgid "Value"
|
2254 |
msgstr "Værdi"
|
2255 |
|
2256 |
+
#: templates/debug.php:199
|
2257 |
msgctxt "as software development kit versions"
|
2258 |
msgid "SDK Versions"
|
2259 |
msgstr "SDK-versioner"
|
2260 |
|
2261 |
+
#: templates/debug.php:204
|
2262 |
msgid "SDK Path"
|
2263 |
msgstr "SDK-sti"
|
2264 |
|
2265 |
+
#: templates/debug.php:205 templates/debug.php:244
|
2266 |
msgid "Module Path"
|
2267 |
msgstr "Modul-sti"
|
2268 |
|
2269 |
+
#: templates/debug.php:206
|
2270 |
msgid "Is Active"
|
2271 |
msgstr "Er aktiv"
|
2272 |
|
2273 |
+
#: templates/debug.php:234 templates/debug/plugins-themes-sync.php:35
|
2274 |
msgid "Plugins"
|
2275 |
msgstr "Plugins"
|
2276 |
|
2277 |
+
#: templates/debug.php:234 templates/debug/plugins-themes-sync.php:56
|
2278 |
msgid "Themes"
|
2279 |
msgstr "Temaer"
|
2280 |
|
2281 |
+
#: templates/debug.php:239 templates/debug.php:371 templates/debug.php:453
|
2282 |
#: templates/debug/scheduled-crons.php:80
|
2283 |
msgid "Slug"
|
2284 |
msgstr "Kortnavn"
|
2285 |
|
2286 |
+
#: templates/debug.php:241 templates/debug.php:452
|
2287 |
msgid "Title"
|
2288 |
msgstr "Titel"
|
2289 |
|
2290 |
+
#: templates/debug.php:242
|
2291 |
msgctxt "as application program interface"
|
2292 |
msgid "API"
|
2293 |
msgstr "API"
|
2294 |
|
2295 |
+
#: templates/debug.php:243
|
2296 |
msgid "Freemius State"
|
2297 |
msgstr "Freemius tilstand"
|
2298 |
|
2299 |
+
#: templates/debug.php:247
|
2300 |
msgid "Network Blog"
|
2301 |
msgstr "Netværksblog"
|
2302 |
|
2303 |
+
#: templates/debug.php:248
|
2304 |
msgid "Network User"
|
2305 |
msgstr "Netværksbruger"
|
2306 |
|
2307 |
+
#: templates/debug.php:285
|
2308 |
msgctxt "as connection was successful"
|
2309 |
msgid "Connected"
|
2310 |
msgstr "Forbundet"
|
2311 |
|
2312 |
+
#: templates/debug.php:286
|
2313 |
msgctxt "as connection blocked"
|
2314 |
msgid "Blocked"
|
2315 |
msgstr "Blokeret"
|
2316 |
|
2317 |
+
#: templates/debug.php:322
|
2318 |
msgid "Simulate Trial Promotion"
|
2319 |
msgstr "Simulate Trial Promotion"
|
2320 |
|
2321 |
+
#: templates/debug.php:334
|
2322 |
msgid "Simulate Network Upgrade"
|
2323 |
msgstr "Simuler netværksopgradering"
|
2324 |
|
2325 |
+
#: templates/debug.php:360
|
2326 |
+
#, php-format
|
2327 |
msgid "%s Installs"
|
2328 |
msgstr "%s installeringer"
|
2329 |
|
2330 |
+
#: templates/debug.php:362
|
2331 |
msgctxt "like websites"
|
2332 |
msgid "Sites"
|
2333 |
msgstr "Websteder"
|
2334 |
|
2335 |
+
#: templates/debug.php:447
|
2336 |
+
#, php-format
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2337 |
msgid "Add Ons of module %s"
|
2338 |
msgstr "Tilføjelser til modul %s"
|
2339 |
|
2340 |
+
#: templates/debug.php:484
|
2341 |
msgid "Users"
|
2342 |
msgstr "Brugere"
|
2343 |
|
2344 |
+
#: templates/debug.php:491
|
2345 |
msgid "Verified"
|
2346 |
msgstr "Verificeret"
|
2347 |
|
2348 |
+
#: templates/debug.php:522
|
2349 |
+
#, php-format
|
2350 |
msgid "%s Licenses"
|
2351 |
msgstr "1%s licenser"
|
2352 |
|
2353 |
+
#: templates/debug.php:527
|
2354 |
msgid "Plugin ID"
|
2355 |
msgstr "Plugin-ID"
|
2356 |
|
2357 |
+
#: templates/debug.php:529
|
2358 |
msgid "Plan ID"
|
2359 |
msgstr "Plan-ID"
|
2360 |
|
2361 |
+
#: templates/debug.php:530
|
2362 |
msgid "Quota"
|
2363 |
msgstr "Kvote"
|
2364 |
|
2365 |
+
#: templates/debug.php:531
|
2366 |
msgid "Activated"
|
2367 |
msgstr "Aktiveret"
|
2368 |
|
2369 |
+
#: templates/debug.php:532
|
2370 |
msgid "Blocking"
|
2371 |
msgstr "Blokerer"
|
2372 |
|
2373 |
+
#: templates/debug.php:534
|
2374 |
msgctxt "as expiration date"
|
2375 |
msgid "Expiration"
|
2376 |
msgstr "Udløber"
|
2377 |
|
2378 |
+
#: templates/debug.php:557
|
2379 |
msgid "Debug Log"
|
2380 |
msgstr "Fejlfindingslog"
|
2381 |
|
2382 |
+
#: templates/debug.php:561
|
2383 |
msgid "All Types"
|
2384 |
msgstr "Alle typer"
|
2385 |
|
2386 |
+
#: templates/debug.php:568
|
2387 |
msgid "All Requests"
|
2388 |
msgstr "Alle forespørgsler"
|
2389 |
|
2390 |
+
#: templates/debug.php:573 templates/debug.php:602
|
2391 |
#: templates/debug/logger.php:25
|
2392 |
msgid "File"
|
2393 |
msgstr "Fil"
|
2394 |
|
2395 |
+
#: templates/debug.php:574 templates/debug.php:600
|
2396 |
#: templates/debug/logger.php:23
|
2397 |
msgid "Function"
|
2398 |
msgstr "Funktion"
|
2399 |
|
2400 |
+
#: templates/debug.php:575
|
2401 |
msgid "Process ID"
|
2402 |
msgstr "Proces-ID"
|
2403 |
|
2404 |
+
#: templates/debug.php:576
|
2405 |
msgid "Logger"
|
2406 |
msgstr "Logger"
|
2407 |
|
2408 |
+
#: templates/debug.php:577 templates/debug.php:601
|
2409 |
#: templates/debug/logger.php:24
|
2410 |
msgid "Message"
|
2411 |
msgstr "Besked"
|
2412 |
|
2413 |
+
#: templates/debug.php:579
|
2414 |
msgid "Filter"
|
2415 |
msgstr "Filter"
|
2416 |
|
2417 |
+
#: templates/debug.php:587
|
2418 |
msgid "Download"
|
2419 |
msgstr "Download"
|
2420 |
|
2421 |
+
#: templates/debug.php:598 templates/debug/logger.php:22
|
2422 |
msgid "Type"
|
2423 |
msgstr "Type"
|
2424 |
|
2425 |
+
#: templates/debug.php:603 templates/debug/logger.php:26
|
2426 |
msgid "Timestamp"
|
2427 |
msgstr "Tidsstempel"
|
2428 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2429 |
#: templates/debug/api-calls.php:56
|
2430 |
msgid "API"
|
2431 |
msgstr "API"
|
2467 |
msgid "Log"
|
2468 |
msgstr "Log"
|
2469 |
|
2470 |
+
#: templates/debug/plugins-themes-sync.php:18
|
|
|
2471 |
#: templates/debug/scheduled-crons.php:91
|
2472 |
+
#, php-format
|
2473 |
msgid "In %s"
|
2474 |
msgstr "Om %s"
|
2475 |
|
2476 |
+
#: templates/debug/plugins-themes-sync.php:20
|
|
|
2477 |
#: templates/debug/scheduled-crons.php:93
|
2478 |
+
#, php-format
|
2479 |
msgid "%s ago"
|
2480 |
msgstr "%s siden"
|
2481 |
|
2482 |
+
#: templates/debug/plugins-themes-sync.php:21
|
2483 |
#: templates/debug/scheduled-crons.php:74
|
2484 |
msgctxt "seconds"
|
2485 |
msgid "sec"
|
2493 |
msgid "Total"
|
2494 |
msgstr "Total"
|
2495 |
|
2496 |
+
#: templates/debug/plugins-themes-sync.php:29
|
2497 |
#: templates/debug/scheduled-crons.php:84
|
2498 |
msgid "Last"
|
2499 |
msgstr "Sidste"
|
2527 |
msgstr "Apply to become an affiliate"
|
2528 |
|
2529 |
#: templates/forms/affiliation.php:104
|
2530 |
+
#, php-format
|
2531 |
+
msgid ""
|
2532 |
+
"Your affiliate application for %s has been accepted! Log in to your "
|
2533 |
+
"affiliate area at: %s."
|
2534 |
+
msgstr ""
|
2535 |
+
"Your affiliate application for %s has been accepted! Log in to your "
|
2536 |
+
"affiliate area at: %s."
|
2537 |
|
2538 |
#: templates/forms/affiliation.php:119
|
2539 |
+
msgid ""
|
2540 |
+
"Thank you for applying for our affiliate program, we'll review your details "
|
2541 |
+
"during the next 14 days and will get back to you with further information."
|
2542 |
+
msgstr ""
|
2543 |
+
"Thank you for applying for our affiliate program, we'll review your details "
|
2544 |
+
"during the next 14 days and will get back to you with further information."
|
2545 |
|
2546 |
#: templates/forms/affiliation.php:122
|
2547 |
msgid "Your affiliation account was temporarily suspended."
|
2548 |
msgstr "Your affiliation account was temporarily suspended."
|
2549 |
|
2550 |
#: templates/forms/affiliation.php:125
|
2551 |
+
msgid ""
|
2552 |
+
"Thank you for applying for our affiliate program, unfortunately, we've "
|
2553 |
+
"decided at this point to reject your application. Please try again in 30 "
|
2554 |
+
"days."
|
2555 |
+
msgstr ""
|
2556 |
+
"Thank you for applying for our affiliate program, unfortunately, we've "
|
2557 |
+
"decided at this point to reject your application. Please try again in 30 "
|
2558 |
+
"days."
|
2559 |
|
2560 |
#: templates/forms/affiliation.php:128
|
2561 |
+
msgid ""
|
2562 |
+
"Due to violation of our affiliation terms, we decided to temporarily block "
|
2563 |
+
"your affiliation account. If you have any questions, please contact support."
|
2564 |
+
msgstr ""
|
2565 |
+
"Due to violation of our affiliation terms, we decided to temporarily block "
|
2566 |
+
"your affiliation account. If you have any questions, please contact support."
|
2567 |
|
2568 |
#: templates/forms/affiliation.php:141
|
2569 |
+
#, php-format
|
2570 |
msgid "Like the %s? Become our ambassador and earn cash ;-)"
|
2571 |
msgstr "Like the %s? Become our ambassador and earn cash ;-)"
|
2572 |
|
2573 |
#: templates/forms/affiliation.php:142
|
2574 |
+
#, php-format
|
2575 |
+
msgid ""
|
2576 |
+
"Refer new customers to our %s and earn %s commission on each successful sale "
|
2577 |
+
"you refer!"
|
2578 |
+
msgstr ""
|
2579 |
+
"Refer new customers to our %s and earn %s commission on each successful sale "
|
2580 |
+
"you refer!"
|
2581 |
|
2582 |
#: templates/forms/affiliation.php:145
|
2583 |
msgid "Program Summary"
|
2584 |
msgstr "Programoversigt"
|
2585 |
|
2586 |
#: templates/forms/affiliation.php:147
|
2587 |
+
#, php-format
|
2588 |
msgid "%s commission when a customer purchases a new license."
|
2589 |
msgstr "%s commission when a customer purchases a new license."
|
2590 |
|
2593 |
msgstr "Get commission for automated subscription renewals."
|
2594 |
|
2595 |
#: templates/forms/affiliation.php:152
|
2596 |
+
#, php-format
|
2597 |
+
msgid ""
|
2598 |
+
"%s tracking cookie after the first visit to maximize earnings potential."
|
2599 |
+
msgstr ""
|
2600 |
+
"%s tracking cookie after the first visit to maximize earnings potential."
|
2601 |
|
2602 |
#: templates/forms/affiliation.php:155
|
2603 |
msgid "Unlimited commissions."
|
2604 |
msgstr "Unlimited commissions."
|
2605 |
|
2606 |
#: templates/forms/affiliation.php:157
|
2607 |
+
#, php-format
|
2608 |
msgid "%s minimum payout amount."
|
2609 |
msgstr "%s minimum payout amount."
|
2610 |
|
2613 |
msgstr "Payouts are in USD and processed monthly via PayPal."
|
2614 |
|
2615 |
#: templates/forms/affiliation.php:159
|
2616 |
+
msgid ""
|
2617 |
+
"As we reserve 30 days for potential refunds, we only pay commissions that "
|
2618 |
+
"are older than 30 days."
|
2619 |
+
msgstr ""
|
2620 |
+
"As we reserve 30 days for potential refunds, we only pay commissions that "
|
2621 |
+
"are older than 30 days."
|
2622 |
|
2623 |
#: templates/forms/affiliation.php:162
|
2624 |
msgid "Affiliate"
|
2625 |
msgstr "Affiliate"
|
2626 |
|
2627 |
+
#: templates/forms/affiliation.php:165 templates/forms/resend-key.php:23
|
2628 |
msgid "Email address"
|
2629 |
msgstr "E-mailadresse"
|
2630 |
|
2637 |
msgstr "E-mailadresse til PayPal-konto"
|
2638 |
|
2639 |
#: templates/forms/affiliation.php:177
|
2640 |
+
#, php-format
|
2641 |
msgid "Where are you going to promote the %s?"
|
2642 |
msgstr "Hvor vil du promovere %s?"
|
2643 |
|
2644 |
#: templates/forms/affiliation.php:179
|
2645 |
+
#, php-format
|
2646 |
+
msgid ""
|
2647 |
+
"Enter the domain of your website or other websites from where you plan to "
|
2648 |
+
"promote the %s."
|
2649 |
+
msgstr ""
|
2650 |
+
"Enter the domain of your website or other websites from where you plan to "
|
2651 |
+
"promote the %s."
|
2652 |
|
2653 |
#: templates/forms/affiliation.php:181
|
2654 |
msgid "Add another domain"
|
2679 |
msgstr "Websted, e-mail, og statistikker for sociale medier (valgfrit)"
|
2680 |
|
2681 |
#: templates/forms/affiliation.php:210
|
2682 |
+
msgid ""
|
2683 |
+
"Please feel free to provide any relevant website or social media statistics, "
|
2684 |
+
"e.g. monthly unique site visits, number of email subscribers, followers, "
|
2685 |
+
"etc. (we will keep this information confidential)."
|
2686 |
+
msgstr ""
|
2687 |
+
"Please feel free to provide any relevant website or social media statistics, "
|
2688 |
+
"e.g. monthly unique site visits, number of email subscribers, followers, "
|
2689 |
+
"etc. (we will keep this information confidential)."
|
2690 |
|
2691 |
#: templates/forms/affiliation.php:214
|
2692 |
msgid "How will you promote us?"
|
2693 |
msgstr "Hvordan vil du promovere os?"
|
2694 |
|
2695 |
#: templates/forms/affiliation.php:217
|
2696 |
+
#, php-format
|
2697 |
+
msgid ""
|
2698 |
+
"Please provide details on how you intend to promote %s (please be as "
|
2699 |
+
"specific as possible)."
|
2700 |
+
msgstr ""
|
2701 |
+
"Please provide details on how you intend to promote %s (please be as "
|
2702 |
+
"specific as possible)."
|
2703 |
|
2704 |
+
#: templates/forms/affiliation.php:223 templates/forms/resend-key.php:22
|
2705 |
msgid "Cancel"
|
2706 |
msgstr "Annuller"
|
2707 |
|
2709 |
msgid "Become an affiliate"
|
2710 |
msgstr "Bliv en affiliate"
|
2711 |
|
2712 |
+
#: templates/forms/deactivation/contact.php:19
|
2713 |
+
msgid ""
|
2714 |
+
"Sorry for the inconvenience and we are here to help if you give us a chance."
|
2715 |
+
msgstr ""
|
2716 |
+
"Vi beklager ulejligheden, og vi er her for at hjælpe, hvis du giver os "
|
2717 |
+
"chancen."
|
2718 |
+
|
2719 |
+
#: templates/forms/deactivation/contact.php:22
|
2720 |
+
msgid "Contact Support"
|
2721 |
+
msgstr "Kontakt support"
|
2722 |
+
|
2723 |
+
#: templates/forms/deactivation/form.php:59
|
2724 |
+
msgid "Anonymous feedback"
|
2725 |
+
msgstr "Anonym feedback"
|
2726 |
+
|
2727 |
+
#: templates/forms/deactivation/form.php:66
|
2728 |
+
msgid "Deactivate"
|
2729 |
+
msgstr "Deaktiver"
|
2730 |
+
|
2731 |
+
#: templates/forms/deactivation/form.php:68
|
2732 |
+
#, php-format
|
2733 |
+
msgid "Activate %s"
|
2734 |
+
msgstr "Aktiver %s"
|
2735 |
+
|
2736 |
+
#: templates/forms/deactivation/form.php:80
|
2737 |
+
msgid "Quick Feedback"
|
2738 |
+
msgstr "Quick Feedback"
|
2739 |
+
|
2740 |
+
#: templates/forms/deactivation/form.php:84
|
2741 |
+
#, php-format
|
2742 |
+
msgid "If you have a moment, please let us know why you are %s"
|
2743 |
+
msgstr "Hvis du har tid, så lad os venligst vide hvorfor du %s"
|
2744 |
+
|
2745 |
+
#: templates/forms/deactivation/form.php:84
|
2746 |
+
msgid "deactivating"
|
2747 |
+
msgstr "deaktiverer"
|
2748 |
+
|
2749 |
+
#: templates/forms/deactivation/form.php:84
|
2750 |
+
msgid "switching"
|
2751 |
+
msgstr "skifter"
|
2752 |
+
|
2753 |
+
#: templates/forms/deactivation/form.php:150
|
2754 |
+
#: templates/forms/subscription-cancellation.php:191
|
2755 |
+
#, php-format
|
2756 |
+
msgid "Cancel %s & Proceed"
|
2757 |
+
msgstr "Cancel %s & Proceed"
|
2758 |
+
|
2759 |
+
#: templates/forms/deactivation/form.php:332
|
2760 |
+
#, php-format
|
2761 |
+
msgid "Submit & %s"
|
2762 |
+
msgstr "Send & %s"
|
2763 |
+
|
2764 |
+
#: templates/forms/deactivation/form.php:353
|
2765 |
+
msgid "Kindly tell us the reason so we can improve."
|
2766 |
+
msgstr "Fortæl os venligst årsagen, så vi kan forbedre det."
|
2767 |
+
|
2768 |
+
#: templates/forms/deactivation/form.php:478
|
2769 |
+
#, php-format
|
2770 |
+
msgid "Yes - %s"
|
2771 |
+
msgstr "Ja - %s"
|
2772 |
+
|
2773 |
+
#: templates/forms/deactivation/form.php:485
|
2774 |
+
#, php-format
|
2775 |
+
msgid "Skip & %s"
|
2776 |
+
msgstr "Spring over & %s"
|
2777 |
+
|
2778 |
+
#: templates/forms/deactivation/retry-skip.php:21
|
2779 |
+
msgid "Click here to use the plugin anonymously"
|
2780 |
+
msgstr "Klik her for at benytte pluginnet anonymt"
|
2781 |
+
|
2782 |
+
#: templates/forms/deactivation/retry-skip.php:23
|
2783 |
+
#, php-format
|
2784 |
+
msgid ""
|
2785 |
+
"You might have missed it, but you don't have to share any data and can just "
|
2786 |
+
"%s the opt-in."
|
2787 |
+
msgstr ""
|
2788 |
+
"Du har måske overset det, men du behøver ikke at dele data og kan blot %s "
|
2789 |
+
"tilmeldingen."
|
2790 |
+
|
2791 |
#: templates/forms/license-activation.php:20
|
2792 |
+
msgid ""
|
2793 |
+
"Please enter the license key that you received in the email right after the "
|
2794 |
+
"purchase:"
|
2795 |
msgstr "Indtast licensnøglen, du modtog i e-mailen lige efter købet:"
|
2796 |
|
2797 |
#: templates/forms/license-activation.php:25
|
2809 |
msgstr "Tilmeld"
|
2810 |
|
2811 |
#: templates/forms/optout.php:33
|
2812 |
+
#, php-format
|
2813 |
+
msgid ""
|
2814 |
+
"Usage tracking is done in the name of making %s better. Making a better user "
|
2815 |
+
"experience, prioritizing new features, and more good things. We'd really "
|
2816 |
+
"appreciate if you'll reconsider letting us continue with the tracking."
|
2817 |
+
msgstr ""
|
2818 |
+
"Usage tracking is done in the name of making %s better. Making a better user "
|
2819 |
+
"experience, prioritizing new features, and more good things. We'd really "
|
2820 |
+
"appreciate if you'll reconsider letting us continue with the tracking."
|
2821 |
|
2822 |
#: templates/forms/optout.php:35
|
2823 |
+
#, php-format
|
2824 |
+
msgid ""
|
2825 |
+
"By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
|
2826 |
+
msgstr ""
|
2827 |
+
"Ved at klikke \"Frameld\" vil vi ikke længere sende data fra %s til %s."
|
2828 |
|
2829 |
#: templates/forms/premium-versions-upgrade-handler.php:40
|
2830 |
+
#, php-format
|
2831 |
msgid "There is a new version of %s available."
|
2832 |
msgstr "En ny version af %s er tilgængelig."
|
2833 |
|
2834 |
#: templates/forms/premium-versions-upgrade-handler.php:41
|
2835 |
+
#, php-format
|
2836 |
msgid " %s to access version %s security & feature updates, and support."
|
2837 |
msgstr " %s to access version %s security & feature updates, and support."
|
2838 |
|
2850 |
msgstr "Send licensnøgle"
|
2851 |
|
2852 |
#: templates/forms/resend-key.php:57
|
2853 |
+
msgid ""
|
2854 |
+
"Enter the email address you've used for the upgrade below and we will resend "
|
2855 |
+
"you the license key."
|
2856 |
+
msgstr ""
|
2857 |
+
"Indtast e-mailadressen, som du benyttede ved opgraderingen, nedenfor og vi "
|
2858 |
+
"vil gensende licensnøglen til dig."
|
2859 |
|
2860 |
+
#: templates/forms/subscription-cancellation.php:38
|
2861 |
+
#, php-format
|
2862 |
+
msgid ""
|
2863 |
+
"Deactivating or uninstalling the %s will automatically disable the license, "
|
2864 |
+
"which you'll be able to use on another site."
|
2865 |
+
msgstr ""
|
2866 |
+
"Deactivating or uninstalling the %s will automatically disable the license, "
|
2867 |
+
"which you'll be able to use on another site."
|
2868 |
|
2869 |
+
#: templates/forms/subscription-cancellation.php:48
|
2870 |
+
#, php-format
|
2871 |
+
msgid ""
|
2872 |
+
"In case you are NOT planning on using this %s on this site (or any other "
|
2873 |
+
"site) - would you like to cancel the %s as well?"
|
2874 |
+
msgstr ""
|
2875 |
+
"In case you are NOT planning on using this %s on this site (or any other "
|
2876 |
+
"site) - would you like to cancel the %s as well?"
|
2877 |
|
2878 |
#: templates/forms/subscription-cancellation.php:52
|
2879 |
msgid "license"
|
2880 |
msgstr "license"
|
2881 |
|
2882 |
+
#: templates/forms/subscription-cancellation.php:58
|
2883 |
+
#, php-format
|
2884 |
+
msgid ""
|
2885 |
+
"Cancel %s - I no longer need any security & feature updates, nor support for "
|
2886 |
+
"%s because I'm not planning to use the %s on this, or any other site."
|
2887 |
+
msgstr ""
|
2888 |
+
"Cancel %s - I no longer need any security & feature updates, nor support for "
|
2889 |
+
"%s because I'm not planning to use the %s on this, or any other site."
|
2890 |
|
2891 |
+
#: templates/forms/subscription-cancellation.php:69
|
2892 |
+
#, php-format
|
2893 |
+
msgid ""
|
2894 |
+
"Don't cancel %s - I'm still interested in getting security & feature "
|
2895 |
+
"updates, as well as be able to contact support."
|
2896 |
+
msgstr ""
|
2897 |
+
"Don't cancel %s - I'm still interested in getting security & feature "
|
2898 |
+
"updates, as well as be able to contact support."
|
2899 |
|
2900 |
#: templates/forms/subscription-cancellation.php:103
|
2901 |
+
#, php-format
|
2902 |
+
msgid ""
|
2903 |
+
"Once your license expires you will no longer be able to use the %s, unless "
|
2904 |
+
"you activate it again with a valid premium license."
|
2905 |
+
msgstr ""
|
2906 |
+
"Once your license expires you will no longer be able to use the %s, unless "
|
2907 |
+
"you activate it again with a valid premium license."
|
2908 |
|
2909 |
#: templates/forms/subscription-cancellation.php:136
|
2910 |
+
#, php-format
|
2911 |
msgid "Cancel %s?"
|
2912 |
msgstr "Cancel %s?"
|
2913 |
|
2915 |
msgid "Proceed"
|
2916 |
msgstr "Proceed"
|
2917 |
|
|
|
|
|
|
|
|
|
|
|
2918 |
#: templates/forms/trial-start.php:22
|
2919 |
+
#, php-format
|
2920 |
+
msgid ""
|
2921 |
+
"You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
|
2922 |
+
msgstr ""
|
2923 |
+
"Du er 1 klik fra at begynde din %1$s dages gratis prøveperiode af planen "
|
2924 |
+
"%2$s."
|
2925 |
|
2926 |
#: templates/forms/trial-start.php:28
|
2927 |
+
#, php-format
|
2928 |
+
msgid ""
|
2929 |
+
"For compliance with the WordPress.org guidelines, before we start the trial "
|
2930 |
+
"we ask that you opt in with your user and non-sensitive site information, "
|
2931 |
+
"allowing the %s to periodically send data to %s to check for version updates "
|
2932 |
+
"and to validate your trial."
|
2933 |
+
msgstr ""
|
2934 |
+
"For compliance with the WordPress.org guidelines, before we start the trial "
|
2935 |
+
"we ask that you opt in with your user and non-sensitive site information, "
|
2936 |
+
"allowing the %s to periodically send data to %s to check for version updates "
|
2937 |
+
"and to validate your trial."
|
2938 |
|
2939 |
#: templates/js/style-premium-theme.php:37
|
2940 |
msgid "Premium"
|
2956 |
msgid "Apply on all pending sites."
|
2957 |
msgstr "Anvend på alle afventende websteder."
|
2958 |
|
2959 |
+
#: templates/partials/network-activation.php:36
|
2960 |
#: templates/partials/network-activation.php:68
|
2961 |
msgid "allow"
|
2962 |
msgstr "tillad"
|
2963 |
|
2964 |
+
#: templates/partials/network-activation.php:38
|
2965 |
#: templates/partials/network-activation.php:70
|
2966 |
msgid "delegate"
|
2967 |
msgstr "delegér"
|
2968 |
|
2969 |
+
#: templates/partials/network-activation.php:41
|
2970 |
#: templates/partials/network-activation.php:73
|
2971 |
msgid "skip"
|
2972 |
msgstr "spring over"
|
2973 |
|
2974 |
+
#: templates/plugin-info/description.php:72
|
2975 |
#: templates/plugin-info/screenshots.php:31
|
2976 |
+
#, php-format
|
2977 |
msgid "Click to view full-size screenshot %d"
|
2978 |
msgstr "Klik for at vise skærmbillede %d i fuld skærm"
|
2979 |
|
2981 |
msgid "Unlimited Updates"
|
2982 |
msgstr "Ubegrænsede opdateringer"
|
2983 |
|
2984 |
+
#: templates/secure-https-header.php:28
|
2985 |
+
#, php-format
|
2986 |
+
msgid "Secure HTTPS %s page, running from an external domain"
|
2987 |
+
msgstr "Secure HTTPS %s page, running from an external domain"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
freemius/languages/freemius-en.po
CHANGED
@@ -4,38 +4,51 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: freemius\n"
|
6 |
"Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
|
7 |
-
"POT-Creation-Date: \n"
|
8 |
"PO-Revision-Date: \n"
|
9 |
"Last-Translator: Vova Feldman <vova@freemius.com>\n"
|
10 |
-
"Language: \n"
|
11 |
"Language-Team: Freemius Team <admin@freemius.com>\n"
|
|
|
|
|
12 |
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
"Content-Transfer-Encoding: 8bit\n"
|
14 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
15 |
-
"MIME-Version: 1.0\n"
|
16 |
"X-Poedit-Basepath: ..\n"
|
17 |
-
"X-Poedit-KeywordsList: get_text_inline;fs_text_inline;fs_echo_inline;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
"X-Poedit-SearchPath-0: .\n"
|
19 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
20 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
21 |
|
22 |
#: includes/class-freemius.php:1688
|
23 |
-
msgid "
|
24 |
-
|
|
|
|
|
|
|
|
|
25 |
|
26 |
#: includes/class-freemius.php:1690
|
27 |
msgid "Error"
|
28 |
msgstr "Error"
|
29 |
|
30 |
#: includes/class-freemius.php:2011
|
|
|
31 |
msgid "I found a better %s"
|
32 |
msgstr "I found a better %s"
|
33 |
|
34 |
#: includes/class-freemius.php:2013
|
|
|
35 |
msgid "What's the %s's name?"
|
36 |
msgstr "What's the %s's name?"
|
37 |
|
38 |
#: includes/class-freemius.php:2019
|
|
|
39 |
msgid "It's a temporary %s. I'm just debugging an issue."
|
40 |
msgstr "It's a temporary %s. I'm just debugging an issue."
|
41 |
|
@@ -47,23 +60,27 @@ msgstr "Deactivation"
|
|
47 |
msgid "Theme Switch"
|
48 |
msgstr "Theme Switch"
|
49 |
|
50 |
-
#: includes/class-freemius.php:2031
|
51 |
msgid "Other"
|
52 |
msgstr "Other"
|
53 |
|
54 |
#: includes/class-freemius.php:2039
|
|
|
55 |
msgid "I no longer need the %s"
|
56 |
msgstr "I no longer need the %s"
|
57 |
|
58 |
#: includes/class-freemius.php:2046
|
|
|
59 |
msgid "I only needed the %s for a short period"
|
60 |
msgstr "I only needed the %s for a short period"
|
61 |
|
62 |
#: includes/class-freemius.php:2052
|
|
|
63 |
msgid "The %s broke my site"
|
64 |
msgstr "The %s broke my site"
|
65 |
|
66 |
#: includes/class-freemius.php:2059
|
|
|
67 |
msgid "The %s suddenly stopped working"
|
68 |
msgstr "The %s suddenly stopped working"
|
69 |
|
@@ -80,6 +97,7 @@ msgid "I don't like to share my information with you"
|
|
80 |
msgstr "I don't like to share my information with you"
|
81 |
|
82 |
#: includes/class-freemius.php:2098
|
|
|
83 |
msgid "The %s didn't work"
|
84 |
msgstr "The %s didn't work"
|
85 |
|
@@ -88,6 +106,7 @@ msgid "I couldn't understand how to make it work"
|
|
88 |
msgstr "I couldn't understand how to make it work"
|
89 |
|
90 |
#: includes/class-freemius.php:2116
|
|
|
91 |
msgid "The %s is great, but I need specific feature that you don't support"
|
92 |
msgstr "The %s is great, but I need specific feature that you don't support"
|
93 |
|
@@ -96,6 +115,7 @@ msgid "What feature?"
|
|
96 |
msgstr "What feature?"
|
97 |
|
98 |
#: includes/class-freemius.php:2122
|
|
|
99 |
msgid "The %s is not working"
|
100 |
msgstr "The %s is not working"
|
101 |
|
@@ -112,6 +132,7 @@ msgid "What you've been looking for?"
|
|
112 |
msgstr "What you've been looking for?"
|
113 |
|
114 |
#: includes/class-freemius.php:2134
|
|
|
115 |
msgid "The %s didn't work as expected"
|
116 |
msgstr "The %s didn't work as expected"
|
117 |
|
@@ -119,648 +140,931 @@ msgstr "The %s didn't work as expected"
|
|
119 |
msgid "What did you expect?"
|
120 |
msgstr "What did you expect?"
|
121 |
|
122 |
-
#: includes/class-freemius.php:
|
123 |
msgid "Freemius Debug"
|
124 |
msgstr "Freemius Debug"
|
125 |
|
126 |
-
#: includes/class-freemius.php:
|
127 |
msgid "I don't know what is cURL or how to install it, help me!"
|
128 |
msgstr "I don't know what is cURL or how to install it, help me!"
|
129 |
|
130 |
-
#: includes/class-freemius.php:
|
131 |
-
|
132 |
-
|
|
|
|
|
|
|
|
|
|
|
133 |
|
134 |
-
#: includes/class-freemius.php:
|
135 |
-
|
136 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
|
138 |
-
#: includes/class-freemius.php:
|
139 |
msgid "Yes - do your thing"
|
140 |
msgstr "Yes - do your thing"
|
141 |
|
142 |
-
#: includes/class-freemius.php:
|
143 |
msgid "No - just deactivate"
|
144 |
msgstr "No - just deactivate"
|
145 |
|
146 |
-
#: includes/class-freemius.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
msgctxt "exclamation"
|
148 |
msgid "Oops"
|
149 |
msgstr "Oops"
|
150 |
|
151 |
-
#: includes/class-freemius.php:
|
152 |
-
|
153 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
|
155 |
-
#: includes/class-freemius.php:
|
|
|
156 |
msgctxt "addonX cannot run without pluginY"
|
157 |
msgid "%s cannot run without %s."
|
158 |
msgstr "%s cannot run without %s."
|
159 |
|
160 |
-
#: includes/class-freemius.php:
|
|
|
161 |
msgctxt "addonX cannot run..."
|
162 |
msgid "%s cannot run without the plugin."
|
163 |
msgstr "%s cannot run without the plugin."
|
164 |
|
165 |
-
#: includes/class-freemius.php:
|
166 |
-
|
167 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
|
169 |
-
#: includes/class-freemius.php:
|
|
|
170 |
msgid "Premium %s version was successfully activated."
|
171 |
msgstr "Premium %s version was successfully activated."
|
172 |
|
173 |
-
#: includes/class-freemius.php:
|
174 |
-
msgctxt "
|
|
|
|
|
175 |
msgid "W00t"
|
176 |
msgstr "W00t"
|
177 |
|
178 |
-
#: includes/class-freemius.php:
|
|
|
179 |
msgid "You have a %s license."
|
180 |
msgstr "You have a %s license."
|
181 |
|
182 |
-
#: includes/class-freemius.php:
|
|
|
|
|
|
|
183 |
msgctxt "interjection expressing joy or exuberance"
|
184 |
msgid "Yee-haw"
|
185 |
msgstr "Yee-haw"
|
186 |
|
187 |
-
#: includes/class-freemius.php:
|
188 |
-
|
189 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
|
191 |
-
#: includes/class-freemius.php:
|
192 |
-
|
193 |
-
|
|
|
|
|
|
|
|
|
|
|
194 |
|
195 |
-
#: includes/class-freemius.php:
|
|
|
|
|
196 |
msgid "More information about %s"
|
197 |
msgstr "More information about %s"
|
198 |
|
199 |
-
#: includes/class-freemius.php:
|
200 |
msgid "Purchase License"
|
201 |
msgstr "Purchase License"
|
202 |
|
203 |
-
#: includes/class-freemius.php:
|
204 |
-
|
205 |
-
|
|
|
|
|
|
|
|
|
|
|
206 |
|
207 |
-
#: includes/class-freemius.php:
|
208 |
msgid "start the trial"
|
209 |
msgstr "start the trial"
|
210 |
|
211 |
-
#: includes/class-freemius.php:
|
212 |
msgid "complete the install"
|
213 |
msgstr "complete the install"
|
214 |
|
215 |
-
#: includes/class-freemius.php:
|
|
|
216 |
msgid "You are just one step away - %s"
|
217 |
msgstr "You are just one step away - %s"
|
218 |
|
219 |
-
#: includes/class-freemius.php:
|
|
|
220 |
msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
|
221 |
msgid "Complete \"%s\" Activation Now"
|
222 |
msgstr "Complete \"%s\" Activation Now"
|
223 |
|
224 |
-
#: includes/class-freemius.php:
|
|
|
225 |
msgid "We made a few tweaks to the %s, %s"
|
226 |
msgstr "We made a few tweaks to the %s, %s"
|
227 |
|
228 |
-
#: includes/class-freemius.php:
|
|
|
229 |
msgid "Opt in to make \"%s\" better!"
|
230 |
msgstr "Opt in to make \"%s\" better!"
|
231 |
|
232 |
-
#: includes/class-freemius.php:
|
|
|
233 |
msgid "The upgrade of %s was successfully completed."
|
234 |
msgstr "The upgrade of %s was successfully completed."
|
235 |
|
236 |
-
#: includes/class-freemius.php:
|
|
|
|
|
237 |
msgid "Add-On"
|
238 |
msgstr "Add-On"
|
239 |
|
240 |
-
#: includes/class-freemius.php:
|
|
|
241 |
msgid "Plugin"
|
242 |
msgstr "Plugin"
|
243 |
|
244 |
-
#: includes/class-freemius.php:
|
|
|
245 |
msgid "Theme"
|
246 |
msgstr "Theme"
|
247 |
|
248 |
-
#: includes/class-freemius.php:
|
249 |
msgid "Invalid site details collection."
|
250 |
msgstr "Invalid site details collection."
|
251 |
|
252 |
-
#: includes/class-freemius.php:
|
253 |
-
msgid "
|
254 |
-
|
|
|
|
|
|
|
|
|
255 |
|
256 |
-
#: includes/class-freemius.php:
|
257 |
-
msgid "
|
258 |
-
|
|
|
|
|
|
|
|
|
259 |
|
260 |
-
#: includes/class-freemius.php:
|
261 |
msgid "Account is pending activation."
|
262 |
msgstr "Account is pending activation."
|
263 |
|
264 |
-
#: includes/class-freemius.php:
|
|
|
265 |
msgid "Buy a license now"
|
266 |
msgstr "Buy a license now"
|
267 |
|
268 |
-
#: includes/class-freemius.php:
|
|
|
269 |
msgid "Renew your license now"
|
270 |
msgstr "Renew your license now"
|
271 |
|
272 |
-
#: includes/class-freemius.php:
|
|
|
273 |
msgid "%s to access version %s security & feature updates, and support."
|
274 |
msgstr "%s to access version %s security & feature updates, and support."
|
275 |
|
276 |
-
#: includes/class-freemius.php:
|
|
|
277 |
msgid "%s activation was successfully completed."
|
278 |
msgstr "%s activation was successfully completed."
|
279 |
|
280 |
-
#: includes/class-freemius.php:
|
|
|
281 |
msgid "Your account was successfully activated with the %s plan."
|
282 |
msgstr "Your account was successfully activated with the %s plan."
|
283 |
|
284 |
-
#: includes/class-freemius.php:
|
285 |
msgid "Your trial has been successfully started."
|
286 |
msgstr "Your trial has been successfully started."
|
287 |
|
288 |
-
#: includes/class-freemius.php:
|
|
|
|
|
289 |
msgid "Couldn't activate %s."
|
290 |
msgstr "Couldn't activate %s."
|
291 |
|
292 |
-
#: includes/class-freemius.php:
|
|
|
293 |
msgid "Please contact us with the following message:"
|
294 |
msgstr "Please contact us with the following message:"
|
295 |
|
296 |
-
#: includes/class-freemius.php:
|
297 |
msgid "Upgrade"
|
298 |
msgstr "Upgrade"
|
299 |
|
300 |
-
#: includes/class-freemius.php:
|
301 |
msgid "Start Trial"
|
302 |
msgstr "Start Trial"
|
303 |
|
304 |
-
#: includes/class-freemius.php:
|
305 |
msgid "Pricing"
|
306 |
msgstr "Pricing"
|
307 |
|
308 |
-
#: includes/class-freemius.php:
|
309 |
msgid "Affiliation"
|
310 |
msgstr "Affiliation"
|
311 |
|
312 |
-
#: includes/class-freemius.php:
|
|
|
313 |
msgid "Account"
|
314 |
msgstr "Account"
|
315 |
|
316 |
-
#: includes/class-freemius.php:
|
|
|
317 |
msgid "Contact Us"
|
318 |
msgstr "Contact Us"
|
319 |
|
320 |
-
#: includes/class-freemius.php:
|
|
|
|
|
321 |
msgid "Add-Ons"
|
322 |
msgstr "Add-Ons"
|
323 |
|
324 |
-
#: includes/class-freemius.php:
|
325 |
msgctxt "ASCII arrow left icon"
|
326 |
msgid "←"
|
327 |
msgstr "←"
|
328 |
|
329 |
-
#: includes/class-freemius.php:
|
330 |
msgctxt "ASCII arrow right icon"
|
331 |
msgid "➤"
|
332 |
msgstr "➤"
|
333 |
|
334 |
-
#: includes/class-freemius.php:
|
335 |
msgctxt "noun"
|
336 |
msgid "Pricing"
|
337 |
msgstr "Pricing"
|
338 |
|
339 |
-
#: includes/class-freemius.php:
|
|
|
340 |
msgid "Support Forum"
|
341 |
msgstr "Support Forum"
|
342 |
|
343 |
-
#: includes/class-freemius.php:
|
344 |
msgid "Your email has been successfully verified - you are AWESOME!"
|
345 |
msgstr "Your email has been successfully verified - you are AWESOME!"
|
346 |
|
347 |
-
#: includes/class-freemius.php:
|
348 |
msgctxt "a positive response"
|
349 |
msgid "Right on"
|
350 |
msgstr "Right on"
|
351 |
|
352 |
-
#: includes/class-freemius.php:
|
|
|
353 |
msgid "Your %s Add-on plan was successfully upgraded."
|
354 |
msgstr "Your %s Add-on plan was successfully upgraded."
|
355 |
|
356 |
-
#: includes/class-freemius.php:
|
|
|
357 |
msgid "%s Add-on was successfully purchased."
|
358 |
msgstr "%s Add-on was successfully purchased."
|
359 |
|
360 |
-
#: includes/class-freemius.php:
|
361 |
msgid "Download the latest version"
|
362 |
msgstr "Download the latest version"
|
363 |
|
364 |
-
#: includes/class-freemius.php:
|
|
|
365 |
msgctxt "%1s - plugin title, %2s - API domain"
|
366 |
-
msgid "
|
367 |
-
|
|
|
|
|
|
|
|
|
368 |
|
369 |
-
#: includes/class-freemius.php:
|
|
|
370 |
msgid "Error received from the server:"
|
371 |
msgstr "Error received from the server:"
|
372 |
|
373 |
-
#: includes/class-freemius.php:
|
374 |
-
msgid "
|
375 |
-
|
|
|
|
|
|
|
|
|
376 |
|
377 |
-
#: includes/class-freemius.php:
|
378 |
-
|
|
|
|
|
379 |
msgid "Hmm"
|
380 |
msgstr "Hmm"
|
381 |
|
382 |
-
#: includes/class-freemius.php:
|
383 |
-
|
384 |
-
|
|
|
|
|
|
|
|
|
|
|
385 |
|
386 |
-
#: includes/class-freemius.php:
|
|
|
387 |
msgctxt "trial period"
|
388 |
msgid "Trial"
|
389 |
msgstr "Trial"
|
390 |
|
391 |
-
#: includes/class-freemius.php:
|
392 |
-
|
393 |
-
|
|
|
|
|
|
|
|
|
|
|
394 |
|
395 |
-
#: includes/class-freemius.php:
|
396 |
msgid "Please contact us here"
|
397 |
msgstr "Please contact us here"
|
398 |
|
399 |
-
#: includes/class-freemius.php:
|
400 |
msgid "Your plan was successfully upgraded."
|
401 |
msgstr "Your plan was successfully upgraded."
|
402 |
|
403 |
-
#: includes/class-freemius.php:
|
|
|
404 |
msgid "Your plan was successfully changed to %s."
|
405 |
msgstr "Your plan was successfully changed to %s."
|
406 |
|
407 |
-
#: includes/class-freemius.php:
|
408 |
-
|
409 |
-
|
|
|
|
|
|
|
410 |
|
411 |
-
#: includes/class-freemius.php:
|
412 |
-
|
413 |
-
|
|
|
|
|
|
|
|
|
|
|
414 |
|
415 |
-
#: includes/class-freemius.php:
|
416 |
-
msgid "
|
417 |
-
|
|
|
|
|
|
|
|
|
418 |
|
419 |
-
#: includes/class-freemius.php:
|
420 |
-
|
421 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
422 |
|
423 |
-
#: includes/class-freemius.php:
|
424 |
-
msgid "
|
425 |
-
|
|
|
|
|
|
|
|
|
426 |
|
427 |
-
#: includes/class-freemius.php:
|
428 |
-
|
429 |
-
|
|
|
|
|
|
|
|
|
|
|
430 |
|
431 |
-
#: includes/class-freemius.php:
|
432 |
msgid "It looks like the license could not be activated."
|
433 |
msgstr "It looks like the license could not be activated."
|
434 |
|
435 |
-
#: includes/class-freemius.php:
|
436 |
msgid "Your license was successfully activated."
|
437 |
msgstr "Your license was successfully activated."
|
438 |
|
439 |
-
#: includes/class-freemius.php:
|
440 |
msgid "It looks like your site currently doesn't have an active license."
|
441 |
msgstr "It looks like your site currently doesn't have an active license."
|
442 |
|
443 |
-
#: includes/class-freemius.php:
|
444 |
msgid "It looks like the license deactivation failed."
|
445 |
msgstr "It looks like the license deactivation failed."
|
446 |
|
447 |
-
#: includes/class-freemius.php:
|
|
|
448 |
msgid "Your license was successfully deactivated, you are back to the %s plan."
|
449 |
-
msgstr "
|
|
|
450 |
|
451 |
-
#: includes/class-freemius.php:
|
452 |
msgid "O.K"
|
453 |
msgstr "O.K"
|
454 |
|
455 |
-
#: includes/class-freemius.php:
|
456 |
-
msgid "
|
457 |
-
|
|
|
|
|
|
|
|
|
458 |
|
459 |
-
#: includes/class-freemius.php:
|
460 |
-
|
461 |
-
|
|
|
|
|
|
|
|
|
|
|
462 |
|
463 |
-
#: includes/class-freemius.php:
|
|
|
464 |
msgid "You are already running the %s in a trial mode."
|
465 |
msgstr "You are already running the %s in a trial mode."
|
466 |
|
467 |
-
#: includes/class-freemius.php:
|
468 |
msgid "You already utilized a trial before."
|
469 |
msgstr "You already utilized a trial before."
|
470 |
|
471 |
-
#: includes/class-freemius.php:
|
|
|
472 |
msgid "Plan %s do not exist, therefore, can't start a trial."
|
473 |
msgstr "Plan %s do not exist, therefore, can't start a trial."
|
474 |
|
475 |
-
#: includes/class-freemius.php:
|
|
|
476 |
msgid "Plan %s does not support a trial period."
|
477 |
msgstr "Plan %s does not support a trial period."
|
478 |
|
479 |
-
#: includes/class-freemius.php:
|
|
|
480 |
msgid "None of the %s's plans supports a trial period."
|
481 |
msgstr "None of the %s's plans supports a trial period."
|
482 |
|
483 |
-
#: includes/class-freemius.php:
|
484 |
-
msgid "
|
485 |
-
|
|
|
|
|
|
|
|
|
486 |
|
487 |
-
#: includes/class-freemius.php:
|
488 |
-
msgid "
|
489 |
-
|
|
|
|
|
|
|
|
|
490 |
|
491 |
-
#: includes/class-freemius.php:
|
|
|
492 |
msgid "Your %s free trial was successfully cancelled."
|
493 |
msgstr "Your %s free trial was successfully cancelled."
|
494 |
|
495 |
-
#: includes/class-freemius.php:
|
|
|
496 |
msgid "Version %s was released."
|
497 |
msgstr "Version %s was released."
|
498 |
|
499 |
-
#: includes/class-freemius.php:
|
|
|
500 |
msgid "Please download %s."
|
501 |
msgstr "Please download %s."
|
502 |
|
503 |
-
#: includes/class-freemius.php:
|
|
|
504 |
msgid "the latest %s version here"
|
505 |
msgstr "the latest %s version here"
|
506 |
|
507 |
-
#: includes/class-freemius.php:
|
508 |
msgid "New"
|
509 |
msgstr "New"
|
510 |
|
511 |
-
#: includes/class-freemius.php:
|
512 |
msgid "Seems like you got the latest release."
|
513 |
msgstr "Seems like you got the latest release."
|
514 |
|
515 |
-
#: includes/class-freemius.php:
|
516 |
msgid "You are all good!"
|
517 |
msgstr "You are all good!"
|
518 |
|
519 |
-
#: includes/class-freemius.php:
|
520 |
-
|
521 |
-
|
|
|
|
|
|
|
|
|
|
|
522 |
|
523 |
-
#: includes/class-freemius.php:
|
524 |
msgid "Site successfully opted in."
|
525 |
msgstr "Site successfully opted in."
|
526 |
|
527 |
-
#: includes/class-freemius.php:
|
528 |
msgid "Awesome"
|
529 |
msgstr "Awesome"
|
530 |
|
531 |
-
#: includes/class-freemius.php:
|
532 |
-
|
533 |
-
|
|
|
|
|
|
|
|
|
|
|
534 |
|
535 |
-
#: includes/class-freemius.php:
|
536 |
msgid "Thank you!"
|
537 |
msgstr "Thank you!"
|
538 |
|
539 |
-
#: includes/class-freemius.php:
|
|
|
540 |
msgid "We will no longer be sending any usage data of %s on %s to %s."
|
541 |
msgstr "We will no longer be sending any usage data of %s on %s to %s."
|
542 |
|
543 |
-
#: includes/class-freemius.php:
|
544 |
-
|
545 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
546 |
|
547 |
-
#: includes/class-freemius.php:
|
548 |
-
|
549 |
-
|
|
|
|
|
|
|
|
|
|
|
550 |
|
551 |
-
#: includes/class-freemius.php:
|
|
|
552 |
msgid "%s is the new owner of the account."
|
553 |
msgstr "%s is the new owner of the account."
|
554 |
|
555 |
-
#: includes/class-freemius.php:
|
556 |
msgctxt "as congratulations"
|
557 |
msgid "Congrats"
|
558 |
msgstr "Congrats"
|
559 |
|
560 |
-
#: includes/class-freemius.php:
|
561 |
-
msgid "
|
562 |
-
|
|
|
|
|
|
|
|
|
563 |
|
564 |
-
#: includes/class-freemius.php:
|
565 |
-
|
566 |
-
|
|
|
|
|
|
|
|
|
|
|
567 |
|
568 |
-
#: includes/class-freemius.php:
|
569 |
msgid "Change Ownership"
|
570 |
msgstr "Change Ownership"
|
571 |
|
572 |
-
#: includes/class-freemius.php:
|
573 |
-
msgid "
|
574 |
-
|
|
|
|
|
|
|
|
|
575 |
|
576 |
-
#: includes/class-freemius.php:
|
577 |
msgid "Please provide your full name."
|
578 |
msgstr "Please provide your full name."
|
579 |
|
580 |
-
#: includes/class-freemius.php:
|
581 |
msgid "Your name was successfully updated."
|
582 |
msgstr "Your name was successfully updated."
|
583 |
|
584 |
-
#: includes/class-freemius.php:
|
|
|
585 |
msgid "You have successfully updated your %s."
|
586 |
msgstr "You have successfully updated your %s."
|
587 |
|
588 |
-
#: includes/class-freemius.php:
|
589 |
-
|
590 |
-
|
|
|
|
|
|
|
|
|
|
|
591 |
|
592 |
-
#: includes/class-freemius.php:
|
593 |
msgctxt "advance notice of something that will need attention."
|
594 |
msgid "Heads up"
|
595 |
msgstr "Heads up"
|
596 |
|
597 |
-
#: includes/class-freemius.php:
|
598 |
msgctxt "exclamation"
|
599 |
msgid "Hey"
|
600 |
msgstr "Hey"
|
601 |
|
602 |
-
#: includes/class-freemius.php:
|
603 |
-
|
604 |
-
|
|
|
|
|
|
|
|
|
|
|
605 |
|
606 |
-
#: includes/class-freemius.php:
|
|
|
607 |
msgid "No commitment for %s days - cancel anytime!"
|
608 |
msgstr "No commitment for %s days - cancel anytime!"
|
609 |
|
610 |
-
#: includes/class-freemius.php:
|
611 |
msgid "No credit card required"
|
612 |
msgstr "No credit card required"
|
613 |
|
614 |
-
#: includes/class-freemius.php:
|
615 |
msgctxt "call to action"
|
616 |
msgid "Start free trial"
|
617 |
msgstr "Start free trial"
|
618 |
|
619 |
-
#: includes/class-freemius.php:
|
620 |
-
|
621 |
-
|
|
|
|
|
|
|
|
|
|
|
622 |
|
623 |
-
#: includes/class-freemius.php:
|
624 |
msgid "Learn more"
|
625 |
msgstr "Learn more"
|
626 |
|
627 |
-
#: includes/class-freemius.php:
|
|
|
|
|
|
|
628 |
msgid "Activate License"
|
629 |
msgstr "Activate License"
|
630 |
|
631 |
-
#: includes/class-freemius.php:
|
|
|
632 |
msgid "Change License"
|
633 |
msgstr "Change License"
|
634 |
|
635 |
-
#: includes/class-freemius.php:
|
636 |
msgid "Opt Out"
|
637 |
msgstr "Opt Out"
|
638 |
|
639 |
-
#: includes/class-freemius.php:
|
|
|
|
|
640 |
msgid "Opt In"
|
641 |
msgstr "Opt In"
|
642 |
|
643 |
-
#: includes/class-freemius.php:
|
644 |
-
|
645 |
-
|
|
|
|
|
|
|
|
|
|
|
646 |
|
647 |
-
#: includes/class-freemius.php:
|
|
|
648 |
msgid "Activate %s features"
|
649 |
msgstr "Activate %s features"
|
650 |
|
651 |
-
#: includes/class-freemius.php:
|
652 |
msgid "Please follow these steps to complete the upgrade"
|
653 |
msgstr "Please follow these steps to complete the upgrade"
|
654 |
|
655 |
-
#: includes/class-freemius.php:
|
|
|
656 |
msgid "Download the latest %s version"
|
657 |
msgstr "Download the latest %s version"
|
658 |
|
659 |
-
#: includes/class-freemius.php:
|
660 |
msgid "Upload and activate the downloaded version"
|
661 |
msgstr "Upload and activate the downloaded version"
|
662 |
|
663 |
-
#: includes/class-freemius.php:
|
664 |
msgid "How to upload and activate?"
|
665 |
msgstr "How to upload and activate?"
|
666 |
|
667 |
-
#: includes/class-freemius.php:
|
668 |
-
|
669 |
-
|
|
|
|
|
|
|
|
|
|
|
670 |
|
671 |
-
#: includes/class-freemius.php:
|
672 |
msgid "Auto installation only works for opted-in users."
|
673 |
msgstr "Auto installation only works for opted-in users."
|
674 |
|
675 |
-
#: includes/class-freemius.php:
|
|
|
|
|
676 |
msgid "Invalid module ID."
|
677 |
msgstr "Invalid module ID."
|
678 |
|
679 |
-
#: includes/class-freemius.php:
|
680 |
msgid "Premium version already active."
|
681 |
msgstr "Premium version already active."
|
682 |
|
683 |
-
#: includes/class-freemius.php:
|
684 |
msgid "You do not have a valid license to access the premium version."
|
685 |
msgstr "You do not have a valid license to access the premium version."
|
686 |
|
687 |
-
#: includes/class-freemius.php:
|
688 |
-
msgid "
|
689 |
-
|
|
|
|
|
|
|
|
|
690 |
|
691 |
-
#: includes/class-freemius.php:
|
692 |
msgid "Premium add-on version already installed."
|
693 |
msgstr "Premium add-on version already installed."
|
694 |
|
695 |
-
#: includes/class-freemius.php:
|
696 |
msgid "View paid features"
|
697 |
msgstr "View paid features"
|
698 |
|
699 |
-
#: includes/class-freemius.php:
|
|
|
700 |
msgid "Thank you so much for using %s and its add-ons!"
|
701 |
msgstr "Thank you so much for using %s and its add-ons!"
|
702 |
|
703 |
-
#: includes/class-freemius.php:
|
|
|
704 |
msgid "Thank you so much for using %s!"
|
705 |
msgstr "Thank you so much for using %s!"
|
706 |
|
707 |
-
#: includes/class-freemius.php:
|
708 |
-
|
709 |
-
|
|
|
|
|
|
|
|
|
|
|
710 |
|
711 |
-
#: includes/class-freemius.php:
|
712 |
msgid "Thank you so much for using our products!"
|
713 |
msgstr "Thank you so much for using our products!"
|
714 |
|
715 |
-
#: includes/class-freemius.php:
|
716 |
-
msgid "
|
717 |
-
|
|
|
|
|
|
|
|
|
718 |
|
719 |
-
#: includes/class-freemius.php:
|
|
|
720 |
msgid "%s and its add-ons"
|
721 |
msgstr "%s and its add-ons"
|
722 |
|
723 |
-
#: includes/class-freemius.php:
|
724 |
msgid "Products"
|
725 |
msgstr "Products"
|
726 |
|
727 |
-
#: includes/class-freemius.php:
|
728 |
msgid "Yes"
|
729 |
msgstr "Yes"
|
730 |
|
731 |
-
#: includes/class-freemius.php:
|
732 |
msgid "send me security & feature updates, educational content and offers."
|
733 |
msgstr "send me security & feature updates, educational content and offers."
|
734 |
|
735 |
-
#: includes/class-freemius.php:
|
736 |
msgid "No"
|
737 |
msgstr "No"
|
738 |
|
739 |
-
#: includes/class-freemius.php:
|
740 |
-
|
741 |
-
|
|
|
|
|
|
|
|
|
|
|
742 |
|
743 |
-
#: includes/class-freemius.php:
|
744 |
-
|
745 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
746 |
|
747 |
-
#: includes/class-freemius.php:
|
748 |
-
msgid "
|
749 |
-
|
|
|
|
|
|
|
|
|
750 |
|
751 |
-
#: includes/class-freemius.php:
|
752 |
msgid "License key is empty."
|
753 |
msgstr "License key is empty."
|
754 |
|
755 |
-
#: includes/class-fs-plugin-updater.php:184
|
|
|
756 |
msgid "Renew license"
|
757 |
msgstr "Renew license"
|
758 |
|
759 |
-
#: includes/class-fs-plugin-updater.php:189
|
|
|
760 |
msgid "Buy license"
|
761 |
msgstr "Buy license"
|
762 |
|
763 |
#: includes/class-fs-plugin-updater.php:278
|
|
|
764 |
msgid "There is a %s of %s available."
|
765 |
msgstr "There is a %s of %s available."
|
766 |
|
@@ -773,6 +1077,7 @@ msgid "Important Upgrade Notice:"
|
|
773 |
msgstr "Important Upgrade Notice:"
|
774 |
|
775 |
#: includes/class-fs-plugin-updater.php:1125
|
|
|
776 |
msgid "Installing plugin: %s"
|
777 |
msgstr "Installing plugin: %s"
|
778 |
|
@@ -781,15 +1086,47 @@ msgid "Unable to connect to the filesystem. Please confirm your credentials."
|
|
781 |
msgstr "Unable to connect to the filesystem. Please confirm your credentials."
|
782 |
|
783 |
#: includes/class-fs-plugin-updater.php:1348
|
784 |
-
msgid "
|
785 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
786 |
|
787 |
-
#: includes/
|
|
|
|
|
|
|
|
|
|
|
788 |
msgctxt "verb"
|
789 |
msgid "Purchase"
|
790 |
msgstr "Purchase"
|
791 |
|
792 |
#: includes/fs-plugin-info-dialog.php:372
|
|
|
793 |
msgid "Start my free %s"
|
794 |
msgstr "Start my free %s"
|
795 |
|
@@ -797,7 +1134,9 @@ msgstr "Start my free %s"
|
|
797 |
msgid "Install Free Version Now"
|
798 |
msgstr "Install Free Version Now"
|
799 |
|
800 |
-
#: includes/fs-plugin-info-dialog.php:414
|
|
|
|
|
801 |
msgid "Install Now"
|
802 |
msgstr "Install Now"
|
803 |
|
@@ -806,7 +1145,8 @@ msgctxt "as download latest version"
|
|
806 |
msgid "Download Latest Free Version"
|
807 |
msgstr "Download Latest Free Version"
|
808 |
|
809 |
-
#: includes/fs-plugin-info-dialog.php:426
|
|
|
810 |
msgctxt "as download latest version"
|
811 |
msgid "Download Latest"
|
812 |
msgstr "Download Latest"
|
@@ -815,15 +1155,17 @@ msgstr "Download Latest"
|
|
815 |
msgid "Install Free Version Update Now"
|
816 |
msgstr "Install Free Version Update Now"
|
817 |
|
818 |
-
#: includes/fs-plugin-info-dialog.php:437
|
819 |
msgid "Install Update Now"
|
820 |
msgstr "Install Update Now"
|
821 |
|
822 |
#: includes/fs-plugin-info-dialog.php:448
|
|
|
823 |
msgid "Newer Free Version (%s) Installed"
|
824 |
msgstr "Newer Free Version (%s) Installed"
|
825 |
|
826 |
#: includes/fs-plugin-info-dialog.php:449
|
|
|
827 |
msgid "Newer Version (%s) Installed"
|
828 |
msgstr "Newer Version (%s) Installed"
|
829 |
|
@@ -850,7 +1192,8 @@ msgctxt "Plugin installer section title"
|
|
850 |
msgid "FAQ"
|
851 |
msgstr "FAQ"
|
852 |
|
853 |
-
#: includes/fs-plugin-info-dialog.php:616
|
|
|
854 |
msgid "Screenshots"
|
855 |
msgstr "Screenshots"
|
856 |
|
@@ -879,6 +1222,7 @@ msgid "Plugin Install"
|
|
879 |
msgstr "Plugin Install"
|
880 |
|
881 |
#: includes/fs-plugin-info-dialog.php:716
|
|
|
882 |
msgctxt "e.g. Professional Plan"
|
883 |
msgid "%s Plan"
|
884 |
msgstr "%s Plan"
|
@@ -888,7 +1232,8 @@ msgctxt "e.g. the best product"
|
|
888 |
msgid "Best"
|
889 |
msgstr "Best"
|
890 |
|
891 |
-
#: includes/fs-plugin-info-dialog.php:748
|
|
|
892 |
msgctxt "as every month"
|
893 |
msgid "Monthly"
|
894 |
msgstr "Monthly"
|
@@ -902,7 +1247,10 @@ msgstr "Annual"
|
|
902 |
msgid "Lifetime"
|
903 |
msgstr "Lifetime"
|
904 |
|
905 |
-
#: includes/fs-plugin-info-dialog.php:768
|
|
|
|
|
|
|
906 |
msgctxt "e.g. billed monthly"
|
907 |
msgid "Billed %s"
|
908 |
msgstr "Billed %s"
|
@@ -926,15 +1274,16 @@ msgid "Unlimited Licenses"
|
|
926 |
msgstr "Unlimited Licenses"
|
927 |
|
928 |
#: includes/fs-plugin-info-dialog.php:782
|
|
|
929 |
msgid "Up to %s Sites"
|
930 |
msgstr "Up to %s Sites"
|
931 |
|
932 |
-
#: includes/fs-plugin-info-dialog.php:792
|
933 |
msgctxt "as monthly period"
|
934 |
msgid "mo"
|
935 |
msgstr "mo"
|
936 |
|
937 |
-
#: includes/fs-plugin-info-dialog.php:799
|
938 |
msgctxt "as annual period"
|
939 |
msgid "year"
|
940 |
msgstr "year"
|
@@ -945,14 +1294,17 @@ msgid "Price"
|
|
945 |
msgstr "Price"
|
946 |
|
947 |
#: includes/fs-plugin-info-dialog.php:901
|
|
|
948 |
msgid "Save %s"
|
949 |
msgstr "Save %s"
|
950 |
|
951 |
#: includes/fs-plugin-info-dialog.php:911
|
|
|
952 |
msgid "No commitment for %s - cancel anytime"
|
953 |
msgstr "No commitment for %s - cancel anytime"
|
954 |
|
955 |
#: includes/fs-plugin-info-dialog.php:914
|
|
|
956 |
msgid "After your free %s, pay as little as %s"
|
957 |
msgstr "After your free %s, pay as little as %s"
|
958 |
|
@@ -960,7 +1312,9 @@ msgstr "After your free %s, pay as little as %s"
|
|
960 |
msgid "Details"
|
961 |
msgstr "Details"
|
962 |
|
963 |
-
#: includes/fs-plugin-info-dialog.php:929
|
|
|
|
|
964 |
msgctxt "product version"
|
965 |
msgid "Version"
|
966 |
msgstr "Version"
|
@@ -974,7 +1328,8 @@ msgstr "Author"
|
|
974 |
msgid "Last Updated"
|
975 |
msgstr "Last Updated"
|
976 |
|
977 |
-
#: includes/fs-plugin-info-dialog.php:948
|
|
|
978 |
msgctxt "x-ago"
|
979 |
msgid "%s ago"
|
980 |
msgstr "%s ago"
|
@@ -984,6 +1339,7 @@ msgid "Requires WordPress Version"
|
|
984 |
msgstr "Requires WordPress Version"
|
985 |
|
986 |
#: includes/fs-plugin-info-dialog.php:958
|
|
|
987 |
msgid "%s or higher"
|
988 |
msgstr "%s or higher"
|
989 |
|
@@ -996,10 +1352,12 @@ msgid "Downloaded"
|
|
996 |
msgstr "Downloaded"
|
997 |
|
998 |
#: includes/fs-plugin-info-dialog.php:977
|
|
|
999 |
msgid "%s time"
|
1000 |
msgstr "%s time"
|
1001 |
|
1002 |
#: includes/fs-plugin-info-dialog.php:979
|
|
|
1003 |
msgid "%s times"
|
1004 |
msgstr "%s times"
|
1005 |
|
@@ -1011,7 +1369,8 @@ msgstr "WordPress.org Plugin Page"
|
|
1011 |
msgid "Plugin Homepage"
|
1012 |
msgstr "Plugin Homepage"
|
1013 |
|
1014 |
-
#: includes/fs-plugin-info-dialog.php:1005
|
|
|
1015 |
msgid "Donate to this plugin"
|
1016 |
msgstr "Donate to this plugin"
|
1017 |
|
@@ -1020,26 +1379,32 @@ msgid "Average Rating"
|
|
1020 |
msgstr "Average Rating"
|
1021 |
|
1022 |
#: includes/fs-plugin-info-dialog.php:1019
|
|
|
1023 |
msgid "based on %s"
|
1024 |
msgstr "based on %s"
|
1025 |
|
1026 |
#: includes/fs-plugin-info-dialog.php:1023
|
|
|
1027 |
msgid "%s rating"
|
1028 |
msgstr "%s rating"
|
1029 |
|
1030 |
#: includes/fs-plugin-info-dialog.php:1025
|
|
|
1031 |
msgid "%s ratings"
|
1032 |
msgstr "%s ratings"
|
1033 |
|
1034 |
#: includes/fs-plugin-info-dialog.php:1040
|
|
|
1035 |
msgid "%s star"
|
1036 |
msgstr "%s star"
|
1037 |
|
1038 |
#: includes/fs-plugin-info-dialog.php:1042
|
|
|
1039 |
msgid "%s stars"
|
1040 |
msgstr "%s stars"
|
1041 |
|
1042 |
#: includes/fs-plugin-info-dialog.php:1053
|
|
|
1043 |
msgid "Click to see reviews that provided a rating of %s"
|
1044 |
msgstr "Click to see reviews that provided a rating of %s"
|
1045 |
|
@@ -1047,17 +1412,21 @@ msgstr "Click to see reviews that provided a rating of %s"
|
|
1047 |
msgid "Contributors"
|
1048 |
msgstr "Contributors"
|
1049 |
|
1050 |
-
#: includes/fs-plugin-info-dialog.php:1095
|
|
|
1051 |
msgid "Warning"
|
1052 |
msgstr "Warning"
|
1053 |
|
1054 |
#: includes/fs-plugin-info-dialog.php:1095
|
1055 |
msgid "This plugin has not been tested with your current version of WordPress."
|
1056 |
-
msgstr "
|
|
|
1057 |
|
1058 |
#: includes/fs-plugin-info-dialog.php:1097
|
1059 |
-
msgid "
|
1060 |
-
|
|
|
|
|
1061 |
|
1062 |
#: includes/fs-plugin-info-dialog.php:1116
|
1063 |
msgid "Paid add-on must be deployed to Freemius."
|
@@ -1067,86 +1436,127 @@ msgstr "Paid add-on must be deployed to Freemius."
|
|
1067 |
msgid "Add-on must be deployed to WordPress.org or Freemius."
|
1068 |
msgstr "Add-on must be deployed to WordPress.org or Freemius."
|
1069 |
|
1070 |
-
#: templates/account.php:81
|
|
|
|
|
1071 |
msgid "Downgrading your plan"
|
1072 |
msgstr "Downgrading your plan"
|
1073 |
|
1074 |
-
#: templates/account.php:82
|
|
|
|
|
1075 |
msgid "Cancelling the subscription"
|
1076 |
msgstr "Cancelling the subscription"
|
1077 |
|
1078 |
-
|
1079 |
-
#: templates/account
|
1080 |
-
|
1081 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1082 |
|
1083 |
-
#: templates/account.php:85
|
1084 |
-
|
1085 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1086 |
|
1087 |
-
#: templates/account.php:86
|
1088 |
-
|
1089 |
-
|
|
|
|
|
|
|
|
|
|
|
1090 |
|
1091 |
-
#: templates/account.php:87
|
1092 |
-
|
1093 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1094 |
|
1095 |
-
#: templates/account.php:88
|
1096 |
-
|
1097 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1098 |
|
1099 |
-
|
1100 |
-
#: templates/account
|
|
|
|
|
1101 |
msgid "Activate %s Plan"
|
1102 |
msgstr "Activate %s Plan"
|
1103 |
|
1104 |
-
|
1105 |
-
#: templates/account
|
|
|
1106 |
msgid "Auto renews in %s"
|
1107 |
msgstr "Auto renews in %s"
|
1108 |
|
1109 |
-
|
1110 |
-
#: templates/account
|
|
|
1111 |
msgid "Expires in %s"
|
1112 |
msgstr "Expires in %s"
|
1113 |
|
1114 |
-
#: templates/account.php:96
|
1115 |
msgctxt "as synchronize license"
|
1116 |
msgid "Sync License"
|
1117 |
msgstr "Sync License"
|
1118 |
|
1119 |
-
#: templates/account.php:97
|
1120 |
msgid "Cancel Trial"
|
1121 |
msgstr "Cancel Trial"
|
1122 |
|
1123 |
-
#: templates/account.php:98
|
1124 |
msgid "Change Plan"
|
1125 |
msgstr "Change Plan"
|
1126 |
|
1127 |
-
#: templates/account.php:99
|
1128 |
msgctxt "verb"
|
1129 |
msgid "Upgrade"
|
1130 |
msgstr "Upgrade"
|
1131 |
|
1132 |
-
#: templates/account.php:101
|
|
|
1133 |
msgctxt "verb"
|
1134 |
msgid "Downgrade"
|
1135 |
msgstr "Downgrade"
|
1136 |
|
1137 |
-
#: templates/account.php:103
|
|
|
|
|
1138 |
msgid "Free"
|
1139 |
msgstr "Free"
|
1140 |
|
1141 |
-
#: templates/account.php:104
|
1142 |
msgid "Activate"
|
1143 |
msgstr "Activate"
|
1144 |
|
1145 |
-
#: templates/account.php:105, templates/debug.php:371, includes/customizer/class-fs-customizer-upsell-control.php:106, templates/account/partials/addon.php:46
|
1146 |
-
msgctxt "as product pricing plan"
|
1147 |
-
msgid "Plan"
|
1148 |
-
msgstr "Plan"
|
1149 |
-
|
1150 |
#: templates/account.php:158
|
1151 |
msgid "Free Trial"
|
1152 |
msgstr "Free Trial"
|
@@ -1156,26 +1566,41 @@ msgid "Account Details"
|
|
1156 |
msgstr "Account Details"
|
1157 |
|
1158 |
#: templates/account.php:179
|
1159 |
-
|
1160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1161 |
|
1162 |
#: templates/account.php:181
|
1163 |
-
|
1164 |
-
|
|
|
|
|
|
|
|
|
|
|
1165 |
|
1166 |
#: templates/account.php:184
|
1167 |
msgid "Delete Account"
|
1168 |
msgstr "Delete Account"
|
1169 |
|
1170 |
-
#: templates/account.php:196
|
|
|
1171 |
msgid "Deactivate License"
|
1172 |
msgstr "Deactivate License"
|
1173 |
|
1174 |
-
#: templates/account.php:219
|
1175 |
msgid "Are you sure you want to proceed?"
|
1176 |
msgstr "Are you sure you want to proceed?"
|
1177 |
|
1178 |
-
#: templates/account.php:219
|
1179 |
msgid "Cancel Subscription"
|
1180 |
msgstr "Cancel Subscription"
|
1181 |
|
@@ -1184,15 +1609,15 @@ msgctxt "as synchronize"
|
|
1184 |
msgid "Sync"
|
1185 |
msgstr "Sync"
|
1186 |
|
1187 |
-
#: templates/account.php:261
|
1188 |
msgid "Name"
|
1189 |
msgstr "Name"
|
1190 |
|
1191 |
-
#: templates/account.php:267
|
1192 |
msgid "Email"
|
1193 |
msgstr "Email"
|
1194 |
|
1195 |
-
#: templates/account.php:274
|
1196 |
msgid "User ID"
|
1197 |
msgstr "User ID"
|
1198 |
|
@@ -1204,11 +1629,14 @@ msgstr "Site ID"
|
|
1204 |
msgid "No ID"
|
1205 |
msgstr "No ID"
|
1206 |
|
1207 |
-
#: templates/account.php:290
|
|
|
|
|
1208 |
msgid "Public Key"
|
1209 |
msgstr "Public Key"
|
1210 |
|
1211 |
-
#: templates/account.php:296
|
|
|
1212 |
msgid "Secret Key"
|
1213 |
msgstr "Secret Key"
|
1214 |
|
@@ -1217,11 +1645,13 @@ msgctxt "as secret encryption key missing"
|
|
1217 |
msgid "No Secret"
|
1218 |
msgstr "No Secret"
|
1219 |
|
1220 |
-
#: templates/account.php:318
|
|
|
1221 |
msgid "Trial"
|
1222 |
msgstr "Trial"
|
1223 |
|
1224 |
-
#: templates/account.php:337
|
|
|
1225 |
msgid "License Key"
|
1226 |
msgstr "License Key"
|
1227 |
|
@@ -1229,7 +1659,7 @@ msgstr "License Key"
|
|
1229 |
msgid "not verified"
|
1230 |
msgstr "not verified"
|
1231 |
|
1232 |
-
#: templates/account.php:376
|
1233 |
msgid "Expired"
|
1234 |
msgstr "Expired"
|
1235 |
|
@@ -1246,19 +1676,23 @@ msgid "Verify Email"
|
|
1246 |
msgstr "Verify Email"
|
1247 |
|
1248 |
#: templates/account.php:453
|
|
|
1249 |
msgid "Download %s Version"
|
1250 |
msgstr "Download %s Version"
|
1251 |
|
1252 |
-
#: templates/account.php:467
|
|
|
|
|
1253 |
msgctxt "verb"
|
1254 |
msgid "Show"
|
1255 |
msgstr "Show"
|
1256 |
|
1257 |
#: templates/account.php:481
|
|
|
1258 |
msgid "What is your %s?"
|
1259 |
msgstr "What is your %s?"
|
1260 |
|
1261 |
-
#: templates/account.php:489
|
1262 |
msgctxt "verb"
|
1263 |
msgid "Edit"
|
1264 |
msgstr "Edit"
|
@@ -1271,11 +1705,15 @@ msgstr "Sites"
|
|
1271 |
msgid "Search by address"
|
1272 |
msgstr "Search by address"
|
1273 |
|
1274 |
-
#: templates/account.php:522
|
|
|
|
|
|
|
|
|
1275 |
msgid "ID"
|
1276 |
msgstr "ID"
|
1277 |
|
1278 |
-
#: templates/account.php:523
|
1279 |
msgid "Address"
|
1280 |
msgstr "Address"
|
1281 |
|
@@ -1298,43 +1736,178 @@ msgid "Hide"
|
|
1298 |
msgstr "Hide"
|
1299 |
|
1300 |
#: templates/account.php:686
|
|
|
1301 |
msgid "Cancelling %s"
|
1302 |
msgstr "Cancelling %s"
|
1303 |
|
1304 |
-
#: templates/account.php:686
|
|
|
|
|
1305 |
msgid "trial"
|
1306 |
msgstr "trial"
|
1307 |
|
1308 |
-
#: templates/account.php:701
|
|
|
1309 |
msgid "Cancelling %s..."
|
1310 |
msgstr "Cancelling %s..."
|
1311 |
|
1312 |
-
#: templates/account.php:704
|
|
|
1313 |
msgid "subscription"
|
1314 |
msgstr "subscription"
|
1315 |
|
1316 |
#: templates/account.php:718
|
1317 |
-
msgid "
|
1318 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1319 |
|
1320 |
#: templates/add-ons.php:36
|
|
|
1321 |
msgid "Add Ons for %s"
|
1322 |
msgstr "Add Ons for %s"
|
1323 |
|
1324 |
#: templates/add-ons.php:44
|
1325 |
-
msgid "
|
1326 |
-
|
|
|
|
|
|
|
|
|
1327 |
|
1328 |
#: templates/add-ons.php:139
|
1329 |
msgid "View details"
|
1330 |
msgstr "View details"
|
1331 |
|
1332 |
-
#: templates/admin-notice.php:13
|
|
|
1333 |
msgctxt "as close a window"
|
1334 |
msgid "Dismiss"
|
1335 |
msgstr "Dismiss"
|
1336 |
|
1337 |
#: templates/auto-installation.php:45
|
|
|
1338 |
msgid "%s sec"
|
1339 |
msgstr "%s sec"
|
1340 |
|
@@ -1343,12 +1916,23 @@ msgid "Automatic Installation"
|
|
1343 |
msgstr "Automatic Installation"
|
1344 |
|
1345 |
#: templates/auto-installation.php:93
|
1346 |
-
|
1347 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1348 |
|
1349 |
#: templates/auto-installation.php:104
|
1350 |
-
msgid "
|
1351 |
-
|
|
|
|
|
|
|
|
|
1352 |
|
1353 |
#: templates/auto-installation.php:109
|
1354 |
msgid "Cancel Installation"
|
@@ -1362,8 +1946,8 @@ msgstr "Checkout"
|
|
1362 |
msgid "PCI compliant"
|
1363 |
msgstr "PCI compliant"
|
1364 |
|
1365 |
-
#. translators: %s: name (e.g. Hey John,)
|
1366 |
#: templates/connect.php:112
|
|
|
1367 |
msgctxt "greeting"
|
1368 |
msgid "Hey %s,"
|
1369 |
msgstr "Hey %s,"
|
@@ -1377,66 +1961,120 @@ msgid "Re-send activation email"
|
|
1377 |
msgstr "Re-send activation email"
|
1378 |
|
1379 |
#: templates/connect.php:162
|
|
|
1380 |
msgid "Thanks %s!"
|
1381 |
msgstr "Thanks %s!"
|
1382 |
|
1383 |
-
#: templates/connect.php:172
|
1384 |
msgid "Agree & Activate License"
|
1385 |
msgstr "Agree & Activate License"
|
1386 |
|
1387 |
#: templates/connect.php:181
|
1388 |
-
|
1389 |
-
|
|
|
|
|
|
|
1390 |
|
1391 |
#: templates/connect.php:188
|
1392 |
-
|
1393 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1394 |
|
1395 |
#: templates/connect.php:189
|
1396 |
-
|
1397 |
-
|
|
|
|
|
|
|
|
|
|
|
1398 |
|
1399 |
#: templates/connect.php:195
|
1400 |
-
|
1401 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1402 |
|
1403 |
#: templates/connect.php:196
|
1404 |
-
|
1405 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1406 |
|
1407 |
#: templates/connect.php:230
|
1408 |
msgid "We're excited to introduce the Freemius network-level integration."
|
1409 |
msgstr "We're excited to introduce the Freemius network-level integration."
|
1410 |
|
1411 |
#: templates/connect.php:233
|
1412 |
-
|
1413 |
-
|
|
|
|
|
|
|
|
|
|
|
1414 |
|
1415 |
#: templates/connect.php:235
|
1416 |
-
|
1417 |
-
|
|
|
|
|
|
|
|
|
|
|
1418 |
|
1419 |
#: templates/connect.php:237
|
|
|
1420 |
msgid "%s's paid features"
|
1421 |
msgstr "%s's paid features"
|
1422 |
|
1423 |
#: templates/connect.php:242
|
1424 |
-
|
1425 |
-
|
|
|
|
|
|
|
|
|
|
|
1426 |
|
1427 |
#: templates/connect.php:244
|
1428 |
-
|
1429 |
-
|
|
|
|
|
|
|
|
|
|
|
1430 |
|
1431 |
-
#: templates/connect.php:253
|
1432 |
msgid "License key"
|
1433 |
msgstr "License key"
|
1434 |
|
1435 |
-
#: templates/connect.php:256
|
1436 |
msgid "Can't find your license key?"
|
1437 |
msgstr "Can't find your license key?"
|
1438 |
|
1439 |
-
#: templates/connect.php:315
|
|
|
1440 |
msgctxt "verb"
|
1441 |
msgid "Skip"
|
1442 |
msgstr "Skip"
|
@@ -1446,8 +2084,10 @@ msgid "Delegate to Site Admins"
|
|
1446 |
msgstr "Delegate to Site Admins"
|
1447 |
|
1448 |
#: templates/connect.php:318
|
1449 |
-
msgid "
|
1450 |
-
|
|
|
|
|
1451 |
|
1452 |
#: templates/connect.php:346
|
1453 |
msgid "Your Profile Overview"
|
@@ -1469,11 +2109,12 @@ msgstr "Site URL, WP version, PHP info, plugins & themes"
|
|
1469 |
msgid "Admin Notices"
|
1470 |
msgstr "Admin Notices"
|
1471 |
|
1472 |
-
#: templates/connect.php:359
|
1473 |
msgid "Updates, announcements, marketing, no spam"
|
1474 |
msgstr "Updates, announcements, marketing, no spam"
|
1475 |
|
1476 |
#: templates/connect.php:364
|
|
|
1477 |
msgid "Current %s Events"
|
1478 |
msgstr "Current %s Events"
|
1479 |
|
@@ -1485,9 +2126,14 @@ msgstr "Activation, deactivation and uninstall"
|
|
1485 |
msgid "Newsletter"
|
1486 |
msgstr "Newsletter"
|
1487 |
|
1488 |
-
#: templates/connect.php:391
|
1489 |
-
|
1490 |
-
|
|
|
|
|
|
|
|
|
|
|
1491 |
|
1492 |
#: templates/connect.php:396
|
1493 |
msgid "What permissions are being granted?"
|
@@ -1550,7 +2196,8 @@ msgctxt "as code debugging"
|
|
1550 |
msgid "Debugging"
|
1551 |
msgstr "Debugging"
|
1552 |
|
1553 |
-
#: templates/debug.php:54
|
|
|
1554 |
msgid "Actions"
|
1555 |
msgstr "Actions"
|
1556 |
|
@@ -1586,275 +2233,187 @@ msgstr "Load DB Option"
|
|
1586 |
msgid "Set DB Option"
|
1587 |
msgstr "Set DB Option"
|
1588 |
|
1589 |
-
#: templates/debug.php:
|
1590 |
msgid "Key"
|
1591 |
msgstr "Key"
|
1592 |
|
1593 |
-
#: templates/debug.php:
|
1594 |
msgid "Value"
|
1595 |
msgstr "Value"
|
1596 |
|
1597 |
-
#: templates/debug.php:
|
1598 |
msgctxt "as software development kit versions"
|
1599 |
msgid "SDK Versions"
|
1600 |
msgstr "SDK Versions"
|
1601 |
|
1602 |
-
#: templates/debug.php:
|
1603 |
msgid "SDK Path"
|
1604 |
msgstr "SDK Path"
|
1605 |
|
1606 |
-
#: templates/debug.php:
|
1607 |
msgid "Module Path"
|
1608 |
msgstr "Module Path"
|
1609 |
|
1610 |
-
#: templates/debug.php:
|
1611 |
msgid "Is Active"
|
1612 |
msgstr "Is Active"
|
1613 |
|
1614 |
-
#: templates/debug.php:
|
1615 |
msgid "Plugins"
|
1616 |
msgstr "Plugins"
|
1617 |
|
1618 |
-
#: templates/debug.php:
|
1619 |
msgid "Themes"
|
1620 |
msgstr "Themes"
|
1621 |
|
1622 |
-
#: templates/debug.php:
|
|
|
1623 |
msgid "Slug"
|
1624 |
msgstr "Slug"
|
1625 |
|
1626 |
-
#: templates/debug.php:
|
1627 |
msgid "Title"
|
1628 |
msgstr "Title"
|
1629 |
|
1630 |
-
#: templates/debug.php:
|
1631 |
msgctxt "as application program interface"
|
1632 |
msgid "API"
|
1633 |
msgstr "API"
|
1634 |
|
1635 |
-
#: templates/debug.php:
|
1636 |
msgid "Freemius State"
|
1637 |
msgstr "Freemius State"
|
1638 |
|
1639 |
-
#: templates/debug.php:
|
1640 |
msgid "Network Blog"
|
1641 |
msgstr "Network Blog"
|
1642 |
|
1643 |
-
#: templates/debug.php:
|
1644 |
msgid "Network User"
|
1645 |
msgstr "Network User"
|
1646 |
|
1647 |
-
#: templates/debug.php:
|
1648 |
msgctxt "as connection was successful"
|
1649 |
msgid "Connected"
|
1650 |
msgstr "Connected"
|
1651 |
|
1652 |
-
#: templates/debug.php:
|
1653 |
msgctxt "as connection blocked"
|
1654 |
msgid "Blocked"
|
1655 |
msgstr "Blocked"
|
1656 |
|
1657 |
-
#: templates/debug.php:
|
1658 |
msgid "Simulate Trial Promotion"
|
1659 |
msgstr "Simulate Trial Promotion"
|
1660 |
|
1661 |
-
#: templates/debug.php:
|
1662 |
msgid "Simulate Network Upgrade"
|
1663 |
msgstr "Simulate Network Upgrade"
|
1664 |
|
1665 |
-
#: templates/debug.php:
|
|
|
1666 |
msgid "%s Installs"
|
1667 |
msgstr "%s Installs"
|
1668 |
|
1669 |
-
#: templates/debug.php:
|
1670 |
msgctxt "like websites"
|
1671 |
msgid "Sites"
|
1672 |
msgstr "Sites"
|
1673 |
|
1674 |
-
#: templates/debug.php:
|
1675 |
-
|
1676 |
-
msgstr "Blog ID"
|
1677 |
-
|
1678 |
-
#: templates/debug.php:431, templates/debug.php:509, templates/account/partials/addon.php:339
|
1679 |
-
msgctxt "verb"
|
1680 |
-
msgid "Delete"
|
1681 |
-
msgstr "Delete"
|
1682 |
-
|
1683 |
-
#: templates/debug.php:445
|
1684 |
msgid "Add Ons of module %s"
|
1685 |
msgstr "Add Ons of module %s"
|
1686 |
|
1687 |
-
#: templates/debug.php:
|
1688 |
msgid "Users"
|
1689 |
msgstr "Users"
|
1690 |
|
1691 |
-
#: templates/debug.php:
|
1692 |
msgid "Verified"
|
1693 |
msgstr "Verified"
|
1694 |
|
1695 |
-
#: templates/debug.php:
|
|
|
1696 |
msgid "%s Licenses"
|
1697 |
msgstr "%s Licenses"
|
1698 |
|
1699 |
-
#: templates/debug.php:
|
1700 |
msgid "Plugin ID"
|
1701 |
msgstr "Plugin ID"
|
1702 |
|
1703 |
-
#: templates/debug.php:
|
1704 |
msgid "Plan ID"
|
1705 |
msgstr "Plan ID"
|
1706 |
|
1707 |
-
#: templates/debug.php:
|
1708 |
msgid "Quota"
|
1709 |
msgstr "Quota"
|
1710 |
|
1711 |
-
#: templates/debug.php:
|
1712 |
msgid "Activated"
|
1713 |
msgstr "Activated"
|
1714 |
|
1715 |
-
#: templates/debug.php:
|
1716 |
msgid "Blocking"
|
1717 |
msgstr "Blocking"
|
1718 |
|
1719 |
-
#: templates/debug.php:
|
1720 |
msgctxt "as expiration date"
|
1721 |
msgid "Expiration"
|
1722 |
msgstr "Expiration"
|
1723 |
|
1724 |
-
#: templates/debug.php:
|
1725 |
msgid "Debug Log"
|
1726 |
msgstr "Debug Log"
|
1727 |
|
1728 |
-
#: templates/debug.php:
|
1729 |
msgid "All Types"
|
1730 |
msgstr "All Types"
|
1731 |
|
1732 |
-
#: templates/debug.php:
|
1733 |
msgid "All Requests"
|
1734 |
msgstr "All Requests"
|
1735 |
|
1736 |
-
#: templates/debug.php:
|
|
|
1737 |
msgid "File"
|
1738 |
msgstr "File"
|
1739 |
|
1740 |
-
#: templates/debug.php:
|
|
|
1741 |
msgid "Function"
|
1742 |
msgstr "Function"
|
1743 |
|
1744 |
-
#: templates/debug.php:
|
1745 |
msgid "Process ID"
|
1746 |
msgstr "Process ID"
|
1747 |
|
1748 |
-
#: templates/debug.php:
|
1749 |
msgid "Logger"
|
1750 |
msgstr "Logger"
|
1751 |
|
1752 |
-
#: templates/debug.php:
|
|
|
1753 |
msgid "Message"
|
1754 |
msgstr "Message"
|
1755 |
|
1756 |
-
#: templates/debug.php:
|
1757 |
msgid "Filter"
|
1758 |
msgstr "Filter"
|
1759 |
|
1760 |
-
#: templates/debug.php:
|
1761 |
msgid "Download"
|
1762 |
msgstr "Download"
|
1763 |
|
1764 |
-
#: templates/debug.php:
|
1765 |
msgid "Type"
|
1766 |
msgstr "Type"
|
1767 |
|
1768 |
-
#: templates/debug.php:
|
1769 |
msgid "Timestamp"
|
1770 |
msgstr "Timestamp"
|
1771 |
|
1772 |
-
#: templates/secure-https-header.php:28
|
1773 |
-
msgid "Secure HTTPS %s page, running from an external domain"
|
1774 |
-
msgstr "Secure HTTPS %s page, running from an external domain"
|
1775 |
-
|
1776 |
-
#: includes/customizer/class-fs-customizer-support-section.php:55, templates/plugin-info/features.php:43
|
1777 |
-
msgid "Support"
|
1778 |
-
msgstr "Support"
|
1779 |
-
|
1780 |
-
#: includes/debug/class-fs-debug-bar-panel.php:48, templates/debug/api-calls.php:54, templates/debug/logger.php:62
|
1781 |
-
msgctxt "milliseconds"
|
1782 |
-
msgid "ms"
|
1783 |
-
msgstr "ms"
|
1784 |
-
|
1785 |
-
#: includes/debug/debug-bar-start.php:41
|
1786 |
-
msgid "Freemius API"
|
1787 |
-
msgstr "Freemius API"
|
1788 |
-
|
1789 |
-
#: includes/debug/debug-bar-start.php:42
|
1790 |
-
msgid "Requests"
|
1791 |
-
msgstr "Requests"
|
1792 |
-
|
1793 |
-
#: templates/account/billing.php:28
|
1794 |
-
msgctxt "verb"
|
1795 |
-
msgid "Update"
|
1796 |
-
msgstr "Update"
|
1797 |
-
|
1798 |
-
#: templates/account/billing.php:39
|
1799 |
-
msgid "Billing"
|
1800 |
-
msgstr "Billing"
|
1801 |
-
|
1802 |
-
#: templates/account/billing.php:44, templates/account/billing.php:44
|
1803 |
-
msgid "Business name"
|
1804 |
-
msgstr "Business name"
|
1805 |
-
|
1806 |
-
#: templates/account/billing.php:45, templates/account/billing.php:45
|
1807 |
-
msgid "Tax / VAT ID"
|
1808 |
-
msgstr "Tax / VAT ID"
|
1809 |
-
|
1810 |
-
#: templates/account/billing.php:48, templates/account/billing.php:48, templates/account/billing.php:49, templates/account/billing.php:49
|
1811 |
-
msgid "Address Line %d"
|
1812 |
-
msgstr "Address Line %d"
|
1813 |
-
|
1814 |
-
#: templates/account/billing.php:52, templates/account/billing.php:52
|
1815 |
-
msgid "City"
|
1816 |
-
msgstr "City"
|
1817 |
-
|
1818 |
-
#: templates/account/billing.php:52, templates/account/billing.php:52
|
1819 |
-
msgid "Town"
|
1820 |
-
msgstr "Town"
|
1821 |
-
|
1822 |
-
#: templates/account/billing.php:53, templates/account/billing.php:53
|
1823 |
-
msgid "ZIP / Postal Code"
|
1824 |
-
msgstr "ZIP / Postal Code"
|
1825 |
-
|
1826 |
-
#: templates/account/billing.php:308
|
1827 |
-
msgid "Country"
|
1828 |
-
msgstr "Country"
|
1829 |
-
|
1830 |
-
#: templates/account/billing.php:310
|
1831 |
-
msgid "Select Country"
|
1832 |
-
msgstr "Select Country"
|
1833 |
-
|
1834 |
-
#: templates/account/billing.php:317, templates/account/billing.php:318
|
1835 |
-
msgid "State"
|
1836 |
-
msgstr "State"
|
1837 |
-
|
1838 |
-
#: templates/account/billing.php:317, templates/account/billing.php:318
|
1839 |
-
msgid "Province"
|
1840 |
-
msgstr "Province"
|
1841 |
-
|
1842 |
-
#: templates/account/payments.php:29
|
1843 |
-
msgid "Payments"
|
1844 |
-
msgstr "Payments"
|
1845 |
-
|
1846 |
-
#: templates/account/payments.php:36
|
1847 |
-
msgid "Date"
|
1848 |
-
msgstr "Date"
|
1849 |
-
|
1850 |
-
#: templates/account/payments.php:37
|
1851 |
-
msgid "Amount"
|
1852 |
-
msgstr "Amount"
|
1853 |
-
|
1854 |
-
#: templates/account/payments.php:38, templates/account/payments.php:50
|
1855 |
-
msgid "Invoice"
|
1856 |
-
msgstr "Invoice"
|
1857 |
-
|
1858 |
#: templates/debug/api-calls.php:56
|
1859 |
msgid "API"
|
1860 |
msgstr "API"
|
@@ -1896,17 +2455,20 @@ msgstr "End"
|
|
1896 |
msgid "Log"
|
1897 |
msgstr "Log"
|
1898 |
|
1899 |
-
|
1900 |
-
#: templates/debug/
|
|
|
1901 |
msgid "In %s"
|
1902 |
msgstr "In %s"
|
1903 |
|
1904 |
-
|
1905 |
-
#: templates/debug/
|
|
|
1906 |
msgid "%s ago"
|
1907 |
msgstr "%s ago"
|
1908 |
|
1909 |
-
#: templates/debug/plugins-themes-sync.php:21
|
|
|
1910 |
msgctxt "seconds"
|
1911 |
msgid "sec"
|
1912 |
msgstr "sec"
|
@@ -1919,7 +2481,8 @@ msgstr "Plugins & Themes Sync"
|
|
1919 |
msgid "Total"
|
1920 |
msgstr "Total"
|
1921 |
|
1922 |
-
#: templates/debug/plugins-themes-sync.php:29
|
|
|
1923 |
msgid "Last"
|
1924 |
msgstr "Last"
|
1925 |
|
@@ -1952,38 +2515,64 @@ msgid "Apply to become an affiliate"
|
|
1952 |
msgstr "Apply to become an affiliate"
|
1953 |
|
1954 |
#: templates/forms/affiliation.php:104
|
1955 |
-
|
1956 |
-
|
|
|
|
|
|
|
|
|
|
|
1957 |
|
1958 |
#: templates/forms/affiliation.php:119
|
1959 |
-
msgid "
|
1960 |
-
|
|
|
|
|
|
|
|
|
1961 |
|
1962 |
#: templates/forms/affiliation.php:122
|
1963 |
msgid "Your affiliation account was temporarily suspended."
|
1964 |
msgstr "Your affiliation account was temporarily suspended."
|
1965 |
|
1966 |
#: templates/forms/affiliation.php:125
|
1967 |
-
msgid "
|
1968 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1969 |
|
1970 |
#: templates/forms/affiliation.php:128
|
1971 |
-
msgid "
|
1972 |
-
|
|
|
|
|
|
|
|
|
1973 |
|
1974 |
#: templates/forms/affiliation.php:141
|
|
|
1975 |
msgid "Like the %s? Become our ambassador and earn cash ;-)"
|
1976 |
msgstr "Like the %s? Become our ambassador and earn cash ;-)"
|
1977 |
|
1978 |
#: templates/forms/affiliation.php:142
|
1979 |
-
|
1980 |
-
|
|
|
|
|
|
|
|
|
|
|
1981 |
|
1982 |
#: templates/forms/affiliation.php:145
|
1983 |
msgid "Program Summary"
|
1984 |
msgstr "Program Summary"
|
1985 |
|
1986 |
#: templates/forms/affiliation.php:147
|
|
|
1987 |
msgid "%s commission when a customer purchases a new license."
|
1988 |
msgstr "%s commission when a customer purchases a new license."
|
1989 |
|
@@ -1992,14 +2581,18 @@ msgid "Get commission for automated subscription renewals."
|
|
1992 |
msgstr "Get commission for automated subscription renewals."
|
1993 |
|
1994 |
#: templates/forms/affiliation.php:152
|
1995 |
-
|
1996 |
-
|
|
|
|
|
|
|
1997 |
|
1998 |
#: templates/forms/affiliation.php:155
|
1999 |
msgid "Unlimited commissions."
|
2000 |
msgstr "Unlimited commissions."
|
2001 |
|
2002 |
#: templates/forms/affiliation.php:157
|
|
|
2003 |
msgid "%s minimum payout amount."
|
2004 |
msgstr "%s minimum payout amount."
|
2005 |
|
@@ -2008,14 +2601,18 @@ msgid "Payouts are in USD and processed monthly via PayPal."
|
|
2008 |
msgstr "Payouts are in USD and processed monthly via PayPal."
|
2009 |
|
2010 |
#: templates/forms/affiliation.php:159
|
2011 |
-
msgid "
|
2012 |
-
|
|
|
|
|
|
|
|
|
2013 |
|
2014 |
#: templates/forms/affiliation.php:162
|
2015 |
msgid "Affiliate"
|
2016 |
msgstr "Affiliate"
|
2017 |
|
2018 |
-
#: templates/forms/affiliation.php:165
|
2019 |
msgid "Email address"
|
2020 |
msgstr "Email address"
|
2021 |
|
@@ -2028,12 +2625,18 @@ msgid "PayPal account email address"
|
|
2028 |
msgstr "PayPal account email address"
|
2029 |
|
2030 |
#: templates/forms/affiliation.php:177
|
|
|
2031 |
msgid "Where are you going to promote the %s?"
|
2032 |
msgstr "Where are you going to promote the %s?"
|
2033 |
|
2034 |
#: templates/forms/affiliation.php:179
|
2035 |
-
|
2036 |
-
|
|
|
|
|
|
|
|
|
|
|
2037 |
|
2038 |
#: templates/forms/affiliation.php:181
|
2039 |
msgid "Add another domain"
|
@@ -2064,18 +2667,29 @@ msgid "Website, email, and social media statistics (optional)"
|
|
2064 |
msgstr "Website, email, and social media statistics (optional)"
|
2065 |
|
2066 |
#: templates/forms/affiliation.php:210
|
2067 |
-
msgid "
|
2068 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
2069 |
|
2070 |
#: templates/forms/affiliation.php:214
|
2071 |
msgid "How will you promote us?"
|
2072 |
msgstr "How will you promote us?"
|
2073 |
|
2074 |
#: templates/forms/affiliation.php:217
|
2075 |
-
|
2076 |
-
|
|
|
|
|
|
|
|
|
|
|
2077 |
|
2078 |
-
#: templates/forms/affiliation.php:223
|
2079 |
msgid "Cancel"
|
2080 |
msgstr "Cancel"
|
2081 |
|
@@ -2083,9 +2697,91 @@ msgstr "Cancel"
|
|
2083 |
msgid "Become an affiliate"
|
2084 |
msgstr "Become an affiliate"
|
2085 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2086 |
#: templates/forms/license-activation.php:20
|
2087 |
-
msgid "
|
2088 |
-
|
|
|
|
|
|
|
|
|
2089 |
|
2090 |
#: templates/forms/license-activation.php:25
|
2091 |
msgid "Update License"
|
@@ -2102,18 +2798,30 @@ msgid "Opt In"
|
|
2102 |
msgstr "Opt In"
|
2103 |
|
2104 |
#: templates/forms/optout.php:33
|
2105 |
-
|
2106 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2107 |
|
2108 |
#: templates/forms/optout.php:35
|
2109 |
-
|
2110 |
-
|
|
|
|
|
|
|
2111 |
|
2112 |
#: templates/forms/premium-versions-upgrade-handler.php:40
|
|
|
2113 |
msgid "There is a new version of %s available."
|
2114 |
msgstr "There is a new version of %s available."
|
2115 |
|
2116 |
#: templates/forms/premium-versions-upgrade-handler.php:41
|
|
|
2117 |
msgid " %s to access version %s security & feature updates, and support."
|
2118 |
msgstr " %s to access version %s security & feature updates, and support."
|
2119 |
|
@@ -2131,34 +2839,64 @@ msgid "Send License Key"
|
|
2131 |
msgstr "Send License Key"
|
2132 |
|
2133 |
#: templates/forms/resend-key.php:57
|
2134 |
-
msgid "
|
2135 |
-
|
|
|
|
|
|
|
|
|
2136 |
|
2137 |
-
#: templates/forms/subscription-cancellation.php:
|
2138 |
-
|
2139 |
-
|
|
|
|
|
|
|
|
|
|
|
2140 |
|
2141 |
-
#: templates/forms/subscription-cancellation.php:
|
2142 |
-
|
2143 |
-
|
|
|
|
|
|
|
|
|
|
|
2144 |
|
2145 |
#: templates/forms/subscription-cancellation.php:52
|
2146 |
msgid "license"
|
2147 |
msgstr "license"
|
2148 |
|
2149 |
-
#: templates/forms/subscription-cancellation.php:
|
2150 |
-
|
2151 |
-
|
|
|
|
|
|
|
|
|
|
|
2152 |
|
2153 |
-
#: templates/forms/subscription-cancellation.php:
|
2154 |
-
|
2155 |
-
|
|
|
|
|
|
|
|
|
|
|
2156 |
|
2157 |
#: templates/forms/subscription-cancellation.php:103
|
2158 |
-
|
2159 |
-
|
|
|
|
|
|
|
|
|
|
|
2160 |
|
2161 |
#: templates/forms/subscription-cancellation.php:136
|
|
|
2162 |
msgid "Cancel %s?"
|
2163 |
msgstr "Cancel %s?"
|
2164 |
|
@@ -2166,17 +2904,25 @@ msgstr "Cancel %s?"
|
|
2166 |
msgid "Proceed"
|
2167 |
msgstr "Proceed"
|
2168 |
|
2169 |
-
#: templates/forms/subscription-cancellation.php:191, templates/forms/deactivation/form.php:150
|
2170 |
-
msgid "Cancel %s & Proceed"
|
2171 |
-
msgstr "Cancel %s & Proceed"
|
2172 |
-
|
2173 |
#: templates/forms/trial-start.php:22
|
2174 |
-
|
2175 |
-
|
|
|
|
|
|
|
2176 |
|
2177 |
#: templates/forms/trial-start.php:28
|
2178 |
-
|
2179 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2180 |
|
2181 |
#: templates/js/style-premium-theme.php:37
|
2182 |
msgid "Premium"
|
@@ -2198,19 +2944,24 @@ msgstr "Activate license on all pending sites."
|
|
2198 |
msgid "Apply on all pending sites."
|
2199 |
msgstr "Apply on all pending sites."
|
2200 |
|
2201 |
-
#: templates/partials/network-activation.php:36
|
|
|
2202 |
msgid "allow"
|
2203 |
msgstr "allow"
|
2204 |
|
2205 |
-
#: templates/partials/network-activation.php:38
|
|
|
2206 |
msgid "delegate"
|
2207 |
msgstr "delegate"
|
2208 |
|
2209 |
-
#: templates/partials/network-activation.php:41
|
|
|
2210 |
msgid "skip"
|
2211 |
msgstr "skip"
|
2212 |
|
2213 |
-
#: templates/plugin-info/description.php:72
|
|
|
|
|
2214 |
msgid "Click to view full-size screenshot %d"
|
2215 |
msgstr "Click to view full-size screenshot %d"
|
2216 |
|
@@ -2218,103 +2969,7 @@ msgstr "Click to view full-size screenshot %d"
|
|
2218 |
msgid "Unlimited Updates"
|
2219 |
msgstr "Unlimited Updates"
|
2220 |
|
2221 |
-
#: templates/
|
2222 |
-
|
2223 |
-
|
2224 |
-
|
2225 |
-
#: templates/account/partials/activate-license-button.php:50
|
2226 |
-
msgctxt "as 5 licenses left"
|
2227 |
-
msgid "%s left"
|
2228 |
-
msgstr "%s left"
|
2229 |
-
|
2230 |
-
#: templates/account/partials/activate-license-button.php:51
|
2231 |
-
msgid "Last license"
|
2232 |
-
msgstr "Last license"
|
2233 |
-
|
2234 |
-
#: templates/account/partials/addon.php:115
|
2235 |
-
msgid "Cancelled"
|
2236 |
-
msgstr "Cancelled"
|
2237 |
-
|
2238 |
-
#: templates/account/partials/addon.php:125
|
2239 |
-
msgid "No expiration"
|
2240 |
-
msgstr "No expiration"
|
2241 |
-
|
2242 |
-
#: templates/account/partials/addon.php:264, templates/account/partials/addon.php:317
|
2243 |
-
msgid "Activate this add-on"
|
2244 |
-
msgstr "Activate this add-on"
|
2245 |
-
|
2246 |
-
#: templates/account/partials/site.php:181
|
2247 |
-
msgid "Owner Name"
|
2248 |
-
msgstr "Owner Name"
|
2249 |
-
|
2250 |
-
#: templates/account/partials/site.php:193
|
2251 |
-
msgid "Owner Email"
|
2252 |
-
msgstr "Owner Email"
|
2253 |
-
|
2254 |
-
#: templates/account/partials/site.php:205
|
2255 |
-
msgid "Owner ID"
|
2256 |
-
msgstr "Owner ID"
|
2257 |
-
|
2258 |
-
#: templates/account/partials/site.php:270
|
2259 |
-
msgid "Subscription"
|
2260 |
-
msgstr "Subscription"
|
2261 |
-
|
2262 |
-
#: templates/forms/deactivation/contact.php:19
|
2263 |
-
msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
|
2264 |
-
msgstr "Sorry for the inconvenience and we are here to help if you give us a chance."
|
2265 |
-
|
2266 |
-
#: templates/forms/deactivation/contact.php:22
|
2267 |
-
msgid "Contact Support"
|
2268 |
-
msgstr "Contact Support"
|
2269 |
-
|
2270 |
-
#: templates/forms/deactivation/form.php:59
|
2271 |
-
msgid "Anonymous feedback"
|
2272 |
-
msgstr "Anonymous feedback"
|
2273 |
-
|
2274 |
-
#: templates/forms/deactivation/form.php:66
|
2275 |
-
msgid "Deactivate"
|
2276 |
-
msgstr "Deactivate"
|
2277 |
-
|
2278 |
-
#: templates/forms/deactivation/form.php:68
|
2279 |
-
msgid "Activate %s"
|
2280 |
-
msgstr "Activate %s"
|
2281 |
-
|
2282 |
-
#: templates/forms/deactivation/form.php:80
|
2283 |
-
msgid "Quick Feedback"
|
2284 |
-
msgstr "Quick Feedback"
|
2285 |
-
|
2286 |
-
#: templates/forms/deactivation/form.php:84
|
2287 |
-
msgid "If you have a moment, please let us know why you are %s"
|
2288 |
-
msgstr "If you have a moment, please let us know why you are %s"
|
2289 |
-
|
2290 |
-
#: templates/forms/deactivation/form.php:84
|
2291 |
-
msgid "deactivating"
|
2292 |
-
msgstr "deactivating"
|
2293 |
-
|
2294 |
-
#: templates/forms/deactivation/form.php:84
|
2295 |
-
msgid "switching"
|
2296 |
-
msgstr "switching"
|
2297 |
-
|
2298 |
-
#: templates/forms/deactivation/form.php:332
|
2299 |
-
msgid "Submit & %s"
|
2300 |
-
msgstr "Submit & %s"
|
2301 |
-
|
2302 |
-
#: templates/forms/deactivation/form.php:353
|
2303 |
-
msgid "Kindly tell us the reason so we can improve."
|
2304 |
-
msgstr "Kindly tell us the reason so we can improve."
|
2305 |
-
|
2306 |
-
#: templates/forms/deactivation/form.php:478
|
2307 |
-
msgid "Yes - %s"
|
2308 |
-
msgstr "Yes - %s"
|
2309 |
-
|
2310 |
-
#: templates/forms/deactivation/form.php:485
|
2311 |
-
msgid "Skip & %s"
|
2312 |
-
msgstr "Skip & %s"
|
2313 |
-
|
2314 |
-
#: templates/forms/deactivation/retry-skip.php:21
|
2315 |
-
msgid "Click here to use the plugin anonymously"
|
2316 |
-
msgstr "Click here to use the plugin anonymously"
|
2317 |
-
|
2318 |
-
#: templates/forms/deactivation/retry-skip.php:23
|
2319 |
-
msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
|
2320 |
-
msgstr "You might have missed it, but you don't have to share any data and can just %s the opt-in."
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: freemius\n"
|
6 |
"Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
|
7 |
+
"POT-Creation-Date: 2019-05-04 16:17+0200\n"
|
8 |
"PO-Revision-Date: \n"
|
9 |
"Last-Translator: Vova Feldman <vova@freemius.com>\n"
|
|
|
10 |
"Language-Team: Freemius Team <admin@freemius.com>\n"
|
11 |
+
"Language: en\n"
|
12 |
+
"MIME-Version: 1.0\n"
|
13 |
"Content-Type: text/plain; charset=UTF-8\n"
|
14 |
"Content-Transfer-Encoding: 8bit\n"
|
15 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
|
16 |
"X-Poedit-Basepath: ..\n"
|
17 |
+
"X-Poedit-KeywordsList: get_text_inline;fs_text_inline;fs_echo_inline;"
|
18 |
+
"fs_esc_js_inline;fs_esc_attr_inline;fs_esc_attr_echo_inline;"
|
19 |
+
"fs_esc_html_inline;fs_esc_html_echo_inline;get_text_x_inline:1,2c;"
|
20 |
+
"fs_text_x_inline:1,2c;fs_echo_x_inline:1,2c;fs_esc_attr_x_inline:1,2c;"
|
21 |
+
"fs_esc_js_x_inline:1,2c;fs_esc_js_echo_x_inline:1,2c;"
|
22 |
+
"fs_esc_html_x_inline:1,2c;fs_esc_html_echo_x_inline:1,2c\n"
|
23 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
24 |
+
"X-Generator: Poedit 2.2.1\n"
|
25 |
"X-Poedit-SearchPath-0: .\n"
|
26 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
|
|
27 |
|
28 |
#: includes/class-freemius.php:1688
|
29 |
+
msgid ""
|
30 |
+
"Freemius SDK couldn't find the plugin's main file. Please contact "
|
31 |
+
"sdk@freemius.com with the current error."
|
32 |
+
msgstr ""
|
33 |
+
"Freemius SDK couldn't find the plugin's main file. Please contact "
|
34 |
+
"sdk@freemius.com with the current error."
|
35 |
|
36 |
#: includes/class-freemius.php:1690
|
37 |
msgid "Error"
|
38 |
msgstr "Error"
|
39 |
|
40 |
#: includes/class-freemius.php:2011
|
41 |
+
#, php-format
|
42 |
msgid "I found a better %s"
|
43 |
msgstr "I found a better %s"
|
44 |
|
45 |
#: includes/class-freemius.php:2013
|
46 |
+
#, php-format
|
47 |
msgid "What's the %s's name?"
|
48 |
msgstr "What's the %s's name?"
|
49 |
|
50 |
#: includes/class-freemius.php:2019
|
51 |
+
#, php-format
|
52 |
msgid "It's a temporary %s. I'm just debugging an issue."
|
53 |
msgstr "It's a temporary %s. I'm just debugging an issue."
|
54 |
|
60 |
msgid "Theme Switch"
|
61 |
msgstr "Theme Switch"
|
62 |
|
63 |
+
#: includes/class-freemius.php:2031 templates/forms/resend-key.php:24
|
64 |
msgid "Other"
|
65 |
msgstr "Other"
|
66 |
|
67 |
#: includes/class-freemius.php:2039
|
68 |
+
#, php-format
|
69 |
msgid "I no longer need the %s"
|
70 |
msgstr "I no longer need the %s"
|
71 |
|
72 |
#: includes/class-freemius.php:2046
|
73 |
+
#, php-format
|
74 |
msgid "I only needed the %s for a short period"
|
75 |
msgstr "I only needed the %s for a short period"
|
76 |
|
77 |
#: includes/class-freemius.php:2052
|
78 |
+
#, php-format
|
79 |
msgid "The %s broke my site"
|
80 |
msgstr "The %s broke my site"
|
81 |
|
82 |
#: includes/class-freemius.php:2059
|
83 |
+
#, php-format
|
84 |
msgid "The %s suddenly stopped working"
|
85 |
msgstr "The %s suddenly stopped working"
|
86 |
|
97 |
msgstr "I don't like to share my information with you"
|
98 |
|
99 |
#: includes/class-freemius.php:2098
|
100 |
+
#, php-format
|
101 |
msgid "The %s didn't work"
|
102 |
msgstr "The %s didn't work"
|
103 |
|
106 |
msgstr "I couldn't understand how to make it work"
|
107 |
|
108 |
#: includes/class-freemius.php:2116
|
109 |
+
#, php-format
|
110 |
msgid "The %s is great, but I need specific feature that you don't support"
|
111 |
msgstr "The %s is great, but I need specific feature that you don't support"
|
112 |
|
115 |
msgstr "What feature?"
|
116 |
|
117 |
#: includes/class-freemius.php:2122
|
118 |
+
#, php-format
|
119 |
msgid "The %s is not working"
|
120 |
msgstr "The %s is not working"
|
121 |
|
132 |
msgstr "What you've been looking for?"
|
133 |
|
134 |
#: includes/class-freemius.php:2134
|
135 |
+
#, php-format
|
136 |
msgid "The %s didn't work as expected"
|
137 |
msgstr "The %s didn't work as expected"
|
138 |
|
140 |
msgid "What did you expect?"
|
141 |
msgstr "What did you expect?"
|
142 |
|
143 |
+
#: includes/class-freemius.php:2947 templates/debug.php:20
|
144 |
msgid "Freemius Debug"
|
145 |
msgstr "Freemius Debug"
|
146 |
|
147 |
+
#: includes/class-freemius.php:3696
|
148 |
msgid "I don't know what is cURL or how to install it, help me!"
|
149 |
msgstr "I don't know what is cURL or how to install it, help me!"
|
150 |
|
151 |
+
#: includes/class-freemius.php:3698
|
152 |
+
#, php-format
|
153 |
+
msgid ""
|
154 |
+
"We'll make sure to contact your hosting company and resolve the issue. You "
|
155 |
+
"will get a follow-up email to %s once we have an update."
|
156 |
+
msgstr ""
|
157 |
+
"We'll make sure to contact your hosting company and resolve the issue. You "
|
158 |
+
"will get a follow-up email to %s once we have an update."
|
159 |
|
160 |
+
#: includes/class-freemius.php:3705
|
161 |
+
#, php-format
|
162 |
+
msgid ""
|
163 |
+
"Great, please install cURL and enable it in your php.ini file. In addition, "
|
164 |
+
"search for the 'disable_functions' directive in your php.ini file and remove "
|
165 |
+
"any disabled methods starting with 'curl_'. To make sure it was successfully "
|
166 |
+
"activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate "
|
167 |
+
"it back again."
|
168 |
+
msgstr ""
|
169 |
+
"Great, please install cURL and enable it in your php.ini file. In addition, "
|
170 |
+
"search for the 'disable_functions' directive in your php.ini file and remove "
|
171 |
+
"any disabled methods starting with 'curl_'. To make sure it was successfully "
|
172 |
+
"activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate "
|
173 |
+
"it back again."
|
174 |
|
175 |
+
#: includes/class-freemius.php:3810
|
176 |
msgid "Yes - do your thing"
|
177 |
msgstr "Yes - do your thing"
|
178 |
|
179 |
+
#: includes/class-freemius.php:3815
|
180 |
msgid "No - just deactivate"
|
181 |
msgstr "No - just deactivate"
|
182 |
|
183 |
+
#: includes/class-freemius.php:3860 includes/class-freemius.php:4369
|
184 |
+
#: includes/class-freemius.php:5468 includes/class-freemius.php:11576
|
185 |
+
#: includes/class-freemius.php:14947 includes/class-freemius.php:14999
|
186 |
+
#: includes/class-freemius.php:15061 includes/class-freemius.php:17294
|
187 |
+
#: includes/class-freemius.php:17304 includes/class-freemius.php:17913
|
188 |
+
#: includes/class-freemius.php:18773 includes/class-freemius.php:18888
|
189 |
+
#: includes/class-freemius.php:19032 templates/add-ons.php:43
|
190 |
msgctxt "exclamation"
|
191 |
msgid "Oops"
|
192 |
msgstr "Oops"
|
193 |
|
194 |
+
#: includes/class-freemius.php:3929
|
195 |
+
#, php-format
|
196 |
+
msgid ""
|
197 |
+
"Thank for giving us the chance to fix it! A message was just sent to our "
|
198 |
+
"technical staff. We will get back to you as soon as we have an update to %s. "
|
199 |
+
"Appreciate your patience."
|
200 |
+
msgstr ""
|
201 |
+
"Thank for giving us the chance to fix it! A message was just sent to our "
|
202 |
+
"technical staff. We will get back to you as soon as we have an update to %s. "
|
203 |
+
"Appreciate your patience."
|
204 |
|
205 |
+
#: includes/class-freemius.php:4366
|
206 |
+
#, php-format
|
207 |
msgctxt "addonX cannot run without pluginY"
|
208 |
msgid "%s cannot run without %s."
|
209 |
msgstr "%s cannot run without %s."
|
210 |
|
211 |
+
#: includes/class-freemius.php:4367
|
212 |
+
#, php-format
|
213 |
msgctxt "addonX cannot run..."
|
214 |
msgid "%s cannot run without the plugin."
|
215 |
msgstr "%s cannot run without the plugin."
|
216 |
|
217 |
+
#: includes/class-freemius.php:4513 includes/class-freemius.php:4538
|
218 |
+
#: includes/class-freemius.php:17984
|
219 |
+
#, php-format
|
220 |
+
msgid ""
|
221 |
+
"Unexpected API error. Please contact the %s's author with the following "
|
222 |
+
"error."
|
223 |
+
msgstr ""
|
224 |
+
"Unexpected API error. Please contact the %s's author with the following "
|
225 |
+
"error."
|
226 |
|
227 |
+
#: includes/class-freemius.php:5156
|
228 |
+
#, php-format
|
229 |
msgid "Premium %s version was successfully activated."
|
230 |
msgstr "Premium %s version was successfully activated."
|
231 |
|
232 |
+
#: includes/class-freemius.php:5168 includes/class-freemius.php:7030
|
233 |
+
msgctxt ""
|
234 |
+
"Used to express elation, enthusiasm, or triumph (especially in electronic "
|
235 |
+
"communication)."
|
236 |
msgid "W00t"
|
237 |
msgstr "W00t"
|
238 |
|
239 |
+
#: includes/class-freemius.php:5183
|
240 |
+
#, php-format
|
241 |
msgid "You have a %s license."
|
242 |
msgstr "You have a %s license."
|
243 |
|
244 |
+
#: includes/class-freemius.php:5187 includes/class-freemius.php:14368
|
245 |
+
#: includes/class-freemius.php:14379 includes/class-freemius.php:17208
|
246 |
+
#: includes/class-freemius.php:17522 includes/class-freemius.php:17588
|
247 |
+
#: includes/class-freemius.php:17738
|
248 |
msgctxt "interjection expressing joy or exuberance"
|
249 |
msgid "Yee-haw"
|
250 |
msgstr "Yee-haw"
|
251 |
|
252 |
+
#: includes/class-freemius.php:5452
|
253 |
+
#, php-format
|
254 |
+
msgid ""
|
255 |
+
"%s free trial was successfully cancelled. Since the add-on is premium only "
|
256 |
+
"it was automatically deactivated. If you like to use it in the future, "
|
257 |
+
"you'll have to purchase a license."
|
258 |
+
msgstr ""
|
259 |
+
"%s free trial was successfully cancelled. Since the add-on is premium only "
|
260 |
+
"it was automatically deactivated. If you like to use it in the future, "
|
261 |
+
"you'll have to purchase a license."
|
262 |
|
263 |
+
#: includes/class-freemius.php:5456
|
264 |
+
#, php-format
|
265 |
+
msgid ""
|
266 |
+
"%s is a premium only add-on. You have to purchase a license first before "
|
267 |
+
"activating the plugin."
|
268 |
+
msgstr ""
|
269 |
+
"%s is a premium only add-on. You have to purchase a license first before "
|
270 |
+
"activating the plugin."
|
271 |
|
272 |
+
#: includes/class-freemius.php:5464 templates/account/partials/addon.php:288
|
273 |
+
#: templates/add-ons.php:103
|
274 |
+
#, php-format
|
275 |
msgid "More information about %s"
|
276 |
msgstr "More information about %s"
|
277 |
|
278 |
+
#: includes/class-freemius.php:5465
|
279 |
msgid "Purchase License"
|
280 |
msgstr "Purchase License"
|
281 |
|
282 |
+
#: includes/class-freemius.php:6398 templates/connect.php:163
|
283 |
+
#, php-format
|
284 |
+
msgid ""
|
285 |
+
"You should receive an activation email for %s to your mailbox at %s. Please "
|
286 |
+
"make sure you click the activation button in that email to %s."
|
287 |
+
msgstr ""
|
288 |
+
"You should receive an activation email for %s to your mailbox at %s. Please "
|
289 |
+
"make sure you click the activation button in that email to %s."
|
290 |
|
291 |
+
#: includes/class-freemius.php:6402
|
292 |
msgid "start the trial"
|
293 |
msgstr "start the trial"
|
294 |
|
295 |
+
#: includes/class-freemius.php:6403 templates/connect.php:167
|
296 |
msgid "complete the install"
|
297 |
msgstr "complete the install"
|
298 |
|
299 |
+
#: includes/class-freemius.php:6516
|
300 |
+
#, php-format
|
301 |
msgid "You are just one step away - %s"
|
302 |
msgstr "You are just one step away - %s"
|
303 |
|
304 |
+
#: includes/class-freemius.php:6519
|
305 |
+
#, php-format
|
306 |
msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
|
307 |
msgid "Complete \"%s\" Activation Now"
|
308 |
msgstr "Complete \"%s\" Activation Now"
|
309 |
|
310 |
+
#: includes/class-freemius.php:6597
|
311 |
+
#, php-format
|
312 |
msgid "We made a few tweaks to the %s, %s"
|
313 |
msgstr "We made a few tweaks to the %s, %s"
|
314 |
|
315 |
+
#: includes/class-freemius.php:6601
|
316 |
+
#, php-format
|
317 |
msgid "Opt in to make \"%s\" better!"
|
318 |
msgstr "Opt in to make \"%s\" better!"
|
319 |
|
320 |
+
#: includes/class-freemius.php:7029
|
321 |
+
#, php-format
|
322 |
msgid "The upgrade of %s was successfully completed."
|
323 |
msgstr "The upgrade of %s was successfully completed."
|
324 |
|
325 |
+
#: includes/class-freemius.php:8956 includes/class-fs-plugin-updater.php:886
|
326 |
+
#: includes/class-fs-plugin-updater.php:1081
|
327 |
+
#: includes/class-fs-plugin-updater.php:1088 templates/auto-installation.php:32
|
328 |
msgid "Add-On"
|
329 |
msgstr "Add-On"
|
330 |
|
331 |
+
#: includes/class-freemius.php:8958 templates/debug.php:361
|
332 |
+
#: templates/debug.php:522
|
333 |
msgid "Plugin"
|
334 |
msgstr "Plugin"
|
335 |
|
336 |
+
#: includes/class-freemius.php:8959 templates/debug.php:361
|
337 |
+
#: templates/debug.php:522 templates/forms/deactivation/form.php:67
|
338 |
msgid "Theme"
|
339 |
msgstr "Theme"
|
340 |
|
341 |
+
#: includes/class-freemius.php:11443
|
342 |
msgid "Invalid site details collection."
|
343 |
msgstr "Invalid site details collection."
|
344 |
|
345 |
+
#: includes/class-freemius.php:11563
|
346 |
+
msgid ""
|
347 |
+
"We couldn't find your email address in the system, are you sure it's the "
|
348 |
+
"right address?"
|
349 |
+
msgstr ""
|
350 |
+
"We couldn't find your email address in the system, are you sure it's the "
|
351 |
+
"right address?"
|
352 |
|
353 |
+
#: includes/class-freemius.php:11565
|
354 |
+
msgid ""
|
355 |
+
"We can't see any active licenses associated with that email address, are you "
|
356 |
+
"sure it's the right address?"
|
357 |
+
msgstr ""
|
358 |
+
"We can't see any active licenses associated with that email address, are you "
|
359 |
+
"sure it's the right address?"
|
360 |
|
361 |
+
#: includes/class-freemius.php:11839
|
362 |
msgid "Account is pending activation."
|
363 |
msgstr "Account is pending activation."
|
364 |
|
365 |
+
#: includes/class-freemius.php:11951
|
366 |
+
#: templates/forms/premium-versions-upgrade-handler.php:47
|
367 |
msgid "Buy a license now"
|
368 |
msgstr "Buy a license now"
|
369 |
|
370 |
+
#: includes/class-freemius.php:11963
|
371 |
+
#: templates/forms/premium-versions-upgrade-handler.php:46
|
372 |
msgid "Renew your license now"
|
373 |
msgstr "Renew your license now"
|
374 |
|
375 |
+
#: includes/class-freemius.php:11967
|
376 |
+
#, php-format
|
377 |
msgid "%s to access version %s security & feature updates, and support."
|
378 |
msgstr "%s to access version %s security & feature updates, and support."
|
379 |
|
380 |
+
#: includes/class-freemius.php:14350
|
381 |
+
#, php-format
|
382 |
msgid "%s activation was successfully completed."
|
383 |
msgstr "%s activation was successfully completed."
|
384 |
|
385 |
+
#: includes/class-freemius.php:14364
|
386 |
+
#, php-format
|
387 |
msgid "Your account was successfully activated with the %s plan."
|
388 |
msgstr "Your account was successfully activated with the %s plan."
|
389 |
|
390 |
+
#: includes/class-freemius.php:14375 includes/class-freemius.php:17584
|
391 |
msgid "Your trial has been successfully started."
|
392 |
msgstr "Your trial has been successfully started."
|
393 |
|
394 |
+
#: includes/class-freemius.php:14945 includes/class-freemius.php:14997
|
395 |
+
#: includes/class-freemius.php:15059
|
396 |
+
#, php-format
|
397 |
msgid "Couldn't activate %s."
|
398 |
msgstr "Couldn't activate %s."
|
399 |
|
400 |
+
#: includes/class-freemius.php:14946 includes/class-freemius.php:14998
|
401 |
+
#: includes/class-freemius.php:15060
|
402 |
msgid "Please contact us with the following message:"
|
403 |
msgstr "Please contact us with the following message:"
|
404 |
|
405 |
+
#: includes/class-freemius.php:15409 includes/class-freemius.php:19870
|
406 |
msgid "Upgrade"
|
407 |
msgstr "Upgrade"
|
408 |
|
409 |
+
#: includes/class-freemius.php:15415
|
410 |
msgid "Start Trial"
|
411 |
msgstr "Start Trial"
|
412 |
|
413 |
+
#: includes/class-freemius.php:15417
|
414 |
msgid "Pricing"
|
415 |
msgstr "Pricing"
|
416 |
|
417 |
+
#: includes/class-freemius.php:15479 includes/class-freemius.php:15481
|
418 |
msgid "Affiliation"
|
419 |
msgstr "Affiliation"
|
420 |
|
421 |
+
#: includes/class-freemius.php:15509 includes/class-freemius.php:15511
|
422 |
+
#: templates/account.php:150 templates/debug.php:326
|
423 |
msgid "Account"
|
424 |
msgstr "Account"
|
425 |
|
426 |
+
#: includes/class-freemius.php:15524 includes/class-freemius.php:15526
|
427 |
+
#: includes/customizer/class-fs-customizer-support-section.php:60
|
428 |
msgid "Contact Us"
|
429 |
msgstr "Contact Us"
|
430 |
|
431 |
+
#: includes/class-freemius.php:15536 includes/class-freemius.php:15538
|
432 |
+
#: includes/class-freemius.php:19880 templates/account.php:100
|
433 |
+
#: templates/account/partials/addon.php:41
|
434 |
msgid "Add-Ons"
|
435 |
msgstr "Add-Ons"
|
436 |
|
437 |
+
#: includes/class-freemius.php:15572
|
438 |
msgctxt "ASCII arrow left icon"
|
439 |
msgid "←"
|
440 |
msgstr "←"
|
441 |
|
442 |
+
#: includes/class-freemius.php:15572
|
443 |
msgctxt "ASCII arrow right icon"
|
444 |
msgid "➤"
|
445 |
msgstr "➤"
|
446 |
|
447 |
+
#: includes/class-freemius.php:15574 templates/pricing.php:97
|
448 |
msgctxt "noun"
|
449 |
msgid "Pricing"
|
450 |
msgstr "Pricing"
|
451 |
|
452 |
+
#: includes/class-freemius.php:15787
|
453 |
+
#: includes/customizer/class-fs-customizer-support-section.php:67
|
454 |
msgid "Support Forum"
|
455 |
msgstr "Support Forum"
|
456 |
|
457 |
+
#: includes/class-freemius.php:16573
|
458 |
msgid "Your email has been successfully verified - you are AWESOME!"
|
459 |
msgstr "Your email has been successfully verified - you are AWESOME!"
|
460 |
|
461 |
+
#: includes/class-freemius.php:16574
|
462 |
msgctxt "a positive response"
|
463 |
msgid "Right on"
|
464 |
msgstr "Right on"
|
465 |
|
466 |
+
#: includes/class-freemius.php:17199
|
467 |
+
#, php-format
|
468 |
msgid "Your %s Add-on plan was successfully upgraded."
|
469 |
msgstr "Your %s Add-on plan was successfully upgraded."
|
470 |
|
471 |
+
#: includes/class-freemius.php:17201
|
472 |
+
#, php-format
|
473 |
msgid "%s Add-on was successfully purchased."
|
474 |
msgstr "%s Add-on was successfully purchased."
|
475 |
|
476 |
+
#: includes/class-freemius.php:17204
|
477 |
msgid "Download the latest version"
|
478 |
msgstr "Download the latest version"
|
479 |
|
480 |
+
#: includes/class-freemius.php:17290
|
481 |
+
#, php-format
|
482 |
msgctxt "%1s - plugin title, %2s - API domain"
|
483 |
+
msgid ""
|
484 |
+
"Your server is blocking the access to Freemius' API, which is crucial for "
|
485 |
+
"%1s synchronization. Please contact your host to whitelist %2s"
|
486 |
+
msgstr ""
|
487 |
+
"Your server is blocking the access to Freemius' API, which is crucial for "
|
488 |
+
"%1s synchronization. Please contact your host to whitelist %2s"
|
489 |
|
490 |
+
#: includes/class-freemius.php:17293 includes/class-freemius.php:17709
|
491 |
+
#: includes/class-freemius.php:17786
|
492 |
msgid "Error received from the server:"
|
493 |
msgstr "Error received from the server:"
|
494 |
|
495 |
+
#: includes/class-freemius.php:17303
|
496 |
+
msgid ""
|
497 |
+
"It seems like one of the authentication parameters is wrong. Update your "
|
498 |
+
"Public Key, Secret Key & User ID, and try again."
|
499 |
+
msgstr ""
|
500 |
+
"It seems like one of the authentication parameters is wrong. Update your "
|
501 |
+
"Public Key, Secret Key & User ID, and try again."
|
502 |
|
503 |
+
#: includes/class-freemius.php:17485 includes/class-freemius.php:17714
|
504 |
+
#: includes/class-freemius.php:17757 includes/class-freemius.php:17860
|
505 |
+
msgctxt ""
|
506 |
+
"something somebody says when they are thinking about what you have just said."
|
507 |
msgid "Hmm"
|
508 |
msgstr "Hmm"
|
509 |
|
510 |
+
#: includes/class-freemius.php:17498
|
511 |
+
#, php-format
|
512 |
+
msgid ""
|
513 |
+
"It looks like you are still on the %s plan. If you did upgrade or change "
|
514 |
+
"your plan, it's probably an issue on our side - sorry."
|
515 |
+
msgstr ""
|
516 |
+
"It looks like you are still on the %s plan. If you did upgrade or change "
|
517 |
+
"your plan, it's probably an issue on our side - sorry."
|
518 |
|
519 |
+
#: includes/class-freemius.php:17499 templates/account.php:102
|
520 |
+
#: templates/account/partials/addon.php:43 templates/add-ons.php:134
|
521 |
msgctxt "trial period"
|
522 |
msgid "Trial"
|
523 |
msgstr "Trial"
|
524 |
|
525 |
+
#: includes/class-freemius.php:17504
|
526 |
+
#, php-format
|
527 |
+
msgid ""
|
528 |
+
"I have upgraded my account but when I try to Sync the License, the plan "
|
529 |
+
"remains %s."
|
530 |
+
msgstr ""
|
531 |
+
"I have upgraded my account but when I try to Sync the License, the plan "
|
532 |
+
"remains %s."
|
533 |
|
534 |
+
#: includes/class-freemius.php:17508 includes/class-freemius.php:17566
|
535 |
msgid "Please contact us here"
|
536 |
msgstr "Please contact us here"
|
537 |
|
538 |
+
#: includes/class-freemius.php:17518
|
539 |
msgid "Your plan was successfully upgraded."
|
540 |
msgstr "Your plan was successfully upgraded."
|
541 |
|
542 |
+
#: includes/class-freemius.php:17536
|
543 |
+
#, php-format
|
544 |
msgid "Your plan was successfully changed to %s."
|
545 |
msgstr "Your plan was successfully changed to %s."
|
546 |
|
547 |
+
#: includes/class-freemius.php:17552
|
548 |
+
#, php-format
|
549 |
+
msgid ""
|
550 |
+
"Your license has expired. You can still continue using the free %s forever."
|
551 |
+
msgstr ""
|
552 |
+
"Your license has expired. You can still continue using the free %s forever."
|
553 |
|
554 |
+
#: includes/class-freemius.php:17554
|
555 |
+
#, php-format
|
556 |
+
msgid ""
|
557 |
+
"Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s "
|
558 |
+
"without interruptions."
|
559 |
+
msgstr ""
|
560 |
+
"Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s "
|
561 |
+
"without interruptions."
|
562 |
|
563 |
+
#: includes/class-freemius.php:17562
|
564 |
+
msgid ""
|
565 |
+
"Your license has been cancelled. If you think it's a mistake, please contact "
|
566 |
+
"support."
|
567 |
+
msgstr ""
|
568 |
+
"Your license has been cancelled. If you think it's a mistake, please contact "
|
569 |
+
"support."
|
570 |
|
571 |
+
#: includes/class-freemius.php:17575
|
572 |
+
#, php-format
|
573 |
+
msgid ""
|
574 |
+
"Your license has expired. You can still continue using all the %s features, "
|
575 |
+
"but you'll need to renew your license to continue getting updates and "
|
576 |
+
"support."
|
577 |
+
msgstr ""
|
578 |
+
"Your license has expired. You can still continue using all the %s features, "
|
579 |
+
"but you'll need to renew your license to continue getting updates and "
|
580 |
+
"support."
|
581 |
|
582 |
+
#: includes/class-freemius.php:17598
|
583 |
+
msgid ""
|
584 |
+
"Your free trial has expired. You can still continue using all our free "
|
585 |
+
"features."
|
586 |
+
msgstr ""
|
587 |
+
"Your free trial has expired. You can still continue using all our free "
|
588 |
+
"features."
|
589 |
|
590 |
+
#: includes/class-freemius.php:17600
|
591 |
+
#, php-format
|
592 |
+
msgid ""
|
593 |
+
"Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s "
|
594 |
+
"without interruptions."
|
595 |
+
msgstr ""
|
596 |
+
"Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s "
|
597 |
+
"without interruptions."
|
598 |
|
599 |
+
#: includes/class-freemius.php:17705
|
600 |
msgid "It looks like the license could not be activated."
|
601 |
msgstr "It looks like the license could not be activated."
|
602 |
|
603 |
+
#: includes/class-freemius.php:17735
|
604 |
msgid "Your license was successfully activated."
|
605 |
msgstr "Your license was successfully activated."
|
606 |
|
607 |
+
#: includes/class-freemius.php:17761
|
608 |
msgid "It looks like your site currently doesn't have an active license."
|
609 |
msgstr "It looks like your site currently doesn't have an active license."
|
610 |
|
611 |
+
#: includes/class-freemius.php:17785
|
612 |
msgid "It looks like the license deactivation failed."
|
613 |
msgstr "It looks like the license deactivation failed."
|
614 |
|
615 |
+
#: includes/class-freemius.php:17813
|
616 |
+
#, php-format
|
617 |
msgid "Your license was successfully deactivated, you are back to the %s plan."
|
618 |
+
msgstr ""
|
619 |
+
"Your license was successfully deactivated, you are back to the %s plan."
|
620 |
|
621 |
+
#: includes/class-freemius.php:17814
|
622 |
msgid "O.K"
|
623 |
msgstr "O.K"
|
624 |
|
625 |
+
#: includes/class-freemius.php:17867
|
626 |
+
msgid ""
|
627 |
+
"Seems like we are having some temporary issue with your subscription "
|
628 |
+
"cancellation. Please try again in few minutes."
|
629 |
+
msgstr ""
|
630 |
+
"Seems like we are having some temporary issue with your subscription "
|
631 |
+
"cancellation. Please try again in few minutes."
|
632 |
|
633 |
+
#: includes/class-freemius.php:17876
|
634 |
+
#, php-format
|
635 |
+
msgid ""
|
636 |
+
"Your subscription was successfully cancelled. Your %s plan license will "
|
637 |
+
"expire in %s."
|
638 |
+
msgstr ""
|
639 |
+
"Your subscription was successfully cancelled. Your %s plan license will "
|
640 |
+
"expire in %s."
|
641 |
|
642 |
+
#: includes/class-freemius.php:17918
|
643 |
+
#, php-format
|
644 |
msgid "You are already running the %s in a trial mode."
|
645 |
msgstr "You are already running the %s in a trial mode."
|
646 |
|
647 |
+
#: includes/class-freemius.php:17929
|
648 |
msgid "You already utilized a trial before."
|
649 |
msgstr "You already utilized a trial before."
|
650 |
|
651 |
+
#: includes/class-freemius.php:17943
|
652 |
+
#, php-format
|
653 |
msgid "Plan %s do not exist, therefore, can't start a trial."
|
654 |
msgstr "Plan %s do not exist, therefore, can't start a trial."
|
655 |
|
656 |
+
#: includes/class-freemius.php:17954
|
657 |
+
#, php-format
|
658 |
msgid "Plan %s does not support a trial period."
|
659 |
msgstr "Plan %s does not support a trial period."
|
660 |
|
661 |
+
#: includes/class-freemius.php:17965
|
662 |
+
#, php-format
|
663 |
msgid "None of the %s's plans supports a trial period."
|
664 |
msgstr "None of the %s's plans supports a trial period."
|
665 |
|
666 |
+
#: includes/class-freemius.php:18015
|
667 |
+
msgid ""
|
668 |
+
"It looks like you are not in trial mode anymore so there's nothing to "
|
669 |
+
"cancel :)"
|
670 |
+
msgstr ""
|
671 |
+
"It looks like you are not in trial mode anymore so there's nothing to "
|
672 |
+
"cancel :)"
|
673 |
|
674 |
+
#: includes/class-freemius.php:18051
|
675 |
+
msgid ""
|
676 |
+
"Seems like we are having some temporary issue with your trial cancellation. "
|
677 |
+
"Please try again in few minutes."
|
678 |
+
msgstr ""
|
679 |
+
"Seems like we are having some temporary issue with your trial cancellation. "
|
680 |
+
"Please try again in few minutes."
|
681 |
|
682 |
+
#: includes/class-freemius.php:18070
|
683 |
+
#, php-format
|
684 |
msgid "Your %s free trial was successfully cancelled."
|
685 |
msgstr "Your %s free trial was successfully cancelled."
|
686 |
|
687 |
+
#: includes/class-freemius.php:18377
|
688 |
+
#, php-format
|
689 |
msgid "Version %s was released."
|
690 |
msgstr "Version %s was released."
|
691 |
|
692 |
+
#: includes/class-freemius.php:18377
|
693 |
+
#, php-format
|
694 |
msgid "Please download %s."
|
695 |
msgstr "Please download %s."
|
696 |
|
697 |
+
#: includes/class-freemius.php:18384
|
698 |
+
#, php-format
|
699 |
msgid "the latest %s version here"
|
700 |
msgstr "the latest %s version here"
|
701 |
|
702 |
+
#: includes/class-freemius.php:18389
|
703 |
msgid "New"
|
704 |
msgstr "New"
|
705 |
|
706 |
+
#: includes/class-freemius.php:18394
|
707 |
msgid "Seems like you got the latest release."
|
708 |
msgstr "Seems like you got the latest release."
|
709 |
|
710 |
+
#: includes/class-freemius.php:18395
|
711 |
msgid "You are all good!"
|
712 |
msgstr "You are all good!"
|
713 |
|
714 |
+
#: includes/class-freemius.php:18663
|
715 |
+
#, php-format
|
716 |
+
msgid ""
|
717 |
+
"Verification mail was just sent to %s. If you can't find it after 5 min, "
|
718 |
+
"please check your spam box."
|
719 |
+
msgstr ""
|
720 |
+
"Verification mail was just sent to %s. If you can't find it after 5 min, "
|
721 |
+
"please check your spam box."
|
722 |
|
723 |
+
#: includes/class-freemius.php:18800
|
724 |
msgid "Site successfully opted in."
|
725 |
msgstr "Site successfully opted in."
|
726 |
|
727 |
+
#: includes/class-freemius.php:18801 includes/class-freemius.php:19612
|
728 |
msgid "Awesome"
|
729 |
msgstr "Awesome"
|
730 |
|
731 |
+
#: includes/class-freemius.php:18817 templates/forms/optout.php:32
|
732 |
+
#, php-format
|
733 |
+
msgid ""
|
734 |
+
"We appreciate your help in making the %s better by letting us track some "
|
735 |
+
"usage data."
|
736 |
+
msgstr ""
|
737 |
+
"We appreciate your help in making the %s better by letting us track some "
|
738 |
+
"usage data."
|
739 |
|
740 |
+
#: includes/class-freemius.php:18818
|
741 |
msgid "Thank you!"
|
742 |
msgstr "Thank you!"
|
743 |
|
744 |
+
#: includes/class-freemius.php:18825
|
745 |
+
#, php-format
|
746 |
msgid "We will no longer be sending any usage data of %s on %s to %s."
|
747 |
msgstr "We will no longer be sending any usage data of %s on %s to %s."
|
748 |
|
749 |
+
#: includes/class-freemius.php:18954
|
750 |
+
#, php-format
|
751 |
+
msgid ""
|
752 |
+
"Please check your mailbox, you should receive an email via %s to confirm the "
|
753 |
+
"ownership change. From security reasons, you must confirm the change within "
|
754 |
+
"the next 15 min. If you cannot find the email, please check your spam folder."
|
755 |
+
msgstr ""
|
756 |
+
"Please check your mailbox, you should receive an email via %s to confirm the "
|
757 |
+
"ownership change. From security reasons, you must confirm the change within "
|
758 |
+
"the next 15 min. If you cannot find the email, please check your spam folder."
|
759 |
|
760 |
+
#: includes/class-freemius.php:18960
|
761 |
+
#, php-format
|
762 |
+
msgid ""
|
763 |
+
"Thanks for confirming the ownership change. An email was just sent to %s for "
|
764 |
+
"final approval."
|
765 |
+
msgstr ""
|
766 |
+
"Thanks for confirming the ownership change. An email was just sent to %s for "
|
767 |
+
"final approval."
|
768 |
|
769 |
+
#: includes/class-freemius.php:18965
|
770 |
+
#, php-format
|
771 |
msgid "%s is the new owner of the account."
|
772 |
msgstr "%s is the new owner of the account."
|
773 |
|
774 |
+
#: includes/class-freemius.php:18967
|
775 |
msgctxt "as congratulations"
|
776 |
msgid "Congrats"
|
777 |
msgstr "Congrats"
|
778 |
|
779 |
+
#: includes/class-freemius.php:18987
|
780 |
+
msgid ""
|
781 |
+
"Sorry, we could not complete the email update. Another user with the same "
|
782 |
+
"email is already registered."
|
783 |
+
msgstr ""
|
784 |
+
"Sorry, we could not complete the email update. Another user with the same "
|
785 |
+
"email is already registered."
|
786 |
|
787 |
+
#: includes/class-freemius.php:18988
|
788 |
+
#, php-format
|
789 |
+
msgid ""
|
790 |
+
"If you would like to give up the ownership of the %s's account to %s click "
|
791 |
+
"the Change Ownership button."
|
792 |
+
msgstr ""
|
793 |
+
"If you would like to give up the ownership of the %s's account to %s click "
|
794 |
+
"the Change Ownership button."
|
795 |
|
796 |
+
#: includes/class-freemius.php:18995
|
797 |
msgid "Change Ownership"
|
798 |
msgstr "Change Ownership"
|
799 |
|
800 |
+
#: includes/class-freemius.php:19003
|
801 |
+
msgid ""
|
802 |
+
"Your email was successfully updated. You should receive an email with "
|
803 |
+
"confirmation instructions in few moments."
|
804 |
+
msgstr ""
|
805 |
+
"Your email was successfully updated. You should receive an email with "
|
806 |
+
"confirmation instructions in few moments."
|
807 |
|
808 |
+
#: includes/class-freemius.php:19015
|
809 |
msgid "Please provide your full name."
|
810 |
msgstr "Please provide your full name."
|
811 |
|
812 |
+
#: includes/class-freemius.php:19020
|
813 |
msgid "Your name was successfully updated."
|
814 |
msgstr "Your name was successfully updated."
|
815 |
|
816 |
+
#: includes/class-freemius.php:19081
|
817 |
+
#, php-format
|
818 |
msgid "You have successfully updated your %s."
|
819 |
msgstr "You have successfully updated your %s."
|
820 |
|
821 |
+
#: includes/class-freemius.php:19221
|
822 |
+
#, php-format
|
823 |
+
msgid ""
|
824 |
+
"Just letting you know that the add-ons information of %s is being pulled "
|
825 |
+
"from an external server."
|
826 |
+
msgstr ""
|
827 |
+
"Just letting you know that the add-ons information of %s is being pulled "
|
828 |
+
"from an external server."
|
829 |
|
830 |
+
#: includes/class-freemius.php:19222
|
831 |
msgctxt "advance notice of something that will need attention."
|
832 |
msgid "Heads up"
|
833 |
msgstr "Heads up"
|
834 |
|
835 |
+
#: includes/class-freemius.php:19652
|
836 |
msgctxt "exclamation"
|
837 |
msgid "Hey"
|
838 |
msgstr "Hey"
|
839 |
|
840 |
+
#: includes/class-freemius.php:19652
|
841 |
+
#, php-format
|
842 |
+
msgid ""
|
843 |
+
"How do you like %s so far? Test all our %s premium features with a %d-day "
|
844 |
+
"free trial."
|
845 |
+
msgstr ""
|
846 |
+
"How do you like %s so far? Test all our %s premium features with a %d-day "
|
847 |
+
"free trial."
|
848 |
|
849 |
+
#: includes/class-freemius.php:19660
|
850 |
+
#, php-format
|
851 |
msgid "No commitment for %s days - cancel anytime!"
|
852 |
msgstr "No commitment for %s days - cancel anytime!"
|
853 |
|
854 |
+
#: includes/class-freemius.php:19661
|
855 |
msgid "No credit card required"
|
856 |
msgstr "No credit card required"
|
857 |
|
858 |
+
#: includes/class-freemius.php:19668 templates/forms/trial-start.php:53
|
859 |
msgctxt "call to action"
|
860 |
msgid "Start free trial"
|
861 |
msgstr "Start free trial"
|
862 |
|
863 |
+
#: includes/class-freemius.php:19745
|
864 |
+
#, php-format
|
865 |
+
msgid ""
|
866 |
+
"Hey there, did you know that %s has an affiliate program? If you like the %s "
|
867 |
+
"you can become our ambassador and earn some cash!"
|
868 |
+
msgstr ""
|
869 |
+
"Hey there, did you know that %s has an affiliate program? If you like the %s "
|
870 |
+
"you can become our ambassador and earn some cash!"
|
871 |
|
872 |
+
#: includes/class-freemius.php:19754
|
873 |
msgid "Learn more"
|
874 |
msgstr "Learn more"
|
875 |
|
876 |
+
#: includes/class-freemius.php:19904 templates/account.php:406
|
877 |
+
#: templates/account.php:509 templates/account/partials/addon.php:235
|
878 |
+
#: templates/connect.php:171 templates/connect.php:421
|
879 |
+
#: templates/forms/license-activation.php:24
|
880 |
msgid "Activate License"
|
881 |
msgstr "Activate License"
|
882 |
|
883 |
+
#: includes/class-freemius.php:19905 templates/account.php:469
|
884 |
+
#: templates/account.php:508 templates/account/partials/site.php:256
|
885 |
msgid "Change License"
|
886 |
msgstr "Change License"
|
887 |
|
888 |
+
#: includes/class-freemius.php:19987 templates/account/partials/site.php:161
|
889 |
msgid "Opt Out"
|
890 |
msgstr "Opt Out"
|
891 |
|
892 |
+
#: includes/class-freemius.php:19989 includes/class-freemius.php:19994
|
893 |
+
#: templates/account/partials/site.php:43
|
894 |
+
#: templates/account/partials/site.php:161
|
895 |
msgid "Opt In"
|
896 |
msgstr "Opt In"
|
897 |
|
898 |
+
#: includes/class-freemius.php:20218
|
899 |
+
#, php-format
|
900 |
+
msgid ""
|
901 |
+
" The paid version of %1s is already installed. Please activate it to start "
|
902 |
+
"benefiting the %2s features. %3s"
|
903 |
+
msgstr ""
|
904 |
+
" The paid version of %1s is already installed. Please activate it to start "
|
905 |
+
"benefiting the %2s features. %3s"
|
906 |
|
907 |
+
#: includes/class-freemius.php:20226
|
908 |
+
#, php-format
|
909 |
msgid "Activate %s features"
|
910 |
msgstr "Activate %s features"
|
911 |
|
912 |
+
#: includes/class-freemius.php:20239
|
913 |
msgid "Please follow these steps to complete the upgrade"
|
914 |
msgstr "Please follow these steps to complete the upgrade"
|
915 |
|
916 |
+
#: includes/class-freemius.php:20243
|
917 |
+
#, php-format
|
918 |
msgid "Download the latest %s version"
|
919 |
msgstr "Download the latest %s version"
|
920 |
|
921 |
+
#: includes/class-freemius.php:20247
|
922 |
msgid "Upload and activate the downloaded version"
|
923 |
msgstr "Upload and activate the downloaded version"
|
924 |
|
925 |
+
#: includes/class-freemius.php:20249
|
926 |
msgid "How to upload and activate?"
|
927 |
msgstr "How to upload and activate?"
|
928 |
|
929 |
+
#: includes/class-freemius.php:20383
|
930 |
+
#, php-format
|
931 |
+
msgid ""
|
932 |
+
"%sClick here%s to choose the sites where you'd like to activate the license "
|
933 |
+
"on."
|
934 |
+
msgstr ""
|
935 |
+
"%sClick here%s to choose the sites where you'd like to activate the license "
|
936 |
+
"on."
|
937 |
|
938 |
+
#: includes/class-freemius.php:20544
|
939 |
msgid "Auto installation only works for opted-in users."
|
940 |
msgstr "Auto installation only works for opted-in users."
|
941 |
|
942 |
+
#: includes/class-freemius.php:20554 includes/class-freemius.php:20587
|
943 |
+
#: includes/class-fs-plugin-updater.php:1060
|
944 |
+
#: includes/class-fs-plugin-updater.php:1074
|
945 |
msgid "Invalid module ID."
|
946 |
msgstr "Invalid module ID."
|
947 |
|
948 |
+
#: includes/class-freemius.php:20563 includes/class-fs-plugin-updater.php:1096
|
949 |
msgid "Premium version already active."
|
950 |
msgstr "Premium version already active."
|
951 |
|
952 |
+
#: includes/class-freemius.php:20570
|
953 |
msgid "You do not have a valid license to access the premium version."
|
954 |
msgstr "You do not have a valid license to access the premium version."
|
955 |
|
956 |
+
#: includes/class-freemius.php:20577
|
957 |
+
msgid ""
|
958 |
+
"Plugin is a \"Serviceware\" which means it does not have a premium code "
|
959 |
+
"version."
|
960 |
+
msgstr ""
|
961 |
+
"Plugin is a \"Serviceware\" which means it does not have a premium code "
|
962 |
+
"version."
|
963 |
|
964 |
+
#: includes/class-freemius.php:20595 includes/class-fs-plugin-updater.php:1095
|
965 |
msgid "Premium add-on version already installed."
|
966 |
msgstr "Premium add-on version already installed."
|
967 |
|
968 |
+
#: includes/class-freemius.php:20940
|
969 |
msgid "View paid features"
|
970 |
msgstr "View paid features"
|
971 |
|
972 |
+
#: includes/class-freemius.php:21260
|
973 |
+
#, php-format
|
974 |
msgid "Thank you so much for using %s and its add-ons!"
|
975 |
msgstr "Thank you so much for using %s and its add-ons!"
|
976 |
|
977 |
+
#: includes/class-freemius.php:21261
|
978 |
+
#, php-format
|
979 |
msgid "Thank you so much for using %s!"
|
980 |
msgstr "Thank you so much for using %s!"
|
981 |
|
982 |
+
#: includes/class-freemius.php:21267
|
983 |
+
#, php-format
|
984 |
+
msgid ""
|
985 |
+
"You've already opted-in to our usage-tracking, which helps us keep improving "
|
986 |
+
"the %s."
|
987 |
+
msgstr ""
|
988 |
+
"You've already opted-in to our usage-tracking, which helps us keep improving "
|
989 |
+
"the %s."
|
990 |
|
991 |
+
#: includes/class-freemius.php:21271
|
992 |
msgid "Thank you so much for using our products!"
|
993 |
msgstr "Thank you so much for using our products!"
|
994 |
|
995 |
+
#: includes/class-freemius.php:21272
|
996 |
+
msgid ""
|
997 |
+
"You've already opted-in to our usage-tracking, which helps us keep improving "
|
998 |
+
"them."
|
999 |
+
msgstr ""
|
1000 |
+
"You've already opted-in to our usage-tracking, which helps us keep improving "
|
1001 |
+
"them."
|
1002 |
|
1003 |
+
#: includes/class-freemius.php:21291
|
1004 |
+
#, php-format
|
1005 |
msgid "%s and its add-ons"
|
1006 |
msgstr "%s and its add-ons"
|
1007 |
|
1008 |
+
#: includes/class-freemius.php:21300
|
1009 |
msgid "Products"
|
1010 |
msgstr "Products"
|
1011 |
|
1012 |
+
#: includes/class-freemius.php:21307 templates/connect.php:272
|
1013 |
msgid "Yes"
|
1014 |
msgstr "Yes"
|
1015 |
|
1016 |
+
#: includes/class-freemius.php:21308 templates/connect.php:273
|
1017 |
msgid "send me security & feature updates, educational content and offers."
|
1018 |
msgstr "send me security & feature updates, educational content and offers."
|
1019 |
|
1020 |
+
#: includes/class-freemius.php:21309 templates/connect.php:278
|
1021 |
msgid "No"
|
1022 |
msgstr "No"
|
1023 |
|
1024 |
+
#: includes/class-freemius.php:21311 templates/connect.php:280
|
1025 |
+
#, php-format
|
1026 |
+
msgid ""
|
1027 |
+
"do %sNOT%s send me security & feature updates, educational content and "
|
1028 |
+
"offers."
|
1029 |
+
msgstr ""
|
1030 |
+
"do %sNOT%s send me security & feature updates, educational content and "
|
1031 |
+
"offers."
|
1032 |
|
1033 |
+
#: includes/class-freemius.php:21321
|
1034 |
+
#, php-format
|
1035 |
+
msgid ""
|
1036 |
+
"Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance "
|
1037 |
+
"requirements it is required that you provide your explicit consent, again, "
|
1038 |
+
"confirming that you are onboard 🙂"
|
1039 |
+
msgstr ""
|
1040 |
+
"Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance "
|
1041 |
+
"requirements it is required that you provide your explicit consent, again, "
|
1042 |
+
"confirming that you are onboard 🙂"
|
1043 |
|
1044 |
+
#: includes/class-freemius.php:21323 templates/connect.php:287
|
1045 |
+
msgid ""
|
1046 |
+
"Please let us know if you'd like us to contact you for security & feature "
|
1047 |
+
"updates, educational content, and occasional offers:"
|
1048 |
+
msgstr ""
|
1049 |
+
"Please let us know if you'd like us to contact you for security & feature "
|
1050 |
+
"updates, educational content, and occasional offers:"
|
1051 |
|
1052 |
+
#: includes/class-freemius.php:21605
|
1053 |
msgid "License key is empty."
|
1054 |
msgstr "License key is empty."
|
1055 |
|
1056 |
+
#: includes/class-fs-plugin-updater.php:184
|
1057 |
+
#: templates/forms/premium-versions-upgrade-handler.php:57
|
1058 |
msgid "Renew license"
|
1059 |
msgstr "Renew license"
|
1060 |
|
1061 |
+
#: includes/class-fs-plugin-updater.php:189
|
1062 |
+
#: templates/forms/premium-versions-upgrade-handler.php:58
|
1063 |
msgid "Buy license"
|
1064 |
msgstr "Buy license"
|
1065 |
|
1066 |
#: includes/class-fs-plugin-updater.php:278
|
1067 |
+
#, php-format
|
1068 |
msgid "There is a %s of %s available."
|
1069 |
msgstr "There is a %s of %s available."
|
1070 |
|
1077 |
msgstr "Important Upgrade Notice:"
|
1078 |
|
1079 |
#: includes/class-fs-plugin-updater.php:1125
|
1080 |
+
#, php-format
|
1081 |
msgid "Installing plugin: %s"
|
1082 |
msgstr "Installing plugin: %s"
|
1083 |
|
1086 |
msgstr "Unable to connect to the filesystem. Please confirm your credentials."
|
1087 |
|
1088 |
#: includes/class-fs-plugin-updater.php:1348
|
1089 |
+
msgid ""
|
1090 |
+
"The remote plugin package does not contain a folder with the desired slug "
|
1091 |
+
"and renaming did not work."
|
1092 |
+
msgstr ""
|
1093 |
+
"The remote plugin package does not contain a folder with the desired slug "
|
1094 |
+
"and renaming did not work."
|
1095 |
+
|
1096 |
+
#: includes/customizer/class-fs-customizer-support-section.php:55
|
1097 |
+
#: templates/plugin-info/features.php:43
|
1098 |
+
msgid "Support"
|
1099 |
+
msgstr "Support"
|
1100 |
+
|
1101 |
+
#: includes/customizer/class-fs-customizer-upsell-control.php:106
|
1102 |
+
#: templates/account.php:105 templates/account/partials/addon.php:46
|
1103 |
+
#: templates/debug.php:373
|
1104 |
+
msgctxt "as product pricing plan"
|
1105 |
+
msgid "Plan"
|
1106 |
+
msgstr "Plan"
|
1107 |
+
|
1108 |
+
#: includes/debug/class-fs-debug-bar-panel.php:48
|
1109 |
+
#: templates/debug/api-calls.php:54 templates/debug/logger.php:62
|
1110 |
+
msgctxt "milliseconds"
|
1111 |
+
msgid "ms"
|
1112 |
+
msgstr "ms"
|
1113 |
+
|
1114 |
+
#: includes/debug/debug-bar-start.php:41
|
1115 |
+
msgid "Freemius API"
|
1116 |
+
msgstr "Freemius API"
|
1117 |
|
1118 |
+
#: includes/debug/debug-bar-start.php:42
|
1119 |
+
msgid "Requests"
|
1120 |
+
msgstr "Requests"
|
1121 |
+
|
1122 |
+
#: includes/fs-plugin-info-dialog.php:369
|
1123 |
+
#: templates/account/partials/addon.php:292
|
1124 |
msgctxt "verb"
|
1125 |
msgid "Purchase"
|
1126 |
msgstr "Purchase"
|
1127 |
|
1128 |
#: includes/fs-plugin-info-dialog.php:372
|
1129 |
+
#, php-format
|
1130 |
msgid "Start my free %s"
|
1131 |
msgstr "Start my free %s"
|
1132 |
|
1134 |
msgid "Install Free Version Now"
|
1135 |
msgstr "Install Free Version Now"
|
1136 |
|
1137 |
+
#: includes/fs-plugin-info-dialog.php:414
|
1138 |
+
#: templates/account/partials/addon.php:272
|
1139 |
+
#: templates/account/partials/addon.php:322 templates/auto-installation.php:111
|
1140 |
msgid "Install Now"
|
1141 |
msgstr "Install Now"
|
1142 |
|
1145 |
msgid "Download Latest Free Version"
|
1146 |
msgstr "Download Latest Free Version"
|
1147 |
|
1148 |
+
#: includes/fs-plugin-info-dialog.php:426 templates/account.php:80
|
1149 |
+
#: templates/account/partials/addon.php:21
|
1150 |
msgctxt "as download latest version"
|
1151 |
msgid "Download Latest"
|
1152 |
msgstr "Download Latest"
|
1155 |
msgid "Install Free Version Update Now"
|
1156 |
msgstr "Install Free Version Update Now"
|
1157 |
|
1158 |
+
#: includes/fs-plugin-info-dialog.php:437 templates/account.php:460
|
1159 |
msgid "Install Update Now"
|
1160 |
msgstr "Install Update Now"
|
1161 |
|
1162 |
#: includes/fs-plugin-info-dialog.php:448
|
1163 |
+
#, php-format
|
1164 |
msgid "Newer Free Version (%s) Installed"
|
1165 |
msgstr "Newer Free Version (%s) Installed"
|
1166 |
|
1167 |
#: includes/fs-plugin-info-dialog.php:449
|
1168 |
+
#, php-format
|
1169 |
msgid "Newer Version (%s) Installed"
|
1170 |
msgstr "Newer Version (%s) Installed"
|
1171 |
|
1192 |
msgid "FAQ"
|
1193 |
msgstr "FAQ"
|
1194 |
|
1195 |
+
#: includes/fs-plugin-info-dialog.php:616
|
1196 |
+
#: templates/plugin-info/description.php:55
|
1197 |
msgid "Screenshots"
|
1198 |
msgstr "Screenshots"
|
1199 |
|
1222 |
msgstr "Plugin Install"
|
1223 |
|
1224 |
#: includes/fs-plugin-info-dialog.php:716
|
1225 |
+
#, php-format
|
1226 |
msgctxt "e.g. Professional Plan"
|
1227 |
msgid "%s Plan"
|
1228 |
msgstr "%s Plan"
|
1232 |
msgid "Best"
|
1233 |
msgstr "Best"
|
1234 |
|
1235 |
+
#: includes/fs-plugin-info-dialog.php:748
|
1236 |
+
#: includes/fs-plugin-info-dialog.php:768
|
1237 |
msgctxt "as every month"
|
1238 |
msgid "Monthly"
|
1239 |
msgstr "Monthly"
|
1247 |
msgid "Lifetime"
|
1248 |
msgstr "Lifetime"
|
1249 |
|
1250 |
+
#: includes/fs-plugin-info-dialog.php:768
|
1251 |
+
#: includes/fs-plugin-info-dialog.php:770
|
1252 |
+
#: includes/fs-plugin-info-dialog.php:772
|
1253 |
+
#, php-format
|
1254 |
msgctxt "e.g. billed monthly"
|
1255 |
msgid "Billed %s"
|
1256 |
msgstr "Billed %s"
|
1274 |
msgstr "Unlimited Licenses"
|
1275 |
|
1276 |
#: includes/fs-plugin-info-dialog.php:782
|
1277 |
+
#, php-format
|
1278 |
msgid "Up to %s Sites"
|
1279 |
msgstr "Up to %s Sites"
|
1280 |
|
1281 |
+
#: includes/fs-plugin-info-dialog.php:792 templates/plugin-info/features.php:82
|
1282 |
msgctxt "as monthly period"
|
1283 |
msgid "mo"
|
1284 |
msgstr "mo"
|
1285 |
|
1286 |
+
#: includes/fs-plugin-info-dialog.php:799 templates/plugin-info/features.php:80
|
1287 |
msgctxt "as annual period"
|
1288 |
msgid "year"
|
1289 |
msgstr "year"
|
1294 |
msgstr "Price"
|
1295 |
|
1296 |
#: includes/fs-plugin-info-dialog.php:901
|
1297 |
+
#, php-format
|
1298 |
msgid "Save %s"
|
1299 |
msgstr "Save %s"
|
1300 |
|
1301 |
#: includes/fs-plugin-info-dialog.php:911
|
1302 |
+
#, php-format
|
1303 |
msgid "No commitment for %s - cancel anytime"
|
1304 |
msgstr "No commitment for %s - cancel anytime"
|
1305 |
|
1306 |
#: includes/fs-plugin-info-dialog.php:914
|
1307 |
+
#, php-format
|
1308 |
msgid "After your free %s, pay as little as %s"
|
1309 |
msgstr "After your free %s, pay as little as %s"
|
1310 |
|
1312 |
msgid "Details"
|
1313 |
msgstr "Details"
|
1314 |
|
1315 |
+
#: includes/fs-plugin-info-dialog.php:929 templates/account.php:91
|
1316 |
+
#: templates/account/partials/addon.php:32 templates/debug.php:203
|
1317 |
+
#: templates/debug.php:240 templates/debug.php:454
|
1318 |
msgctxt "product version"
|
1319 |
msgid "Version"
|
1320 |
msgstr "Version"
|
1328 |
msgid "Last Updated"
|
1329 |
msgstr "Last Updated"
|
1330 |
|
1331 |
+
#: includes/fs-plugin-info-dialog.php:948 templates/account.php:376
|
1332 |
+
#, php-format
|
1333 |
msgctxt "x-ago"
|
1334 |
msgid "%s ago"
|
1335 |
msgstr "%s ago"
|
1339 |
msgstr "Requires WordPress Version"
|
1340 |
|
1341 |
#: includes/fs-plugin-info-dialog.php:958
|
1342 |
+
#, php-format
|
1343 |
msgid "%s or higher"
|
1344 |
msgstr "%s or higher"
|
1345 |
|
1352 |
msgstr "Downloaded"
|
1353 |
|
1354 |
#: includes/fs-plugin-info-dialog.php:977
|
1355 |
+
#, php-format
|
1356 |
msgid "%s time"
|
1357 |
msgstr "%s time"
|
1358 |
|
1359 |
#: includes/fs-plugin-info-dialog.php:979
|
1360 |
+
#, php-format
|
1361 |
msgid "%s times"
|
1362 |
msgstr "%s times"
|
1363 |
|
1369 |
msgid "Plugin Homepage"
|
1370 |
msgstr "Plugin Homepage"
|
1371 |
|
1372 |
+
#: includes/fs-plugin-info-dialog.php:1005
|
1373 |
+
#: includes/fs-plugin-info-dialog.php:1087
|
1374 |
msgid "Donate to this plugin"
|
1375 |
msgstr "Donate to this plugin"
|
1376 |
|
1379 |
msgstr "Average Rating"
|
1380 |
|
1381 |
#: includes/fs-plugin-info-dialog.php:1019
|
1382 |
+
#, php-format
|
1383 |
msgid "based on %s"
|
1384 |
msgstr "based on %s"
|
1385 |
|
1386 |
#: includes/fs-plugin-info-dialog.php:1023
|
1387 |
+
#, php-format
|
1388 |
msgid "%s rating"
|
1389 |
msgstr "%s rating"
|
1390 |
|
1391 |
#: includes/fs-plugin-info-dialog.php:1025
|
1392 |
+
#, php-format
|
1393 |
msgid "%s ratings"
|
1394 |
msgstr "%s ratings"
|
1395 |
|
1396 |
#: includes/fs-plugin-info-dialog.php:1040
|
1397 |
+
#, php-format
|
1398 |
msgid "%s star"
|
1399 |
msgstr "%s star"
|
1400 |
|
1401 |
#: includes/fs-plugin-info-dialog.php:1042
|
1402 |
+
#, php-format
|
1403 |
msgid "%s stars"
|
1404 |
msgstr "%s stars"
|
1405 |
|
1406 |
#: includes/fs-plugin-info-dialog.php:1053
|
1407 |
+
#, php-format
|
1408 |
msgid "Click to see reviews that provided a rating of %s"
|
1409 |
msgstr "Click to see reviews that provided a rating of %s"
|
1410 |
|
1412 |
msgid "Contributors"
|
1413 |
msgstr "Contributors"
|
1414 |
|
1415 |
+
#: includes/fs-plugin-info-dialog.php:1095
|
1416 |
+
#: includes/fs-plugin-info-dialog.php:1097
|
1417 |
msgid "Warning"
|
1418 |
msgstr "Warning"
|
1419 |
|
1420 |
#: includes/fs-plugin-info-dialog.php:1095
|
1421 |
msgid "This plugin has not been tested with your current version of WordPress."
|
1422 |
+
msgstr ""
|
1423 |
+
"This plugin has not been tested with your current version of WordPress."
|
1424 |
|
1425 |
#: includes/fs-plugin-info-dialog.php:1097
|
1426 |
+
msgid ""
|
1427 |
+
"This plugin has not been marked as compatible with your version of WordPress."
|
1428 |
+
msgstr ""
|
1429 |
+
"This plugin has not been marked as compatible with your version of WordPress."
|
1430 |
|
1431 |
#: includes/fs-plugin-info-dialog.php:1116
|
1432 |
msgid "Paid add-on must be deployed to Freemius."
|
1436 |
msgid "Add-on must be deployed to WordPress.org or Freemius."
|
1437 |
msgstr "Add-on must be deployed to WordPress.org or Freemius."
|
1438 |
|
1439 |
+
#: templates/account.php:81 templates/account/partials/addon.php:22
|
1440 |
+
#: templates/account/partials/site.php:295
|
1441 |
+
#: templates/forms/subscription-cancellation.php:96
|
1442 |
msgid "Downgrading your plan"
|
1443 |
msgstr "Downgrading your plan"
|
1444 |
|
1445 |
+
#: templates/account.php:82 templates/account/partials/addon.php:23
|
1446 |
+
#: templates/account/partials/site.php:296
|
1447 |
+
#: templates/forms/subscription-cancellation.php:97
|
1448 |
msgid "Cancelling the subscription"
|
1449 |
msgstr "Cancelling the subscription"
|
1450 |
|
1451 |
+
#: templates/account.php:84 templates/account/partials/addon.php:25
|
1452 |
+
#: templates/account/partials/site.php:298
|
1453 |
+
#: templates/forms/subscription-cancellation.php:99
|
1454 |
+
#, php-format
|
1455 |
+
msgid ""
|
1456 |
+
"%1s will immediately stop all future recurring payments and your %s plan "
|
1457 |
+
"license will expire in %s."
|
1458 |
+
msgstr ""
|
1459 |
+
"%1s will immediately stop all future recurring payments and your %s plan "
|
1460 |
+
"license will expire in %s."
|
1461 |
|
1462 |
+
#: templates/account.php:85 templates/account/partials/addon.php:26
|
1463 |
+
#: templates/account/partials/site.php:299
|
1464 |
+
#: templates/forms/subscription-cancellation.php:100
|
1465 |
+
msgid ""
|
1466 |
+
"Please note that we will not be able to grandfather outdated pricing for "
|
1467 |
+
"renewals/new subscriptions after a cancellation. If you choose to renew the "
|
1468 |
+
"subscription manually in the future, after a price increase, which typically "
|
1469 |
+
"occurs once a year, you will be charged the updated price."
|
1470 |
+
msgstr ""
|
1471 |
+
"Please note that we will not be able to grandfather outdated pricing for "
|
1472 |
+
"renewals/new subscriptions after a cancellation. If you choose to renew the "
|
1473 |
+
"subscription manually in the future, after a price increase, which typically "
|
1474 |
+
"occurs once a year, you will be charged the updated price."
|
1475 |
|
1476 |
+
#: templates/account.php:86 templates/account/partials/addon.php:27
|
1477 |
+
#: templates/forms/subscription-cancellation.php:106
|
1478 |
+
msgid ""
|
1479 |
+
"Cancelling the trial will immediately block access to all premium features. "
|
1480 |
+
"Are you sure?"
|
1481 |
+
msgstr ""
|
1482 |
+
"Cancelling the trial will immediately block access to all premium features. "
|
1483 |
+
"Are you sure?"
|
1484 |
|
1485 |
+
#: templates/account.php:87 templates/account/partials/addon.php:28
|
1486 |
+
#: templates/account/partials/site.php:300
|
1487 |
+
#: templates/forms/subscription-cancellation.php:101
|
1488 |
+
#, php-format
|
1489 |
+
msgid ""
|
1490 |
+
"You can still enjoy all %s features but you will not have access to %s "
|
1491 |
+
"security & feature updates, nor support."
|
1492 |
+
msgstr ""
|
1493 |
+
"You can still enjoy all %s features but you will not have access to %s "
|
1494 |
+
"security & feature updates, nor support."
|
1495 |
|
1496 |
+
#: templates/account.php:88 templates/account/partials/addon.php:29
|
1497 |
+
#: templates/account/partials/site.php:301
|
1498 |
+
#: templates/forms/subscription-cancellation.php:102
|
1499 |
+
#, php-format
|
1500 |
+
msgid ""
|
1501 |
+
"Once your license expires you can still use the Free version but you will "
|
1502 |
+
"NOT have access to the %s features."
|
1503 |
+
msgstr ""
|
1504 |
+
"Once your license expires you can still use the Free version but you will "
|
1505 |
+
"NOT have access to the %s features."
|
1506 |
|
1507 |
+
#: templates/account.php:90
|
1508 |
+
#: templates/account/partials/activate-license-button.php:31
|
1509 |
+
#: templates/account/partials/addon.php:31
|
1510 |
+
#, php-format
|
1511 |
msgid "Activate %s Plan"
|
1512 |
msgstr "Activate %s Plan"
|
1513 |
|
1514 |
+
#: templates/account.php:93 templates/account/partials/addon.php:34
|
1515 |
+
#: templates/account/partials/site.php:275
|
1516 |
+
#, php-format
|
1517 |
msgid "Auto renews in %s"
|
1518 |
msgstr "Auto renews in %s"
|
1519 |
|
1520 |
+
#: templates/account.php:95 templates/account/partials/addon.php:36
|
1521 |
+
#: templates/account/partials/site.php:277
|
1522 |
+
#, php-format
|
1523 |
msgid "Expires in %s"
|
1524 |
msgstr "Expires in %s"
|
1525 |
|
1526 |
+
#: templates/account.php:96 templates/account/partials/addon.php:37
|
1527 |
msgctxt "as synchronize license"
|
1528 |
msgid "Sync License"
|
1529 |
msgstr "Sync License"
|
1530 |
|
1531 |
+
#: templates/account.php:97 templates/account/partials/addon.php:38
|
1532 |
msgid "Cancel Trial"
|
1533 |
msgstr "Cancel Trial"
|
1534 |
|
1535 |
+
#: templates/account.php:98 templates/account/partials/addon.php:39
|
1536 |
msgid "Change Plan"
|
1537 |
msgstr "Change Plan"
|
1538 |
|
1539 |
+
#: templates/account.php:99 templates/account/partials/addon.php:40
|
1540 |
msgctxt "verb"
|
1541 |
msgid "Upgrade"
|
1542 |
msgstr "Upgrade"
|
1543 |
|
1544 |
+
#: templates/account.php:101 templates/account/partials/addon.php:42
|
1545 |
+
#: templates/account/partials/site.php:302
|
1546 |
msgctxt "verb"
|
1547 |
msgid "Downgrade"
|
1548 |
msgstr "Downgrade"
|
1549 |
|
1550 |
+
#: templates/account.php:103 templates/account/partials/addon.php:44
|
1551 |
+
#: templates/account/partials/site.php:31 templates/add-ons.php:130
|
1552 |
+
#: templates/plugin-info/features.php:72
|
1553 |
msgid "Free"
|
1554 |
msgstr "Free"
|
1555 |
|
1556 |
+
#: templates/account.php:104 templates/account/partials/addon.php:45
|
1557 |
msgid "Activate"
|
1558 |
msgstr "Activate"
|
1559 |
|
|
|
|
|
|
|
|
|
|
|
1560 |
#: templates/account.php:158
|
1561 |
msgid "Free Trial"
|
1562 |
msgstr "Free Trial"
|
1566 |
msgstr "Account Details"
|
1567 |
|
1568 |
#: templates/account.php:179
|
1569 |
+
#, php-format
|
1570 |
+
msgid ""
|
1571 |
+
"Deleting the account will automatically deactivate your %s plan license so "
|
1572 |
+
"you can use it on other sites. If you want to terminate the recurring "
|
1573 |
+
"payments as well, click the \"Cancel\" button, and first \"Downgrade\" your "
|
1574 |
+
"account. Are you sure you would like to continue with the deletion?"
|
1575 |
+
msgstr ""
|
1576 |
+
"Deleting the account will automatically deactivate your %s plan license so "
|
1577 |
+
"you can use it on other sites. If you want to terminate the recurring "
|
1578 |
+
"payments as well, click the \"Cancel\" button, and first \"Downgrade\" your "
|
1579 |
+
"account. Are you sure you would like to continue with the deletion?"
|
1580 |
|
1581 |
#: templates/account.php:181
|
1582 |
+
#, php-format
|
1583 |
+
msgid ""
|
1584 |
+
"Deletion is not temporary. Only delete if you no longer want to use this %s "
|
1585 |
+
"anymore. Are you sure you would like to continue with the deletion?"
|
1586 |
+
msgstr ""
|
1587 |
+
"Deletion is not temporary. Only delete if you no longer want to use this %s "
|
1588 |
+
"anymore. Are you sure you would like to continue with the deletion?"
|
1589 |
|
1590 |
#: templates/account.php:184
|
1591 |
msgid "Delete Account"
|
1592 |
msgstr "Delete Account"
|
1593 |
|
1594 |
+
#: templates/account.php:196 templates/account/partials/addon.php:159
|
1595 |
+
#: templates/account/partials/deactivate-license-button.php:35
|
1596 |
msgid "Deactivate License"
|
1597 |
msgstr "Deactivate License"
|
1598 |
|
1599 |
+
#: templates/account.php:219 templates/forms/subscription-cancellation.php:125
|
1600 |
msgid "Are you sure you want to proceed?"
|
1601 |
msgstr "Are you sure you want to proceed?"
|
1602 |
|
1603 |
+
#: templates/account.php:219 templates/account/partials/addon.php:182
|
1604 |
msgid "Cancel Subscription"
|
1605 |
msgstr "Cancel Subscription"
|
1606 |
|
1609 |
msgid "Sync"
|
1610 |
msgstr "Sync"
|
1611 |
|
1612 |
+
#: templates/account.php:261 templates/debug.php:489
|
1613 |
msgid "Name"
|
1614 |
msgstr "Name"
|
1615 |
|
1616 |
+
#: templates/account.php:267 templates/debug.php:490
|
1617 |
msgid "Email"
|
1618 |
msgstr "Email"
|
1619 |
|
1620 |
+
#: templates/account.php:274 templates/debug.php:372 templates/debug.php:528
|
1621 |
msgid "User ID"
|
1622 |
msgstr "User ID"
|
1623 |
|
1629 |
msgid "No ID"
|
1630 |
msgstr "No ID"
|
1631 |
|
1632 |
+
#: templates/account.php:290 templates/account/partials/site.php:219
|
1633 |
+
#: templates/debug.php:245 templates/debug.php:374 templates/debug.php:455
|
1634 |
+
#: templates/debug.php:492
|
1635 |
msgid "Public Key"
|
1636 |
msgstr "Public Key"
|
1637 |
|
1638 |
+
#: templates/account.php:296 templates/account/partials/site.php:231
|
1639 |
+
#: templates/debug.php:375 templates/debug.php:456 templates/debug.php:493
|
1640 |
msgid "Secret Key"
|
1641 |
msgstr "Secret Key"
|
1642 |
|
1645 |
msgid "No Secret"
|
1646 |
msgstr "No Secret"
|
1647 |
|
1648 |
+
#: templates/account.php:318 templates/account/partials/site.php:112
|
1649 |
+
#: templates/account/partials/site.php:114
|
1650 |
msgid "Trial"
|
1651 |
msgstr "Trial"
|
1652 |
|
1653 |
+
#: templates/account.php:337 templates/account/partials/site.php:248
|
1654 |
+
#: templates/debug.php:533
|
1655 |
msgid "License Key"
|
1656 |
msgstr "License Key"
|
1657 |
|
1659 |
msgid "not verified"
|
1660 |
msgstr "not verified"
|
1661 |
|
1662 |
+
#: templates/account.php:376 templates/account/partials/addon.php:120
|
1663 |
msgid "Expired"
|
1664 |
msgstr "Expired"
|
1665 |
|
1676 |
msgstr "Verify Email"
|
1677 |
|
1678 |
#: templates/account.php:453
|
1679 |
+
#, php-format
|
1680 |
msgid "Download %s Version"
|
1681 |
msgstr "Download %s Version"
|
1682 |
|
1683 |
+
#: templates/account.php:467 templates/account.php:649
|
1684 |
+
#: templates/account/partials/site.php:237
|
1685 |
+
#: templates/account/partials/site.php:255
|
1686 |
msgctxt "verb"
|
1687 |
msgid "Show"
|
1688 |
msgstr "Show"
|
1689 |
|
1690 |
#: templates/account.php:481
|
1691 |
+
#, php-format
|
1692 |
msgid "What is your %s?"
|
1693 |
msgstr "What is your %s?"
|
1694 |
|
1695 |
+
#: templates/account.php:489 templates/account/billing.php:27
|
1696 |
msgctxt "verb"
|
1697 |
msgid "Edit"
|
1698 |
msgstr "Edit"
|
1705 |
msgid "Search by address"
|
1706 |
msgstr "Search by address"
|
1707 |
|
1708 |
+
#: templates/account.php:522 templates/account.php:570
|
1709 |
+
#: templates/account/payments.php:35 templates/debug.php:238
|
1710 |
+
#: templates/debug.php:366 templates/debug.php:451 templates/debug.php:488
|
1711 |
+
#: templates/debug.php:526 templates/debug.php:599
|
1712 |
+
#: templates/debug/logger.php:21
|
1713 |
msgid "ID"
|
1714 |
msgstr "ID"
|
1715 |
|
1716 |
+
#: templates/account.php:523 templates/debug.php:369
|
1717 |
msgid "Address"
|
1718 |
msgstr "Address"
|
1719 |
|
1736 |
msgstr "Hide"
|
1737 |
|
1738 |
#: templates/account.php:686
|
1739 |
+
#, php-format
|
1740 |
msgid "Cancelling %s"
|
1741 |
msgstr "Cancelling %s"
|
1742 |
|
1743 |
+
#: templates/account.php:686 templates/account.php:703
|
1744 |
+
#: templates/forms/deactivation/form.php:117
|
1745 |
+
#: templates/forms/subscription-cancellation.php:27
|
1746 |
msgid "trial"
|
1747 |
msgstr "trial"
|
1748 |
|
1749 |
+
#: templates/account.php:701 templates/forms/deactivation/form.php:134
|
1750 |
+
#, php-format
|
1751 |
msgid "Cancelling %s..."
|
1752 |
msgstr "Cancelling %s..."
|
1753 |
|
1754 |
+
#: templates/account.php:704 templates/forms/deactivation/form.php:118
|
1755 |
+
#: templates/forms/subscription-cancellation.php:28
|
1756 |
msgid "subscription"
|
1757 |
msgstr "subscription"
|
1758 |
|
1759 |
#: templates/account.php:718
|
1760 |
+
msgid ""
|
1761 |
+
"Deactivating your license will block all premium features, but will enable "
|
1762 |
+
"activating the license on another site. Are you sure you want to proceed?"
|
1763 |
+
msgstr ""
|
1764 |
+
"Deactivating your license will block all premium features, but will enable "
|
1765 |
+
"activating the license on another site. Are you sure you want to proceed?"
|
1766 |
+
|
1767 |
+
#: templates/account/billing.php:28
|
1768 |
+
msgctxt "verb"
|
1769 |
+
msgid "Update"
|
1770 |
+
msgstr "Update"
|
1771 |
+
|
1772 |
+
#: templates/account/billing.php:39
|
1773 |
+
msgid "Billing"
|
1774 |
+
msgstr "Billing"
|
1775 |
+
|
1776 |
+
#: templates/account/billing.php:44
|
1777 |
+
msgid "Business name"
|
1778 |
+
msgstr "Business name"
|
1779 |
+
|
1780 |
+
#: templates/account/billing.php:45
|
1781 |
+
msgid "Tax / VAT ID"
|
1782 |
+
msgstr "Tax / VAT ID"
|
1783 |
+
|
1784 |
+
#: templates/account/billing.php:48 templates/account/billing.php:49
|
1785 |
+
#, php-format
|
1786 |
+
msgid "Address Line %d"
|
1787 |
+
msgstr "Address Line %d"
|
1788 |
+
|
1789 |
+
#: templates/account/billing.php:52
|
1790 |
+
msgid "City"
|
1791 |
+
msgstr "City"
|
1792 |
+
|
1793 |
+
#: templates/account/billing.php:52
|
1794 |
+
msgid "Town"
|
1795 |
+
msgstr "Town"
|
1796 |
+
|
1797 |
+
#: templates/account/billing.php:53
|
1798 |
+
msgid "ZIP / Postal Code"
|
1799 |
+
msgstr "ZIP / Postal Code"
|
1800 |
+
|
1801 |
+
#: templates/account/billing.php:308
|
1802 |
+
msgid "Country"
|
1803 |
+
msgstr "Country"
|
1804 |
+
|
1805 |
+
#: templates/account/billing.php:310
|
1806 |
+
msgid "Select Country"
|
1807 |
+
msgstr "Select Country"
|
1808 |
+
|
1809 |
+
#: templates/account/billing.php:317 templates/account/billing.php:318
|
1810 |
+
msgid "State"
|
1811 |
+
msgstr "State"
|
1812 |
+
|
1813 |
+
#: templates/account/billing.php:317 templates/account/billing.php:318
|
1814 |
+
msgid "Province"
|
1815 |
+
msgstr "Province"
|
1816 |
+
|
1817 |
+
#: templates/account/partials/activate-license-button.php:46
|
1818 |
+
msgid "Localhost"
|
1819 |
+
msgstr "Localhost"
|
1820 |
+
|
1821 |
+
#: templates/account/partials/activate-license-button.php:50
|
1822 |
+
#, php-format
|
1823 |
+
msgctxt "as 5 licenses left"
|
1824 |
+
msgid "%s left"
|
1825 |
+
msgstr "%s left"
|
1826 |
+
|
1827 |
+
#: templates/account/partials/activate-license-button.php:51
|
1828 |
+
msgid "Last license"
|
1829 |
+
msgstr "Last license"
|
1830 |
+
|
1831 |
+
#: templates/account/partials/addon.php:115
|
1832 |
+
msgid "Cancelled"
|
1833 |
+
msgstr "Cancelled"
|
1834 |
+
|
1835 |
+
#: templates/account/partials/addon.php:125
|
1836 |
+
msgid "No expiration"
|
1837 |
+
msgstr "No expiration"
|
1838 |
+
|
1839 |
+
#: templates/account/partials/addon.php:264
|
1840 |
+
#: templates/account/partials/addon.php:317
|
1841 |
+
msgid "Activate this add-on"
|
1842 |
+
msgstr "Activate this add-on"
|
1843 |
+
|
1844 |
+
#: templates/account/partials/addon.php:339 templates/debug.php:433
|
1845 |
+
#: templates/debug.php:511
|
1846 |
+
msgctxt "verb"
|
1847 |
+
msgid "Delete"
|
1848 |
+
msgstr "Delete"
|
1849 |
+
|
1850 |
+
#: templates/account/partials/site.php:148 templates/debug.php:368
|
1851 |
+
msgid "Blog ID"
|
1852 |
+
msgstr "Blog ID"
|
1853 |
+
|
1854 |
+
#: templates/account/partials/site.php:181
|
1855 |
+
msgid "Owner Name"
|
1856 |
+
msgstr "Owner Name"
|
1857 |
+
|
1858 |
+
#: templates/account/partials/site.php:193
|
1859 |
+
msgid "Owner Email"
|
1860 |
+
msgstr "Owner Email"
|
1861 |
+
|
1862 |
+
#: templates/account/partials/site.php:205
|
1863 |
+
msgid "Owner ID"
|
1864 |
+
msgstr "Owner ID"
|
1865 |
+
|
1866 |
+
#: templates/account/partials/site.php:270
|
1867 |
+
msgid "Subscription"
|
1868 |
+
msgstr "Subscription"
|
1869 |
+
|
1870 |
+
#: templates/account/payments.php:29
|
1871 |
+
msgid "Payments"
|
1872 |
+
msgstr "Payments"
|
1873 |
+
|
1874 |
+
#: templates/account/payments.php:36
|
1875 |
+
msgid "Date"
|
1876 |
+
msgstr "Date"
|
1877 |
+
|
1878 |
+
#: templates/account/payments.php:37
|
1879 |
+
msgid "Amount"
|
1880 |
+
msgstr "Amount"
|
1881 |
+
|
1882 |
+
#: templates/account/payments.php:38 templates/account/payments.php:50
|
1883 |
+
msgid "Invoice"
|
1884 |
+
msgstr "Invoice"
|
1885 |
|
1886 |
#: templates/add-ons.php:36
|
1887 |
+
#, php-format
|
1888 |
msgid "Add Ons for %s"
|
1889 |
msgstr "Add Ons for %s"
|
1890 |
|
1891 |
#: templates/add-ons.php:44
|
1892 |
+
msgid ""
|
1893 |
+
"We could'nt load the add-ons list. It's probably an issue on our side, "
|
1894 |
+
"please try to come back in few minutes."
|
1895 |
+
msgstr ""
|
1896 |
+
"We could'nt load the add-ons list. It's probably an issue on our side, "
|
1897 |
+
"please try to come back in few minutes."
|
1898 |
|
1899 |
#: templates/add-ons.php:139
|
1900 |
msgid "View details"
|
1901 |
msgstr "View details"
|
1902 |
|
1903 |
+
#: templates/admin-notice.php:13 templates/forms/license-activation.php:208
|
1904 |
+
#: templates/forms/resend-key.php:77
|
1905 |
msgctxt "as close a window"
|
1906 |
msgid "Dismiss"
|
1907 |
msgstr "Dismiss"
|
1908 |
|
1909 |
#: templates/auto-installation.php:45
|
1910 |
+
#, php-format
|
1911 |
msgid "%s sec"
|
1912 |
msgstr "%s sec"
|
1913 |
|
1916 |
msgstr "Automatic Installation"
|
1917 |
|
1918 |
#: templates/auto-installation.php:93
|
1919 |
+
#, php-format
|
1920 |
+
msgid ""
|
1921 |
+
"An automated download and installation of %s (paid version) from %s will "
|
1922 |
+
"start in %s. If you would like to do it manually - click the cancellation "
|
1923 |
+
"button now."
|
1924 |
+
msgstr ""
|
1925 |
+
"An automated download and installation of %s (paid version) from %s will "
|
1926 |
+
"start in %s. If you would like to do it manually - click the cancellation "
|
1927 |
+
"button now."
|
1928 |
|
1929 |
#: templates/auto-installation.php:104
|
1930 |
+
msgid ""
|
1931 |
+
"The installation process has started and may take a few minutes to complete. "
|
1932 |
+
"Please wait until it is done - do not refresh this page."
|
1933 |
+
msgstr ""
|
1934 |
+
"The installation process has started and may take a few minutes to complete. "
|
1935 |
+
"Please wait until it is done - do not refresh this page."
|
1936 |
|
1937 |
#: templates/auto-installation.php:109
|
1938 |
msgid "Cancel Installation"
|
1946 |
msgid "PCI compliant"
|
1947 |
msgstr "PCI compliant"
|
1948 |
|
|
|
1949 |
#: templates/connect.php:112
|
1950 |
+
#, php-format
|
1951 |
msgctxt "greeting"
|
1952 |
msgid "Hey %s,"
|
1953 |
msgstr "Hey %s,"
|
1961 |
msgstr "Re-send activation email"
|
1962 |
|
1963 |
#: templates/connect.php:162
|
1964 |
+
#, php-format
|
1965 |
msgid "Thanks %s!"
|
1966 |
msgstr "Thanks %s!"
|
1967 |
|
1968 |
+
#: templates/connect.php:172 templates/forms/license-activation.php:43
|
1969 |
msgid "Agree & Activate License"
|
1970 |
msgstr "Agree & Activate License"
|
1971 |
|
1972 |
#: templates/connect.php:181
|
1973 |
+
#, php-format
|
1974 |
+
msgid ""
|
1975 |
+
"Thanks for purchasing %s! To get started, please enter your license key:"
|
1976 |
+
msgstr ""
|
1977 |
+
"Thanks for purchasing %s! To get started, please enter your license key:"
|
1978 |
|
1979 |
#: templates/connect.php:188
|
1980 |
+
#, php-format
|
1981 |
+
msgid ""
|
1982 |
+
"Never miss an important update - opt in to our security & feature updates "
|
1983 |
+
"notifications, educational content, offers, and non-sensitive diagnostic "
|
1984 |
+
"tracking with %4$s."
|
1985 |
+
msgstr ""
|
1986 |
+
"Never miss an important update - opt in to our security & feature updates "
|
1987 |
+
"notifications, educational content, offers, and non-sensitive diagnostic "
|
1988 |
+
"tracking with %4$s."
|
1989 |
|
1990 |
#: templates/connect.php:189
|
1991 |
+
#, php-format
|
1992 |
+
msgid ""
|
1993 |
+
"Never miss an important update - opt in to our security and feature updates "
|
1994 |
+
"notifications, and non-sensitive diagnostic tracking with %4$s."
|
1995 |
+
msgstr ""
|
1996 |
+
"Never miss an important update - opt in to our security and feature updates "
|
1997 |
+
"notifications, and non-sensitive diagnostic tracking with %4$s."
|
1998 |
|
1999 |
#: templates/connect.php:195
|
2000 |
+
#, php-format
|
2001 |
+
msgid ""
|
2002 |
+
"Never miss an important update - opt in to our security & feature updates "
|
2003 |
+
"notifications, educational content, offers, and non-sensitive diagnostic "
|
2004 |
+
"tracking with %4$s. If you skip this, that's okay! %1$s will still work just "
|
2005 |
+
"fine."
|
2006 |
+
msgstr ""
|
2007 |
+
"Never miss an important update - opt in to our security & feature updates "
|
2008 |
+
"notifications, educational content, offers, and non-sensitive diagnostic "
|
2009 |
+
"tracking with %4$s. If you skip this, that's okay! %1$s will still work just "
|
2010 |
+
"fine."
|
2011 |
|
2012 |
#: templates/connect.php:196
|
2013 |
+
#, php-format
|
2014 |
+
msgid ""
|
2015 |
+
"Never miss an important update - opt in to our security & feature updates "
|
2016 |
+
"notifications, and non-sensitive diagnostic tracking with %4$s. If you skip "
|
2017 |
+
"this, that's okay! %1$s will still work just fine."
|
2018 |
+
msgstr ""
|
2019 |
+
"Never miss an important update - opt in to our security & feature updates "
|
2020 |
+
"notifications, and non-sensitive diagnostic tracking with %4$s. If you skip "
|
2021 |
+
"this, that's okay! %1$s will still work just fine."
|
2022 |
|
2023 |
#: templates/connect.php:230
|
2024 |
msgid "We're excited to introduce the Freemius network-level integration."
|
2025 |
msgstr "We're excited to introduce the Freemius network-level integration."
|
2026 |
|
2027 |
#: templates/connect.php:233
|
2028 |
+
#, php-format
|
2029 |
+
msgid ""
|
2030 |
+
"During the update process we detected %d site(s) that are still pending "
|
2031 |
+
"license activation."
|
2032 |
+
msgstr ""
|
2033 |
+
"During the update process we detected %d site(s) that are still pending "
|
2034 |
+
"license activation."
|
2035 |
|
2036 |
#: templates/connect.php:235
|
2037 |
+
#, php-format
|
2038 |
+
msgid ""
|
2039 |
+
"If you'd like to use the %s on those sites, please enter your license key "
|
2040 |
+
"below and click the activation button."
|
2041 |
+
msgstr ""
|
2042 |
+
"If you'd like to use the %s on those sites, please enter your license key "
|
2043 |
+
"below and click the activation button."
|
2044 |
|
2045 |
#: templates/connect.php:237
|
2046 |
+
#, php-format
|
2047 |
msgid "%s's paid features"
|
2048 |
msgstr "%s's paid features"
|
2049 |
|
2050 |
#: templates/connect.php:242
|
2051 |
+
#, php-format
|
2052 |
+
msgid ""
|
2053 |
+
"Alternatively, you can skip it for now and activate the license later, in "
|
2054 |
+
"your %s's network-level Account page."
|
2055 |
+
msgstr ""
|
2056 |
+
"Alternatively, you can skip it for now and activate the license later, in "
|
2057 |
+
"your %s's network-level Account page."
|
2058 |
|
2059 |
#: templates/connect.php:244
|
2060 |
+
#, php-format
|
2061 |
+
msgid ""
|
2062 |
+
"During the update process we detected %s site(s) in the network that are "
|
2063 |
+
"still pending your attention."
|
2064 |
+
msgstr ""
|
2065 |
+
"During the update process we detected %s site(s) in the network that are "
|
2066 |
+
"still pending your attention."
|
2067 |
|
2068 |
+
#: templates/connect.php:253 templates/forms/license-activation.php:46
|
2069 |
msgid "License key"
|
2070 |
msgstr "License key"
|
2071 |
|
2072 |
+
#: templates/connect.php:256 templates/forms/license-activation.php:19
|
2073 |
msgid "Can't find your license key?"
|
2074 |
msgstr "Can't find your license key?"
|
2075 |
|
2076 |
+
#: templates/connect.php:315 templates/connect.php:630
|
2077 |
+
#: templates/forms/deactivation/retry-skip.php:20
|
2078 |
msgctxt "verb"
|
2079 |
msgid "Skip"
|
2080 |
msgstr "Skip"
|
2084 |
msgstr "Delegate to Site Admins"
|
2085 |
|
2086 |
#: templates/connect.php:318
|
2087 |
+
msgid ""
|
2088 |
+
"If you click it, this decision will be delegated to the sites administrators."
|
2089 |
+
msgstr ""
|
2090 |
+
"If you click it, this decision will be delegated to the sites administrators."
|
2091 |
|
2092 |
#: templates/connect.php:346
|
2093 |
msgid "Your Profile Overview"
|
2109 |
msgid "Admin Notices"
|
2110 |
msgstr "Admin Notices"
|
2111 |
|
2112 |
+
#: templates/connect.php:359 templates/connect.php:375
|
2113 |
msgid "Updates, announcements, marketing, no spam"
|
2114 |
msgstr "Updates, announcements, marketing, no spam"
|
2115 |
|
2116 |
#: templates/connect.php:364
|
2117 |
+
#, php-format
|
2118 |
msgid "Current %s Events"
|
2119 |
msgstr "Current %s Events"
|
2120 |
|
2126 |
msgid "Newsletter"
|
2127 |
msgstr "Newsletter"
|
2128 |
|
2129 |
+
#: templates/connect.php:391 templates/forms/license-activation.php:38
|
2130 |
+
#, php-format
|
2131 |
+
msgid ""
|
2132 |
+
"The %1$s will be periodically sending data to %2$s to check for security and "
|
2133 |
+
"feature updates, and verify the validity of your license."
|
2134 |
+
msgstr ""
|
2135 |
+
"The %1$s will be periodically sending data to %2$s to check for security and "
|
2136 |
+
"feature updates, and verify the validity of your license."
|
2137 |
|
2138 |
#: templates/connect.php:396
|
2139 |
msgid "What permissions are being granted?"
|
2196 |
msgid "Debugging"
|
2197 |
msgstr "Debugging"
|
2198 |
|
2199 |
+
#: templates/debug.php:54 templates/debug.php:250 templates/debug.php:376
|
2200 |
+
#: templates/debug.php:494
|
2201 |
msgid "Actions"
|
2202 |
msgstr "Actions"
|
2203 |
|
2233 |
msgid "Set DB Option"
|
2234 |
msgstr "Set DB Option"
|
2235 |
|
2236 |
+
#: templates/debug.php:182
|
2237 |
msgid "Key"
|
2238 |
msgstr "Key"
|
2239 |
|
2240 |
+
#: templates/debug.php:183
|
2241 |
msgid "Value"
|
2242 |
msgstr "Value"
|
2243 |
|
2244 |
+
#: templates/debug.php:199
|
2245 |
msgctxt "as software development kit versions"
|
2246 |
msgid "SDK Versions"
|
2247 |
msgstr "SDK Versions"
|
2248 |
|
2249 |
+
#: templates/debug.php:204
|
2250 |
msgid "SDK Path"
|
2251 |
msgstr "SDK Path"
|
2252 |
|
2253 |
+
#: templates/debug.php:205 templates/debug.php:244
|
2254 |
msgid "Module Path"
|
2255 |
msgstr "Module Path"
|
2256 |
|
2257 |
+
#: templates/debug.php:206
|
2258 |
msgid "Is Active"
|
2259 |
msgstr "Is Active"
|
2260 |
|
2261 |
+
#: templates/debug.php:234 templates/debug/plugins-themes-sync.php:35
|
2262 |
msgid "Plugins"
|
2263 |
msgstr "Plugins"
|
2264 |
|
2265 |
+
#: templates/debug.php:234 templates/debug/plugins-themes-sync.php:56
|
2266 |
msgid "Themes"
|
2267 |
msgstr "Themes"
|
2268 |
|
2269 |
+
#: templates/debug.php:239 templates/debug.php:371 templates/debug.php:453
|
2270 |
+
#: templates/debug/scheduled-crons.php:80
|
2271 |
msgid "Slug"
|
2272 |
msgstr "Slug"
|
2273 |
|
2274 |
+
#: templates/debug.php:241 templates/debug.php:452
|
2275 |
msgid "Title"
|
2276 |
msgstr "Title"
|
2277 |
|
2278 |
+
#: templates/debug.php:242
|
2279 |
msgctxt "as application program interface"
|
2280 |
msgid "API"
|
2281 |
msgstr "API"
|
2282 |
|
2283 |
+
#: templates/debug.php:243
|
2284 |
msgid "Freemius State"
|
2285 |
msgstr "Freemius State"
|
2286 |
|
2287 |
+
#: templates/debug.php:247
|
2288 |
msgid "Network Blog"
|
2289 |
msgstr "Network Blog"
|
2290 |
|
2291 |
+
#: templates/debug.php:248
|
2292 |
msgid "Network User"
|
2293 |
msgstr "Network User"
|
2294 |
|
2295 |
+
#: templates/debug.php:285
|
2296 |
msgctxt "as connection was successful"
|
2297 |
msgid "Connected"
|
2298 |
msgstr "Connected"
|
2299 |
|
2300 |
+
#: templates/debug.php:286
|
2301 |
msgctxt "as connection blocked"
|
2302 |
msgid "Blocked"
|
2303 |
msgstr "Blocked"
|
2304 |
|
2305 |
+
#: templates/debug.php:322
|
2306 |
msgid "Simulate Trial Promotion"
|
2307 |
msgstr "Simulate Trial Promotion"
|
2308 |
|
2309 |
+
#: templates/debug.php:334
|
2310 |
msgid "Simulate Network Upgrade"
|
2311 |
msgstr "Simulate Network Upgrade"
|
2312 |
|
2313 |
+
#: templates/debug.php:360
|
2314 |
+
#, php-format
|
2315 |
msgid "%s Installs"
|
2316 |
msgstr "%s Installs"
|
2317 |
|
2318 |
+
#: templates/debug.php:362
|
2319 |
msgctxt "like websites"
|
2320 |
msgid "Sites"
|
2321 |
msgstr "Sites"
|
2322 |
|
2323 |
+
#: templates/debug.php:447
|
2324 |
+
#, php-format
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2325 |
msgid "Add Ons of module %s"
|
2326 |
msgstr "Add Ons of module %s"
|
2327 |
|
2328 |
+
#: templates/debug.php:484
|
2329 |
msgid "Users"
|
2330 |
msgstr "Users"
|
2331 |
|
2332 |
+
#: templates/debug.php:491
|
2333 |
msgid "Verified"
|
2334 |
msgstr "Verified"
|
2335 |
|
2336 |
+
#: templates/debug.php:522
|
2337 |
+
#, php-format
|
2338 |
msgid "%s Licenses"
|
2339 |
msgstr "%s Licenses"
|
2340 |
|
2341 |
+
#: templates/debug.php:527
|
2342 |
msgid "Plugin ID"
|
2343 |
msgstr "Plugin ID"
|
2344 |
|
2345 |
+
#: templates/debug.php:529
|
2346 |
msgid "Plan ID"
|
2347 |
msgstr "Plan ID"
|
2348 |
|
2349 |
+
#: templates/debug.php:530
|
2350 |
msgid "Quota"
|
2351 |
msgstr "Quota"
|
2352 |
|
2353 |
+
#: templates/debug.php:531
|
2354 |
msgid "Activated"
|
2355 |
msgstr "Activated"
|
2356 |
|
2357 |
+
#: templates/debug.php:532
|
2358 |
msgid "Blocking"
|
2359 |
msgstr "Blocking"
|
2360 |
|
2361 |
+
#: templates/debug.php:534
|
2362 |
msgctxt "as expiration date"
|
2363 |
msgid "Expiration"
|
2364 |
msgstr "Expiration"
|
2365 |
|
2366 |
+
#: templates/debug.php:557
|
2367 |
msgid "Debug Log"
|
2368 |
msgstr "Debug Log"
|
2369 |
|
2370 |
+
#: templates/debug.php:561
|
2371 |
msgid "All Types"
|
2372 |
msgstr "All Types"
|
2373 |
|
2374 |
+
#: templates/debug.php:568
|
2375 |
msgid "All Requests"
|
2376 |
msgstr "All Requests"
|
2377 |
|
2378 |
+
#: templates/debug.php:573 templates/debug.php:602
|
2379 |
+
#: templates/debug/logger.php:25
|
2380 |
msgid "File"
|
2381 |
msgstr "File"
|
2382 |
|
2383 |
+
#: templates/debug.php:574 templates/debug.php:600
|
2384 |
+
#: templates/debug/logger.php:23
|
2385 |
msgid "Function"
|
2386 |
msgstr "Function"
|
2387 |
|
2388 |
+
#: templates/debug.php:575
|
2389 |
msgid "Process ID"
|
2390 |
msgstr "Process ID"
|
2391 |
|
2392 |
+
#: templates/debug.php:576
|
2393 |
msgid "Logger"
|
2394 |
msgstr "Logger"
|
2395 |
|
2396 |
+
#: templates/debug.php:577 templates/debug.php:601
|
2397 |
+
#: templates/debug/logger.php:24
|
2398 |
msgid "Message"
|
2399 |
msgstr "Message"
|
2400 |
|
2401 |
+
#: templates/debug.php:579
|
2402 |
msgid "Filter"
|
2403 |
msgstr "Filter"
|
2404 |
|
2405 |
+
#: templates/debug.php:587
|
2406 |
msgid "Download"
|
2407 |
msgstr "Download"
|
2408 |
|
2409 |
+
#: templates/debug.php:598 templates/debug/logger.php:22
|
2410 |
msgid "Type"
|
2411 |
msgstr "Type"
|
2412 |
|
2413 |
+
#: templates/debug.php:603 templates/debug/logger.php:26
|
2414 |
msgid "Timestamp"
|
2415 |
msgstr "Timestamp"
|
2416 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2417 |
#: templates/debug/api-calls.php:56
|
2418 |
msgid "API"
|
2419 |
msgstr "API"
|
2455 |
msgid "Log"
|
2456 |
msgstr "Log"
|
2457 |
|
2458 |
+
#: templates/debug/plugins-themes-sync.php:18
|
2459 |
+
#: templates/debug/scheduled-crons.php:91
|
2460 |
+
#, php-format
|
2461 |
msgid "In %s"
|
2462 |
msgstr "In %s"
|
2463 |
|
2464 |
+
#: templates/debug/plugins-themes-sync.php:20
|
2465 |
+
#: templates/debug/scheduled-crons.php:93
|
2466 |
+
#, php-format
|
2467 |
msgid "%s ago"
|
2468 |
msgstr "%s ago"
|
2469 |
|
2470 |
+
#: templates/debug/plugins-themes-sync.php:21
|
2471 |
+
#: templates/debug/scheduled-crons.php:74
|
2472 |
msgctxt "seconds"
|
2473 |
msgid "sec"
|
2474 |
msgstr "sec"
|
2481 |
msgid "Total"
|
2482 |
msgstr "Total"
|
2483 |
|
2484 |
+
#: templates/debug/plugins-themes-sync.php:29
|
2485 |
+
#: templates/debug/scheduled-crons.php:84
|
2486 |
msgid "Last"
|
2487 |
msgstr "Last"
|
2488 |
|
2515 |
msgstr "Apply to become an affiliate"
|
2516 |
|
2517 |
#: templates/forms/affiliation.php:104
|
2518 |
+
#, php-format
|
2519 |
+
msgid ""
|
2520 |
+
"Your affiliate application for %s has been accepted! Log in to your "
|
2521 |
+
"affiliate area at: %s."
|
2522 |
+
msgstr ""
|
2523 |
+
"Your affiliate application for %s has been accepted! Log in to your "
|
2524 |
+
"affiliate area at: %s."
|
2525 |
|
2526 |
#: templates/forms/affiliation.php:119
|
2527 |
+
msgid ""
|
2528 |
+
"Thank you for applying for our affiliate program, we'll review your details "
|
2529 |
+
"during the next 14 days and will get back to you with further information."
|
2530 |
+
msgstr ""
|
2531 |
+
"Thank you for applying for our affiliate program, we'll review your details "
|
2532 |
+
"during the next 14 days and will get back to you with further information."
|
2533 |
|
2534 |
#: templates/forms/affiliation.php:122
|
2535 |
msgid "Your affiliation account was temporarily suspended."
|
2536 |
msgstr "Your affiliation account was temporarily suspended."
|
2537 |
|
2538 |
#: templates/forms/affiliation.php:125
|
2539 |
+
msgid ""
|
2540 |
+
"Thank you for applying for our affiliate program, unfortunately, we've "
|
2541 |
+
"decided at this point to reject your application. Please try again in 30 "
|
2542 |
+
"days."
|
2543 |
+
msgstr ""
|
2544 |
+
"Thank you for applying for our affiliate program, unfortunately, we've "
|
2545 |
+
"decided at this point to reject your application. Please try again in 30 "
|
2546 |
+
"days."
|
2547 |
|
2548 |
#: templates/forms/affiliation.php:128
|
2549 |
+
msgid ""
|
2550 |
+
"Due to violation of our affiliation terms, we decided to temporarily block "
|
2551 |
+
"your affiliation account. If you have any questions, please contact support."
|
2552 |
+
msgstr ""
|
2553 |
+
"Due to violation of our affiliation terms, we decided to temporarily block "
|
2554 |
+
"your affiliation account. If you have any questions, please contact support."
|
2555 |
|
2556 |
#: templates/forms/affiliation.php:141
|
2557 |
+
#, php-format
|
2558 |
msgid "Like the %s? Become our ambassador and earn cash ;-)"
|
2559 |
msgstr "Like the %s? Become our ambassador and earn cash ;-)"
|
2560 |
|
2561 |
#: templates/forms/affiliation.php:142
|
2562 |
+
#, php-format
|
2563 |
+
msgid ""
|
2564 |
+
"Refer new customers to our %s and earn %s commission on each successful sale "
|
2565 |
+
"you refer!"
|
2566 |
+
msgstr ""
|
2567 |
+
"Refer new customers to our %s and earn %s commission on each successful sale "
|
2568 |
+
"you refer!"
|
2569 |
|
2570 |
#: templates/forms/affiliation.php:145
|
2571 |
msgid "Program Summary"
|
2572 |
msgstr "Program Summary"
|
2573 |
|
2574 |
#: templates/forms/affiliation.php:147
|
2575 |
+
#, php-format
|
2576 |
msgid "%s commission when a customer purchases a new license."
|
2577 |
msgstr "%s commission when a customer purchases a new license."
|
2578 |
|
2581 |
msgstr "Get commission for automated subscription renewals."
|
2582 |
|
2583 |
#: templates/forms/affiliation.php:152
|
2584 |
+
#, php-format
|
2585 |
+
msgid ""
|
2586 |
+
"%s tracking cookie after the first visit to maximize earnings potential."
|
2587 |
+
msgstr ""
|
2588 |
+
"%s tracking cookie after the first visit to maximize earnings potential."
|
2589 |
|
2590 |
#: templates/forms/affiliation.php:155
|
2591 |
msgid "Unlimited commissions."
|
2592 |
msgstr "Unlimited commissions."
|
2593 |
|
2594 |
#: templates/forms/affiliation.php:157
|
2595 |
+
#, php-format
|
2596 |
msgid "%s minimum payout amount."
|
2597 |
msgstr "%s minimum payout amount."
|
2598 |
|
2601 |
msgstr "Payouts are in USD and processed monthly via PayPal."
|
2602 |
|
2603 |
#: templates/forms/affiliation.php:159
|
2604 |
+
msgid ""
|
2605 |
+
"As we reserve 30 days for potential refunds, we only pay commissions that "
|
2606 |
+
"are older than 30 days."
|
2607 |
+
msgstr ""
|
2608 |
+
"As we reserve 30 days for potential refunds, we only pay commissions that "
|
2609 |
+
"are older than 30 days."
|
2610 |
|
2611 |
#: templates/forms/affiliation.php:162
|
2612 |
msgid "Affiliate"
|
2613 |
msgstr "Affiliate"
|
2614 |
|
2615 |
+
#: templates/forms/affiliation.php:165 templates/forms/resend-key.php:23
|
2616 |
msgid "Email address"
|
2617 |
msgstr "Email address"
|
2618 |
|
2625 |
msgstr "PayPal account email address"
|
2626 |
|
2627 |
#: templates/forms/affiliation.php:177
|
2628 |
+
#, php-format
|
2629 |
msgid "Where are you going to promote the %s?"
|
2630 |
msgstr "Where are you going to promote the %s?"
|
2631 |
|
2632 |
#: templates/forms/affiliation.php:179
|
2633 |
+
#, php-format
|
2634 |
+
msgid ""
|
2635 |
+
"Enter the domain of your website or other websites from where you plan to "
|
2636 |
+
"promote the %s."
|
2637 |
+
msgstr ""
|
2638 |
+
"Enter the domain of your website or other websites from where you plan to "
|
2639 |
+
"promote the %s."
|
2640 |
|
2641 |
#: templates/forms/affiliation.php:181
|
2642 |
msgid "Add another domain"
|
2667 |
msgstr "Website, email, and social media statistics (optional)"
|
2668 |
|
2669 |
#: templates/forms/affiliation.php:210
|
2670 |
+
msgid ""
|
2671 |
+
"Please feel free to provide any relevant website or social media statistics, "
|
2672 |
+
"e.g. monthly unique site visits, number of email subscribers, followers, "
|
2673 |
+
"etc. (we will keep this information confidential)."
|
2674 |
+
msgstr ""
|
2675 |
+
"Please feel free to provide any relevant website or social media statistics, "
|
2676 |
+
"e.g. monthly unique site visits, number of email subscribers, followers, "
|
2677 |
+
"etc. (we will keep this information confidential)."
|
2678 |
|
2679 |
#: templates/forms/affiliation.php:214
|
2680 |
msgid "How will you promote us?"
|
2681 |
msgstr "How will you promote us?"
|
2682 |
|
2683 |
#: templates/forms/affiliation.php:217
|
2684 |
+
#, php-format
|
2685 |
+
msgid ""
|
2686 |
+
"Please provide details on how you intend to promote %s (please be as "
|
2687 |
+
"specific as possible)."
|
2688 |
+
msgstr ""
|
2689 |
+
"Please provide details on how you intend to promote %s (please be as "
|
2690 |
+
"specific as possible)."
|
2691 |
|
2692 |
+
#: templates/forms/affiliation.php:223 templates/forms/resend-key.php:22
|
2693 |
msgid "Cancel"
|
2694 |
msgstr "Cancel"
|
2695 |
|
2697 |
msgid "Become an affiliate"
|
2698 |
msgstr "Become an affiliate"
|
2699 |
|
2700 |
+
#: templates/forms/deactivation/contact.php:19
|
2701 |
+
msgid ""
|
2702 |
+
"Sorry for the inconvenience and we are here to help if you give us a chance."
|
2703 |
+
msgstr ""
|
2704 |
+
"Sorry for the inconvenience and we are here to help if you give us a chance."
|
2705 |
+
|
2706 |
+
#: templates/forms/deactivation/contact.php:22
|
2707 |
+
msgid "Contact Support"
|
2708 |
+
msgstr "Contact Support"
|
2709 |
+
|
2710 |
+
#: templates/forms/deactivation/form.php:59
|
2711 |
+
msgid "Anonymous feedback"
|
2712 |
+
msgstr "Anonymous feedback"
|
2713 |
+
|
2714 |
+
#: templates/forms/deactivation/form.php:66
|
2715 |
+
msgid "Deactivate"
|
2716 |
+
msgstr "Deactivate"
|
2717 |
+
|
2718 |
+
#: templates/forms/deactivation/form.php:68
|
2719 |
+
#, php-format
|
2720 |
+
msgid "Activate %s"
|
2721 |
+
msgstr "Activate %s"
|
2722 |
+
|
2723 |
+
#: templates/forms/deactivation/form.php:80
|
2724 |
+
msgid "Quick Feedback"
|
2725 |
+
msgstr "Quick Feedback"
|
2726 |
+
|
2727 |
+
#: templates/forms/deactivation/form.php:84
|
2728 |
+
#, php-format
|
2729 |
+
msgid "If you have a moment, please let us know why you are %s"
|
2730 |
+
msgstr "If you have a moment, please let us know why you are %s"
|
2731 |
+
|
2732 |
+
#: templates/forms/deactivation/form.php:84
|
2733 |
+
msgid "deactivating"
|
2734 |
+
msgstr "deactivating"
|
2735 |
+
|
2736 |
+
#: templates/forms/deactivation/form.php:84
|
2737 |
+
msgid "switching"
|
2738 |
+
msgstr "switching"
|
2739 |
+
|
2740 |
+
#: templates/forms/deactivation/form.php:150
|
2741 |
+
#: templates/forms/subscription-cancellation.php:191
|
2742 |
+
#, php-format
|
2743 |
+
msgid "Cancel %s & Proceed"
|
2744 |
+
msgstr "Cancel %s & Proceed"
|
2745 |
+
|
2746 |
+
#: templates/forms/deactivation/form.php:332
|
2747 |
+
#, php-format
|
2748 |
+
msgid "Submit & %s"
|
2749 |
+
msgstr "Submit & %s"
|
2750 |
+
|
2751 |
+
#: templates/forms/deactivation/form.php:353
|
2752 |
+
msgid "Kindly tell us the reason so we can improve."
|
2753 |
+
msgstr "Kindly tell us the reason so we can improve."
|
2754 |
+
|
2755 |
+
#: templates/forms/deactivation/form.php:478
|
2756 |
+
#, php-format
|
2757 |
+
msgid "Yes - %s"
|
2758 |
+
msgstr "Yes - %s"
|
2759 |
+
|
2760 |
+
#: templates/forms/deactivation/form.php:485
|
2761 |
+
#, php-format
|
2762 |
+
msgid "Skip & %s"
|
2763 |
+
msgstr "Skip & %s"
|
2764 |
+
|
2765 |
+
#: templates/forms/deactivation/retry-skip.php:21
|
2766 |
+
msgid "Click here to use the plugin anonymously"
|
2767 |
+
msgstr "Click here to use the plugin anonymously"
|
2768 |
+
|
2769 |
+
#: templates/forms/deactivation/retry-skip.php:23
|
2770 |
+
#, php-format
|
2771 |
+
msgid ""
|
2772 |
+
"You might have missed it, but you don't have to share any data and can just "
|
2773 |
+
"%s the opt-in."
|
2774 |
+
msgstr ""
|
2775 |
+
"You might have missed it, but you don't have to share any data and can just "
|
2776 |
+
"%s the opt-in."
|
2777 |
+
|
2778 |
#: templates/forms/license-activation.php:20
|
2779 |
+
msgid ""
|
2780 |
+
"Please enter the license key that you received in the email right after the "
|
2781 |
+
"purchase:"
|
2782 |
+
msgstr ""
|
2783 |
+
"Please enter the license key that you received in the email right after the "
|
2784 |
+
"purchase:"
|
2785 |
|
2786 |
#: templates/forms/license-activation.php:25
|
2787 |
msgid "Update License"
|
2798 |
msgstr "Opt In"
|
2799 |
|
2800 |
#: templates/forms/optout.php:33
|
2801 |
+
#, php-format
|
2802 |
+
msgid ""
|
2803 |
+
"Usage tracking is done in the name of making %s better. Making a better user "
|
2804 |
+
"experience, prioritizing new features, and more good things. We'd really "
|
2805 |
+
"appreciate if you'll reconsider letting us continue with the tracking."
|
2806 |
+
msgstr ""
|
2807 |
+
"Usage tracking is done in the name of making %s better. Making a better user "
|
2808 |
+
"experience, prioritizing new features, and more good things. We'd really "
|
2809 |
+
"appreciate if you'll reconsider letting us continue with the tracking."
|
2810 |
|
2811 |
#: templates/forms/optout.php:35
|
2812 |
+
#, php-format
|
2813 |
+
msgid ""
|
2814 |
+
"By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
|
2815 |
+
msgstr ""
|
2816 |
+
"By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
|
2817 |
|
2818 |
#: templates/forms/premium-versions-upgrade-handler.php:40
|
2819 |
+
#, php-format
|
2820 |
msgid "There is a new version of %s available."
|
2821 |
msgstr "There is a new version of %s available."
|
2822 |
|
2823 |
#: templates/forms/premium-versions-upgrade-handler.php:41
|
2824 |
+
#, php-format
|
2825 |
msgid " %s to access version %s security & feature updates, and support."
|
2826 |
msgstr " %s to access version %s security & feature updates, and support."
|
2827 |
|
2839 |
msgstr "Send License Key"
|
2840 |
|
2841 |
#: templates/forms/resend-key.php:57
|
2842 |
+
msgid ""
|
2843 |
+
"Enter the email address you've used for the upgrade below and we will resend "
|
2844 |
+
"you the license key."
|
2845 |
+
msgstr ""
|
2846 |
+
"Enter the email address you've used for the upgrade below and we will resend "
|
2847 |
+
"you the license key."
|
2848 |
|
2849 |
+
#: templates/forms/subscription-cancellation.php:38
|
2850 |
+
#, php-format
|
2851 |
+
msgid ""
|
2852 |
+
"Deactivating or uninstalling the %s will automatically disable the license, "
|
2853 |
+
"which you'll be able to use on another site."
|
2854 |
+
msgstr ""
|
2855 |
+
"Deactivating or uninstalling the %s will automatically disable the license, "
|
2856 |
+
"which you'll be able to use on another site."
|
2857 |
|
2858 |
+
#: templates/forms/subscription-cancellation.php:48
|
2859 |
+
#, php-format
|
2860 |
+
msgid ""
|
2861 |
+
"In case you are NOT planning on using this %s on this site (or any other "
|
2862 |
+
"site) - would you like to cancel the %s as well?"
|
2863 |
+
msgstr ""
|
2864 |
+
"In case you are NOT planning on using this %s on this site (or any other "
|
2865 |
+
"site) - would you like to cancel the %s as well?"
|
2866 |
|
2867 |
#: templates/forms/subscription-cancellation.php:52
|
2868 |
msgid "license"
|
2869 |
msgstr "license"
|
2870 |
|
2871 |
+
#: templates/forms/subscription-cancellation.php:58
|
2872 |
+
#, php-format
|
2873 |
+
msgid ""
|
2874 |
+
"Cancel %s - I no longer need any security & feature updates, nor support for "
|
2875 |
+
"%s because I'm not planning to use the %s on this, or any other site."
|
2876 |
+
msgstr ""
|
2877 |
+
"Cancel %s - I no longer need any security & feature updates, nor support for "
|
2878 |
+
"%s because I'm not planning to use the %s on this, or any other site."
|
2879 |
|
2880 |
+
#: templates/forms/subscription-cancellation.php:69
|
2881 |
+
#, php-format
|
2882 |
+
msgid ""
|
2883 |
+
"Don't cancel %s - I'm still interested in getting security & feature "
|
2884 |
+
"updates, as well as be able to contact support."
|
2885 |
+
msgstr ""
|
2886 |
+
"Don't cancel %s - I'm still interested in getting security & feature "
|
2887 |
+
"updates, as well as be able to contact support."
|
2888 |
|
2889 |
#: templates/forms/subscription-cancellation.php:103
|
2890 |
+
#, php-format
|
2891 |
+
msgid ""
|
2892 |
+
"Once your license expires you will no longer be able to use the %s, unless "
|
2893 |
+
"you activate it again with a valid premium license."
|
2894 |
+
msgstr ""
|
2895 |
+
"Once your license expires you will no longer be able to use the %s, unless "
|
2896 |
+
"you activate it again with a valid premium license."
|
2897 |
|
2898 |
#: templates/forms/subscription-cancellation.php:136
|
2899 |
+
#, php-format
|
2900 |
msgid "Cancel %s?"
|
2901 |
msgstr "Cancel %s?"
|
2902 |
|
2904 |
msgid "Proceed"
|
2905 |
msgstr "Proceed"
|
2906 |
|
|
|
|
|
|
|
|
|
2907 |
#: templates/forms/trial-start.php:22
|
2908 |
+
#, php-format
|
2909 |
+
msgid ""
|
2910 |
+
"You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
|
2911 |
+
msgstr ""
|
2912 |
+
"You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
|
2913 |
|
2914 |
#: templates/forms/trial-start.php:28
|
2915 |
+
#, php-format
|
2916 |
+
msgid ""
|
2917 |
+
"For compliance with the WordPress.org guidelines, before we start the trial "
|
2918 |
+
"we ask that you opt in with your user and non-sensitive site information, "
|
2919 |
+
"allowing the %s to periodically send data to %s to check for version updates "
|
2920 |
+
"and to validate your trial."
|
2921 |
+
msgstr ""
|
2922 |
+
"For compliance with the WordPress.org guidelines, before we start the trial "
|
2923 |
+
"we ask that you opt in with your user and non-sensitive site information, "
|
2924 |
+
"allowing the %s to periodically send data to %s to check for version updates "
|
2925 |
+
"and to validate your trial."
|
2926 |
|
2927 |
#: templates/js/style-premium-theme.php:37
|
2928 |
msgid "Premium"
|
2944 |
msgid "Apply on all pending sites."
|
2945 |
msgstr "Apply on all pending sites."
|
2946 |
|
2947 |
+
#: templates/partials/network-activation.php:36
|
2948 |
+
#: templates/partials/network-activation.php:68
|
2949 |
msgid "allow"
|
2950 |
msgstr "allow"
|
2951 |
|
2952 |
+
#: templates/partials/network-activation.php:38
|
2953 |
+
#: templates/partials/network-activation.php:70
|
2954 |
msgid "delegate"
|
2955 |
msgstr "delegate"
|
2956 |
|
2957 |
+
#: templates/partials/network-activation.php:41
|
2958 |
+
#: templates/partials/network-activation.php:73
|
2959 |
msgid "skip"
|
2960 |
msgstr "skip"
|
2961 |
|
2962 |
+
#: templates/plugin-info/description.php:72
|
2963 |
+
#: templates/plugin-info/screenshots.php:31
|
2964 |
+
#, php-format
|
2965 |
msgid "Click to view full-size screenshot %d"
|
2966 |
msgstr "Click to view full-size screenshot %d"
|
2967 |
|
2969 |
msgid "Unlimited Updates"
|
2970 |
msgstr "Unlimited Updates"
|
2971 |
|
2972 |
+
#: templates/secure-https-header.php:28
|
2973 |
+
#, php-format
|
2974 |
+
msgid "Secure HTTPS %s page, running from an external domain"
|
2975 |
+
msgstr "Secure HTTPS %s page, running from an external domain"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
freemius/languages/freemius-es_ES.po
CHANGED
@@ -6,38 +6,52 @@ msgid ""
|
|
6 |
msgstr ""
|
7 |
"Project-Id-Version: WordPress SDK\n"
|
8 |
"Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
|
9 |
-
"POT-Creation-Date: \n"
|
10 |
-
"PO-Revision-Date:
|
11 |
"Last-Translator: Carlos Longarela <carlos@longarela.eu>\n"
|
|
|
|
|
12 |
"Language: es_ES\n"
|
13 |
-
"
|
14 |
"Content-Type: text/plain; charset=UTF-8\n"
|
15 |
"Content-Transfer-Encoding: 8bit\n"
|
16 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
17 |
-
"MIME-Version: 1.0\n"
|
18 |
"X-Poedit-Basepath: ..\n"
|
19 |
-
"X-Poedit-KeywordsList: get_text_inline;fs_text_inline;fs_echo_inline;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
"X-Poedit-SearchPath-0: .\n"
|
21 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
22 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
23 |
|
24 |
#: includes/class-freemius.php:1688
|
25 |
-
msgid "
|
26 |
-
|
|
|
|
|
|
|
|
|
27 |
|
28 |
#: includes/class-freemius.php:1690
|
29 |
msgid "Error"
|
30 |
msgstr "Error"
|
31 |
|
32 |
#: includes/class-freemius.php:2011
|
|
|
33 |
msgid "I found a better %s"
|
34 |
msgstr "He encontrado un %s mejor"
|
35 |
|
36 |
#: includes/class-freemius.php:2013
|
|
|
37 |
msgid "What's the %s's name?"
|
38 |
msgstr "¿Cuál es el nombre de %s?"
|
39 |
|
40 |
#: includes/class-freemius.php:2019
|
|
|
41 |
msgid "It's a temporary %s. I'm just debugging an issue."
|
42 |
msgstr "Es una %stemporal . Sólo estoy depurando un problema"
|
43 |
|
@@ -49,23 +63,27 @@ msgstr "Desactivación"
|
|
49 |
msgid "Theme Switch"
|
50 |
msgstr "Cambiar tema"
|
51 |
|
52 |
-
#: includes/class-freemius.
|
53 |
msgid "Other"
|
54 |
msgstr "Otra"
|
55 |
|
56 |
#: includes/class-freemius.php:2039
|
|
|
57 |
msgid "I no longer need the %s"
|
58 |
msgstr "Ya no necesito el %s"
|
59 |
|
60 |
#: includes/class-freemius.php:2046
|
|
|
61 |
msgid "I only needed the %s for a short period"
|
62 |
msgstr "Sólo necesitaba la %s por un corto período"
|
63 |
|
64 |
#: includes/class-freemius.php:2052
|
|
|
65 |
msgid "The %s broke my site"
|
66 |
msgstr "%s ha roto mi sitio"
|
67 |
|
68 |
#: includes/class-freemius.php:2059
|
|
|
69 |
msgid "The %s suddenly stopped working"
|
70 |
msgstr "%s de repente ha dejado de funcionar"
|
71 |
|
@@ -82,6 +100,7 @@ msgid "I don't like to share my information with you"
|
|
82 |
msgstr "No me gusta compartir mi información contigo"
|
83 |
|
84 |
#: includes/class-freemius.php:2098
|
|
|
85 |
msgid "The %s didn't work"
|
86 |
msgstr "El %s no funcionaba"
|
87 |
|
@@ -90,6 +109,7 @@ msgid "I couldn't understand how to make it work"
|
|
90 |
msgstr "No entiendo cómo hacerlo funcionar"
|
91 |
|
92 |
#: includes/class-freemius.php:2116
|
|
|
93 |
msgid "The %s is great, but I need specific feature that you don't support"
|
94 |
msgstr "%s es genial, pero necesito una característica que no soportáis"
|
95 |
|
@@ -98,12 +118,15 @@ msgid "What feature?"
|
|
98 |
msgstr "¿Qué característica?"
|
99 |
|
100 |
#: includes/class-freemius.php:2122
|
|
|
101 |
msgid "The %s is not working"
|
102 |
msgstr " El %s no funciona"
|
103 |
|
104 |
#: includes/class-freemius.php:2124
|
105 |
msgid "Kindly share what didn't work so we can fix it for future users..."
|
106 |
-
msgstr "
|
|
|
|
|
107 |
|
108 |
#: includes/class-freemius.php:2128
|
109 |
msgid "It's not what I was looking for"
|
@@ -114,6 +137,7 @@ msgid "What you've been looking for?"
|
|
114 |
msgstr "¿Que has estado buscando?"
|
115 |
|
116 |
#: includes/class-freemius.php:2134
|
|
|
117 |
msgid "The %s didn't work as expected"
|
118 |
msgstr " El %s no funciona como esperaba"
|
119 |
|
@@ -121,686 +145,946 @@ msgstr " El %s no funciona como esperaba"
|
|
121 |
msgid "What did you expect?"
|
122 |
msgstr "¿Qué esperas?"
|
123 |
|
124 |
-
#: includes/class-freemius.
|
125 |
msgid "Freemius Debug"
|
126 |
msgstr "Debug Freemius"
|
127 |
|
128 |
-
#: includes/class-freemius.php:
|
129 |
msgid "I don't know what is cURL or how to install it, help me!"
|
130 |
msgstr "No sé qué es cURL o cómo instalarlo, ¡ayúdame!"
|
131 |
|
132 |
-
#: includes/class-freemius.php:
|
133 |
-
|
134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
|
136 |
-
#: includes/class-freemius.php:
|
137 |
-
|
138 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
|
140 |
-
#: includes/class-freemius.php:
|
141 |
msgid "Yes - do your thing"
|
142 |
msgstr "Vamos, adelante"
|
143 |
|
144 |
-
#: includes/class-freemius.php:
|
145 |
msgid "No - just deactivate"
|
146 |
msgstr "No - sólo desactivar"
|
147 |
|
148 |
-
#: includes/class-freemius.
|
149 |
-
#: includes/class-freemius.
|
150 |
-
#: includes/class-freemius.
|
151 |
-
#: includes/class-freemius.
|
152 |
-
#: includes/class-freemius.
|
153 |
-
#: includes/class-freemius.
|
154 |
-
#: includes/class-freemius.
|
155 |
msgctxt "exclamation"
|
156 |
msgid "Oops"
|
157 |
msgstr "Oops"
|
158 |
|
159 |
-
#: includes/class-freemius.php:
|
160 |
-
|
161 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
|
163 |
-
#: includes/class-freemius.php:
|
|
|
164 |
msgctxt "addonX cannot run without pluginY"
|
165 |
msgid "%s cannot run without %s."
|
166 |
msgstr "%s no se puede ejecutar sin %s."
|
167 |
|
168 |
-
#: includes/class-freemius.php:
|
|
|
169 |
msgctxt "addonX cannot run..."
|
170 |
msgid "%s cannot run without the plugin."
|
171 |
msgstr "%s no se puede ejecutar sin el plugin."
|
172 |
|
173 |
-
#: includes/class-freemius.
|
174 |
-
#: includes/class-freemius.php:
|
175 |
-
|
176 |
-
|
|
|
|
|
|
|
|
|
|
|
177 |
|
178 |
-
#: includes/class-freemius.php:
|
|
|
179 |
msgid "Premium %s version was successfully activated."
|
180 |
msgstr "La versión Premium %s ha sido activada con éxito."
|
181 |
|
182 |
-
#: includes/class-freemius.
|
|
|
|
|
|
|
183 |
msgctxt ""
|
|
|
|
|
184 |
msgid "W00t"
|
185 |
msgstr "W00t"
|
186 |
|
187 |
-
#: includes/class-freemius.php:
|
|
|
188 |
msgid "You have a %s license."
|
189 |
msgstr "Tienes una licencia %s."
|
190 |
|
191 |
-
#: includes/class-freemius.
|
192 |
-
#: includes/class-freemius.
|
193 |
-
#: includes/class-freemius.
|
194 |
-
#: includes/class-freemius.php:
|
195 |
msgctxt "interjection expressing joy or exuberance"
|
196 |
msgid "Yee-haw"
|
197 |
msgstr "Vaya"
|
198 |
|
199 |
-
#: includes/class-freemius.php:
|
200 |
-
|
201 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
202 |
|
203 |
-
#: includes/class-freemius.php:
|
204 |
-
|
205 |
-
|
|
|
|
|
|
|
|
|
|
|
206 |
|
207 |
-
#: includes/class-freemius.
|
208 |
-
#: templates/
|
|
|
209 |
msgid "More information about %s"
|
210 |
msgstr "Más información sobre %s"
|
211 |
|
212 |
-
#: includes/class-freemius.php:
|
213 |
msgid "Purchase License"
|
214 |
msgstr "Comprar licencia"
|
215 |
|
216 |
-
#: includes/class-freemius.
|
217 |
-
|
218 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
219 |
|
220 |
-
#: includes/class-freemius.php:
|
221 |
msgid "start the trial"
|
222 |
msgstr "comenzar el período de prueba"
|
223 |
|
224 |
-
#: includes/class-freemius.
|
225 |
msgid "complete the install"
|
226 |
msgstr "completar la instalación"
|
227 |
|
228 |
-
#: includes/class-freemius.php:
|
|
|
229 |
msgid "You are just one step away - %s"
|
230 |
msgstr "Estás a sólo un paso - %s"
|
231 |
|
232 |
-
#: includes/class-freemius.php:
|
|
|
233 |
msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
|
234 |
msgid "Complete \"%s\" Activation Now"
|
235 |
msgstr "Completar la activación de \"%s\" ahora"
|
236 |
|
237 |
-
#: includes/class-freemius.php:
|
|
|
238 |
msgid "We made a few tweaks to the %s, %s"
|
239 |
msgstr "Hemos realizado algunas optimizaciones al %s, %s"
|
240 |
|
241 |
-
#: includes/class-freemius.php:
|
|
|
242 |
msgid "Opt in to make \"%s\" better!"
|
243 |
msgstr "¡Inscríbite para hacer \"%s\" Mejor!"
|
244 |
|
245 |
-
#: includes/class-freemius.php:
|
|
|
246 |
msgid "The upgrade of %s was successfully completed."
|
247 |
msgstr "La actualización de %s se completó con éxito."
|
248 |
|
249 |
-
#: includes/class-freemius.
|
250 |
-
#: includes/class-fs-plugin-updater.
|
251 |
-
#: includes/class-fs-plugin-updater.
|
252 |
-
#: templates/auto-installation.php:32
|
253 |
msgid "Add-On"
|
254 |
msgstr "Complemento"
|
255 |
|
256 |
-
#: includes/class-freemius.
|
257 |
-
#: templates/debug.php:
|
258 |
msgid "Plugin"
|
259 |
msgstr "Plugin"
|
260 |
|
261 |
-
#: includes/class-freemius.
|
262 |
-
#: templates/debug.
|
263 |
msgid "Theme"
|
264 |
msgstr "Tema"
|
265 |
|
266 |
-
#: includes/class-freemius.php:
|
267 |
msgid "Invalid site details collection."
|
268 |
msgstr "Colección de detalles del sitio no válida."
|
269 |
|
270 |
-
#: includes/class-freemius.php:
|
271 |
-
msgid "
|
272 |
-
|
|
|
|
|
|
|
|
|
273 |
|
274 |
-
#: includes/class-freemius.php:
|
275 |
-
msgid "
|
276 |
-
|
|
|
|
|
|
|
|
|
|
|
277 |
|
278 |
-
#: includes/class-freemius.php:
|
279 |
msgid "Account is pending activation."
|
280 |
msgstr "La cuenta está pendiente de activación"
|
281 |
|
282 |
-
#: includes/class-freemius.
|
283 |
#: templates/forms/premium-versions-upgrade-handler.php:47
|
284 |
msgid "Buy a license now"
|
285 |
msgstr "Compra una licencia ahora"
|
286 |
|
287 |
-
#: includes/class-freemius.
|
288 |
#: templates/forms/premium-versions-upgrade-handler.php:46
|
289 |
msgid "Renew your license now"
|
290 |
msgstr "Renueva tu licencia ahora"
|
291 |
|
292 |
-
#: includes/class-freemius.php:
|
|
|
293 |
msgid "%s to access version %s security & feature updates, and support."
|
294 |
-
msgstr "
|
|
|
|
|
295 |
|
296 |
-
#: includes/class-freemius.php:
|
|
|
297 |
msgid "%s activation was successfully completed."
|
298 |
msgstr "%s activación se completó con éxito."
|
299 |
|
300 |
-
#: includes/class-freemius.php:
|
|
|
301 |
msgid "Your account was successfully activated with the %s plan."
|
302 |
msgstr "Tu cuenta se ha activado correctamente con el plan %s."
|
303 |
|
304 |
-
#: includes/class-freemius.
|
305 |
msgid "Your trial has been successfully started."
|
306 |
msgstr "Tu versión de prueba se ha iniciado con éxito."
|
307 |
|
308 |
-
#: includes/class-freemius.
|
309 |
-
#: includes/class-freemius.php:
|
|
|
310 |
msgid "Couldn't activate %s."
|
311 |
msgstr "No se puede activar %s."
|
312 |
|
313 |
-
#: includes/class-freemius.
|
314 |
-
#: includes/class-freemius.php:
|
315 |
msgid "Please contact us with the following message:"
|
316 |
msgstr "Por favor contáctanos con el siguiente mensaje:"
|
317 |
|
318 |
-
#: includes/class-freemius.
|
319 |
msgid "Upgrade"
|
320 |
msgstr "Actualizar"
|
321 |
|
322 |
-
#: includes/class-freemius.php:
|
323 |
msgid "Start Trial"
|
324 |
msgstr "Comenzar el período de prueba"
|
325 |
|
326 |
-
#: includes/class-freemius.php:
|
327 |
msgid "Pricing"
|
328 |
msgstr "Precio"
|
329 |
|
330 |
-
#: includes/class-freemius.
|
331 |
msgid "Affiliation"
|
332 |
msgstr "Afiliación"
|
333 |
|
334 |
-
#: includes/class-freemius.
|
335 |
-
#: templates/account.
|
336 |
msgid "Account"
|
337 |
msgstr "Cuenta"
|
338 |
|
339 |
-
#: includes/class-freemius.
|
340 |
#: includes/customizer/class-fs-customizer-support-section.php:60
|
341 |
msgid "Contact Us"
|
342 |
msgstr "Contáctanos"
|
343 |
|
344 |
-
#: includes/class-freemius.
|
345 |
-
#: includes/class-freemius.
|
346 |
#: templates/account/partials/addon.php:41
|
347 |
msgid "Add-Ons"
|
348 |
msgstr "Complementos"
|
349 |
|
350 |
-
#: includes/class-freemius.php:
|
351 |
msgctxt "ASCII arrow left icon"
|
352 |
msgid "←"
|
353 |
msgstr "←"
|
354 |
|
355 |
-
#: includes/class-freemius.php:
|
356 |
msgctxt "ASCII arrow right icon"
|
357 |
msgid "➤"
|
358 |
msgstr "➤"
|
359 |
|
360 |
-
#: includes/class-freemius.
|
361 |
msgctxt "noun"
|
362 |
msgid "Pricing"
|
363 |
msgstr "Precio"
|
364 |
|
365 |
-
#: includes/class-freemius.
|
366 |
#: includes/customizer/class-fs-customizer-support-section.php:67
|
367 |
msgid "Support Forum"
|
368 |
msgstr "Foro de soporte"
|
369 |
|
370 |
-
#: includes/class-freemius.php:
|
371 |
msgid "Your email has been successfully verified - you are AWESOME!"
|
372 |
msgstr "Tu email ha sido verificado correctamente - ¡Eres IMPRESIONANTE!"
|
373 |
|
374 |
-
#: includes/class-freemius.php:
|
375 |
msgctxt "a positive response"
|
376 |
msgid "Right on"
|
377 |
msgstr "Bien hecho"
|
378 |
|
379 |
-
#: includes/class-freemius.php:
|
|
|
380 |
msgid "Your %s Add-on plan was successfully upgraded."
|
381 |
msgstr "Tu complemento %s del plan se actualizó con éxito."
|
382 |
|
383 |
-
#: includes/class-freemius.php:
|
|
|
384 |
msgid "%s Add-on was successfully purchased."
|
385 |
msgstr "El complemento %s ha sido comprado correctamente."
|
386 |
|
387 |
-
#: includes/class-freemius.php:
|
388 |
msgid "Download the latest version"
|
389 |
msgstr "Descargar la última versión"
|
390 |
|
391 |
-
#: includes/class-freemius.php:
|
|
|
392 |
msgctxt "%1s - plugin title, %2s - API domain"
|
393 |
-
msgid "
|
394 |
-
|
|
|
|
|
|
|
|
|
|
|
395 |
|
396 |
-
#: includes/class-freemius.
|
397 |
-
#: includes/class-freemius.php:
|
398 |
msgid "Error received from the server:"
|
399 |
msgstr "Error recibido del servidor:"
|
400 |
|
401 |
-
#: includes/class-freemius.php:
|
402 |
-
msgid "
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
407 |
msgctxt ""
|
|
|
408 |
msgid "Hmm"
|
409 |
msgstr "Hmm"
|
410 |
|
411 |
-
#: includes/class-freemius.php:
|
412 |
-
|
413 |
-
|
|
|
|
|
|
|
|
|
|
|
414 |
|
415 |
-
#: includes/class-freemius.
|
416 |
-
#: templates/
|
417 |
msgctxt "trial period"
|
418 |
msgid "Trial"
|
419 |
msgstr "Período de Prueba Gratuito"
|
420 |
|
421 |
-
#: includes/class-freemius.php:
|
422 |
-
|
423 |
-
|
|
|
|
|
|
|
|
|
|
|
424 |
|
425 |
-
#: includes/class-freemius.
|
426 |
msgid "Please contact us here"
|
427 |
msgstr "Contacta aquí con nosotros"
|
428 |
|
429 |
-
#: includes/class-freemius.php:
|
430 |
msgid "Your plan was successfully upgraded."
|
431 |
msgstr "Tu plan se actualizó con éxito."
|
432 |
|
433 |
-
#: includes/class-freemius.php:
|
|
|
434 |
msgid "Your plan was successfully changed to %s."
|
435 |
msgstr "Tu plan se cambió correctamente a %s."
|
436 |
|
437 |
-
#: includes/class-freemius.php:
|
438 |
-
|
439 |
-
|
|
|
|
|
|
|
|
|
440 |
|
441 |
-
#: includes/class-freemius.php:
|
442 |
-
|
443 |
-
|
|
|
|
|
|
|
|
|
|
|
444 |
|
445 |
-
#: includes/class-freemius.php:
|
446 |
-
msgid "
|
447 |
-
|
|
|
|
|
|
|
|
|
448 |
|
449 |
-
#: includes/class-freemius.php:
|
450 |
-
|
451 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
452 |
|
453 |
-
#: includes/class-freemius.php:
|
454 |
-
msgid "
|
455 |
-
|
|
|
|
|
|
|
|
|
456 |
|
457 |
-
#: includes/class-freemius.php:
|
458 |
-
|
459 |
-
|
|
|
|
|
|
|
|
|
|
|
460 |
|
461 |
-
#: includes/class-freemius.php:
|
462 |
msgid "It looks like the license could not be activated."
|
463 |
msgstr "Parece que la licencia no se pudo activar."
|
464 |
|
465 |
-
#: includes/class-freemius.php:
|
466 |
msgid "Your license was successfully activated."
|
467 |
msgstr "Tu licencia fue activada correctamente."
|
468 |
|
469 |
-
#: includes/class-freemius.php:
|
470 |
msgid "It looks like your site currently doesn't have an active license."
|
471 |
msgstr "Parece que tu sitio actualmente no tiene una licencia activa."
|
472 |
|
473 |
-
#: includes/class-freemius.php:
|
474 |
msgid "It looks like the license deactivation failed."
|
475 |
msgstr "Parece que la desactivación de licencia ha fallado."
|
476 |
|
477 |
-
#: includes/class-freemius.php:
|
|
|
478 |
msgid "Your license was successfully deactivated, you are back to the %s plan."
|
479 |
msgstr "Tu licencia fue desactivada correctamente, has vuelto al plan %s."
|
480 |
|
481 |
-
#: includes/class-freemius.php:
|
482 |
msgid "O.K"
|
483 |
msgstr "O.K"
|
484 |
|
485 |
-
#: includes/class-freemius.php:
|
486 |
-
msgid "
|
487 |
-
|
|
|
|
|
|
|
|
|
488 |
|
489 |
-
#: includes/class-freemius.php:
|
490 |
-
|
491 |
-
|
|
|
|
|
|
|
|
|
|
|
492 |
|
493 |
-
#: includes/class-freemius.php:
|
|
|
494 |
msgid "You are already running the %s in a trial mode."
|
495 |
msgstr "Estás ejecutando %s en modo de prueba."
|
496 |
|
497 |
-
#: includes/class-freemius.php:
|
498 |
msgid "You already utilized a trial before."
|
499 |
msgstr "Ya utilizaste un período de prueba antes."
|
500 |
|
501 |
-
#: includes/class-freemius.php:
|
|
|
502 |
msgid "Plan %s do not exist, therefore, can't start a trial."
|
503 |
-
msgstr "
|
|
|
504 |
|
505 |
-
#: includes/class-freemius.php:
|
|
|
506 |
msgid "Plan %s does not support a trial period."
|
507 |
msgstr "El plan %s no admite un período de prueba."
|
508 |
|
509 |
-
#: includes/class-freemius.php:
|
|
|
510 |
msgid "None of the %s's plans supports a trial period."
|
511 |
msgstr "Ninguno de los planes de %s soportan un período de prueba."
|
512 |
|
513 |
-
#: includes/class-freemius.php:
|
514 |
-
msgid "
|
515 |
-
|
|
|
|
|
|
|
516 |
|
517 |
-
#: includes/class-freemius.php:
|
518 |
-
msgid "
|
519 |
-
|
|
|
|
|
|
|
|
|
520 |
|
521 |
-
#: includes/class-freemius.php:
|
|
|
522 |
msgid "Your %s free trial was successfully cancelled."
|
523 |
msgstr "Tu prueba gratuita de %s fue cancelada con éxito."
|
524 |
|
525 |
-
#: includes/class-freemius.php:
|
|
|
526 |
msgid "Version %s was released."
|
527 |
msgstr "La versión %s se ha lanzado."
|
528 |
|
529 |
-
#: includes/class-freemius.php:
|
|
|
530 |
msgid "Please download %s."
|
531 |
msgstr "Por favor descarga %s."
|
532 |
|
533 |
-
#: includes/class-freemius.php:
|
|
|
534 |
msgid "the latest %s version here"
|
535 |
msgstr "la última versión %s aquí"
|
536 |
|
537 |
-
#: includes/class-freemius.php:
|
538 |
msgid "New"
|
539 |
msgstr "Nuevo"
|
540 |
|
541 |
-
#: includes/class-freemius.php:
|
542 |
msgid "Seems like you got the latest release."
|
543 |
msgstr "Parece que tienes la última versión."
|
544 |
|
545 |
-
#: includes/class-freemius.php:
|
546 |
msgid "You are all good!"
|
547 |
msgstr "¡Está todo listo!"
|
548 |
|
549 |
-
#: includes/class-freemius.php:
|
550 |
-
|
551 |
-
|
|
|
|
|
|
|
|
|
|
|
552 |
|
553 |
-
#: includes/class-freemius.php:
|
554 |
msgid "Site successfully opted in."
|
555 |
msgstr "Sitio dado de alta correctamente."
|
556 |
|
557 |
-
#: includes/class-freemius.
|
558 |
msgid "Awesome"
|
559 |
msgstr "Increíble"
|
560 |
|
561 |
-
#: includes/class-freemius.
|
562 |
-
|
563 |
-
|
|
|
|
|
|
|
|
|
|
|
564 |
|
565 |
-
#: includes/class-freemius.php:
|
566 |
msgid "Thank you!"
|
567 |
msgstr "¡Gracias!"
|
568 |
|
569 |
-
#: includes/class-freemius.php:
|
|
|
570 |
msgid "We will no longer be sending any usage data of %s on %s to %s."
|
571 |
msgstr "No continuaremos enviando datos de uso de %s en %s a %s."
|
572 |
|
573 |
-
#: includes/class-freemius.php:
|
574 |
-
|
575 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
576 |
|
577 |
-
#: includes/class-freemius.php:
|
578 |
-
|
579 |
-
|
|
|
|
|
|
|
|
|
|
|
580 |
|
581 |
-
#: includes/class-freemius.php:
|
|
|
582 |
msgid "%s is the new owner of the account."
|
583 |
msgstr "%s es el nuevo dueño de la cuenta."
|
584 |
|
585 |
-
#: includes/class-freemius.php:
|
586 |
msgctxt "as congratulations"
|
587 |
msgid "Congrats"
|
588 |
msgstr "Felicidades"
|
589 |
|
590 |
-
#: includes/class-freemius.php:
|
591 |
-
msgid "
|
592 |
-
|
|
|
|
|
|
|
|
|
593 |
|
594 |
-
#: includes/class-freemius.php:
|
595 |
-
|
596 |
-
|
|
|
|
|
|
|
|
|
|
|
597 |
|
598 |
-
#: includes/class-freemius.php:
|
599 |
msgid "Change Ownership"
|
600 |
msgstr "Cambiar propietario"
|
601 |
|
602 |
-
#: includes/class-freemius.php:
|
603 |
-
msgid "
|
604 |
-
|
|
|
|
|
|
|
|
|
605 |
|
606 |
-
#: includes/class-freemius.php:
|
607 |
msgid "Please provide your full name."
|
608 |
msgstr "Por favor, dinos tu nombre completo."
|
609 |
|
610 |
-
#: includes/class-freemius.php:
|
611 |
msgid "Your name was successfully updated."
|
612 |
msgstr "Tu nombre fue actualizado correctamente."
|
613 |
|
614 |
-
#: includes/class-freemius.php:
|
|
|
615 |
msgid "You have successfully updated your %s."
|
616 |
msgstr "Has actualizado correctamente tu %s."
|
617 |
|
618 |
-
#: includes/class-freemius.php:
|
619 |
-
|
620 |
-
|
|
|
|
|
|
|
|
|
|
|
621 |
|
622 |
-
#: includes/class-freemius.php:
|
623 |
msgctxt "advance notice of something that will need attention."
|
624 |
msgid "Heads up"
|
625 |
msgstr "Atención"
|
626 |
|
627 |
-
#: includes/class-freemius.php:
|
628 |
msgctxt "exclamation"
|
629 |
msgid "Hey"
|
630 |
msgstr "Hey"
|
631 |
|
632 |
-
#: includes/class-freemius.php:
|
633 |
-
|
634 |
-
|
|
|
|
|
|
|
|
|
|
|
635 |
|
636 |
-
#: includes/class-freemius.php:
|
|
|
637 |
msgid "No commitment for %s days - cancel anytime!"
|
638 |
msgstr "Sin compromiso por %s días - ¡cancelar en cualquier momento!"
|
639 |
|
640 |
-
#: includes/class-freemius.php:
|
641 |
msgid "No credit card required"
|
642 |
msgstr "No se necesita tarjeta de crédito"
|
643 |
|
644 |
-
#: includes/class-freemius.
|
645 |
msgctxt "call to action"
|
646 |
msgid "Start free trial"
|
647 |
msgstr "Comenzar el período de prueba gratuito"
|
648 |
|
649 |
-
#: includes/class-freemius.php:
|
650 |
-
|
651 |
-
|
|
|
|
|
|
|
|
|
|
|
652 |
|
653 |
-
#: includes/class-freemius.php:
|
654 |
msgid "Learn more"
|
655 |
msgstr "Saber más"
|
656 |
|
657 |
-
#: includes/class-freemius.
|
658 |
-
#: templates/account.
|
659 |
-
#: templates/connect.
|
660 |
-
#: templates/
|
661 |
msgid "Activate License"
|
662 |
msgstr "Activar licencia"
|
663 |
|
664 |
-
#: includes/class-freemius.
|
665 |
-
#: templates/account.
|
666 |
msgid "Change License"
|
667 |
msgstr "Cambiar licencia"
|
668 |
|
669 |
-
#: includes/class-freemius.
|
670 |
msgid "Opt Out"
|
671 |
msgstr "Darse de baja"
|
672 |
|
673 |
-
#: includes/class-freemius.
|
674 |
-
#: templates/account/partials/site.
|
675 |
#: templates/account/partials/site.php:161
|
676 |
msgid "Opt In"
|
677 |
msgstr "Inscribirse"
|
678 |
|
679 |
-
#: includes/class-freemius.php:
|
680 |
-
|
681 |
-
|
|
|
|
|
|
|
|
|
|
|
682 |
|
683 |
-
#: includes/class-freemius.php:
|
|
|
684 |
msgid "Activate %s features"
|
685 |
msgstr "Activar características %s"
|
686 |
|
687 |
-
#: includes/class-freemius.php:
|
688 |
msgid "Please follow these steps to complete the upgrade"
|
689 |
msgstr "Por favor, sigue estos pasos para completar la actualización"
|
690 |
|
691 |
-
#: includes/class-freemius.php:
|
|
|
692 |
msgid "Download the latest %s version"
|
693 |
msgstr "Descargar la última versión %s"
|
694 |
|
695 |
-
#: includes/class-freemius.php:
|
696 |
msgid "Upload and activate the downloaded version"
|
697 |
msgstr "Cargar y activar la versión descargada"
|
698 |
|
699 |
-
#: includes/class-freemius.php:
|
700 |
msgid "How to upload and activate?"
|
701 |
msgstr "¿Cómo subirlo y activarlo?"
|
702 |
|
703 |
-
#: includes/class-freemius.php:
|
704 |
-
|
705 |
-
|
|
|
|
|
|
|
|
|
|
|
706 |
|
707 |
-
#: includes/class-freemius.php:
|
708 |
msgid "Auto installation only works for opted-in users."
|
709 |
msgstr "La instalación automática sólo funciona para usuarios que aceptaron."
|
710 |
|
711 |
-
#: includes/class-freemius.
|
712 |
-
#: includes/class-fs-plugin-updater.
|
713 |
#: includes/class-fs-plugin-updater.php:1074
|
714 |
msgid "Invalid module ID."
|
715 |
msgstr "Id de módulo no válido."
|
716 |
|
717 |
-
#: includes/class-freemius.
|
718 |
msgid "Premium version already active."
|
719 |
msgstr "Versión premium ya activa."
|
720 |
|
721 |
-
#: includes/class-freemius.php:
|
722 |
msgid "You do not have a valid license to access the premium version."
|
723 |
msgstr "No tienes una licencia válida para acceder a la versión premium."
|
724 |
|
725 |
-
#: includes/class-freemius.php:
|
726 |
-
msgid "
|
727 |
-
|
|
|
|
|
|
|
|
|
728 |
|
729 |
-
#: includes/class-freemius.
|
730 |
msgid "Premium add-on version already installed."
|
731 |
msgstr "Versión del complemento premium ya instalada."
|
732 |
|
733 |
-
#: includes/class-freemius.php:
|
734 |
msgid "View paid features"
|
735 |
msgstr "Ver las funciones de pago"
|
736 |
|
737 |
-
#: includes/class-freemius.php:
|
|
|
738 |
msgid "Thank you so much for using %s and its add-ons!"
|
739 |
msgstr "¡Muchas gracias por utilizar %s y sus complementos!"
|
740 |
|
741 |
-
#: includes/class-freemius.php:
|
|
|
742 |
msgid "Thank you so much for using %s!"
|
743 |
msgstr "¡Muchas gracias por utilizar %s!"
|
744 |
|
745 |
-
#: includes/class-freemius.php:
|
746 |
-
|
747 |
-
|
|
|
|
|
|
|
|
|
|
|
748 |
|
749 |
-
#: includes/class-freemius.php:
|
750 |
msgid "Thank you so much for using our products!"
|
751 |
msgstr "¡Muchas gracias por utilizar nuestros productos!"
|
752 |
|
753 |
-
#: includes/class-freemius.php:
|
754 |
-
msgid "
|
755 |
-
|
|
|
|
|
|
|
|
|
756 |
|
757 |
-
#: includes/class-freemius.php:
|
|
|
758 |
msgid "%s and its add-ons"
|
759 |
msgstr "%s y sus complementos"
|
760 |
|
761 |
-
#: includes/class-freemius.php:
|
762 |
msgid "Products"
|
763 |
msgstr "Productos"
|
764 |
|
765 |
-
#: includes/class-freemius.
|
766 |
msgid "Yes"
|
767 |
msgstr "Si"
|
768 |
|
769 |
-
#: includes/class-freemius.
|
770 |
msgid "send me security & feature updates, educational content and offers."
|
771 |
-
msgstr "
|
|
|
|
|
772 |
|
773 |
-
#: includes/class-freemius.
|
774 |
msgid "No"
|
775 |
msgstr "No"
|
776 |
|
777 |
-
#: includes/class-freemius.
|
778 |
-
|
779 |
-
|
|
|
|
|
|
|
|
|
|
|
780 |
|
781 |
-
#: includes/class-freemius.php:
|
782 |
-
|
783 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
784 |
|
785 |
-
#: includes/class-freemius.
|
786 |
-
msgid "
|
787 |
-
|
|
|
|
|
|
|
|
|
788 |
|
789 |
-
#: includes/class-freemius.php:
|
790 |
msgid "License key is empty."
|
791 |
msgstr "La clave de licencia está vacía."
|
792 |
|
793 |
-
#: includes/class-fs-plugin-updater.
|
794 |
#: templates/forms/premium-versions-upgrade-handler.php:57
|
795 |
msgid "Renew license"
|
796 |
msgstr "Renovar la licencia"
|
797 |
|
798 |
-
#: includes/class-fs-plugin-updater.
|
799 |
#: templates/forms/premium-versions-upgrade-handler.php:58
|
800 |
msgid "Buy license"
|
801 |
msgstr "Comprar licencia"
|
802 |
|
803 |
#: includes/class-fs-plugin-updater.php:278
|
|
|
804 |
msgid "There is a %s of %s available."
|
805 |
msgstr "Hay una %s de %s disponible."
|
806 |
|
@@ -813,24 +1097,58 @@ msgid "Important Upgrade Notice:"
|
|
813 |
msgstr "Aviso importante de actualización:"
|
814 |
|
815 |
#: includes/class-fs-plugin-updater.php:1125
|
|
|
816 |
msgid "Installing plugin: %s"
|
817 |
msgstr "Instalando plugin: %s"
|
818 |
|
819 |
#: includes/class-fs-plugin-updater.php:1166
|
820 |
msgid "Unable to connect to the filesystem. Please confirm your credentials."
|
821 |
-
msgstr "
|
|
|
|
|
822 |
|
823 |
#: includes/class-fs-plugin-updater.php:1348
|
824 |
-
msgid "
|
825 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
826 |
|
827 |
-
#: includes/fs-plugin-info-dialog.
|
828 |
#: templates/account/partials/addon.php:292
|
829 |
msgctxt "verb"
|
830 |
msgid "Purchase"
|
831 |
msgstr "Comprar"
|
832 |
|
833 |
#: includes/fs-plugin-info-dialog.php:372
|
|
|
834 |
msgid "Start my free %s"
|
835 |
msgstr "Comenzar mi período gratuito de %s"
|
836 |
|
@@ -838,9 +1156,9 @@ msgstr "Comenzar mi período gratuito de %s"
|
|
838 |
msgid "Install Free Version Now"
|
839 |
msgstr "Instalar la versión gratuita ahora"
|
840 |
|
841 |
-
#: includes/fs-plugin-info-dialog.
|
842 |
-
#: templates/account/partials/addon.
|
843 |
-
#: templates/account/partials/addon.php:322
|
844 |
msgid "Install Now"
|
845 |
msgstr "Instalar ahora"
|
846 |
|
@@ -849,7 +1167,7 @@ msgctxt "as download latest version"
|
|
849 |
msgid "Download Latest Free Version"
|
850 |
msgstr "Descargar la última versión gratuita"
|
851 |
|
852 |
-
#: includes/fs-plugin-info-dialog.
|
853 |
#: templates/account/partials/addon.php:21
|
854 |
msgctxt "as download latest version"
|
855 |
msgid "Download Latest"
|
@@ -859,15 +1177,17 @@ msgstr "Descargar la última"
|
|
859 |
msgid "Install Free Version Update Now"
|
860 |
msgstr "Instalar la actualización gratuita ahora"
|
861 |
|
862 |
-
#: includes/fs-plugin-info-dialog.
|
863 |
msgid "Install Update Now"
|
864 |
msgstr "Instalar actualización ahora"
|
865 |
|
866 |
#: includes/fs-plugin-info-dialog.php:448
|
|
|
867 |
msgid "Newer Free Version (%s) Installed"
|
868 |
msgstr "Versión gratuita más reciente (%s) instalada"
|
869 |
|
870 |
#: includes/fs-plugin-info-dialog.php:449
|
|
|
871 |
msgid "Newer Version (%s) Installed"
|
872 |
msgstr "Versión más reciente (%s) instalada"
|
873 |
|
@@ -894,7 +1214,7 @@ msgctxt "Plugin installer section title"
|
|
894 |
msgid "FAQ"
|
895 |
msgstr "FAQ"
|
896 |
|
897 |
-
#: includes/fs-plugin-info-dialog.
|
898 |
#: templates/plugin-info/description.php:55
|
899 |
msgid "Screenshots"
|
900 |
msgstr "Capturas de pantalla"
|
@@ -924,6 +1244,7 @@ msgid "Plugin Install"
|
|
924 |
msgstr "Instalar plugin"
|
925 |
|
926 |
#: includes/fs-plugin-info-dialog.php:716
|
|
|
927 |
msgctxt "e.g. Professional Plan"
|
928 |
msgid "%s Plan"
|
929 |
msgstr "Plan %s"
|
@@ -933,7 +1254,7 @@ msgctxt "e.g. the best product"
|
|
933 |
msgid "Best"
|
934 |
msgstr "El mejor"
|
935 |
|
936 |
-
#: includes/fs-plugin-info-dialog.
|
937 |
#: includes/fs-plugin-info-dialog.php:768
|
938 |
msgctxt "as every month"
|
939 |
msgid "Monthly"
|
@@ -948,9 +1269,10 @@ msgstr "Anual"
|
|
948 |
msgid "Lifetime"
|
949 |
msgstr "Permanente"
|
950 |
|
951 |
-
#: includes/fs-plugin-info-dialog.
|
952 |
-
#: includes/fs-plugin-info-dialog.
|
953 |
#: includes/fs-plugin-info-dialog.php:772
|
|
|
954 |
msgctxt "e.g. billed monthly"
|
955 |
msgid "Billed %s"
|
956 |
msgstr "Facturado %s"
|
@@ -974,17 +1296,16 @@ msgid "Unlimited Licenses"
|
|
974 |
msgstr "Licencias ilimitadas"
|
975 |
|
976 |
#: includes/fs-plugin-info-dialog.php:782
|
|
|
977 |
msgid "Up to %s Sites"
|
978 |
msgstr "Hasta %s sitios"
|
979 |
|
980 |
-
#: includes/fs-plugin-info-dialog.
|
981 |
-
#: templates/plugin-info/features.php:82
|
982 |
msgctxt "as monthly period"
|
983 |
msgid "mo"
|
984 |
msgstr "me"
|
985 |
|
986 |
-
#: includes/fs-plugin-info-dialog.
|
987 |
-
#: templates/plugin-info/features.php:80
|
988 |
msgctxt "as annual period"
|
989 |
msgid "year"
|
990 |
msgstr "año"
|
@@ -995,14 +1316,17 @@ msgid "Price"
|
|
995 |
msgstr "Precio"
|
996 |
|
997 |
#: includes/fs-plugin-info-dialog.php:901
|
|
|
998 |
msgid "Save %s"
|
999 |
msgstr "Guardar %s"
|
1000 |
|
1001 |
#: includes/fs-plugin-info-dialog.php:911
|
|
|
1002 |
msgid "No commitment for %s - cancel anytime"
|
1003 |
msgstr "Sin compromiso para %s - cancelar en cualquier momento"
|
1004 |
|
1005 |
#: includes/fs-plugin-info-dialog.php:914
|
|
|
1006 |
msgid "After your free %s, pay as little as %s"
|
1007 |
msgstr "Después de su período gratuito %s, pague sólo %s"
|
1008 |
|
@@ -1010,9 +1334,9 @@ msgstr "Después de su período gratuito %s, pague sólo %s"
|
|
1010 |
msgid "Details"
|
1011 |
msgstr "Detalles"
|
1012 |
|
1013 |
-
#: includes/fs-plugin-info-dialog.
|
1014 |
-
#: templates/
|
1015 |
-
#: templates/
|
1016 |
msgctxt "product version"
|
1017 |
msgid "Version"
|
1018 |
msgstr "Versión"
|
@@ -1026,7 +1350,8 @@ msgstr "Autor"
|
|
1026 |
msgid "Last Updated"
|
1027 |
msgstr "Última actualización"
|
1028 |
|
1029 |
-
#: includes/fs-plugin-info-dialog.
|
|
|
1030 |
msgctxt "x-ago"
|
1031 |
msgid "%s ago"
|
1032 |
msgstr "hace %s"
|
@@ -1036,6 +1361,7 @@ msgid "Requires WordPress Version"
|
|
1036 |
msgstr "Necesita la versión de WordPress"
|
1037 |
|
1038 |
#: includes/fs-plugin-info-dialog.php:958
|
|
|
1039 |
msgid "%s or higher"
|
1040 |
msgstr "%s o mayor"
|
1041 |
|
@@ -1048,10 +1374,13 @@ msgid "Downloaded"
|
|
1048 |
msgstr "Descargado"
|
1049 |
|
1050 |
#: includes/fs-plugin-info-dialog.php:977
|
|
|
|
|
1051 |
msgid "%s time"
|
1052 |
msgstr "% vez"
|
1053 |
|
1054 |
#: includes/fs-plugin-info-dialog.php:979
|
|
|
1055 |
msgid "%s times"
|
1056 |
msgstr "%s veces"
|
1057 |
|
@@ -1063,7 +1392,7 @@ msgstr "Página del plugin en WordPress.org"
|
|
1063 |
msgid "Plugin Homepage"
|
1064 |
msgstr "Página web del plugin"
|
1065 |
|
1066 |
-
#: includes/fs-plugin-info-dialog.
|
1067 |
#: includes/fs-plugin-info-dialog.php:1087
|
1068 |
msgid "Donate to this plugin"
|
1069 |
msgstr "Donar a este plugin"
|
@@ -1073,26 +1402,32 @@ msgid "Average Rating"
|
|
1073 |
msgstr "Calificación media"
|
1074 |
|
1075 |
#: includes/fs-plugin-info-dialog.php:1019
|
|
|
1076 |
msgid "based on %s"
|
1077 |
msgstr "basado en %s"
|
1078 |
|
1079 |
#: includes/fs-plugin-info-dialog.php:1023
|
|
|
1080 |
msgid "%s rating"
|
1081 |
msgstr "%s calificación"
|
1082 |
|
1083 |
#: includes/fs-plugin-info-dialog.php:1025
|
|
|
1084 |
msgid "%s ratings"
|
1085 |
msgstr "%s calificaciones"
|
1086 |
|
1087 |
#: includes/fs-plugin-info-dialog.php:1040
|
|
|
1088 |
msgid "%s star"
|
1089 |
msgstr "%s estrella"
|
1090 |
|
1091 |
#: includes/fs-plugin-info-dialog.php:1042
|
|
|
1092 |
msgid "%s stars"
|
1093 |
msgstr "%s estrellas"
|
1094 |
|
1095 |
#: includes/fs-plugin-info-dialog.php:1053
|
|
|
1096 |
msgid "Click to see reviews that provided a rating of %s"
|
1097 |
msgstr "Haz clic para ver los comentarios con una valoración de %s"
|
1098 |
|
@@ -1100,7 +1435,7 @@ msgstr "Haz clic para ver los comentarios con una valoración de %s"
|
|
1100 |
msgid "Contributors"
|
1101 |
msgstr "Colaboradores"
|
1102 |
|
1103 |
-
#: includes/fs-plugin-info-dialog.
|
1104 |
#: includes/fs-plugin-info-dialog.php:1097
|
1105 |
msgid "Warning"
|
1106 |
msgstr "Atencion"
|
@@ -1110,8 +1445,10 @@ msgid "This plugin has not been tested with your current version of WordPress."
|
|
1110 |
msgstr "Este plugin no ha sido probado con tu versión actual de WordPress."
|
1111 |
|
1112 |
#: includes/fs-plugin-info-dialog.php:1097
|
1113 |
-
msgid "
|
1114 |
-
|
|
|
|
|
1115 |
|
1116 |
#: includes/fs-plugin-info-dialog.php:1116
|
1117 |
msgid "Paid add-on must be deployed to Freemius."
|
@@ -1121,110 +1458,128 @@ msgstr "El complemento de pago se debe implementar en Freemius."
|
|
1121 |
msgid "Add-on must be deployed to WordPress.org or Freemius."
|
1122 |
msgstr "El complemento debe implementarse en WordPress.org o en Freemius."
|
1123 |
|
1124 |
-
#: templates/account.
|
1125 |
-
#: templates/account/partials/addon.php22,
|
1126 |
#: templates/account/partials/site.php:295
|
|
|
1127 |
msgid "Downgrading your plan"
|
1128 |
msgstr "Bajando tu plan"
|
1129 |
|
1130 |
-
#: templates/account.
|
1131 |
-
#: templates/account/partials/addon.php23,
|
1132 |
#: templates/account/partials/site.php:296
|
|
|
1133 |
msgid "Cancelling the subscription"
|
1134 |
msgstr "Cancelando la suscripción"
|
1135 |
|
1136 |
-
|
1137 |
-
#. subscription'
|
1138 |
-
#: templates/account.php84, templates/forms/subscription-cancellation.php99,
|
1139 |
-
#: templates/account/partials/addon.php25,
|
1140 |
#: templates/account/partials/site.php:298
|
1141 |
-
|
1142 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1143 |
|
1144 |
-
#: templates/account.
|
1145 |
-
#: templates/account/partials/addon.php26,
|
1146 |
#: templates/account/partials/site.php:299
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1154 |
|
1155 |
-
#: templates/account.
|
1156 |
-
#: templates/account/partials/addon.php28,
|
1157 |
#: templates/account/partials/site.php:300
|
1158 |
-
|
1159 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1160 |
|
1161 |
-
#: templates/account.
|
1162 |
-
#: templates/account/partials/addon.php29,
|
1163 |
#: templates/account/partials/site.php:301
|
1164 |
-
|
1165 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1166 |
|
1167 |
-
|
1168 |
-
#: templates/account.
|
1169 |
-
#: templates/account/partials/activate-license-button.php31,
|
1170 |
#: templates/account/partials/addon.php:31
|
|
|
1171 |
msgid "Activate %s Plan"
|
1172 |
msgstr "Activar plan %s"
|
1173 |
|
1174 |
-
|
1175 |
-
#: templates/account.php93, templates/account/partials/addon.php34,
|
1176 |
#: templates/account/partials/site.php:275
|
|
|
1177 |
msgid "Auto renews in %s"
|
1178 |
msgstr "Auto renovaciones en %s"
|
1179 |
|
1180 |
-
|
1181 |
-
#: templates/account.php95, templates/account/partials/addon.php36,
|
1182 |
#: templates/account/partials/site.php:277
|
|
|
1183 |
msgid "Expires in %s"
|
1184 |
msgstr "Caduca en %s"
|
1185 |
|
1186 |
-
#: templates/account.
|
1187 |
msgctxt "as synchronize license"
|
1188 |
msgid "Sync License"
|
1189 |
msgstr "Sincronizar licencia"
|
1190 |
|
1191 |
-
#: templates/account.
|
1192 |
msgid "Cancel Trial"
|
1193 |
msgstr "Cancelar período de prueba"
|
1194 |
|
1195 |
-
#: templates/account.
|
1196 |
msgid "Change Plan"
|
1197 |
msgstr "Cambiar Plan"
|
1198 |
|
1199 |
-
#: templates/account.
|
1200 |
msgctxt "verb"
|
1201 |
msgid "Upgrade"
|
1202 |
msgstr "Actualizar"
|
1203 |
|
1204 |
-
#: templates/account.
|
1205 |
#: templates/account/partials/site.php:302
|
1206 |
msgctxt "verb"
|
1207 |
msgid "Downgrade"
|
1208 |
msgstr "Degradar"
|
1209 |
|
1210 |
-
#: templates/account.
|
1211 |
-
#: templates/
|
1212 |
-
#: templates/
|
1213 |
-
#: templates/account/partials/site.php:31
|
1214 |
msgid "Free"
|
1215 |
msgstr "Gratis"
|
1216 |
|
1217 |
-
#: templates/account.
|
1218 |
msgid "Activate"
|
1219 |
msgstr "Activar"
|
1220 |
|
1221 |
-
#: templates/account.php105, templates/debug.php371,
|
1222 |
-
#: includes/customizer/class-fs-customizer-upsell-control.php106,
|
1223 |
-
#: templates/account/partials/addon.php:46
|
1224 |
-
msgctxt "as product pricing plan"
|
1225 |
-
msgid "Plan"
|
1226 |
-
msgstr "Plan"
|
1227 |
-
|
1228 |
#: templates/account.php:158
|
1229 |
msgid "Free Trial"
|
1230 |
msgstr "Período de prueba gratuito"
|
@@ -1234,27 +1589,41 @@ msgid "Account Details"
|
|
1234 |
msgstr "Detalles de la cuenta"
|
1235 |
|
1236 |
#: templates/account.php:179
|
1237 |
-
|
1238 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1239 |
|
1240 |
#: templates/account.php:181
|
1241 |
-
|
1242 |
-
|
|
|
|
|
|
|
|
|
|
|
1243 |
|
1244 |
#: templates/account.php:184
|
1245 |
msgid "Delete Account"
|
1246 |
msgstr "Borrar cuenta"
|
1247 |
|
1248 |
-
#: templates/account.
|
1249 |
#: templates/account/partials/deactivate-license-button.php:35
|
1250 |
msgid "Deactivate License"
|
1251 |
msgstr "Desactivar licencia"
|
1252 |
|
1253 |
-
#: templates/account.
|
1254 |
msgid "Are you sure you want to proceed?"
|
1255 |
msgstr "¿Estás seguro que quieres proceder?"
|
1256 |
|
1257 |
-
#: templates/account.
|
1258 |
msgid "Cancel Subscription"
|
1259 |
msgstr "Cancelar suscripción"
|
1260 |
|
@@ -1263,15 +1632,15 @@ msgctxt "as synchronize"
|
|
1263 |
msgid "Sync"
|
1264 |
msgstr "Sincronizar"
|
1265 |
|
1266 |
-
#: templates/account.
|
1267 |
msgid "Name"
|
1268 |
msgstr "Nombre"
|
1269 |
|
1270 |
-
#: templates/account.
|
1271 |
msgid "Email"
|
1272 |
msgstr "Correo electrónico"
|
1273 |
|
1274 |
-
#: templates/account.
|
1275 |
msgid "User ID"
|
1276 |
msgstr "ID de usuario"
|
1277 |
|
@@ -1283,14 +1652,14 @@ msgstr "ID del sitio"
|
|
1283 |
msgid "No ID"
|
1284 |
msgstr "Sin ID"
|
1285 |
|
1286 |
-
#: templates/account.
|
1287 |
-
#: templates/debug.
|
1288 |
-
#: templates/
|
1289 |
msgid "Public Key"
|
1290 |
msgstr "Clave pública"
|
1291 |
|
1292 |
-
#: templates/account.
|
1293 |
-
#: templates/debug.
|
1294 |
msgid "Secret Key"
|
1295 |
msgstr "Clave secreta"
|
1296 |
|
@@ -1299,13 +1668,13 @@ msgctxt "as secret encryption key missing"
|
|
1299 |
msgid "No Secret"
|
1300 |
msgstr "Sin clave secreta"
|
1301 |
|
1302 |
-
#: templates/account.
|
1303 |
#: templates/account/partials/site.php:114
|
1304 |
msgid "Trial"
|
1305 |
msgstr "Período de prueba gratuito"
|
1306 |
|
1307 |
-
#: templates/account.
|
1308 |
-
#: templates/
|
1309 |
msgid "License Key"
|
1310 |
msgstr "Clave de licencia"
|
1311 |
|
@@ -1313,7 +1682,7 @@ msgstr "Clave de licencia"
|
|
1313 |
msgid "not verified"
|
1314 |
msgstr "no verificado"
|
1315 |
|
1316 |
-
#: templates/account.
|
1317 |
msgid "Expired"
|
1318 |
msgstr "Caducado"
|
1319 |
|
@@ -1330,21 +1699,23 @@ msgid "Verify Email"
|
|
1330 |
msgstr "Verificar correo electrónico"
|
1331 |
|
1332 |
#: templates/account.php:453
|
|
|
1333 |
msgid "Download %s Version"
|
1334 |
msgstr "Descargar versión %s"
|
1335 |
|
1336 |
-
#: templates/account.
|
1337 |
-
#: templates/account/partials/site.
|
1338 |
#: templates/account/partials/site.php:255
|
1339 |
msgctxt "verb"
|
1340 |
msgid "Show"
|
1341 |
msgstr "Mostrar"
|
1342 |
|
1343 |
#: templates/account.php:481
|
|
|
1344 |
msgid "What is your %s?"
|
1345 |
msgstr "¿Cual es tú %s?"
|
1346 |
|
1347 |
-
#: templates/account.
|
1348 |
msgctxt "verb"
|
1349 |
msgid "Edit"
|
1350 |
msgstr "Editar"
|
@@ -1357,14 +1728,15 @@ msgstr "Sitios"
|
|
1357 |
msgid "Search by address"
|
1358 |
msgstr "Buscar por dirección"
|
1359 |
|
1360 |
-
#: templates/account.
|
1361 |
-
#: templates/
|
1362 |
-
#: templates/debug.
|
1363 |
-
#: templates/
|
|
|
1364 |
msgid "ID"
|
1365 |
msgstr "ID"
|
1366 |
|
1367 |
-
#: templates/account.
|
1368 |
msgid "Address"
|
1369 |
msgstr "Dirección"
|
1370 |
|
@@ -1387,47 +1759,179 @@ msgid "Hide"
|
|
1387 |
msgstr "Ocultar"
|
1388 |
|
1389 |
#: templates/account.php:686
|
|
|
1390 |
msgid "Cancelling %s"
|
1391 |
msgstr "Cancelando %s"
|
1392 |
|
1393 |
-
#: templates/account.
|
1394 |
-
#: templates/forms/subscription-cancellation.php27,
|
1395 |
#: templates/forms/deactivation/form.php:117
|
|
|
1396 |
msgid "trial"
|
1397 |
msgstr "período de prueba"
|
1398 |
|
1399 |
-
#: templates/account.
|
|
|
1400 |
msgid "Cancelling %s..."
|
1401 |
msgstr "Cancelando %s..."
|
1402 |
|
1403 |
-
#: templates/account.
|
1404 |
-
#: templates/forms/
|
1405 |
msgid "subscription"
|
1406 |
msgstr "suscripción"
|
1407 |
|
1408 |
#: templates/account.php:718
|
1409 |
-
msgid "
|
1410 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1411 |
|
1412 |
#: templates/add-ons.php:36
|
|
|
1413 |
msgid "Add Ons for %s"
|
1414 |
msgstr "Complementos para %s"
|
1415 |
|
1416 |
#: templates/add-ons.php:44
|
1417 |
-
msgid "
|
1418 |
-
|
|
|
|
|
|
|
|
|
1419 |
|
1420 |
#: templates/add-ons.php:139
|
1421 |
msgid "View details"
|
1422 |
msgstr "Ver detalles"
|
1423 |
|
1424 |
-
#: templates/admin-notice.
|
1425 |
#: templates/forms/resend-key.php:77
|
1426 |
msgctxt "as close a window"
|
1427 |
msgid "Dismiss"
|
1428 |
msgstr "Descartar"
|
1429 |
|
1430 |
#: templates/auto-installation.php:45
|
|
|
1431 |
msgid "%s sec"
|
1432 |
msgstr "%s seg"
|
1433 |
|
@@ -1436,12 +1940,24 @@ msgid "Automatic Installation"
|
|
1436 |
msgstr "Instalación automática"
|
1437 |
|
1438 |
#: templates/auto-installation.php:93
|
1439 |
-
|
1440 |
-
|
1441 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1442 |
#: templates/auto-installation.php:104
|
1443 |
-
msgid "
|
1444 |
-
|
|
|
|
|
|
|
|
|
|
|
1445 |
|
1446 |
#: templates/auto-installation.php:109
|
1447 |
msgid "Cancel Installation"
|
@@ -1455,8 +1971,8 @@ msgstr "Pagar"
|
|
1455 |
msgid "PCI compliant"
|
1456 |
msgstr "Compatible con PCI"
|
1457 |
|
1458 |
-
#. translators: %s: name (e.g. Hey John,)
|
1459 |
#: templates/connect.php:112
|
|
|
1460 |
msgctxt "greeting"
|
1461 |
msgid "Hey %s,"
|
1462 |
msgstr "Hey %s,"
|
@@ -1470,66 +1986,121 @@ msgid "Re-send activation email"
|
|
1470 |
msgstr "Reenviar correo electrónico de activación"
|
1471 |
|
1472 |
#: templates/connect.php:162
|
|
|
1473 |
msgid "Thanks %s!"
|
1474 |
msgstr "¡Gracias %s!"
|
1475 |
|
1476 |
-
#: templates/connect.
|
1477 |
msgid "Agree & Activate License"
|
1478 |
msgstr "De acuerdo y activar licencia"
|
1479 |
|
1480 |
#: templates/connect.php:181
|
1481 |
-
|
|
|
|
|
1482 |
msgstr "¡Gracias por comprar %s! Para empezar, escribe tu clave de licencia:"
|
1483 |
|
1484 |
#: templates/connect.php:188
|
1485 |
-
|
1486 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1487 |
|
1488 |
#: templates/connect.php:189
|
1489 |
-
|
1490 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1491 |
|
1492 |
#: templates/connect.php:195
|
1493 |
-
|
1494 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1495 |
|
1496 |
#: templates/connect.php:196
|
1497 |
-
|
1498 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1499 |
|
1500 |
#: templates/connect.php:230
|
1501 |
msgid "We're excited to introduce the Freemius network-level integration."
|
1502 |
-
msgstr "
|
|
|
1503 |
|
1504 |
#: templates/connect.php:233
|
1505 |
-
|
1506 |
-
|
|
|
|
|
|
|
|
|
|
|
1507 |
|
1508 |
#: templates/connect.php:235
|
1509 |
-
|
1510 |
-
|
|
|
|
|
|
|
|
|
|
|
1511 |
|
1512 |
#: templates/connect.php:237
|
|
|
1513 |
msgid "%s's paid features"
|
1514 |
msgstr "%s características de pago"
|
1515 |
|
1516 |
#: templates/connect.php:242
|
1517 |
-
|
1518 |
-
|
|
|
|
|
|
|
|
|
|
|
1519 |
|
1520 |
#: templates/connect.php:244
|
1521 |
-
|
1522 |
-
|
|
|
|
|
|
|
|
|
|
|
1523 |
|
1524 |
-
#: templates/connect.
|
1525 |
msgid "License key"
|
1526 |
msgstr "Clave de licencia"
|
1527 |
|
1528 |
-
#: templates/connect.
|
1529 |
msgid "Can't find your license key?"
|
1530 |
msgstr "¿No puedes encontrar tu clave de licencia?"
|
1531 |
|
1532 |
-
#: templates/connect.
|
1533 |
#: templates/forms/deactivation/retry-skip.php:20
|
1534 |
msgctxt "verb"
|
1535 |
msgid "Skip"
|
@@ -1540,8 +2111,11 @@ msgid "Delegate to Site Admins"
|
|
1540 |
msgstr "Delegar a administradores del sitio"
|
1541 |
|
1542 |
#: templates/connect.php:318
|
1543 |
-
msgid "
|
1544 |
-
|
|
|
|
|
|
|
1545 |
|
1546 |
#: templates/connect.php:346
|
1547 |
msgid "Your Profile Overview"
|
@@ -1563,11 +2137,12 @@ msgstr "URL del sitio web, versión de WP, PHP info, plugins y temas"
|
|
1563 |
msgid "Admin Notices"
|
1564 |
msgstr "Avisos de administración"
|
1565 |
|
1566 |
-
#: templates/connect.
|
1567 |
msgid "Updates, announcements, marketing, no spam"
|
1568 |
msgstr "Actualizaciones, anuncios, marketing, sin spam"
|
1569 |
|
1570 |
#: templates/connect.php:364
|
|
|
1571 |
msgid "Current %s Events"
|
1572 |
msgstr "Eventos de %s actuales"
|
1573 |
|
@@ -1579,9 +2154,14 @@ msgstr "Activación, desactivación y desinstalación"
|
|
1579 |
msgid "Newsletter"
|
1580 |
msgstr "Boletín"
|
1581 |
|
1582 |
-
#: templates/connect.
|
1583 |
-
|
1584 |
-
|
|
|
|
|
|
|
|
|
|
|
1585 |
|
1586 |
#: templates/connect.php:396
|
1587 |
msgid "What permissions are being granted?"
|
@@ -1644,8 +2224,8 @@ msgctxt "as code debugging"
|
|
1644 |
msgid "Debugging"
|
1645 |
msgstr "Depurando"
|
1646 |
|
1647 |
-
#: templates/debug.
|
1648 |
-
#: templates/debug.php:
|
1649 |
msgid "Actions"
|
1650 |
msgstr "Acciones"
|
1651 |
|
@@ -1681,283 +2261,187 @@ msgstr "Cargar opción de BD"
|
|
1681 |
msgid "Set DB Option"
|
1682 |
msgstr "Guardar opción en BD"
|
1683 |
|
1684 |
-
#: templates/debug.php:
|
1685 |
msgid "Key"
|
1686 |
msgstr "Clave"
|
1687 |
|
1688 |
-
#: templates/debug.php:
|
1689 |
msgid "Value"
|
1690 |
msgstr "Valor"
|
1691 |
|
1692 |
-
#: templates/debug.php:
|
1693 |
msgctxt "as software development kit versions"
|
1694 |
msgid "SDK Versions"
|
1695 |
msgstr "Versiones SDK"
|
1696 |
|
1697 |
-
#: templates/debug.php:
|
1698 |
msgid "SDK Path"
|
1699 |
msgstr "Ruta del SDK"
|
1700 |
|
1701 |
-
#: templates/debug.
|
1702 |
msgid "Module Path"
|
1703 |
msgstr "Ruta del módulo"
|
1704 |
|
1705 |
-
#: templates/debug.php:
|
1706 |
msgid "Is Active"
|
1707 |
msgstr "Está activo"
|
1708 |
|
1709 |
-
#: templates/debug.
|
1710 |
msgid "Plugins"
|
1711 |
msgstr "Plugins"
|
1712 |
|
1713 |
-
#: templates/debug.
|
1714 |
msgid "Themes"
|
1715 |
msgstr "Temas"
|
1716 |
|
1717 |
-
#: templates/debug.
|
1718 |
#: templates/debug/scheduled-crons.php:80
|
1719 |
msgid "Slug"
|
1720 |
msgstr "Ruta"
|
1721 |
|
1722 |
-
#: templates/debug.
|
1723 |
msgid "Title"
|
1724 |
msgstr "Título"
|
1725 |
|
1726 |
-
#: templates/debug.php:
|
1727 |
msgctxt "as application program interface"
|
1728 |
msgid "API"
|
1729 |
msgstr "API"
|
1730 |
|
1731 |
-
#: templates/debug.php:
|
1732 |
msgid "Freemius State"
|
1733 |
msgstr "Estado Freemius"
|
1734 |
|
1735 |
-
#: templates/debug.php:
|
1736 |
msgid "Network Blog"
|
1737 |
msgstr "Blog de red"
|
1738 |
|
1739 |
-
#: templates/debug.php:
|
1740 |
msgid "Network User"
|
1741 |
msgstr "Usuario de red"
|
1742 |
|
1743 |
-
#: templates/debug.php:
|
1744 |
msgctxt "as connection was successful"
|
1745 |
msgid "Connected"
|
1746 |
msgstr "Conectado"
|
1747 |
|
1748 |
-
#: templates/debug.php:
|
1749 |
msgctxt "as connection blocked"
|
1750 |
msgid "Blocked"
|
1751 |
msgstr "Bloqueado"
|
1752 |
|
1753 |
-
#: templates/debug.php:
|
1754 |
msgid "Simulate Trial Promotion"
|
1755 |
msgstr "Simular período de prueba"
|
1756 |
|
1757 |
-
#: templates/debug.php:
|
1758 |
msgid "Simulate Network Upgrade"
|
1759 |
msgstr "Simular actualización de red"
|
1760 |
|
1761 |
-
#: templates/debug.php:
|
|
|
1762 |
msgid "%s Installs"
|
1763 |
msgstr "%s Instalaciones"
|
1764 |
|
1765 |
-
#: templates/debug.php:
|
1766 |
msgctxt "like websites"
|
1767 |
msgid "Sites"
|
1768 |
msgstr "Sitios"
|
1769 |
|
1770 |
-
#: templates/debug.
|
1771 |
-
|
1772 |
-
msgstr "ID del blog"
|
1773 |
-
|
1774 |
-
#: templates/debug.php431, templates/debug.php509,
|
1775 |
-
#: templates/account/partials/addon.php:339
|
1776 |
-
msgctxt "verb"
|
1777 |
-
msgid "Delete"
|
1778 |
-
msgstr "Borrar"
|
1779 |
-
|
1780 |
-
#: templates/debug.php:445
|
1781 |
msgid "Add Ons of module %s"
|
1782 |
msgstr "Complementos del módulo %s"
|
1783 |
|
1784 |
-
#: templates/debug.php:
|
1785 |
msgid "Users"
|
1786 |
msgstr "Usuarios"
|
1787 |
|
1788 |
-
#: templates/debug.php:
|
1789 |
msgid "Verified"
|
1790 |
msgstr "Verificado"
|
1791 |
|
1792 |
-
#: templates/debug.php:
|
|
|
1793 |
msgid "%s Licenses"
|
1794 |
msgstr "%s Licencias"
|
1795 |
|
1796 |
-
#: templates/debug.php:
|
1797 |
msgid "Plugin ID"
|
1798 |
msgstr "ID del plugin"
|
1799 |
|
1800 |
-
#: templates/debug.php:
|
1801 |
msgid "Plan ID"
|
1802 |
msgstr "ID del plan"
|
1803 |
|
1804 |
-
#: templates/debug.php:
|
1805 |
msgid "Quota"
|
1806 |
msgstr "Cuota"
|
1807 |
|
1808 |
-
#: templates/debug.php:
|
1809 |
msgid "Activated"
|
1810 |
msgstr "Activado"
|
1811 |
|
1812 |
-
#: templates/debug.php:
|
1813 |
msgid "Blocking"
|
1814 |
msgstr "Bloqueando"
|
1815 |
|
1816 |
-
#: templates/debug.php:
|
1817 |
msgctxt "as expiration date"
|
1818 |
msgid "Expiration"
|
1819 |
msgstr "Caducidad"
|
1820 |
|
1821 |
-
#: templates/debug.php:
|
1822 |
msgid "Debug Log"
|
1823 |
msgstr "Log de Debug"
|
1824 |
|
1825 |
-
#: templates/debug.php:
|
1826 |
msgid "All Types"
|
1827 |
msgstr "Todos los Tipos"
|
1828 |
|
1829 |
-
#: templates/debug.php:
|
1830 |
msgid "All Requests"
|
1831 |
msgstr "Todas las peticiones"
|
1832 |
|
1833 |
-
#: templates/debug.
|
1834 |
#: templates/debug/logger.php:25
|
1835 |
msgid "File"
|
1836 |
msgstr "Archivo"
|
1837 |
|
1838 |
-
#: templates/debug.
|
1839 |
#: templates/debug/logger.php:23
|
1840 |
msgid "Function"
|
1841 |
msgstr "Función"
|
1842 |
|
1843 |
-
#: templates/debug.php:
|
1844 |
msgid "Process ID"
|
1845 |
msgstr "ID del proceso"
|
1846 |
|
1847 |
-
#: templates/debug.php:
|
1848 |
msgid "Logger"
|
1849 |
msgstr "Logger"
|
1850 |
|
1851 |
-
#: templates/debug.
|
1852 |
#: templates/debug/logger.php:24
|
1853 |
msgid "Message"
|
1854 |
msgstr "Mensaje"
|
1855 |
|
1856 |
-
#: templates/debug.php:
|
1857 |
msgid "Filter"
|
1858 |
msgstr "Filtro"
|
1859 |
|
1860 |
-
#: templates/debug.php:
|
1861 |
msgid "Download"
|
1862 |
msgstr "Descarga"
|
1863 |
|
1864 |
-
#: templates/debug.
|
1865 |
msgid "Type"
|
1866 |
msgstr "Tipo"
|
1867 |
|
1868 |
-
#: templates/debug.
|
1869 |
msgid "Timestamp"
|
1870 |
msgstr "Timestamp"
|
1871 |
|
1872 |
-
#: templates/secure-https-header.php:28
|
1873 |
-
msgid "Secure HTTPS %s page, running from an external domain"
|
1874 |
-
msgstr "Página segura HTTPS %s, desde un dominio externo"
|
1875 |
-
|
1876 |
-
#: includes/customizer/class-fs-customizer-support-section.php55,
|
1877 |
-
#: templates/plugin-info/features.php:43
|
1878 |
-
msgid "Support"
|
1879 |
-
msgstr "Soporte"
|
1880 |
-
|
1881 |
-
#: includes/debug/class-fs-debug-bar-panel.php48,
|
1882 |
-
#: templates/debug/api-calls.php54, templates/debug/logger.php:62
|
1883 |
-
msgctxt "milliseconds"
|
1884 |
-
msgid "ms"
|
1885 |
-
msgstr "ms"
|
1886 |
-
|
1887 |
-
#: includes/debug/debug-bar-start.php:41
|
1888 |
-
msgid "Freemius API"
|
1889 |
-
msgstr "API Freemius"
|
1890 |
-
|
1891 |
-
#: includes/debug/debug-bar-start.php:42
|
1892 |
-
msgid "Requests"
|
1893 |
-
msgstr "Peticiones"
|
1894 |
-
|
1895 |
-
#: templates/account/billing.php:28
|
1896 |
-
msgctxt "verb"
|
1897 |
-
msgid "Update"
|
1898 |
-
msgstr "Actualizar"
|
1899 |
-
|
1900 |
-
#: templates/account/billing.php:39
|
1901 |
-
msgid "Billing"
|
1902 |
-
msgstr "Facturación"
|
1903 |
-
|
1904 |
-
#: templates/account/billing.php44, templates/account/billing.php:44
|
1905 |
-
msgid "Business name"
|
1906 |
-
msgstr "Nombre de la empresa"
|
1907 |
-
|
1908 |
-
#: templates/account/billing.php45, templates/account/billing.php:45
|
1909 |
-
msgid "Tax / VAT ID"
|
1910 |
-
msgstr "Tax / Núm IVA"
|
1911 |
-
|
1912 |
-
#: templates/account/billing.php48, templates/account/billing.php48,
|
1913 |
-
#: templates/account/billing.php49, templates/account/billing.php:49
|
1914 |
-
msgid "Address Line %d"
|
1915 |
-
msgstr "Línea de la dirección %d"
|
1916 |
-
|
1917 |
-
#: templates/account/billing.php52, templates/account/billing.php:52
|
1918 |
-
msgid "City"
|
1919 |
-
msgstr "Ciudad"
|
1920 |
-
|
1921 |
-
#: templates/account/billing.php52, templates/account/billing.php:52
|
1922 |
-
msgid "Town"
|
1923 |
-
msgstr "Municipio"
|
1924 |
-
|
1925 |
-
#: templates/account/billing.php53, templates/account/billing.php:53
|
1926 |
-
msgid "ZIP / Postal Code"
|
1927 |
-
msgstr "Código postal"
|
1928 |
-
|
1929 |
-
#: templates/account/billing.php:308
|
1930 |
-
msgid "Country"
|
1931 |
-
msgstr "País"
|
1932 |
-
|
1933 |
-
#: templates/account/billing.php:310
|
1934 |
-
msgid "Select Country"
|
1935 |
-
msgstr "Seleccionar país"
|
1936 |
-
|
1937 |
-
#: templates/account/billing.php317, templates/account/billing.php:318
|
1938 |
-
msgid "State"
|
1939 |
-
msgstr "Estado"
|
1940 |
-
|
1941 |
-
#: templates/account/billing.php317, templates/account/billing.php:318
|
1942 |
-
msgid "Province"
|
1943 |
-
msgstr "Provincia"
|
1944 |
-
|
1945 |
-
#: templates/account/payments.php:29
|
1946 |
-
msgid "Payments"
|
1947 |
-
msgstr "Pagos"
|
1948 |
-
|
1949 |
-
#: templates/account/payments.php:36
|
1950 |
-
msgid "Date"
|
1951 |
-
msgstr "Fecha"
|
1952 |
-
|
1953 |
-
#: templates/account/payments.php:37
|
1954 |
-
msgid "Amount"
|
1955 |
-
msgstr "Cantidad"
|
1956 |
-
|
1957 |
-
#: templates/account/payments.php38, templates/account/payments.php:50
|
1958 |
-
msgid "Invoice"
|
1959 |
-
msgstr "Factura"
|
1960 |
-
|
1961 |
#: templates/debug/api-calls.php:56
|
1962 |
msgid "API"
|
1963 |
msgstr "API"
|
@@ -1999,19 +2483,19 @@ msgstr "Fin"
|
|
1999 |
msgid "Log"
|
2000 |
msgstr "Log"
|
2001 |
|
2002 |
-
|
2003 |
-
#: templates/debug/plugins-themes-sync.php18,
|
2004 |
#: templates/debug/scheduled-crons.php:91
|
|
|
2005 |
msgid "In %s"
|
2006 |
msgstr "En %s"
|
2007 |
|
2008 |
-
|
2009 |
-
#: templates/debug/plugins-themes-sync.php20,
|
2010 |
#: templates/debug/scheduled-crons.php:93
|
|
|
2011 |
msgid "%s ago"
|
2012 |
msgstr "hace %s"
|
2013 |
|
2014 |
-
#: templates/debug/plugins-themes-sync.
|
2015 |
#: templates/debug/scheduled-crons.php:74
|
2016 |
msgctxt "seconds"
|
2017 |
msgid "sec"
|
@@ -2025,7 +2509,7 @@ msgstr "Sincronizar plugins y temas"
|
|
2025 |
msgid "Total"
|
2026 |
msgstr "Total"
|
2027 |
|
2028 |
-
#: templates/debug/plugins-themes-sync.
|
2029 |
#: templates/debug/scheduled-crons.php:84
|
2030 |
msgid "Last"
|
2031 |
msgstr "Último"
|
@@ -2059,38 +2543,66 @@ msgid "Apply to become an affiliate"
|
|
2059 |
msgstr "Aceptar para hacerse afiliado"
|
2060 |
|
2061 |
#: templates/forms/affiliation.php:104
|
2062 |
-
|
2063 |
-
|
|
|
|
|
|
|
|
|
|
|
2064 |
|
2065 |
#: templates/forms/affiliation.php:119
|
2066 |
-
msgid "
|
2067 |
-
|
|
|
|
|
|
|
|
|
|
|
2068 |
|
2069 |
#: templates/forms/affiliation.php:122
|
2070 |
msgid "Your affiliation account was temporarily suspended."
|
2071 |
msgstr "Tu cuenta de afiliado ha sido suspendida temporalmente."
|
2072 |
|
2073 |
#: templates/forms/affiliation.php:125
|
2074 |
-
msgid "
|
2075 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
2076 |
|
2077 |
#: templates/forms/affiliation.php:128
|
2078 |
-
msgid "
|
2079 |
-
|
|
|
|
|
|
|
|
|
|
|
2080 |
|
2081 |
#: templates/forms/affiliation.php:141
|
|
|
2082 |
msgid "Like the %s? Become our ambassador and earn cash ;-)"
|
2083 |
msgstr "¿Te gusta %s? Conviértete en nuestro embajador y gana dinero ;-)"
|
2084 |
|
2085 |
#: templates/forms/affiliation.php:142
|
2086 |
-
|
2087 |
-
|
|
|
|
|
|
|
|
|
|
|
2088 |
|
2089 |
#: templates/forms/affiliation.php:145
|
2090 |
msgid "Program Summary"
|
2091 |
msgstr "Sumario del programa"
|
2092 |
|
2093 |
#: templates/forms/affiliation.php:147
|
|
|
2094 |
msgid "%s commission when a customer purchases a new license."
|
2095 |
msgstr "%s comisión cuando un cliente compra una nueva licencia."
|
2096 |
|
@@ -2099,14 +2611,19 @@ msgid "Get commission for automated subscription renewals."
|
|
2099 |
msgstr "Obtén comisiones por renovaciones automatizadas de las suscripciones."
|
2100 |
|
2101 |
#: templates/forms/affiliation.php:152
|
2102 |
-
|
2103 |
-
|
|
|
|
|
|
|
|
|
2104 |
|
2105 |
#: templates/forms/affiliation.php:155
|
2106 |
msgid "Unlimited commissions."
|
2107 |
msgstr "Comisiones Ilimitadas"
|
2108 |
|
2109 |
#: templates/forms/affiliation.php:157
|
|
|
2110 |
msgid "%s minimum payout amount."
|
2111 |
msgstr "%s cantidad mínima a pagar."
|
2112 |
|
@@ -2115,14 +2632,18 @@ msgid "Payouts are in USD and processed monthly via PayPal."
|
|
2115 |
msgstr "Los pagos son en USD y se procesan mensualmente por medio de PayPal."
|
2116 |
|
2117 |
#: templates/forms/affiliation.php:159
|
2118 |
-
msgid "
|
2119 |
-
|
|
|
|
|
|
|
|
|
2120 |
|
2121 |
#: templates/forms/affiliation.php:162
|
2122 |
msgid "Affiliate"
|
2123 |
msgstr "Afiliado"
|
2124 |
|
2125 |
-
#: templates/forms/affiliation.
|
2126 |
msgid "Email address"
|
2127 |
msgstr "Dirección de correo electrónico"
|
2128 |
|
@@ -2135,12 +2656,18 @@ msgid "PayPal account email address"
|
|
2135 |
msgstr "Dirección de correo electrónico de PayPal"
|
2136 |
|
2137 |
#: templates/forms/affiliation.php:177
|
|
|
2138 |
msgid "Where are you going to promote the %s?"
|
2139 |
msgstr "¿Dónde vas a promocionar %s?"
|
2140 |
|
2141 |
#: templates/forms/affiliation.php:179
|
2142 |
-
|
2143 |
-
|
|
|
|
|
|
|
|
|
|
|
2144 |
|
2145 |
#: templates/forms/affiliation.php:181
|
2146 |
msgid "Add another domain"
|
@@ -2168,21 +2695,33 @@ msgstr "Apps móviles "
|
|
2168 |
|
2169 |
#: templates/forms/affiliation.php:207
|
2170 |
msgid "Website, email, and social media statistics (optional)"
|
2171 |
-
msgstr "
|
|
|
2172 |
|
2173 |
#: templates/forms/affiliation.php:210
|
2174 |
-
msgid "
|
2175 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
2176 |
|
2177 |
#: templates/forms/affiliation.php:214
|
2178 |
msgid "How will you promote us?"
|
2179 |
msgstr "¿Como nos promocionarás?"
|
2180 |
|
2181 |
#: templates/forms/affiliation.php:217
|
2182 |
-
|
2183 |
-
|
|
|
|
|
|
|
|
|
|
|
2184 |
|
2185 |
-
#: templates/forms/affiliation.
|
2186 |
msgid "Cancel"
|
2187 |
msgstr "Cancelar"
|
2188 |
|
@@ -2190,9 +2729,92 @@ msgstr "Cancelar"
|
|
2190 |
msgid "Become an affiliate"
|
2191 |
msgstr "Hacerse afiliado"
|
2192 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2193 |
#: templates/forms/license-activation.php:20
|
2194 |
-
msgid "
|
2195 |
-
|
|
|
|
|
|
|
|
|
2196 |
|
2197 |
#: templates/forms/license-activation.php:25
|
2198 |
msgid "Update License"
|
@@ -2209,20 +2831,34 @@ msgid "Opt In"
|
|
2209 |
msgstr "Inscribirse"
|
2210 |
|
2211 |
#: templates/forms/optout.php:33
|
2212 |
-
|
2213 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2214 |
|
2215 |
#: templates/forms/optout.php:35
|
2216 |
-
|
|
|
|
|
2217 |
msgstr "Haciendo clic en \"Desistir\", ya no enviaremos los datos de %s a %s."
|
2218 |
|
2219 |
#: templates/forms/premium-versions-upgrade-handler.php:40
|
|
|
2220 |
msgid "There is a new version of %s available."
|
2221 |
msgstr "Hay una nueva versión de %s disponible."
|
2222 |
|
2223 |
#: templates/forms/premium-versions-upgrade-handler.php:41
|
|
|
2224 |
msgid " %s to access version %s security & feature updates, and support."
|
2225 |
-
msgstr "
|
|
|
|
|
2226 |
|
2227 |
#: templates/forms/premium-versions-upgrade-handler.php:54
|
2228 |
msgid "New Version Available"
|
@@ -2238,34 +2874,65 @@ msgid "Send License Key"
|
|
2238 |
msgstr "Enviar clave de licencia"
|
2239 |
|
2240 |
#: templates/forms/resend-key.php:57
|
2241 |
-
msgid "
|
2242 |
-
|
|
|
|
|
|
|
|
|
2243 |
|
2244 |
-
#: templates/forms/subscription-cancellation.php:
|
2245 |
-
|
2246 |
-
|
|
|
|
|
|
|
|
|
|
|
2247 |
|
2248 |
-
#: templates/forms/subscription-cancellation.php:
|
2249 |
-
|
2250 |
-
|
|
|
|
|
|
|
|
|
|
|
2251 |
|
2252 |
#: templates/forms/subscription-cancellation.php:52
|
2253 |
msgid "license"
|
2254 |
msgstr "licencia"
|
2255 |
|
2256 |
-
#: templates/forms/subscription-cancellation.php:
|
2257 |
-
|
2258 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
2259 |
|
2260 |
-
#: templates/forms/subscription-cancellation.php:
|
2261 |
-
|
2262 |
-
|
|
|
|
|
|
|
|
|
|
|
2263 |
|
2264 |
#: templates/forms/subscription-cancellation.php:103
|
2265 |
-
|
2266 |
-
|
|
|
|
|
|
|
|
|
|
|
2267 |
|
2268 |
#: templates/forms/subscription-cancellation.php:136
|
|
|
2269 |
msgid "Cancel %s?"
|
2270 |
msgstr "¿Cancelar %s?"
|
2271 |
|
@@ -2273,18 +2940,27 @@ msgstr "¿Cancelar %s?"
|
|
2273 |
msgid "Proceed"
|
2274 |
msgstr "Proceder"
|
2275 |
|
2276 |
-
#: templates/forms/subscription-cancellation.php191,
|
2277 |
-
#: templates/forms/deactivation/form.php:150
|
2278 |
-
msgid "Cancel %s & Proceed"
|
2279 |
-
msgstr "Cancelar %s y proceder"
|
2280 |
-
|
2281 |
#: templates/forms/trial-start.php:22
|
2282 |
-
|
2283 |
-
|
|
|
|
|
|
|
|
|
2284 |
|
2285 |
#: templates/forms/trial-start.php:28
|
2286 |
-
|
2287 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2288 |
|
2289 |
#: templates/js/style-premium-theme.php:37
|
2290 |
msgid "Premium"
|
@@ -2306,23 +2982,24 @@ msgstr "Aplicar licencia en todos los sitios pendientes"
|
|
2306 |
msgid "Apply on all pending sites."
|
2307 |
msgstr "Aplicar en todos los sitios pendientes"
|
2308 |
|
2309 |
-
#: templates/partials/network-activation.
|
2310 |
#: templates/partials/network-activation.php:68
|
2311 |
msgid "allow"
|
2312 |
msgstr "permitir"
|
2313 |
|
2314 |
-
#: templates/partials/network-activation.
|
2315 |
#: templates/partials/network-activation.php:70
|
2316 |
msgid "delegate"
|
2317 |
msgstr "delegar"
|
2318 |
|
2319 |
-
#: templates/partials/network-activation.
|
2320 |
#: templates/partials/network-activation.php:73
|
2321 |
msgid "skip"
|
2322 |
msgstr "saltar"
|
2323 |
|
2324 |
-
#: templates/plugin-info/description.
|
2325 |
#: templates/plugin-info/screenshots.php:31
|
|
|
2326 |
msgid "Click to view full-size screenshot %d"
|
2327 |
msgstr "Click para ver la captura de pantalla a tamaño completo %d"
|
2328 |
|
@@ -2330,104 +3007,7 @@ msgstr "Click para ver la captura de pantalla a tamaño completo %d"
|
|
2330 |
msgid "Unlimited Updates"
|
2331 |
msgstr "Actualizaciones Ilimitadas"
|
2332 |
|
2333 |
-
#: templates/account/partials/activate-license-button.php:46
|
2334 |
-
msgid "Localhost"
|
2335 |
-
msgstr "Localhost"
|
2336 |
-
|
2337 |
-
#: templates/account/partials/activate-license-button.php:50
|
2338 |
-
msgctxt "as 5 licenses left"
|
2339 |
-
msgid "%s left"
|
2340 |
-
msgstr "quedan %s"
|
2341 |
-
|
2342 |
-
#: templates/account/partials/
|
6 |
msgstr ""
|
7 |
"Project-Id-Version: WordPress SDK\n"
|
8 |
"Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
|
9 |
+
"POT-Creation-Date: 2019-05-04 16:17+0200\n"
|
10 |
+
"PO-Revision-Date: 2019-05-04 16:17+0200\n"
|
11 |
"Last-Translator: Carlos Longarela <carlos@longarela.eu>\n"
|
12 |
+
"Language-Team: Spanish (Spain) (http://www.transifex.com/freemius/wordpress-"
|
13 |
+
"sdk/language/es_ES/)\n"
|
14 |
"Language: es_ES\n"
|
15 |
+
"MIME-Version: 1.0\n"
|
16 |
"Content-Type: text/plain; charset=UTF-8\n"
|
17 |
"Content-Transfer-Encoding: 8bit\n"
|
18 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
|
19 |
"X-Poedit-Basepath: ..\n"
|
20 |
+
"X-Poedit-KeywordsList: get_text_inline;fs_text_inline;fs_echo_inline;"
|
21 |
+
"fs_esc_js_inline;fs_esc_attr_inline;fs_esc_attr_echo_inline;"
|
22 |
+
"fs_esc_html_inline;fs_esc_html_echo_inline;get_text_x_inline:1,2c;"
|
23 |
+
"fs_text_x_inline:1,2c;fs_echo_x_inline:1,2c;fs_esc_attr_x_inline:1,2c;"
|
24 |
+
"fs_esc_js_x_inline:1,2c;fs_esc_js_echo_x_inline:1,2c;"
|
25 |
+
"fs_esc_html_x_inline:1,2c;fs_esc_html_echo_x_inline:1,2c\n"
|
26 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
27 |
+
"X-Generator: Poedit 2.2.1\n"
|
28 |
"X-Poedit-SearchPath-0: .\n"
|
29 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
|
|
30 |
|
31 |
#: includes/class-freemius.php:1688
|
32 |
+
msgid ""
|
33 |
+
"Freemius SDK couldn't find the plugin's main file. Please contact "
|
34 |
+
"sdk@freemius.com with the current error."
|
35 |
+
msgstr ""
|
36 |
+
"Freemius SDK no pudo encontrar el archivo principal del plugin. Por favor "
|
37 |
+
"contacta a sdk@freemius.com con el error actual."
|
38 |
|
39 |
#: includes/class-freemius.php:1690
|
40 |
msgid "Error"
|
41 |
msgstr "Error"
|
42 |
|
43 |
#: includes/class-freemius.php:2011
|
44 |
+
#, php-format
|
45 |
msgid "I found a better %s"
|
46 |
msgstr "He encontrado un %s mejor"
|
47 |
|
48 |
#: includes/class-freemius.php:2013
|
49 |
+
#, php-format
|
50 |
msgid "What's the %s's name?"
|
51 |
msgstr "¿Cuál es el nombre de %s?"
|
52 |
|
53 |
#: includes/class-freemius.php:2019
|
54 |
+
#, php-format
|
55 |
msgid "It's a temporary %s. I'm just debugging an issue."
|
56 |
msgstr "Es una %stemporal . Sólo estoy depurando un problema"
|
57 |
|
63 |
msgid "Theme Switch"
|
64 |
msgstr "Cambiar tema"
|
65 |
|
66 |
+
#: includes/class-freemius.php:2031 templates/forms/resend-key.php:24
|
67 |
msgid "Other"
|
68 |
msgstr "Otra"
|
69 |
|
70 |
#: includes/class-freemius.php:2039
|
71 |
+
#, php-format
|
72 |
msgid "I no longer need the %s"
|
73 |
msgstr "Ya no necesito el %s"
|
74 |
|
75 |
#: includes/class-freemius.php:2046
|
76 |
+
#, php-format
|
77 |
msgid "I only needed the %s for a short period"
|
78 |
msgstr "Sólo necesitaba la %s por un corto período"
|
79 |
|
80 |
#: includes/class-freemius.php:2052
|
81 |
+
#, php-format
|
82 |
msgid "The %s broke my site"
|
83 |
msgstr "%s ha roto mi sitio"
|
84 |
|
85 |
#: includes/class-freemius.php:2059
|
86 |
+
#, php-format
|
87 |
msgid "The %s suddenly stopped working"
|
88 |
msgstr "%s de repente ha dejado de funcionar"
|
89 |
|
100 |
msgstr "No me gusta compartir mi información contigo"
|
101 |
|
102 |
#: includes/class-freemius.php:2098
|
103 |
+
#, php-format
|
104 |
msgid "The %s didn't work"
|
105 |
msgstr "El %s no funcionaba"
|
106 |
|
109 |
msgstr "No entiendo cómo hacerlo funcionar"
|
110 |
|
111 |
#: includes/class-freemius.php:2116
|
112 |
+
#, php-format
|
113 |
msgid "The %s is great, but I need specific feature that you don't support"
|
114 |
msgstr "%s es genial, pero necesito una característica que no soportáis"
|
115 |
|
118 |
msgstr "¿Qué característica?"
|
119 |
|
120 |
#: includes/class-freemius.php:2122
|
121 |
+
#, php-format
|
122 |
msgid "The %s is not working"
|
123 |
msgstr " El %s no funciona"
|
124 |
|
125 |
#: includes/class-freemius.php:2124
|
126 |
msgid "Kindly share what didn't work so we can fix it for future users..."
|
127 |
+
msgstr ""
|
128 |
+
"Por favor, comparte lo que no funcionó para que podamos arreglarlo para los "
|
129 |
+
"futuros usuarios..."
|
130 |
|
131 |
#: includes/class-freemius.php:2128
|
132 |
msgid "It's not what I was looking for"
|
137 |
msgstr "¿Que has estado buscando?"
|
138 |
|
139 |
#: includes/class-freemius.php:2134
|
140 |
+
#, php-format
|
141 |
msgid "The %s didn't work as expected"
|
142 |
msgstr " El %s no funciona como esperaba"
|
143 |
|
145 |
msgid "What did you expect?"
|
146 |
msgstr "¿Qué esperas?"
|
147 |
|
148 |
+
#: includes/class-freemius.php:2947 templates/debug.php:20
|
149 |
msgid "Freemius Debug"
|
150 |
msgstr "Debug Freemius"
|
151 |
|
152 |
+
#: includes/class-freemius.php:3696
|
153 |
msgid "I don't know what is cURL or how to install it, help me!"
|
154 |
msgstr "No sé qué es cURL o cómo instalarlo, ¡ayúdame!"
|
155 |
|
156 |
+
#: includes/class-freemius.php:3698
|
157 |
+
#, php-format
|
158 |
+
msgid ""
|
159 |
+
"We'll make sure to contact your hosting company and resolve the issue. You "
|
160 |
+
"will get a follow-up email to %s once we have an update."
|
161 |
+
msgstr ""
|
162 |
+
"Nos aseguraremos de ponernos en contacto con tu empresa de alojamiento web y "
|
163 |
+
"resolver el problema. Recibirás un correo electrónico de seguimiento a %s "
|
164 |
+
"tan pronto tengamos una actualización."
|
165 |
|
166 |
+
#: includes/class-freemius.php:3705
|
167 |
+
#, php-format
|
168 |
+
msgid ""
|
169 |
+
"Great, please install cURL and enable it in your php.ini file. In addition, "
|
170 |
+
"search for the 'disable_functions' directive in your php.ini file and remove "
|
171 |
+
"any disabled methods starting with 'curl_'. To make sure it was successfully "
|
172 |
+
"activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate "
|
173 |
+
"it back again."
|
174 |
+
msgstr ""
|
175 |
+
"Genial, por favor instala cURL y habilítalo en el archivo php.ini. Además, "
|
176 |
+
"busca la directiva 'disable_functions' en el archivo php.ini y quita "
|
177 |
+
"cualquier método que comienza con 'curl_'. Para asegurarte de que se activó "
|
178 |
+
"con éxito, utiliza 'phpinfo()'. Una vez activado, desactiva el %s y "
|
179 |
+
"reactívalo de nuevo."
|
180 |
|
181 |
+
#: includes/class-freemius.php:3810
|
182 |
msgid "Yes - do your thing"
|
183 |
msgstr "Vamos, adelante"
|
184 |
|
185 |
+
#: includes/class-freemius.php:3815
|
186 |
msgid "No - just deactivate"
|
187 |
msgstr "No - sólo desactivar"
|
188 |
|
189 |
+
#: includes/class-freemius.php:3860 includes/class-freemius.php:4369
|
190 |
+
#: includes/class-freemius.php:5468 includes/class-freemius.php:11576
|
191 |
+
#: includes/class-freemius.php:14947 includes/class-freemius.php:14999
|
192 |
+
#: includes/class-freemius.php:15061 includes/class-freemius.php:17294
|
193 |
+
#: includes/class-freemius.php:17304 includes/class-freemius.php:17913
|
194 |
+
#: includes/class-freemius.php:18773 includes/class-freemius.php:18888
|
195 |
+
#: includes/class-freemius.php:19032 templates/add-ons.php:43
|
196 |
msgctxt "exclamation"
|
197 |
msgid "Oops"
|
198 |
msgstr "Oops"
|
199 |
|
200 |
+
#: includes/class-freemius.php:3929
|
201 |
+
#, php-format
|
202 |
+
msgid ""
|
203 |
+
"Thank for giving us the chance to fix it! A message was just sent to our "
|
204 |
+
"technical staff. We will get back to you as soon as we have an update to %s. "
|
205 |
+
"Appreciate your patience."
|
206 |
+
msgstr ""
|
207 |
+
"¡Gracias por darnos la oportunidad de arreglarlo! Acabamos de enviar un "
|
208 |
+
"mensaje a nuestro personal técnico. Nos pondremos en contacto contigo tan "
|
209 |
+
"pronto como tengamos una actualización de %s. Apreciamos tu paciencia."
|
210 |
|
211 |
+
#: includes/class-freemius.php:4366
|
212 |
+
#, php-format
|
213 |
msgctxt "addonX cannot run without pluginY"
|
214 |
msgid "%s cannot run without %s."
|
215 |
msgstr "%s no se puede ejecutar sin %s."
|
216 |
|
217 |
+
#: includes/class-freemius.php:4367
|
218 |
+
#, php-format
|
219 |
msgctxt "addonX cannot run..."
|
220 |
msgid "%s cannot run without the plugin."
|
221 |
msgstr "%s no se puede ejecutar sin el plugin."
|
222 |
|
223 |
+
#: includes/class-freemius.php:4513 includes/class-freemius.php:4538
|
224 |
+
#: includes/class-freemius.php:17984
|
225 |
+
#, php-format
|
226 |
+
msgid ""
|
227 |
+
"Unexpected API error. Please contact the %s's author with the following "
|
228 |
+
"error."
|
229 |
+
msgstr ""
|
230 |
+
"Error inesperado del API. Pónte en contacto con el autor de %s indicándole "
|
231 |
+
"el siguiente error."
|
232 |
|
233 |
+
#: includes/class-freemius.php:5156
|
234 |
+
#, php-format
|
235 |
msgid "Premium %s version was successfully activated."
|
236 |
msgstr "La versión Premium %s ha sido activada con éxito."
|
237 |
|
238 |
+
#: includes/class-freemius.php:5168 includes/class-freemius.php:7030
|
239 |
+
#, fuzzy
|
240 |
+
#| msgctxt ""
|
241 |
+
#| msgid "W00t"
|
242 |
msgctxt ""
|
243 |
+
"Used to express elation, enthusiasm, or triumph (especially in electronic "
|
244 |
+
"communication)."
|
245 |
msgid "W00t"
|
246 |
msgstr "W00t"
|
247 |
|
248 |
+
#: includes/class-freemius.php:5183
|
249 |
+
#, php-format
|
250 |
msgid "You have a %s license."
|
251 |
msgstr "Tienes una licencia %s."
|
252 |
|
253 |
+
#: includes/class-freemius.php:5187 includes/class-freemius.php:14368
|
254 |
+
#: includes/class-freemius.php:14379 includes/class-freemius.php:17208
|
255 |
+
#: includes/class-freemius.php:17522 includes/class-freemius.php:17588
|
256 |
+
#: includes/class-freemius.php:17738
|
257 |
msgctxt "interjection expressing joy or exuberance"
|
258 |
msgid "Yee-haw"
|
259 |
msgstr "Vaya"
|
260 |
|
261 |
+
#: includes/class-freemius.php:5452
|
262 |
+
#, php-format
|
263 |
+
msgid ""
|
264 |
+
"%s free trial was successfully cancelled. Since the add-on is premium only "
|
265 |
+
"it was automatically deactivated. If you like to use it in the future, "
|
266 |
+
"you'll have to purchase a license."
|
267 |
+
msgstr ""
|
268 |
+
"la prueba gratuita de %s fue cancelada con éxito. Puesto que el complemento "
|
269 |
+
"es sólo premium se desactivó automáticamente. Si quieres utilizarlo en el "
|
270 |
+
"futuro, deberás comprar una licencia."
|
271 |
|
272 |
+
#: includes/class-freemius.php:5456
|
273 |
+
#, php-format
|
274 |
+
msgid ""
|
275 |
+
"%s is a premium only add-on. You have to purchase a license first before "
|
276 |
+
"activating the plugin."
|
277 |
+
msgstr ""
|
278 |
+
"%s es un complemento único de premium. Tienes que comprar una licencia "
|
279 |
+
"primero antes de activar el plugin."
|
280 |
|
281 |
+
#: includes/class-freemius.php:5464 templates/account/partials/addon.php:288
|
282 |
+
#: templates/add-ons.php:103
|
283 |
+
#, php-format
|
284 |
msgid "More information about %s"
|
285 |
msgstr "Más información sobre %s"
|
286 |
|
287 |
+
#: includes/class-freemius.php:5465
|
288 |
msgid "Purchase License"
|
289 |
msgstr "Comprar licencia"
|
290 |
|
291 |
+
#: includes/class-freemius.php:6398 templates/connect.php:163
|
292 |
+
#, php-format
|
293 |
+
msgid ""
|
294 |
+
"You should receive an activation email for %s to your mailbox at %s. Please "
|
295 |
+
"make sure you click the activation button in that email to %s."
|
296 |
+
msgstr ""
|
297 |
+
"Recibirás un correo de activación para %s en tu buzón en %s. Por favor, "
|
298 |
+
"asegúrate de hacer clic en el botón de activación en ese correo electrónico "
|
299 |
+
"para %s."
|
300 |
|
301 |
+
#: includes/class-freemius.php:6402
|
302 |
msgid "start the trial"
|
303 |
msgstr "comenzar el período de prueba"
|
304 |
|
305 |
+
#: includes/class-freemius.php:6403 templates/connect.php:167
|
306 |
msgid "complete the install"
|
307 |
msgstr "completar la instalación"
|
308 |
|
309 |
+
#: includes/class-freemius.php:6516
|
310 |
+
#, php-format
|
311 |
msgid "You are just one step away - %s"
|
312 |
msgstr "Estás a sólo un paso - %s"
|
313 |
|
314 |
+
#: includes/class-freemius.php:6519
|
315 |
+
#, php-format
|
316 |
msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
|
317 |
msgid "Complete \"%s\" Activation Now"
|
318 |
msgstr "Completar la activación de \"%s\" ahora"
|
319 |
|
320 |
+
#: includes/class-freemius.php:6597
|
321 |
+
#, php-format
|
322 |
msgid "We made a few tweaks to the %s, %s"
|
323 |
msgstr "Hemos realizado algunas optimizaciones al %s, %s"
|
324 |
|
325 |
+
#: includes/class-freemius.php:6601
|
326 |
+
#, php-format
|
327 |
msgid "Opt in to make \"%s\" better!"
|
328 |
msgstr "¡Inscríbite para hacer \"%s\" Mejor!"
|
329 |
|
330 |
+
#: includes/class-freemius.php:7029
|
331 |
+
#, php-format
|
332 |
msgid "The upgrade of %s was successfully completed."
|
333 |
msgstr "La actualización de %s se completó con éxito."
|
334 |
|
335 |
+
#: includes/class-freemius.php:8956 includes/class-fs-plugin-updater.php:886
|
336 |
+
#: includes/class-fs-plugin-updater.php:1081
|
337 |
+
#: includes/class-fs-plugin-updater.php:1088 templates/auto-installation.php:32
|
|
|
338 |
msgid "Add-On"
|
339 |
msgstr "Complemento"
|
340 |
|
341 |
+
#: includes/class-freemius.php:8958 templates/debug.php:361
|
342 |
+
#: templates/debug.php:522
|
343 |
msgid "Plugin"
|
344 |
msgstr "Plugin"
|
345 |
|
346 |
+
#: includes/class-freemius.php:8959 templates/debug.php:361
|
347 |
+
#: templates/debug.php:522 templates/forms/deactivation/form.php:67
|
348 |
msgid "Theme"
|
349 |
msgstr "Tema"
|
350 |
|
351 |
+
#: includes/class-freemius.php:11443
|
352 |
msgid "Invalid site details collection."
|
353 |
msgstr "Colección de detalles del sitio no válida."
|
354 |
|
355 |
+
#: includes/class-freemius.php:11563
|
356 |
+
msgid ""
|
357 |
+
"We couldn't find your email address in the system, are you sure it's the "
|
358 |
+
"right address?"
|
359 |
+
msgstr ""
|
360 |
+
"No podemos encontrar tu dirección de correo electrónico en el sistema, "
|
361 |
+
"¿estás seguro de que es la dirección de correo electrónico correcta?"
|
362 |
|
363 |
+
#: includes/class-freemius.php:11565
|
364 |
+
msgid ""
|
365 |
+
"We can't see any active licenses associated with that email address, are you "
|
366 |
+
"sure it's the right address?"
|
367 |
+
msgstr ""
|
368 |
+
"No vemos ninguna licencia activa asociada a esa dirección de correo "
|
369 |
+
"electrónico, ¿estás seguro de que es la dirección de correo electrónico "
|
370 |
+
"correcta?"
|
371 |
|
372 |
+
#: includes/class-freemius.php:11839
|
373 |
msgid "Account is pending activation."
|
374 |
msgstr "La cuenta está pendiente de activación"
|
375 |
|
376 |
+
#: includes/class-freemius.php:11951
|
377 |
#: templates/forms/premium-versions-upgrade-handler.php:47
|
378 |
msgid "Buy a license now"
|
379 |
msgstr "Compra una licencia ahora"
|
380 |
|
381 |
+
#: includes/class-freemius.php:11963
|
382 |
#: templates/forms/premium-versions-upgrade-handler.php:46
|
383 |
msgid "Renew your license now"
|
384 |
msgstr "Renueva tu licencia ahora"
|
385 |
|
386 |
+
#: includes/class-freemius.php:11967
|
387 |
+
#, php-format
|
388 |
msgid "%s to access version %s security & feature updates, and support."
|
389 |
+
msgstr ""
|
390 |
+
"%s para acceder a la versión %s de actualizaciones de funciones, seguridad y "
|
391 |
+
"soporte."
|
392 |
|
393 |
+
#: includes/class-freemius.php:14350
|
394 |
+
#, php-format
|
395 |
msgid "%s activation was successfully completed."
|
396 |
msgstr "%s activación se completó con éxito."
|
397 |
|
398 |
+
#: includes/class-freemius.php:14364
|
399 |
+
#, php-format
|
400 |
msgid "Your account was successfully activated with the %s plan."
|
401 |
msgstr "Tu cuenta se ha activado correctamente con el plan %s."
|
402 |
|
403 |
+
#: includes/class-freemius.php:14375 includes/class-freemius.php:17584
|
404 |
msgid "Your trial has been successfully started."
|
405 |
msgstr "Tu versión de prueba se ha iniciado con éxito."
|
406 |
|
407 |
+
#: includes/class-freemius.php:14945 includes/class-freemius.php:14997
|
408 |
+
#: includes/class-freemius.php:15059
|
409 |
+
#, php-format
|
410 |
msgid "Couldn't activate %s."
|
411 |
msgstr "No se puede activar %s."
|
412 |
|
413 |
+
#: includes/class-freemius.php:14946 includes/class-freemius.php:14998
|
414 |
+
#: includes/class-freemius.php:15060
|
415 |
msgid "Please contact us with the following message:"
|
416 |
msgstr "Por favor contáctanos con el siguiente mensaje:"
|
417 |
|
418 |
+
#: includes/class-freemius.php:15409 includes/class-freemius.php:19870
|
419 |
msgid "Upgrade"
|
420 |
msgstr "Actualizar"
|
421 |
|
422 |
+
#: includes/class-freemius.php:15415
|
423 |
msgid "Start Trial"
|
424 |
msgstr "Comenzar el período de prueba"
|
425 |
|
426 |
+
#: includes/class-freemius.php:15417
|
427 |
msgid "Pricing"
|
428 |
msgstr "Precio"
|
429 |
|
430 |
+
#: includes/class-freemius.php:15479 includes/class-freemius.php:15481
|
431 |
msgid "Affiliation"
|
432 |
msgstr "Afiliación"
|
433 |
|
434 |
+
#: includes/class-freemius.php:15509 includes/class-freemius.php:15511
|
435 |
+
#: templates/account.php:150 templates/debug.php:326
|
436 |
msgid "Account"
|
437 |
msgstr "Cuenta"
|
438 |
|
439 |
+
#: includes/class-freemius.php:15524 includes/class-freemius.php:15526
|
440 |
#: includes/customizer/class-fs-customizer-support-section.php:60
|
441 |
msgid "Contact Us"
|
442 |
msgstr "Contáctanos"
|
443 |
|
444 |
+
#: includes/class-freemius.php:15536 includes/class-freemius.php:15538
|
445 |
+
#: includes/class-freemius.php:19880 templates/account.php:100
|
446 |
#: templates/account/partials/addon.php:41
|
447 |
msgid "Add-Ons"
|
448 |
msgstr "Complementos"
|
449 |
|
450 |
+
#: includes/class-freemius.php:15572
|
451 |
msgctxt "ASCII arrow left icon"
|
452 |
msgid "←"
|
453 |
msgstr "←"
|
454 |
|
455 |
+
#: includes/class-freemius.php:15572
|
456 |
msgctxt "ASCII arrow right icon"
|
457 |
msgid "➤"
|
458 |
msgstr "➤"
|
459 |
|
460 |
+
#: includes/class-freemius.php:15574 templates/pricing.php:97
|
461 |
msgctxt "noun"
|
462 |
msgid "Pricing"
|
463 |
msgstr "Precio"
|
464 |
|
465 |
+
#: includes/class-freemius.php:15787
|
466 |
#: includes/customizer/class-fs-customizer-support-section.php:67
|
467 |
msgid "Support Forum"
|
468 |
msgstr "Foro de soporte"
|
469 |
|
470 |
+
#: includes/class-freemius.php:16573
|
471 |
msgid "Your email has been successfully verified - you are AWESOME!"
|
472 |
msgstr "Tu email ha sido verificado correctamente - ¡Eres IMPRESIONANTE!"
|
473 |
|
474 |
+
#: includes/class-freemius.php:16574
|
475 |
msgctxt "a positive response"
|
476 |
msgid "Right on"
|
477 |
msgstr "Bien hecho"
|
478 |
|
479 |
+
#: includes/class-freemius.php:17199
|
480 |
+
#, php-format
|
481 |
msgid "Your %s Add-on plan was successfully upgraded."
|
482 |
msgstr "Tu complemento %s del plan se actualizó con éxito."
|
483 |
|
484 |
+
#: includes/class-freemius.php:17201
|
485 |
+
#, php-format
|
486 |
msgid "%s Add-on was successfully purchased."
|
487 |
msgstr "El complemento %s ha sido comprado correctamente."
|
488 |
|
489 |
+
#: includes/class-freemius.php:17204
|
490 |
msgid "Download the latest version"
|
491 |
msgstr "Descargar la última versión"
|
492 |
|
493 |
+
#: includes/class-freemius.php:17290
|
494 |
+
#, php-format
|
495 |
msgctxt "%1s - plugin title, %2s - API domain"
|
496 |
+
msgid ""
|
497 |
+
"Your server is blocking the access to Freemius' API, which is crucial for "
|
498 |
+
"%1s synchronization. Please contact your host to whitelist %2s"
|
499 |
+
msgstr ""
|
500 |
+
"Tu servidor está bloqueando el acceso a la API de Freemius, que es crucial "
|
501 |
+
"para la sincronización de licencia %1s. Por favor, ponte en contacto con tu "
|
502 |
+
"host para que lo añadan a su lista blanca %2s"
|
503 |
|
504 |
+
#: includes/class-freemius.php:17293 includes/class-freemius.php:17709
|
505 |
+
#: includes/class-freemius.php:17786
|
506 |
msgid "Error received from the server:"
|
507 |
msgstr "Error recibido del servidor:"
|
508 |
|
509 |
+
#: includes/class-freemius.php:17303
|
510 |
+
msgid ""
|
511 |
+
"It seems like one of the authentication parameters is wrong. Update your "
|
512 |
+
"Public Key, Secret Key & User ID, and try again."
|
513 |
+
msgstr ""
|
514 |
+
"Parece que uno de los parámetros de autenticación es incorrecto. Actualiza "
|
515 |
+
"tu clave pública, clave secreta e ID de usuario e inténtelo de nuevo."
|
516 |
+
|
517 |
+
#: includes/class-freemius.php:17485 includes/class-freemius.php:17714
|
518 |
+
#: includes/class-freemius.php:17757 includes/class-freemius.php:17860
|
519 |
+
#, fuzzy
|
520 |
+
#| msgctxt ""
|
521 |
+
#| msgid "Hmm"
|
522 |
msgctxt ""
|
523 |
+
"something somebody says when they are thinking about what you have just said."
|
524 |
msgid "Hmm"
|
525 |
msgstr "Hmm"
|
526 |
|
527 |
+
#: includes/class-freemius.php:17498
|
528 |
+
#, php-format
|
529 |
+
msgid ""
|
530 |
+
"It looks like you are still on the %s plan. If you did upgrade or change "
|
531 |
+
"your plan, it's probably an issue on our side - sorry."
|
532 |
+
msgstr ""
|
533 |
+
"Parece que todavía estás en el plan %s. Si actualizaste o cambiaste tu plan, "
|
534 |
+
"probablemente sea un problema de nuestra parte - lo sentimos."
|
535 |
|
536 |
+
#: includes/class-freemius.php:17499 templates/account.php:102
|
537 |
+
#: templates/account/partials/addon.php:43 templates/add-ons.php:134
|
538 |
msgctxt "trial period"
|
539 |
msgid "Trial"
|
540 |
msgstr "Período de Prueba Gratuito"
|
541 |
|
542 |
+
#: includes/class-freemius.php:17504
|
543 |
+
#, php-format
|
544 |
+
msgid ""
|
545 |
+
"I have upgraded my account but when I try to Sync the License, the plan "
|
546 |
+
"remains %s."
|
547 |
+
msgstr ""
|
548 |
+
"He actualizado mi cuenta, pero cuando intento sincronizar la licencia, el "
|
549 |
+
"plan sigue siendo %s."
|
550 |
|
551 |
+
#: includes/class-freemius.php:17508 includes/class-freemius.php:17566
|
552 |
msgid "Please contact us here"
|
553 |
msgstr "Contacta aquí con nosotros"
|
554 |
|
555 |
+
#: includes/class-freemius.php:17518
|
556 |
msgid "Your plan was successfully upgraded."
|
557 |
msgstr "Tu plan se actualizó con éxito."
|
558 |
|
559 |
+
#: includes/class-freemius.php:17536
|
560 |
+
#, php-format
|
561 |
msgid "Your plan was successfully changed to %s."
|
562 |
msgstr "Tu plan se cambió correctamente a %s."
|
563 |
|
564 |
+
#: includes/class-freemius.php:17552
|
565 |
+
#, php-format
|
566 |
+
msgid ""
|
567 |
+
"Your license has expired. You can still continue using the free %s forever."
|
568 |
+
msgstr ""
|
569 |
+
"Tu licencia ha caducado. Puedes seguir usando el plan gratuito %s para "
|
570 |
+
"siempre."
|
571 |
|
572 |
+
#: includes/class-freemius.php:17554
|
573 |
+
#, php-format
|
574 |
+
msgid ""
|
575 |
+
"Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s "
|
576 |
+
"without interruptions."
|
577 |
+
msgstr ""
|
578 |
+
"Tu licencia ha caducado. %1$sActualiza ahora %2$s para continuar usando el "
|
579 |
+
"%3$s sin interrupciones."
|
580 |
|
581 |
+
#: includes/class-freemius.php:17562
|
582 |
+
msgid ""
|
583 |
+
"Your license has been cancelled. If you think it's a mistake, please contact "
|
584 |
+
"support."
|
585 |
+
msgstr ""
|
586 |
+
"Tu licencia ha sido cancelada. Si crees que es un error, ponte en contacto "
|
587 |
+
"con el servicio de asistencia."
|
588 |
|
589 |
+
#: includes/class-freemius.php:17575
|
590 |
+
#, php-format
|
591 |
+
msgid ""
|
592 |
+
"Your license has expired. You can still continue using all the %s features, "
|
593 |
+
"but you'll need to renew your license to continue getting updates and "
|
594 |
+
"support."
|
595 |
+
msgstr ""
|
596 |
+
"Tu licencia ha caducado. Todavía puedes seguir usando todas las funciones de "
|
597 |
+
"%s, pero tendrás que renovar tu licencia para seguir recibiendo "
|
598 |
+
"actualizaciones y soporte."
|
599 |
|
600 |
+
#: includes/class-freemius.php:17598
|
601 |
+
msgid ""
|
602 |
+
"Your free trial has expired. You can still continue using all our free "
|
603 |
+
"features."
|
604 |
+
msgstr ""
|
605 |
+
"Tu período de prueba ha caducado. Todavía puedes seguir usando todas "
|
606 |
+
"nuestras funciones gratuitas."
|
607 |
|
608 |
+
#: includes/class-freemius.php:17600
|
609 |
+
#, php-format
|
610 |
+
msgid ""
|
611 |
+
"Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s "
|
612 |
+
"without interruptions."
|
613 |
+
msgstr ""
|
614 |
+
"Tu período de prueba ha caducado. %1$sActualiza ahora %2$s para continuar "
|
615 |
+
"usando el %3$s sin interrupciones."
|
616 |
|
617 |
+
#: includes/class-freemius.php:17705
|
618 |
msgid "It looks like the license could not be activated."
|
619 |
msgstr "Parece que la licencia no se pudo activar."
|
620 |
|
621 |
+
#: includes/class-freemius.php:17735
|
622 |
msgid "Your license was successfully activated."
|
623 |
msgstr "Tu licencia fue activada correctamente."
|
624 |
|
625 |
+
#: includes/class-freemius.php:17761
|
626 |
msgid "It looks like your site currently doesn't have an active license."
|
627 |
msgstr "Parece que tu sitio actualmente no tiene una licencia activa."
|
628 |
|
629 |
+
#: includes/class-freemius.php:17785
|
630 |
msgid "It looks like the license deactivation failed."
|
631 |
msgstr "Parece que la desactivación de licencia ha fallado."
|
632 |
|
633 |
+
#: includes/class-freemius.php:17813
|
634 |
+
#, php-format
|
635 |
msgid "Your license was successfully deactivated, you are back to the %s plan."
|
636 |
msgstr "Tu licencia fue desactivada correctamente, has vuelto al plan %s."
|
637 |
|
638 |
+
#: includes/class-freemius.php:17814
|
639 |
msgid "O.K"
|
640 |
msgstr "O.K"
|
641 |
|
642 |
+
#: includes/class-freemius.php:17867
|
643 |
+
msgid ""
|
644 |
+
"Seems like we are having some temporary issue with your subscription "
|
645 |
+
"cancellation. Please try again in few minutes."
|
646 |
+
msgstr ""
|
647 |
+
"Parece que estamos teniendo algún problema temporal con tu cancelación de la "
|
648 |
+
"suscripción. Vuelve a intentarlo en unos minutos."
|
649 |
|
650 |
+
#: includes/class-freemius.php:17876
|
651 |
+
#, php-format
|
652 |
+
msgid ""
|
653 |
+
"Your subscription was successfully cancelled. Your %s plan license will "
|
654 |
+
"expire in %s."
|
655 |
+
msgstr ""
|
656 |
+
"Tu suscripción ha sido cancelada correctamente. Tu %s licencia del plan "
|
657 |
+
"caducará en %s."
|
658 |
|
659 |
+
#: includes/class-freemius.php:17918
|
660 |
+
#, php-format
|
661 |
msgid "You are already running the %s in a trial mode."
|
662 |
msgstr "Estás ejecutando %s en modo de prueba."
|
663 |
|
664 |
+
#: includes/class-freemius.php:17929
|
665 |
msgid "You already utilized a trial before."
|
666 |
msgstr "Ya utilizaste un período de prueba antes."
|
667 |
|
668 |
+
#: includes/class-freemius.php:17943
|
669 |
+
#, php-format
|
670 |
msgid "Plan %s do not exist, therefore, can't start a trial."
|
671 |
+
msgstr ""
|
672 |
+
"El plan %s no existe, por lo tanto, no puedes comenzar un período de prueba."
|
673 |
|
674 |
+
#: includes/class-freemius.php:17954
|
675 |
+
#, php-format
|
676 |
msgid "Plan %s does not support a trial period."
|
677 |
msgstr "El plan %s no admite un período de prueba."
|
678 |
|
679 |
+
#: includes/class-freemius.php:17965
|
680 |
+
#, php-format
|
681 |
msgid "None of the %s's plans supports a trial period."
|
682 |
msgstr "Ninguno de los planes de %s soportan un período de prueba."
|
683 |
|
684 |
+
#: includes/class-freemius.php:18015
|
685 |
+
msgid ""
|
686 |
+
"It looks like you are not in trial mode anymore so there's nothing to "
|
687 |
+
"cancel :)"
|
688 |
+
msgstr ""
|
689 |
+
"Parece que ya no estás en modo de prueba, así que no hay nada que cancelar :)"
|
690 |
|
691 |
+
#: includes/class-freemius.php:18051
|
692 |
+
msgid ""
|
693 |
+
"Seems like we are having some temporary issue with your trial cancellation. "
|
694 |
+
"Please try again in few minutes."
|
695 |
+
msgstr ""
|
696 |
+
"Parece que estamos teniendo algún problema temporal con tu cancelación de "
|
697 |
+
"prueba. Vuelve a intentarlo en unos minutos."
|
698 |
|
699 |
+
#: includes/class-freemius.php:18070
|
700 |
+
#, php-format
|
701 |
msgid "Your %s free trial was successfully cancelled."
|
702 |
msgstr "Tu prueba gratuita de %s fue cancelada con éxito."
|
703 |
|
704 |
+
#: includes/class-freemius.php:18377
|
705 |
+
#, php-format
|
706 |
msgid "Version %s was released."
|
707 |
msgstr "La versión %s se ha lanzado."
|
708 |
|
709 |
+
#: includes/class-freemius.php:18377
|
710 |
+
#, php-format
|
711 |
msgid "Please download %s."
|
712 |
msgstr "Por favor descarga %s."
|
713 |
|
714 |
+
#: includes/class-freemius.php:18384
|
715 |
+
#, php-format
|
716 |
msgid "the latest %s version here"
|
717 |
msgstr "la última versión %s aquí"
|
718 |
|
719 |
+
#: includes/class-freemius.php:18389
|
720 |
msgid "New"
|
721 |
msgstr "Nuevo"
|
722 |
|
723 |
+
#: includes/class-freemius.php:18394
|
724 |
msgid "Seems like you got the latest release."
|
725 |
msgstr "Parece que tienes la última versión."
|
726 |
|
727 |
+
#: includes/class-freemius.php:18395
|
728 |
msgid "You are all good!"
|
729 |
msgstr "¡Está todo listo!"
|
730 |
|
731 |
+
#: includes/class-freemius.php:18663
|
732 |
+
#, php-format
|
733 |
+
msgid ""
|
734 |
+
"Verification mail was just sent to %s. If you can't find it after 5 min, "
|
735 |
+
"please check your spam box."
|
736 |
+
msgstr ""
|
737 |
+
"El correo de verificación se acaba de enviar a %s. Si no puedes encontrarlo "
|
738 |
+
"después de 5 min, comprueba tu carpeta de spam."
|
739 |
|
740 |
+
#: includes/class-freemius.php:18800
|
741 |
msgid "Site successfully opted in."
|
742 |
msgstr "Sitio dado de alta correctamente."
|
743 |
|
744 |
+
#: includes/class-freemius.php:18801 includes/class-freemius.php:19612
|
745 |
msgid "Awesome"
|
746 |
msgstr "Increíble"
|
747 |
|
748 |
+
#: includes/class-freemius.php:18817 templates/forms/optout.php:32
|
749 |
+
#, php-format
|
750 |
+
msgid ""
|
751 |
+
"We appreciate your help in making the %s better by letting us track some "
|
752 |
+
"usage data."
|
753 |
+
msgstr ""
|
754 |
+
"Agradecemos tu ayuda para mejorar %s y por permitirnos rastrear algunos "
|
755 |
+
"datos de uso."
|
756 |
|
757 |
+
#: includes/class-freemius.php:18818
|
758 |
msgid "Thank you!"
|
759 |
msgstr "¡Gracias!"
|
760 |
|
761 |
+
#: includes/class-freemius.php:18825
|
762 |
+
#, php-format
|
763 |
msgid "We will no longer be sending any usage data of %s on %s to %s."
|
764 |
msgstr "No continuaremos enviando datos de uso de %s en %s a %s."
|
765 |
|
766 |
+
#: includes/class-freemius.php:18954
|
767 |
+
#, php-format
|
768 |
+
msgid ""
|
769 |
+
"Please check your mailbox, you should receive an email via %s to confirm the "
|
770 |
+
"ownership change. From security reasons, you must confirm the change within "
|
771 |
+
"the next 15 min. If you cannot find the email, please check your spam folder."
|
772 |
+
msgstr ""
|
773 |
+
"Comprueba tu buzón de correo, debes recibir un correo electrónico a través "
|
774 |
+
"de %s para confirmar el cambio de propiedad. Por razones de seguridad, debes "
|
775 |
+
"confirmar el cambio dentro de los próximos 15 min. Si no puedes encontrar el "
|
776 |
+
"correo electrónico, comprueba tu carpeta de correo no deseado."
|
777 |
|
778 |
+
#: includes/class-freemius.php:18960
|
779 |
+
#, php-format
|
780 |
+
msgid ""
|
781 |
+
"Thanks for confirming the ownership change. An email was just sent to %s for "
|
782 |
+
"final approval."
|
783 |
+
msgstr ""
|
784 |
+
"Gracias por confirmar el cambio de propiedad. Se envió un correo electrónico "
|
785 |
+
"a %s para su aprobación final."
|
786 |
|
787 |
+
#: includes/class-freemius.php:18965
|
788 |
+
#, php-format
|
789 |
msgid "%s is the new owner of the account."
|
790 |
msgstr "%s es el nuevo dueño de la cuenta."
|
791 |
|
792 |
+
#: includes/class-freemius.php:18967
|
793 |
msgctxt "as congratulations"
|
794 |
msgid "Congrats"
|
795 |
msgstr "Felicidades"
|
796 |
|
797 |
+
#: includes/class-freemius.php:18987
|
798 |
+
msgid ""
|
799 |
+
"Sorry, we could not complete the email update. Another user with the same "
|
800 |
+
"email is already registered."
|
801 |
+
msgstr ""
|
802 |
+
"Lo sentimos, no podemos completar la actualización de correo electrónico. Ya "
|
803 |
+
"hay registrado otro usuario con esa dirección de correo electrónico."
|
804 |
|
805 |
+
#: includes/class-freemius.php:18988
|
806 |
+
#, php-format
|
807 |
+
msgid ""
|
808 |
+
"If you would like to give up the ownership of the %s's account to %s click "
|
809 |
+
"the Change Ownership button."
|
810 |
+
msgstr ""
|
811 |
+
"Si deseas renunciar a la titularidad de la cuenta de %s a %s haz clic en el "
|
812 |
+
"botón de cambio de titularidad."
|
813 |
|
814 |
+
#: includes/class-freemius.php:18995
|
815 |
msgid "Change Ownership"
|
816 |
msgstr "Cambiar propietario"
|
817 |
|
818 |
+
#: includes/class-freemius.php:19003
|
819 |
+
msgid ""
|
820 |
+
"Your email was successfully updated. You should receive an email with "
|
821 |
+
"confirmation instructions in few moments."
|
822 |
+
msgstr ""
|
823 |
+
"Se actualizó correctamente tu correo electrónico. Recibirás un correo "
|
824 |
+
"electrónico con las instrucciones de confirmación en unos momentos."
|
825 |
|
826 |
+
#: includes/class-freemius.php:19015
|
827 |
msgid "Please provide your full name."
|
828 |
msgstr "Por favor, dinos tu nombre completo."
|
829 |
|
830 |
+
#: includes/class-freemius.php:19020
|
831 |
msgid "Your name was successfully updated."
|
832 |
msgstr "Tu nombre fue actualizado correctamente."
|
833 |
|
834 |
+
#: includes/class-freemius.php:19081
|
835 |
+
#, php-format
|
836 |
msgid "You have successfully updated your %s."
|
837 |
msgstr "Has actualizado correctamente tu %s."
|
838 |
|
839 |
+
#: includes/class-freemius.php:19221
|
840 |
+
#, php-format
|
841 |
+
msgid ""
|
842 |
+
"Just letting you know that the add-ons information of %s is being pulled "
|
843 |
+
"from an external server."
|
844 |
+
msgstr ""
|
845 |
+
"Sólo déjanos informarte que la información de complementos de %s se está "
|
846 |
+
"extrayendo de un servidor externo."
|
847 |
|
848 |
+
#: includes/class-freemius.php:19222
|
849 |
msgctxt "advance notice of something that will need attention."
|
850 |
msgid "Heads up"
|
851 |
msgstr "Atención"
|
852 |
|
853 |
+
#: includes/class-freemius.php:19652
|
854 |
msgctxt "exclamation"
|
855 |
msgid "Hey"
|
856 |
msgstr "Hey"
|
857 |
|
858 |
+
#: includes/class-freemius.php:19652
|
859 |
+
#, php-format
|
860 |
+
msgid ""
|
861 |
+
"How do you like %s so far? Test all our %s premium features with a %d-day "
|
862 |
+
"free trial."
|
863 |
+
msgstr ""
|
864 |
+
"¿Qué te pareció %s hasta ahora? Prueba todas nuestras funciones premium de "
|
865 |
+
"%s con una prueba gratuita de % d-días."
|
866 |
|
867 |
+
#: includes/class-freemius.php:19660
|
868 |
+
#, php-format
|
869 |
msgid "No commitment for %s days - cancel anytime!"
|
870 |
msgstr "Sin compromiso por %s días - ¡cancelar en cualquier momento!"
|
871 |
|
872 |
+
#: includes/class-freemius.php:19661
|
873 |
msgid "No credit card required"
|
874 |
msgstr "No se necesita tarjeta de crédito"
|
875 |
|
876 |
+
#: includes/class-freemius.php:19668 templates/forms/trial-start.php:53
|
877 |
msgctxt "call to action"
|
878 |
msgid "Start free trial"
|
879 |
msgstr "Comenzar el período de prueba gratuito"
|
880 |
|
881 |
+
#: includes/class-freemius.php:19745
|
882 |
+
#, php-format
|
883 |
+
msgid ""
|
884 |
+
"Hey there, did you know that %s has an affiliate program? If you like the %s "
|
885 |
+
"you can become our ambassador and earn some cash!"
|
886 |
+
msgstr ""
|
887 |
+
"Hey, ¿sabías que %s tiene un programa de afiliados? ¡Si te gusta %s puedes "
|
888 |
+
"convertirte en nuestro embajador y ganar dinero!"
|
889 |
|
890 |
+
#: includes/class-freemius.php:19754
|
891 |
msgid "Learn more"
|
892 |
msgstr "Saber más"
|
893 |
|
894 |
+
#: includes/class-freemius.php:19904 templates/account.php:406
|
895 |
+
#: templates/account.php:509 templates/account/partials/addon.php:235
|
896 |
+
#: templates/connect.php:171 templates/connect.php:421
|
897 |
+
#: templates/forms/license-activation.php:24
|
898 |
msgid "Activate License"
|
899 |
msgstr "Activar licencia"
|
900 |
|
901 |
+
#: includes/class-freemius.php:19905 templates/account.php:469
|
902 |
+
#: templates/account.php:508 templates/account/partials/site.php:256
|
903 |
msgid "Change License"
|
904 |
msgstr "Cambiar licencia"
|
905 |
|
906 |
+
#: includes/class-freemius.php:19987 templates/account/partials/site.php:161
|
907 |
msgid "Opt Out"
|
908 |
msgstr "Darse de baja"
|
909 |
|
910 |
+
#: includes/class-freemius.php:19989 includes/class-freemius.php:19994
|
911 |
+
#: templates/account/partials/site.php:43
|
912 |
#: templates/account/partials/site.php:161
|
913 |
msgid "Opt In"
|
914 |
msgstr "Inscribirse"
|
915 |
|
916 |
+
#: includes/class-freemius.php:20218
|
917 |
+
#, php-format
|
918 |
+
msgid ""
|
919 |
+
" The paid version of %1s is already installed. Please activate it to start "
|
920 |
+
"benefiting the %2s features. %3s"
|
921 |
+
msgstr ""
|
922 |
+
"La versión de pago de %1s ya está instalada. Actívala para comenzar a "
|
923 |
+
"beneficiarte de las funciones de %2s. %3s"
|
924 |
|
925 |
+
#: includes/class-freemius.php:20226
|
926 |
+
#, php-format
|
927 |
msgid "Activate %s features"
|
928 |
msgstr "Activar características %s"
|
929 |
|
930 |
+
#: includes/class-freemius.php:20239
|
931 |
msgid "Please follow these steps to complete the upgrade"
|
932 |
msgstr "Por favor, sigue estos pasos para completar la actualización"
|
933 |
|
934 |
+
#: includes/class-freemius.php:20243
|
935 |
+
#, php-format
|
936 |
msgid "Download the latest %s version"
|
937 |
msgstr "Descargar la última versión %s"
|
938 |
|
939 |
+
#: includes/class-freemius.php:20247
|
940 |
msgid "Upload and activate the downloaded version"
|
941 |
msgstr "Cargar y activar la versión descargada"
|
942 |
|
943 |
+
#: includes/class-freemius.php:20249
|
944 |
msgid "How to upload and activate?"
|
945 |
msgstr "¿Cómo subirlo y activarlo?"
|
946 |
|
947 |
+
#: includes/class-freemius.php:20383
|
948 |
+
#, php-format
|
949 |
+
msgid ""
|
950 |
+
"%sClick here%s to choose the sites where you'd like to activate the license "
|
951 |
+
"on."
|
952 |
+
msgstr ""
|
953 |
+
"%sClick aquí %s para elegir los sitios sobre los que te gustaría activar la "
|
954 |
+
"licencia."
|
955 |
|
956 |
+
#: includes/class-freemius.php:20544
|
957 |
msgid "Auto installation only works for opted-in users."
|
958 |
msgstr "La instalación automática sólo funciona para usuarios que aceptaron."
|
959 |
|
960 |
+
#: includes/class-freemius.php:20554 includes/class-freemius.php:20587
|
961 |
+
#: includes/class-fs-plugin-updater.php:1060
|
962 |
#: includes/class-fs-plugin-updater.php:1074
|
963 |
msgid "Invalid module ID."
|
964 |
msgstr "Id de módulo no válido."
|
965 |
|
966 |
+
#: includes/class-freemius.php:20563 includes/class-fs-plugin-updater.php:1096
|
967 |
msgid "Premium version already active."
|
968 |
msgstr "Versión premium ya activa."
|
969 |
|
970 |
+
#: includes/class-freemius.php:20570
|
971 |
msgid "You do not have a valid license to access the premium version."
|
972 |
msgstr "No tienes una licencia válida para acceder a la versión premium."
|
973 |
|
974 |
+
#: includes/class-freemius.php:20577
|
975 |
+
msgid ""
|
976 |
+
"Plugin is a \"Serviceware\" which means it does not have a premium code "
|
977 |
+
"version."
|
978 |
+
msgstr ""
|
979 |
+
"El plugin es un \"Serviceware\" lo que significa que no tiene una versión de "
|
980 |
+
"código premium."
|
981 |
|
982 |
+
#: includes/class-freemius.php:20595 includes/class-fs-plugin-updater.php:1095
|
983 |
msgid "Premium add-on version already installed."
|
984 |
msgstr "Versión del complemento premium ya instalada."
|
985 |
|
986 |
+
#: includes/class-freemius.php:20940
|
987 |
msgid "View paid features"
|
988 |
msgstr "Ver las funciones de pago"
|
989 |
|
990 |
+
#: includes/class-freemius.php:21260
|
991 |
+
#, php-format
|
992 |
msgid "Thank you so much for using %s and its add-ons!"
|
993 |
msgstr "¡Muchas gracias por utilizar %s y sus complementos!"
|
994 |
|
995 |
+
#: includes/class-freemius.php:21261
|
996 |
+
#, php-format
|
997 |
msgid "Thank you so much for using %s!"
|
998 |
msgstr "¡Muchas gracias por utilizar %s!"
|
999 |
|
1000 |
+
#: includes/class-freemius.php:21267
|
1001 |
+
#, php-format
|
1002 |
+
msgid ""
|
1003 |
+
"You've already opted-in to our usage-tracking, which helps us keep improving "
|
1004 |
+
"the %s."
|
1005 |
+
msgstr ""
|
1006 |
+
"Ya has optado por nuestro seguimiento de uso, lo que nos ayuda a seguir "
|
1007 |
+
"mejorando %s."
|
1008 |
|
1009 |
+
#: includes/class-freemius.php:21271
|
1010 |
msgid "Thank you so much for using our products!"
|
1011 |
msgstr "¡Muchas gracias por utilizar nuestros productos!"
|
1012 |
|
1013 |
+
#: includes/class-freemius.php:21272
|
1014 |
+
msgid ""
|
1015 |
+
"You've already opted-in to our usage-tracking, which helps us keep improving "
|
1016 |
+
"them."
|
1017 |
+
msgstr ""
|
1018 |
+
"Ya has optado por nuestro seguimiento de uso, lo que nos ayuda a seguir "
|
1019 |
+
"mejorando."
|
1020 |
|
1021 |
+
#: includes/class-freemius.php:21291
|
1022 |
+
#, php-format
|
1023 |
msgid "%s and its add-ons"
|
1024 |
msgstr "%s y sus complementos"
|
1025 |
|
1026 |
+
#: includes/class-freemius.php:21300
|
1027 |
msgid "Products"
|
1028 |
msgstr "Productos"
|
1029 |
|
1030 |
+
#: includes/class-freemius.php:21307 templates/connect.php:272
|
1031 |
msgid "Yes"
|
1032 |
msgstr "Si"
|
1033 |
|
1034 |
+
#: includes/class-freemius.php:21308 templates/connect.php:273
|
1035 |
msgid "send me security & feature updates, educational content and offers."
|
1036 |
+
msgstr ""
|
1037 |
+
"envíame actualizaciones de seguridad y nuevas funcionalidades, contenido "
|
1038 |
+
"educativo y ofertas."
|
1039 |
|
1040 |
+
#: includes/class-freemius.php:21309 templates/connect.php:278
|
1041 |
msgid "No"
|
1042 |
msgstr "No"
|
1043 |
|
1044 |
+
#: includes/class-freemius.php:21311 templates/connect.php:280
|
1045 |
+
#, php-format
|
1046 |
+
msgid ""
|
1047 |
+
"do %sNOT%s send me security & feature updates, educational content and "
|
1048 |
+
"offers."
|
1049 |
+
msgstr ""
|
1050 |
+
"%sNO%s me envíes actualizaciones de seguridad y nuevas funcionalidades, "
|
1051 |
+
"contenido educativo y ofertas."
|
1052 |
|
1053 |
+
#: includes/class-freemius.php:21321
|
1054 |
+
#, php-format
|
1055 |
+
msgid ""
|
1056 |
+
"Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance "
|
1057 |
+
"requirements it is required that you provide your explicit consent, again, "
|
1058 |
+
"confirming that you are onboard 🙂"
|
1059 |
+
msgstr ""
|
1060 |
+
"Debido a la nueva %s Regulación General de Protección de Datos de la UE "
|
1061 |
+
"(GDPR)%s los requisitos de conformidad nos requieren que nos debes dar tu "
|
1062 |
+
"consentimiento explícito, de nuevo, confirmando que estás de acuerdo 🙂"
|
1063 |
|
1064 |
+
#: includes/class-freemius.php:21323 templates/connect.php:287
|
1065 |
+
msgid ""
|
1066 |
+
"Please let us know if you'd like us to contact you for security & feature "
|
1067 |
+
"updates, educational content, and occasional offers:"
|
1068 |
+
msgstr ""
|
1069 |
+
"Indica si deseas que te contactemos para actualizaciones de seguridad y "
|
1070 |
+
"nuevas funciones, contenido educativo y ofertas ocasionales:"
|
1071 |
|
1072 |
+
#: includes/class-freemius.php:21605
|
1073 |
msgid "License key is empty."
|
1074 |
msgstr "La clave de licencia está vacía."
|
1075 |
|
1076 |
+
#: includes/class-fs-plugin-updater.php:184
|
1077 |
#: templates/forms/premium-versions-upgrade-handler.php:57
|
1078 |
msgid "Renew license"
|
1079 |
msgstr "Renovar la licencia"
|
1080 |
|
1081 |
+
#: includes/class-fs-plugin-updater.php:189
|
1082 |
#: templates/forms/premium-versions-upgrade-handler.php:58
|
1083 |
msgid "Buy license"
|
1084 |
msgstr "Comprar licencia"
|
1085 |
|
1086 |
#: includes/class-fs-plugin-updater.php:278
|
1087 |
+
#, php-format
|
1088 |
msgid "There is a %s of %s available."
|
1089 |
msgstr "Hay una %s de %s disponible."
|
1090 |
|
1097 |
msgstr "Aviso importante de actualización:"
|
1098 |
|
1099 |
#: includes/class-fs-plugin-updater.php:1125
|
1100 |
+
#, php-format
|
1101 |
msgid "Installing plugin: %s"
|
1102 |
msgstr "Instalando plugin: %s"
|
1103 |
|
1104 |
#: includes/class-fs-plugin-updater.php:1166
|
1105 |
msgid "Unable to connect to the filesystem. Please confirm your credentials."
|
1106 |
+
msgstr ""
|
1107 |
+
"No es posible conectarse al sistema de archivos. Por favor, confirma tus "
|
1108 |
+
"credenciales."
|
1109 |
|
1110 |
#: includes/class-fs-plugin-updater.php:1348
|
1111 |
+
msgid ""
|
1112 |
+
"The remote plugin package does not contain a folder with the desired slug "
|
1113 |
+
"and renaming did not work."
|
1114 |
+
msgstr ""
|
1115 |
+
"El paquete de plugin remoto no contiene una carpeta con el Slug deseado y el "
|
1116 |
+
"cambio de nombre no funcionó."
|
1117 |
+
|
1118 |
+
#: includes/customizer/class-fs-customizer-support-section.php:55
|
1119 |
+
#: templates/plugin-info/features.php:43
|
1120 |
+
msgid "Support"
|
1121 |
+
msgstr "Soporte"
|
1122 |
+
|
1123 |
+
#: includes/customizer/class-fs-customizer-upsell-control.php:106
|
1124 |
+
#: templates/account.php:105 templates/account/partials/addon.php:46
|
1125 |
+
#: templates/debug.php:373
|
1126 |
+
msgctxt "as product pricing plan"
|
1127 |
+
msgid "Plan"
|
1128 |
+
msgstr "Plan"
|
1129 |
+
|
1130 |
+
#: includes/debug/class-fs-debug-bar-panel.php:48
|
1131 |
+
#: templates/debug/api-calls.php:54 templates/debug/logger.php:62
|
1132 |
+
msgctxt "milliseconds"
|
1133 |
+
msgid "ms"
|
1134 |
+
msgstr "ms"
|
1135 |
+
|
1136 |
+
#: includes/debug/debug-bar-start.php:41
|
1137 |
+
msgid "Freemius API"
|
1138 |
+
msgstr "API Freemius"
|
1139 |
+
|
1140 |
+
#: includes/debug/debug-bar-start.php:42
|
1141 |
+
msgid "Requests"
|
1142 |
+
msgstr "Peticiones"
|
1143 |
|
1144 |
+
#: includes/fs-plugin-info-dialog.php:369
|
1145 |
#: templates/account/partials/addon.php:292
|
1146 |
msgctxt "verb"
|
1147 |
msgid "Purchase"
|
1148 |
msgstr "Comprar"
|
1149 |
|
1150 |
#: includes/fs-plugin-info-dialog.php:372
|
1151 |
+
#, php-format
|
1152 |
msgid "Start my free %s"
|
1153 |
msgstr "Comenzar mi período gratuito de %s"
|
1154 |
|
1156 |
msgid "Install Free Version Now"
|
1157 |
msgstr "Instalar la versión gratuita ahora"
|
1158 |
|
1159 |
+
#: includes/fs-plugin-info-dialog.php:414
|
1160 |
+
#: templates/account/partials/addon.php:272
|
1161 |
+
#: templates/account/partials/addon.php:322 templates/auto-installation.php:111
|
1162 |
msgid "Install Now"
|
1163 |
msgstr "Instalar ahora"
|
1164 |
|
1167 |
msgid "Download Latest Free Version"
|
1168 |
msgstr "Descargar la última versión gratuita"
|
1169 |
|
1170 |
+
#: includes/fs-plugin-info-dialog.php:426 templates/account.php:80
|
1171 |
#: templates/account/partials/addon.php:21
|
1172 |
msgctxt "as download latest version"
|
1173 |
msgid "Download Latest"
|
1177 |
msgid "Install Free Version Update Now"
|
1178 |
msgstr "Instalar la actualización gratuita ahora"
|
1179 |
|
1180 |
+
#: includes/fs-plugin-info-dialog.php:437 templates/account.php:460
|
1181 |
msgid "Install Update Now"
|
1182 |
msgstr "Instalar actualización ahora"
|
1183 |
|
1184 |
#: includes/fs-plugin-info-dialog.php:448
|
1185 |
+
#, php-format
|
1186 |
msgid "Newer Free Version (%s) Installed"
|
1187 |
msgstr "Versión gratuita más reciente (%s) instalada"
|
1188 |
|
1189 |
#: includes/fs-plugin-info-dialog.php:449
|
1190 |
+
#, php-format
|
1191 |
msgid "Newer Version (%s) Installed"
|
1192 |
msgstr "Versión más reciente (%s) instalada"
|
1193 |
|
1214 |
msgid "FAQ"
|
1215 |
msgstr "FAQ"
|
1216 |
|
1217 |
+
#: includes/fs-plugin-info-dialog.php:616
|
1218 |
#: templates/plugin-info/description.php:55
|
1219 |
msgid "Screenshots"
|
1220 |
msgstr "Capturas de pantalla"
|
1244 |
msgstr "Instalar plugin"
|
1245 |
|
1246 |
#: includes/fs-plugin-info-dialog.php:716
|
1247 |
+
#, php-format
|
1248 |
msgctxt "e.g. Professional Plan"
|
1249 |
msgid "%s Plan"
|
1250 |
msgstr "Plan %s"
|
1254 |
msgid "Best"
|
1255 |
msgstr "El mejor"
|
1256 |
|
1257 |
+
#: includes/fs-plugin-info-dialog.php:748
|
1258 |
#: includes/fs-plugin-info-dialog.php:768
|
1259 |
msgctxt "as every month"
|
1260 |
msgid "Monthly"
|
1269 |
msgid "Lifetime"
|
1270 |
msgstr "Permanente"
|
1271 |
|
1272 |
+
#: includes/fs-plugin-info-dialog.php:768
|
1273 |
+
#: includes/fs-plugin-info-dialog.php:770
|
1274 |
#: includes/fs-plugin-info-dialog.php:772
|
1275 |
+
#, php-format
|
1276 |
msgctxt "e.g. billed monthly"
|
1277 |
msgid "Billed %s"
|
1278 |
msgstr "Facturado %s"
|
1296 |
msgstr "Licencias ilimitadas"
|
1297 |
|
1298 |
#: includes/fs-plugin-info-dialog.php:782
|
1299 |
+
#, php-format
|
1300 |
msgid "Up to %s Sites"
|
1301 |
msgstr "Hasta %s sitios"
|
1302 |
|
1303 |
+
#: includes/fs-plugin-info-dialog.php:792 templates/plugin-info/features.php:82
|
|
|
1304 |
msgctxt "as monthly period"
|
1305 |
msgid "mo"
|
1306 |
msgstr "me"
|
1307 |
|
1308 |
+
#: includes/fs-plugin-info-dialog.php:799 templates/plugin-info/features.php:80
|
|
|
1309 |
msgctxt "as annual period"
|
1310 |
msgid "year"
|
1311 |
msgstr "año"
|
1316 |
msgstr "Precio"
|
1317 |
|
1318 |
#: includes/fs-plugin-info-dialog.php:901
|
1319 |
+
#, php-format
|
1320 |
msgid "Save %s"
|
1321 |
msgstr "Guardar %s"
|
1322 |
|
1323 |
#: includes/fs-plugin-info-dialog.php:911
|
1324 |
+
#, php-format
|
1325 |
msgid "No commitment for %s - cancel anytime"
|
1326 |
msgstr "Sin compromiso para %s - cancelar en cualquier momento"
|
1327 |
|
1328 |
#: includes/fs-plugin-info-dialog.php:914
|
1329 |
+
#, php-format
|
1330 |
msgid "After your free %s, pay as little as %s"
|
1331 |
msgstr "Después de su período gratuito %s, pague sólo %s"
|
1332 |
|
1334 |
msgid "Details"
|
1335 |
msgstr "Detalles"
|
1336 |
|
1337 |
+
#: includes/fs-plugin-info-dialog.php:929 templates/account.php:91
|
1338 |
+
#: templates/account/partials/addon.php:32 templates/debug.php:203
|
1339 |
+
#: templates/debug.php:240 templates/debug.php:454
|
1340 |
msgctxt "product version"
|
1341 |
msgid "Version"
|
1342 |
msgstr "Versión"
|
1350 |
msgid "Last Updated"
|
1351 |
msgstr "Última actualización"
|
1352 |
|
1353 |
+
#: includes/fs-plugin-info-dialog.php:948 templates/account.php:376
|
1354 |
+
#, php-format
|
1355 |
msgctxt "x-ago"
|
1356 |
msgid "%s ago"
|
1357 |
msgstr "hace %s"
|
1361 |
msgstr "Necesita la versión de WordPress"
|
1362 |
|
1363 |
#: includes/fs-plugin-info-dialog.php:958
|
1364 |
+
#, php-format
|
1365 |
msgid "%s or higher"
|
1366 |
msgstr "%s o mayor"
|
1367 |
|
1374 |
msgstr "Descargado"
|
1375 |
|
1376 |
#: includes/fs-plugin-info-dialog.php:977
|
1377 |
+
#, fuzzy, php-format
|
1378 |
+
#| msgid "%s time"
|
1379 |
msgid "%s time"
|
1380 |
msgstr "% vez"
|
1381 |
|
1382 |
#: includes/fs-plugin-info-dialog.php:979
|
1383 |
+
#, php-format
|
1384 |
msgid "%s times"
|
1385 |
msgstr "%s veces"
|
1386 |
|
1392 |
msgid "Plugin Homepage"
|
1393 |
msgstr "Página web del plugin"
|
1394 |
|
1395 |
+
#: includes/fs-plugin-info-dialog.php:1005
|
1396 |
#: includes/fs-plugin-info-dialog.php:1087
|
1397 |
msgid "Donate to this plugin"
|
1398 |
msgstr "Donar a este plugin"
|
1402 |
msgstr "Calificación media"
|
1403 |
|
1404 |
#: includes/fs-plugin-info-dialog.php:1019
|
1405 |
+
#, php-format
|
1406 |
msgid "based on %s"
|
1407 |
msgstr "basado en %s"
|
1408 |
|
1409 |
#: includes/fs-plugin-info-dialog.php:1023
|
1410 |
+
#, php-format
|
1411 |
msgid "%s rating"
|
1412 |
msgstr "%s calificación"
|
1413 |
|
1414 |
#: includes/fs-plugin-info-dialog.php:1025
|
1415 |
+
#, php-format
|
1416 |
msgid "%s ratings"
|
1417 |
msgstr "%s calificaciones"
|
1418 |
|
1419 |
#: includes/fs-plugin-info-dialog.php:1040
|
1420 |
+
#, php-format
|
1421 |
msgid "%s star"
|
1422 |
msgstr "%s estrella"
|
1423 |
|
1424 |
#: includes/fs-plugin-info-dialog.php:1042
|
1425 |
+
#, php-format
|
1426 |
msgid "%s stars"
|
1427 |
msgstr "%s estrellas"
|
1428 |
|
1429 |
#: includes/fs-plugin-info-dialog.php:1053
|
1430 |
+
#, php-format
|
1431 |
msgid "Click to see reviews that provided a rating of %s"
|
1432 |
msgstr "Haz clic para ver los comentarios con una valoración de %s"
|
1433 |
|
1435 |
msgid "Contributors"
|
1436 |
msgstr "Colaboradores"
|
1437 |
|
1438 |
+
#: includes/fs-plugin-info-dialog.php:1095
|
1439 |
#: includes/fs-plugin-info-dialog.php:1097
|
1440 |
msgid "Warning"
|
1441 |
msgstr "Atencion"
|
1445 |
msgstr "Este plugin no ha sido probado con tu versión actual de WordPress."
|
1446 |
|
1447 |
#: includes/fs-plugin-info-dialog.php:1097
|
1448 |
+
msgid ""
|
1449 |
+
"This plugin has not been marked as compatible with your version of WordPress."
|
1450 |
+
msgstr ""
|
1451 |
+
"Este puglin no ha sido marcado como compatible con tu versión de WordPress."
|
1452 |
|
1453 |
#: includes/fs-plugin-info-dialog.php:1116
|
1454 |
msgid "Paid add-on must be deployed to Freemius."
|
1458 |
msgid "Add-on must be deployed to WordPress.org or Freemius."
|
1459 |
msgstr "El complemento debe implementarse en WordPress.org o en Freemius."
|
1460 |
|
1461 |
+
#: templates/account.php:81 templates/account/partials/addon.php:22
|
|
|
1462 |
#: templates/account/partials/site.php:295
|
1463 |
+
#: templates/forms/subscription-cancellation.php:96
|
1464 |
msgid "Downgrading your plan"
|
1465 |
msgstr "Bajando tu plan"
|
1466 |
|
1467 |
+
#: templates/account.php:82 templates/account/partials/addon.php:23
|
|
|
1468 |
#: templates/account/partials/site.php:296
|
1469 |
+
#: templates/forms/subscription-cancellation.php:97
|
1470 |
msgid "Cancelling the subscription"
|
1471 |
msgstr "Cancelando la suscripción"
|
1472 |
|
1473 |
+
#: templates/account.php:84 templates/account/partials/addon.php:25
|
|
|
|
|
|
|
1474 |
#: templates/account/partials/site.php:298
|
1475 |
+
#: templates/forms/subscription-cancellation.php:99
|
1476 |
+
#, php-format
|
1477 |
+
msgid ""
|
1478 |
+
"%1s will immediately stop all future recurring payments and your %s plan "
|
1479 |
+
"license will expire in %s."
|
1480 |
+
msgstr ""
|
1481 |
+
"%1s detendrá inmediatamente todos los pagos recurrentes futuros y tu %s "
|
1482 |
+
"licencia del plan caducará en %s."
|
1483 |
|
1484 |
+
#: templates/account.php:85 templates/account/partials/addon.php:26
|
|
|
1485 |
#: templates/account/partials/site.php:299
|
1486 |
+
#: templates/forms/subscription-cancellation.php:100
|
1487 |
+
msgid ""
|
1488 |
+
"Please note that we will not be able to grandfather outdated pricing for "
|
1489 |
+
"renewals/new subscriptions after a cancellation. If you choose to renew the "
|
1490 |
+
"subscription manually in the future, after a price increase, which typically "
|
1491 |
+
"occurs once a year, you will be charged the updated price."
|
1492 |
+
msgstr ""
|
1493 |
+
"Ten en cuenta que no podremos abaratar los precios desactualizados para "
|
1494 |
+
"renovaciones/nuevas suscripciones después de una cancelación. Si eliges "
|
1495 |
+
"renovar la suscripción manualmente en el futuro, después de un aumento de "
|
1496 |
+
"precio, que generalmente ocurre una vez al año, se te cobrará el precio "
|
1497 |
+
"actualizado."
|
1498 |
+
|
1499 |
+
#: templates/account.php:86 templates/account/partials/addon.php:27
|
1500 |
+
#: templates/forms/subscription-cancellation.php:106
|
1501 |
+
msgid ""
|
1502 |
+
"Cancelling the trial will immediately block access to all premium features. "
|
1503 |
+
"Are you sure?"
|
1504 |
+
msgstr ""
|
1505 |
+
"La cancelación del período de prueba bloqueará inmediatamente el acceso a "
|
1506 |
+
"todas las funciones premium. ¿Estás seguro?"
|
1507 |
|
1508 |
+
#: templates/account.php:87 templates/account/partials/addon.php:28
|
|
|
1509 |
#: templates/account/partials/site.php:300
|
1510 |
+
#: templates/forms/subscription-cancellation.php:101
|
1511 |
+
#, php-format
|
1512 |
+
msgid ""
|
1513 |
+
"You can still enjoy all %s features but you will not have access to %s "
|
1514 |
+
"security & feature updates, nor support."
|
1515 |
+
msgstr ""
|
1516 |
+
"Todavía puedes disfrutar de todas las funciones de %s pero no tendrás acceso "
|
1517 |
+
"a soporte y actualizaciones de %s."
|
1518 |
|
1519 |
+
#: templates/account.php:88 templates/account/partials/addon.php:29
|
|
|
1520 |
#: templates/account/partials/site.php:301
|
1521 |
+
#: templates/forms/subscription-cancellation.php:102
|
1522 |
+
#, php-format
|
1523 |
+
msgid ""
|
1524 |
+
"Once your license expires you can still use the Free version but you will "
|
1525 |
+
"NOT have access to the %s features."
|
1526 |
+
msgstr ""
|
1527 |
+
"Una vez que caduque tu licencia todavía puedes utilizar la versión gratuita "
|
1528 |
+
"pero NO tendrás acceso a las funciones de %s."
|
1529 |
|
1530 |
+
#: templates/account.php:90
|
1531 |
+
#: templates/account/partials/activate-license-button.php:31
|
|
|
1532 |
#: templates/account/partials/addon.php:31
|
1533 |
+
#, php-format
|
1534 |
msgid "Activate %s Plan"
|
1535 |
msgstr "Activar plan %s"
|
1536 |
|
1537 |
+
#: templates/account.php:93 templates/account/partials/addon.php:34
|
|
|
1538 |
#: templates/account/partials/site.php:275
|
1539 |
+
#, php-format
|
1540 |
msgid "Auto renews in %s"
|
1541 |
msgstr "Auto renovaciones en %s"
|
1542 |
|
1543 |
+
#: templates/account.php:95 templates/account/partials/addon.php:36
|
|
|
1544 |
#: templates/account/partials/site.php:277
|
1545 |
+
#, php-format
|
1546 |
msgid "Expires in %s"
|
1547 |
msgstr "Caduca en %s"
|
1548 |
|
1549 |
+
#: templates/account.php:96 templates/account/partials/addon.php:37
|
1550 |
msgctxt "as synchronize license"
|
1551 |
msgid "Sync License"
|
1552 |
msgstr "Sincronizar licencia"
|
1553 |
|
1554 |
+
#: templates/account.php:97 templates/account/partials/addon.php:38
|
1555 |
msgid "Cancel Trial"
|
1556 |
msgstr "Cancelar período de prueba"
|
1557 |
|
1558 |
+
#: templates/account.php:98 templates/account/partials/addon.php:39
|
1559 |
msgid "Change Plan"
|
1560 |
msgstr "Cambiar Plan"
|
1561 |
|
1562 |
+
#: templates/account.php:99 templates/account/partials/addon.php:40
|
1563 |
msgctxt "verb"
|
1564 |
msgid "Upgrade"
|
1565 |
msgstr "Actualizar"
|
1566 |
|
1567 |
+
#: templates/account.php:101 templates/account/partials/addon.php:42
|
1568 |
#: templates/account/partials/site.php:302
|
1569 |
msgctxt "verb"
|
1570 |
msgid "Downgrade"
|
1571 |
msgstr "Degradar"
|
1572 |
|
1573 |
+
#: templates/account.php:103 templates/account/partials/addon.php:44
|
1574 |
+
#: templates/account/partials/site.php:31 templates/add-ons.php:130
|
1575 |
+
#: templates/plugin-info/features.php:72
|
|
|
1576 |
msgid "Free"
|
1577 |
msgstr "Gratis"
|
1578 |
|
1579 |
+
#: templates/account.php:104 templates/account/partials/addon.php:45
|
1580 |
msgid "Activate"
|
1581 |
msgstr "Activar"
|
1582 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1583 |
#: templates/account.php:158
|
1584 |
msgid "Free Trial"
|
1585 |
msgstr "Período de prueba gratuito"
|
1589 |
msgstr "Detalles de la cuenta"
|
1590 |
|
1591 |
#: templates/account.php:179
|
1592 |
+
#, php-format
|
1593 |
+
msgid ""
|
1594 |
+
"Deleting the account will automatically deactivate your %s plan license so "
|
1595 |
+
"you can use it on other sites. If you want to terminate the recurring "
|
1596 |
+
"payments as well, click the \"Cancel\" button, and first \"Downgrade\" your "
|
1597 |
+
"account. Are you sure you would like to continue with the deletion?"
|
1598 |
+
msgstr ""
|
1599 |
+
"La eliminación de la cuenta desactivará automáticamente su licencia de plan "
|
1600 |
+
"%s para que pueda utilizarla en otros sitios. Si también desea cancelar los "
|
1601 |
+
"pagos periódicos, haga clic en el botón \"Cancelar\" y, en primer lugar, "
|
1602 |
+
"\"Degradar\" su cuenta. ¿Seguro que deseas continuar con la eliminación?"
|
1603 |
|
1604 |
#: templates/account.php:181
|
1605 |
+
#, php-format
|
1606 |
+
msgid ""
|
1607 |
+
"Deletion is not temporary. Only delete if you no longer want to use this %s "
|
1608 |
+
"anymore. Are you sure you would like to continue with the deletion?"
|
1609 |
+
msgstr ""
|
1610 |
+
"La eliminación no es temporal. Sólo elimínalo si ya no deseas utilizar este "
|
1611 |
+
"%s más. ¿Estás seguro que desea continuar con la eliminación?"
|
1612 |
|
1613 |
#: templates/account.php:184
|
1614 |
msgid "Delete Account"
|
1615 |
msgstr "Borrar cuenta"
|
1616 |
|
1617 |
+
#: templates/account.php:196 templates/account/partials/addon.php:159
|
1618 |
#: templates/account/partials/deactivate-license-button.php:35
|
1619 |
msgid "Deactivate License"
|
1620 |
msgstr "Desactivar licencia"
|
1621 |
|
1622 |
+
#: templates/account.php:219 templates/forms/subscription-cancellation.php:125
|
1623 |
msgid "Are you sure you want to proceed?"
|
1624 |
msgstr "¿Estás seguro que quieres proceder?"
|
1625 |
|
1626 |
+
#: templates/account.php:219 templates/account/partials/addon.php:182
|
1627 |
msgid "Cancel Subscription"
|
1628 |
msgstr "Cancelar suscripción"
|
1629 |
|
1632 |
msgid "Sync"
|
1633 |
msgstr "Sincronizar"
|
1634 |
|
1635 |
+
#: templates/account.php:261 templates/debug.php:489
|
1636 |
msgid "Name"
|
1637 |
msgstr "Nombre"
|
1638 |
|
1639 |
+
#: templates/account.php:267 templates/debug.php:490
|
1640 |
msgid "Email"
|
1641 |
msgstr "Correo electrónico"
|
1642 |
|
1643 |
+
#: templates/account.php:274 templates/debug.php:372 templates/debug.php:528
|
1644 |
msgid "User ID"
|
1645 |
msgstr "ID de usuario"
|
1646 |
|
1652 |
msgid "No ID"
|
1653 |
msgstr "Sin ID"
|
1654 |
|
1655 |
+
#: templates/account.php:290 templates/account/partials/site.php:219
|
1656 |
+
#: templates/debug.php:245 templates/debug.php:374 templates/debug.php:455
|
1657 |
+
#: templates/debug.php:492
|
1658 |
msgid "Public Key"
|
1659 |
msgstr "Clave pública"
|
1660 |
|
1661 |
+
#: templates/account.php:296 templates/account/partials/site.php:231
|
1662 |
+
#: templates/debug.php:375 templates/debug.php:456 templates/debug.php:493
|
1663 |
msgid "Secret Key"
|
1664 |
msgstr "Clave secreta"
|
1665 |
|
1668 |
msgid "No Secret"
|
1669 |
msgstr "Sin clave secreta"
|
1670 |
|
1671 |
+
#: templates/account.php:318 templates/account/partials/site.php:112
|
1672 |
#: templates/account/partials/site.php:114
|
1673 |
msgid "Trial"
|
1674 |
msgstr "Período de prueba gratuito"
|
1675 |
|
1676 |
+
#: templates/account.php:337 templates/account/partials/site.php:248
|
1677 |
+
#: templates/debug.php:533
|
1678 |
msgid "License Key"
|
1679 |
msgstr "Clave de licencia"
|
1680 |
|
1682 |
msgid "not verified"
|
1683 |
msgstr "no verificado"
|
1684 |
|
1685 |
+
#: templates/account.php:376 templates/account/partials/addon.php:120
|
1686 |
msgid "Expired"
|
1687 |
msgstr "Caducado"
|
1688 |
|
1699 |
msgstr "Verificar correo electrónico"
|
1700 |
|
1701 |
#: templates/account.php:453
|
1702 |
+
#, php-format
|
1703 |
msgid "Download %s Version"
|
1704 |
msgstr "Descargar versión %s"
|
1705 |
|
1706 |
+
#: templates/account.php:467 templates/account.php:649
|
1707 |
+
#: templates/account/partials/site.php:237
|
1708 |
#: templates/account/partials/site.php:255
|
1709 |
msgctxt "verb"
|
1710 |
msgid "Show"
|
1711 |
msgstr "Mostrar"
|
1712 |
|
1713 |
#: templates/account.php:481
|
1714 |
+
#, php-format
|
1715 |
msgid "What is your %s?"
|
1716 |
msgstr "¿Cual es tú %s?"
|
1717 |
|
1718 |
+
#: templates/account.php:489 templates/account/billing.php:27
|
1719 |
msgctxt "verb"
|
1720 |
msgid "Edit"
|
1721 |
msgstr "Editar"
|
1728 |
msgid "Search by address"
|
1729 |
msgstr "Buscar por dirección"
|
1730 |
|
1731 |
+
#: templates/account.php:522 templates/account.php:570
|
1732 |
+
#: templates/account/payments.php:35 templates/debug.php:238
|
1733 |
+
#: templates/debug.php:366 templates/debug.php:451 templates/debug.php:488
|
1734 |
+
#: templates/debug.php:526 templates/debug.php:599
|
1735 |
+
#: templates/debug/logger.php:21
|
1736 |
msgid "ID"
|
1737 |
msgstr "ID"
|
1738 |
|
1739 |
+
#: templates/account.php:523 templates/debug.php:369
|
1740 |
msgid "Address"
|
1741 |
msgstr "Dirección"
|
1742 |
|
1759 |
msgstr "Ocultar"
|
1760 |
|
1761 |
#: templates/account.php:686
|
1762 |
+
#, php-format
|
1763 |
msgid "Cancelling %s"
|
1764 |
msgstr "Cancelando %s"
|
1765 |
|
1766 |
+
#: templates/account.php:686 templates/account.php:703
|
|
|
1767 |
#: templates/forms/deactivation/form.php:117
|
1768 |
+
#: templates/forms/subscription-cancellation.php:27
|
1769 |
msgid "trial"
|
1770 |
msgstr "período de prueba"
|
1771 |
|
1772 |
+
#: templates/account.php:701 templates/forms/deactivation/form.php:134
|
1773 |
+
#, php-format
|
1774 |
msgid "Cancelling %s..."
|
1775 |
msgstr "Cancelando %s..."
|
1776 |
|
1777 |
+
#: templates/account.php:704 templates/forms/deactivation/form.php:118
|
1778 |
+
#: templates/forms/subscription-cancellation.php:28
|
1779 |
msgid "subscription"
|
1780 |
msgstr "suscripción"
|
1781 |
|
1782 |
#: templates/account.php:718
|
1783 |
+
msgid ""
|
1784 |
+
"Deactivating your license will block all premium features, but will enable "
|
1785 |
+
"activating the license on another site. Are you sure you want to proceed?"
|
1786 |
+
msgstr ""
|
1787 |
+
"Al desactivar tu licencia todas las características premium se bloquearán, "
|
1788 |
+
"pero posibilitará poder activar tu licencia en otro sitio. ¿Estás seguro que "
|
1789 |
+
"quieres continuar?"
|
1790 |
+
|
1791 |
+
#: templates/account/billing.php:28
|
1792 |
+
msgctxt "verb"
|
1793 |
+
msgid "Update"
|
1794 |
+
msgstr "Actualizar"
|
1795 |
+
|
1796 |
+
#: templates/account/billing.php:39
|
1797 |
+
msgid "Billing"
|
1798 |
+
msgstr "Facturación"
|
1799 |
+
|
1800 |
+
#: templates/account/billing.php:44
|
1801 |
+
msgid "Business name"
|
1802 |
+
msgstr "Nombre de la empresa"
|
1803 |
+
|
1804 |
+
#: templates/account/billing.php:45
|
1805 |
+
msgid "Tax / VAT ID"
|
1806 |
+
msgstr "Tax / Núm IVA"
|
1807 |
+
|
1808 |
+
#: templates/account/billing.php:48 templates/account/billing.php:49
|
1809 |
+
#, php-format
|
1810 |
+
msgid "Address Line %d"
|
1811 |
+
msgstr "Línea de la dirección %d"
|
1812 |
+
|
1813 |
+
#: templates/account/billing.php:52
|
1814 |
+
msgid "City"
|
1815 |
+
msgstr "Ciudad"
|
1816 |
+
|
1817 |
+
#: templates/account/billing.php:52
|
1818 |
+
msgid "Town"
|
1819 |
+
msgstr "Municipio"
|
1820 |
+
|
1821 |
+
#: templates/account/billing.php:53
|
1822 |
+
msgid "ZIP / Postal Code"
|
1823 |
+
msgstr "Código postal"
|
1824 |
+
|
1825 |
+
#: templates/account/billing.php:308
|
1826 |
+
msgid "Country"
|
1827 |
+
msgstr "País"
|
1828 |
+
|
1829 |
+
#: templates/account/billing.php:310
|
1830 |
+
msgid "Select Country"
|
1831 |
+
msgstr "Seleccionar país"
|
1832 |
+
|
1833 |
+
#: templates/account/billing.php:317 templates/account/billing.php:318
|
1834 |
+
msgid "State"
|
1835 |
+
msgstr "Estado"
|
1836 |
+
|
1837 |
+
#: templates/account/billing.php:317 templates/account/billing.php:318
|
1838 |
+
msgid "Province"
|
1839 |
+
msgstr "Provincia"
|
1840 |
+
|
1841 |
+
#: templates/account/partials/activate-license-button.php:46
|
1842 |
+
msgid "Localhost"
|
1843 |
+
msgstr "Localhost"
|
1844 |
+
|
1845 |
+
#: templates/account/partials/activate-license-button.php:50
|
1846 |
+
#, php-format
|
1847 |
+
msgctxt "as 5 licenses left"
|
1848 |
+
msgid "%s left"
|
1849 |
+
msgstr "quedan %s"
|
1850 |
+
|
1851 |
+
#: templates/account/partials/activate-license-button.php:51
|
1852 |
+
msgid "Last license"
|
1853 |
+
msgstr "Última licencia"
|
1854 |
+
|
1855 |
+
#: templates/account/partials/addon.php:115
|
1856 |
+
msgid "Cancelled"
|
1857 |
+
msgstr "Cancelado"
|
1858 |
+
|
1859 |
+
#: templates/account/partials/addon.php:125
|
1860 |
+
msgid "No expiration"
|
1861 |
+
msgstr "Sin caducidad"
|
1862 |
+
|
1863 |
+
#: templates/account/partials/addon.php:264
|
1864 |
+
#: templates/account/partials/addon.php:317
|
1865 |
+
msgid "Activate this add-on"
|
1866 |
+
msgstr "Activar este complemento"
|
1867 |
+
|
1868 |
+
#: templates/account/partials/addon.php:339 templates/debug.php:433
|
1869 |
+
#: templates/debug.php:511
|
1870 |
+
msgctxt "verb"
|
1871 |
+
msgid "Delete"
|
1872 |
+
msgstr "Borrar"
|
1873 |
+
|
1874 |
+
#: templates/account/partials/site.php:148 templates/debug.php:368
|
1875 |
+
msgid "Blog ID"
|
1876 |
+
msgstr "ID del blog"
|
1877 |
+
|
1878 |
+
#: templates/account/partials/site.php:181
|
1879 |
+
msgid "Owner Name"
|
1880 |
+
msgstr "Nombre del propietario"
|
1881 |
+
|
1882 |
+
#: templates/account/partials/site.php:193
|
1883 |
+
msgid "Owner Email"
|
1884 |
+
msgstr "Correo electrónico del propietario"
|
1885 |
+
|
1886 |
+
#: templates/account/partials/site.php:205
|
1887 |
+
msgid "Owner ID"
|
1888 |
+
msgstr "ID del propietario"
|
1889 |
+
|
1890 |
+
#: templates/account/partials/site.php:270
|
1891 |
+
msgid "Subscription"
|
1892 |
+
msgstr "Suscripción"
|
1893 |
+
|
1894 |
+
#: templates/account/payments.php:29
|
1895 |
+
msgid "Payments"
|
1896 |
+
msgstr "Pagos"
|
1897 |
+
|
1898 |
+
#: templates/account/payments.php:36
|
1899 |
+
msgid "Date"
|
1900 |
+
msgstr "Fecha"
|
1901 |
+
|
1902 |
+
#: templates/account/payments.php:37
|
1903 |
+
msgid "Amount"
|
1904 |
+
msgstr "Cantidad"
|
1905 |
+
|
1906 |
+
#: templates/account/payments.php:38 templates/account/payments.php:50
|
1907 |
+
msgid "Invoice"
|
1908 |
+
msgstr "Factura"
|
1909 |
|
1910 |
#: templates/add-ons.php:36
|
1911 |
+
#, php-format
|
1912 |
msgid "Add Ons for %s"
|
1913 |
msgstr "Complementos para %s"
|
1914 |
|
1915 |
#: templates/add-ons.php:44
|
1916 |
+
msgid ""
|
1917 |
+
"We could'nt load the add-ons list. It's probably an issue on our side, "
|
1918 |
+
"please try to come back in few minutes."
|
1919 |
+
msgstr ""
|
1920 |
+
"No podemos cargar la lista de complementos. Probablemente es un problema por "
|
1921 |
+
"nuestro parte, por favor inténtalo de nuevo en unos minutos."
|
1922 |
|
1923 |
#: templates/add-ons.php:139
|
1924 |
msgid "View details"
|
1925 |
msgstr "Ver detalles"
|
1926 |
|
1927 |
+
#: templates/admin-notice.php:13 templates/forms/license-activation.php:208
|
1928 |
#: templates/forms/resend-key.php:77
|
1929 |
msgctxt "as close a window"
|
1930 |
msgid "Dismiss"
|
1931 |
msgstr "Descartar"
|
1932 |
|
1933 |
#: templates/auto-installation.php:45
|
1934 |
+
#, php-format
|
1935 |
msgid "%s sec"
|
1936 |
msgstr "%s seg"
|
1937 |
|
1940 |
msgstr "Instalación automática"
|
1941 |
|
1942 |
#: templates/auto-installation.php:93
|
1943 |
+
#, php-format
|
1944 |
+
msgid ""
|
1945 |
+
"An automated download and installation of %s (paid version) from %s will "
|
1946 |
+
"start in %s. If you would like to do it manually - click the cancellation "
|
1947 |
+
"button now."
|
1948 |
+
msgstr ""
|
1949 |
+
"Una descarga automatizada y la instalación de %s (versión de pago) de %s "
|
1950 |
+
"comenzará en %s. Si quieres hacerlo manualmente - haz clic en el botón de "
|
1951 |
+
"cancelación."
|
1952 |
+
|
1953 |
#: templates/auto-installation.php:104
|
1954 |
+
msgid ""
|
1955 |
+
"The installation process has started and may take a few minutes to complete. "
|
1956 |
+
"Please wait until it is done - do not refresh this page."
|
1957 |
+
msgstr ""
|
1958 |
+
"El proceso de instalación ha comenzado y puede tardar unos minutos en "
|
1959 |
+
"completarse. Por favor, espera hasta que se finalice - no actualices esta "
|
1960 |
+
"página."
|
1961 |
|
1962 |
#: templates/auto-installation.php:109
|
1963 |
msgid "Cancel Installation"
|
1971 |
msgid "PCI compliant"
|
1972 |
msgstr "Compatible con PCI"
|
1973 |
|
|
|
1974 |
#: templates/connect.php:112
|
1975 |
+
#, php-format
|
1976 |
msgctxt "greeting"
|
1977 |
msgid "Hey %s,"
|
1978 |
msgstr "Hey %s,"
|
1986 |
msgstr "Reenviar correo electrónico de activación"
|
1987 |
|
1988 |
#: templates/connect.php:162
|
1989 |
+
#, php-format
|
1990 |
msgid "Thanks %s!"
|
1991 |
msgstr "¡Gracias %s!"
|
1992 |
|
1993 |
+
#: templates/connect.php:172 templates/forms/license-activation.php:43
|
1994 |
msgid "Agree & Activate License"
|
1995 |
msgstr "De acuerdo y activar licencia"
|
1996 |
|
1997 |
#: templates/connect.php:181
|
1998 |
+
#, php-format
|
1999 |
+
msgid ""
|
2000 |
+
"Thanks for purchasing %s! To get started, please enter your license key:"
|
2001 |
msgstr "¡Gracias por comprar %s! Para empezar, escribe tu clave de licencia:"
|
2002 |
|
2003 |
#: templates/connect.php:188
|
2004 |
+
#, php-format
|
2005 |
+
msgid ""
|
2006 |
+
"Never miss an important update - opt in to our security & feature updates "
|
2007 |
+
"notifications, educational content, offers, and non-sensitive diagnostic "
|
2008 |
+
"tracking with %4$s."
|
2009 |
+
msgstr ""
|
2010 |
+
"No te pierdas ninguna actualización importante - acepta para notificaciones "
|
2011 |
+
"de seguridad y de actualizaciones, ofertas y seguimiento de diagnóstico con "
|
2012 |
+
"datos no sensibles con %4$s."
|
2013 |
|
2014 |
#: templates/connect.php:189
|
2015 |
+
#, php-format
|
2016 |
+
msgid ""
|
2017 |
+
"Never miss an important update - opt in to our security and feature updates "
|
2018 |
+
"notifications, and non-sensitive diagnostic tracking with %4$s."
|
2019 |
+
msgstr ""
|
2020 |
+
"No te pierdas ninguna actualización importante - acepta para notificaciones "
|
2021 |
+
"de seguridad y de actualizaciones y seguimiento de diagnóstico con datos no "
|
2022 |
+
"sensibles con %4$s."
|
2023 |
|
2024 |
#: templates/connect.php:195
|
2025 |
+
#, php-format
|
2026 |
+
msgid ""
|
2027 |
+
"Never miss an important update - opt in to our security & feature updates "
|
2028 |
+
"notifications, educational content, offers, and non-sensitive diagnostic "
|
2029 |
+
"tracking with %4$s. If you skip this, that's okay! %1$s will still work just "
|
2030 |
+
"fine."
|
2031 |
+
msgstr ""
|
2032 |
+
"No te pierdas ninguna actualización importante - acepta las notificaciones "
|
2033 |
+
"de seguridad y de actualizaciones, contenido educacional, ofertas y "
|
2034 |
+
"seguimiento de diagnóstico con datos no sensibles con %4$s. ¡Si te saltas "
|
2035 |
+
"esto, no pasa nada! %1$s seguirá funcionando bien."
|
2036 |
|
2037 |
#: templates/connect.php:196
|
2038 |
+
#, php-format
|
2039 |
+
msgid ""
|
2040 |
+
"Never miss an important update - opt in to our security & feature updates "
|
2041 |
+
"notifications, and non-sensitive diagnostic tracking with %4$s. If you skip "
|
2042 |
+
"this, that's okay! %1$s will still work just fine."
|
2043 |
+
msgstr ""
|
2044 |
+
"No te pierdas ninguna actualización importante - acepta las notificaciones "
|
2045 |
+
"de seguridad y de actualizaciones y seguimiento de diagnóstico con datos no "
|
2046 |
+
"sensibles con %4$s. ¡Si te saltas esto, no pasa nada! %1$s seguirá "
|
2047 |
+
"funcionando bien."
|
2048 |
|
2049 |
#: templates/connect.php:230
|
2050 |
msgid "We're excited to introduce the Freemius network-level integration."
|
2051 |
+
msgstr ""
|
2052 |
+
"Estamos emocionados de introducir la integración de Freemius a nivel de red."
|
2053 |
|
2054 |
#: templates/connect.php:233
|
2055 |
+
#, php-format
|
2056 |
+
msgid ""
|
2057 |
+
"During the update process we detected %d site(s) that are still pending "
|
2058 |
+
"license activation."
|
2059 |
+
msgstr ""
|
2060 |
+
"Durante el proceso de actualización hemos detectado%d sitio(s) que aún están "
|
2061 |
+
"pendientes de la activación de licencia."
|
2062 |
|
2063 |
#: templates/connect.php:235
|
2064 |
+
#, php-format
|
2065 |
+
msgid ""
|
2066 |
+
"If you'd like to use the %s on those sites, please enter your license key "
|
2067 |
+
"below and click the activation button."
|
2068 |
+
msgstr ""
|
2069 |
+
"Si quieres utilizar %s en estos sitios, introduce por favor tu clave de "
|
2070 |
+
"licencia abajo y haz click en el botón de activación."
|
2071 |
|
2072 |
#: templates/connect.php:237
|
2073 |
+
#, php-format
|
2074 |
msgid "%s's paid features"
|
2075 |
msgstr "%s características de pago"
|
2076 |
|
2077 |
#: templates/connect.php:242
|
2078 |
+
#, php-format
|
2079 |
+
msgid ""
|
2080 |
+
"Alternatively, you can skip it for now and activate the license later, in "
|
2081 |
+
"your %s's network-level Account page."
|
2082 |
+
msgstr ""
|
2083 |
+
"Alternativamente, puedes saltarlo ahora y activar la licencia después, en tu "
|
2084 |
+
"%s página de cuenta a nivel de red."
|
2085 |
|
2086 |
#: templates/connect.php:244
|
2087 |
+
#, php-format
|
2088 |
+
msgid ""
|
2089 |
+
"During the update process we detected %s site(s) in the network that are "
|
2090 |
+
"still pending your attention."
|
2091 |
+
msgstr ""
|
2092 |
+
"Durante el proceso de actualización detectamos %s sitio(s) en la red que "
|
2093 |
+
"todavía están pendientes de tu atención."
|
2094 |
|
2095 |
+
#: templates/connect.php:253 templates/forms/license-activation.php:46
|
2096 |
msgid "License key"
|
2097 |
msgstr "Clave de licencia"
|
2098 |
|
2099 |
+
#: templates/connect.php:256 templates/forms/license-activation.php:19
|
2100 |
msgid "Can't find your license key?"
|
2101 |
msgstr "¿No puedes encontrar tu clave de licencia?"
|
2102 |
|
2103 |
+
#: templates/connect.php:315 templates/connect.php:630
|
2104 |
#: templates/forms/deactivation/retry-skip.php:20
|
2105 |
msgctxt "verb"
|
2106 |
msgid "Skip"
|
2111 |
msgstr "Delegar a administradores del sitio"
|
2112 |
|
2113 |
#: templates/connect.php:318
|
2114 |
+
msgid ""
|
2115 |
+
"If you click it, this decision will be delegated to the sites administrators."
|
2116 |
+
msgstr ""
|
2117 |
+
"Si haces click, esta decisión será delegada a los administradores de los "
|
2118 |
+
"sitios."
|
2119 |
|
2120 |
#: templates/connect.php:346
|
2121 |
msgid "Your Profile Overview"
|
2137 |
msgid "Admin Notices"
|
2138 |
msgstr "Avisos de administración"
|
2139 |
|
2140 |
+
#: templates/connect.php:359 templates/connect.php:375
|
2141 |
msgid "Updates, announcements, marketing, no spam"
|
2142 |
msgstr "Actualizaciones, anuncios, marketing, sin spam"
|
2143 |
|
2144 |
#: templates/connect.php:364
|
2145 |
+
#, php-format
|
2146 |
msgid "Current %s Events"
|
2147 |
msgstr "Eventos de %s actuales"
|
2148 |
|
2154 |
msgid "Newsletter"
|
2155 |
msgstr "Boletín"
|
2156 |
|
2157 |
+
#: templates/connect.php:391 templates/forms/license-activation.php:38
|
2158 |
+
#, php-format
|
2159 |
+
msgid ""
|
2160 |
+
"The %1$s will be periodically sending data to %2$s to check for security and "
|
2161 |
+
"feature updates, and verify the validity of your license."
|
2162 |
+
msgstr ""
|
2163 |
+
"%1$s periódicamente enviará datos a %2$s para comprobar las actualizaciones "
|
2164 |
+
"de seguridad, nuevas funcionalidades y verificar la validez de tu licencia."
|
2165 |
|
2166 |
#: templates/connect.php:396
|
2167 |
msgid "What permissions are being granted?"
|
2224 |
msgid "Debugging"
|
2225 |
msgstr "Depurando"
|
2226 |
|
2227 |
+
#: templates/debug.php:54 templates/debug.php:250 templates/debug.php:376
|
2228 |
+
#: templates/debug.php:494
|
2229 |
msgid "Actions"
|
2230 |
msgstr "Acciones"
|
2231 |
|
2261 |
msgid "Set DB Option"
|
2262 |
msgstr "Guardar opción en BD"
|
2263 |
|
2264 |
+
#: templates/debug.php:182
|
2265 |
msgid "Key"
|
2266 |
msgstr "Clave"
|
2267 |
|
2268 |
+
#: templates/debug.php:183
|
2269 |
msgid "Value"
|
2270 |
msgstr "Valor"
|
2271 |
|
2272 |
+
#: templates/debug.php:199
|
2273 |
msgctxt "as software development kit versions"
|
2274 |
msgid "SDK Versions"
|
2275 |
msgstr "Versiones SDK"
|
2276 |
|
2277 |
+
#: templates/debug.php:204
|
2278 |
msgid "SDK Path"
|
2279 |
msgstr "Ruta del SDK"
|
2280 |
|
2281 |
+
#: templates/debug.php:205 templates/debug.php:244
|
2282 |
msgid "Module Path"
|
2283 |
msgstr "Ruta del módulo"
|
2284 |
|
2285 |
+
#: templates/debug.php:206
|
2286 |
msgid "Is Active"
|
2287 |
msgstr "Está activo"
|
2288 |
|
2289 |
+
#: templates/debug.php:234 templates/debug/plugins-themes-sync.php:35
|
2290 |
msgid "Plugins"
|
2291 |
msgstr "Plugins"
|
2292 |
|
2293 |
+
#: templates/debug.php:234 templates/debug/plugins-themes-sync.php:56
|
2294 |
msgid "Themes"
|
2295 |
msgstr "Temas"
|
2296 |
|
2297 |
+
#: templates/debug.php:239 templates/debug.php:371 templates/debug.php:453
|
2298 |
#: templates/debug/scheduled-crons.php:80
|
2299 |
msgid "Slug"
|
2300 |
msgstr "Ruta"
|
2301 |
|
2302 |
+
#: templates/debug.php:241 templates/debug.php:452
|
2303 |
msgid "Title"
|
2304 |
msgstr "Título"
|
2305 |
|
2306 |
+
#: templates/debug.php:242
|
2307 |
msgctxt "as application program interface"
|
2308 |
msgid "API"
|
2309 |
msgstr "API"
|
2310 |
|
2311 |
+
#: templates/debug.php:243
|
2312 |
msgid "Freemius State"
|
2313 |
msgstr "Estado Freemius"
|
2314 |
|
2315 |
+
#: templates/debug.php:247
|
2316 |
msgid "Network Blog"
|
2317 |
msgstr "Blog de red"
|
2318 |
|
2319 |
+
#: templates/debug.php:248
|
2320 |
msgid "Network User"
|
2321 |
msgstr "Usuario de red"
|
2322 |
|
2323 |
+
#: templates/debug.php:285
|
2324 |
msgctxt "as connection was successful"
|
2325 |
msgid "Connected"
|
2326 |
msgstr "Conectado"
|
2327 |
|
2328 |
+
#: templates/debug.php:286
|
2329 |
msgctxt "as connection blocked"
|
2330 |
msgid "Blocked"
|
2331 |
msgstr "Bloqueado"
|
2332 |
|
2333 |
+
#: templates/debug.php:322
|
2334 |
msgid "Simulate Trial Promotion"
|
2335 |
msgstr "Simular período de prueba"
|
2336 |
|
2337 |
+
#: templates/debug.php:334
|
2338 |
msgid "Simulate Network Upgrade"
|
2339 |
msgstr "Simular actualización de red"
|
2340 |
|
2341 |
+
#: templates/debug.php:360
|
2342 |
+
#, php-format
|
2343 |
msgid "%s Installs"
|
2344 |
msgstr "%s Instalaciones"
|
2345 |
|
2346 |
+
#: templates/debug.php:362
|
2347 |
msgctxt "like websites"
|
2348 |
msgid "Sites"
|
2349 |
msgstr "Sitios"
|
2350 |
|
2351 |
+
#: templates/debug.php:447
|
2352 |
+
#, php-format
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2353 |
msgid "Add Ons of module %s"
|
2354 |
msgstr "Complementos del módulo %s"
|
2355 |
|
2356 |
+
#: templates/debug.php:484
|
2357 |
msgid "Users"
|
2358 |
msgstr "Usuarios"
|
2359 |
|
2360 |
+
#: templates/debug.php:491
|
2361 |
msgid "Verified"
|
2362 |
msgstr "Verificado"
|
2363 |
|
2364 |
+
#: templates/debug.php:522
|
2365 |
+
#, php-format
|
2366 |
msgid "%s Licenses"
|
2367 |
msgstr "%s Licencias"
|
2368 |
|
2369 |
+
#: templates/debug.php:527
|
2370 |
msgid "Plugin ID"
|
2371 |
msgstr "ID del plugin"
|
2372 |
|
2373 |
+
#: templates/debug.php:529
|
2374 |
msgid "Plan ID"
|
2375 |
msgstr "ID del plan"
|
2376 |
|
2377 |
+
#: templates/debug.php:530
|
2378 |
msgid "Quota"
|
2379 |
msgstr "Cuota"
|
2380 |
|
2381 |
+
#: templates/debug.php:531
|
2382 |
msgid "Activated"
|
2383 |
msgstr "Activado"
|
2384 |
|
2385 |
+
#: templates/debug.php:532
|
2386 |
msgid "Blocking"
|
2387 |
msgstr "Bloqueando"
|
2388 |
|
2389 |
+
#: templates/debug.php:534
|
2390 |
msgctxt "as expiration date"
|
2391 |
msgid "Expiration"
|
2392 |
msgstr "Caducidad"
|
2393 |
|
2394 |
+
#: templates/debug.php:557
|
2395 |
msgid "Debug Log"
|
2396 |
msgstr "Log de Debug"
|
2397 |
|
2398 |
+
#: templates/debug.php:561
|
2399 |
msgid "All Types"
|
2400 |
msgstr "Todos los Tipos"
|
2401 |
|
2402 |
+
#: templates/debug.php:568
|
2403 |
msgid "All Requests"
|
2404 |
msgstr "Todas las peticiones"
|
2405 |
|
2406 |
+
#: templates/debug.php:573 templates/debug.php:602
|
2407 |
#: templates/debug/logger.php:25
|
2408 |
msgid "File"
|
2409 |
msgstr "Archivo"
|
2410 |
|
2411 |
+
#: templates/debug.php:574 templates/debug.php:600
|
2412 |
#: templates/debug/logger.php:23
|
2413 |
msgid "Function"
|
2414 |
msgstr "Función"
|
2415 |
|
2416 |
+
#: templates/debug.php:575
|
2417 |
msgid "Process ID"
|
2418 |
msgstr "ID del proceso"
|
2419 |
|
2420 |
+
#: templates/debug.php:576
|
2421 |
msgid "Logger"
|
2422 |
msgstr "Logger"
|
2423 |
|
2424 |
+
#: templates/debug.php:577 templates/debug.php:601
|
2425 |
#: templates/debug/logger.php:24
|
2426 |
msgid "Message"
|
2427 |
msgstr "Mensaje"
|
2428 |
|
2429 |
+
#: templates/debug.php:579
|
2430 |
msgid "Filter"
|
2431 |
msgstr "Filtro"
|
2432 |
|
2433 |
+
#: templates/debug.php:587
|
2434 |
msgid "Download"
|
2435 |
msgstr "Descarga"
|
2436 |
|
2437 |
+
#: templates/debug.php:598 templates/debug/logger.php:22
|
2438 |
msgid "Type"
|
2439 |
msgstr "Tipo"
|
2440 |
|
2441 |
+
#: templates/debug.php:603 templates/debug/logger.php:26
|
2442 |
msgid "Timestamp"
|
2443 |
msgstr "Timestamp"
|
2444 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2445 |
#: templates/debug/api-calls.php:56
|
2446 |
msgid "API"
|
2447 |
msgstr "API"
|
2483 |
msgid "Log"
|
2484 |
msgstr "Log"
|
2485 |
|
2486 |
+
#: templates/debug/plugins-themes-sync.php:18
|
|
|
2487 |
#: templates/debug/scheduled-crons.php:91
|
2488 |
+
#, php-format
|
2489 |
msgid "In %s"
|
2490 |
msgstr "En %s"
|
2491 |
|
2492 |
+
#: templates/debug/plugins-themes-sync.php:20
|
|
|
2493 |
#: templates/debug/scheduled-crons.php:93
|
2494 |
+
#, php-format
|
2495 |
msgid "%s ago"
|
2496 |
msgstr "hace %s"
|
2497 |
|
2498 |
+
#: templates/debug/plugins-themes-sync.php:21
|
2499 |
#: templates/debug/scheduled-crons.php:74
|
2500 |
msgctxt "seconds"
|
2501 |
msgid "sec"
|
2509 |
msgid "Total"
|
2510 |
msgstr "Total"
|
2511 |
|
2512 |
+
#: templates/debug/plugins-themes-sync.php:29
|
2513 |
#: templates/debug/scheduled-crons.php:84
|
2514 |
msgid "Last"
|
2515 |
msgstr "Último"
|
2543 |
msgstr "Aceptar para hacerse afiliado"
|
2544 |
|
2545 |
#: templates/forms/affiliation.php:104
|
2546 |
+
#, php-format
|
2547 |
+
msgid ""
|
2548 |
+
"Your affiliate application for %s has been accepted! Log in to your "
|
2549 |
+
"affiliate area at: %s."
|
2550 |
+
msgstr ""
|
2551 |
+
"¡Tu aplicación al programa de afiliación para %s ha sido aceptada! Entra en "
|
2552 |
+
"tu área de afiliado desde: %s."
|
2553 |
|
2554 |
#: templates/forms/affiliation.php:119
|
2555 |
+
msgid ""
|
2556 |
+
"Thank you for applying for our affiliate program, we'll review your details "
|
2557 |
+
"during the next 14 days and will get back to you with further information."
|
2558 |
+
msgstr ""
|
2559 |
+
"Gracias por aplicar a nuestro programa de afiliados, revisaremos tu petición "
|
2560 |
+
"durante los próximos 14 días y te volveremos a contactar con información "
|
2561 |
+
"adicional."
|
2562 |
|
2563 |
#: templates/forms/affiliation.php:122
|
2564 |
msgid "Your affiliation account was temporarily suspended."
|
2565 |
msgstr "Tu cuenta de afiliado ha sido suspendida temporalmente."
|
2566 |
|
2567 |
#: templates/forms/affiliation.php:125
|
2568 |
+
msgid ""
|
2569 |
+
"Thank you for applying for our affiliate program, unfortunately, we've "
|
2570 |
+
"decided at this point to reject your application. Please try again in 30 "
|
2571 |
+
"days."
|
2572 |
+
msgstr ""
|
2573 |
+
"Gracias por aplicar a nuestro programa de asociados, infortunadamente, de "
|
2574 |
+
"momento hemos decidido rechazar tu petición. Por favor, prueba de nuevo en "
|
2575 |
+
"30 días."
|
2576 |
|
2577 |
#: templates/forms/affiliation.php:128
|
2578 |
+
msgid ""
|
2579 |
+
"Due to violation of our affiliation terms, we decided to temporarily block "
|
2580 |
+
"your affiliation account. If you have any questions, please contact support."
|
2581 |
+
msgstr ""
|
2582 |
+
"Debido a la violación de nuestros términos de afiliados, hemos decidido "
|
2583 |
+
"bloquear temporalmente tu cuenta de afiliación. Si tienes alguna pregunta, "
|
2584 |
+
"por favor contacta nuestro soporte."
|
2585 |
|
2586 |
#: templates/forms/affiliation.php:141
|
2587 |
+
#, php-format
|
2588 |
msgid "Like the %s? Become our ambassador and earn cash ;-)"
|
2589 |
msgstr "¿Te gusta %s? Conviértete en nuestro embajador y gana dinero ;-)"
|
2590 |
|
2591 |
#: templates/forms/affiliation.php:142
|
2592 |
+
#, php-format
|
2593 |
+
msgid ""
|
2594 |
+
"Refer new customers to our %s and earn %s commission on each successful sale "
|
2595 |
+
"you refer!"
|
2596 |
+
msgstr ""
|
2597 |
+
"¡Envíanos nuevos usuarios a nuestro %s y gana %s de comisión en cada venta "
|
2598 |
+
"satisfactoria que nos hayas referido!"
|
2599 |
|
2600 |
#: templates/forms/affiliation.php:145
|
2601 |
msgid "Program Summary"
|
2602 |
msgstr "Sumario del programa"
|
2603 |
|
2604 |
#: templates/forms/affiliation.php:147
|
2605 |
+
#, php-format
|
2606 |
msgid "%s commission when a customer purchases a new license."
|
2607 |
msgstr "%s comisión cuando un cliente compra una nueva licencia."
|
2608 |
|
2611 |
msgstr "Obtén comisiones por renovaciones automatizadas de las suscripciones."
|
2612 |
|
2613 |
#: templates/forms/affiliation.php:152
|
2614 |
+
#, php-format
|
2615 |
+
msgid ""
|
2616 |
+
"%s tracking cookie after the first visit to maximize earnings potential."
|
2617 |
+
msgstr ""
|
2618 |
+
"%s tracking cookie después de la primera visita para maximizar las ganancias "
|
2619 |
+
"potenciales."
|
2620 |
|
2621 |
#: templates/forms/affiliation.php:155
|
2622 |
msgid "Unlimited commissions."
|
2623 |
msgstr "Comisiones Ilimitadas"
|
2624 |
|
2625 |
#: templates/forms/affiliation.php:157
|
2626 |
+
#, php-format
|
2627 |
msgid "%s minimum payout amount."
|
2628 |
msgstr "%s cantidad mínima a pagar."
|
2629 |
|
2632 |
msgstr "Los pagos son en USD y se procesan mensualmente por medio de PayPal."
|
2633 |
|
2634 |
#: templates/forms/affiliation.php:159
|
2635 |
+
msgid ""
|
2636 |
+
"As we reserve 30 days for potential refunds, we only pay commissions that "
|
2637 |
+
"are older than 30 days."
|
2638 |
+
msgstr ""
|
2639 |
+
"Como aplazamos 30 días para posible devoluciones, sólo pagamos comisiones "
|
2640 |
+
"que son de más de 30 días."
|
2641 |
|
2642 |
#: templates/forms/affiliation.php:162
|
2643 |
msgid "Affiliate"
|
2644 |
msgstr "Afiliado"
|
2645 |
|
2646 |
+
#: templates/forms/affiliation.php:165 templates/forms/resend-key.php:23
|
2647 |
msgid "Email address"
|
2648 |
msgstr "Dirección de correo electrónico"
|
2649 |
|
2656 |
msgstr "Dirección de correo electrónico de PayPal"
|
2657 |
|
2658 |
#: templates/forms/affiliation.php:177
|
2659 |
+
#, php-format
|
2660 |
msgid "Where are you going to promote the %s?"
|
2661 |
msgstr "¿Dónde vas a promocionar %s?"
|
2662 |
|
2663 |
#: templates/forms/affiliation.php:179
|
2664 |
+
#, php-format
|
2665 |
+
msgid ""
|
2666 |
+
"Enter the domain of your website or other websites from where you plan to "
|
2667 |
+
"promote the %s."
|
2668 |
+
msgstr ""
|
2669 |
+
"Introduce el dominio de tu sitio web o de otros sitios web donde planeas "
|
2670 |
+
"promocionar %s."
|
2671 |
|
2672 |
#: templates/forms/affiliation.php:181
|
2673 |
msgid "Add another domain"
|
2695 |
|
2696 |
#: templates/forms/affiliation.php:207
|
2697 |
msgid "Website, email, and social media statistics (optional)"
|
2698 |
+
msgstr ""
|
2699 |
+
"Sitio web, correo electrónico y estadísticas de social media (opcional)"
|
2700 |
|
2701 |
#: templates/forms/affiliation.php:210
|
2702 |
+
msgid ""
|
2703 |
+
"Please feel free to provide any relevant website or social media statistics, "
|
2704 |
+
"e.g. monthly unique site visits, number of email subscribers, followers, "
|
2705 |
+
"etc. (we will keep this information confidential)."
|
2706 |
+
msgstr ""
|
2707 |
+
"Siéntete libre de proporcionarnos estadísticas de tu sitio web o social "
|
2708 |
+
"media, p.ej. visitas únicas mensuales, número de suscriptores de correo "
|
2709 |
+
"electrónico, seguidores, etc. (mantendremos esta información confidencial)"
|
2710 |
|
2711 |
#: templates/forms/affiliation.php:214
|
2712 |
msgid "How will you promote us?"
|
2713 |
msgstr "¿Como nos promocionarás?"
|
2714 |
|
2715 |
#: templates/forms/affiliation.php:217
|
2716 |
+
#, php-format
|
2717 |
+
msgid ""
|
2718 |
+
"Please provide details on how you intend to promote %s (please be as "
|
2719 |
+
"specific as possible)."
|
2720 |
+
msgstr ""
|
2721 |
+
"Por favor, danos detalles de como pretendes promocionar %s (por favor, se lo "
|
2722 |
+
"más específico que puedas)"
|
2723 |
|
2724 |
+
#: templates/forms/affiliation.php:223 templates/forms/resend-key.php:22
|
2725 |
msgid "Cancel"
|
2726 |
msgstr "Cancelar"
|
2727 |
|
2729 |
msgid "Become an affiliate"
|
2730 |
msgstr "Hacerse afiliado"
|
2731 |
|
2732 |
+
#: templates/forms/deactivation/contact.php:19
|
2733 |
+
msgid ""
|
2734 |
+
"Sorry for the inconvenience and we are here to help if you give us a chance."
|
2735 |
+
msgstr ""
|
2736 |
+
"Disculpa las molestias y estamos aquí para ayudarte si nos das una "
|
2737 |
+
"oportunidad."
|
2738 |
+
|
2739 |
+
#: templates/forms/deactivation/contact.php:22
|
2740 |
+
msgid "Contact Support"
|
2741 |
+
msgstr "Contactar soporte"
|
2742 |
+
|
2743 |
+
#: templates/forms/deactivation/form.php:59
|
2744 |
+
msgid "Anonymous feedback"
|
2745 |
+
msgstr "Comentarios anónimos"
|
2746 |
+
|
2747 |
+
#: templates/forms/deactivation/form.php:66
|
2748 |
+
msgid "Deactivate"
|
2749 |
+
msgstr "Desactivar"
|
2750 |
+
|
2751 |
+
#: templates/forms/deactivation/form.php:68
|
2752 |
+
#, php-format
|
2753 |
+
msgid "Activate %s"
|
2754 |
+
msgstr "Activar %s"
|
2755 |
+
|
2756 |
+
#: templates/forms/deactivation/form.php:80
|
2757 |
+
msgid "Quick Feedback"
|
2758 |
+
msgstr "Comentarios rápidos"
|
2759 |
+
|
2760 |
+
#: templates/forms/deactivation/form.php:84
|
2761 |
+
#, php-format
|
2762 |
+
msgid "If you have a moment, please let us know why you are %s"
|
2763 |
+
msgstr "Si tienes un momento, por favor, dinos por qué estás %s"
|
2764 |
+
|
2765 |
+
#: templates/forms/deactivation/form.php:84
|
2766 |
+
msgid "deactivating"
|
2767 |
+
msgstr "desactivando"
|
2768 |
+
|
2769 |
+
#: templates/forms/deactivation/form.php:84
|
2770 |
+
msgid "switching"
|
2771 |
+
msgstr "cambiando"
|
2772 |
+
|
2773 |
+
#: templates/forms/deactivation/form.php:150
|
2774 |
+
#: templates/forms/subscription-cancellation.php:191
|
2775 |
+
#, php-format
|
2776 |
+
msgid "Cancel %s & Proceed"
|
2777 |
+
msgstr "Cancelar %s y proceder"
|
2778 |
+
|
2779 |
+
#: templates/forms/deactivation/form.php:332
|
2780 |
+
#, php-format
|
2781 |
+
msgid "Submit & %s"
|
2782 |
+
msgstr "Enviar y %s"
|
2783 |
+
|
2784 |
+
#: templates/forms/deactivation/form.php:353
|
2785 |
+
msgid "Kindly tell us the reason so we can improve."
|
2786 |
+
msgstr "Por favor, dínos la razón para que podamos mejorar."
|
2787 |
+
|
2788 |
+
#: templates/forms/deactivation/form.php:478
|
2789 |
+
#, php-format
|
2790 |
+
msgid "Yes - %s"
|
2791 |
+
msgstr "Si - %s"
|
2792 |
+
|
2793 |
+
#: templates/forms/deactivation/form.php:485
|
2794 |
+
#, php-format
|
2795 |
+
msgid "Skip & %s"
|
2796 |
+
msgstr "Saltar y %s"
|
2797 |
+
|
2798 |
+
#: templates/forms/deactivation/retry-skip.php:21
|
2799 |
+
msgid "Click here to use the plugin anonymously"
|
2800 |
+
msgstr "Haz click aquí para utilizar el plugin de forma anónima"
|
2801 |
+
|
2802 |
+
#: templates/forms/deactivation/retry-skip.php:23
|
2803 |
+
#, php-format
|
2804 |
+
msgid ""
|
2805 |
+
"You might have missed it, but you don't have to share any data and can just "
|
2806 |
+
"%s the opt-in."
|
2807 |
+
msgstr ""
|
2808 |
+
"Es posible que te lo hayas perdido, pero no tienes que compartir ningún dato "
|
2809 |
+
"y puedes solo aceptar %s."
|
2810 |
+
|
2811 |
#: templates/forms/license-activation.php:20
|
2812 |
+
msgid ""
|
2813 |
+
"Please enter the license key that you received in the email right after the "
|
2814 |
+
"purchase:"
|
2815 |
+
msgstr ""
|
2816 |
+
"Por favor, introduce la clave de licencia que recibiste en el correo "
|
2817 |
+
"electrónico al realizar la compra:"
|
2818 |
|
2819 |
#: templates/forms/license-activation.php:25
|
2820 |
msgid "Update License"
|
2831 |
msgstr "Inscribirse"
|
2832 |
|
2833 |
#: templates/forms/optout.php:33
|
2834 |
+
#, php-format
|
2835 |
+
msgid ""
|
2836 |
+
"Usage tracking is done in the name of making %s better. Making a better user "
|
2837 |
+
"experience, prioritizing new features, and more good things. We'd really "
|
2838 |
+
"appreciate if you'll reconsider letting us continue with the tracking."
|
2839 |
+
msgstr ""
|
2840 |
+
"El uso del seguimiento se hace con la intención de mejorar %s. Crear una "
|
2841 |
+
"mejor experiencia de usuario, priorizando nuevas características y cosas "
|
2842 |
+
"mejores. Realmente apreciaríamos que considerases permitirnos continuar con "
|
2843 |
+
"el seguimiento."
|
2844 |
|
2845 |
#: templates/forms/optout.php:35
|
2846 |
+
#, php-format
|
2847 |
+
msgid ""
|
2848 |
+
"By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
|
2849 |
msgstr "Haciendo clic en \"Desistir\", ya no enviaremos los datos de %s a %s."
|
2850 |
|
2851 |
#: templates/forms/premium-versions-upgrade-handler.php:40
|
2852 |
+
#, php-format
|
2853 |
msgid "There is a new version of %s available."
|
2854 |
msgstr "Hay una nueva versión de %s disponible."
|
2855 |
|
2856 |
#: templates/forms/premium-versions-upgrade-handler.php:41
|
2857 |
+
#, php-format
|
2858 |
msgid " %s to access version %s security & feature updates, and support."
|
2859 |
+
msgstr ""
|
2860 |
+
"%s para acceder a la versión %s de actualizaciones de funciones, seguridad y "
|
2861 |
+
"soporte."
|
2862 |
|
2863 |
#: templates/forms/premium-versions-upgrade-handler.php:54
|
2864 |
msgid "New Version Available"
|
2874 |
msgstr "Enviar clave de licencia"
|
2875 |
|
2876 |
#: templates/forms/resend-key.php:57
|
2877 |
+
msgid ""
|
2878 |
+
"Enter the email address you've used for the upgrade below and we will resend "
|
2879 |
+
"you the license key."
|
2880 |
+
msgstr ""
|
2881 |
+
"Escribe abajo la dirección de correo electrónico que has usado para la "
|
2882 |
+
"actualización y te reenviaremos la clave de licencia."
|
2883 |
|
2884 |
+
#: templates/forms/subscription-cancellation.php:38
|
2885 |
+
#, php-format
|
2886 |
+
msgid ""
|
2887 |
+
"Deactivating or uninstalling the %s will automatically disable the license, "
|
2888 |
+
"which you'll be able to use on another site."
|
2889 |
+
msgstr ""
|
2890 |
+
"Desactivar o desinstalar %s deshabilitará automáticamente la licencia, que "
|
2891 |
+
"podrás usar en otro sitio."
|
2892 |
|
2893 |
+
#: templates/forms/subscription-cancellation.php:48
|
2894 |
+
#, php-format
|
2895 |
+
msgid ""
|
2896 |
+
"In case you are NOT planning on using this %s on this site (or any other "
|
2897 |
+
"site) - would you like to cancel the %s as well?"
|
2898 |
+
msgstr ""
|
2899 |
+
"En caso de que NO estés planeando utilizar este %s en este sitio (o en "
|
2900 |
+
"cualquier otro sitio), ¿te gustaría cancelar también %s?"
|
2901 |
|
2902 |
#: templates/forms/subscription-cancellation.php:52
|
2903 |
msgid "license"
|
2904 |
msgstr "licencia"
|
2905 |
|
2906 |
+
#: templates/forms/subscription-cancellation.php:58
|
2907 |
+
#, php-format
|
2908 |
+
msgid ""
|
2909 |
+
"Cancel %s - I no longer need any security & feature updates, nor support for "
|
2910 |
+
"%s because I'm not planning to use the %s on this, or any other site."
|
2911 |
+
msgstr ""
|
2912 |
+
"Cancelar %s - No necesito más actualizaciones de características y "
|
2913 |
+
"seguridad, ni soporte para %s porque no pretendo utilizar%s en este, u otro "
|
2914 |
+
"sitio."
|
2915 |
|
2916 |
+
#: templates/forms/subscription-cancellation.php:69
|
2917 |
+
#, php-format
|
2918 |
+
msgid ""
|
2919 |
+
"Don't cancel %s - I'm still interested in getting security & feature "
|
2920 |
+
"updates, as well as be able to contact support."
|
2921 |
+
msgstr ""
|
2922 |
+
"No cancelar %s - Todavía estoy interesado en obtener actualizaciones de "
|
2923 |
+
"características y seguridad, así como poder contactar con soporte."
|
2924 |
|
2925 |
#: templates/forms/subscription-cancellation.php:103
|
2926 |
+
#, php-format
|
2927 |
+
msgid ""
|
2928 |
+
"Once your license expires you will no longer be able to use the %s, unless "
|
2929 |
+
"you activate it again with a valid premium license."
|
2930 |
+
msgstr ""
|
2931 |
+
"Una vez que tu licencia caduque no podrás seguir utilizando %s, a no ser que "
|
2932 |
+
"lo actives de nuevo con una licencia premium válida."
|
2933 |
|
2934 |
#: templates/forms/subscription-cancellation.php:136
|
2935 |
+
#, php-format
|
2936 |
msgid "Cancel %s?"
|
2937 |
msgstr "¿Cancelar %s?"
|
2938 |
|
2940 |
msgid "Proceed"
|
2941 |
msgstr "Proceder"
|
2942 |
|
|
|
|
|
|
|
|
|
|
|
2943 |
#: templates/forms/trial-start.php:22
|
2944 |
+
#, php-format
|
2945 |
+
msgid ""
|
2946 |
+
"You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
|
2947 |
+
msgstr ""
|
2948 |
+
"Estás a sólo 1-click de comenzar tu %1$s días de prueba gratuita del plan "
|
2949 |
+
"%2$s."
|
2950 |
|
2951 |
#: templates/forms/trial-start.php:28
|
2952 |
+
#, php-format
|
2953 |
+
msgid ""
|
2954 |
+
"For compliance with the WordPress.org guidelines, before we start the trial "
|
2955 |
+
"we ask that you opt in with your user and non-sensitive site information, "
|
2956 |
+
"allowing the %s to periodically send data to %s to check for version updates "
|
2957 |
+
"and to validate your trial."
|
2958 |
+
msgstr ""
|
2959 |
+
"Para el cumplimiento de las directrices de WordPress.org, antes de empezar "
|
2960 |
+
"el período de prueba te pedimos que aceptes con tu usuario e información no "
|
2961 |
+
"sensible del sitio web, permitiendo a %s enviar datos periódicamente a %s "
|
2962 |
+
"para comprobar si hay actualizaciones de versión y para validar la versión "
|
2963 |
+
"de prueba."
|
2964 |
|
2965 |
#: templates/js/style-premium-theme.php:37
|
2966 |
msgid "Premium"
|
2982 |
msgid "Apply on all pending sites."
|
2983 |
msgstr "Aplicar en todos los sitios pendientes"
|
2984 |
|
2985 |
+
#: templates/partials/network-activation.php:36
|
2986 |
#: templates/partials/network-activation.php:68
|
2987 |
msgid "allow"
|
2988 |
msgstr "permitir"
|
2989 |
|
2990 |
+
#: templates/partials/network-activation.php:38
|
2991 |
#: templates/partials/network-activation.php:70
|
2992 |
msgid "delegate"
|
2993 |
msgstr "delegar"
|
2994 |
|
2995 |
+
#: templates/partials/network-activation.php:41
|
2996 |
#: templates/partials/network-activation.php:73
|
2997 |
msgid "skip"
|
2998 |
msgstr "saltar"
|
2999 |
|
3000 |
+
#: templates/plugin-info/description.php:72
|
3001 |
#: templates/plugin-info/screenshots.php:31
|
3002 |
+
#, php-format
|
3003 |
msgid "Click to view full-size screenshot %d"
|
3004 |
msgstr "Click para ver la captura de pantalla a tamaño completo %d"
|
3005 |
|
3007 |
msgid "Unlimited Updates"
|
3008 |
msgstr "Actualizaciones Ilimitadas"
|
3009 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|