Version Description
Released on 20 September 2022 =
New: support for WooCommerce 6.9
Tweak: added reload_on_back localized parameter
Update: YITH plugin framework
Download this release
Release Info
Developer | yithemes |
Plugin | YITH WooCommerce Ajax Product Filter |
Version | 4.14.0 |
Comparing to | |
See all releases |
Code changes from version 4.13.0 to 4.14.0
- assets/css/admin.css +2 -3
- assets/css/admin.css.map +1 -1
- assets/css/shortcodes.css +7 -6
- assets/css/shortcodes.css.map +1 -1
- assets/js/shortcodes/modules/yith-wcan-filter.js +4 -0
- assets/js/yith-wcan-admin-filters.js +33 -10
- assets/js/yith-wcan-admin-filters.min.js +1 -1
- assets/js/yith-wcan-shortcodes.js +4 -0
- assets/js/yith-wcan-shortcodes.js.map +1 -1
- assets/js/yith-wcan-shortcodes.min.js +1 -1
- assets/scss/shortcodes.scss +1 -0
- includes/class-yith-wcan-frontend.php +1 -0
- init.php +4 -4
- languages/yith-woocommerce-ajax-navigation-de_DE.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-de_DE.po +10 -10
- languages/yith-woocommerce-ajax-navigation-de_DE_formal.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-de_DE_formal.po +10 -10
- languages/yith-woocommerce-ajax-navigation-el.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-el.po +10 -10
- languages/yith-woocommerce-ajax-navigation-es_ES.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-es_ES.po +10 -10
- languages/yith-woocommerce-ajax-navigation-fr_FR.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-fr_FR.po +10 -10
- languages/yith-woocommerce-ajax-navigation-it_IT.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-it_IT.po +10 -10
- languages/yith-woocommerce-ajax-navigation-nl_NL.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-nl_NL.po +10 -10
- languages/yith-woocommerce-ajax-navigation-tr_TR.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-tr_TR.po +10 -10
- languages/yith-woocommerce-ajax-navigation.pot +10 -10
- plugin-fw/assets/css/welcome-modal.css +72 -0
- plugin-fw/assets/css/yith-bh-onboarding.css +1 -0
- plugin-fw/assets/css/yith-plugin-ui.css +73 -0
- plugin-fw/assets/js/welcome-modal.js +27 -0
- plugin-fw/assets/js/welcome-modal.min.js +1 -0
- plugin-fw/includes/class-yit-assets.php +2 -0
- plugin-fw/includes/class-yit-plugin-panel-woocommerce.php +1 -0
- plugin-fw/includes/class-yit-plugin-panel.php +271 -38
- plugin-fw/includes/class-yith-post-type-admin.php +1 -1
- plugin-fw/init.php +2 -2
- plugin-fw/languages/yith-plugin-fw-el.mo +0 -0
- plugin-fw/languages/yith-plugin-fw-el.po +88 -44
- plugin-fw/languages/yith-plugin-fw-es_ES.mo +0 -0
- plugin-fw/languages/yith-plugin-fw-es_ES.po +99 -59
- plugin-fw/languages/yith-plugin-fw-it_IT.mo +0 -0
- plugin-fw/languages/yith-plugin-fw-it_IT.po +99 -59
- plugin-fw/languages/yith-plugin-fw-nl_NL.mo +0 -0
- plugin-fw/languages/yith-plugin-fw-nl_NL.po +93 -54
- plugin-fw/languages/yith-plugin-fw-ru_RU.mo +0 -0
- plugin-fw/languages/yith-plugin-fw-ru_RU.po +93 -54
- plugin-fw/languages/yith-plugin-fw-zh_CN.mo +0 -0
- plugin-fw/languages/yith-plugin-fw-zh_CN.po +94 -56
- plugin-fw/languages/yith-plugin-fw.pot +88 -44
- plugin-fw/phpcs.xml +6 -0
- plugin-fw/templates/components/list-items.php +83 -0
- plugin-fw/templates/panel/welcome-modals/update.php +66 -0
- plugin-fw/templates/panel/welcome-modals/welcome.php +62 -0
- readme.txt +8 -2
assets/css/admin.css
CHANGED
@@ -1,4 +1,3 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
/* === Filter Preset List === */
|
3 |
#yith_wcan_panel_filter-preset {
|
4 |
position: relative;
|
@@ -120,7 +119,7 @@
|
|
120 |
}
|
121 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.shortcode .copy-on-click:after {
|
122 |
color: #9d9d9d;
|
123 |
-
content: "
|
124 |
font-family: "yith-icon";
|
125 |
font-size: 14px;
|
126 |
position: absolute;
|
@@ -681,7 +680,7 @@
|
|
681 |
}
|
682 |
#yith_wcan_panel_filter-preset-edit .preset-saved:before {
|
683 |
color: var(--yith-success);
|
684 |
-
content: "
|
685 |
font-family: yith-icon;
|
686 |
font-weight: 400;
|
687 |
font-size: 21px;
|
|
|
1 |
/* === Filter Preset List === */
|
2 |
#yith_wcan_panel_filter-preset {
|
3 |
position: relative;
|
119 |
}
|
120 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.shortcode .copy-on-click:after {
|
121 |
color: #9d9d9d;
|
122 |
+
content: "\f101";
|
123 |
font-family: "yith-icon";
|
124 |
font-size: 14px;
|
125 |
position: absolute;
|
680 |
}
|
681 |
#yith_wcan_panel_filter-preset-edit .preset-saved:before {
|
682 |
color: var(--yith-success);
|
683 |
+
content: "\e921";
|
684 |
font-family: yith-icon;
|
685 |
font-weight: 400;
|
686 |
font-size: 21px;
|
assets/css/admin.css.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sourceRoot":"","sources":["../scss/admin.scss"],"names":[],"mappings":"
|
1 |
+
{"version":3,"sourceRoot":"","sources":["../scss/admin.scss"],"names":[],"mappings":"AA4GA;AAEA;EACC;;AAGA;AAAA;EAEC;;AAID;EA9GA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;;AA+FD;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;AAIA;EA1GH;EACA;EACA;EACA;;AAGA;EACC;EACA;;AAID;EACC,cA5EgB;EA6EhB;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAIF;EACC;;AAGD;AAAA;EAEC,YArGoB;;AA8KhB;EACC;;AAEA;EACC;;AAIF;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACC;;AAEA;EACC;;AAEA;EAnLP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC,OA1DI;EA2DJ;EACA;;AA6JK;EACC;EACA;;AAMF;EACC;EACA;;;AASP;AAEA;EACC;;AAEA;EACC;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAIF;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACC;;AAEA;EACC;;AAEA;EACC;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;;;AAOL;AAKC;EACC;EACA;EAtTD;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;;AAwSD;EACC;EACA;EACA;EACA;;AAID;EACC;EACA;;AAID;EACC;EACA;EACA;;AAID;EACC;EACA;;AAEA;EACC;EACA;;AAKF;EACC;;AAID;EACC;;AAID;EACC;;AAGD;EACC;EACA;EACA;;AAID;EAxTA;EACA;EACA;EACA;EAwTC;EACA;EACA;EACA;;AAxTD;EACC;EACA;;AAID;EACC,cA5EgB;EA6EhB;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAIF;EACC;;AAGD;AAAA;EAEC,YArGoB;;AAgYpB;EACC;;AAGD;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EAzXF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC,OA1DI;EA2DJ;EACA;;AAkWC;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAIF;EACC;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;EACA;;AAGD;EACC;;AAEA;EACC;;AAIF;EACC;;AAGD;AAAA;EAEC;EACA;;AAEA;AAAA;AAAA;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;AAAA;EACC;EACA;;AAGD;AAAA;EACC;EACA;;AAGD;AAAA;EACC;EACA;EACA;;AAGD;AAAA;EACC;EACA;;AAEA;AAAA;EACC;;AAGD;AAAA;EACC;EACA;EACA;;AAGD;AAAA;EACC;EACA;EACA;;AAGD;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;;AAIF;AAAA;EACC;EACA;;AAEA;AAAA;EACC,OA7gBD;EA8gBC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKD;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACC;EACA;;AAGD;AAAA;EACC;EACA;EACA;EACA;;AAIF;AAAA;EACC;EACA;EACA;;AAEA;AAAA;EACC;EACA;;AAGD;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;AAAA;EACC,OAplBH;;AAwlBC;AAAA;EACC;;AAOH;AAAA;EACC;EACA;;AAGD;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC,OAvnBA;EAwnBA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAQL;EACC,kBAxoBoB;EAyoBpB;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC,kBAhpByB;EAipBzB,cAhpBqB;;AAqpBvB;EACC;EACA;EACA;EACA;EACA;EACA;EA9lBD;EACA;EACA;EACA;;AAGA;EACC;EACA;;AAID;EACC,cA5EgB;EA6EhB;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAIF;EACC;;AAGD;AAAA;EAEC,YArGoB;;AAiqBpB;EACC,YAlqBmB;;AAuqBrB;EACC;EACA;EACA;EACA;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKH;AAEA;EACC;EACA;EACA;EACA;;;AAGD;EACC;;AAEA;EACC;;AAGD;EACC;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;EAMC;;;AAGD;EACC;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOC;;;AAGD;EACC;EACA;EACA;;;AAGD;AAGC;AAAA;EAEC;;AAEA;AAAA;EACC;;AAIF;EACC","file":"admin.css"}
|
assets/css/shortcodes.css
CHANGED
@@ -115,11 +115,11 @@
|
|
115 |
border: 2px solid transparent;
|
116 |
border-radius: var(--yith-wcan-color_swatches_border_radius, 4px);
|
117 |
display: inline-block;
|
118 |
-
height: calc(var(
|
119 |
margin-bottom: 5px;
|
120 |
overflow: hidden;
|
121 |
vertical-align: middle;
|
122 |
-
width: calc(var(
|
123 |
}
|
124 |
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.color .term-color .color-swatch {
|
125 |
display: block;
|
@@ -140,11 +140,11 @@
|
|
140 |
border-radius: var(--yith-wcan-color_swatches_border_radius, 4px);
|
141 |
display: inline-block;
|
142 |
font-size: 0;
|
143 |
-
height: calc(var(
|
144 |
margin-bottom: 5px;
|
145 |
overflow: hidden;
|
146 |
vertical-align: middle;
|
147 |
-
width: calc(var(
|
148 |
}
|
149 |
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.color .term-image:hover {
|
150 |
border-color: var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
@@ -418,6 +418,7 @@
|
|
418 |
.yith-wcan-filters .yith-wcan-filter .filter-label .yith-wcan-tooltip {
|
419 |
bottom: calc(100% + 15px);
|
420 |
top: auto;
|
|
|
421 |
}
|
422 |
.yith-wcan-filters .yith-wcan-filter .with-tooltip {
|
423 |
position: relative;
|
@@ -1033,8 +1034,8 @@ body.rtl .yith-wcan-filters .yith-wcan-filter .filter-title.collapsable:after {
|
|
1033 |
color: #fff;
|
1034 |
}
|
1035 |
.yith-wcan-active-filters .reset-filters:hover {
|
1036 |
-
background-color: rgb(calc(
|
1037 |
-
border-color: rgb(calc(
|
1038 |
}
|
1039 |
|
1040 |
/* === 3. MOBILE FILTERS === */
|
115 |
border: 2px solid transparent;
|
116 |
border-radius: var(--yith-wcan-color_swatches_border_radius, 4px);
|
117 |
display: inline-block;
|
118 |
+
height: calc(var(--yith-wcan-color_swatches_size, 45px) + 4px);
|
119 |
margin-bottom: 5px;
|
120 |
overflow: hidden;
|
121 |
vertical-align: middle;
|
122 |
+
width: calc(var(--yith-wcan-color_swatches_size, 45px) + 4px);
|
123 |
}
|
124 |
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.color .term-color .color-swatch {
|
125 |
display: block;
|
140 |
border-radius: var(--yith-wcan-color_swatches_border_radius, 4px);
|
141 |
display: inline-block;
|
142 |
font-size: 0;
|
143 |
+
height: calc(var(--yith-wcan-color_swatches_size, 45px) + 4px);
|
144 |
margin-bottom: 5px;
|
145 |
overflow: hidden;
|
146 |
vertical-align: middle;
|
147 |
+
width: calc(var(--yith-wcan-color_swatches_size, 45px) + 4px);
|
148 |
}
|
149 |
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.color .term-image:hover {
|
150 |
border-color: var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
418 |
.yith-wcan-filters .yith-wcan-filter .filter-label .yith-wcan-tooltip {
|
419 |
bottom: calc(100% + 15px);
|
420 |
top: auto;
|
421 |
+
white-space: nowrap;
|
422 |
}
|
423 |
.yith-wcan-filters .yith-wcan-filter .with-tooltip {
|
424 |
position: relative;
|
1034 |
color: #fff;
|
1035 |
}
|
1036 |
.yith-wcan-active-filters .reset-filters:hover {
|
1037 |
+
background-color: rgb(calc(var(--yith-wcan-filters_colors_accent_r, 73) * 0.8), calc(var(--yith-wcan-filters_colors_accent_g, 139) * 0.8), calc(var(--yith-wcan-filters_colors_accent_b, 162) * 0.8));
|
1038 |
+
border-color: rgb(calc(var(--yith-wcan-filters_colors_accent_r, 73) * 0.8), calc(var(--yith-wcan-filters_colors_accent_g, 139) * 0.8), calc(var(--yith-wcan-filters_colors_accent_b, 162) * 0.8));
|
1039 |
}
|
1040 |
|
1041 |
/* === 3. MOBILE FILTERS === */
|
assets/css/shortcodes.css.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sourceRoot":"","sources":["../scss/shortcodes.scss"],"names":[],"mappings":"AAyJA;AAEA;EACC;EACA;;AAGC;EACC;;AAIF;EACC;;AAGA;EACC;;AAEA;EAlJF;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EAeA;;AAXA;EAOA;;AA4HG;EACC;;AAGD;EACC;;AAMH;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAIF;EACC;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;AAGD;EAEC;EACA;;AAGA;EAEC,OAxNU;EAyNV;;AAGD;EAEC;;AAGD;EACC;;AAGD;EAEC,OAnOY;EAoOZ;;AAGD;EAEC;;AAID;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EAEC;EACA;;AAGD;EAEC;;AAGD;EACC;EACA;EACA;;AAEA;AAAA;EAEC;EACA;;AAGD;EACC;EACA;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAGD;EACC,cA/SQ;;AAmTV;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC,cA/TQ;;AAkUT;EACC;EACA;;AAIF;EAEC;;AAGD;EACC;EACA;EACA;EACA;;AAGD;EACC;;AAKD;EACC,cA3VS;;AA8VV;EA5RJ,kBAlEc;EAmEd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAkRG;EACC;EACA;EACA,eAnWW;EAoWX;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;;AAEA;EApTL,kBAlEc;EAmEd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAuSM;EACA;;AAIF;EAEC;EACA,OAjYS;;AAoYV;EACC;EACA;EACA;;AAEA;AAAA;EAEC;;AAIF;EACC;EACA;EACA;;AAEA;AAAA;EAEC;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA,OAnaQ;;AAqaR;EACC;;AAQF;EACC;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAIF;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;;AAGD;EACC;;AAKF;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EAnbJ;;AAubI;EA3bJ;;AA+bI;EACC;;AAKF;EACC,OA/eY;EAgfZ;;AAID;EA3eH;EACA;EACA;EACA;;AA6eG;EACC,kBA/fU;EAggBV,cAhgBU;;AAkgBX;EACC,kBAngBU;;AA8Ib;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAkYC;EACC;;AAID;EA1aD,kBAtGc;EAuGd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAqaE;EACA;EACA;;AAraF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAyZC;AAAA;EACC;EACA;;AAIF;EACC;;AAEA;EACC;;AAMD;AAAA;EACC;EACA;EACA;EACA;EACA;;AAMD;EACC;;AAEA;EACC;EACA;EACA;;AAGD;AAAA;EAEC;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAIF;EACC;;AAEA;AAAA;EAEC;EACA;EACA;;AAIF;AAAA;EAEC;EACA,
|
1 |
+
{"version":3,"sourceRoot":"","sources":["../scss/shortcodes.scss"],"names":[],"mappings":"AAyJA;AAEA;EACC;EACA;;AAGC;EACC;;AAIF;EACC;;AAGA;EACC;;AAEA;EAlJF;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EAeA;;AAXA;EAOA;;AA4HG;EACC;;AAGD;EACC;;AAMH;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAIF;EACC;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;AAGD;EAEC;EACA;;AAGA;EAEC,OAxNU;EAyNV;;AAGD;EAEC;;AAGD;EACC;;AAGD;EAEC,OAnOY;EAoOZ;;AAGD;EAEC;;AAID;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EAEC;EACA;;AAGD;EAEC;;AAGD;EACC;EACA;EACA;;AAEA;AAAA;EAEC;EACA;;AAGD;EACC;EACA;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAGD;EACC,cA/SQ;;AAmTV;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC,cA/TQ;;AAkUT;EACC;EACA;;AAIF;EAEC;;AAGD;EACC;EACA;EACA;EACA;;AAGD;EACC;;AAKD;EACC,cA3VS;;AA8VV;EA5RJ,kBAlEc;EAmEd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAkRG;EACC;EACA;EACA,eAnWW;EAoWX;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;;AAEA;EApTL,kBAlEc;EAmEd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAuSM;EACA;;AAIF;EAEC;EACA,OAjYS;;AAoYV;EACC;EACA;EACA;;AAEA;AAAA;EAEC;;AAIF;EACC;EACA;EACA;;AAEA;AAAA;EAEC;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA,OAnaQ;;AAqaR;EACC;;AAQF;EACC;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAIF;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;;AAGD;EACC;;AAKF;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EAnbJ;;AAubI;EA3bJ;;AA+bI;EACC;;AAKF;EACC,OA/eY;EAgfZ;;AAID;EA3eH;EACA;EACA;EACA;;AA6eG;EACC,kBA/fU;EAggBV,cAhgBU;;AAkgBX;EACC,kBAngBU;;AA8Ib;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAkYC;EACC;;AAID;EA1aD,kBAtGc;EAuGd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAqaE;EACA;EACA;;AAraF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAyZC;AAAA;EACC;EACA;EACA;;AAIF;EACC;;AAEA;EACC;;AAMD;AAAA;EACC;EACA;EACA;EACA;EACA;;AAMD;EACC;;AAEA;EACC;EACA;EACA;;AAGD;AAAA;EAEC;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAIF;EACC;;AAEA;AAAA;EAEC;EACA;EACA;;AAIF;AAAA;EAEC;EACA,eA5lBY;;AA+lBb;EACC,kBApmBW;;AAumBZ;EACC;EACA,kBAzmBW;EA0mBX;EACA;EACA;EACA;;AAGD;AAAA;EAEC;EACA;;AAGD;AAAA;AAAA;EAhhBF,kBAtGc;EAuGd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA6gBG;;AA3gBH;AAAA;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;AAAA;AAAA;EACC;EACA;;AA4fE;AAAA;AAAA;EACC;EACA;EACA;EACA;EACA;;AAMH;EACC;EACA,eAtoBa;EAuoBb;EAtnBF;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EAeA;;AAXA;EAOA;;AAimBE;EACC;EACA;EACA,eA9oBY;EA+oBZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;EACA;;AAEA;EACC,cArqBQ;EAsqBR;EACA,eAvqBQ;;AA2qBV;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACC;EACA;EACA;;AAEA;EACC;;AAEA;EACC;EACA;;AA5oBN;EACC;EACA;;AAGD;EACC,kBA5Da;EA6Db,eAzDc;;AAqsBZ;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC,OAhtBS;;AAqtBZ;EACC;;AAEA;EA3sBH;EACA;EACA;EACA;;AA6sBE;EACC;EACA;;AAEA;EACC;;AAMH;EACC;EACA;EACA;EACA;;AAMD;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA,eApwBY;EAqwBZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA,kBAxxBW;EAyxBX,cAzxBW;EA0xBX;EACA;;AAIF;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC,kBAj0BW;EAk0BX;;AAIF;EACC,OAj0BU;;AAs0BZ;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAEA;EACC,YAx1BU;EAy1BV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAIF;EACC;EACA;EACA;EACA;;AA9zBF;EACC;EACA;;AAGD;EACC,kBA5Da;EA6Db,eAzDc;;AAo3Bb;EACC;EACA;EACA;;AAIF;EACC;;AAGD;EACC;EACA,eAj4Ba;EAk4Bb;EACA;;AAEA;EACC;;AAEA;EACC;;AAIF;EACC;;AAIF;EACC;EACA;EACA;;AAGD;EACC,OA55BY;EA65BZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC,OA56BW;;AAg7Bb;EACC,kBAj7BY;EAk7BZ,cAl7BY;EAm7BZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA,eA18BY;EA28BZ;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EACA;;AAGD;EAEC;EACA;;AAGD;EACC;EACA;EACA,eAr+BW;EAs+BX;EACA;EACA;EACA;EACA,SAp+BK;;AAs+BL;EACC,kBAz+BY;EA0+BZ;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EAEA;EACA;;AAOJ;EACC;EACA;EACA;EACA;;AAr9BH;EACC;EACA;;AAGD;EACC,kBA5Da;EA6Db,eAzDc;;AA4gCb;EACC;;AAKA;EACC;;AAEA;EACC;;AAKD;EACC;;AAMJ;EACC;;;AAKH;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAhjCS;;AAkjCT;EACC;;;AAQE;EACC;EACA;;AAIH;EACU;EACA;;;AAKZ;EACC;IACC;;;AAIF;EACC;IACC;;;AAIF;AAEA;EACC;EACA;;AAEA;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EAxhCD;EACA;EACA,OAvFc;EAwFd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA+gCE;;AAEA;EAjjCF,kBAlEc;EAmEd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAqiCE;EAzmCF;EACA;EACA;EACA;EAwmCG;;AAKH;EACC;;AAGD;EACC,OA7nCW;;AAgoCZ;EAhjCA;EACA;EACA,OAvFc;EAwFd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAuiCC,kBAzoCa;EA0oCb;;AAEA;EACC;EACA;;;AAKH;AAEA;EACC;EACA,eAnpCe;EAopCf;EACA,OAxpCc;EAypCd;EACA,eA3pCc;;AA6pCd;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC,YA1qCa;EA2qCb,cA3qCa;EA4qCb;;AAEA;EACC","file":"shortcodes.css"}
|
assets/js/shortcodes/modules/yith-wcan-filter.js
CHANGED
@@ -28,6 +28,10 @@ export default class YITH_WCAN_Filter {
|
|
28 |
|
29 |
// init page reload when popstate event alter filters
|
30 |
initPopState() {
|
|
|
|
|
|
|
|
|
31 |
this.pushUrlToHistory( window.location, document.title, null, true );
|
32 |
|
33 |
$( window ).on( 'popstate', function () {
|
28 |
|
29 |
// init page reload when popstate event alter filters
|
30 |
initPopState() {
|
31 |
+
if ( ! yith_wcan_shortcodes.reload_on_back ) {
|
32 |
+
return;
|
33 |
+
}
|
34 |
+
|
35 |
this.pushUrlToHistory( window.location, document.title, null, true );
|
36 |
|
37 |
$( window ).on( 'popstate', function () {
|
assets/js/yith-wcan-admin-filters.js
CHANGED
@@ -23,13 +23,6 @@ function YITH_WCAN_Filters( $ ) {
|
|
23 |
filter_design: {
|
24 |
type: [ 'tax', 'review', 'price_range' ],
|
25 |
},
|
26 |
-
label_position: {
|
27 |
-
filter_design: [ 'label', 'color' ],
|
28 |
-
},
|
29 |
-
column_number: {
|
30 |
-
filter_design: [ 'label', 'color' ],
|
31 |
-
label_position: [ 'below', 'hide' ],
|
32 |
-
},
|
33 |
customize_terms: {
|
34 |
type: 'tax',
|
35 |
use_all_terms: '!:checked',
|
@@ -39,6 +32,36 @@ function YITH_WCAN_Filters( $ ) {
|
|
39 |
customize_terms: ':checked',
|
40 |
__show: ( $filter ) => self.updateTerms( $filter, true ),
|
41 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
show_search: {
|
43 |
type: 'tax',
|
44 |
filter_design: 'select',
|
@@ -748,7 +771,7 @@ function YITH_WCAN_Filters( $ ) {
|
|
748 |
if ( Array.isArray( condition ) ) {
|
749 |
result = condition.includes( fieldValue );
|
750 |
} else if ( typeof condition === 'function' ) {
|
751 |
-
result = condition( fieldValue );
|
752 |
} else if ( 0 === condition.indexOf( ':' ) ) {
|
753 |
result = $field.is( condition );
|
754 |
} else if ( 0 === condition.indexOf( '!:' ) ) {
|
@@ -1334,7 +1357,7 @@ function YITH_WCAN_Filters( $ ) {
|
|
1334 |
|
1335 |
$selected.prepend( $selectedImg );
|
1336 |
|
1337 |
-
$input.val( attachment.id );
|
1338 |
|
1339 |
self.unblock( $placeholder );
|
1340 |
|
@@ -1353,7 +1376,7 @@ function YITH_WCAN_Filters( $ ) {
|
|
1353 |
$clear.off( 'click' ).on( 'click', function ( ev ) {
|
1354 |
ev.preventDefault();
|
1355 |
|
1356 |
-
$input.val( '' );
|
1357 |
|
1358 |
$selected.hide();
|
1359 |
$placeholder.show();
|
23 |
filter_design: {
|
24 |
type: [ 'tax', 'review', 'price_range' ],
|
25 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
customize_terms: {
|
27 |
type: 'tax',
|
28 |
use_all_terms: '!:checked',
|
32 |
customize_terms: ':checked',
|
33 |
__show: ( $filter ) => self.updateTerms( $filter, true ),
|
34 |
},
|
35 |
+
label_position: {
|
36 |
+
filter_design: ( v, $fd, $fl ) => {
|
37 |
+
if ( 'color' === v ) {
|
38 |
+
return true;
|
39 |
+
}
|
40 |
+
|
41 |
+
if ( 'label' === v ) {
|
42 |
+
const $terms_options = self._findFilterField(
|
43 |
+
$fl,
|
44 |
+
'terms_options'
|
45 |
+
);
|
46 |
+
|
47 |
+
if (
|
48 |
+
$terms_options.length &&
|
49 |
+
$terms_options.is( ':visible' ) &&
|
50 |
+
$terms_options
|
51 |
+
.find( 'input[name*=image]' )
|
52 |
+
.filter( ( i, e ) => !! $( e ).val() ).length
|
53 |
+
) {
|
54 |
+
return true;
|
55 |
+
}
|
56 |
+
}
|
57 |
+
|
58 |
+
return false;
|
59 |
+
},
|
60 |
+
},
|
61 |
+
column_number: {
|
62 |
+
filter_design: [ 'label', 'color' ],
|
63 |
+
label_position: [ 'below', 'hide' ],
|
64 |
+
},
|
65 |
show_search: {
|
66 |
type: 'tax',
|
67 |
filter_design: 'select',
|
771 |
if ( Array.isArray( condition ) ) {
|
772 |
result = condition.includes( fieldValue );
|
773 |
} else if ( typeof condition === 'function' ) {
|
774 |
+
result = condition( fieldValue, $field, $filter );
|
775 |
} else if ( 0 === condition.indexOf( ':' ) ) {
|
776 |
result = $field.is( condition );
|
777 |
} else if ( 0 === condition.indexOf( '!:' ) ) {
|
1357 |
|
1358 |
$selected.prepend( $selectedImg );
|
1359 |
|
1360 |
+
$input.val( attachment.id ).change();
|
1361 |
|
1362 |
self.unblock( $placeholder );
|
1363 |
|
1376 |
$clear.off( 'click' ).on( 'click', function ( ev ) {
|
1377 |
ev.preventDefault();
|
1378 |
|
1379 |
+
$input.val( '' ).change();
|
1380 |
|
1381 |
$selected.hide();
|
1382 |
$placeholder.show();
|
assets/js/yith-wcan-admin-filters.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
"use strict";function YITH_WCAN_Filters(e){const t=this;t.rowIndex=0,t.dependencies={taxonomy:{type:"tax"},use_all_terms:{type:"tax"},term_ids:{type:"tax",use_all_terms:"!:checked"},filter_design:{type:["tax","review","price_range"]},label_position:{filter_design:["label","color"]},column_number:{filter_design:["label","color"],label_position:["below","hide"]},customize_terms:{type:"tax",use_all_terms:"!:checked"},terms_options:{term_ids:e=>!!e,customize_terms:":checked",__show:e=>t.updateTerms(e,!0)},show_search:{type:"tax",filter_design:"select"},price_ranges:{type:"price_range"},price_slider_adaptive_limits:{type:"price_slider"},price_slider_design:{type:"price_slider"},price_slider_min:{type:"price_slider",price_slider_adaptive_limits:"!:checked"},price_slider_max:{type:"price_slider",price_slider_adaptive_limits:"!:checked"},price_slider_step:{type:"price_slider"},order_options:{type:"orderby"},show_stock_filter:{type:"stock_sale"},show_sale_filter:{type:"stock_sale"},show_featured_filter:{type:"stock_sale"},toggle_style:{show_toggle:":checked"},order_by:{type:"tax"},order:{type:"tax"},show_count:{type:["tax","price_range","review","stock_sale"]},hierarchical:{type:"tax",filter_design:["checkbox","radio","text"]},multiple:{type:["tax","review","price_range"],filter_design:"!radio"},relation:{type:"tax",multiple:":checked"},adoptive:{type:["tax","price_range","review","stock_sale"]}},t.$form=e("#plugin-fw-wc"),t.$mainAddNewFilterButton=e("#add_new_filter"),t.$addNewFilterButtons=e(".add-new-filter"),t.$loadMoreFiltersButtons=e(".load-more-filters"),t.$filtersContainer=e(".preset-filters"),t.$filters=t.$filtersContainer.find(".yith-toggle-row"),t.$layout=e("#preset_layout"),t.$page=e("#paged"),t.$submit=e("#submit"),t.init=function(){t.initFilters(),t.initAddFilter(),t.initLoadMoreFilters(),t.initLayout(),t.initSubmit()},t.initAddFilter=function(){t.$addNewFilterButtons.on("click",(function(e){e.preventDefault(),t.addFilter()}))},t.initLoadMoreFilters=function(){t.$loadMoreFiltersButtons.on("click",(function(e){e.preventDefault(),t.loadMoreFilters()}))},t.initSubmit=function(){t.$submit.on("click",(()=>!!t.$form.get(0).reportValidity()&&(!!t.validateFilters()&&void t.block(t.$form))))},t.initLayout=function(){t.$layout.on("change","input",(()=>{t.afterLayoutChange()})).find("input").first().change()},t.initFilters=function(){t.initFiltersDragDrop(),t.$filters.each((function(){t.initFilter(e(this))}))},t.initFiltersDragDrop=function(){t.$filtersContainer.sortable({cursor:"move",handle:".yith-toggle-title",axis:"y",scrollSensitivity:40,forcePlaceholderSize:!0})},t.initFilter=function(e){e.hasClass("initialized")||(t.initFilterTitle(e),t.initFilterToggle(e),t.initFilterFieldsDependencies(e),t.initFilterFields(e),t.initFilterSave(e),t.initFilterDelete(e),t.initFilterClone(e),t.initTerms(e),t.initRanges(e),e.addClass("initialized"))},t.initFilterFields=function(e){t.initFilterTermSearch(e),t.initFilterCustomizeTerms(e),t.initTaxonomy(e),t.initFilterType(e),t.initFilterDesign(e),t.initFilterCurrencyFields(e),t.clearFilterErrors(e),t.initInvalidFields(e)},t.initFilterFieldsDependencies=function(e){e.find(":input").on("change",(()=>{t._applyFilterDependencies(e)})).first().change()},t.initFilterTermSearch=function(i){const n=i.find(".term-search").first(),r=i.find(".taxonomy").first(),o=n.closest(".yith-plugin-fw-field-wrapper"),a=function(e){return{term:e.term,all:void 0!==e.all?e.all:0,taxonomy:r.val(),selected:n.val(),action:"yith_wcan_search_term",security:yith_wcan_admin.nonce.search_term}},l={placeholder:e(this).data("placeholder"),minimumInputLength:"1",templateSelection:e=>t.removeHierarchyFromString(e.text),templateResult:e=>e.text.replace("&","&"),ajax:{url:ajaxurl,dataType:"json",delay:250,data:a,processResults(t){const i=[];return t&&e.each(t,(function(e,t){i.push({id:e,text:t})})),{results:i}},cache:!0},sorter:e=>e};n.selectWoo(l),n.on("change",(()=>{t.updateTerms(i)})),o.find(".yith-plugin-fw-select-all").on("click",(function(i){return i.preventDefault(),!!t._confirmAddAllTerms(r)&&(t.block(o),e.get(ajaxurl,a({term:"",all:1})).then((i=>{let r=n.val();r||(r=[]),n.find("option").not(":selected").remove(),e.each(i,(function(t,i){r.push(t),n.append(e("<option/>",{value:t,text:i}))})),n.val(r).change(),t.unblock(o)})),!1)})),o.find(".yith-plugin-fw-deselect-all").on("click",(function(e){return e.preventDefault(),n.find("option").remove().end().val("").change(),!1}))},t.initFilterCustomizeTerms=function(e){const i=e.find(".customize-terms").find("input"),n=e.find(".order-by");i.on("change",(()=>{n.find('[value="include"]').prop("disabled",!i.is(":checked")),n.removeClass("enhanced").trigger("wc-enhanced-select-init"),!n.val()&&n.val("name"),t.updateTerms(e)})).change()},t.initTaxonomy=function(e){const i=e.find(".taxonomy").first(),n=e.find(".filter-design").first();i.on("change",(()=>{t.afterTaxonomyChange(e)})),n.on("change",(()=>{t.customizeTermsNotice(e)}))},t.initFilterType=function(t){const i=t.find(".filter-type"),n=t.find(".filter-design");i.on("change",(()=>{switch(i.val()){case"review":case"price_range":n.find('[value="color"]').remove().end().find('[value="label"]').remove();break;default:for(let t in yith_wcan_admin.supported_designs)yith_wcan_admin.supported_designs.hasOwnProperty(t)&&(n.find(`[value="${t}"]`).length||n.append(e("<option/>",{value:t,text:yith_wcan_admin.supported_designs[t]})))}n.change()})).change()},t.initFilterDesign=function(e){e.find(".filter-design").on("change",(()=>{t.updateTermFields(e,t.getTermsType(e))})).change()},t.initFilterTitle=function(e){const t=e.find(".heading-field").first(),i=e.find("h3.title");i.length&&t.length&&t.on("keyup",(()=>{const e=t.val();i.html(e||'<span class="no-title">'+yith_wcan_admin.labels.no_title+"</span>")}))},t.initFilterSave=function(e){e.find(".save").on("click",(function(i){return i.stopPropagation(),t.saveFilter(e),!1}))},t.initFilterDelete=function(e){e.find(".delete").on("click",(function(i){return i.stopPropagation(),t.removeFilter(e),!1}))},t.initFilterClone=function(e){e.find(".clone").on("click",(function(i){return i.stopPropagation(),t.cloneFilter(e),!1}))},t.initFilterToggle=function(i){i.find(".yith-toggle-title").on("click",(function(i){const n=e(i.target);if(i.preventDefault(),n.is(".yith-plugin-fw-onoff")){const e=n.prev('input[type="checkbox"]');return e.prop("checked",!e.prop("checked")),!1}const r=e(this).parent();return r.hasClass("yith-toggle-row-opened")?t.closeFilter(r):t.openFilter(r),!1}))},t.initFilterCurrencyFields=function(t){t.find("[data-currency]").each((function(){const t=e(this),i=e("<span/>",{text:t.data("currency"),class:"currency"});t.after(i)}))},t.initInvalidFields=function(i){i.find(":input").on("invalid",(n=>{const r=n.target,o=e(r);n.preventDefault(),t.goToFilter(i,o).done((()=>{t.addInputValidationMessage(o,r.validationMessage)}))}))},t.afterAddFilter=function(e){t.closeAllFilters(),t.openFilter(e),t.updateFilters(),t.maybeHideEmptyBox(t.$filtersContainer,t.$filters),t.$mainAddNewFilterButton.show(),e.trigger("yith_fields_init"),t.initFilter(e)},t.afterRemoveFilter=function(){t.updateFilters(),t.maybeShowEmptyBox(t.$filtersContainer,t.$filters),t.$filters.length||t.$mainAddNewFilterButton.hide()},t.afterTaxonomyChange=function(e){e.find(".term-search").first().find("option").remove().end().change(),t.customizeTermsNotice(e)},t.afterLayoutChange=function(){const i=t.$layout.find(":checked").val();t.$filters.each(((t,n)=>{const r=e(n),o=r.find(".show-toggle"),a=o.closest(".yith-toggle-content-row");"horizontal"===i?(o.find(":input").prop("checked",!1).removeClass("onoffchecked").change(),a.hide(),r.find(".term-tooltip").hide()):(a.show(),r.find(".term-tooltip").show())}))},t.customizeTermsNotice=function(e){const t=e.find(".taxonomy").first(),i=e.find(".filter-design").first(),n=e.find(".customize-terms").parent(),r=n.closest(".yith-toggle-content-row"),o=n.next(".description"),a=n.find("input"),l=o.find(".wccl-notice"),s=o.find(".images-notice"),d=t.data("taxonomies"),c=t.val(),f=i.val();yith_wcan_admin.yith_wccl_enabled&&d[c]?.is_attribute?l.show():l.hide(),d[c]?.supports_images&&"label"===f?s.show():s.hide(),"color"!==f||yith_wcan_admin.yith_wccl_enabled&&d[c]?.is_attribute?r.removeClass("disabled"):(a.prop("checked",!0),r.addClass("disabled"))},t.clearFilterErrors=function(t){t.on("change keydown",":input",(function(){const t=e(this);t.hasClass("validation-error")&&(t.removeClass("validation-error").removeClass("required-field-empty"),t.next(".validation-message").remove())}))},t._findFilterField=function(e,t,i=!0){let n;switch(t){case"terms_options":n=e.find(".terms-wrapper");break;case"price_ranges":n=e.find(".ranges-wrapper");break;default:n=e.find(':input[name*="['+t+']"]')}return n.length?i?n.closest(".yith-toggle-content-row"):n:null},t._applyFilterDependencies=function(i){e.each(t.dependencies,(function(e,n){const r=t._findFilterField(i,e);t._checkFilterFieldConditions(i,n)?(r?.css({display:"table"}),"function"==typeof n?.__show&&n?.__show(i)):(r?.hide(),"function"==typeof n?.__hide&&n?.__hide(i))}))},t._checkFilterFieldConditions=function(i,n){let r=!0;return e.each(n,(function(e,n){let o,a;r&&!["__show","__hide"].includes(e)&&(o=t._findFilterField(i,e,!1),o?.length&&(a=o.first().is('input[type="radio"]')?o.filter(":checked").val().toString():o?.val()?.toString(),r=Array.isArray(n)?n.includes(a):"function"==typeof n?n(a):0===n.indexOf(":")?o.is(n):0===n.indexOf("!:")?!o.is(n.toString().substring(1)):0===n.indexOf("!")?n.toString().substring(1)!==a:n.toString()===a,void 0!==t.dependencies[e]&&(r=r&&t._checkFilterFieldConditions(i,t.dependencies[e]))))})),r},t._confirmAddAllTerms=function(e){let t=e.val(),i=e.data("taxonomies"),n=yith_wcan_admin.messages.confirm_add_all_terms;return!(i[t]?.terms_count&&i[t]?.terms_count>1)||(n=n.replace("%s",i[t]?.terms_count),confirm(n))},t.addFilter=function(){const i=wp.template("yith-wcan-filter")({id:t.nextRowIndex()}),n=e(i);return t.$filtersContainer.append(n),t.afterAddFilter(n),n},t.removeFilter=function(e){confirm(yith_wcan_admin.messages.confirm_delete)&&t.ajaxDeleteFilter(e).done((()=>{e.remove(),t.afterRemoveFilter()}))},t.getFilterData=function(i){return t.serialize(i,(e=>e.replace(/filters\[[0-9]+]\[([a-z_-]+)]/,"$1")),((t,i)=>!e(i).is('select[name*="terms"]')))},t.populateFilter=function(i,n){for(const r in n){const o=t.getRowIndex(i),a=n[r];let l="terms"===r?`filters_${o}_term_ids`:`filters_${o}_${r}`,s=i.find(`#${l}`);if(s.length||"price_ranges"===r)if("terms"===r){const n=a;if("object"!=typeof n)continue;for(const t in n){if(!n[t]?.label)continue;const i=e("<option/>",{value:t,text:n[t]?.label,selected:!0});s.append(i)}s.change(),t.updateTerms(i,!0);for(const e in n)for(const t in n[e]){const r=`filters_${o}_terms_${e}_${t}`,a=i.find(`#${r}`);a.length&&a.val(n[e][t])}}else if("price_ranges"===r){const e=a;if("object"!=typeof e)continue;for(const n in e){const r=e[n];t.addRange(i,r.min,r.max,r.unlimited)}}else s.is(":checkbox")?s.prop("checked","yes"===a).val(a).change():s.is('[data-type="radio"]')?s.find(":input").prop("checked",!1).filter('[value="'+a+'"]').prop("checked",!0).change():"title"===r?s.val(n[r]).keyup():s.val(n[r]).change()}},t.cloneFilter=function(i){t.closeAllFilters((()=>{const n=t.addFilter(),r=t.getRowIndex(i),o=t.currentRowIndex();i.find(":input").each((function(){let i,a,l=e(this),s=l.attr("id");void 0!==s&&(a=s.replace("filters_"+r+"_","filters_"+o+"_"),i=n.find("#"+a),i.length&&(i.is('input[type="radio"]')||i.is('input[type="checkbox"]')?i.prop("checked",l.is(":checked")):i.is("select")?(i.find("option").length||l.find("option").clone().appendTo(i),i.val(l.val())):i.val(l.val()),-1===a.indexOf("color_2")||l.prop("disabled")||t.showTermAdditionalColor(i.closest(".term-box")),-1!==a.indexOf("mode")&&t.showTermTab(i.closest(".term-box"),i.val()),-1!==a.indexOf("image")&&i.val()&&i.closest(".image-selector").find(".placeholder-image").hide().end().find(".selected-image").show().append(l.closest(".image-selector").find(".selected-image").find("img").clone()),i.change().keyup()))}))}))},t.saveFilter=function(e){if(!t.validateFilter(e))return!1;t.ajaxSaveFilter(e).done((i=>{t.maybeSetPresetId(i.id),t.closeFilter(e)}))},t.isFilterOpen=function(e){return e.hasClass("yith-toggle-row-opened")},t.openFilter=function(e){return e.find(".yith-toggle-title").find(".title-arrow").removeClass("yith-icon-arrow-right-alt").addClass("yith-icon-arrow-down-alt"),e.addClass("yith-toggle-row-opened").find(".yith-toggle-content").slideDown().promise()},t.isFilterClosed=function(e){return!t.isFilterOpen(e)},t.closeFilter=function(e){return e.find(".yith-toggle-title").find(".title-arrow").addClass("yith-icon-arrow-right-alt").removeClass("yith-icon-arrow-down-alt"),e.find(".yith-toggle-content").slideUp(400,(function(){e.removeClass("yith-toggle-row-opened")})).promise()},t.closeAllFilters=function(e){t.closeFilter(t.$filters).done((()=>{"function"==typeof e&&e()}))},t.loadMoreFilters=function(){let i=t.$page.val();t.doAjax("yith_wcan_load_more_filters",{preset:t.getPresetId(),page:++i,_wpnonce:yith_wcan_admin.nonce.load_more_filters},t.$loadMoreFiltersButtons,{method:"get"}).done((n=>{if(n){if(n.filters)for(const i in n.filters){const r=n.filters[i],o=wp.template("yith-wcan-filter")({id:i}),a=e(o);t.populateFilter(a,r),t.$filtersContainer.append(a),t.afterAddFilter(a),a.find(".heading-field").keyup()}n.has_more?t.$page.val(i):(t.$loadMoreFiltersButtons.remove(),t.$page.remove(),t.$page=null),t.updateFilters()}}))},t.updateFilters=function(){t.$filters=t.$filtersContainer.find(".yith-toggle-row"),t.updateRowIndex()},t.validateFilters=function(){let i=!0;return t.$filters.each((function(){if(!i)return;let n=e(this);i=t.validateFilter(n)})),i},t.validateFilter=function(e){const i=t.$layout.find(":checked").val(),n=e.find(".filter-title"),r=n?.val();if("horizontal"===i&&!r)return t.addInputValidationMessage(n,yith_wcan_admin.messages.filter_title_required),t.goToFilter(e),!1;let o=!0;return e.find(":input").each((function(){o&&(o=this.reportValidity())})),o},t.goToFilter=function(i,n){return t.isFilterOpen(i)?(n=n||i,e("html, body").stop(!0).animate({scrollTop:n.offset().top-100}).promise()):e("html, body").stop(!0).animate({scrollTop:i.offset().top-100}).promise().done((()=>{t.openFilter(i),n&&n.length&&e("html, body").animate({scrollTop:n.offset().top-100})}))},t.getRowIndex=function(e){const t=e.data("item_key");return t?parseInt(t):0},t.updateRowIndex=function(){let i=0;t.$filters.each((function(t){const n=e(this).data("item_key");i=i<n?n:i})),t.rowIndex=i},t.nextRowIndex=function(){return t.rowIndex||t.updateRowIndex(),++t.rowIndex},t.currentRowIndex=function(){return t.rowIndex||t.updateRowIndex(),t.rowIndex},t.getTerms=function(e){return e.find(".term-box")},t.getTermsType=function(e){const t=e.find(".filter-design")?.val();return"label"!==t&&"color"!==t?"labels_only":"color"===t?"complete":"image_only"},t.initTerms=function(i){const n=i.find(".term-box"),r=i.find(".order-by");n.each((function(){t.initTerm(e(this))})),r.on("change",(function(){const n=e(this).val();t["include"===n?"initTermsDragDrop":"destroyTermsDragDrop"](i)})).change()},t.initTerm=function(e){t.initTermTabs(e),t.initTermImageSelector(e),t.initTermAdditionalColor(e)},t.initTermTabs=function(i){i.find(".term-tab-header").on("click",(function(n){const r=e(this).data("tab");n.preventDefault(),t.showTermTab(i,r)})),t.showTermTab(i,i.find(".term-mode").val())},t.initTermAdditionalColor=function(i){i.find(".term-add-second-color").on("click",(function(n){e(this);n.preventDefault(),t.showTermAdditionalColor(i)})),i.find(".term-hide-second-color").on("click",(function(n){e(this);n.preventDefault(),t.hideTermAdditionalColor(i)}))},t.initTermImageSelector=function(i){let n,r=i.find(".image-selector"),o=r.find(".placeholder-image"),a=r.find(".selected-image"),l=a.find("img"),s=r.find(".term-image"),d=a.find(".clear-image");o.off("click").on("click",(function(){t.block(o),n||(n=wp.media({title:yith_wcan_admin.labels.upload_media,button:{text:yith_wcan_admin.labels.confirm_media},multiple:!1}),n.on("select",(function(){const i=n.state().get("selection").first().toJSON();l.remove(),l=e("<img/>",{src:i.url}),a.prepend(l),s.val(i.id),t.unblock(o),o.hide(),a.show()})),n.on("close",(function(){t.unblock(o)}))),n.open()})),d.off("click").on("click",(function(e){e.preventDefault(),s.val(""),a.hide(),o.show()}))},t.initTermsDragDrop=function(e){try{e.find(".terms-wrapper").sortable({cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone"})}catch(e){}},t.destroyTermsDragDrop=function(e){try{e.find(".terms-wrapper").sortable("destroy")}catch(e){}},t.showTermTab=function(e,t,i){const n=e.find(".term-tab-header"),r=e.find(".tab"),o=r.filter(".tab-"+t);if(!o.length||!n.is(":visible")&&!i)return;const a=e.find(".term-mode");n.removeClass("active").filter('[data-tab="'+t+'"]').addClass("active"),r.hide(),o.show(),a.val(t)},t.showTermAdditionalColor=function(e){e.find(".term-add-second-color").parent().hide().next(".additional-color").show().find(".wp-color-picker").prop("disabled",!1)},t.hideTermAdditionalColor=function(e){e.find(".term-hide-second-color").parent().find(".wp-color-picker").prop("disabled",!0).end().hide().prev("p").show()},t.updateTerms=function(i,n){const r=i.find(".terms-wrapper");if(!n&&!r.is(":visible"))return;const o=t._getSelectedTerms(i),a=[],l=wp.template("yith-wcan-filter-term"),s=r.find(".term-box");o&&e.each(o,(function(n,r){const o=s.filter('[data-term_id="'+r.id+'"]');if(o.length)a.push(o);else{const n=l({id:t.getRowIndex(i),term_id:r.id,name:r.name,label:r.name,tooltip:""}),o=e(n);a.push(o)}})),s.detach(),a.length&&e.each(a,(function(e,i){r.append(i),t.afterAddTerm(i)})),t.updateTermFields(i,t.getTermsType(i)),i.trigger("yith_fields_init")},t.updateTermFields=function(i,n){const r=i.find(".term-box");switch(n){case"complete":r.find(".term-tab-headers").show().find('a[data-tab="color"], span').show(),r.find(".tab.tab-color").show(),r.find(".tab.tab-image").show(),r.each((function(){const i=e(this);t.showTermTab(i,i.find(".term-mode").val(),!0)}));break;case"colors_only":r.find(".term-tab-headers").show().find('a[data-tab="image"], span').hide(),r.find(".tab.tab-color").show(),r.find(".tab.tab-image").hide(),t.showTermTab(r,"image",!0);break;case"image_only":r.find(".term-tab-headers").show().find('a[data-tab="color"], span').hide(),r.find(".tab.tab-color").hide(),r.find(".tab.tab-image").show(),t.showTermTab(r,"image",!0);break;case"labels_only":default:r.find(".term-tab-headers").hide(),r.find(".tab.tab-color").hide(),r.find(".tab.tab-image").hide()}},t.afterAddTerm=function(e){t.initTerm(e)},t._getSelectedTerms=function(i){const n=i.find(".term-search").first(),r=[];if(!n.length)return r;const o=n.val();return o?(e.each(o,(function(e,i){const o=n.find('option[value="'+i+'"]');o.length&&r.push({id:i,name:t.removeHierarchyFromString(o.text())})})),r):r},t.initRanges=function(i){const n=i.find(".range-box");t.initAddRange(i),t.initRangesPosition(i),t.initRangesDragDrop(i),n.each((function(){t.initRange(e(this))}))},t.initRange=function(e){t.initRangeDependencies(e),t.initRangeRemove(e)},t.initAddRange=function(e){e.find(".add-price-range").on("click",(function(i){i.preventDefault(),t.addRange(e),t.initRangesPosition(e)}))},t.initRangeRemove=function(e){e.find("a.range-remove").on("click",(i=>{const n=t.getItemFilter(e);i.preventDefault(),e.remove(),t.initRangesPosition(n)}))},t.initRangeDependencies=function(t){t.find('[name*="unlimited"]').on("change",(function(){const t=e(this),i=t.closest(".range-box").find(".max");t.is(":checked")?i.hide():i.show()})).change()},t.initRangesPosition=function(t){t.find(".range-box").each((function(){const t=e(this),i=t.find(".unlimited"),n=i.find(":input");t.is(":last-child")?i.show():(n.prop("checked",!1).change(),i.hide())}))},t.initRangesDragDrop=function(i){i.find(".ranges-wrapper").sortable({cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",stop(){e(this).find(".range-box").each((function(t){e(this).data("range_id",t).find(":input").attr("name",(function(){return e(this).attr("name").replace(/\[price_ranges]\[[0-9]+]/,"[price_ranges]["+t+"]")})).attr("id",(function(){return e(this).attr("id").replace(/price_ranges_[0-9]+/,"price_ranges_"+t)}))})),t.initRangesPosition(i)}})},t.addRange=function(i,n="",r="",o=!1){const a=wp.template("yith-wcan-filter-range")({id:t.getRowIndex(i),range_id:t.getNextRangeIndex(i),min:0,max:0}),l=e(a);return l.find(".min").find(":input").val(n),l.find(".max").find(":input").val(r),l.find(".unlimited").find(":input").prop("checked",o),i.find(".ranges-wrapper").append(l),t.afterAddRange(l),l},t.afterAddRange=function(e){t.initRange(e)},t.getNextRangeIndex=function(e){let t=e.find(".ranges-wrapper"),i=t.data("index"),n=0;return i||(i=t.find(".range-box").length),n=++i,t.data("index",n),n},t.ajaxSaveFilter=function(i){const n=t.getPresetId(),r=t.getFilterData(i),o=i.attr("id").replace("filter_","");return r.terms_order=t.getTerms(i).toArray().map((t=>e(t).data("term_id"))),t.doAjax("yith_wcan_save_preset_filter",{preset:n,filter:r,filter_id:o,_wpnonce:yith_wcan_admin.nonce.save_preset_filter},i)},t.ajaxDeleteFilter=function(e){const i=t.getPresetId();if(!i)return jQuery.Deferred().resolve();const n=e.attr("id").replace("filter_","");return t.doAjax("yith_wcan_delete_preset_filter",{preset:i,filter_id:n,_wpnonce:yith_wcan_admin.nonce.delete_preset_filter})},t.doAjax=function(i,n,r,o){n||(n={}),n.action=i;let a={beforeSend:()=>{r&&r.length&&t.block(r)},complete:()=>{r&&r.length&&t.unblock(r)},data:n,method:"post",dataType:"json",url:ajaxurl};return o&&(a=e.extend(a,o)),e.ajax(a)},t.getItemFilter=function(e){return e.closest(".yith-toggle-row")},t.maybeShowEmptyBox=function(e,i){const n=e.children(".yith-wcan-admin-no-post");!n.length||n.is(":visible")||i.length||t.$loadMoreFiltersButtons.length||n.show()},t.maybeHideEmptyBox=function(e,t){const i=e.children(".yith-wcan-admin-no-post");i.length&&i.is(":visible")&&t.length&&i.hide()},t.block=function(t){void 0!==e.fn.block&&t.block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},t.unblock=function(t){void 0!==e.fn.unblock&&t.unblock()},t.serialize=function(t,i,n){let r={},o=t.find(":input").not("[disabled]");return"function"==typeof n&&(o=o.filter(n)),o.each((function(){let t,n=e(this),o=n.attr("name");if(o&&(o=o.replace(/^(.*)\[]$/,"$1"),"function"==typeof i&&(o=i(o)),(!n.is('[type="checkbox"]')||n.is(":checked"))&&(!n.is('[type="radio"]')||n.is(":checked"))))if(t=n.val(),-1!==o.indexOf("[")){const i=o.split("[").map((e=>e.replace(/[\[, \]]/g,""))),n=i.shift(),a=i.reverse().reduce(((e,t)=>({[t]:e})),t);void 0===r[n]?r[n]=a:r[n]=e.extend(!0,r[n],a)}else r[o]=t})),r},t.getPresetId=function(){return e("#preset_id").val()},t.maybeSetPresetId=function(i){!t.getPresetId()&&i&&e("#preset_id").val(i)},t.removeHierarchyFromString=function(e){return e.replace(/^(.*>)([^>]+)$/,"$2").replace("&","&").trim()},t.addInputValidationMessage=function(t,i){const n=e("<span/>",{class:"validation-message",text:i});t.addClass("required-field-empty").addClass("validation-error").next(".validation-message").remove().end().after(n)},t.init()}
|
1 |
+
"use strict";function YITH_WCAN_Filters(e){const t=this;t.rowIndex=0,t.dependencies={taxonomy:{type:"tax"},use_all_terms:{type:"tax"},term_ids:{type:"tax",use_all_terms:"!:checked"},filter_design:{type:["tax","review","price_range"]},customize_terms:{type:"tax",use_all_terms:"!:checked"},terms_options:{term_ids:e=>!!e,customize_terms:":checked",__show:e=>t.updateTerms(e,!0)},label_position:{filter_design:(i,n,r)=>{if("color"===i)return!0;if("label"===i){const i=t._findFilterField(r,"terms_options");if(i.length&&i.is(":visible")&&i.find("input[name*=image]").filter(((t,i)=>!!e(i).val())).length)return!0}return!1}},column_number:{filter_design:["label","color"],label_position:["below","hide"]},show_search:{type:"tax",filter_design:"select"},price_ranges:{type:"price_range"},price_slider_adaptive_limits:{type:"price_slider"},price_slider_design:{type:"price_slider"},price_slider_min:{type:"price_slider",price_slider_adaptive_limits:"!:checked"},price_slider_max:{type:"price_slider",price_slider_adaptive_limits:"!:checked"},price_slider_step:{type:"price_slider"},order_options:{type:"orderby"},show_stock_filter:{type:"stock_sale"},show_sale_filter:{type:"stock_sale"},show_featured_filter:{type:"stock_sale"},toggle_style:{show_toggle:":checked"},order_by:{type:"tax"},order:{type:"tax"},show_count:{type:["tax","price_range","review","stock_sale"]},hierarchical:{type:"tax",filter_design:["checkbox","radio","text"]},multiple:{type:["tax","review","price_range"],filter_design:"!radio"},relation:{type:"tax",multiple:":checked"},adoptive:{type:["tax","price_range","review","stock_sale"]}},t.$form=e("#plugin-fw-wc"),t.$mainAddNewFilterButton=e("#add_new_filter"),t.$addNewFilterButtons=e(".add-new-filter"),t.$loadMoreFiltersButtons=e(".load-more-filters"),t.$filtersContainer=e(".preset-filters"),t.$filters=t.$filtersContainer.find(".yith-toggle-row"),t.$layout=e("#preset_layout"),t.$page=e("#paged"),t.$submit=e("#submit"),t.init=function(){t.initFilters(),t.initAddFilter(),t.initLoadMoreFilters(),t.initLayout(),t.initSubmit()},t.initAddFilter=function(){t.$addNewFilterButtons.on("click",(function(e){e.preventDefault(),t.addFilter()}))},t.initLoadMoreFilters=function(){t.$loadMoreFiltersButtons.on("click",(function(e){e.preventDefault(),t.loadMoreFilters()}))},t.initSubmit=function(){t.$submit.on("click",(()=>!!t.$form.get(0).reportValidity()&&(!!t.validateFilters()&&void t.block(t.$form))))},t.initLayout=function(){t.$layout.on("change","input",(()=>{t.afterLayoutChange()})).find("input").first().change()},t.initFilters=function(){t.initFiltersDragDrop(),t.$filters.each((function(){t.initFilter(e(this))}))},t.initFiltersDragDrop=function(){t.$filtersContainer.sortable({cursor:"move",handle:".yith-toggle-title",axis:"y",scrollSensitivity:40,forcePlaceholderSize:!0})},t.initFilter=function(e){e.hasClass("initialized")||(t.initFilterTitle(e),t.initFilterToggle(e),t.initFilterFieldsDependencies(e),t.initFilterFields(e),t.initFilterSave(e),t.initFilterDelete(e),t.initFilterClone(e),t.initTerms(e),t.initRanges(e),e.addClass("initialized"))},t.initFilterFields=function(e){t.initFilterTermSearch(e),t.initFilterCustomizeTerms(e),t.initTaxonomy(e),t.initFilterType(e),t.initFilterDesign(e),t.initFilterCurrencyFields(e),t.clearFilterErrors(e),t.initInvalidFields(e)},t.initFilterFieldsDependencies=function(e){e.find(":input").on("change",(()=>{t._applyFilterDependencies(e)})).first().change()},t.initFilterTermSearch=function(i){const n=i.find(".term-search").first(),r=i.find(".taxonomy").first(),o=n.closest(".yith-plugin-fw-field-wrapper"),a=function(e){return{term:e.term,all:void 0!==e.all?e.all:0,taxonomy:r.val(),selected:n.val(),action:"yith_wcan_search_term",security:yith_wcan_admin.nonce.search_term}},l={placeholder:e(this).data("placeholder"),minimumInputLength:"1",templateSelection:e=>t.removeHierarchyFromString(e.text),templateResult:e=>e.text.replace("&","&"),ajax:{url:ajaxurl,dataType:"json",delay:250,data:a,processResults(t){const i=[];return t&&e.each(t,(function(e,t){i.push({id:e,text:t})})),{results:i}},cache:!0},sorter:e=>e};n.selectWoo(l),n.on("change",(()=>{t.updateTerms(i)})),o.find(".yith-plugin-fw-select-all").on("click",(function(i){return i.preventDefault(),!!t._confirmAddAllTerms(r)&&(t.block(o),e.get(ajaxurl,a({term:"",all:1})).then((i=>{let r=n.val();r||(r=[]),n.find("option").not(":selected").remove(),e.each(i,(function(t,i){r.push(t),n.append(e("<option/>",{value:t,text:i}))})),n.val(r).change(),t.unblock(o)})),!1)})),o.find(".yith-plugin-fw-deselect-all").on("click",(function(e){return e.preventDefault(),n.find("option").remove().end().val("").change(),!1}))},t.initFilterCustomizeTerms=function(e){const i=e.find(".customize-terms").find("input"),n=e.find(".order-by");i.on("change",(()=>{n.find('[value="include"]').prop("disabled",!i.is(":checked")),n.removeClass("enhanced").trigger("wc-enhanced-select-init"),!n.val()&&n.val("name"),t.updateTerms(e)})).change()},t.initTaxonomy=function(e){const i=e.find(".taxonomy").first(),n=e.find(".filter-design").first();i.on("change",(()=>{t.afterTaxonomyChange(e)})),n.on("change",(()=>{t.customizeTermsNotice(e)}))},t.initFilterType=function(t){const i=t.find(".filter-type"),n=t.find(".filter-design");i.on("change",(()=>{switch(i.val()){case"review":case"price_range":n.find('[value="color"]').remove().end().find('[value="label"]').remove();break;default:for(let t in yith_wcan_admin.supported_designs)yith_wcan_admin.supported_designs.hasOwnProperty(t)&&(n.find(`[value="${t}"]`).length||n.append(e("<option/>",{value:t,text:yith_wcan_admin.supported_designs[t]})))}n.change()})).change()},t.initFilterDesign=function(e){e.find(".filter-design").on("change",(()=>{t.updateTermFields(e,t.getTermsType(e))})).change()},t.initFilterTitle=function(e){const t=e.find(".heading-field").first(),i=e.find("h3.title");i.length&&t.length&&t.on("keyup",(()=>{const e=t.val();i.html(e||'<span class="no-title">'+yith_wcan_admin.labels.no_title+"</span>")}))},t.initFilterSave=function(e){e.find(".save").on("click",(function(i){return i.stopPropagation(),t.saveFilter(e),!1}))},t.initFilterDelete=function(e){e.find(".delete").on("click",(function(i){return i.stopPropagation(),t.removeFilter(e),!1}))},t.initFilterClone=function(e){e.find(".clone").on("click",(function(i){return i.stopPropagation(),t.cloneFilter(e),!1}))},t.initFilterToggle=function(i){i.find(".yith-toggle-title").on("click",(function(i){const n=e(i.target);if(i.preventDefault(),n.is(".yith-plugin-fw-onoff")){const e=n.prev('input[type="checkbox"]');return e.prop("checked",!e.prop("checked")),!1}const r=e(this).parent();return r.hasClass("yith-toggle-row-opened")?t.closeFilter(r):t.openFilter(r),!1}))},t.initFilterCurrencyFields=function(t){t.find("[data-currency]").each((function(){const t=e(this),i=e("<span/>",{text:t.data("currency"),class:"currency"});t.after(i)}))},t.initInvalidFields=function(i){i.find(":input").on("invalid",(n=>{const r=n.target,o=e(r);n.preventDefault(),t.goToFilter(i,o).done((()=>{t.addInputValidationMessage(o,r.validationMessage)}))}))},t.afterAddFilter=function(e){t.closeAllFilters(),t.openFilter(e),t.updateFilters(),t.maybeHideEmptyBox(t.$filtersContainer,t.$filters),t.$mainAddNewFilterButton.show(),e.trigger("yith_fields_init"),t.initFilter(e)},t.afterRemoveFilter=function(){t.updateFilters(),t.maybeShowEmptyBox(t.$filtersContainer,t.$filters),t.$filters.length||t.$mainAddNewFilterButton.hide()},t.afterTaxonomyChange=function(e){e.find(".term-search").first().find("option").remove().end().change(),t.customizeTermsNotice(e)},t.afterLayoutChange=function(){const i=t.$layout.find(":checked").val();t.$filters.each(((t,n)=>{const r=e(n),o=r.find(".show-toggle"),a=o.closest(".yith-toggle-content-row");"horizontal"===i?(o.find(":input").prop("checked",!1).removeClass("onoffchecked").change(),a.hide(),r.find(".term-tooltip").hide()):(a.show(),r.find(".term-tooltip").show())}))},t.customizeTermsNotice=function(e){const t=e.find(".taxonomy").first(),i=e.find(".filter-design").first(),n=e.find(".customize-terms").parent(),r=n.closest(".yith-toggle-content-row"),o=n.next(".description"),a=n.find("input"),l=o.find(".wccl-notice"),s=o.find(".images-notice"),d=t.data("taxonomies"),c=t.val(),f=i.val();yith_wcan_admin.yith_wccl_enabled&&d[c]?.is_attribute?l.show():l.hide(),d[c]?.supports_images&&"label"===f?s.show():s.hide(),"color"!==f||yith_wcan_admin.yith_wccl_enabled&&d[c]?.is_attribute?r.removeClass("disabled"):(a.prop("checked",!0),r.addClass("disabled"))},t.clearFilterErrors=function(t){t.on("change keydown",":input",(function(){const t=e(this);t.hasClass("validation-error")&&(t.removeClass("validation-error").removeClass("required-field-empty"),t.next(".validation-message").remove())}))},t._findFilterField=function(e,t,i=!0){let n;switch(t){case"terms_options":n=e.find(".terms-wrapper");break;case"price_ranges":n=e.find(".ranges-wrapper");break;default:n=e.find(':input[name*="['+t+']"]')}return n.length?i?n.closest(".yith-toggle-content-row"):n:null},t._applyFilterDependencies=function(i){e.each(t.dependencies,(function(e,n){const r=t._findFilterField(i,e);t._checkFilterFieldConditions(i,n)?(r?.css({display:"table"}),"function"==typeof n?.__show&&n?.__show(i)):(r?.hide(),"function"==typeof n?.__hide&&n?.__hide(i))}))},t._checkFilterFieldConditions=function(i,n){let r=!0;return e.each(n,(function(e,n){let o,a;r&&!["__show","__hide"].includes(e)&&(o=t._findFilterField(i,e,!1),o?.length&&(a=o.first().is('input[type="radio"]')?o.filter(":checked").val().toString():o?.val()?.toString(),r=Array.isArray(n)?n.includes(a):"function"==typeof n?n(a,o,i):0===n.indexOf(":")?o.is(n):0===n.indexOf("!:")?!o.is(n.toString().substring(1)):0===n.indexOf("!")?n.toString().substring(1)!==a:n.toString()===a,void 0!==t.dependencies[e]&&(r=r&&t._checkFilterFieldConditions(i,t.dependencies[e]))))})),r},t._confirmAddAllTerms=function(e){let t=e.val(),i=e.data("taxonomies"),n=yith_wcan_admin.messages.confirm_add_all_terms;return!(i[t]?.terms_count&&i[t]?.terms_count>1)||(n=n.replace("%s",i[t]?.terms_count),confirm(n))},t.addFilter=function(){const i=wp.template("yith-wcan-filter")({id:t.nextRowIndex()}),n=e(i);return t.$filtersContainer.append(n),t.afterAddFilter(n),n},t.removeFilter=function(e){confirm(yith_wcan_admin.messages.confirm_delete)&&t.ajaxDeleteFilter(e).done((()=>{e.remove(),t.afterRemoveFilter()}))},t.getFilterData=function(i){return t.serialize(i,(e=>e.replace(/filters\[[0-9]+]\[([a-z_-]+)]/,"$1")),((t,i)=>!e(i).is('select[name*="terms"]')))},t.populateFilter=function(i,n){for(const r in n){const o=t.getRowIndex(i),a=n[r];let l="terms"===r?`filters_${o}_term_ids`:`filters_${o}_${r}`,s=i.find(`#${l}`);if(s.length||"price_ranges"===r)if("terms"===r){const n=a;if("object"!=typeof n)continue;for(const t in n){if(!n[t]?.label)continue;const i=e("<option/>",{value:t,text:n[t]?.label,selected:!0});s.append(i)}s.change(),t.updateTerms(i,!0);for(const e in n)for(const t in n[e]){const r=`filters_${o}_terms_${e}_${t}`,a=i.find(`#${r}`);a.length&&a.val(n[e][t])}}else if("price_ranges"===r){const e=a;if("object"!=typeof e)continue;for(const n in e){const r=e[n];t.addRange(i,r.min,r.max,r.unlimited)}}else s.is(":checkbox")?s.prop("checked","yes"===a).val(a).change():s.is('[data-type="radio"]')?s.find(":input").prop("checked",!1).filter('[value="'+a+'"]').prop("checked",!0).change():"title"===r?s.val(n[r]).keyup():s.val(n[r]).change()}},t.cloneFilter=function(i){t.closeAllFilters((()=>{const n=t.addFilter(),r=t.getRowIndex(i),o=t.currentRowIndex();i.find(":input").each((function(){let i,a,l=e(this),s=l.attr("id");void 0!==s&&(a=s.replace("filters_"+r+"_","filters_"+o+"_"),i=n.find("#"+a),i.length&&(i.is('input[type="radio"]')||i.is('input[type="checkbox"]')?i.prop("checked",l.is(":checked")):i.is("select")?(i.find("option").length||l.find("option").clone().appendTo(i),i.val(l.val())):i.val(l.val()),-1===a.indexOf("color_2")||l.prop("disabled")||t.showTermAdditionalColor(i.closest(".term-box")),-1!==a.indexOf("mode")&&t.showTermTab(i.closest(".term-box"),i.val()),-1!==a.indexOf("image")&&i.val()&&i.closest(".image-selector").find(".placeholder-image").hide().end().find(".selected-image").show().append(l.closest(".image-selector").find(".selected-image").find("img").clone()),i.change().keyup()))}))}))},t.saveFilter=function(e){if(!t.validateFilter(e))return!1;t.ajaxSaveFilter(e).done((i=>{t.maybeSetPresetId(i.id),t.closeFilter(e)}))},t.isFilterOpen=function(e){return e.hasClass("yith-toggle-row-opened")},t.openFilter=function(e){return e.find(".yith-toggle-title").find(".title-arrow").removeClass("yith-icon-arrow-right-alt").addClass("yith-icon-arrow-down-alt"),e.addClass("yith-toggle-row-opened").find(".yith-toggle-content").slideDown().promise()},t.isFilterClosed=function(e){return!t.isFilterOpen(e)},t.closeFilter=function(e){return e.find(".yith-toggle-title").find(".title-arrow").addClass("yith-icon-arrow-right-alt").removeClass("yith-icon-arrow-down-alt"),e.find(".yith-toggle-content").slideUp(400,(function(){e.removeClass("yith-toggle-row-opened")})).promise()},t.closeAllFilters=function(e){t.closeFilter(t.$filters).done((()=>{"function"==typeof e&&e()}))},t.loadMoreFilters=function(){let i=t.$page.val();t.doAjax("yith_wcan_load_more_filters",{preset:t.getPresetId(),page:++i,_wpnonce:yith_wcan_admin.nonce.load_more_filters},t.$loadMoreFiltersButtons,{method:"get"}).done((n=>{if(n){if(n.filters)for(const i in n.filters){const r=n.filters[i],o=wp.template("yith-wcan-filter")({id:i}),a=e(o);t.populateFilter(a,r),t.$filtersContainer.append(a),t.afterAddFilter(a),a.find(".heading-field").keyup()}n.has_more?t.$page.val(i):(t.$loadMoreFiltersButtons.remove(),t.$page.remove(),t.$page=null),t.updateFilters()}}))},t.updateFilters=function(){t.$filters=t.$filtersContainer.find(".yith-toggle-row"),t.updateRowIndex()},t.validateFilters=function(){let i=!0;return t.$filters.each((function(){if(!i)return;let n=e(this);i=t.validateFilter(n)})),i},t.validateFilter=function(e){const i=t.$layout.find(":checked").val(),n=e.find(".filter-title"),r=n?.val();if("horizontal"===i&&!r)return t.addInputValidationMessage(n,yith_wcan_admin.messages.filter_title_required),t.goToFilter(e),!1;let o=!0;return e.find(":input").each((function(){o&&(o=this.reportValidity())})),o},t.goToFilter=function(i,n){return t.isFilterOpen(i)?(n=n||i,e("html, body").stop(!0).animate({scrollTop:n.offset().top-100}).promise()):e("html, body").stop(!0).animate({scrollTop:i.offset().top-100}).promise().done((()=>{t.openFilter(i),n&&n.length&&e("html, body").animate({scrollTop:n.offset().top-100})}))},t.getRowIndex=function(e){const t=e.data("item_key");return t?parseInt(t):0},t.updateRowIndex=function(){let i=0;t.$filters.each((function(t){const n=e(this).data("item_key");i=i<n?n:i})),t.rowIndex=i},t.nextRowIndex=function(){return t.rowIndex||t.updateRowIndex(),++t.rowIndex},t.currentRowIndex=function(){return t.rowIndex||t.updateRowIndex(),t.rowIndex},t.getTerms=function(e){return e.find(".term-box")},t.getTermsType=function(e){const t=e.find(".filter-design")?.val();return"label"!==t&&"color"!==t?"labels_only":"color"===t?"complete":"image_only"},t.initTerms=function(i){const n=i.find(".term-box"),r=i.find(".order-by");n.each((function(){t.initTerm(e(this))})),r.on("change",(function(){const n=e(this).val();t["include"===n?"initTermsDragDrop":"destroyTermsDragDrop"](i)})).change()},t.initTerm=function(e){t.initTermTabs(e),t.initTermImageSelector(e),t.initTermAdditionalColor(e)},t.initTermTabs=function(i){i.find(".term-tab-header").on("click",(function(n){const r=e(this).data("tab");n.preventDefault(),t.showTermTab(i,r)})),t.showTermTab(i,i.find(".term-mode").val())},t.initTermAdditionalColor=function(i){i.find(".term-add-second-color").on("click",(function(n){e(this);n.preventDefault(),t.showTermAdditionalColor(i)})),i.find(".term-hide-second-color").on("click",(function(n){e(this);n.preventDefault(),t.hideTermAdditionalColor(i)}))},t.initTermImageSelector=function(i){let n,r=i.find(".image-selector"),o=r.find(".placeholder-image"),a=r.find(".selected-image"),l=a.find("img"),s=r.find(".term-image"),d=a.find(".clear-image");o.off("click").on("click",(function(){t.block(o),n||(n=wp.media({title:yith_wcan_admin.labels.upload_media,button:{text:yith_wcan_admin.labels.confirm_media},multiple:!1}),n.on("select",(function(){const i=n.state().get("selection").first().toJSON();l.remove(),l=e("<img/>",{src:i.url}),a.prepend(l),s.val(i.id).change(),t.unblock(o),o.hide(),a.show()})),n.on("close",(function(){t.unblock(o)}))),n.open()})),d.off("click").on("click",(function(e){e.preventDefault(),s.val("").change(),a.hide(),o.show()}))},t.initTermsDragDrop=function(e){try{e.find(".terms-wrapper").sortable({cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone"})}catch(e){}},t.destroyTermsDragDrop=function(e){try{e.find(".terms-wrapper").sortable("destroy")}catch(e){}},t.showTermTab=function(e,t,i){const n=e.find(".term-tab-header"),r=e.find(".tab"),o=r.filter(".tab-"+t);if(!o.length||!n.is(":visible")&&!i)return;const a=e.find(".term-mode");n.removeClass("active").filter('[data-tab="'+t+'"]').addClass("active"),r.hide(),o.show(),a.val(t)},t.showTermAdditionalColor=function(e){e.find(".term-add-second-color").parent().hide().next(".additional-color").show().find(".wp-color-picker").prop("disabled",!1)},t.hideTermAdditionalColor=function(e){e.find(".term-hide-second-color").parent().find(".wp-color-picker").prop("disabled",!0).end().hide().prev("p").show()},t.updateTerms=function(i,n){const r=i.find(".terms-wrapper");if(!n&&!r.is(":visible"))return;const o=t._getSelectedTerms(i),a=[],l=wp.template("yith-wcan-filter-term"),s=r.find(".term-box");o&&e.each(o,(function(n,r){const o=s.filter('[data-term_id="'+r.id+'"]');if(o.length)a.push(o);else{const n=l({id:t.getRowIndex(i),term_id:r.id,name:r.name,label:r.name,tooltip:""}),o=e(n);a.push(o)}})),s.detach(),a.length&&e.each(a,(function(e,i){r.append(i),t.afterAddTerm(i)})),t.updateTermFields(i,t.getTermsType(i)),i.trigger("yith_fields_init")},t.updateTermFields=function(i,n){const r=i.find(".term-box");switch(n){case"complete":r.find(".term-tab-headers").show().find('a[data-tab="color"], span').show(),r.find(".tab.tab-color").show(),r.find(".tab.tab-image").show(),r.each((function(){const i=e(this);t.showTermTab(i,i.find(".term-mode").val(),!0)}));break;case"colors_only":r.find(".term-tab-headers").show().find('a[data-tab="image"], span').hide(),r.find(".tab.tab-color").show(),r.find(".tab.tab-image").hide(),t.showTermTab(r,"image",!0);break;case"image_only":r.find(".term-tab-headers").show().find('a[data-tab="color"], span').hide(),r.find(".tab.tab-color").hide(),r.find(".tab.tab-image").show(),t.showTermTab(r,"image",!0);break;case"labels_only":default:r.find(".term-tab-headers").hide(),r.find(".tab.tab-color").hide(),r.find(".tab.tab-image").hide()}},t.afterAddTerm=function(e){t.initTerm(e)},t._getSelectedTerms=function(i){const n=i.find(".term-search").first(),r=[];if(!n.length)return r;const o=n.val();return o?(e.each(o,(function(e,i){const o=n.find('option[value="'+i+'"]');o.length&&r.push({id:i,name:t.removeHierarchyFromString(o.text())})})),r):r},t.initRanges=function(i){const n=i.find(".range-box");t.initAddRange(i),t.initRangesPosition(i),t.initRangesDragDrop(i),n.each((function(){t.initRange(e(this))}))},t.initRange=function(e){t.initRangeDependencies(e),t.initRangeRemove(e)},t.initAddRange=function(e){e.find(".add-price-range").on("click",(function(i){i.preventDefault(),t.addRange(e),t.initRangesPosition(e)}))},t.initRangeRemove=function(e){e.find("a.range-remove").on("click",(i=>{const n=t.getItemFilter(e);i.preventDefault(),e.remove(),t.initRangesPosition(n)}))},t.initRangeDependencies=function(t){t.find('[name*="unlimited"]').on("change",(function(){const t=e(this),i=t.closest(".range-box").find(".max");t.is(":checked")?i.hide():i.show()})).change()},t.initRangesPosition=function(t){t.find(".range-box").each((function(){const t=e(this),i=t.find(".unlimited"),n=i.find(":input");t.is(":last-child")?i.show():(n.prop("checked",!1).change(),i.hide())}))},t.initRangesDragDrop=function(i){i.find(".ranges-wrapper").sortable({cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",stop(){e(this).find(".range-box").each((function(t){e(this).data("range_id",t).find(":input").attr("name",(function(){return e(this).attr("name").replace(/\[price_ranges]\[[0-9]+]/,"[price_ranges]["+t+"]")})).attr("id",(function(){return e(this).attr("id").replace(/price_ranges_[0-9]+/,"price_ranges_"+t)}))})),t.initRangesPosition(i)}})},t.addRange=function(i,n="",r="",o=!1){const a=wp.template("yith-wcan-filter-range")({id:t.getRowIndex(i),range_id:t.getNextRangeIndex(i),min:0,max:0}),l=e(a);return l.find(".min").find(":input").val(n),l.find(".max").find(":input").val(r),l.find(".unlimited").find(":input").prop("checked",o),i.find(".ranges-wrapper").append(l),t.afterAddRange(l),l},t.afterAddRange=function(e){t.initRange(e)},t.getNextRangeIndex=function(e){let t=e.find(".ranges-wrapper"),i=t.data("index"),n=0;return i||(i=t.find(".range-box").length),n=++i,t.data("index",n),n},t.ajaxSaveFilter=function(i){const n=t.getPresetId(),r=t.getFilterData(i),o=i.attr("id").replace("filter_","");return r.terms_order=t.getTerms(i).toArray().map((t=>e(t).data("term_id"))),t.doAjax("yith_wcan_save_preset_filter",{preset:n,filter:r,filter_id:o,_wpnonce:yith_wcan_admin.nonce.save_preset_filter},i)},t.ajaxDeleteFilter=function(e){const i=t.getPresetId();if(!i)return jQuery.Deferred().resolve();const n=e.attr("id").replace("filter_","");return t.doAjax("yith_wcan_delete_preset_filter",{preset:i,filter_id:n,_wpnonce:yith_wcan_admin.nonce.delete_preset_filter})},t.doAjax=function(i,n,r,o){n||(n={}),n.action=i;let a={beforeSend:()=>{r&&r.length&&t.block(r)},complete:()=>{r&&r.length&&t.unblock(r)},data:n,method:"post",dataType:"json",url:ajaxurl};return o&&(a=e.extend(a,o)),e.ajax(a)},t.getItemFilter=function(e){return e.closest(".yith-toggle-row")},t.maybeShowEmptyBox=function(e,i){const n=e.children(".yith-wcan-admin-no-post");!n.length||n.is(":visible")||i.length||t.$loadMoreFiltersButtons.length||n.show()},t.maybeHideEmptyBox=function(e,t){const i=e.children(".yith-wcan-admin-no-post");i.length&&i.is(":visible")&&t.length&&i.hide()},t.block=function(t){void 0!==e.fn.block&&t.block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},t.unblock=function(t){void 0!==e.fn.unblock&&t.unblock()},t.serialize=function(t,i,n){let r={},o=t.find(":input").not("[disabled]");return"function"==typeof n&&(o=o.filter(n)),o.each((function(){let t,n=e(this),o=n.attr("name");if(o&&(o=o.replace(/^(.*)\[]$/,"$1"),"function"==typeof i&&(o=i(o)),(!n.is('[type="checkbox"]')||n.is(":checked"))&&(!n.is('[type="radio"]')||n.is(":checked"))))if(t=n.val(),-1!==o.indexOf("[")){const i=o.split("[").map((e=>e.replace(/[\[, \]]/g,""))),n=i.shift(),a=i.reverse().reduce(((e,t)=>({[t]:e})),t);void 0===r[n]?r[n]=a:r[n]=e.extend(!0,r[n],a)}else r[o]=t})),r},t.getPresetId=function(){return e("#preset_id").val()},t.maybeSetPresetId=function(i){!t.getPresetId()&&i&&e("#preset_id").val(i)},t.removeHierarchyFromString=function(e){return e.replace(/^(.*>)([^>]+)$/,"$2").replace("&","&").trim()},t.addInputValidationMessage=function(t,i){const n=e("<span/>",{class:"validation-message",text:i});t.addClass("required-field-empty").addClass("validation-error").next(".validation-message").remove().end().after(n)},t.init()}
|
assets/js/yith-wcan-shortcodes.js
CHANGED
@@ -54,6 +54,10 @@ var YITH_WCAN_Filter = /*#__PURE__*/function () {
|
|
54 |
_createClass(YITH_WCAN_Filter, [{
|
55 |
key: "initPopState",
|
56 |
value: function initPopState() {
|
|
|
|
|
|
|
|
|
57 |
this.pushUrlToHistory(window.location, document.title, null, true);
|
58 |
$(window).on('popstate', function () {
|
59 |
var _window$history$state;
|
54 |
_createClass(YITH_WCAN_Filter, [{
|
55 |
key: "initPopState",
|
56 |
value: function initPopState() {
|
57 |
+
if (!yith_wcan_shortcodes.reload_on_back) {
|
58 |
+
return;
|
59 |
+
}
|
60 |
+
|
61 |
this.pushUrlToHistory(window.location, document.title, null, true);
|
62 |
$(window).on('popstate', function () {
|
63 |
var _window$history$state;
|
assets/js/yith-wcan-shortcodes.js.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/config.js","webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/modules/yith-wcan-filter.js","webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/modules/yith-wcan-reset-button.js","webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/modules/yith-wcan-dropdown.js","webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/modules/yith-wcan-preset.js","webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/index.js"],"names":["$","jQuery","$body","YITH_WCAN_Filter","location","search","initPopState","initialized","pushUrlToHistory","window","document","title","on","history","state","_yithWcan","reload","filters","target","preset","targetUrl","$target","customFilters","triggerHandler","block","buildUrl","yith_wcan_shortcodes","ajax_filters","doingAjax","_doAjax","done","response","searchAlternativeUrl","_beforeFilter","refreshFragments","pageTitle","originalSearch","unblock","_afterFilter","trigger","closest","submit","filtered","Object","keys","length","queryParam","query_param","params","url","base_url","origin","pathname","self","haveFilters","session_param","replace","RegExp","searchParams","split","reduce","a","v","items","isFilterParam","i","_cleanParam","defaultUrl","matches","indexOf","match","current","change_browser_url","navigator","userAgent","method","responseDom","createElement","$response","innerHTML","$preset","$destination","find","replaceWith","first","content","param","process_sanitize","skip_sanitize","encodeURIComponent","xhr","abort","headers","$el","background","loader","message","overlayCSS","opacity","supportedParams","customParams","concat","supported_taxonomies","map","YITH_WCAN_Reset_Button","el","$reset","ev","preventDefault","each","data","deactivateAllFilters","closeModal","addClass","YITH_WCAN_Dropdown","opts","$originalSelect","is","defaultPerPage","defaultOrder","defaultAll","defaults","showSearch","paginate","perPage","order","getElements","labels","emptyLabel","empty_option","searchPlaceholder","search_placeholder","noItemsFound","no_items","showMore","show_more","options","_hideSelect","_initTemplate","_initActions","hide","$mainSpan","$labelSpan","html","getLabel","$dropdownSpan","$matchingItemsList","append","_initSearchTemplate","_initShowMoreTemplate","after","$_main","$_label","$_dropdown","$_items","$dropdwonSpan","$container","$search","name","type","placeholder","prependTo","$_search","$showMore","text","loadNextPage","bind","$_showMore","stopPropagation","toggleDropdown","_populateItems","$li","value","isActive","hasClass","isValueSelected","toggleClass","_changeItemStatus","siblings","removeClass","input","parent","prop","change","selfOriginated","_selectItem","_deselectItem","updateLabel","globalThis","yith_wcan_dropdown_init","_closeAllDropdowns","_afterDropdownOpen","dropdowns","filter","select","closeDropdown","_closeOtherDropdowns","val","limit","matchingElements","$options","getOptions","promise","Promise","resolve","t","label","regex","show","test","push","then","retrievedElements","_formatItems","indexes","hasMore","sort","b","mod","slice","active","option","getOptionByValue","$item","attr","$anchor","template","count","href","rel","$checkbox","$label","prepend","page","parseInt","getMatchingElements","resultSet","matchingItems","_emptyItems","_hideLoadMore","currentPage","unshift","_generateItem","_showLoadMore","status","$option","hasSelectedValues","getSelectedLabels","join","getSelectedOptions","found","getSelectedValues","toString","values","YITH_WCAN_Preset","_regiterStatus","_initFilterButton","_initResponsive","_initFilters","getFilters","$filter","_initFilter","maybeShowClearAllFilters","$filterButtons","modal_on_mobile","media","matchMedia","mobile_media_query","isMobile","_afterLayoutChange","resize","handleChange","$currentFilter","multiple","$items","not","children","activeFilters","maybeFilter","maybeToggleClearAllFilters","maybeToggleClearFilter","delegateTarget","call","$input","_initTooltip","_initPriceSlider","_initDropdown","_initCollapsable","maybeShowClearFilter","_initCustomInput","$dropdown","$current","position","th","tooltip","wrapperWidth","outerWidth","left","width","container","css","toFixed","fadeIn","fadeOut","remove","selectWoo","_initDropdownObject","terms_per_page","$minInput","$maxInput","min","parseFloat","max","currentMin","currentMax","step","handleSliderChange","sliderTimeout","clearTimeout","setTimeout","ionRangeSlider","skin","from","to","min_interval","values_separator","prettify","formatPrice","onChange","onFinish","add","off","_initTitleCollapsable","_initHierarchyCollapsable","$title","_initToggle","parents","show_current_children","$t","$toggle","appendTo","slideToggle","containerClass","wrap","originalFilters","getFiltersProperties","_addCloseModalButton","_addApplyFiltersModalButton","_switchToCollapsables","removeAttr","_removeCloseModalButton","_removeApplyFiltersModalButton","_switchBackCollapsables","$closeButton","close","modalElements","closeButton","$filterButton","show_results","applyFiltersButton","removeData","$filters","isFilterActive","end","currentFilters","currentStr","JSON","stringify","originalStr","dirty","$initiator","maybeRegisterStatusChange","instant_filters","product_filter","doFilter","newPreset","scroll_top","targetOffset","offset","top","scroll_target","$scrollTarget","animate","scrollTop","getActiveFilters","filterType","filteredActive","Math","abs","properties","filteredProperties","$active","activeTerms","taxonomy","isAttr","relation","get","pop","glue","rating_filter","price_ranges","min_price","max_price","onsale_filter","instock_filter","featured_filter","orderby","filterProperties","getFilterProperties","mergeProperties","hasProp","includes","maybeHideClearFilter","isAnyFilterActive","maybeHideClearAllFilters","show_clear_filter","clear_selection","role","deactivateFilter","clear_all_selections","$activeItems","click","formattedRange","$priceSlider","getFiltersByProperties","toggles_open_on_modal","_openAllCollapsables","_closeAllCollapsables","price","accounting","formatMoney","symbol","currency_format","decimal","thousand","precision","format","set1","set2","hasOwnProperty","newValue","index","arr","queryTypeParam"],"mappings":"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","file":"yith-wcan-shortcodes.js","sourcesContent":["'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nconst $ = jQuery; // we can do this as WebPack will compact all together inside a closure.\nconst $body = $( 'body' );\n\nexport { $, $body };\n","'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nimport { $, $body } from '../config.js';\n\nexport default class YITH_WCAN_Filter {\n\t// currently executing xhr\n\txhr = null;\n\n\t// flag set during ajax call handling\n\tdoingAjax = false;\n\n\t// register original url search param\n\toriginalSearch = location.search;\n\n\t// flag set once init has executed\n\tinitialized = false;\n\n\t// flag set when page has at least one active filter.\n\tfiltered = false;\n\n\t// init object\n\tconstructor() {\n\t\tthis.initPopState();\n\t\tthis.initialized = true;\n\t}\n\n\t// init page reload when popstate event alter filters\n\tinitPopState() {\n\t\tthis.pushUrlToHistory( window.location, document.title, null, true );\n\n\t\t$( window ).on( 'popstate', function () {\n\t\t\tif ( ! window.history.state?._yithWcan ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twindow.location.reload( true );\n\t\t} );\n\t}\n\n\t// execute call to filter products in current view\n\tdoFilter( filters, target, preset ) {\n\t\tlet targetUrl,\n\t\t\t$target = target ? $( target ) : $( 'body' ),\n\t\t\tcustomFilters;\n\n\t\t// filter properties\n\t\tcustomFilters = $( document ).triggerHandler(\n\t\t\t'yith_wcan_filters_parameters',\n\t\t\t[ filters ]\n\t\t);\n\n\t\tif ( !! customFilters ) {\n\t\t\tfilters = customFilters;\n\t\t}\n\n\t\t// block elements before filtering\n\t\t$target && this.block( $target );\n\n\t\t// calculate target url\n\t\ttargetUrl = this.buildUrl( filters );\n\n\t\t// if no ajax, simply change page url\n\t\tif ( ! yith_wcan_shortcodes.ajax_filters ) {\n\t\t\tthis.pushUrlToHistory( targetUrl, document.title, filters );\n\n\t\t\twindow.location = targetUrl;\n\t\t\treturn;\n\t\t}\n\n\t\t// start doing ajax\n\t\tthis.doingAjax = true;\n\n\t\treturn this._doAjax( targetUrl ).done( ( response ) => {\n\t\t\ttargetUrl = this.searchAlternativeUrl( response, targetUrl );\n\n\t\t\tthis._beforeFilter( response, filters );\n\n\t\t\tthis.refreshFragments( target, preset, response );\n\t\t\tthis.pushUrlToHistory( targetUrl, response.pageTitle, filters );\n\t\t\tthis.originalSearch = location.search;\n\n\t\t\t$target && this.unblock( $target );\n\n\t\t\tthis._afterFilter( response, filters );\n\n\t\t\tthis.doingAjax = false;\n\t\t} );\n\t}\n\n\t// actions performed before filter\n\t_beforeFilter( response, filters ) {\n\t\t$( document ).trigger( 'yith-wcan-ajax-loading', [\n\t\t\tresponse,\n\t\t\tfilters,\n\t\t] );\n\t}\n\n\t// actions performed after filter\n\t_afterFilter( response, filters ) {\n\t\t$( '.woocommerce-ordering' ).on(\n\t\t\t'change',\n\t\t\t'select.orderby',\n\t\t\tfunction () {\n\t\t\t\t$( this ).closest( 'form' ).submit();\n\t\t\t}\n\t\t);\n\n\t\tthis.filtered = filters && !! Object.keys( filters ).length;\n\t\tthis.filtered\n\t\t\t? $body.addClass( 'filtered' )\n\t\t\t: $body.removeClass( 'filtered' );\n\n\t\t$( window ).trigger( 'scroll' );\n\n\t\t$( document )\n\t\t\t.trigger( 'yith-wcan-ajax-filtered', [ response, filters ] )\n\t\t\t.trigger( 'yith_wcwl_reload_fragments' );\n\t}\n\n\t// build url to show\n\tbuildUrl( filters ) {\n\t\tlet queryParam = yith_wcan_shortcodes.query_param,\n\t\t\tparams = {},\n\t\t\tlocation = window.location,\n\t\t\turl = !! yith_wcan_shortcodes.base_url\n\t\t\t\t? yith_wcan_shortcodes.base_url\n\t\t\t\t: location?.origin + location?.pathname,\n\t\t\tsearch = '',\n\t\t\tself = this;\n\n\t\tconst haveFilters =\n\t\t\ttypeof filters === 'object' && Object.keys( filters ).length;\n\n\t\t// remove filter session from current url, if any\n\t\tif ( !! yith_wcan_shortcodes.session_param ) {\n\t\t\turl = url.replace(\n\t\t\t\tnew RegExp(\n\t\t\t\t\t'/' + yith_wcan_shortcodes.session_param + '/[^/]*/'\n\t\t\t\t),\n\t\t\t\t''\n\t\t\t);\n\t\t}\n\n\t\tif ( haveFilters ) {\n\t\t\tparams[ queryParam ] = 1;\n\t\t}\n\n\t\tif ( !! this.originalSearch ) {\n\t\t\tconst searchParams = this.originalSearch\n\t\t\t\t.replace( '?', '' )\n\t\t\t\t.split( '&' )\n\t\t\t\t.reduce( ( a, v ) => {\n\t\t\t\t\tconst items = v.split( '=' );\n\n\t\t\t\t\tif ( items.length === 2 ) {\n\t\t\t\t\t\tif ( this.isFilterParam( items[ 0 ] ) ) {\n\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ta[ items[ 0 ] ] = items[ 1 ];\n\t\t\t\t\t}\n\n\t\t\t\t\treturn a;\n\t\t\t\t}, {} );\n\n\t\t\tparams = $.extend( params, searchParams );\n\t\t}\n\n\t\tif ( haveFilters ) {\n\t\t\tparams = $.extend( params, filters );\n\t\t}\n\n\t\tsearch = Object.keys( params )\n\t\t\t.reduce( function ( a, i ) {\n\t\t\t\tconst v = params[ i ];\n\n\t\t\t\tif ( ! v || ! i ) {\n\t\t\t\t\treturn a;\n\t\t\t\t}\n\n\t\t\t\ta += self._cleanParam( i ) + '=' + self._cleanParam( v ) + '&';\n\n\t\t\t\treturn a;\n\t\t\t}, '?' )\n\t\t\t.replace( /&$/g, '' )\n\t\t\t.replace( /%2B/g, '+' )\n\t\t\t.replace( /%2C/g, ',' );\n\n\t\tif ( search.length > 1 ) {\n\t\t\turl += search;\n\t\t}\n\n\t\treturn url;\n\t}\n\n\t// retrieves alternative sharing url in response body\n\tsearchAlternativeUrl( response, defaultUrl = '' ) {\n\t\tlet url = defaultUrl,\n\t\t\tmatches;\n\n\t\tif ( -1 === response.indexOf( 'yith_wcan:sharing_url' ) ) {\n\t\t\treturn url;\n\t\t}\n\n\t\tmatches = response.match(\n\t\t\t/<meta name=\"yith_wcan:sharing_url\" content=\"([^\"]*)\">/\n\t\t);\n\t\turl = matches && 1 in matches ? matches[ 1 ] : url;\n\n\t\treturn url;\n\t}\n\n\t// push url to browser history\n\tpushUrlToHistory( url, title, filters, current ) {\n\t\tif (\n\t\t\t! yith_wcan_shortcodes.change_browser_url ||\n\t\t\tnavigator.userAgent.match( /msie/i )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet method = 'pushState';\n\n\t\tif ( !! current ) {\n\t\t\tmethod = 'replaceState';\n\t\t}\n\n\t\twindow.history[ method ](\n\t\t\t{\n\t\t\t\t_yithWcan: true,\n\t\t\t\tpageTitle: title,\n\t\t\t\tfilters,\n\t\t\t},\n\t\t\t'',\n\t\t\turl\n\t\t);\n\t}\n\n\t// replaces elements in the page with refreshed ones\n\trefreshFragments( target, preset, response ) {\n\t\tconst responseDom = document.createElement( 'html' ),\n\t\t\t$response = $( responseDom );\n\n\t\tresponseDom.innerHTML = response;\n\n\t\tif ( target ) {\n\t\t\tlet $preset = $( preset ),\n\t\t\t\t$target = $( target ),\n\t\t\t\t$destination;\n\n\t\t\tif ( $preset.length ) {\n\t\t\t\t$destination = $response.find( preset );\n\n\t\t\t\tif ( $destination.length ) {\n\t\t\t\t\t$preset.replaceWith( $destination.first() );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( $target.length ) {\n\t\t\t\t$destination = $response.find( target );\n\n\t\t\t\tif ( $destination.length ) {\n\t\t\t\t\t$target.replaceWith( $destination.first() );\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst content = $( yith_wcan_shortcodes.content );\n\n\t\t\tif ( content.length ) {\n\t\t\t\tcontent.replaceWith(\n\t\t\t\t\t$response.find( yith_wcan_shortcodes.content )\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t$( 'body' ).replaceWith( $response.find( 'body' ) );\n\t\t\t}\n\t\t}\n\n\t\t$( document ).trigger( 'yith_wcan_init_shortcodes' );\n\t}\n\n\t// clean url parameters\n\t_cleanParam( param ) {\n\t\tif (\n\t\t\t! yith_wcan_shortcodes?.process_sanitize ||\n\t\t\tyith_wcan_shortcodes?.skip_sanitize\n\t\t) {\n\t\t\treturn param;\n\t\t}\n\n\t\treturn encodeURIComponent( param );\n\t}\n\n\t// executes Ajax calls\n\t_doAjax( url, params ) {\n\t\tif ( this.xhr ) {\n\t\t\tthis.xhr.abort();\n\t\t}\n\n\t\tparams = $.extend(\n\t\t\t{\n\t\t\t\turl,\n\t\t\t\theaders: {\n\t\t\t\t\t'X-YITH-WCAN': 1,\n\t\t\t\t},\n\t\t\t},\n\t\t\tparams\n\t\t);\n\n\t\tthis.xhr = $.ajax( params );\n\n\t\treturn this.xhr;\n\t}\n\n\t// block dom elements\n\tblock( $el ) {\n\t\tif ( typeof $.fn.block === 'undefined' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet background = '#fff center center no-repeat';\n\n\t\tif ( yith_wcan_shortcodes?.loader ) {\n\t\t\tbackground = `url('${ yith_wcan_shortcodes.loader }') ${ background }`;\n\t\t}\n\n\t\t$el.block( {\n\t\t\tmessage: null,\n\t\t\toverlayCSS: {\n\t\t\t\tbackground,\n\t\t\t\topacity: 0.7,\n\t\t\t},\n\t\t} );\n\t}\n\n\t// unblock dom elements\n\tunblock( $el ) {\n\t\tif ( typeof $.fn.unblock === 'undefined' ) {\n\t\t\treturn;\n\t\t}\n\n\t\t$el.unblock();\n\t}\n\n\t// checks if param is one used by layared nav to filter products.\n\tisFilterParam( param ) {\n\t\tlet supportedParams = [\n\t\t\t\t'rating_filter',\n\t\t\t\t'min_price',\n\t\t\t\t'max_price',\n\t\t\t\t'price_ranges',\n\t\t\t\t'onsale_filter',\n\t\t\t\t'instock_filter',\n\t\t\t\t'featured_filter',\n\t\t\t\t'orderby',\n\t\t\t\t'product-page',\n\t\t\t\tyith_wcan_shortcodes.query_param,\n\t\t\t],\n\t\t\tcustomParams;\n\n\t\t// filter properties\n\t\tcustomParams = $( document ).triggerHandler(\n\t\t\t'yith_wcan_supported_filters_parameters',\n\t\t\t[ supportedParams ]\n\t\t);\n\n\t\tif ( !! customParams ) {\n\t\t\tsupportedParams = customParams;\n\t\t}\n\n\t\tsupportedParams = supportedParams.concat(\n\t\t\tyith_wcan_shortcodes.supported_taxonomies.map( ( i ) =>\n\t\t\t\ti.replace( 'pa_', 'filter_' )\n\t\t\t)\n\t\t);\n\n\t\tif ( -1 !== supportedParams.indexOf( param ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( -1 !== param.indexOf( 'filter_' ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( -1 !== param.indexOf( 'query_type_' ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n}\n","'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nimport { $ } from '../config.js';\n\nexport default class YITH_WCAN_Reset_Button {\n\t// current button\n\t$reset = null;\n\n\t// init object\n\tconstructor( el ) {\n\t\t// current button\n\t\tthis.$reset = el;\n\n\t\tthis.$reset.on( 'click', function ( ev ) {\n\t\t\tev.preventDefault();\n\n\t\t\t$( '.yith-wcan-filters' ).each( function () {\n\t\t\t\tconst preset = $( this ).data( 'preset' );\n\n\t\t\t\tpreset.deactivateAllFilters( true );\n\t\t\t\tpreset.closeModal();\n\t\t\t} );\n\t\t} );\n\n\t\tthis.$reset.data( 'reset', this ).addClass( 'enhanced' );\n\t}\n}\n","'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nimport { $ } from '../config.js';\n\nexport default class YITH_WCAN_Dropdown {\n\t// current button\n\t$originalSelect = null;\n\n\t// main element\n\t$_main = null;\n\n\t// label element\n\t$_label = null;\n\n\t// dropdown\n\t$_dropdown = null;\n\n\t// search input\n\t$_search = null;\n\n\t// show more link\n\t$_showMore = null;\n\n\t// items list\n\t$_items = null;\n\n\t// current page\n\tcurrentPage = 1;\n\n\t// options\n\toptions = {};\n\n\t// init object\n\tconstructor( el, opts ) {\n\t\tthis.$originalSelect = el;\n\n\t\tif ( ! this.$originalSelect.is( 'select' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst defaultPerPage = this.$originalSelect.data( 'per_page' ),\n\t\t\tdefaultOrder = this.$originalSelect.data( 'order' ),\n\t\t\tdefaultAll = this.$originalSelect.data( 'all-label' ),\n\t\t\tdefaults = {\n\t\t\t\tshowSearch: this.$originalSelect.data( 'show_search' ),\n\t\t\t\tpaginate: this.$originalSelect.data( 'paginate' ),\n\t\t\t\tperPage: defaultPerPage ? defaultPerPage : 10,\n\t\t\t\torder: defaultOrder ? defaultOrder : 'ASC',\n\t\t\t\tgetElements: null,\n\t\t\t\tlabels: {\n\t\t\t\t\temptyLabel: defaultAll\n\t\t\t\t\t\t? defaultAll\n\t\t\t\t\t\t: yith_wcan_shortcodes.labels?.empty_option,\n\t\t\t\t\tsearchPlaceholder:\n\t\t\t\t\t\tyith_wcan_shortcodes.labels?.search_placeholder,\n\t\t\t\t\tnoItemsFound: yith_wcan_shortcodes.labels?.no_items,\n\t\t\t\t\tshowMore: yith_wcan_shortcodes.labels?.show_more,\n\t\t\t\t},\n\t\t\t};\n\n\t\tthis.options = $.extend( defaults, opts );\n\n\t\tthis._hideSelect();\n\t\tthis._initTemplate();\n\t\tthis._initActions();\n\n\t\tthis.$originalSelect.data( 'dropdown', this ).addClass( 'enhanced' );\n\t}\n\n\t// hide select\n\t_hideSelect() {\n\t\tthis.$originalSelect.hide();\n\t}\n\n\t// create dropdown\n\t_initTemplate() {\n\t\tconst $mainSpan = $( '<div/>', {\n\t\t\t\tclass: 'yith-wcan-dropdown closed',\n\t\t\t} ),\n\t\t\t$labelSpan = $( '<div/>', {\n\t\t\t\tclass: 'dropdown-label',\n\t\t\t\thtml: this.getLabel(),\n\t\t\t} ),\n\t\t\t$dropdownSpan = $( '<div>', {\n\t\t\t\tclass: 'dropdown-wrapper',\n\t\t\t} ),\n\t\t\t$matchingItemsList = $( '<ul/>', {\n\t\t\t\tclass: 'matching-items filter-items',\n\t\t\t} );\n\n\t\t$dropdownSpan.append( $matchingItemsList );\n\t\t$mainSpan.append( $labelSpan ).append( $dropdownSpan );\n\n\t\tif ( this.options.showSearch ) {\n\t\t\tthis._initSearchTemplate( $dropdownSpan );\n\t\t}\n\n\t\tif ( this.options.paginate ) {\n\t\t\tthis._initShowMoreTemplate( $dropdownSpan );\n\t\t}\n\n\t\tthis.$originalSelect.after( $mainSpan );\n\t\tthis.$_main = $mainSpan;\n\t\tthis.$_label = $labelSpan;\n\t\tthis.$_dropdown = $dropdownSpan;\n\t\tthis.$_items = $matchingItemsList;\n\t}\n\n\t// create search field\n\t_initSearchTemplate( $dropdwonSpan ) {\n\t\tconst $container = $( '<div/>', {\n\t\t\t\tclass: 'search-field-container',\n\t\t\t} ),\n\t\t\t$search = $( '<input/>', {\n\t\t\t\tname: 's',\n\t\t\t\tclass: 'search-field',\n\t\t\t\ttype: 'search',\n\t\t\t\tplaceholder: this.options.labels.searchPlaceholder,\n\t\t\t} );\n\n\t\t$container.append( $search ).prependTo( $dropdwonSpan );\n\t\tthis.$_search = $search;\n\t}\n\n\t// create showMore field\n\t_initShowMoreTemplate( $dropdwonSpan ) {\n\t\tconst $showMore = $( '<a/>', {\n\t\t\tclass: 'show-more',\n\t\t\ttext: this.options.labels.showMore?.replace(\n\t\t\t\t'%d',\n\t\t\t\tthis.options.perPage\n\t\t\t),\n\t\t} );\n\n\t\t$showMore.on( 'click', this.loadNextPage.bind( this ) ).hide();\n\n\t\t$dropdwonSpan.append( $showMore );\n\t\tthis.$_showMore = $showMore;\n\t}\n\n\t// init actions performed over dropdown elements\n\t_initActions() {\n\t\tconst self = this;\n\n\t\t// main open event\n\t\tthis.$_main?.on( 'click', ( ev ) => {\n\t\t\tev.stopPropagation();\n\t\t\tself.toggleDropdown();\n\t\t} );\n\t\tthis.$_dropdown.on( 'click', ( ev ) => {\n\t\t\tev.stopPropagation();\n\t\t} );\n\n\t\t// search event\n\t\tthis.$_search?.on( 'keyup search', () => {\n\t\t\tself._populateItems();\n\t\t} );\n\n\t\t// select event\n\t\tthis.$_items.on( 'change', ':input', function () {\n\t\t\tlet $li = $( this ).closest( 'li' ),\n\t\t\t\tvalue = $li.data( 'value' ),\n\t\t\t\tisActive = false;\n\n\t\t\tif (\n\t\t\t\t$li.hasClass( 'disabled' ) &&\n\t\t\t\t! self.isValueSelected( value )\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t$li.toggleClass( 'active' );\n\t\t\tisActive = $li.hasClass( 'active' );\n\n\t\t\tself._changeItemStatus( value, isActive );\n\t\t} );\n\t\tthis.$_items.on( 'click', 'li:not(.checkbox) a', function ( ev ) {\n\t\t\tlet $li = $( this ).closest( 'li' ),\n\t\t\t\tvalue = $li.data( 'value' ),\n\t\t\t\tisActive = false;\n\n\t\t\tev.preventDefault();\n\n\t\t\tif (\n\t\t\t\t$li.hasClass( 'disabled' ) &&\n\t\t\t\t! self.isValueSelected( value )\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t$li.toggleClass( 'active' );\n\t\t\tisActive = $li.hasClass( 'active' );\n\n\t\t\tif ( isActive ) {\n\t\t\t\t$li.siblings().removeClass( 'active' );\n\t\t\t}\n\n\t\t\tself._changeItemStatus( value, isActive );\n\t\t} );\n\t\tthis.$_items.on( 'click', 'label > a', function ( ev ) {\n\t\t\tconst input = $( this ).parent().find( ':input' );\n\n\t\t\tev.preventDefault();\n\n\t\t\tif (\n\t\t\t\tinput.is( '[type=\"radio\"]' ) ||\n\t\t\t\tinput.is( '[type=\"checkbox\"]' )\n\t\t\t) {\n\t\t\t\tinput.prop( 'checked', ! input.prop( 'checked' ) );\n\t\t\t}\n\n\t\t\tinput.change();\n\t\t} );\n\n\t\t// select change\n\t\tthis.$originalSelect.on( 'change', ( ev, selfOriginated ) => {\n\t\t\tif ( selfOriginated ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tself.$_items.find( 'li' ).each( function () {\n\t\t\t\tconst value = $( this ).data( 'value' );\n\n\t\t\t\tif ( self.isValueSelected( value ) ) {\n\t\t\t\t\tself._selectItem( value );\n\t\t\t\t} else {\n\t\t\t\t\tself._deselectItem( value );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tself.updateLabel();\n\t\t} );\n\n\t\t// close dropdown on external click; do this handler only once for any dropdown in the page\n\t\tif ( ! globalThis?.yith_wcan_dropdown_init ) {\n\t\t\t$( document ).on( 'click', this._closeAllDropdowns );\n\t\t\tglobalThis.yith_wcan_dropdown_init = true;\n\t\t}\n\t}\n\n\t// open dropdown\n\topenDropdown() {\n\t\tthis.$_main?.addClass( 'open' ).removeClass( 'closed' );\n\t\tthis._afterDropdownOpen();\n\t}\n\n\t// close dropdown\n\tcloseDropdown() {\n\t\tthis.$_main?.removeClass( 'open' ).addClass( 'closed' );\n\t}\n\n\t// close all dropdowns\n\t_closeAllDropdowns() {\n\t\tconst dropdowns = $( document )\n\t\t\t.find( 'select.enhanced' )\n\t\t\t.filter( function ( i, select ) {\n\t\t\t\tconst $el = $( select );\n\n\t\t\t\treturn !! $el.data( 'dropdown' );\n\t\t\t} );\n\n\t\tdropdowns.each( function () {\n\t\t\t$( this ).data( 'dropdown' ).closeDropdown();\n\t\t} );\n\t}\n\n\t// close other dropdowns\n\t_closeOtherDropdowns() {\n\t\tconst self = this,\n\t\t\tdropdowns = $( document )\n\t\t\t\t.find( 'select.enhanced' )\n\t\t\t\t.filter( function ( i, select ) {\n\t\t\t\t\tconst $el = $( select );\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! $el.data( 'dropdown' ) &&\n\t\t\t\t\t\t! $el.is( self.$originalSelect )\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\tdropdowns.each( function () {\n\t\t\t$( this ).data( 'dropdown' ).closeDropdown();\n\t\t} );\n\t}\n\n\t// toggle dropdown\n\ttoggleDropdown() {\n\t\tthis.$_main?.toggleClass( 'open' ).toggleClass( 'closed' );\n\n\t\tif ( this.$_main?.hasClass( 'open' ) ) {\n\t\t\tthis._afterDropdownOpen();\n\t\t}\n\t}\n\n\t// perform operations after dropdown is open\n\t_afterDropdownOpen() {\n\t\tthis._closeOtherDropdowns();\n\n\t\tif ( this.$_search?.length ) {\n\t\t\tthis.$_search.val( '' );\n\t\t}\n\n\t\tthis._populateItems();\n\t}\n\n\t// get elements\n\tgetMatchingElements( search, limit ) {\n\t\tlet matchingElements = [],\n\t\t\t$options = this.getOptions(),\n\t\t\tpromise;\n\n\t\tpromise = new Promise( ( resolve ) => {\n\t\t\t// first of all, search across select option\n\t\t\t$options.each( function () {\n\t\t\t\tconst t = $( this ),\n\t\t\t\t\tvalue = t.val(),\n\t\t\t\t\tlabel = t.html(),\n\t\t\t\t\tregex = new RegExp( '.*' + search + '.*', 'i' ),\n\t\t\t\t\tshow =\n\t\t\t\t\t\t! search || regex.test( value ) || regex.test( label );\n\n\t\t\t\tif ( show ) {\n\t\t\t\t\tmatchingElements.push( {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// then retrieve additional items\n\t\t\tif ( this.options.getElements ) {\n\t\t\t\t// we're expecting key => value pairs\n\t\t\t\tthis.options\n\t\t\t\t\t.getElements( search )\n\t\t\t\t\t.then( ( retrievedElements ) => {\n\t\t\t\t\t\tif ( retrievedElements ) {\n\t\t\t\t\t\t\t// reformat retrieved array\n\t\t\t\t\t\t\tretrievedElements = retrievedElements.reduce(\n\t\t\t\t\t\t\t\t( a, v, i ) => {\n\t\t\t\t\t\t\t\t\ta.push( { label: i, value: v } );\n\t\t\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t[]\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t// merge found results with options\n\t\t\t\t\t\t\tmatchingElements = $.extend(\n\t\t\t\t\t\t\t\tmatchingElements,\n\t\t\t\t\t\t\t\tretrievedElements\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresolve( this._formatItems( matchingElements, limit ) );\n\t\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tresolve( this._formatItems( matchingElements, limit ) );\n\t\t\t}\n\t\t} );\n\n\t\treturn promise;\n\t}\n\n\t// format items as key/value pairs for further processing\n\t_formatItems( items, limit ) {\n\t\tlet indexes = [],\n\t\t\thasMore = false;\n\n\t\t// remove duplicates and sort array of results\n\t\titems\n\t\t\t.filter( ( v ) => {\n\t\t\t\tif ( -1 === indexes.indexOf( v.value ) ) {\n\t\t\t\t\tindexes.push( v.value );\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t} )\n\t\t\t.sort( ( a, b ) => {\n\t\t\t\tconst order = this.options.order,\n\t\t\t\t\tmod = order === 'ASC' ? 1 : -1;\n\n\t\t\t\tif ( a.value < b.value ) {\n\t\t\t\t\treturn -1 * mod;\n\t\t\t\t} else if ( a.value > b.value ) {\n\t\t\t\t\treturn mod;\n\t\t\t\t}\n\n\t\t\t\treturn 0;\n\t\t\t} );\n\n\t\t// paginate when needed\n\t\tif ( limit ) {\n\t\t\thasMore = limit < Object.keys( items ).length;\n\t\t\titems = items.slice( 0, limit );\n\t\t}\n\n\t\treturn {\n\t\t\titems,\n\t\t\thasMore,\n\t\t};\n\t}\n\n\t// generate item to append to items list\n\t_generateItem( value, label ) {\n\t\tlet active = this.isValueSelected( value ),\n\t\t\toption = this.getOptionByValue( value ),\n\t\t\t$item = $( '<li/>', {\n\t\t\t\t'data-value': value,\n\t\t\t\tclass: option.length ? option.attr( 'class' ) : '',\n\t\t\t} ),\n\t\t\t$anchor;\n\n\t\tif ( option.length ) {\n\t\t\tconst template = option.data( 'template' ),\n\t\t\t\tcount = option.data( 'count' );\n\n\t\t\tlabel = template ? template : label;\n\n\t\t\tif ( !! count ) {\n\t\t\t\tlabel += count;\n\t\t\t}\n\t\t}\n\n\t\t$anchor = $( '<a/>', {\n\t\t\thref: option.length ? option.data( 'filter_url' ) : '#',\n\t\t\thtml: label,\n\t\t\trel: 'nofollow',\n\t\t\t'data-title': option.length ? option.data( 'title' ) : '',\n\t\t} );\n\n\t\tif ( this.$originalSelect.prop( 'multiple' ) ) {\n\t\t\tconst $checkbox = $( '<input/>', {\n\t\t\t\t\ttype: 'checkbox',\n\t\t\t\t\tvalue,\n\t\t\t\t} ),\n\t\t\t\t$label = $( '<label>' );\n\n\t\t\t$checkbox.prop( 'checked', active );\n\t\t\t$label.prepend( $checkbox ).append( $anchor );\n\t\t\t$item.append( $label ).addClass( 'checkbox' );\n\t\t} else {\n\t\t\t$item.append( $anchor );\n\t\t}\n\n\t\tactive ? $item.addClass( 'active' ) : $item.removeClass( 'active' );\n\n\t\treturn $item;\n\t}\n\n\t// populate items list\n\t_populateItems( page ) {\n\t\tlet search = this.$_search?.length ? this.$_search.val() : '',\n\t\t\tperPage = this.options.paginate ? this.options.perPage : 0,\n\t\t\tlimit;\n\n\t\tpage = page ? parseInt( page ) : 1;\n\t\tlimit = page * perPage;\n\n\t\tthis.getMatchingElements( search, limit ).then( ( resultSet ) => {\n\t\t\tlet matchingItems = resultSet.items,\n\t\t\t\titems = [],\n\t\t\t\thasMore = false;\n\n\t\t\t// remove all previous items\n\t\t\tthis._emptyItems();\n\t\t\tthis._hideLoadMore();\n\n\t\t\tif ( ! matchingItems.length ) {\n\t\t\t\titems.push(\n\t\t\t\t\t$( '<li/>', { text: this.options.labels.noItemsFound } )\n\t\t\t\t);\n\n\t\t\t\tthis.currentPage = 1;\n\t\t\t} else {\n\t\t\t\tfor ( const v of matchingItems ) {\n\t\t\t\t\tif ( v.value === '' ) {\n\t\t\t\t\t\titems.unshift( this._generateItem( v.value, v.label ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\titems.push( this._generateItem( v.value, v.label ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.currentPage = page;\n\t\t\t\thasMore = resultSet.hasMore;\n\t\t\t}\n\n\t\t\tthis.$_items.append( items );\n\n\t\t\tthis.$originalSelect.trigger( 'yith_wcan_dropdown_updated' );\n\n\t\t\tif ( hasMore ) {\n\t\t\t\tthis._showLoadMore();\n\t\t\t}\n\t\t} );\n\t}\n\n\t// load next page of items\n\tloadNextPage() {\n\t\tconst page = this.currentPage + 1;\n\n\t\tthis._populateItems( page );\n\t}\n\n\t// set an item as active\n\t_selectItem( value ) {\n\t\treturn this._changeItemStatus( value, true );\n\t}\n\n\t// disable an item\n\t_deselectItem( value ) {\n\t\treturn this._changeItemStatus( value, false );\n\t}\n\n\t// change item status\n\t_changeItemStatus( value, status ) {\n\t\tconst $option = this.$originalSelect.find(\n\t\t\t`option[value=\"${ value }\"]`\n\t\t);\n\n\t\tif ( $option.length ) {\n\t\t\t$option.prop( 'selected', status );\n\n\t\t\tthis.closeDropdown();\n\t\t\tthis.updateLabel();\n\n\t\t\tthis.$originalSelect.trigger( 'change', [ true ] );\n\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t// empty items list\n\t_emptyItems() {\n\t\tthis.$_items.html( '' );\n\t}\n\n\t// show \"Load more\" link\n\t_showLoadMore() {\n\t\tthis.$_showMore.show();\n\t}\n\n\t// hide \"Load more\" link\n\t_hideLoadMore() {\n\t\tthis.$_showMore.hide();\n\t}\n\n\t// returns select label\n\tgetLabel() {\n\t\treturn this.hasSelectedValues()\n\t\t\t? this.getSelectedLabels().join( ', ' )\n\t\t\t: this.options.labels.emptyLabel;\n\t}\n\n\t// update label to match new selection\n\tupdateLabel() {\n\t\tconst label = this.getLabel();\n\n\t\tthis.$_label?.html( label );\n\t}\n\n\t// returns select options\n\tgetOptions() {\n\t\treturn this.$originalSelect.find( 'option' );\n\t}\n\n\t// checks whether select has selected values\n\thasSelectedValues() {\n\t\treturn this.getSelectedOptions().length;\n\t}\n\n\t// checks whether a value is selected\n\tisValueSelected( value ) {\n\t\tconst found = this.getSelectedValues().indexOf( value.toString() );\n\n\t\treturn -1 !== found;\n\t}\n\n\t// retrieve selected options\n\tgetSelectedOptions() {\n\t\treturn this.$originalSelect.find( 'option' ).filter( ':selected' );\n\t}\n\n\t// retrieves an option node by value\n\tgetOptionByValue( value ) {\n\t\treturn this.$originalSelect.find( `option[value=\"${ value }\"]` );\n\t}\n\n\t// retrieve labels for selected options\n\tgetSelectedLabels() {\n\t\tconst labels = [];\n\n\t\tthis.getSelectedOptions().each( function () {\n\t\t\tlet $option = $( this ),\n\t\t\t\ttemplate = $option.data( 'template' );\n\n\t\t\ttemplate = template\n\t\t\t\t? template\n\t\t\t\t: $option.html().replace( /\\([0-9]*\\)/, '' );\n\n\t\t\tlabels.push( template );\n\t\t} );\n\n\t\treturn labels;\n\t}\n\n\t// retrieve values for selected options\n\tgetSelectedValues() {\n\t\tconst values = [];\n\n\t\tthis.getSelectedOptions().each( function () {\n\t\t\tvalues.push( $( this ).val() );\n\t\t} );\n\n\t\treturn values;\n\t}\n\n\tdestroy() {\n\t\t// TBD\n\t}\n}\n","'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nimport { $ } from '../config.js';\nimport YITH_WCAN_Dropdown from './yith-wcan-dropdown';\n\nexport default class YITH_WCAN_Preset {\n\t// main preset node\n\tpreset = false;\n\t$preset = false;\n\n\t// target of the filter, if any\n\ttarget = false;\n\t$target = false;\n\n\t// filters node\n\t$filters = false;\n\n\t// filter button\n\t$filterButtons = false;\n\n\t// nodes created just for modal layout\n\tmodalElements = {};\n\n\t// retains current status of filters\n\tactiveFilters = false;\n\n\t// mobile flag\n\tisMobile = false;\n\n\t// slider timeout\n\tsliderTimeout = false;\n\n\t// registers when status has changed\n\toriginalFilters = null;\n\tdirty = false;\n\n\t// init object\n\tconstructor( el ) {\n\t\t// main preset node\n\t\tthis.preset = '#' + el.attr( 'id' );\n\t\tthis.$preset = el;\n\n\t\t// target of the filter, if any\n\t\tthis.target = this.$preset.data( 'target' );\n\t\tthis.$target = this.target ? $( this.target ) : false;\n\n\t\tthis._regiterStatus();\n\t\tthis._initFilterButton();\n\t\tthis._initResponsive();\n\t\tthis._initFilters();\n\t\tthis._initActions();\n\n\t\tthis.$preset\n\t\t\t.data( 'preset', this )\n\t\t\t.addClass( 'enhanced' )\n\t\t\t.trigger( 'yith_wcan_preset_initialized', [ this ] );\n\t}\n\n\t// init filters\n\t_initFilters() {\n\t\tconst self = this;\n\n\t\tthis.getFilters().each( function () {\n\t\t\tconst $filter = $( this );\n\n\t\t\tself._initFilter( $filter );\n\t\t} );\n\n\t\tthis.maybeShowClearAllFilters();\n\t}\n\n\t// init filter button\n\t_initFilterButton() {\n\t\tthis.$filterButtons = this.$preset.find( '.apply-filters' );\n\n\t\tif ( ! this.$filterButtons.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// manage filter button\n\t\tthis.$filterButtons\n\t\t\t.on( 'click', ( ev ) => {\n\t\t\t\tev.preventDefault();\n\t\t\t\tthis.filter();\n\t\t\t} )\n\t\t\t.hide();\n\t}\n\n\t// init generic actions\n\t_initActions() {\n\t\tthis.$preset.find( 'form' ).on( 'submit', ( ev ) => {\n\t\t\tev.preventDefault();\n\t\t} );\n\t}\n\n\t// init responsive\n\t_initResponsive() {\n\t\tif ( ! yith_wcan_shortcodes.modal_on_mobile ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst media = window.matchMedia(\n\t\t\t`(max-width: ${ yith_wcan_shortcodes.mobile_media_query }px)`\n\t\t);\n\n\t\t$( window )\n\t\t\t.on( 'resize', () => {\n\t\t\t\tconst isMobile = !! media.matches;\n\n\t\t\t\tif ( isMobile !== this.isMobile ) {\n\t\t\t\t\tthis.isMobile = isMobile;\n\t\t\t\t\tthis._afterLayoutChange();\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.resize();\n\t}\n\n\t// init filter\n\t_initFilter( $filter ) {\n\t\tconst self = this,\n\t\t\thandleChange = function ( ev ) {\n\t\t\t\tconst t = $( this ),\n\t\t\t\t\t$currentFilter = t.closest( '.yith-wcan-filter' ),\n\t\t\t\t\tmultiple = $currentFilter.length\n\t\t\t\t\t\t? 'yes' === $currentFilter.data( 'multiple' )\n\t\t\t\t\t\t: false,\n\t\t\t\t\t$item = t.closest( '.filter-item' ),\n\t\t\t\t\t$items = $item.length\n\t\t\t\t\t\t? $currentFilter.find( '.filter-item' ).not( $item )\n\t\t\t\t\t\t: [];\n\n\t\t\t\tif ( $item.is( '.disabled' ) && ! $item.is( '.active' ) ) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tev.preventDefault();\n\n\t\t\t\t$items.length &&\n\t\t\t\t\t! multiple &&\n\t\t\t\t\t$items\n\t\t\t\t\t\t.removeClass( 'active' )\n\t\t\t\t\t\t.children( 'label' )\n\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t.parent( '.checked' )\n\t\t\t\t\t\t.removeClass( 'checked' );\n\t\t\t\t$item.length && $item.toggleClass( 'active' );\n\n\t\t\t\t// reset active filters.\n\t\t\t\tself.activeFilters = false;\n\n\t\t\t\tself.maybeFilter( $filter );\n\t\t\t\tself.maybeToggleClearAllFilters();\n\t\t\t\tself.maybeToggleClearFilter( $currentFilter );\n\t\t\t};\n\n\t\t// handle filter activation/deactivation by click on label (no input involved)\n\t\t$filter\n\t\t\t.find( '.filter-item' )\n\t\t\t.not( '.checkbox' )\n\t\t\t.not( '.radio' )\n\t\t\t.on( 'click', 'a', function ( ev ) {\n\t\t\t\tconst t = $( this ),\n\t\t\t\t\t$item = t.closest( '.filter-item' );\n\n\t\t\t\tif ( ! $( ev?.delegateTarget ).is( $item ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\thandleChange.call( this, ev );\n\t\t\t} );\n\n\t\t// handle filter activation/deactivation from input change\n\t\t$filter.find( ':input' ).on( 'change', function ( ev ) {\n\t\t\tconst t = $( this ),\n\t\t\t\t$item = t.closest( '.filter-item' );\n\n\t\t\tif ( $item.is( '.disabled' ) && ! $item.is( '.active' ) ) {\n\t\t\t\tt.prop( 'checked', false );\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\thandleChange.call( this, ev );\n\t\t} );\n\n\t\t// handle filter activation/deactivation by click on label (there is an input whose state can be switched)\n\t\t$filter.find( 'label > a' ).on( 'click', function ( ev ) {\n\t\t\tconst t = $( this ),\n\t\t\t\t$item = t.closest( '.filter-item' );\n\n\t\t\tev.preventDefault();\n\n\t\t\tif ( $item.is( '.disabled' ) && ! $item.is( '.active' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst $input = t.parent().find( ':input' );\n\n\t\t\tif (\n\t\t\t\t$input.is( '[type=\"radio\"]' ) ||\n\t\t\t\t$input.is( '[type=\"checkbox\"]' )\n\t\t\t) {\n\t\t\t\t$input.prop( 'checked', ! $input.prop( 'checked' ) );\n\t\t\t}\n\n\t\t\t$input.change();\n\t\t} );\n\n\t\t// init tooltip\n\t\tthis._initTooltip( $filter );\n\n\t\t// init price slider\n\t\tthis._initPriceSlider( $filter );\n\n\t\t// init dropdown\n\t\tthis._initDropdown( $filter );\n\n\t\t// init collapsable\n\t\tthis._initCollapsable( $filter );\n\n\t\t// init clear anchors\n\t\tthis.maybeShowClearFilter( $filter );\n\n\t\t// init custom inputs\n\t\tif ( this.$preset?.hasClass( 'custom-style' ) ) {\n\t\t\tthis._initCustomInput( $filter );\n\t\t\t$filter.on( 'yith_wcan_dropdown_updated', function () {\n\t\t\t\tconst $dropdown = $( this ),\n\t\t\t\t\t$current = $dropdown.closest( '.yith-wcan-filter' );\n\n\t\t\t\tself._initCustomInput( $current );\n\t\t\t} );\n\t\t}\n\t}\n\n\t// init tooltip\n\t_initTooltip( $filter, position ) {\n\t\t$filter.find( '[data-title]' ).each( function () {\n\t\t\tconst t = $( this );\n\n\t\t\tif ( t.hasClass( 'tooltip-added' ) || ! t.data( 'title' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tt.on( 'mouseenter', function () {\n\t\t\t\tlet th = $( this ),\n\t\t\t\t\ttooltip = null,\n\t\t\t\t\twrapperWidth = th.outerWidth(),\n\t\t\t\t\tleft = 0,\n\t\t\t\t\twidth = 0;\n\n\t\t\t\tif (\n\t\t\t\t\t! position ||\n\t\t\t\t\t( 'top' !== position && 'right' !== position )\n\t\t\t\t) {\n\t\t\t\t\tconst container = th.closest( '.filter-item' );\n\n\t\t\t\t\tposition =\n\t\t\t\t\t\tcontainer.hasClass( 'color' ) ||\n\t\t\t\t\t\tcontainer.hasClass( 'label' )\n\t\t\t\t\t\t\t? 'top'\n\t\t\t\t\t\t\t: 'right';\n\t\t\t\t}\n\n\t\t\t\ttooltip = $( '<span>', {\n\t\t\t\t\tclass: 'yith-wcan-tooltip',\n\t\t\t\t\thtml: th.data( 'title' ),\n\t\t\t\t} );\n\n\t\t\t\tth.append( tooltip );\n\n\t\t\t\twidth = tooltip.outerWidth() + 6;\n\t\t\t\ttooltip.outerWidth( width );\n\n\t\t\t\tif ( 'top' === position ) {\n\t\t\t\t\tleft = ( wrapperWidth - width ) / 2;\n\t\t\t\t} else {\n\t\t\t\t\tleft = wrapperWidth + 15;\n\t\t\t\t}\n\n\t\t\t\ttooltip.css( { left: left.toFixed( 0 ) + 'px' } ).fadeIn( 200 );\n\n\t\t\t\tth.addClass( 'with-tooltip' );\n\t\t\t} ).on( 'mouseleave', function () {\n\t\t\t\tconst th = $( this );\n\n\t\t\t\tth.find( '.yith-wcan-tooltip' ).fadeOut( 200, function () {\n\t\t\t\t\tth.removeClass( 'with-tooltip' )\n\t\t\t\t\t\t.find( '.yith-wcan-tooltip' )\n\t\t\t\t\t\t.remove();\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\tt.addClass( 'tooltip-added' );\n\t\t} );\n\t}\n\n\t// init dropdown\n\t_initDropdown( $filter ) {\n\t\tconst $dropdown = $filter.find( 'select.filter-dropdown' );\n\n\t\tif ( ! $dropdown.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\t$dropdown.hasClass( 'select2-hidden-accessible' ) &&\n\t\t\t'undefined' !== typeof $.fn.selectWoo\n\t\t) {\n\t\t\t$dropdown.selectWoo( 'destroy' );\n\t\t}\n\n\t\tthis._initDropdownObject( $dropdown, {\n\t\t\tpaginate: true,\n\t\t\tperPage: yith_wcan_shortcodes.terms_per_page,\n\t\t} );\n\t}\n\n\t// init dropdown object\n\t_initDropdownObject( $dropdown, opts ) {\n\t\treturn new YITH_WCAN_Dropdown( $dropdown, opts );\n\t}\n\n\t// init price slider\n\t_initPriceSlider( $filter ) {\n\t\tif ( ! $filter.hasClass( 'filter-price-slider' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst self = this,\n\t\t\t$container = $filter.find( '.price-slider' ),\n\t\t\t$minInput = $container.find( '.price-slider-min' ),\n\t\t\t$maxInput = $container.find( '.price-slider-max' ),\n\t\t\tmin = parseFloat( $container.data( 'min' ) ),\n\t\t\tmax = parseFloat( $container.data( 'max' ) ),\n\t\t\tcurrentMin = parseFloat( $minInput.val() ),\n\t\t\tcurrentMax = parseFloat( $maxInput.val() ),\n\t\t\tstep = parseFloat( $container.data( 'step' ) ),\n\t\t\thandleSliderChange = function () {\n\t\t\t\tif ( self.sliderTimeout ) {\n\t\t\t\t\tclearTimeout( self.sliderTimeout );\n\t\t\t\t}\n\n\t\t\t\tself.sliderTimeout = setTimeout( () => {\n\t\t\t\t\tself.maybeFilter( $filter );\n\t\t\t\t}, 200 );\n\t\t\t};\n\n\t\t$filter.find( '.price-slider-ui' ).ionRangeSlider( {\n\t\t\tskin: 'round',\n\t\t\ttype: 'double',\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tstep,\n\t\t\tfrom: currentMin,\n\t\t\tto: currentMax,\n\t\t\tmin_interval: step,\n\t\t\tvalues_separator: ' - ',\n\t\t\tprettify: ( v ) => this.formatPrice( v ),\n\t\t\tonChange: ( data ) => {\n\t\t\t\t$minInput.val( data.from );\n\t\t\t\t$maxInput.val( data.to );\n\t\t\t},\n\t\t\tonFinish: handleSliderChange,\n\t\t} );\n\n\t\t$minInput\n\t\t\t.add( $maxInput )\n\t\t\t.off( 'change' )\n\t\t\t.on( 'keyup', () => {\n\t\t\t\tif ( ! $minInput.val() || ! $maxInput.val() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\thandleSliderChange();\n\t\t\t} );\n\t}\n\n\t// init collapsable\n\t_initCollapsable( $filter ) {\n\t\tthis._initTitleCollapsable( $filter );\n\t\tthis._initHierarchyCollapsable( $filter );\n\t}\n\n\t// init toggle on click of the title\n\t_initTitleCollapsable( $filter ) {\n\t\tconst $title = $filter.find( '.collapsable' );\n\n\t\tif ( ! $title.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._initToggle( $title, $title, $filter.find( '.filter-content' ) );\n\t}\n\n\t// init toggle on click of the parent li\n\t_initHierarchyCollapsable( $filter ) {\n\t\tconst $items = $filter.find( '.hierarchy-collapsable' );\n\n\t\tif ( ! $items.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// set parents of currently active term as open\n\t\tconst self = this,\n\t\t\tactive = $filter.find( '.active' );\n\n\t\tif ( active.length ) {\n\t\t\tactive\n\t\t\t\t.parents( '.hierarchy-collapsable' )\n\t\t\t\t.removeClass( 'closed' )\n\t\t\t\t.addClass( 'opened' );\n\n\t\t\tif (\n\t\t\t\tactive.hasClass( 'hierarchy-collapsable' ) &&\n\t\t\t\tyith_wcan_shortcodes.show_current_children\n\t\t\t) {\n\t\t\t\tactive.removeClass( 'closed' ).addClass( 'opened' );\n\t\t\t}\n\t\t}\n\n\t\t$items.each( function () {\n\t\t\tconst $t = $( this ),\n\t\t\t\t$toggle = $( '<span/>', {\n\t\t\t\t\tclass: 'toggle-handle',\n\t\t\t\t} );\n\n\t\t\t$toggle.appendTo( $t );\n\n\t\t\tself._initToggle( $toggle, $t, $t.children( 'ul.filter-items' ) );\n\t\t} );\n\t}\n\n\t// init toggle to generic toggle/target pair\n\t_initToggle( $toggle, $container, $target ) {\n\t\tif ( $container.hasClass( 'closed' ) ) {\n\t\t\t$target.hide();\n\t\t}\n\n\t\t$toggle.off( 'click' ).on( 'click', ( ev ) => {\n\t\t\tev.stopPropagation();\n\t\t\tev.preventDefault();\n\n\t\t\t$target.slideToggle( 400, () => {\n\t\t\t\t$container.toggleClass( 'opened' ).toggleClass( 'closed' );\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// init custom input\n\t_initCustomInput( $filter ) {\n\t\t$filter.find( ':input' ).each( function () {\n\t\t\tlet input = $( this ),\n\t\t\t\ttype = input.attr( 'type' ),\n\t\t\t\tcontainerClass = `${ type }button`,\n\t\t\t\tcontainer;\n\n\t\t\tif ( 'checkbox' !== type && 'radio' !== type ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( input.closest( `.${ containerClass }` ).length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( input.is( ':checked' ) ) {\n\t\t\t\tcontainerClass += ' checked';\n\t\t\t}\n\n\t\t\tcontainer = $( '<span/>', {\n\t\t\t\tclass: containerClass,\n\t\t\t} );\n\n\t\t\tinput.wrap( container ).on( 'change', function () {\n\t\t\t\tconst t = $( this );\n\n\t\t\t\tt.prop( 'checked' )\n\t\t\t\t\t? t.parent().addClass( 'checked' )\n\t\t\t\t\t: t.parent().removeClass( 'checked' );\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// register initial status\n\t_regiterStatus() {\n\t\tthis.originalFilters = this.getFiltersProperties();\n\t}\n\n\t// trigger handling after layout change\n\t_afterLayoutChange() {\n\t\tif ( this.isMobile ) {\n\t\t\tthis.$preset\n\t\t\t\t.addClass( 'filters-modal' )\n\t\t\t\t.attr( 'role', 'dialog' )\n\t\t\t\t.attr( 'tabindex', '-1' )\n\t\t\t\t.hide();\n\n\t\t\tthis._addCloseModalButton();\n\t\t\tthis._addApplyFiltersModalButton();\n\t\t\tthis._switchToCollapsables();\n\n\t\t\tthis.$filterButtons?.hide();\n\t\t} else {\n\t\t\tthis.$preset\n\t\t\t\t.removeClass( 'filters-modal' )\n\t\t\t\t.removeClass( 'open' )\n\t\t\t\t.removeAttr( 'role' )\n\t\t\t\t.removeAttr( 'tabindex' )\n\t\t\t\t.show();\n\n\t\t\t$( 'body' )\n\t\t\t\t.css( 'overflow', 'auto' )\n\t\t\t\t.removeClass( 'yith-wcan-preset-modal-open' );\n\n\t\t\tthis._removeCloseModalButton();\n\t\t\tthis._removeApplyFiltersModalButton();\n\t\t\tthis._switchBackCollapsables();\n\n\t\t\tthis.$filterButtons?.show();\n\t\t}\n\t}\n\n\t// add modal close button\n\t_addCloseModalButton() {\n\t\tconst $closeButton = $( '<a/>', {\n\t\t\tclass: 'close-button',\n\t\t\thtml: '×',\n\t\t\t'data-dismiss': 'modal',\n\t\t\t'aria-label': yith_wcan_shortcodes.labels.close,\n\t\t} );\n\n\t\t$closeButton\n\t\t\t.prependTo( this.$preset )\n\t\t\t.on( 'click', this.closeModal.bind( this ) );\n\t\tthis.modalElements.closeButton = $closeButton;\n\t}\n\n\t// remove modal close button\n\t_removeCloseModalButton() {\n\t\tthis.modalElements?.closeButton?.remove();\n\t}\n\n\t// show main filter button for the modal\n\t_addApplyFiltersModalButton() {\n\t\tconst $filterButton = $( '<button/>', {\n\t\t\tclass: 'apply-filters main-modal-button',\n\t\t\thtml: yith_wcan_shortcodes.labels.show_results,\n\t\t\t'data-dismiss': 'modal',\n\t\t} );\n\n\t\t$filterButton.appendTo( this.$preset ).on( 'click', () => {\n\t\t\tthis.filter();\n\t\t\tthis.closeModal();\n\t\t} );\n\t\tthis.modalElements.applyFiltersButton = $filterButton;\n\t}\n\n\t// hide main filter button for the modal\n\t_removeApplyFiltersModalButton() {\n\t\tthis.modalElements?.applyFiltersButton?.remove();\n\t}\n\n\t// convert all filters to collapsable\n\t_switchToCollapsables() {\n\t\tconst self = this;\n\n\t\tthis.getFilters().each( function () {\n\t\t\tconst $filter = $( this ),\n\t\t\t\t$title = $filter.find( '.filter-title' );\n\n\t\t\tif ( ! $title.length || $title.hasClass( 'collapsable' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$title.addClass( 'collapsable' ).data( 'disable-collapse', true );\n\n\t\t\tself._initTitleCollapsable( $filter );\n\t\t} );\n\t}\n\n\t// switch back filters to their previous collapsable state\n\t_switchBackCollapsables() {\n\t\tthis.getFilters().each( function () {\n\t\t\tconst $filter = $( this ),\n\t\t\t\t$title = $filter.find( '.filter-title' );\n\n\t\t\tif (\n\t\t\t\t! $title.length ||\n\t\t\t\t! $title.hasClass( 'collapsable' ) ||\n\t\t\t\t! $title.data( 'disable-collapse' )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$title\n\t\t\t\t.removeClass( 'collapsable' )\n\t\t\t\t.removeData( 'disable-collapse', true )\n\t\t\t\t.off( 'click' );\n\n\t\t\t$filter.find( '.filter-content' ).show();\n\t\t} );\n\t}\n\n\t// close all collpasable before showing modal\n\t_openAllCollapsables() {\n\t\tthis.$filters\n\t\t\t.not( '.no-title' )\n\t\t\t.not( ( i, v ) => {\n\t\t\t\treturn this.isFilterActive( $( v ) );\n\t\t\t} )\n\t\t\t.find( '.filter-content' )\n\t\t\t.show()\n\t\t\t.end()\n\t\t\t.find( '.filter-title' )\n\t\t\t.removeClass( 'closed' )\n\t\t\t.addClass( 'opened' );\n\t}\n\n\t// close all collpasable before showing modal\n\t_closeAllCollapsables() {\n\t\tthis.$filters\n\t\t\t.not( '.no-title' )\n\t\t\t.not( ( i, v ) => {\n\t\t\t\treturn this.isFilterActive( $( v ) );\n\t\t\t} )\n\t\t\t.find( '.filter-content' )\n\t\t\t.hide()\n\t\t\t.end()\n\t\t\t.find( '.filter-title' )\n\t\t\t.addClass( 'closed' )\n\t\t\t.removeClass( 'opened' );\n\t}\n\n\t// update status change flag, if filters have changed\n\tmaybeRegisterStatusChange() {\n\t\tconst currentFilters = this.getFiltersProperties(),\n\t\t\tcurrentStr = JSON.stringify( currentFilters ),\n\t\t\toriginalStr = JSON.stringify( this.originalFilters );\n\n\t\tthis.dirty = currentStr !== originalStr;\n\t}\n\n\t// apply filters when possible\n\tmaybeFilter( $initiator ) {\n\t\t// register status change\n\t\tthis.maybeRegisterStatusChange();\n\n\t\t// filter, or show filter button.\n\t\tif ( yith_wcan_shortcodes.instant_filters && ! this.isMobile ) {\n\t\t\tthis.filter();\n\t\t} else if (\n\t\t\t! yith_wcan_shortcodes.instant_filters &&\n\t\t\t! this.isMobile\n\t\t) {\n\t\t\tthis.dirty\n\t\t\t\t? this.$filterButtons?.show()\n\t\t\t\t: this.$filterButtons?.hide();\n\t\t} else if ( this.isMobile && this.dirty ) {\n\t\t\tthis.$preset.addClass( 'with-filter-button' );\n\t\t\tthis.modalElements.applyFiltersButton?.show();\n\t\t}\n\t}\n\n\t// main filtering method\n\tfilter() {\n\t\tconst filter = window?.product_filter;\n\n\t\tfilter\n\t\t\t?.doFilter( this.getFiltersProperties(), this.target, this.preset )\n\t\t\t?.done( () => {\n\t\t\t\tlet newPreset = $( this.preset );\n\n\t\t\t\tif ( newPreset.length && yith_wcan_shortcodes.scroll_top ) {\n\t\t\t\t\t// by default, scroll till top of first preset in the page.\n\t\t\t\t\tlet targetOffset = newPreset.offset().top;\n\n\t\t\t\t\tif ( !! yith_wcan_shortcodes.scroll_target ) {\n\t\t\t\t\t\t// when we have a specific target, use that for the offset.\n\t\t\t\t\t\tconst $scrollTarget = $(\n\t\t\t\t\t\t\tyith_wcan_shortcodes.scroll_target\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\ttargetOffset = $scrollTarget.length\n\t\t\t\t\t\t\t? $scrollTarget.offset().top\n\t\t\t\t\t\t\t: targetOffset;\n\t\t\t\t\t} else if ( this.isMobile ) {\n\t\t\t\t\t\t// otherwise, if we're on mobile, scroll to the top of the page\n\t\t\t\t\t\t// (preset could be in an unexpected location).\n\t\t\t\t\t\ttargetOffset = 100;\n\t\t\t\t\t}\n\n\t\t\t\t\t$( 'body, html' ).animate( {\n\t\t\t\t\t\tscrollTop: targetOffset - 100,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// register new filters, clear status flag\n\t\t\t\tthis.originalFilters = this.getFiltersProperties();\n\t\t\t\tthis.dirty = false;\n\t\t\t} );\n\n\t\tif ( this.isMobile ) {\n\t\t\tthis.$preset.removeClass( 'with-filter-button' );\n\t\t\tthis.modalElements.applyFiltersButton?.hide();\n\t\t\tthis.closeModal();\n\t\t}\n\t}\n\n\t// get all filter nodes\n\tgetFilters() {\n\t\tif ( false === this.$filters ) {\n\t\t\tthis.$filters = this.$preset.find( '.yith-wcan-filter' );\n\t\t}\n\n\t\treturn this.$filters;\n\t}\n\n\t// retrieves all filters that we want to apply\n\tgetActiveFilters() {\n\t\tif ( false === this.activeFilters ) {\n\t\t\tthis.activeFilters = this.getFiltersProperties();\n\t\t}\n\n\t\treturn this.activeFilters;\n\t}\n\n\t// check whether there is any filter active\n\tisAnyFilterActive() {\n\t\treturn !! Object.keys( this.getActiveFilters() ).length;\n\t}\n\n\t// checks whether current filter is active\n\tisFilterActive( $filter ) {\n\t\tlet filterType = $filter.data( 'filter-type' ),\n\t\t\tactive,\n\t\t\tfilteredActive;\n\n\t\tswitch ( filterType ) {\n\t\t\tcase 'tax':\n\t\t\tcase 'review':\n\t\t\tcase 'price_range':\n\t\t\t\tconst $dropdown = $filter.find( '.filter-dropdown' );\n\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tconst val = $dropdown.val();\n\n\t\t\t\t\tactive = 'object' === typeof val ? !! val?.length : !! val;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t// if we use type other than dropdown, fallthrough\n\t\t\tcase 'stock_sale':\n\t\t\t\tactive = $filter\n\t\t\t\t\t.find( '.filter-item' )\n\t\t\t\t\t.filter( '.active' ).length;\n\t\t\t\tbreak;\n\t\t\tcase 'price_slider':\n\t\t\t\tconst step = parseFloat(\n\t\t\t\t\t\t$filter.find( '.price-slider' ).data( 'step' )\n\t\t\t\t\t),\n\t\t\t\t\tmin = parseFloat(\n\t\t\t\t\t\t$filter.find( '.price-slider' ).data( 'min' )\n\t\t\t\t\t),\n\t\t\t\t\tmax = parseFloat(\n\t\t\t\t\t\t$filter.find( '.price-slider' ).data( 'max' )\n\t\t\t\t\t),\n\t\t\t\t\tcurrentMin = parseFloat(\n\t\t\t\t\t\t$filter.find( '.price-slider-min' ).val()\n\t\t\t\t\t),\n\t\t\t\t\tcurrentMax = parseFloat(\n\t\t\t\t\t\t$filter.find( '.price-slider-max' ).val()\n\t\t\t\t\t);\n\n\t\t\t\tactive =\n\t\t\t\t\tMath.abs( currentMin - min ) >= step ||\n\t\t\t\t\tMath.abs( currentMax - max ) >= step;\n\t\t\t\tbreak;\n\t\t\tcase 'orderby':\n\t\t\t\tactive =\n\t\t\t\t\t'menu_order' !== $filter.find( '.filter-order-by' ).val();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tactive = false;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tfilteredActive = $filter.triggerHandler( 'yith_wcan_is_filter_active', [\n\t\t\tactive,\n\t\t\tthis,\n\t\t] );\n\t\tactive =\n\t\t\ttypeof filteredActive !== 'undefined' ? filteredActive : active;\n\n\t\treturn active;\n\t}\n\n\t// count the number of active items per filter\n\tcountActiveItems( $filter ) {\n\t\tlet filterType = $filter.data( 'filter-type' ),\n\t\t\tcount;\n\n\t\tswitch ( filterType ) {\n\t\t\tcase 'tax':\n\t\t\tcase 'review':\n\t\t\tcase 'price_range':\n\t\t\t\tconst $dropdown = $filter.find( '.filter-dropdown' );\n\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tconst val = $dropdown.val();\n\n\t\t\t\t\tcount = 'object' === typeof val ? val?.length : +!! val;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t// if we use type other than dropdown, fallthrough\n\t\t\tcase 'stock_sale':\n\t\t\t\tcount = $filter\n\t\t\t\t\t.find( '.filter-items' )\n\t\t\t\t\t.find( '.active' ).length;\n\t\t\t\tbreak;\n\t\t\tcase 'orderby':\n\t\t\t\tif ( this.isFilterActive( $filter ) ) {\n\t\t\t\t\tcount = 1;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'price_slider':\n\t\t\tdefault:\n\t\t\t\tcount = 0;\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn count;\n\t}\n\n\t// retrieves filter properties for the filter\n\tgetFilterProperties( $filter ) {\n\t\tlet filterType = $filter.data( 'filter-type' ),\n\t\t\tmultiple = 'yes' === $filter.data( 'multiple' ),\n\t\t\t$dropdown = $filter.find( '.filter-dropdown' ),\n\t\t\tproperties = {},\n\t\t\tfilteredProperties,\n\t\t\t$active;\n\n\t\tswitch ( filterType ) {\n\t\t\tcase 'tax':\n\t\t\t\tlet activeTerms = [],\n\t\t\t\t\ttaxonomy = $filter.data( 'taxonomy' ),\n\t\t\t\t\tisAttr = 0 === taxonomy.indexOf( 'filter' ),\n\t\t\t\t\trelation = $filter.data( 'relation' );\n\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tif ( multiple ) {\n\t\t\t\t\t\tactiveTerms = $dropdown.val();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tactiveTerms.push( $dropdown.val() );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$active = $filter\n\t\t\t\t\t\t.find( '.filter-item' )\n\t\t\t\t\t\t.filter( '.active' )\n\t\t\t\t\t\t.children( 'a, label' );\n\n\t\t\t\t\tactiveTerms = $active.get().reduce( function ( a, v ) {\n\t\t\t\t\t\tlet val;\n\n\t\t\t\t\t\tv = $( v );\n\t\t\t\t\t\tval = v.is( 'label' )\n\t\t\t\t\t\t\t? v.find( ':input' ).val()\n\t\t\t\t\t\t\t: v.data( 'term-slug' );\n\n\t\t\t\t\t\tif ( ! val ) {\n\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ta.push( val );\n\n\t\t\t\t\t\treturn a;\n\t\t\t\t\t}, activeTerms );\n\t\t\t\t}\n\n\t\t\t\tif ( ! multiple ) {\n\t\t\t\t\tproperties[ taxonomy ] = activeTerms.pop();\n\t\t\t\t} else {\n\t\t\t\t\tconst glue = ! isAttr && 'and' === relation ? '+' : ',';\n\t\t\t\t\tproperties[ taxonomy ] = activeTerms.join( glue );\n\t\t\t\t}\n\n\t\t\t\tif ( isAttr ) {\n\t\t\t\t\tproperties[ taxonomy.replace( 'filter_', 'query_type_' ) ] =\n\t\t\t\t\t\trelation;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'review':\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tproperties.rating_filter = $dropdown.val();\n\t\t\t\t} else {\n\t\t\t\t\t$active = $filter\n\t\t\t\t\t\t.find( '.filter-item' )\n\t\t\t\t\t\t.filter( '.active' )\n\t\t\t\t\t\t.children( 'a, label' );\n\n\t\t\t\t\tif ( ! multiple ) {\n\t\t\t\t\t\t$active = $active.first();\n\t\t\t\t\t\tproperties.rating_filter = $active.is( 'label' )\n\t\t\t\t\t\t\t? $active.find( ':input' ).val()\n\t\t\t\t\t\t\t: $active.data( 'rating' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties.rating_filter = $active\n\t\t\t\t\t\t\t.get()\n\t\t\t\t\t\t\t.reduce( function ( a, v ) {\n\t\t\t\t\t\t\t\tlet val;\n\n\t\t\t\t\t\t\t\tv = $( v );\n\t\t\t\t\t\t\t\tval = v.is( 'label' )\n\t\t\t\t\t\t\t\t\t? v.find( ':input' ).val()\n\t\t\t\t\t\t\t\t\t: v.data( 'rating' );\n\n\t\t\t\t\t\t\t\tif ( ! val ) {\n\t\t\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\ta.push( val );\n\n\t\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t\t}, [] )\n\t\t\t\t\t\t\t.join( ',' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'price_range':\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tif ( multiple ) {\n\t\t\t\t\t\tproperties.price_ranges = $dropdown.val().join( ',' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties.min_price = $dropdown\n\t\t\t\t\t\t\t.val()\n\t\t\t\t\t\t\t.split( '-' )[ 0 ];\n\t\t\t\t\t\tproperties.max_price = $dropdown\n\t\t\t\t\t\t\t.val()\n\t\t\t\t\t\t\t.split( '-' )[ 1 ];\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$active = $filter\n\t\t\t\t\t\t.find( '.filter-item' )\n\t\t\t\t\t\t.filter( '.active' )\n\t\t\t\t\t\t.children( 'a, label' );\n\n\t\t\t\t\tif ( multiple ) {\n\t\t\t\t\t\tproperties.price_ranges = $active\n\t\t\t\t\t\t\t.get()\n\t\t\t\t\t\t\t.reduce( ( a, v ) => {\n\t\t\t\t\t\t\t\tlet min = $( v ).data( 'range-min' ),\n\t\t\t\t\t\t\t\t\tmax = $( v ).data( 'range-max' );\n\n\t\t\t\t\t\t\t\ta += ( max ? `${ min }-${ max }` : min ) + ',';\n\n\t\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t\t}, '' )\n\t\t\t\t\t\t\t.replace( /^(.*),$/, '$1' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties.min_price = parseFloat(\n\t\t\t\t\t\t\t$active.first().data( 'range-min' )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tproperties.max_price = parseFloat(\n\t\t\t\t\t\t\t$active.first().data( 'range-max' )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'price_slider':\n\t\t\t\tproperties.min_price = parseFloat(\n\t\t\t\t\t$filter.find( '.price-slider-min' ).val()\n\t\t\t\t);\n\t\t\t\tproperties.max_price = parseFloat(\n\t\t\t\t\t$filter.find( '.price-slider-max' ).val()\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'stock_sale':\n\t\t\t\tif ( $filter.find( '.filter-on-sale' ).is( '.active' ) ) {\n\t\t\t\t\tproperties.onsale_filter = 1;\n\t\t\t\t}\n\t\t\t\tif ( $filter.find( '.filter-in-stock' ).is( '.active' ) ) {\n\t\t\t\t\tproperties.instock_filter = 1;\n\t\t\t\t}\n\t\t\t\tif ( $filter.find( '.filter-featured' ).is( '.active' ) ) {\n\t\t\t\t\tproperties.featured_filter = 1;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'orderby':\n\t\t\t\tproperties.orderby = $filter.find( '.filter-order-by' ).val();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tfilteredProperties = $filter.triggerHandler(\n\t\t\t'yith_wcan_filter_properties',\n\t\t\t[ properties, self ]\n\t\t);\n\t\tproperties =\n\t\t\ttypeof filteredProperties !== 'undefined'\n\t\t\t\t? filteredProperties\n\t\t\t\t: properties;\n\n\t\treturn properties;\n\t}\n\n\t// retrieves properties for all filters of the preset\n\tgetFiltersProperties() {\n\t\tlet properties = {};\n\t\tconst self = this;\n\n\t\tthis.getFilters().each( function () {\n\t\t\tconst $filter = $( this );\n\n\t\t\tif ( self.isFilterActive( $filter ) ) {\n\t\t\t\tconst filterProperties = self.getFilterProperties( $filter );\n\n\t\t\t\tproperties = self.mergeProperties(\n\t\t\t\t\tproperties,\n\t\t\t\t\tfilterProperties,\n\t\t\t\t\t$filter\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn properties;\n\t}\n\n\t// retrieve filters matching any of the properties passed\n\tgetFiltersByProperties( properties ) {\n\t\tconst self = this;\n\n\t\treturn this.getFilters().filter( function () {\n\t\t\tconst $filter = $( this );\n\n\t\t\tif ( self.isFilterActive( $filter ) ) {\n\t\t\t\tlet filterProperties = self.getFilterProperties( $filter ),\n\t\t\t\t\thasProp = false;\n\n\t\t\t\tfor ( const prop in properties ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t[ 'min_price', 'max_price', 'price_ranges' ].includes(\n\t\t\t\t\t\t\tprop\n\t\t\t\t\t\t) &&\n\t\t\t\t\t\t( filterProperties.min_price ||\n\t\t\t\t\t\t\tfilterProperties.price_ranges )\n\t\t\t\t\t) {\n\t\t\t\t\t\thasProp = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else if ( filterProperties[ prop ] ) {\n\t\t\t\t\t\thasProp = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn hasProp;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} );\n\t}\n\n\t// show clear selection anchor\n\tmaybeToggleClearFilter( $filter ) {\n\t\tif ( ! this.isFilterActive( $filter ) ) {\n\t\t\tthis.maybeHideClearFilter( $filter );\n\t\t} else {\n\t\t\tthis.maybeShowClearFilter( $filter );\n\t\t}\n\t}\n\n\t// show clear all selections anchor\n\tmaybeToggleClearAllFilters() {\n\t\tif ( ! this.isAnyFilterActive() ) {\n\t\t\tthis.maybeHideClearAllFilters();\n\t\t} else {\n\t\t\tthis.maybeShowClearAllFilters();\n\t\t}\n\t}\n\n\t// show clear selection anchor\n\tmaybeShowClearFilter( $filter ) {\n\t\tif (\n\t\t\t! this.isFilterActive( $filter ) ||\n\t\t\t! yith_wcan_shortcodes.show_clear_filter\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// remove clear selection link if already added.\n\t\t$filter.find( '.clear-selection' ).remove();\n\n\t\t// add new clear selection link.\n\t\t$( '<a/>', {\n\t\t\tclass: 'clear-selection',\n\t\t\ttext: yith_wcan_shortcodes.labels.clear_selection,\n\t\t\trole: 'button',\n\t\t} )\n\t\t\t.prependTo( $filter.find( '.filter-content' ) )\n\t\t\t.on( 'click', ( ev ) => {\n\t\t\t\tev.preventDefault();\n\n\t\t\t\tthis.deactivateFilter(\n\t\t\t\t\t$filter,\n\t\t\t\t\tfalse,\n\t\t\t\t\tyith_wcan_shortcodes.instant_filters\n\t\t\t\t);\n\t\t\t\tthis.maybeHideClearFilter( $filter );\n\n\t\t\t\tif ( yith_wcan_shortcodes.instant_filters ) {\n\t\t\t\t\tthis.closeModal();\n\t\t\t\t}\n\t\t\t} );\n\t}\n\n\t// show clearAll anchor, when on mobile layout\n\tmaybeShowClearAllFilters() {\n\t\tif ( ! this.isAnyFilterActive() || ! this.isMobile ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// remove clear selection link if already added.\n\t\tthis.$preset.find( '.clear-selection' ).remove();\n\n\t\t// add new clear selection link.\n\t\t$( '<a/>', {\n\t\t\tclass: 'clear-selection',\n\t\t\ttext: yith_wcan_shortcodes.labels.clear_all_selections,\n\t\t\trole: 'button',\n\t\t} )\n\t\t\t.prependTo( this.$preset.find( '.filters-container' ) )\n\t\t\t.on( 'click', ( ev ) => {\n\t\t\t\tev.preventDefault();\n\n\t\t\t\tthis.deactivateAllFilters(\n\t\t\t\t\tyith_wcan_shortcodes.instant_filters\n\t\t\t\t);\n\t\t\t\tthis.maybeHideClearAllFilters();\n\n\t\t\t\tif ( yith_wcan_shortcodes.instant_filters ) {\n\t\t\t\t\tthis.closeModal();\n\t\t\t\t}\n\t\t\t} );\n\t}\n\n\t// hide clear selection anchor\n\tmaybeHideClearFilter( $filter ) {\n\t\tif (\n\t\t\tthis.isFilterActive( $filter ) ||\n\t\t\t! yith_wcan_shortcodes.show_clear_filter\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// remove clear selection link.\n\t\t$filter.find( '.clear-selection' ).remove();\n\t}\n\n\t// show clearAll anchor, when on mobile layout\n\tmaybeHideClearAllFilters() {\n\t\tif ( this.isAnyFilterActive() ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// remove clear selection link.\n\t\tthis.$preset\n\t\t\t.find( '.filters-container' )\n\t\t\t.children( '.clear-selection' )\n\t\t\t.remove();\n\t}\n\n\t// deactivate filter\n\tdeactivateFilter( $filter, properties, doFilter ) {\n\t\tconst filterType = $filter.data( 'filter-type' ),\n\t\t\t$items = $filter.find( '.filter-item' ),\n\t\t\t$activeItems = $items.filter( '.active' ),\n\t\t\t$dropdown = $filter.find( '.filter-dropdown' );\n\n\t\tswitch ( filterType ) {\n\t\t\tcase 'tax':\n\t\t\t\tconst taxonomy = $filter.data( 'taxonomy' );\n\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tif ( ! properties ) {\n\t\t\t\t\t\t$dropdown.find( 'option' ).prop( 'selected', false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$dropdown.find( 'option' ).each( function () {\n\t\t\t\t\t\t\tconst $option = $( this );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t$option.val().toString() ===\n\t\t\t\t\t\t\t\tproperties[ taxonomy ].toString()\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t$option.prop( 'selected', false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\t$dropdown.change();\n\t\t\t\t} else if ( ! properties ) {\n\t\t\t\t\t$activeItems.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t$activeItems.removeClass( 'active' );\n\t\t\t\t} else {\n\t\t\t\t\t$activeItems.each( function () {\n\t\t\t\t\t\tlet $item = $( this ),\n\t\t\t\t\t\t\t$label = $item.children( 'label' ),\n\t\t\t\t\t\t\t$anchor = $item.children( 'a' ),\n\t\t\t\t\t\t\tvalue;\n\n\t\t\t\t\t\tvalue = $label.length\n\t\t\t\t\t\t\t? $label.find( ':input' ).val()\n\t\t\t\t\t\t\t: $anchor.data( 'term-slug' );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tvalue.toString() ===\n\t\t\t\t\t\t\tproperties[ taxonomy ].toString()\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t$item.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t\t\t$item.removeClass( 'active' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'review':\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tif ( ! properties ) {\n\t\t\t\t\t\t$dropdown.find( 'option' ).prop( 'selected', false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$dropdown.find( 'option' ).each( function () {\n\t\t\t\t\t\t\tconst $option = $( this );\n\n\t\t\t\t\t\t\tif ( $option.val() === properties.rating_filter ) {\n\t\t\t\t\t\t\t\t$option.prop( 'selected', false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\t$dropdown.change();\n\t\t\t\t} else if ( ! properties ) {\n\t\t\t\t\t$activeItems.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t$activeItems.removeClass( 'active' );\n\t\t\t\t} else {\n\t\t\t\t\t$activeItems.each( function () {\n\t\t\t\t\t\tlet $item = $( this ),\n\t\t\t\t\t\t\t$label = $item.children( 'label' ),\n\t\t\t\t\t\t\t$anchor = $item.children( 'a' ),\n\t\t\t\t\t\t\tvalue;\n\n\t\t\t\t\t\tvalue = $label.length\n\t\t\t\t\t\t\t? $label.find( ':input' ).val()\n\t\t\t\t\t\t\t: $anchor.data( 'rating' );\n\n\t\t\t\t\t\tif ( value === properties.rating_filter ) {\n\t\t\t\t\t\t\t$item.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t\t\t$item.removeClass( 'active' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'price_range':\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tif ( ! properties ) {\n\t\t\t\t\t\t$dropdown.find( 'option' ).prop( 'selected', false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$dropdown.find( 'option' ).each( function () {\n\t\t\t\t\t\t\tconst $option = $( this ),\n\t\t\t\t\t\t\t\tformattedRange =\n\t\t\t\t\t\t\t\t\tproperties.min_price +\n\t\t\t\t\t\t\t\t\t( properties.max_price\n\t\t\t\t\t\t\t\t\t\t? `-${ properties.max_price }`\n\t\t\t\t\t\t\t\t\t\t: '' );\n\n\t\t\t\t\t\t\tif ( $option.val() === formattedRange ) {\n\t\t\t\t\t\t\t\t$option.prop( 'selected', false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\t$dropdown.change();\n\t\t\t\t} else if ( ! properties ) {\n\t\t\t\t\t$activeItems.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t$activeItems.removeClass( 'active' );\n\t\t\t\t} else {\n\t\t\t\t\t$activeItems.each( function () {\n\t\t\t\t\t\tlet $item = $( this ),\n\t\t\t\t\t\t\t$label = $item.children( 'label' ),\n\t\t\t\t\t\t\t$anchor = $item.children( 'a' ),\n\t\t\t\t\t\t\tformattedRange,\n\t\t\t\t\t\t\tvalue;\n\n\t\t\t\t\t\tvalue = $label.length\n\t\t\t\t\t\t\t? $label.find( ':input' ).val()\n\t\t\t\t\t\t\t: $anchor.data( 'min_price' ) +\n\t\t\t\t\t\t\t ( $anchor.data( 'max_price' )\n\t\t\t\t\t\t\t\t\t? '-' + $anchor.data( 'max_price' )\n\t\t\t\t\t\t\t\t\t: '' );\n\n\t\t\t\t\t\tif ( properties.min_price ) {\n\t\t\t\t\t\t\tformattedRange =\n\t\t\t\t\t\t\t\tproperties.min_price +\n\t\t\t\t\t\t\t\t( properties.max_price\n\t\t\t\t\t\t\t\t\t? '-' + properties.max_price\n\t\t\t\t\t\t\t\t\t: '' );\n\t\t\t\t\t\t} else if ( properties.price_ranges ) {\n\t\t\t\t\t\t\tformattedRange = properties.price_ranges;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( value === formattedRange ) {\n\t\t\t\t\t\t\t$item.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t\t\t$item.removeClass( 'active' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'price_slider':\n\t\t\t\tconst $priceSlider = $filter.find( '.price-slider' );\n\n\t\t\t\t$filter\n\t\t\t\t\t.find( '.price-slider-min' )\n\t\t\t\t\t.val( $priceSlider.data( 'min' ) );\n\t\t\t\t$filter\n\t\t\t\t\t.find( '.price-slider-max' )\n\t\t\t\t\t.val( $priceSlider.data( 'max' ) )\n\t\t\t\t\t.change();\n\t\t\t\tbreak;\n\t\t\tcase 'orderby':\n\t\t\t\t$filter.find( 'select' ).val( 'menu_order' );\n\t\t\t\tbreak;\n\t\t\tcase 'stock_sale':\n\t\t\t\tif ( ! properties ) {\n\t\t\t\t\t$filter\n\t\t\t\t\t\t.find( '.filter-in-stock' )\n\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t.change();\n\t\t\t\t\t$filter\n\t\t\t\t\t\t.find( '.filter-on-sale' )\n\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t.change();\n\t\t\t\t\t$filter\n\t\t\t\t\t\t.find( '.filter-featured' )\n\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t.change();\n\n\t\t\t\t\t$items.removeClass( 'active' );\n\t\t\t\t} else {\n\t\t\t\t\tif ( properties?.instock_filter ) {\n\t\t\t\t\t\t$filter\n\t\t\t\t\t\t\t.find( '.filter-in-stock' )\n\t\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t\t.change()\n\t\t\t\t\t\t\t.closest( '.filter-item' )\n\t\t\t\t\t\t\t.removeClass( 'active' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( properties?.onsale_filter ) {\n\t\t\t\t\t\t$filter\n\t\t\t\t\t\t\t.find( '.filter-on-sale' )\n\t\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t\t.change()\n\t\t\t\t\t\t\t.closest( '.filter-item' )\n\t\t\t\t\t\t\t.removeClass( 'active' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( properties?.featured_filter ) {\n\t\t\t\t\t\t$filter\n\t\t\t\t\t\t\t.find( '.filter-featured' )\n\t\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t\t.change()\n\t\t\t\t\t\t\t.closest( '.filter-item' )\n\t\t\t\t\t\t\t.removeClass( 'active' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t$items.removeClass( 'active' );\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.activeFilters = false;\n\n\t\tif ( doFilter ) {\n\t\t\tthis.filter();\n\t\t}\n\t}\n\n\t// deactivate all filters\n\tdeactivateAllFilters( doFilter ) {\n\t\tconst self = this,\n\t\t\t$filters = this.getFilters();\n\n\t\t$filters.each( function () {\n\t\t\tconst $filter = $( this );\n\n\t\t\tself.deactivateFilter( $filter );\n\t\t} );\n\n\t\tthis.activeFilters = false;\n\n\t\tif ( doFilter ) {\n\t\t\tthis.filter();\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t// deactivate filters that matches a specific set of properties\n\tdeactivateFilterByProperties( properties, doFilter ) {\n\t\tconst self = this,\n\t\t\t$filters = this.getFiltersByProperties( properties );\n\n\t\tif ( ! $filters.length ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t$filters.each( function () {\n\t\t\tconst $filter = $( this );\n\n\t\t\tself.deactivateFilter( $filter, properties, doFilter );\n\t\t} );\n\n\t\treturn true;\n\t}\n\n\t// open filters as a modal, when in mobile layout\n\topenModal() {\n\t\tif ( ! this.isMobile ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( yith_wcan_shortcodes.toggles_open_on_modal ) {\n\t\t\tthis._openAllCollapsables();\n\t\t} else {\n\t\t\tthis._closeAllCollapsables();\n\t\t}\n\n\t\t$( 'body' )\n\t\t\t.css( 'overflow', 'hidden' )\n\t\t\t.addClass( 'yith-wcan-preset-modal-open' );\n\n\t\tthis.$preset.show();\n\n\t\tsetTimeout( () => {\n\t\t\tthis.$preset.addClass( 'open' );\n\t\t}, 100 );\n\t}\n\n\t// close filters modal, when in mobile layout\n\tcloseModal() {\n\t\tif ( ! this.isMobile ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.$preset.removeClass( 'open' );\n\n\t\tsetTimeout( () => {\n\t\t\tthis.$preset.hide();\n\t\t\t$( 'body' )\n\t\t\t\t.css( 'overflow', 'auto' )\n\t\t\t\t.removeClass( 'yith-wcan-preset-modal-open' );\n\t\t}, 300 );\n\t}\n\n\t// utility that formats the price according to store configuration.\n\tformatPrice( price ) {\n\t\tif ( 'undefined' !== typeof accounting ) {\n\t\t\tprice = accounting.formatMoney( price, {\n\t\t\t\tsymbol: yith_wcan_shortcodes.currency_format?.symbol,\n\t\t\t\tdecimal: yith_wcan_shortcodes.currency_format?.decimal,\n\t\t\t\tthousand: yith_wcan_shortcodes.currency_format?.thousand,\n\t\t\t\tprecision: 0,\n\t\t\t\tformat: yith_wcan_shortcodes.currency_format?.format,\n\t\t\t} );\n\t\t}\n\n\t\treturn price;\n\t}\n\n\t// utility that merges together sets of filter properties\n\tmergeProperties( set1, set2, $filter ) {\n\t\t// search for common properties\n\t\tfor ( const prop in set2 ) {\n\t\t\tif ( ! set2.hasOwnProperty( prop ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( !! set1[ prop ] ) {\n\t\t\t\tswitch ( prop ) {\n\t\t\t\t\tcase 'rating_filter':\n\t\t\t\t\tcase 'min_price':\n\t\t\t\t\tcase 'max_price':\n\t\t\t\t\tcase 'onsale_filter':\n\t\t\t\t\tcase 'instock_filter':\n\t\t\t\t\tcase 'orderby':\n\t\t\t\t\t\t// just override default value\n\t\t\t\t\t\tset1[ prop ] = set2[ prop ];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif ( 0 === prop.indexOf( 'query_type_' ) ) {\n\t\t\t\t\t\t\t// query_type param\n\t\t\t\t\t\t\tset1[ prop ] = set2[ prop ];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// we're dealing with taxonomy\n\t\t\t\t\t\t\tconst isAttr = 0 === prop.indexOf( 'filter_' ),\n\t\t\t\t\t\t\t\tglue = isAttr ? ',' : '+';\n\n\t\t\t\t\t\t\tlet newValue =\n\t\t\t\t\t\t\t\tset1[ prop ].replace( ',', glue ) +\n\t\t\t\t\t\t\t\tglue +\n\t\t\t\t\t\t\t\tset2[ prop ].replace( ',', glue );\n\n\t\t\t\t\t\t\tnewValue = newValue\n\t\t\t\t\t\t\t\t.split( glue )\n\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t( value, index, arr ) =>\n\t\t\t\t\t\t\t\t\t\tarr.indexOf( value ) === index\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( glue );\n\n\t\t\t\t\t\t\tset1[ prop ] = newValue;\n\n\t\t\t\t\t\t\tif ( isAttr ) {\n\t\t\t\t\t\t\t\tconst queryTypeParam = prop.replace(\n\t\t\t\t\t\t\t\t\t'filter_',\n\t\t\t\t\t\t\t\t\t'query_type_'\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tset1[ queryTypeParam ] = 'and';\n\t\t\t\t\t\t\t\tset2[ queryTypeParam ] = 'and';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tdelete set2[ prop ];\n\t\t\t}\n\t\t}\n\n\t\t$.extend( set1, set2 );\n\n\t\treturn set1;\n\t}\n}\n","'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nimport YITH_WCAN_Filter from './modules/yith-wcan-filter';\nimport YITH_WCAN_Reset_Button from './modules/yith-wcan-reset-button';\nimport YITH_WCAN_Preset from './modules/yith-wcan-preset';\n\njQuery( function ( $ ) {\n\t$( document )\n\t\t.on(\n\t\t\t'yith_wcan_init_shortcodes yith_plugin_fw_gutenberg_success_do_shortcode',\n\t\t\tfunction () {\n\t\t\t\t$( '.yith-wcan-filters' )\n\t\t\t\t\t.not( '.enhanced' )\n\t\t\t\t\t.each( function () {\n\t\t\t\t\t\tnew YITH_WCAN_Preset( $( this ) );\n\t\t\t\t\t} );\n\n\t\t\t\t$( '.yith-wcan-reset-filters' )\n\t\t\t\t\t.not( '.enhanced' )\n\t\t\t\t\t.each( function () {\n\t\t\t\t\t\tnew YITH_WCAN_Reset_Button( $( this ) );\n\t\t\t\t\t} );\n\t\t\t}\n\t\t)\n\t\t.trigger( 'yith_wcan_init_shortcodes' );\n\n\tglobalThis.product_filter = new YITH_WCAN_Filter();\n} );\n"],"sourceRoot":""}
|
1 |
+
{"version":3,"sources":["webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/config.js","webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/modules/yith-wcan-filter.js","webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/modules/yith-wcan-reset-button.js","webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/modules/yith-wcan-dropdown.js","webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/modules/yith-wcan-preset.js","webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/index.js"],"names":["$","jQuery","$body","YITH_WCAN_Filter","location","search","initPopState","initialized","yith_wcan_shortcodes","reload_on_back","pushUrlToHistory","window","document","title","on","history","state","_yithWcan","reload","filters","target","preset","targetUrl","$target","customFilters","triggerHandler","block","buildUrl","ajax_filters","doingAjax","_doAjax","done","response","searchAlternativeUrl","_beforeFilter","refreshFragments","pageTitle","originalSearch","unblock","_afterFilter","trigger","closest","submit","filtered","Object","keys","length","queryParam","query_param","params","url","base_url","origin","pathname","self","haveFilters","session_param","replace","RegExp","searchParams","split","reduce","a","v","items","isFilterParam","i","_cleanParam","defaultUrl","matches","indexOf","match","current","change_browser_url","navigator","userAgent","method","responseDom","createElement","$response","innerHTML","$preset","$destination","find","replaceWith","first","content","param","process_sanitize","skip_sanitize","encodeURIComponent","xhr","abort","headers","$el","background","loader","message","overlayCSS","opacity","supportedParams","customParams","concat","supported_taxonomies","map","YITH_WCAN_Reset_Button","el","$reset","ev","preventDefault","each","data","deactivateAllFilters","closeModal","addClass","YITH_WCAN_Dropdown","opts","$originalSelect","is","defaultPerPage","defaultOrder","defaultAll","defaults","showSearch","paginate","perPage","order","getElements","labels","emptyLabel","empty_option","searchPlaceholder","search_placeholder","noItemsFound","no_items","showMore","show_more","options","_hideSelect","_initTemplate","_initActions","hide","$mainSpan","$labelSpan","html","getLabel","$dropdownSpan","$matchingItemsList","append","_initSearchTemplate","_initShowMoreTemplate","after","$_main","$_label","$_dropdown","$_items","$dropdwonSpan","$container","$search","name","type","placeholder","prependTo","$_search","$showMore","text","loadNextPage","bind","$_showMore","stopPropagation","toggleDropdown","_populateItems","$li","value","isActive","hasClass","isValueSelected","toggleClass","_changeItemStatus","siblings","removeClass","input","parent","prop","change","selfOriginated","_selectItem","_deselectItem","updateLabel","globalThis","yith_wcan_dropdown_init","_closeAllDropdowns","_afterDropdownOpen","dropdowns","filter","select","closeDropdown","_closeOtherDropdowns","val","limit","matchingElements","$options","getOptions","promise","Promise","resolve","t","label","regex","show","test","push","then","retrievedElements","_formatItems","indexes","hasMore","sort","b","mod","slice","active","option","getOptionByValue","$item","attr","$anchor","template","count","href","rel","$checkbox","$label","prepend","page","parseInt","getMatchingElements","resultSet","matchingItems","_emptyItems","_hideLoadMore","currentPage","unshift","_generateItem","_showLoadMore","status","$option","hasSelectedValues","getSelectedLabels","join","getSelectedOptions","found","getSelectedValues","toString","values","YITH_WCAN_Preset","_regiterStatus","_initFilterButton","_initResponsive","_initFilters","getFilters","$filter","_initFilter","maybeShowClearAllFilters","$filterButtons","modal_on_mobile","media","matchMedia","mobile_media_query","isMobile","_afterLayoutChange","resize","handleChange","$currentFilter","multiple","$items","not","children","activeFilters","maybeFilter","maybeToggleClearAllFilters","maybeToggleClearFilter","delegateTarget","call","$input","_initTooltip","_initPriceSlider","_initDropdown","_initCollapsable","maybeShowClearFilter","_initCustomInput","$dropdown","$current","position","th","tooltip","wrapperWidth","outerWidth","left","width","container","css","toFixed","fadeIn","fadeOut","remove","selectWoo","_initDropdownObject","terms_per_page","$minInput","$maxInput","min","parseFloat","max","currentMin","currentMax","step","handleSliderChange","sliderTimeout","clearTimeout","setTimeout","ionRangeSlider","skin","from","to","min_interval","values_separator","prettify","formatPrice","onChange","onFinish","add","off","_initTitleCollapsable","_initHierarchyCollapsable","$title","_initToggle","parents","show_current_children","$t","$toggle","appendTo","slideToggle","containerClass","wrap","originalFilters","getFiltersProperties","_addCloseModalButton","_addApplyFiltersModalButton","_switchToCollapsables","removeAttr","_removeCloseModalButton","_removeApplyFiltersModalButton","_switchBackCollapsables","$closeButton","close","modalElements","closeButton","$filterButton","show_results","applyFiltersButton","removeData","$filters","isFilterActive","end","currentFilters","currentStr","JSON","stringify","originalStr","dirty","$initiator","maybeRegisterStatusChange","instant_filters","product_filter","doFilter","newPreset","scroll_top","targetOffset","offset","top","scroll_target","$scrollTarget","animate","scrollTop","getActiveFilters","filterType","filteredActive","Math","abs","properties","filteredProperties","$active","activeTerms","taxonomy","isAttr","relation","get","pop","glue","rating_filter","price_ranges","min_price","max_price","onsale_filter","instock_filter","featured_filter","orderby","filterProperties","getFilterProperties","mergeProperties","hasProp","includes","maybeHideClearFilter","isAnyFilterActive","maybeHideClearAllFilters","show_clear_filter","clear_selection","role","deactivateFilter","clear_all_selections","$activeItems","click","formattedRange","$priceSlider","getFiltersByProperties","toggles_open_on_modal","_openAllCollapsables","_closeAllCollapsables","price","accounting","formatMoney","symbol","currency_format","decimal","thousand","precision","format","set1","set2","hasOwnProperty","newValue","index","arr","queryTypeParam"],"mappings":"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","file":"yith-wcan-shortcodes.js","sourcesContent":["'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nconst $ = jQuery; // we can do this as WebPack will compact all together inside a closure.\nconst $body = $( 'body' );\n\nexport { $, $body };\n","'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nimport { $, $body } from '../config.js';\n\nexport default class YITH_WCAN_Filter {\n\t// currently executing xhr\n\txhr = null;\n\n\t// flag set during ajax call handling\n\tdoingAjax = false;\n\n\t// register original url search param\n\toriginalSearch = location.search;\n\n\t// flag set once init has executed\n\tinitialized = false;\n\n\t// flag set when page has at least one active filter.\n\tfiltered = false;\n\n\t// init object\n\tconstructor() {\n\t\tthis.initPopState();\n\t\tthis.initialized = true;\n\t}\n\n\t// init page reload when popstate event alter filters\n\tinitPopState() {\n\t\tif ( ! yith_wcan_shortcodes.reload_on_back ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.pushUrlToHistory( window.location, document.title, null, true );\n\n\t\t$( window ).on( 'popstate', function () {\n\t\t\tif ( ! window.history.state?._yithWcan ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twindow.location.reload( true );\n\t\t} );\n\t}\n\n\t// execute call to filter products in current view\n\tdoFilter( filters, target, preset ) {\n\t\tlet targetUrl,\n\t\t\t$target = target ? $( target ) : $( 'body' ),\n\t\t\tcustomFilters;\n\n\t\t// filter properties\n\t\tcustomFilters = $( document ).triggerHandler(\n\t\t\t'yith_wcan_filters_parameters',\n\t\t\t[ filters ]\n\t\t);\n\n\t\tif ( !! customFilters ) {\n\t\t\tfilters = customFilters;\n\t\t}\n\n\t\t// block elements before filtering\n\t\t$target && this.block( $target );\n\n\t\t// calculate target url\n\t\ttargetUrl = this.buildUrl( filters );\n\n\t\t// if no ajax, simply change page url\n\t\tif ( ! yith_wcan_shortcodes.ajax_filters ) {\n\t\t\tthis.pushUrlToHistory( targetUrl, document.title, filters );\n\n\t\t\twindow.location = targetUrl;\n\t\t\treturn;\n\t\t}\n\n\t\t// start doing ajax\n\t\tthis.doingAjax = true;\n\n\t\treturn this._doAjax( targetUrl ).done( ( response ) => {\n\t\t\ttargetUrl = this.searchAlternativeUrl( response, targetUrl );\n\n\t\t\tthis._beforeFilter( response, filters );\n\n\t\t\tthis.refreshFragments( target, preset, response );\n\t\t\tthis.pushUrlToHistory( targetUrl, response.pageTitle, filters );\n\t\t\tthis.originalSearch = location.search;\n\n\t\t\t$target && this.unblock( $target );\n\n\t\t\tthis._afterFilter( response, filters );\n\n\t\t\tthis.doingAjax = false;\n\t\t} );\n\t}\n\n\t// actions performed before filter\n\t_beforeFilter( response, filters ) {\n\t\t$( document ).trigger( 'yith-wcan-ajax-loading', [\n\t\t\tresponse,\n\t\t\tfilters,\n\t\t] );\n\t}\n\n\t// actions performed after filter\n\t_afterFilter( response, filters ) {\n\t\t$( '.woocommerce-ordering' ).on(\n\t\t\t'change',\n\t\t\t'select.orderby',\n\t\t\tfunction () {\n\t\t\t\t$( this ).closest( 'form' ).submit();\n\t\t\t}\n\t\t);\n\n\t\tthis.filtered = filters && !! Object.keys( filters ).length;\n\t\tthis.filtered\n\t\t\t? $body.addClass( 'filtered' )\n\t\t\t: $body.removeClass( 'filtered' );\n\n\t\t$( window ).trigger( 'scroll' );\n\n\t\t$( document )\n\t\t\t.trigger( 'yith-wcan-ajax-filtered', [ response, filters ] )\n\t\t\t.trigger( 'yith_wcwl_reload_fragments' );\n\t}\n\n\t// build url to show\n\tbuildUrl( filters ) {\n\t\tlet queryParam = yith_wcan_shortcodes.query_param,\n\t\t\tparams = {},\n\t\t\tlocation = window.location,\n\t\t\turl = !! yith_wcan_shortcodes.base_url\n\t\t\t\t? yith_wcan_shortcodes.base_url\n\t\t\t\t: location?.origin + location?.pathname,\n\t\t\tsearch = '',\n\t\t\tself = this;\n\n\t\tconst haveFilters =\n\t\t\ttypeof filters === 'object' && Object.keys( filters ).length;\n\n\t\t// remove filter session from current url, if any\n\t\tif ( !! yith_wcan_shortcodes.session_param ) {\n\t\t\turl = url.replace(\n\t\t\t\tnew RegExp(\n\t\t\t\t\t'/' + yith_wcan_shortcodes.session_param + '/[^/]*/'\n\t\t\t\t),\n\t\t\t\t''\n\t\t\t);\n\t\t}\n\n\t\tif ( haveFilters ) {\n\t\t\tparams[ queryParam ] = 1;\n\t\t}\n\n\t\tif ( !! this.originalSearch ) {\n\t\t\tconst searchParams = this.originalSearch\n\t\t\t\t.replace( '?', '' )\n\t\t\t\t.split( '&' )\n\t\t\t\t.reduce( ( a, v ) => {\n\t\t\t\t\tconst items = v.split( '=' );\n\n\t\t\t\t\tif ( items.length === 2 ) {\n\t\t\t\t\t\tif ( this.isFilterParam( items[ 0 ] ) ) {\n\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ta[ items[ 0 ] ] = items[ 1 ];\n\t\t\t\t\t}\n\n\t\t\t\t\treturn a;\n\t\t\t\t}, {} );\n\n\t\t\tparams = $.extend( params, searchParams );\n\t\t}\n\n\t\tif ( haveFilters ) {\n\t\t\tparams = $.extend( params, filters );\n\t\t}\n\n\t\tsearch = Object.keys( params )\n\t\t\t.reduce( function ( a, i ) {\n\t\t\t\tconst v = params[ i ];\n\n\t\t\t\tif ( ! v || ! i ) {\n\t\t\t\t\treturn a;\n\t\t\t\t}\n\n\t\t\t\ta += self._cleanParam( i ) + '=' + self._cleanParam( v ) + '&';\n\n\t\t\t\treturn a;\n\t\t\t}, '?' )\n\t\t\t.replace( /&$/g, '' )\n\t\t\t.replace( /%2B/g, '+' )\n\t\t\t.replace( /%2C/g, ',' );\n\n\t\tif ( search.length > 1 ) {\n\t\t\turl += search;\n\t\t}\n\n\t\treturn url;\n\t}\n\n\t// retrieves alternative sharing url in response body\n\tsearchAlternativeUrl( response, defaultUrl = '' ) {\n\t\tlet url = defaultUrl,\n\t\t\tmatches;\n\n\t\tif ( -1 === response.indexOf( 'yith_wcan:sharing_url' ) ) {\n\t\t\treturn url;\n\t\t}\n\n\t\tmatches = response.match(\n\t\t\t/<meta name=\"yith_wcan:sharing_url\" content=\"([^\"]*)\">/\n\t\t);\n\t\turl = matches && 1 in matches ? matches[ 1 ] : url;\n\n\t\treturn url;\n\t}\n\n\t// push url to browser history\n\tpushUrlToHistory( url, title, filters, current ) {\n\t\tif (\n\t\t\t! yith_wcan_shortcodes.change_browser_url ||\n\t\t\tnavigator.userAgent.match( /msie/i )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet method = 'pushState';\n\n\t\tif ( !! current ) {\n\t\t\tmethod = 'replaceState';\n\t\t}\n\n\t\twindow.history[ method ](\n\t\t\t{\n\t\t\t\t_yithWcan: true,\n\t\t\t\tpageTitle: title,\n\t\t\t\tfilters,\n\t\t\t},\n\t\t\t'',\n\t\t\turl\n\t\t);\n\t}\n\n\t// replaces elements in the page with refreshed ones\n\trefreshFragments( target, preset, response ) {\n\t\tconst responseDom = document.createElement( 'html' ),\n\t\t\t$response = $( responseDom );\n\n\t\tresponseDom.innerHTML = response;\n\n\t\tif ( target ) {\n\t\t\tlet $preset = $( preset ),\n\t\t\t\t$target = $( target ),\n\t\t\t\t$destination;\n\n\t\t\tif ( $preset.length ) {\n\t\t\t\t$destination = $response.find( preset );\n\n\t\t\t\tif ( $destination.length ) {\n\t\t\t\t\t$preset.replaceWith( $destination.first() );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( $target.length ) {\n\t\t\t\t$destination = $response.find( target );\n\n\t\t\t\tif ( $destination.length ) {\n\t\t\t\t\t$target.replaceWith( $destination.first() );\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst content = $( yith_wcan_shortcodes.content );\n\n\t\t\tif ( content.length ) {\n\t\t\t\tcontent.replaceWith(\n\t\t\t\t\t$response.find( yith_wcan_shortcodes.content )\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t$( 'body' ).replaceWith( $response.find( 'body' ) );\n\t\t\t}\n\t\t}\n\n\t\t$( document ).trigger( 'yith_wcan_init_shortcodes' );\n\t}\n\n\t// clean url parameters\n\t_cleanParam( param ) {\n\t\tif (\n\t\t\t! yith_wcan_shortcodes?.process_sanitize ||\n\t\t\tyith_wcan_shortcodes?.skip_sanitize\n\t\t) {\n\t\t\treturn param;\n\t\t}\n\n\t\treturn encodeURIComponent( param );\n\t}\n\n\t// executes Ajax calls\n\t_doAjax( url, params ) {\n\t\tif ( this.xhr ) {\n\t\t\tthis.xhr.abort();\n\t\t}\n\n\t\tparams = $.extend(\n\t\t\t{\n\t\t\t\turl,\n\t\t\t\theaders: {\n\t\t\t\t\t'X-YITH-WCAN': 1,\n\t\t\t\t},\n\t\t\t},\n\t\t\tparams\n\t\t);\n\n\t\tthis.xhr = $.ajax( params );\n\n\t\treturn this.xhr;\n\t}\n\n\t// block dom elements\n\tblock( $el ) {\n\t\tif ( typeof $.fn.block === 'undefined' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet background = '#fff center center no-repeat';\n\n\t\tif ( yith_wcan_shortcodes?.loader ) {\n\t\t\tbackground = `url('${ yith_wcan_shortcodes.loader }') ${ background }`;\n\t\t}\n\n\t\t$el.block( {\n\t\t\tmessage: null,\n\t\t\toverlayCSS: {\n\t\t\t\tbackground,\n\t\t\t\topacity: 0.7,\n\t\t\t},\n\t\t} );\n\t}\n\n\t// unblock dom elements\n\tunblock( $el ) {\n\t\tif ( typeof $.fn.unblock === 'undefined' ) {\n\t\t\treturn;\n\t\t}\n\n\t\t$el.unblock();\n\t}\n\n\t// checks if param is one used by layared nav to filter products.\n\tisFilterParam( param ) {\n\t\tlet supportedParams = [\n\t\t\t\t'rating_filter',\n\t\t\t\t'min_price',\n\t\t\t\t'max_price',\n\t\t\t\t'price_ranges',\n\t\t\t\t'onsale_filter',\n\t\t\t\t'instock_filter',\n\t\t\t\t'featured_filter',\n\t\t\t\t'orderby',\n\t\t\t\t'product-page',\n\t\t\t\tyith_wcan_shortcodes.query_param,\n\t\t\t],\n\t\t\tcustomParams;\n\n\t\t// filter properties\n\t\tcustomParams = $( document ).triggerHandler(\n\t\t\t'yith_wcan_supported_filters_parameters',\n\t\t\t[ supportedParams ]\n\t\t);\n\n\t\tif ( !! customParams ) {\n\t\t\tsupportedParams = customParams;\n\t\t}\n\n\t\tsupportedParams = supportedParams.concat(\n\t\t\tyith_wcan_shortcodes.supported_taxonomies.map( ( i ) =>\n\t\t\t\ti.replace( 'pa_', 'filter_' )\n\t\t\t)\n\t\t);\n\n\t\tif ( -1 !== supportedParams.indexOf( param ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( -1 !== param.indexOf( 'filter_' ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( -1 !== param.indexOf( 'query_type_' ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n}\n","'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nimport { $ } from '../config.js';\n\nexport default class YITH_WCAN_Reset_Button {\n\t// current button\n\t$reset = null;\n\n\t// init object\n\tconstructor( el ) {\n\t\t// current button\n\t\tthis.$reset = el;\n\n\t\tthis.$reset.on( 'click', function ( ev ) {\n\t\t\tev.preventDefault();\n\n\t\t\t$( '.yith-wcan-filters' ).each( function () {\n\t\t\t\tconst preset = $( this ).data( 'preset' );\n\n\t\t\t\tpreset.deactivateAllFilters( true );\n\t\t\t\tpreset.closeModal();\n\t\t\t} );\n\t\t} );\n\n\t\tthis.$reset.data( 'reset', this ).addClass( 'enhanced' );\n\t}\n}\n","'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nimport { $ } from '../config.js';\n\nexport default class YITH_WCAN_Dropdown {\n\t// current button\n\t$originalSelect = null;\n\n\t// main element\n\t$_main = null;\n\n\t// label element\n\t$_label = null;\n\n\t// dropdown\n\t$_dropdown = null;\n\n\t// search input\n\t$_search = null;\n\n\t// show more link\n\t$_showMore = null;\n\n\t// items list\n\t$_items = null;\n\n\t// current page\n\tcurrentPage = 1;\n\n\t// options\n\toptions = {};\n\n\t// init object\n\tconstructor( el, opts ) {\n\t\tthis.$originalSelect = el;\n\n\t\tif ( ! this.$originalSelect.is( 'select' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst defaultPerPage = this.$originalSelect.data( 'per_page' ),\n\t\t\tdefaultOrder = this.$originalSelect.data( 'order' ),\n\t\t\tdefaultAll = this.$originalSelect.data( 'all-label' ),\n\t\t\tdefaults = {\n\t\t\t\tshowSearch: this.$originalSelect.data( 'show_search' ),\n\t\t\t\tpaginate: this.$originalSelect.data( 'paginate' ),\n\t\t\t\tperPage: defaultPerPage ? defaultPerPage : 10,\n\t\t\t\torder: defaultOrder ? defaultOrder : 'ASC',\n\t\t\t\tgetElements: null,\n\t\t\t\tlabels: {\n\t\t\t\t\temptyLabel: defaultAll\n\t\t\t\t\t\t? defaultAll\n\t\t\t\t\t\t: yith_wcan_shortcodes.labels?.empty_option,\n\t\t\t\t\tsearchPlaceholder:\n\t\t\t\t\t\tyith_wcan_shortcodes.labels?.search_placeholder,\n\t\t\t\t\tnoItemsFound: yith_wcan_shortcodes.labels?.no_items,\n\t\t\t\t\tshowMore: yith_wcan_shortcodes.labels?.show_more,\n\t\t\t\t},\n\t\t\t};\n\n\t\tthis.options = $.extend( defaults, opts );\n\n\t\tthis._hideSelect();\n\t\tthis._initTemplate();\n\t\tthis._initActions();\n\n\t\tthis.$originalSelect.data( 'dropdown', this ).addClass( 'enhanced' );\n\t}\n\n\t// hide select\n\t_hideSelect() {\n\t\tthis.$originalSelect.hide();\n\t}\n\n\t// create dropdown\n\t_initTemplate() {\n\t\tconst $mainSpan = $( '<div/>', {\n\t\t\t\tclass: 'yith-wcan-dropdown closed',\n\t\t\t} ),\n\t\t\t$labelSpan = $( '<div/>', {\n\t\t\t\tclass: 'dropdown-label',\n\t\t\t\thtml: this.getLabel(),\n\t\t\t} ),\n\t\t\t$dropdownSpan = $( '<div>', {\n\t\t\t\tclass: 'dropdown-wrapper',\n\t\t\t} ),\n\t\t\t$matchingItemsList = $( '<ul/>', {\n\t\t\t\tclass: 'matching-items filter-items',\n\t\t\t} );\n\n\t\t$dropdownSpan.append( $matchingItemsList );\n\t\t$mainSpan.append( $labelSpan ).append( $dropdownSpan );\n\n\t\tif ( this.options.showSearch ) {\n\t\t\tthis._initSearchTemplate( $dropdownSpan );\n\t\t}\n\n\t\tif ( this.options.paginate ) {\n\t\t\tthis._initShowMoreTemplate( $dropdownSpan );\n\t\t}\n\n\t\tthis.$originalSelect.after( $mainSpan );\n\t\tthis.$_main = $mainSpan;\n\t\tthis.$_label = $labelSpan;\n\t\tthis.$_dropdown = $dropdownSpan;\n\t\tthis.$_items = $matchingItemsList;\n\t}\n\n\t// create search field\n\t_initSearchTemplate( $dropdwonSpan ) {\n\t\tconst $container = $( '<div/>', {\n\t\t\t\tclass: 'search-field-container',\n\t\t\t} ),\n\t\t\t$search = $( '<input/>', {\n\t\t\t\tname: 's',\n\t\t\t\tclass: 'search-field',\n\t\t\t\ttype: 'search',\n\t\t\t\tplaceholder: this.options.labels.searchPlaceholder,\n\t\t\t} );\n\n\t\t$container.append( $search ).prependTo( $dropdwonSpan );\n\t\tthis.$_search = $search;\n\t}\n\n\t// create showMore field\n\t_initShowMoreTemplate( $dropdwonSpan ) {\n\t\tconst $showMore = $( '<a/>', {\n\t\t\tclass: 'show-more',\n\t\t\ttext: this.options.labels.showMore?.replace(\n\t\t\t\t'%d',\n\t\t\t\tthis.options.perPage\n\t\t\t),\n\t\t} );\n\n\t\t$showMore.on( 'click', this.loadNextPage.bind( this ) ).hide();\n\n\t\t$dropdwonSpan.append( $showMore );\n\t\tthis.$_showMore = $showMore;\n\t}\n\n\t// init actions performed over dropdown elements\n\t_initActions() {\n\t\tconst self = this;\n\n\t\t// main open event\n\t\tthis.$_main?.on( 'click', ( ev ) => {\n\t\t\tev.stopPropagation();\n\t\t\tself.toggleDropdown();\n\t\t} );\n\t\tthis.$_dropdown.on( 'click', ( ev ) => {\n\t\t\tev.stopPropagation();\n\t\t} );\n\n\t\t// search event\n\t\tthis.$_search?.on( 'keyup search', () => {\n\t\t\tself._populateItems();\n\t\t} );\n\n\t\t// select event\n\t\tthis.$_items.on( 'change', ':input', function () {\n\t\t\tlet $li = $( this ).closest( 'li' ),\n\t\t\t\tvalue = $li.data( 'value' ),\n\t\t\t\tisActive = false;\n\n\t\t\tif (\n\t\t\t\t$li.hasClass( 'disabled' ) &&\n\t\t\t\t! self.isValueSelected( value )\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t$li.toggleClass( 'active' );\n\t\t\tisActive = $li.hasClass( 'active' );\n\n\t\t\tself._changeItemStatus( value, isActive );\n\t\t} );\n\t\tthis.$_items.on( 'click', 'li:not(.checkbox) a', function ( ev ) {\n\t\t\tlet $li = $( this ).closest( 'li' ),\n\t\t\t\tvalue = $li.data( 'value' ),\n\t\t\t\tisActive = false;\n\n\t\t\tev.preventDefault();\n\n\t\t\tif (\n\t\t\t\t$li.hasClass( 'disabled' ) &&\n\t\t\t\t! self.isValueSelected( value )\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t$li.toggleClass( 'active' );\n\t\t\tisActive = $li.hasClass( 'active' );\n\n\t\t\tif ( isActive ) {\n\t\t\t\t$li.siblings().removeClass( 'active' );\n\t\t\t}\n\n\t\t\tself._changeItemStatus( value, isActive );\n\t\t} );\n\t\tthis.$_items.on( 'click', 'label > a', function ( ev ) {\n\t\t\tconst input = $( this ).parent().find( ':input' );\n\n\t\t\tev.preventDefault();\n\n\t\t\tif (\n\t\t\t\tinput.is( '[type=\"radio\"]' ) ||\n\t\t\t\tinput.is( '[type=\"checkbox\"]' )\n\t\t\t) {\n\t\t\t\tinput.prop( 'checked', ! input.prop( 'checked' ) );\n\t\t\t}\n\n\t\t\tinput.change();\n\t\t} );\n\n\t\t// select change\n\t\tthis.$originalSelect.on( 'change', ( ev, selfOriginated ) => {\n\t\t\tif ( selfOriginated ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tself.$_items.find( 'li' ).each( function () {\n\t\t\t\tconst value = $( this ).data( 'value' );\n\n\t\t\t\tif ( self.isValueSelected( value ) ) {\n\t\t\t\t\tself._selectItem( value );\n\t\t\t\t} else {\n\t\t\t\t\tself._deselectItem( value );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tself.updateLabel();\n\t\t} );\n\n\t\t// close dropdown on external click; do this handler only once for any dropdown in the page\n\t\tif ( ! globalThis?.yith_wcan_dropdown_init ) {\n\t\t\t$( document ).on( 'click', this._closeAllDropdowns );\n\t\t\tglobalThis.yith_wcan_dropdown_init = true;\n\t\t}\n\t}\n\n\t// open dropdown\n\topenDropdown() {\n\t\tthis.$_main?.addClass( 'open' ).removeClass( 'closed' );\n\t\tthis._afterDropdownOpen();\n\t}\n\n\t// close dropdown\n\tcloseDropdown() {\n\t\tthis.$_main?.removeClass( 'open' ).addClass( 'closed' );\n\t}\n\n\t// close all dropdowns\n\t_closeAllDropdowns() {\n\t\tconst dropdowns = $( document )\n\t\t\t.find( 'select.enhanced' )\n\t\t\t.filter( function ( i, select ) {\n\t\t\t\tconst $el = $( select );\n\n\t\t\t\treturn !! $el.data( 'dropdown' );\n\t\t\t} );\n\n\t\tdropdowns.each( function () {\n\t\t\t$( this ).data( 'dropdown' ).closeDropdown();\n\t\t} );\n\t}\n\n\t// close other dropdowns\n\t_closeOtherDropdowns() {\n\t\tconst self = this,\n\t\t\tdropdowns = $( document )\n\t\t\t\t.find( 'select.enhanced' )\n\t\t\t\t.filter( function ( i, select ) {\n\t\t\t\t\tconst $el = $( select );\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! $el.data( 'dropdown' ) &&\n\t\t\t\t\t\t! $el.is( self.$originalSelect )\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\tdropdowns.each( function () {\n\t\t\t$( this ).data( 'dropdown' ).closeDropdown();\n\t\t} );\n\t}\n\n\t// toggle dropdown\n\ttoggleDropdown() {\n\t\tthis.$_main?.toggleClass( 'open' ).toggleClass( 'closed' );\n\n\t\tif ( this.$_main?.hasClass( 'open' ) ) {\n\t\t\tthis._afterDropdownOpen();\n\t\t}\n\t}\n\n\t// perform operations after dropdown is open\n\t_afterDropdownOpen() {\n\t\tthis._closeOtherDropdowns();\n\n\t\tif ( this.$_search?.length ) {\n\t\t\tthis.$_search.val( '' );\n\t\t}\n\n\t\tthis._populateItems();\n\t}\n\n\t// get elements\n\tgetMatchingElements( search, limit ) {\n\t\tlet matchingElements = [],\n\t\t\t$options = this.getOptions(),\n\t\t\tpromise;\n\n\t\tpromise = new Promise( ( resolve ) => {\n\t\t\t// first of all, search across select option\n\t\t\t$options.each( function () {\n\t\t\t\tconst t = $( this ),\n\t\t\t\t\tvalue = t.val(),\n\t\t\t\t\tlabel = t.html(),\n\t\t\t\t\tregex = new RegExp( '.*' + search + '.*', 'i' ),\n\t\t\t\t\tshow =\n\t\t\t\t\t\t! search || regex.test( value ) || regex.test( label );\n\n\t\t\t\tif ( show ) {\n\t\t\t\t\tmatchingElements.push( {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// then retrieve additional items\n\t\t\tif ( this.options.getElements ) {\n\t\t\t\t// we're expecting key => value pairs\n\t\t\t\tthis.options\n\t\t\t\t\t.getElements( search )\n\t\t\t\t\t.then( ( retrievedElements ) => {\n\t\t\t\t\t\tif ( retrievedElements ) {\n\t\t\t\t\t\t\t// reformat retrieved array\n\t\t\t\t\t\t\tretrievedElements = retrievedElements.reduce(\n\t\t\t\t\t\t\t\t( a, v, i ) => {\n\t\t\t\t\t\t\t\t\ta.push( { label: i, value: v } );\n\t\t\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t[]\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t// merge found results with options\n\t\t\t\t\t\t\tmatchingElements = $.extend(\n\t\t\t\t\t\t\t\tmatchingElements,\n\t\t\t\t\t\t\t\tretrievedElements\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresolve( this._formatItems( matchingElements, limit ) );\n\t\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tresolve( this._formatItems( matchingElements, limit ) );\n\t\t\t}\n\t\t} );\n\n\t\treturn promise;\n\t}\n\n\t// format items as key/value pairs for further processing\n\t_formatItems( items, limit ) {\n\t\tlet indexes = [],\n\t\t\thasMore = false;\n\n\t\t// remove duplicates and sort array of results\n\t\titems\n\t\t\t.filter( ( v ) => {\n\t\t\t\tif ( -1 === indexes.indexOf( v.value ) ) {\n\t\t\t\t\tindexes.push( v.value );\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t} )\n\t\t\t.sort( ( a, b ) => {\n\t\t\t\tconst order = this.options.order,\n\t\t\t\t\tmod = order === 'ASC' ? 1 : -1;\n\n\t\t\t\tif ( a.value < b.value ) {\n\t\t\t\t\treturn -1 * mod;\n\t\t\t\t} else if ( a.value > b.value ) {\n\t\t\t\t\treturn mod;\n\t\t\t\t}\n\n\t\t\t\treturn 0;\n\t\t\t} );\n\n\t\t// paginate when needed\n\t\tif ( limit ) {\n\t\t\thasMore = limit < Object.keys( items ).length;\n\t\t\titems = items.slice( 0, limit );\n\t\t}\n\n\t\treturn {\n\t\t\titems,\n\t\t\thasMore,\n\t\t};\n\t}\n\n\t// generate item to append to items list\n\t_generateItem( value, label ) {\n\t\tlet active = this.isValueSelected( value ),\n\t\t\toption = this.getOptionByValue( value ),\n\t\t\t$item = $( '<li/>', {\n\t\t\t\t'data-value': value,\n\t\t\t\tclass: option.length ? option.attr( 'class' ) : '',\n\t\t\t} ),\n\t\t\t$anchor;\n\n\t\tif ( option.length ) {\n\t\t\tconst template = option.data( 'template' ),\n\t\t\t\tcount = option.data( 'count' );\n\n\t\t\tlabel = template ? template : label;\n\n\t\t\tif ( !! count ) {\n\t\t\t\tlabel += count;\n\t\t\t}\n\t\t}\n\n\t\t$anchor = $( '<a/>', {\n\t\t\thref: option.length ? option.data( 'filter_url' ) : '#',\n\t\t\thtml: label,\n\t\t\trel: 'nofollow',\n\t\t\t'data-title': option.length ? option.data( 'title' ) : '',\n\t\t} );\n\n\t\tif ( this.$originalSelect.prop( 'multiple' ) ) {\n\t\t\tconst $checkbox = $( '<input/>', {\n\t\t\t\t\ttype: 'checkbox',\n\t\t\t\t\tvalue,\n\t\t\t\t} ),\n\t\t\t\t$label = $( '<label>' );\n\n\t\t\t$checkbox.prop( 'checked', active );\n\t\t\t$label.prepend( $checkbox ).append( $anchor );\n\t\t\t$item.append( $label ).addClass( 'checkbox' );\n\t\t} else {\n\t\t\t$item.append( $anchor );\n\t\t}\n\n\t\tactive ? $item.addClass( 'active' ) : $item.removeClass( 'active' );\n\n\t\treturn $item;\n\t}\n\n\t// populate items list\n\t_populateItems( page ) {\n\t\tlet search = this.$_search?.length ? this.$_search.val() : '',\n\t\t\tperPage = this.options.paginate ? this.options.perPage : 0,\n\t\t\tlimit;\n\n\t\tpage = page ? parseInt( page ) : 1;\n\t\tlimit = page * perPage;\n\n\t\tthis.getMatchingElements( search, limit ).then( ( resultSet ) => {\n\t\t\tlet matchingItems = resultSet.items,\n\t\t\t\titems = [],\n\t\t\t\thasMore = false;\n\n\t\t\t// remove all previous items\n\t\t\tthis._emptyItems();\n\t\t\tthis._hideLoadMore();\n\n\t\t\tif ( ! matchingItems.length ) {\n\t\t\t\titems.push(\n\t\t\t\t\t$( '<li/>', { text: this.options.labels.noItemsFound } )\n\t\t\t\t);\n\n\t\t\t\tthis.currentPage = 1;\n\t\t\t} else {\n\t\t\t\tfor ( const v of matchingItems ) {\n\t\t\t\t\tif ( v.value === '' ) {\n\t\t\t\t\t\titems.unshift( this._generateItem( v.value, v.label ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\titems.push( this._generateItem( v.value, v.label ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.currentPage = page;\n\t\t\t\thasMore = resultSet.hasMore;\n\t\t\t}\n\n\t\t\tthis.$_items.append( items );\n\n\t\t\tthis.$originalSelect.trigger( 'yith_wcan_dropdown_updated' );\n\n\t\t\tif ( hasMore ) {\n\t\t\t\tthis._showLoadMore();\n\t\t\t}\n\t\t} );\n\t}\n\n\t// load next page of items\n\tloadNextPage() {\n\t\tconst page = this.currentPage + 1;\n\n\t\tthis._populateItems( page );\n\t}\n\n\t// set an item as active\n\t_selectItem( value ) {\n\t\treturn this._changeItemStatus( value, true );\n\t}\n\n\t// disable an item\n\t_deselectItem( value ) {\n\t\treturn this._changeItemStatus( value, false );\n\t}\n\n\t// change item status\n\t_changeItemStatus( value, status ) {\n\t\tconst $option = this.$originalSelect.find(\n\t\t\t`option[value=\"${ value }\"]`\n\t\t);\n\n\t\tif ( $option.length ) {\n\t\t\t$option.prop( 'selected', status );\n\n\t\t\tthis.closeDropdown();\n\t\t\tthis.updateLabel();\n\n\t\t\tthis.$originalSelect.trigger( 'change', [ true ] );\n\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t// empty items list\n\t_emptyItems() {\n\t\tthis.$_items.html( '' );\n\t}\n\n\t// show \"Load more\" link\n\t_showLoadMore() {\n\t\tthis.$_showMore.show();\n\t}\n\n\t// hide \"Load more\" link\n\t_hideLoadMore() {\n\t\tthis.$_showMore.hide();\n\t}\n\n\t// returns select label\n\tgetLabel() {\n\t\treturn this.hasSelectedValues()\n\t\t\t? this.getSelectedLabels().join( ', ' )\n\t\t\t: this.options.labels.emptyLabel;\n\t}\n\n\t// update label to match new selection\n\tupdateLabel() {\n\t\tconst label = this.getLabel();\n\n\t\tthis.$_label?.html( label );\n\t}\n\n\t// returns select options\n\tgetOptions() {\n\t\treturn this.$originalSelect.find( 'option' );\n\t}\n\n\t// checks whether select has selected values\n\thasSelectedValues() {\n\t\treturn this.getSelectedOptions().length;\n\t}\n\n\t// checks whether a value is selected\n\tisValueSelected( value ) {\n\t\tconst found = this.getSelectedValues().indexOf( value.toString() );\n\n\t\treturn -1 !== found;\n\t}\n\n\t// retrieve selected options\n\tgetSelectedOptions() {\n\t\treturn this.$originalSelect.find( 'option' ).filter( ':selected' );\n\t}\n\n\t// retrieves an option node by value\n\tgetOptionByValue( value ) {\n\t\treturn this.$originalSelect.find( `option[value=\"${ value }\"]` );\n\t}\n\n\t// retrieve labels for selected options\n\tgetSelectedLabels() {\n\t\tconst labels = [];\n\n\t\tthis.getSelectedOptions().each( function () {\n\t\t\tlet $option = $( this ),\n\t\t\t\ttemplate = $option.data( 'template' );\n\n\t\t\ttemplate = template\n\t\t\t\t? template\n\t\t\t\t: $option.html().replace( /\\([0-9]*\\)/, '' );\n\n\t\t\tlabels.push( template );\n\t\t} );\n\n\t\treturn labels;\n\t}\n\n\t// retrieve values for selected options\n\tgetSelectedValues() {\n\t\tconst values = [];\n\n\t\tthis.getSelectedOptions().each( function () {\n\t\t\tvalues.push( $( this ).val() );\n\t\t} );\n\n\t\treturn values;\n\t}\n\n\tdestroy() {\n\t\t// TBD\n\t}\n}\n","'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nimport { $ } from '../config.js';\nimport YITH_WCAN_Dropdown from './yith-wcan-dropdown';\n\nexport default class YITH_WCAN_Preset {\n\t// main preset node\n\tpreset = false;\n\t$preset = false;\n\n\t// target of the filter, if any\n\ttarget = false;\n\t$target = false;\n\n\t// filters node\n\t$filters = false;\n\n\t// filter button\n\t$filterButtons = false;\n\n\t// nodes created just for modal layout\n\tmodalElements = {};\n\n\t// retains current status of filters\n\tactiveFilters = false;\n\n\t// mobile flag\n\tisMobile = false;\n\n\t// slider timeout\n\tsliderTimeout = false;\n\n\t// registers when status has changed\n\toriginalFilters = null;\n\tdirty = false;\n\n\t// init object\n\tconstructor( el ) {\n\t\t// main preset node\n\t\tthis.preset = '#' + el.attr( 'id' );\n\t\tthis.$preset = el;\n\n\t\t// target of the filter, if any\n\t\tthis.target = this.$preset.data( 'target' );\n\t\tthis.$target = this.target ? $( this.target ) : false;\n\n\t\tthis._regiterStatus();\n\t\tthis._initFilterButton();\n\t\tthis._initResponsive();\n\t\tthis._initFilters();\n\t\tthis._initActions();\n\n\t\tthis.$preset\n\t\t\t.data( 'preset', this )\n\t\t\t.addClass( 'enhanced' )\n\t\t\t.trigger( 'yith_wcan_preset_initialized', [ this ] );\n\t}\n\n\t// init filters\n\t_initFilters() {\n\t\tconst self = this;\n\n\t\tthis.getFilters().each( function () {\n\t\t\tconst $filter = $( this );\n\n\t\t\tself._initFilter( $filter );\n\t\t} );\n\n\t\tthis.maybeShowClearAllFilters();\n\t}\n\n\t// init filter button\n\t_initFilterButton() {\n\t\tthis.$filterButtons = this.$preset.find( '.apply-filters' );\n\n\t\tif ( ! this.$filterButtons.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// manage filter button\n\t\tthis.$filterButtons\n\t\t\t.on( 'click', ( ev ) => {\n\t\t\t\tev.preventDefault();\n\t\t\t\tthis.filter();\n\t\t\t} )\n\t\t\t.hide();\n\t}\n\n\t// init generic actions\n\t_initActions() {\n\t\tthis.$preset.find( 'form' ).on( 'submit', ( ev ) => {\n\t\t\tev.preventDefault();\n\t\t} );\n\t}\n\n\t// init responsive\n\t_initResponsive() {\n\t\tif ( ! yith_wcan_shortcodes.modal_on_mobile ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst media = window.matchMedia(\n\t\t\t`(max-width: ${ yith_wcan_shortcodes.mobile_media_query }px)`\n\t\t);\n\n\t\t$( window )\n\t\t\t.on( 'resize', () => {\n\t\t\t\tconst isMobile = !! media.matches;\n\n\t\t\t\tif ( isMobile !== this.isMobile ) {\n\t\t\t\t\tthis.isMobile = isMobile;\n\t\t\t\t\tthis._afterLayoutChange();\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.resize();\n\t}\n\n\t// init filter\n\t_initFilter( $filter ) {\n\t\tconst self = this,\n\t\t\thandleChange = function ( ev ) {\n\t\t\t\tconst t = $( this ),\n\t\t\t\t\t$currentFilter = t.closest( '.yith-wcan-filter' ),\n\t\t\t\t\tmultiple = $currentFilter.length\n\t\t\t\t\t\t? 'yes' === $currentFilter.data( 'multiple' )\n\t\t\t\t\t\t: false,\n\t\t\t\t\t$item = t.closest( '.filter-item' ),\n\t\t\t\t\t$items = $item.length\n\t\t\t\t\t\t? $currentFilter.find( '.filter-item' ).not( $item )\n\t\t\t\t\t\t: [];\n\n\t\t\t\tif ( $item.is( '.disabled' ) && ! $item.is( '.active' ) ) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tev.preventDefault();\n\n\t\t\t\t$items.length &&\n\t\t\t\t\t! multiple &&\n\t\t\t\t\t$items\n\t\t\t\t\t\t.removeClass( 'active' )\n\t\t\t\t\t\t.children( 'label' )\n\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t.parent( '.checked' )\n\t\t\t\t\t\t.removeClass( 'checked' );\n\t\t\t\t$item.length && $item.toggleClass( 'active' );\n\n\t\t\t\t// reset active filters.\n\t\t\t\tself.activeFilters = false;\n\n\t\t\t\tself.maybeFilter( $filter );\n\t\t\t\tself.maybeToggleClearAllFilters();\n\t\t\t\tself.maybeToggleClearFilter( $currentFilter );\n\t\t\t};\n\n\t\t// handle filter activation/deactivation by click on label (no input involved)\n\t\t$filter\n\t\t\t.find( '.filter-item' )\n\t\t\t.not( '.checkbox' )\n\t\t\t.not( '.radio' )\n\t\t\t.on( 'click', 'a', function ( ev ) {\n\t\t\t\tconst t = $( this ),\n\t\t\t\t\t$item = t.closest( '.filter-item' );\n\n\t\t\t\tif ( ! $( ev?.delegateTarget ).is( $item ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\thandleChange.call( this, ev );\n\t\t\t} );\n\n\t\t// handle filter activation/deactivation from input change\n\t\t$filter.find( ':input' ).on( 'change', function ( ev ) {\n\t\t\tconst t = $( this ),\n\t\t\t\t$item = t.closest( '.filter-item' );\n\n\t\t\tif ( $item.is( '.disabled' ) && ! $item.is( '.active' ) ) {\n\t\t\t\tt.prop( 'checked', false );\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\thandleChange.call( this, ev );\n\t\t} );\n\n\t\t// handle filter activation/deactivation by click on label (there is an input whose state can be switched)\n\t\t$filter.find( 'label > a' ).on( 'click', function ( ev ) {\n\t\t\tconst t = $( this ),\n\t\t\t\t$item = t.closest( '.filter-item' );\n\n\t\t\tev.preventDefault();\n\n\t\t\tif ( $item.is( '.disabled' ) && ! $item.is( '.active' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst $input = t.parent().find( ':input' );\n\n\t\t\tif (\n\t\t\t\t$input.is( '[type=\"radio\"]' ) ||\n\t\t\t\t$input.is( '[type=\"checkbox\"]' )\n\t\t\t) {\n\t\t\t\t$input.prop( 'checked', ! $input.prop( 'checked' ) );\n\t\t\t}\n\n\t\t\t$input.change();\n\t\t} );\n\n\t\t// init tooltip\n\t\tthis._initTooltip( $filter );\n\n\t\t// init price slider\n\t\tthis._initPriceSlider( $filter );\n\n\t\t// init dropdown\n\t\tthis._initDropdown( $filter );\n\n\t\t// init collapsable\n\t\tthis._initCollapsable( $filter );\n\n\t\t// init clear anchors\n\t\tthis.maybeShowClearFilter( $filter );\n\n\t\t// init custom inputs\n\t\tif ( this.$preset?.hasClass( 'custom-style' ) ) {\n\t\t\tthis._initCustomInput( $filter );\n\t\t\t$filter.on( 'yith_wcan_dropdown_updated', function () {\n\t\t\t\tconst $dropdown = $( this ),\n\t\t\t\t\t$current = $dropdown.closest( '.yith-wcan-filter' );\n\n\t\t\t\tself._initCustomInput( $current );\n\t\t\t} );\n\t\t}\n\t}\n\n\t// init tooltip\n\t_initTooltip( $filter, position ) {\n\t\t$filter.find( '[data-title]' ).each( function () {\n\t\t\tconst t = $( this );\n\n\t\t\tif ( t.hasClass( 'tooltip-added' ) || ! t.data( 'title' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tt.on( 'mouseenter', function () {\n\t\t\t\tlet th = $( this ),\n\t\t\t\t\ttooltip = null,\n\t\t\t\t\twrapperWidth = th.outerWidth(),\n\t\t\t\t\tleft = 0,\n\t\t\t\t\twidth = 0;\n\n\t\t\t\tif (\n\t\t\t\t\t! position ||\n\t\t\t\t\t( 'top' !== position && 'right' !== position )\n\t\t\t\t) {\n\t\t\t\t\tconst container = th.closest( '.filter-item' );\n\n\t\t\t\t\tposition =\n\t\t\t\t\t\tcontainer.hasClass( 'color' ) ||\n\t\t\t\t\t\tcontainer.hasClass( 'label' )\n\t\t\t\t\t\t\t? 'top'\n\t\t\t\t\t\t\t: 'right';\n\t\t\t\t}\n\n\t\t\t\ttooltip = $( '<span>', {\n\t\t\t\t\tclass: 'yith-wcan-tooltip',\n\t\t\t\t\thtml: th.data( 'title' ),\n\t\t\t\t} );\n\n\t\t\t\tth.append( tooltip );\n\n\t\t\t\twidth = tooltip.outerWidth() + 6;\n\t\t\t\ttooltip.outerWidth( width );\n\n\t\t\t\tif ( 'top' === position ) {\n\t\t\t\t\tleft = ( wrapperWidth - width ) / 2;\n\t\t\t\t} else {\n\t\t\t\t\tleft = wrapperWidth + 15;\n\t\t\t\t}\n\n\t\t\t\ttooltip.css( { left: left.toFixed( 0 ) + 'px' } ).fadeIn( 200 );\n\n\t\t\t\tth.addClass( 'with-tooltip' );\n\t\t\t} ).on( 'mouseleave', function () {\n\t\t\t\tconst th = $( this );\n\n\t\t\t\tth.find( '.yith-wcan-tooltip' ).fadeOut( 200, function () {\n\t\t\t\t\tth.removeClass( 'with-tooltip' )\n\t\t\t\t\t\t.find( '.yith-wcan-tooltip' )\n\t\t\t\t\t\t.remove();\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\tt.addClass( 'tooltip-added' );\n\t\t} );\n\t}\n\n\t// init dropdown\n\t_initDropdown( $filter ) {\n\t\tconst $dropdown = $filter.find( 'select.filter-dropdown' );\n\n\t\tif ( ! $dropdown.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\t$dropdown.hasClass( 'select2-hidden-accessible' ) &&\n\t\t\t'undefined' !== typeof $.fn.selectWoo\n\t\t) {\n\t\t\t$dropdown.selectWoo( 'destroy' );\n\t\t}\n\n\t\tthis._initDropdownObject( $dropdown, {\n\t\t\tpaginate: true,\n\t\t\tperPage: yith_wcan_shortcodes.terms_per_page,\n\t\t} );\n\t}\n\n\t// init dropdown object\n\t_initDropdownObject( $dropdown, opts ) {\n\t\treturn new YITH_WCAN_Dropdown( $dropdown, opts );\n\t}\n\n\t// init price slider\n\t_initPriceSlider( $filter ) {\n\t\tif ( ! $filter.hasClass( 'filter-price-slider' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst self = this,\n\t\t\t$container = $filter.find( '.price-slider' ),\n\t\t\t$minInput = $container.find( '.price-slider-min' ),\n\t\t\t$maxInput = $container.find( '.price-slider-max' ),\n\t\t\tmin = parseFloat( $container.data( 'min' ) ),\n\t\t\tmax = parseFloat( $container.data( 'max' ) ),\n\t\t\tcurrentMin = parseFloat( $minInput.val() ),\n\t\t\tcurrentMax = parseFloat( $maxInput.val() ),\n\t\t\tstep = parseFloat( $container.data( 'step' ) ),\n\t\t\thandleSliderChange = function () {\n\t\t\t\tif ( self.sliderTimeout ) {\n\t\t\t\t\tclearTimeout( self.sliderTimeout );\n\t\t\t\t}\n\n\t\t\t\tself.sliderTimeout = setTimeout( () => {\n\t\t\t\t\tself.maybeFilter( $filter );\n\t\t\t\t}, 200 );\n\t\t\t};\n\n\t\t$filter.find( '.price-slider-ui' ).ionRangeSlider( {\n\t\t\tskin: 'round',\n\t\t\ttype: 'double',\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tstep,\n\t\t\tfrom: currentMin,\n\t\t\tto: currentMax,\n\t\t\tmin_interval: step,\n\t\t\tvalues_separator: ' - ',\n\t\t\tprettify: ( v ) => this.formatPrice( v ),\n\t\t\tonChange: ( data ) => {\n\t\t\t\t$minInput.val( data.from );\n\t\t\t\t$maxInput.val( data.to );\n\t\t\t},\n\t\t\tonFinish: handleSliderChange,\n\t\t} );\n\n\t\t$minInput\n\t\t\t.add( $maxInput )\n\t\t\t.off( 'change' )\n\t\t\t.on( 'keyup', () => {\n\t\t\t\tif ( ! $minInput.val() || ! $maxInput.val() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\thandleSliderChange();\n\t\t\t} );\n\t}\n\n\t// init collapsable\n\t_initCollapsable( $filter ) {\n\t\tthis._initTitleCollapsable( $filter );\n\t\tthis._initHierarchyCollapsable( $filter );\n\t}\n\n\t// init toggle on click of the title\n\t_initTitleCollapsable( $filter ) {\n\t\tconst $title = $filter.find( '.collapsable' );\n\n\t\tif ( ! $title.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._initToggle( $title, $title, $filter.find( '.filter-content' ) );\n\t}\n\n\t// init toggle on click of the parent li\n\t_initHierarchyCollapsable( $filter ) {\n\t\tconst $items = $filter.find( '.hierarchy-collapsable' );\n\n\t\tif ( ! $items.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// set parents of currently active term as open\n\t\tconst self = this,\n\t\t\tactive = $filter.find( '.active' );\n\n\t\tif ( active.length ) {\n\t\t\tactive\n\t\t\t\t.parents( '.hierarchy-collapsable' )\n\t\t\t\t.removeClass( 'closed' )\n\t\t\t\t.addClass( 'opened' );\n\n\t\t\tif (\n\t\t\t\tactive.hasClass( 'hierarchy-collapsable' ) &&\n\t\t\t\tyith_wcan_shortcodes.show_current_children\n\t\t\t) {\n\t\t\t\tactive.removeClass( 'closed' ).addClass( 'opened' );\n\t\t\t}\n\t\t}\n\n\t\t$items.each( function () {\n\t\t\tconst $t = $( this ),\n\t\t\t\t$toggle = $( '<span/>', {\n\t\t\t\t\tclass: 'toggle-handle',\n\t\t\t\t} );\n\n\t\t\t$toggle.appendTo( $t );\n\n\t\t\tself._initToggle( $toggle, $t, $t.children( 'ul.filter-items' ) );\n\t\t} );\n\t}\n\n\t// init toggle to generic toggle/target pair\n\t_initToggle( $toggle, $container, $target ) {\n\t\tif ( $container.hasClass( 'closed' ) ) {\n\t\t\t$target.hide();\n\t\t}\n\n\t\t$toggle.off( 'click' ).on( 'click', ( ev ) => {\n\t\t\tev.stopPropagation();\n\t\t\tev.preventDefault();\n\n\t\t\t$target.slideToggle( 400, () => {\n\t\t\t\t$container.toggleClass( 'opened' ).toggleClass( 'closed' );\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// init custom input\n\t_initCustomInput( $filter ) {\n\t\t$filter.find( ':input' ).each( function () {\n\t\t\tlet input = $( this ),\n\t\t\t\ttype = input.attr( 'type' ),\n\t\t\t\tcontainerClass = `${ type }button`,\n\t\t\t\tcontainer;\n\n\t\t\tif ( 'checkbox' !== type && 'radio' !== type ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( input.closest( `.${ containerClass }` ).length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( input.is( ':checked' ) ) {\n\t\t\t\tcontainerClass += ' checked';\n\t\t\t}\n\n\t\t\tcontainer = $( '<span/>', {\n\t\t\t\tclass: containerClass,\n\t\t\t} );\n\n\t\t\tinput.wrap( container ).on( 'change', function () {\n\t\t\t\tconst t = $( this );\n\n\t\t\t\tt.prop( 'checked' )\n\t\t\t\t\t? t.parent().addClass( 'checked' )\n\t\t\t\t\t: t.parent().removeClass( 'checked' );\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// register initial status\n\t_regiterStatus() {\n\t\tthis.originalFilters = this.getFiltersProperties();\n\t}\n\n\t// trigger handling after layout change\n\t_afterLayoutChange() {\n\t\tif ( this.isMobile ) {\n\t\t\tthis.$preset\n\t\t\t\t.addClass( 'filters-modal' )\n\t\t\t\t.attr( 'role', 'dialog' )\n\t\t\t\t.attr( 'tabindex', '-1' )\n\t\t\t\t.hide();\n\n\t\t\tthis._addCloseModalButton();\n\t\t\tthis._addApplyFiltersModalButton();\n\t\t\tthis._switchToCollapsables();\n\n\t\t\tthis.$filterButtons?.hide();\n\t\t} else {\n\t\t\tthis.$preset\n\t\t\t\t.removeClass( 'filters-modal' )\n\t\t\t\t.removeClass( 'open' )\n\t\t\t\t.removeAttr( 'role' )\n\t\t\t\t.removeAttr( 'tabindex' )\n\t\t\t\t.show();\n\n\t\t\t$( 'body' )\n\t\t\t\t.css( 'overflow', 'auto' )\n\t\t\t\t.removeClass( 'yith-wcan-preset-modal-open' );\n\n\t\t\tthis._removeCloseModalButton();\n\t\t\tthis._removeApplyFiltersModalButton();\n\t\t\tthis._switchBackCollapsables();\n\n\t\t\tthis.$filterButtons?.show();\n\t\t}\n\t}\n\n\t// add modal close button\n\t_addCloseModalButton() {\n\t\tconst $closeButton = $( '<a/>', {\n\t\t\tclass: 'close-button',\n\t\t\thtml: '×',\n\t\t\t'data-dismiss': 'modal',\n\t\t\t'aria-label': yith_wcan_shortcodes.labels.close,\n\t\t} );\n\n\t\t$closeButton\n\t\t\t.prependTo( this.$preset )\n\t\t\t.on( 'click', this.closeModal.bind( this ) );\n\t\tthis.modalElements.closeButton = $closeButton;\n\t}\n\n\t// remove modal close button\n\t_removeCloseModalButton() {\n\t\tthis.modalElements?.closeButton?.remove();\n\t}\n\n\t// show main filter button for the modal\n\t_addApplyFiltersModalButton() {\n\t\tconst $filterButton = $( '<button/>', {\n\t\t\tclass: 'apply-filters main-modal-button',\n\t\t\thtml: yith_wcan_shortcodes.labels.show_results,\n\t\t\t'data-dismiss': 'modal',\n\t\t} );\n\n\t\t$filterButton.appendTo( this.$preset ).on( 'click', () => {\n\t\t\tthis.filter();\n\t\t\tthis.closeModal();\n\t\t} );\n\t\tthis.modalElements.applyFiltersButton = $filterButton;\n\t}\n\n\t// hide main filter button for the modal\n\t_removeApplyFiltersModalButton() {\n\t\tthis.modalElements?.applyFiltersButton?.remove();\n\t}\n\n\t// convert all filters to collapsable\n\t_switchToCollapsables() {\n\t\tconst self = this;\n\n\t\tthis.getFilters().each( function () {\n\t\t\tconst $filter = $( this ),\n\t\t\t\t$title = $filter.find( '.filter-title' );\n\n\t\t\tif ( ! $title.length || $title.hasClass( 'collapsable' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$title.addClass( 'collapsable' ).data( 'disable-collapse', true );\n\n\t\t\tself._initTitleCollapsable( $filter );\n\t\t} );\n\t}\n\n\t// switch back filters to their previous collapsable state\n\t_switchBackCollapsables() {\n\t\tthis.getFilters().each( function () {\n\t\t\tconst $filter = $( this ),\n\t\t\t\t$title = $filter.find( '.filter-title' );\n\n\t\t\tif (\n\t\t\t\t! $title.length ||\n\t\t\t\t! $title.hasClass( 'collapsable' ) ||\n\t\t\t\t! $title.data( 'disable-collapse' )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$title\n\t\t\t\t.removeClass( 'collapsable' )\n\t\t\t\t.removeData( 'disable-collapse', true )\n\t\t\t\t.off( 'click' );\n\n\t\t\t$filter.find( '.filter-content' ).show();\n\t\t} );\n\t}\n\n\t// close all collpasable before showing modal\n\t_openAllCollapsables() {\n\t\tthis.$filters\n\t\t\t.not( '.no-title' )\n\t\t\t.not( ( i, v ) => {\n\t\t\t\treturn this.isFilterActive( $( v ) );\n\t\t\t} )\n\t\t\t.find( '.filter-content' )\n\t\t\t.show()\n\t\t\t.end()\n\t\t\t.find( '.filter-title' )\n\t\t\t.removeClass( 'closed' )\n\t\t\t.addClass( 'opened' );\n\t}\n\n\t// close all collpasable before showing modal\n\t_closeAllCollapsables() {\n\t\tthis.$filters\n\t\t\t.not( '.no-title' )\n\t\t\t.not( ( i, v ) => {\n\t\t\t\treturn this.isFilterActive( $( v ) );\n\t\t\t} )\n\t\t\t.find( '.filter-content' )\n\t\t\t.hide()\n\t\t\t.end()\n\t\t\t.find( '.filter-title' )\n\t\t\t.addClass( 'closed' )\n\t\t\t.removeClass( 'opened' );\n\t}\n\n\t// update status change flag, if filters have changed\n\tmaybeRegisterStatusChange() {\n\t\tconst currentFilters = this.getFiltersProperties(),\n\t\t\tcurrentStr = JSON.stringify( currentFilters ),\n\t\t\toriginalStr = JSON.stringify( this.originalFilters );\n\n\t\tthis.dirty = currentStr !== originalStr;\n\t}\n\n\t// apply filters when possible\n\tmaybeFilter( $initiator ) {\n\t\t// register status change\n\t\tthis.maybeRegisterStatusChange();\n\n\t\t// filter, or show filter button.\n\t\tif ( yith_wcan_shortcodes.instant_filters && ! this.isMobile ) {\n\t\t\tthis.filter();\n\t\t} else if (\n\t\t\t! yith_wcan_shortcodes.instant_filters &&\n\t\t\t! this.isMobile\n\t\t) {\n\t\t\tthis.dirty\n\t\t\t\t? this.$filterButtons?.show()\n\t\t\t\t: this.$filterButtons?.hide();\n\t\t} else if ( this.isMobile && this.dirty ) {\n\t\t\tthis.$preset.addClass( 'with-filter-button' );\n\t\t\tthis.modalElements.applyFiltersButton?.show();\n\t\t}\n\t}\n\n\t// main filtering method\n\tfilter() {\n\t\tconst filter = window?.product_filter;\n\n\t\tfilter\n\t\t\t?.doFilter( this.getFiltersProperties(), this.target, this.preset )\n\t\t\t?.done( () => {\n\t\t\t\tlet newPreset = $( this.preset );\n\n\t\t\t\tif ( newPreset.length && yith_wcan_shortcodes.scroll_top ) {\n\t\t\t\t\t// by default, scroll till top of first preset in the page.\n\t\t\t\t\tlet targetOffset = newPreset.offset().top;\n\n\t\t\t\t\tif ( !! yith_wcan_shortcodes.scroll_target ) {\n\t\t\t\t\t\t// when we have a specific target, use that for the offset.\n\t\t\t\t\t\tconst $scrollTarget = $(\n\t\t\t\t\t\t\tyith_wcan_shortcodes.scroll_target\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\ttargetOffset = $scrollTarget.length\n\t\t\t\t\t\t\t? $scrollTarget.offset().top\n\t\t\t\t\t\t\t: targetOffset;\n\t\t\t\t\t} else if ( this.isMobile ) {\n\t\t\t\t\t\t// otherwise, if we're on mobile, scroll to the top of the page\n\t\t\t\t\t\t// (preset could be in an unexpected location).\n\t\t\t\t\t\ttargetOffset = 100;\n\t\t\t\t\t}\n\n\t\t\t\t\t$( 'body, html' ).animate( {\n\t\t\t\t\t\tscrollTop: targetOffset - 100,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// register new filters, clear status flag\n\t\t\t\tthis.originalFilters = this.getFiltersProperties();\n\t\t\t\tthis.dirty = false;\n\t\t\t} );\n\n\t\tif ( this.isMobile ) {\n\t\t\tthis.$preset.removeClass( 'with-filter-button' );\n\t\t\tthis.modalElements.applyFiltersButton?.hide();\n\t\t\tthis.closeModal();\n\t\t}\n\t}\n\n\t// get all filter nodes\n\tgetFilters() {\n\t\tif ( false === this.$filters ) {\n\t\t\tthis.$filters = this.$preset.find( '.yith-wcan-filter' );\n\t\t}\n\n\t\treturn this.$filters;\n\t}\n\n\t// retrieves all filters that we want to apply\n\tgetActiveFilters() {\n\t\tif ( false === this.activeFilters ) {\n\t\t\tthis.activeFilters = this.getFiltersProperties();\n\t\t}\n\n\t\treturn this.activeFilters;\n\t}\n\n\t// check whether there is any filter active\n\tisAnyFilterActive() {\n\t\treturn !! Object.keys( this.getActiveFilters() ).length;\n\t}\n\n\t// checks whether current filter is active\n\tisFilterActive( $filter ) {\n\t\tlet filterType = $filter.data( 'filter-type' ),\n\t\t\tactive,\n\t\t\tfilteredActive;\n\n\t\tswitch ( filterType ) {\n\t\t\tcase 'tax':\n\t\t\tcase 'review':\n\t\t\tcase 'price_range':\n\t\t\t\tconst $dropdown = $filter.find( '.filter-dropdown' );\n\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tconst val = $dropdown.val();\n\n\t\t\t\t\tactive = 'object' === typeof val ? !! val?.length : !! val;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t// if we use type other than dropdown, fallthrough\n\t\t\tcase 'stock_sale':\n\t\t\t\tactive = $filter\n\t\t\t\t\t.find( '.filter-item' )\n\t\t\t\t\t.filter( '.active' ).length;\n\t\t\t\tbreak;\n\t\t\tcase 'price_slider':\n\t\t\t\tconst step = parseFloat(\n\t\t\t\t\t\t$filter.find( '.price-slider' ).data( 'step' )\n\t\t\t\t\t),\n\t\t\t\t\tmin = parseFloat(\n\t\t\t\t\t\t$filter.find( '.price-slider' ).data( 'min' )\n\t\t\t\t\t),\n\t\t\t\t\tmax = parseFloat(\n\t\t\t\t\t\t$filter.find( '.price-slider' ).data( 'max' )\n\t\t\t\t\t),\n\t\t\t\t\tcurrentMin = parseFloat(\n\t\t\t\t\t\t$filter.find( '.price-slider-min' ).val()\n\t\t\t\t\t),\n\t\t\t\t\tcurrentMax = parseFloat(\n\t\t\t\t\t\t$filter.find( '.price-slider-max' ).val()\n\t\t\t\t\t);\n\n\t\t\t\tactive =\n\t\t\t\t\tMath.abs( currentMin - min ) >= step ||\n\t\t\t\t\tMath.abs( currentMax - max ) >= step;\n\t\t\t\tbreak;\n\t\t\tcase 'orderby':\n\t\t\t\tactive =\n\t\t\t\t\t'menu_order' !== $filter.find( '.filter-order-by' ).val();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tactive = false;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tfilteredActive = $filter.triggerHandler( 'yith_wcan_is_filter_active', [\n\t\t\tactive,\n\t\t\tthis,\n\t\t] );\n\t\tactive =\n\t\t\ttypeof filteredActive !== 'undefined' ? filteredActive : active;\n\n\t\treturn active;\n\t}\n\n\t// count the number of active items per filter\n\tcountActiveItems( $filter ) {\n\t\tlet filterType = $filter.data( 'filter-type' ),\n\t\t\tcount;\n\n\t\tswitch ( filterType ) {\n\t\t\tcase 'tax':\n\t\t\tcase 'review':\n\t\t\tcase 'price_range':\n\t\t\t\tconst $dropdown = $filter.find( '.filter-dropdown' );\n\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tconst val = $dropdown.val();\n\n\t\t\t\t\tcount = 'object' === typeof val ? val?.length : +!! val;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t// if we use type other than dropdown, fallthrough\n\t\t\tcase 'stock_sale':\n\t\t\t\tcount = $filter\n\t\t\t\t\t.find( '.filter-items' )\n\t\t\t\t\t.find( '.active' ).length;\n\t\t\t\tbreak;\n\t\t\tcase 'orderby':\n\t\t\t\tif ( this.isFilterActive( $filter ) ) {\n\t\t\t\t\tcount = 1;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'price_slider':\n\t\t\tdefault:\n\t\t\t\tcount = 0;\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn count;\n\t}\n\n\t// retrieves filter properties for the filter\n\tgetFilterProperties( $filter ) {\n\t\tlet filterType = $filter.data( 'filter-type' ),\n\t\t\tmultiple = 'yes' === $filter.data( 'multiple' ),\n\t\t\t$dropdown = $filter.find( '.filter-dropdown' ),\n\t\t\tproperties = {},\n\t\t\tfilteredProperties,\n\t\t\t$active;\n\n\t\tswitch ( filterType ) {\n\t\t\tcase 'tax':\n\t\t\t\tlet activeTerms = [],\n\t\t\t\t\ttaxonomy = $filter.data( 'taxonomy' ),\n\t\t\t\t\tisAttr = 0 === taxonomy.indexOf( 'filter' ),\n\t\t\t\t\trelation = $filter.data( 'relation' );\n\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tif ( multiple ) {\n\t\t\t\t\t\tactiveTerms = $dropdown.val();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tactiveTerms.push( $dropdown.val() );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$active = $filter\n\t\t\t\t\t\t.find( '.filter-item' )\n\t\t\t\t\t\t.filter( '.active' )\n\t\t\t\t\t\t.children( 'a, label' );\n\n\t\t\t\t\tactiveTerms = $active.get().reduce( function ( a, v ) {\n\t\t\t\t\t\tlet val;\n\n\t\t\t\t\t\tv = $( v );\n\t\t\t\t\t\tval = v.is( 'label' )\n\t\t\t\t\t\t\t? v.find( ':input' ).val()\n\t\t\t\t\t\t\t: v.data( 'term-slug' );\n\n\t\t\t\t\t\tif ( ! val ) {\n\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ta.push( val );\n\n\t\t\t\t\t\treturn a;\n\t\t\t\t\t}, activeTerms );\n\t\t\t\t}\n\n\t\t\t\tif ( ! multiple ) {\n\t\t\t\t\tproperties[ taxonomy ] = activeTerms.pop();\n\t\t\t\t} else {\n\t\t\t\t\tconst glue = ! isAttr && 'and' === relation ? '+' : ',';\n\t\t\t\t\tproperties[ taxonomy ] = activeTerms.join( glue );\n\t\t\t\t}\n\n\t\t\t\tif ( isAttr ) {\n\t\t\t\t\tproperties[ taxonomy.replace( 'filter_', 'query_type_' ) ] =\n\t\t\t\t\t\trelation;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'review':\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tproperties.rating_filter = $dropdown.val();\n\t\t\t\t} else {\n\t\t\t\t\t$active = $filter\n\t\t\t\t\t\t.find( '.filter-item' )\n\t\t\t\t\t\t.filter( '.active' )\n\t\t\t\t\t\t.children( 'a, label' );\n\n\t\t\t\t\tif ( ! multiple ) {\n\t\t\t\t\t\t$active = $active.first();\n\t\t\t\t\t\tproperties.rating_filter = $active.is( 'label' )\n\t\t\t\t\t\t\t? $active.find( ':input' ).val()\n\t\t\t\t\t\t\t: $active.data( 'rating' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties.rating_filter = $active\n\t\t\t\t\t\t\t.get()\n\t\t\t\t\t\t\t.reduce( function ( a, v ) {\n\t\t\t\t\t\t\t\tlet val;\n\n\t\t\t\t\t\t\t\tv = $( v );\n\t\t\t\t\t\t\t\tval = v.is( 'label' )\n\t\t\t\t\t\t\t\t\t? v.find( ':input' ).val()\n\t\t\t\t\t\t\t\t\t: v.data( 'rating' );\n\n\t\t\t\t\t\t\t\tif ( ! val ) {\n\t\t\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\ta.push( val );\n\n\t\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t\t}, [] )\n\t\t\t\t\t\t\t.join( ',' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'price_range':\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tif ( multiple ) {\n\t\t\t\t\t\tproperties.price_ranges = $dropdown.val().join( ',' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties.min_price = $dropdown\n\t\t\t\t\t\t\t.val()\n\t\t\t\t\t\t\t.split( '-' )[ 0 ];\n\t\t\t\t\t\tproperties.max_price = $dropdown\n\t\t\t\t\t\t\t.val()\n\t\t\t\t\t\t\t.split( '-' )[ 1 ];\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$active = $filter\n\t\t\t\t\t\t.find( '.filter-item' )\n\t\t\t\t\t\t.filter( '.active' )\n\t\t\t\t\t\t.children( 'a, label' );\n\n\t\t\t\t\tif ( multiple ) {\n\t\t\t\t\t\tproperties.price_ranges = $active\n\t\t\t\t\t\t\t.get()\n\t\t\t\t\t\t\t.reduce( ( a, v ) => {\n\t\t\t\t\t\t\t\tlet min = $( v ).data( 'range-min' ),\n\t\t\t\t\t\t\t\t\tmax = $( v ).data( 'range-max' );\n\n\t\t\t\t\t\t\t\ta += ( max ? `${ min }-${ max }` : min ) + ',';\n\n\t\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t\t}, '' )\n\t\t\t\t\t\t\t.replace( /^(.*),$/, '$1' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties.min_price = parseFloat(\n\t\t\t\t\t\t\t$active.first().data( 'range-min' )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tproperties.max_price = parseFloat(\n\t\t\t\t\t\t\t$active.first().data( 'range-max' )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'price_slider':\n\t\t\t\tproperties.min_price = parseFloat(\n\t\t\t\t\t$filter.find( '.price-slider-min' ).val()\n\t\t\t\t);\n\t\t\t\tproperties.max_price = parseFloat(\n\t\t\t\t\t$filter.find( '.price-slider-max' ).val()\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'stock_sale':\n\t\t\t\tif ( $filter.find( '.filter-on-sale' ).is( '.active' ) ) {\n\t\t\t\t\tproperties.onsale_filter = 1;\n\t\t\t\t}\n\t\t\t\tif ( $filter.find( '.filter-in-stock' ).is( '.active' ) ) {\n\t\t\t\t\tproperties.instock_filter = 1;\n\t\t\t\t}\n\t\t\t\tif ( $filter.find( '.filter-featured' ).is( '.active' ) ) {\n\t\t\t\t\tproperties.featured_filter = 1;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'orderby':\n\t\t\t\tproperties.orderby = $filter.find( '.filter-order-by' ).val();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tfilteredProperties = $filter.triggerHandler(\n\t\t\t'yith_wcan_filter_properties',\n\t\t\t[ properties, self ]\n\t\t);\n\t\tproperties =\n\t\t\ttypeof filteredProperties !== 'undefined'\n\t\t\t\t? filteredProperties\n\t\t\t\t: properties;\n\n\t\treturn properties;\n\t}\n\n\t// retrieves properties for all filters of the preset\n\tgetFiltersProperties() {\n\t\tlet properties = {};\n\t\tconst self = this;\n\n\t\tthis.getFilters().each( function () {\n\t\t\tconst $filter = $( this );\n\n\t\t\tif ( self.isFilterActive( $filter ) ) {\n\t\t\t\tconst filterProperties = self.getFilterProperties( $filter );\n\n\t\t\t\tproperties = self.mergeProperties(\n\t\t\t\t\tproperties,\n\t\t\t\t\tfilterProperties,\n\t\t\t\t\t$filter\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn properties;\n\t}\n\n\t// retrieve filters matching any of the properties passed\n\tgetFiltersByProperties( properties ) {\n\t\tconst self = this;\n\n\t\treturn this.getFilters().filter( function () {\n\t\t\tconst $filter = $( this );\n\n\t\t\tif ( self.isFilterActive( $filter ) ) {\n\t\t\t\tlet filterProperties = self.getFilterProperties( $filter ),\n\t\t\t\t\thasProp = false;\n\n\t\t\t\tfor ( const prop in properties ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t[ 'min_price', 'max_price', 'price_ranges' ].includes(\n\t\t\t\t\t\t\tprop\n\t\t\t\t\t\t) &&\n\t\t\t\t\t\t( filterProperties.min_price ||\n\t\t\t\t\t\t\tfilterProperties.price_ranges )\n\t\t\t\t\t) {\n\t\t\t\t\t\thasProp = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else if ( filterProperties[ prop ] ) {\n\t\t\t\t\t\thasProp = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn hasProp;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} );\n\t}\n\n\t// show clear selection anchor\n\tmaybeToggleClearFilter( $filter ) {\n\t\tif ( ! this.isFilterActive( $filter ) ) {\n\t\t\tthis.maybeHideClearFilter( $filter );\n\t\t} else {\n\t\t\tthis.maybeShowClearFilter( $filter );\n\t\t}\n\t}\n\n\t// show clear all selections anchor\n\tmaybeToggleClearAllFilters() {\n\t\tif ( ! this.isAnyFilterActive() ) {\n\t\t\tthis.maybeHideClearAllFilters();\n\t\t} else {\n\t\t\tthis.maybeShowClearAllFilters();\n\t\t}\n\t}\n\n\t// show clear selection anchor\n\tmaybeShowClearFilter( $filter ) {\n\t\tif (\n\t\t\t! this.isFilterActive( $filter ) ||\n\t\t\t! yith_wcan_shortcodes.show_clear_filter\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// remove clear selection link if already added.\n\t\t$filter.find( '.clear-selection' ).remove();\n\n\t\t// add new clear selection link.\n\t\t$( '<a/>', {\n\t\t\tclass: 'clear-selection',\n\t\t\ttext: yith_wcan_shortcodes.labels.clear_selection,\n\t\t\trole: 'button',\n\t\t} )\n\t\t\t.prependTo( $filter.find( '.filter-content' ) )\n\t\t\t.on( 'click', ( ev ) => {\n\t\t\t\tev.preventDefault();\n\n\t\t\t\tthis.deactivateFilter(\n\t\t\t\t\t$filter,\n\t\t\t\t\tfalse,\n\t\t\t\t\tyith_wcan_shortcodes.instant_filters\n\t\t\t\t);\n\t\t\t\tthis.maybeHideClearFilter( $filter );\n\n\t\t\t\tif ( yith_wcan_shortcodes.instant_filters ) {\n\t\t\t\t\tthis.closeModal();\n\t\t\t\t}\n\t\t\t} );\n\t}\n\n\t// show clearAll anchor, when on mobile layout\n\tmaybeShowClearAllFilters() {\n\t\tif ( ! this.isAnyFilterActive() || ! this.isMobile ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// remove clear selection link if already added.\n\t\tthis.$preset.find( '.clear-selection' ).remove();\n\n\t\t// add new clear selection link.\n\t\t$( '<a/>', {\n\t\t\tclass: 'clear-selection',\n\t\t\ttext: yith_wcan_shortcodes.labels.clear_all_selections,\n\t\t\trole: 'button',\n\t\t} )\n\t\t\t.prependTo( this.$preset.find( '.filters-container' ) )\n\t\t\t.on( 'click', ( ev ) => {\n\t\t\t\tev.preventDefault();\n\n\t\t\t\tthis.deactivateAllFilters(\n\t\t\t\t\tyith_wcan_shortcodes.instant_filters\n\t\t\t\t);\n\t\t\t\tthis.maybeHideClearAllFilters();\n\n\t\t\t\tif ( yith_wcan_shortcodes.instant_filters ) {\n\t\t\t\t\tthis.closeModal();\n\t\t\t\t}\n\t\t\t} );\n\t}\n\n\t// hide clear selection anchor\n\tmaybeHideClearFilter( $filter ) {\n\t\tif (\n\t\t\tthis.isFilterActive( $filter ) ||\n\t\t\t! yith_wcan_shortcodes.show_clear_filter\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// remove clear selection link.\n\t\t$filter.find( '.clear-selection' ).remove();\n\t}\n\n\t// show clearAll anchor, when on mobile layout\n\tmaybeHideClearAllFilters() {\n\t\tif ( this.isAnyFilterActive() ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// remove clear selection link.\n\t\tthis.$preset\n\t\t\t.find( '.filters-container' )\n\t\t\t.children( '.clear-selection' )\n\t\t\t.remove();\n\t}\n\n\t// deactivate filter\n\tdeactivateFilter( $filter, properties, doFilter ) {\n\t\tconst filterType = $filter.data( 'filter-type' ),\n\t\t\t$items = $filter.find( '.filter-item' ),\n\t\t\t$activeItems = $items.filter( '.active' ),\n\t\t\t$dropdown = $filter.find( '.filter-dropdown' );\n\n\t\tswitch ( filterType ) {\n\t\t\tcase 'tax':\n\t\t\t\tconst taxonomy = $filter.data( 'taxonomy' );\n\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tif ( ! properties ) {\n\t\t\t\t\t\t$dropdown.find( 'option' ).prop( 'selected', false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$dropdown.find( 'option' ).each( function () {\n\t\t\t\t\t\t\tconst $option = $( this );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t$option.val().toString() ===\n\t\t\t\t\t\t\t\tproperties[ taxonomy ].toString()\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t$option.prop( 'selected', false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\t$dropdown.change();\n\t\t\t\t} else if ( ! properties ) {\n\t\t\t\t\t$activeItems.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t$activeItems.removeClass( 'active' );\n\t\t\t\t} else {\n\t\t\t\t\t$activeItems.each( function () {\n\t\t\t\t\t\tlet $item = $( this ),\n\t\t\t\t\t\t\t$label = $item.children( 'label' ),\n\t\t\t\t\t\t\t$anchor = $item.children( 'a' ),\n\t\t\t\t\t\t\tvalue;\n\n\t\t\t\t\t\tvalue = $label.length\n\t\t\t\t\t\t\t? $label.find( ':input' ).val()\n\t\t\t\t\t\t\t: $anchor.data( 'term-slug' );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tvalue.toString() ===\n\t\t\t\t\t\t\tproperties[ taxonomy ].toString()\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t$item.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t\t\t$item.removeClass( 'active' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'review':\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tif ( ! properties ) {\n\t\t\t\t\t\t$dropdown.find( 'option' ).prop( 'selected', false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$dropdown.find( 'option' ).each( function () {\n\t\t\t\t\t\t\tconst $option = $( this );\n\n\t\t\t\t\t\t\tif ( $option.val() === properties.rating_filter ) {\n\t\t\t\t\t\t\t\t$option.prop( 'selected', false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\t$dropdown.change();\n\t\t\t\t} else if ( ! properties ) {\n\t\t\t\t\t$activeItems.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t$activeItems.removeClass( 'active' );\n\t\t\t\t} else {\n\t\t\t\t\t$activeItems.each( function () {\n\t\t\t\t\t\tlet $item = $( this ),\n\t\t\t\t\t\t\t$label = $item.children( 'label' ),\n\t\t\t\t\t\t\t$anchor = $item.children( 'a' ),\n\t\t\t\t\t\t\tvalue;\n\n\t\t\t\t\t\tvalue = $label.length\n\t\t\t\t\t\t\t? $label.find( ':input' ).val()\n\t\t\t\t\t\t\t: $anchor.data( 'rating' );\n\n\t\t\t\t\t\tif ( value === properties.rating_filter ) {\n\t\t\t\t\t\t\t$item.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t\t\t$item.removeClass( 'active' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'price_range':\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tif ( ! properties ) {\n\t\t\t\t\t\t$dropdown.find( 'option' ).prop( 'selected', false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$dropdown.find( 'option' ).each( function () {\n\t\t\t\t\t\t\tconst $option = $( this ),\n\t\t\t\t\t\t\t\tformattedRange =\n\t\t\t\t\t\t\t\t\tproperties.min_price +\n\t\t\t\t\t\t\t\t\t( properties.max_price\n\t\t\t\t\t\t\t\t\t\t? `-${ properties.max_price }`\n\t\t\t\t\t\t\t\t\t\t: '' );\n\n\t\t\t\t\t\t\tif ( $option.val() === formattedRange ) {\n\t\t\t\t\t\t\t\t$option.prop( 'selected', false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\t$dropdown.change();\n\t\t\t\t} else if ( ! properties ) {\n\t\t\t\t\t$activeItems.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t$activeItems.removeClass( 'active' );\n\t\t\t\t} else {\n\t\t\t\t\t$activeItems.each( function () {\n\t\t\t\t\t\tlet $item = $( this ),\n\t\t\t\t\t\t\t$label = $item.children( 'label' ),\n\t\t\t\t\t\t\t$anchor = $item.children( 'a' ),\n\t\t\t\t\t\t\tformattedRange,\n\t\t\t\t\t\t\tvalue;\n\n\t\t\t\t\t\tvalue = $label.length\n\t\t\t\t\t\t\t? $label.find( ':input' ).val()\n\t\t\t\t\t\t\t: $anchor.data( 'min_price' ) +\n\t\t\t\t\t\t\t ( $anchor.data( 'max_price' )\n\t\t\t\t\t\t\t\t\t? '-' + $anchor.data( 'max_price' )\n\t\t\t\t\t\t\t\t\t: '' );\n\n\t\t\t\t\t\tif ( properties.min_price ) {\n\t\t\t\t\t\t\tformattedRange =\n\t\t\t\t\t\t\t\tproperties.min_price +\n\t\t\t\t\t\t\t\t( properties.max_price\n\t\t\t\t\t\t\t\t\t? '-' + properties.max_price\n\t\t\t\t\t\t\t\t\t: '' );\n\t\t\t\t\t\t} else if ( properties.price_ranges ) {\n\t\t\t\t\t\t\tformattedRange = properties.price_ranges;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( value === formattedRange ) {\n\t\t\t\t\t\t\t$item.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t\t\t$item.removeClass( 'active' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'price_slider':\n\t\t\t\tconst $priceSlider = $filter.find( '.price-slider' );\n\n\t\t\t\t$filter\n\t\t\t\t\t.find( '.price-slider-min' )\n\t\t\t\t\t.val( $priceSlider.data( 'min' ) );\n\t\t\t\t$filter\n\t\t\t\t\t.find( '.price-slider-max' )\n\t\t\t\t\t.val( $priceSlider.data( 'max' ) )\n\t\t\t\t\t.change();\n\t\t\t\tbreak;\n\t\t\tcase 'orderby':\n\t\t\t\t$filter.find( 'select' ).val( 'menu_order' );\n\t\t\t\tbreak;\n\t\t\tcase 'stock_sale':\n\t\t\t\tif ( ! properties ) {\n\t\t\t\t\t$filter\n\t\t\t\t\t\t.find( '.filter-in-stock' )\n\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t.change();\n\t\t\t\t\t$filter\n\t\t\t\t\t\t.find( '.filter-on-sale' )\n\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t.change();\n\t\t\t\t\t$filter\n\t\t\t\t\t\t.find( '.filter-featured' )\n\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t.change();\n\n\t\t\t\t\t$items.removeClass( 'active' );\n\t\t\t\t} else {\n\t\t\t\t\tif ( properties?.instock_filter ) {\n\t\t\t\t\t\t$filter\n\t\t\t\t\t\t\t.find( '.filter-in-stock' )\n\t\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t\t.change()\n\t\t\t\t\t\t\t.closest( '.filter-item' )\n\t\t\t\t\t\t\t.removeClass( 'active' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( properties?.onsale_filter ) {\n\t\t\t\t\t\t$filter\n\t\t\t\t\t\t\t.find( '.filter-on-sale' )\n\t\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t\t.change()\n\t\t\t\t\t\t\t.closest( '.filter-item' )\n\t\t\t\t\t\t\t.removeClass( 'active' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( properties?.featured_filter ) {\n\t\t\t\t\t\t$filter\n\t\t\t\t\t\t\t.find( '.filter-featured' )\n\t\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t\t.change()\n\t\t\t\t\t\t\t.closest( '.filter-item' )\n\t\t\t\t\t\t\t.removeClass( 'active' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t$items.removeClass( 'active' );\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.activeFilters = false;\n\n\t\tif ( doFilter ) {\n\t\t\tthis.filter();\n\t\t}\n\t}\n\n\t// deactivate all filters\n\tdeactivateAllFilters( doFilter ) {\n\t\tconst self = this,\n\t\t\t$filters = this.getFilters();\n\n\t\t$filters.each( function () {\n\t\t\tconst $filter = $( this );\n\n\t\t\tself.deactivateFilter( $filter );\n\t\t} );\n\n\t\tthis.activeFilters = false;\n\n\t\tif ( doFilter ) {\n\t\t\tthis.filter();\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t// deactivate filters that matches a specific set of properties\n\tdeactivateFilterByProperties( properties, doFilter ) {\n\t\tconst self = this,\n\t\t\t$filters = this.getFiltersByProperties( properties );\n\n\t\tif ( ! $filters.length ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t$filters.each( function () {\n\t\t\tconst $filter = $( this );\n\n\t\t\tself.deactivateFilter( $filter, properties, doFilter );\n\t\t} );\n\n\t\treturn true;\n\t}\n\n\t// open filters as a modal, when in mobile layout\n\topenModal() {\n\t\tif ( ! this.isMobile ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( yith_wcan_shortcodes.toggles_open_on_modal ) {\n\t\t\tthis._openAllCollapsables();\n\t\t} else {\n\t\t\tthis._closeAllCollapsables();\n\t\t}\n\n\t\t$( 'body' )\n\t\t\t.css( 'overflow', 'hidden' )\n\t\t\t.addClass( 'yith-wcan-preset-modal-open' );\n\n\t\tthis.$preset.show();\n\n\t\tsetTimeout( () => {\n\t\t\tthis.$preset.addClass( 'open' );\n\t\t}, 100 );\n\t}\n\n\t// close filters modal, when in mobile layout\n\tcloseModal() {\n\t\tif ( ! this.isMobile ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.$preset.removeClass( 'open' );\n\n\t\tsetTimeout( () => {\n\t\t\tthis.$preset.hide();\n\t\t\t$( 'body' )\n\t\t\t\t.css( 'overflow', 'auto' )\n\t\t\t\t.removeClass( 'yith-wcan-preset-modal-open' );\n\t\t}, 300 );\n\t}\n\n\t// utility that formats the price according to store configuration.\n\tformatPrice( price ) {\n\t\tif ( 'undefined' !== typeof accounting ) {\n\t\t\tprice = accounting.formatMoney( price, {\n\t\t\t\tsymbol: yith_wcan_shortcodes.currency_format?.symbol,\n\t\t\t\tdecimal: yith_wcan_shortcodes.currency_format?.decimal,\n\t\t\t\tthousand: yith_wcan_shortcodes.currency_format?.thousand,\n\t\t\t\tprecision: 0,\n\t\t\t\tformat: yith_wcan_shortcodes.currency_format?.format,\n\t\t\t} );\n\t\t}\n\n\t\treturn price;\n\t}\n\n\t// utility that merges together sets of filter properties\n\tmergeProperties( set1, set2, $filter ) {\n\t\t// search for common properties\n\t\tfor ( const prop in set2 ) {\n\t\t\tif ( ! set2.hasOwnProperty( prop ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( !! set1[ prop ] ) {\n\t\t\t\tswitch ( prop ) {\n\t\t\t\t\tcase 'rating_filter':\n\t\t\t\t\tcase 'min_price':\n\t\t\t\t\tcase 'max_price':\n\t\t\t\t\tcase 'onsale_filter':\n\t\t\t\t\tcase 'instock_filter':\n\t\t\t\t\tcase 'orderby':\n\t\t\t\t\t\t// just override default value\n\t\t\t\t\t\tset1[ prop ] = set2[ prop ];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif ( 0 === prop.indexOf( 'query_type_' ) ) {\n\t\t\t\t\t\t\t// query_type param\n\t\t\t\t\t\t\tset1[ prop ] = set2[ prop ];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// we're dealing with taxonomy\n\t\t\t\t\t\t\tconst isAttr = 0 === prop.indexOf( 'filter_' ),\n\t\t\t\t\t\t\t\tglue = isAttr ? ',' : '+';\n\n\t\t\t\t\t\t\tlet newValue =\n\t\t\t\t\t\t\t\tset1[ prop ].replace( ',', glue ) +\n\t\t\t\t\t\t\t\tglue +\n\t\t\t\t\t\t\t\tset2[ prop ].replace( ',', glue );\n\n\t\t\t\t\t\t\tnewValue = newValue\n\t\t\t\t\t\t\t\t.split( glue )\n\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t( value, index, arr ) =>\n\t\t\t\t\t\t\t\t\t\tarr.indexOf( value ) === index\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( glue );\n\n\t\t\t\t\t\t\tset1[ prop ] = newValue;\n\n\t\t\t\t\t\t\tif ( isAttr ) {\n\t\t\t\t\t\t\t\tconst queryTypeParam = prop.replace(\n\t\t\t\t\t\t\t\t\t'filter_',\n\t\t\t\t\t\t\t\t\t'query_type_'\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tset1[ queryTypeParam ] = 'and';\n\t\t\t\t\t\t\t\tset2[ queryTypeParam ] = 'and';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tdelete set2[ prop ];\n\t\t\t}\n\t\t}\n\n\t\t$.extend( set1, set2 );\n\n\t\treturn set1;\n\t}\n}\n","'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nimport YITH_WCAN_Filter from './modules/yith-wcan-filter';\nimport YITH_WCAN_Reset_Button from './modules/yith-wcan-reset-button';\nimport YITH_WCAN_Preset from './modules/yith-wcan-preset';\n\njQuery( function ( $ ) {\n\t$( document )\n\t\t.on(\n\t\t\t'yith_wcan_init_shortcodes yith_plugin_fw_gutenberg_success_do_shortcode',\n\t\t\tfunction () {\n\t\t\t\t$( '.yith-wcan-filters' )\n\t\t\t\t\t.not( '.enhanced' )\n\t\t\t\t\t.each( function () {\n\t\t\t\t\t\tnew YITH_WCAN_Preset( $( this ) );\n\t\t\t\t\t} );\n\n\t\t\t\t$( '.yith-wcan-reset-filters' )\n\t\t\t\t\t.not( '.enhanced' )\n\t\t\t\t\t.each( function () {\n\t\t\t\t\t\tnew YITH_WCAN_Reset_Button( $( this ) );\n\t\t\t\t\t} );\n\t\t\t}\n\t\t)\n\t\t.trigger( 'yith_wcan_init_shortcodes' );\n\n\tglobalThis.product_filter = new YITH_WCAN_Filter();\n} );\n"],"sourceRoot":""}
|
assets/js/yith-wcan-shortcodes.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
(()=>{"use strict";var e=jQuery,t=e("body");function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var l=function(){function l(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),n(this,"xhr",null),n(this,"doingAjax",!1),n(this,"originalSearch",location.search),n(this,"initialized",!1),n(this,"filtered",!1),this.initPopState(),this.initialized=!0}var r,s,o;return r=l,(s=[{key:"initPopState",value:function(){this.pushUrlToHistory(window.location,document.title,null,!0),e(window).on("popstate",(function(){var e;null!==(e=window.history.state)&&void 0!==e&&e._yithWcan&&window.location.reload(!0)}))}},{key:"doFilter",value:function(t,i,a){var n,l,r=this,s=e(i||"body");return(l=e(document).triggerHandler("yith_wcan_filters_parameters",[t]))&&(t=l),s&&this.block(s),n=this.buildUrl(t),yith_wcan_shortcodes.ajax_filters?(this.doingAjax=!0,this._doAjax(n).done((function(e){n=r.searchAlternativeUrl(e,n),r._beforeFilter(e,t),r.refreshFragments(i,a,e),r.pushUrlToHistory(n,e.pageTitle,t),r.originalSearch=location.search,s&&r.unblock(s),r._afterFilter(e,t),r.doingAjax=!1}))):(this.pushUrlToHistory(n,document.title,t),void(window.location=n))}},{key:"_beforeFilter",value:function(t,i){e(document).trigger("yith-wcan-ajax-loading",[t,i])}},{key:"_afterFilter",value:function(i,a){e(".woocommerce-ordering").on("change","select.orderby",(function(){e(this).closest("form").submit()})),this.filtered=a&&!!Object.keys(a).length,this.filtered?t.addClass("filtered"):t.removeClass("filtered"),e(window).trigger("scroll"),e(document).trigger("yith-wcan-ajax-filtered",[i,a]).trigger("yith_wcwl_reload_fragments")}},{key:"buildUrl",value:function(t){var a,n=this,l=yith_wcan_shortcodes.query_param,r={},s=window.location,o=yith_wcan_shortcodes.base_url?yith_wcan_shortcodes.base_url:(null==s?void 0:s.origin)+(null==s?void 0:s.pathname),c=this,h="object"===i(t)&&Object.keys(t).length;if(yith_wcan_shortcodes.session_param&&(o=o.replace(new RegExp("/"+yith_wcan_shortcodes.session_param+"/[^/]*/"),"")),h&&(r[l]=1),this.originalSearch){var d=this.originalSearch.replace("?","").split("&").reduce((function(e,t){var i=t.split("=");if(2===i.length){if(n.isFilterParam(i[0]))return e;e[i[0]]=i[1]}return e}),{});r=e.extend(r,d)}return h&&(r=e.extend(r,t)),(a=Object.keys(r).reduce((function(e,t){var i=r[t];return i&&t?e+=c._cleanParam(t)+"="+c._cleanParam(i)+"&":e}),"?").replace(/&$/g,"").replace(/%2B/g,"+").replace(/%2C/g,",")).length>1&&(o+=a),o}},{key:"searchAlternativeUrl",value:function(e){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",a=i;return-1===e.indexOf("yith_wcan:sharing_url")?a:a=(t=e.match(/<meta name="yith_wcan:sharing_url" content="([^"]*)">/))&&1 in t?t[1]:a}},{key:"pushUrlToHistory",value:function(e,t,i,a){if(yith_wcan_shortcodes.change_browser_url&&!navigator.userAgent.match(/msie/i)){var n="pushState";a&&(n="replaceState"),window.history[n]({_yithWcan:!0,pageTitle:t,filters:i},"",e)}}},{key:"refreshFragments",value:function(t,i,a){var n=document.createElement("html"),l=e(n);if(n.innerHTML=a,t){var r,s=e(i),o=e(t);s.length&&(r=l.find(i)).length&&s.replaceWith(r.first()),o.length&&(r=l.find(t)).length&&o.replaceWith(r.first())}else{var c=e(yith_wcan_shortcodes.content);c.length?c.replaceWith(l.find(yith_wcan_shortcodes.content)):e("body").replaceWith(l.find("body"))}e(document).trigger("yith_wcan_init_shortcodes")}},{key:"_cleanParam",value:function(e){var t,i;return null===(t=yith_wcan_shortcodes)||void 0===t||!t.process_sanitize||null!==(i=yith_wcan_shortcodes)&&void 0!==i&&i.skip_sanitize?e:encodeURIComponent(e)}},{key:"_doAjax",value:function(t,i){return this.xhr&&this.xhr.abort(),i=e.extend({url:t,headers:{"X-YITH-WCAN":1}},i),this.xhr=e.ajax(i),this.xhr}},{key:"block",value:function(t){var i;if(void 0!==e.fn.block){var a="#fff center center no-repeat";null!==(i=yith_wcan_shortcodes)&&void 0!==i&&i.loader&&(a="url('".concat(yith_wcan_shortcodes.loader,"') ").concat(a)),t.block({message:null,overlayCSS:{background:a,opacity:.7}})}}},{key:"unblock",value:function(t){void 0!==e.fn.unblock&&t.unblock()}},{key:"isFilterParam",value:function(t){var i,a=["rating_filter","min_price","max_price","price_ranges","onsale_filter","instock_filter","featured_filter","orderby","product-page",yith_wcan_shortcodes.query_param];return(i=e(document).triggerHandler("yith_wcan_supported_filters_parameters",[a]))&&(a=i),-1!==(a=a.concat(yith_wcan_shortcodes.supported_taxonomies.map((function(e){return e.replace("pa_","filter_")})))).indexOf(t)||-1!==t.indexOf("filter_")||-1!==t.indexOf("query_type_")}}])&&a(r.prototype,s),o&&a(r,o),l}();var r=function t(i){var a,n,l;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),l=null,(n="$reset")in(a=this)?Object.defineProperty(a,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):a[n]=l,this.$reset=i,this.$reset.on("click",(function(t){t.preventDefault(),e(".yith-wcan-filters").each((function(){var t=e(this).data("preset");t.deactivateAllFilters(!0),t.closeModal()}))})),this.$reset.data("reset",this).addClass("enhanced")};function s(e,t){var i="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);"Object"===i&&e.constructor&&(i=e.constructor.name);if("Map"===i||"Set"===i)return Array.from(e);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return o(e,t)}(e))||t&&e&&"number"==typeof e.length){i&&(e=i);var a=0,n=function(){};return{s:n,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,r=!0,s=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return r=e.done,e},e:function(e){s=!0,l=e},f:function(){try{r||null==i.return||i.return()}finally{if(s)throw l}}}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,a=new Array(t);i<t;i++)a[i]=e[i];return a}function c(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function h(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var d=function(){function t(i,a){var n,l,r,s;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),h(this,"$originalSelect",null),h(this,"$_main",null),h(this,"$_label",null),h(this,"$_dropdown",null),h(this,"$_search",null),h(this,"$_showMore",null),h(this,"$_items",null),h(this,"currentPage",1),h(this,"options",{}),this.$originalSelect=i,this.$originalSelect.is("select")){var o=this.$originalSelect.data("per_page"),c=this.$originalSelect.data("order"),d=this.$originalSelect.data("all-label"),u={showSearch:this.$originalSelect.data("show_search"),paginate:this.$originalSelect.data("paginate"),perPage:o||10,order:c||"ASC",getElements:null,labels:{emptyLabel:d||(null===(n=yith_wcan_shortcodes.labels)||void 0===n?void 0:n.empty_option),searchPlaceholder:null===(l=yith_wcan_shortcodes.labels)||void 0===l?void 0:l.search_placeholder,noItemsFound:null===(r=yith_wcan_shortcodes.labels)||void 0===r?void 0:r.no_items,showMore:null===(s=yith_wcan_shortcodes.labels)||void 0===s?void 0:s.show_more}};this.options=e.extend(u,a),this._hideSelect(),this._initTemplate(),this._initActions(),this.$originalSelect.data("dropdown",this).addClass("enhanced")}}var i,a,n;return i=t,(a=[{key:"_hideSelect",value:function(){this.$originalSelect.hide()}},{key:"_initTemplate",value:function(){var t=e("<div/>",{class:"yith-wcan-dropdown closed"}),i=e("<div/>",{class:"dropdown-label",html:this.getLabel()}),a=e("<div>",{class:"dropdown-wrapper"}),n=e("<ul/>",{class:"matching-items filter-items"});a.append(n),t.append(i).append(a),this.options.showSearch&&this._initSearchTemplate(a),this.options.paginate&&this._initShowMoreTemplate(a),this.$originalSelect.after(t),this.$_main=t,this.$_label=i,this.$_dropdown=a,this.$_items=n}},{key:"_initSearchTemplate",value:function(t){var i=e("<div/>",{class:"search-field-container"}),a=e("<input/>",{name:"s",class:"search-field",type:"search",placeholder:this.options.labels.searchPlaceholder});i.append(a).prependTo(t),this.$_search=a}},{key:"_initShowMoreTemplate",value:function(t){var i,a=e("<a/>",{class:"show-more",text:null===(i=this.options.labels.showMore)||void 0===i?void 0:i.replace("%d",this.options.perPage)});a.on("click",this.loadNextPage.bind(this)).hide(),t.append(a),this.$_showMore=a}},{key:"_initActions",value:function(){var t,i,a=this;null===(t=this.$_main)||void 0===t||t.on("click",(function(e){e.stopPropagation(),a.toggleDropdown()})),this.$_dropdown.on("click",(function(e){e.stopPropagation()})),null===(i=this.$_search)||void 0===i||i.on("keyup search",(function(){a._populateItems()})),this.$_items.on("change",":input",(function(){var t,i=e(this).closest("li"),n=i.data("value");if(i.hasClass("disabled")&&!a.isValueSelected(n))return!1;i.toggleClass("active"),t=i.hasClass("active"),a._changeItemStatus(n,t)})),this.$_items.on("click","li:not(.checkbox) a",(function(t){var i,n=e(this).closest("li"),l=n.data("value");if(t.preventDefault(),n.hasClass("disabled")&&!a.isValueSelected(l))return!1;n.toggleClass("active"),(i=n.hasClass("active"))&&n.siblings().removeClass("active"),a._changeItemStatus(l,i)})),this.$_items.on("click","label > a",(function(t){var i=e(this).parent().find(":input");t.preventDefault(),(i.is('[type="radio"]')||i.is('[type="checkbox"]'))&&i.prop("checked",!i.prop("checked")),i.change()})),this.$originalSelect.on("change",(function(t,i){i||(a.$_items.find("li").each((function(){var t=e(this).data("value");a.isValueSelected(t)?a._selectItem(t):a._deselectItem(t)})),a.updateLabel())})),null!==globalThis&&void 0!==globalThis&&globalThis.yith_wcan_dropdown_init||(e(document).on("click",this._closeAllDropdowns),globalThis.yith_wcan_dropdown_init=!0)}},{key:"openDropdown",value:function(){var e;null===(e=this.$_main)||void 0===e||e.addClass("open").removeClass("closed"),this._afterDropdownOpen()}},{key:"closeDropdown",value:function(){var e;null===(e=this.$_main)||void 0===e||e.removeClass("open").addClass("closed")}},{key:"_closeAllDropdowns",value:function(){e(document).find("select.enhanced").filter((function(t,i){return!!e(i).data("dropdown")})).each((function(){e(this).data("dropdown").closeDropdown()}))}},{key:"_closeOtherDropdowns",value:function(){var t=this;e(document).find("select.enhanced").filter((function(i,a){var n=e(a);return!!n.data("dropdown")&&!n.is(t.$originalSelect)})).each((function(){e(this).data("dropdown").closeDropdown()}))}},{key:"toggleDropdown",value:function(){var e,t;null===(e=this.$_main)||void 0===e||e.toggleClass("open").toggleClass("closed"),null!==(t=this.$_main)&&void 0!==t&&t.hasClass("open")&&this._afterDropdownOpen()}},{key:"_afterDropdownOpen",value:function(){var e;this._closeOtherDropdowns(),null!==(e=this.$_search)&&void 0!==e&&e.length&&this.$_search.val(""),this._populateItems()}},{key:"getMatchingElements",value:function(t,i){var a=this,n=[],l=this.getOptions();return new Promise((function(r){l.each((function(){var i=e(this),a=i.val(),l=i.html(),r=new RegExp(".*"+t+".*","i");(!t||r.test(a)||r.test(l))&&n.push({value:a,label:l})})),a.options.getElements?a.options.getElements(t).then((function(t){t&&(t=t.reduce((function(e,t,i){return e.push({label:i,value:t}),e}),[]),n=e.extend(n,t)),r(a._formatItems(n,i))})):r(a._formatItems(n,i))}))}},{key:"_formatItems",value:function(e,t){var i=this,a=[],n=!1;return e.filter((function(e){return-1===a.indexOf(e.value)&&(a.push(e.value),!0)})).sort((function(e,t){var a="ASC"===i.options.order?1:-1;return e.value<t.value?-1*a:e.value>t.value?a:0})),t&&(n=t<Object.keys(e).length,e=e.slice(0,t)),{items:e,hasMore:n}}},{key:"_generateItem",value:function(t,i){var a,n=this.isValueSelected(t),l=this.getOptionByValue(t),r=e("<li/>",{"data-value":t,class:l.length?l.attr("class"):""});if(l.length){var s=l.data("template"),o=l.data("count");i=s||i,o&&(i+=o)}if(a=e("<a/>",{href:l.length?l.data("filter_url"):"#",html:i,rel:"nofollow","data-title":l.length?l.data("title"):""}),this.$originalSelect.prop("multiple")){var c=e("<input/>",{type:"checkbox",value:t}),h=e("<label>");c.prop("checked",n),h.prepend(c).append(a),r.append(h).addClass("checkbox")}else r.append(a);return n?r.addClass("active"):r.removeClass("active"),r}},{key:"_populateItems",value:function(t){var i,a,n=this,l=null!==(i=this.$_search)&&void 0!==i&&i.length?this.$_search.val():"",r=this.options.paginate?this.options.perPage:0;a=(t=t?parseInt(t):1)*r,this.getMatchingElements(l,a).then((function(i){var a=i.items,l=[],r=!1;if(n._emptyItems(),n._hideLoadMore(),a.length){var o,c=s(a);try{for(c.s();!(o=c.n()).done;){var h=o.value;""===h.value?l.unshift(n._generateItem(h.value,h.label)):l.push(n._generateItem(h.value,h.label))}}catch(e){c.e(e)}finally{c.f()}n.currentPage=t,r=i.hasMore}else l.push(e("<li/>",{text:n.options.labels.noItemsFound})),n.currentPage=1;n.$_items.append(l),n.$originalSelect.trigger("yith_wcan_dropdown_updated"),r&&n._showLoadMore()}))}},{key:"loadNextPage",value:function(){var e=this.currentPage+1;this._populateItems(e)}},{key:"_selectItem",value:function(e){return this._changeItemStatus(e,!0)}},{key:"_deselectItem",value:function(e){return this._changeItemStatus(e,!1)}},{key:"_changeItemStatus",value:function(e,t){var i=this.$originalSelect.find('option[value="'.concat(e,'"]'));return!!i.length&&(i.prop("selected",t),this.closeDropdown(),this.updateLabel(),this.$originalSelect.trigger("change",[!0]),!0)}},{key:"_emptyItems",value:function(){this.$_items.html("")}},{key:"_showLoadMore",value:function(){this.$_showMore.show()}},{key:"_hideLoadMore",value:function(){this.$_showMore.hide()}},{key:"getLabel",value:function(){return this.hasSelectedValues()?this.getSelectedLabels().join(", "):this.options.labels.emptyLabel}},{key:"updateLabel",value:function(){var e,t=this.getLabel();null===(e=this.$_label)||void 0===e||e.html(t)}},{key:"getOptions",value:function(){return this.$originalSelect.find("option")}},{key:"hasSelectedValues",value:function(){return this.getSelectedOptions().length}},{key:"isValueSelected",value:function(e){return-1!==this.getSelectedValues().indexOf(e.toString())}},{key:"getSelectedOptions",value:function(){return this.$originalSelect.find("option").filter(":selected")}},{key:"getOptionByValue",value:function(e){return this.$originalSelect.find('option[value="'.concat(e,'"]'))}},{key:"getSelectedLabels",value:function(){var t=[];return this.getSelectedOptions().each((function(){var i=e(this),a=i.data("template");a=a||i.html().replace(/\([0-9]*\)/,""),t.push(a)})),t}},{key:"getSelectedValues",value:function(){var t=[];return this.getSelectedOptions().each((function(){t.push(e(this).val())})),t}},{key:"destroy",value:function(){}}])&&c(i.prototype,a),n&&c(i,n),t}();function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function p(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var v=function(){function t(i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),p(this,"preset",!1),p(this,"$preset",!1),p(this,"target",!1),p(this,"$target",!1),p(this,"$filters",!1),p(this,"$filterButtons",!1),p(this,"modalElements",{}),p(this,"activeFilters",!1),p(this,"isMobile",!1),p(this,"sliderTimeout",!1),p(this,"originalFilters",null),p(this,"dirty",!1),this.preset="#"+i.attr("id"),this.$preset=i,this.target=this.$preset.data("target"),this.$target=!!this.target&&e(this.target),this._regiterStatus(),this._initFilterButton(),this._initResponsive(),this._initFilters(),this._initActions(),this.$preset.data("preset",this).addClass("enhanced").trigger("yith_wcan_preset_initialized",[this])}var i,a,n;return i=t,(a=[{key:"_initFilters",value:function(){var t=this;this.getFilters().each((function(){var i=e(this);t._initFilter(i)})),this.maybeShowClearAllFilters()}},{key:"_initFilterButton",value:function(){var e=this;this.$filterButtons=this.$preset.find(".apply-filters"),this.$filterButtons.length&&this.$filterButtons.on("click",(function(t){t.preventDefault(),e.filter()})).hide()}},{key:"_initActions",value:function(){this.$preset.find("form").on("submit",(function(e){e.preventDefault()}))}},{key:"_initResponsive",value:function(){var t=this;if(yith_wcan_shortcodes.modal_on_mobile){var i=window.matchMedia("(max-width: ".concat(yith_wcan_shortcodes.mobile_media_query,"px)"));e(window).on("resize",(function(){var e=!!i.matches;e!==t.isMobile&&(t.isMobile=e,t._afterLayoutChange())})).resize()}}},{key:"_initFilter",value:function(t){var i,a=this,n=function(i){var n=e(this),l=n.closest(".yith-wcan-filter"),r=!!l.length&&"yes"===l.data("multiple"),s=n.closest(".filter-item"),o=s.length?l.find(".filter-item").not(s):[];if(s.is(".disabled")&&!s.is(".active"))return i.preventDefault(),!1;i.preventDefault(),o.length&&!r&&o.removeClass("active").children("label").find(":input").prop("checked",!1).parent(".checked").removeClass("checked"),s.length&&s.toggleClass("active"),a.activeFilters=!1,a.maybeFilter(t),a.maybeToggleClearAllFilters(),a.maybeToggleClearFilter(l)};t.find(".filter-item").not(".checkbox").not(".radio").on("click","a",(function(t){var i=e(this).closest(".filter-item");if(!e(null==t?void 0:t.delegateTarget).is(i))return!1;n.call(this,t)})),t.find(":input").on("change",(function(t){var i=e(this),a=i.closest(".filter-item");if(a.is(".disabled")&&!a.is(".active"))return i.prop("checked",!1),!1;n.call(this,t)})),t.find("label > a").on("click",(function(t){var i=e(this),a=i.closest(".filter-item");if(t.preventDefault(),a.is(".disabled")&&!a.is(".active"))return!1;var n=i.parent().find(":input");(n.is('[type="radio"]')||n.is('[type="checkbox"]'))&&n.prop("checked",!n.prop("checked")),n.change()})),this._initTooltip(t),this._initPriceSlider(t),this._initDropdown(t),this._initCollapsable(t),this.maybeShowClearFilter(t),null!==(i=this.$preset)&&void 0!==i&&i.hasClass("custom-style")&&(this._initCustomInput(t),t.on("yith_wcan_dropdown_updated",(function(){var t=e(this).closest(".yith-wcan-filter");a._initCustomInput(t)})))}},{key:"_initTooltip",value:function(t,i){t.find("[data-title]").each((function(){var t=e(this);!t.hasClass("tooltip-added")&&t.data("title")&&(t.on("mouseenter",(function(){var t,a=e(this),n=null,l=a.outerWidth(),r=0;if(!i||"top"!==i&&"right"!==i){var s=a.closest(".filter-item");i=s.hasClass("color")||s.hasClass("label")?"top":"right"}n=e("<span>",{class:"yith-wcan-tooltip",html:a.data("title")}),a.append(n),t=n.outerWidth()+6,n.outerWidth(t),r="top"===i?(l-t)/2:l+15,n.css({left:r.toFixed(0)+"px"}).fadeIn(200),a.addClass("with-tooltip")})).on("mouseleave",(function(){var t=e(this);t.find(".yith-wcan-tooltip").fadeOut(200,(function(){t.removeClass("with-tooltip").find(".yith-wcan-tooltip").remove()}))})),t.addClass("tooltip-added"))}))}},{key:"_initDropdown",value:function(t){var i=t.find("select.filter-dropdown");i.length&&(i.hasClass("select2-hidden-accessible")&&void 0!==e.fn.selectWoo&&i.selectWoo("destroy"),this._initDropdownObject(i,{paginate:!0,perPage:yith_wcan_shortcodes.terms_per_page}))}},{key:"_initDropdownObject",value:function(e,t){return new d(e,t)}},{key:"_initPriceSlider",value:function(e){var t=this;if(e.hasClass("filter-price-slider")){var i=this,a=e.find(".price-slider"),n=a.find(".price-slider-min"),l=a.find(".price-slider-max"),r=parseFloat(a.data("min")),s=parseFloat(a.data("max")),o=parseFloat(n.val()),c=parseFloat(l.val()),h=parseFloat(a.data("step")),d=function(){i.sliderTimeout&&clearTimeout(i.sliderTimeout),i.sliderTimeout=setTimeout((function(){i.maybeFilter(e)}),200)};e.find(".price-slider-ui").ionRangeSlider({skin:"round",type:"double",min:r,max:s,step:h,from:o,to:c,min_interval:h,values_separator:" - ",prettify:function(e){return t.formatPrice(e)},onChange:function(e){n.val(e.from),l.val(e.to)},onFinish:d}),n.add(l).off("change").on("keyup",(function(){n.val()&&l.val()&&d()}))}}},{key:"_initCollapsable",value:function(e){this._initTitleCollapsable(e),this._initHierarchyCollapsable(e)}},{key:"_initTitleCollapsable",value:function(e){var t=e.find(".collapsable");t.length&&this._initToggle(t,t,e.find(".filter-content"))}},{key:"_initHierarchyCollapsable",value:function(t){var i=t.find(".hierarchy-collapsable");if(i.length){var a=this,n=t.find(".active");n.length&&(n.parents(".hierarchy-collapsable").removeClass("closed").addClass("opened"),n.hasClass("hierarchy-collapsable")&&yith_wcan_shortcodes.show_current_children&&n.removeClass("closed").addClass("opened")),i.each((function(){var t=e(this),i=e("<span/>",{class:"toggle-handle"});i.appendTo(t),a._initToggle(i,t,t.children("ul.filter-items"))}))}}},{key:"_initToggle",value:function(e,t,i){t.hasClass("closed")&&i.hide(),e.off("click").on("click",(function(e){e.stopPropagation(),e.preventDefault(),i.slideToggle(400,(function(){t.toggleClass("opened").toggleClass("closed")}))}))}},{key:"_initCustomInput",value:function(t){t.find(":input").each((function(){var t,i=e(this),a=i.attr("type"),n="".concat(a,"button");"checkbox"!==a&&"radio"!==a||i.closest(".".concat(n)).length||(i.is(":checked")&&(n+=" checked"),t=e("<span/>",{class:n}),i.wrap(t).on("change",(function(){var t=e(this);t.prop("checked")?t.parent().addClass("checked"):t.parent().removeClass("checked")})))}))}},{key:"_regiterStatus",value:function(){this.originalFilters=this.getFiltersProperties()}},{key:"_afterLayoutChange",value:function(){var t,i;this.isMobile?(this.$preset.addClass("filters-modal").attr("role","dialog").attr("tabindex","-1").hide(),this._addCloseModalButton(),this._addApplyFiltersModalButton(),this._switchToCollapsables(),null===(t=this.$filterButtons)||void 0===t||t.hide()):(this.$preset.removeClass("filters-modal").removeClass("open").removeAttr("role").removeAttr("tabindex").show(),e("body").css("overflow","auto").removeClass("yith-wcan-preset-modal-open"),this._removeCloseModalButton(),this._removeApplyFiltersModalButton(),this._switchBackCollapsables(),null===(i=this.$filterButtons)||void 0===i||i.show())}},{key:"_addCloseModalButton",value:function(){var t=e("<a/>",{class:"close-button",html:"×","data-dismiss":"modal","aria-label":yith_wcan_shortcodes.labels.close});t.prependTo(this.$preset).on("click",this.closeModal.bind(this)),this.modalElements.closeButton=t}},{key:"_removeCloseModalButton",value:function(){var e,t;null===(e=this.modalElements)||void 0===e||null===(t=e.closeButton)||void 0===t||t.remove()}},{key:"_addApplyFiltersModalButton",value:function(){var t=this,i=e("<button/>",{class:"apply-filters main-modal-button",html:yith_wcan_shortcodes.labels.show_results,"data-dismiss":"modal"});i.appendTo(this.$preset).on("click",(function(){t.filter(),t.closeModal()})),this.modalElements.applyFiltersButton=i}},{key:"_removeApplyFiltersModalButton",value:function(){var e,t;null===(e=this.modalElements)||void 0===e||null===(t=e.applyFiltersButton)||void 0===t||t.remove()}},{key:"_switchToCollapsables",value:function(){var t=this;this.getFilters().each((function(){var i=e(this),a=i.find(".filter-title");a.length&&!a.hasClass("collapsable")&&(a.addClass("collapsable").data("disable-collapse",!0),t._initTitleCollapsable(i))}))}},{key:"_switchBackCollapsables",value:function(){this.getFilters().each((function(){var t=e(this),i=t.find(".filter-title");i.length&&i.hasClass("collapsable")&&i.data("disable-collapse")&&(i.removeClass("collapsable").removeData("disable-collapse",!0).off("click"),t.find(".filter-content").show())}))}},{key:"_openAllCollapsables",value:function(){var t=this;this.$filters.not(".no-title").not((function(i,a){return t.isFilterActive(e(a))})).find(".filter-content").show().end().find(".filter-title").removeClass("closed").addClass("opened")}},{key:"_closeAllCollapsables",value:function(){var t=this;this.$filters.not(".no-title").not((function(i,a){return t.isFilterActive(e(a))})).find(".filter-content").hide().end().find(".filter-title").addClass("closed").removeClass("opened")}},{key:"maybeRegisterStatusChange",value:function(){var e=this.getFiltersProperties(),t=JSON.stringify(e),i=JSON.stringify(this.originalFilters);this.dirty=t!==i}},{key:"maybeFilter",value:function(e){if(this.maybeRegisterStatusChange(),yith_wcan_shortcodes.instant_filters&&!this.isMobile)this.filter();else if(yith_wcan_shortcodes.instant_filters||this.isMobile){if(this.isMobile&&this.dirty){var t;this.$preset.addClass("with-filter-button"),null===(t=this.modalElements.applyFiltersButton)||void 0===t||t.show()}}else{var i,a;this.dirty?null===(i=this.$filterButtons)||void 0===i||i.show():null===(a=this.$filterButtons)||void 0===a||a.hide()}}},{key:"filter",value:function(){var t,i,a,n=this,l=null===(t=window)||void 0===t?void 0:t.product_filter;null==l||null===(i=l.doFilter(this.getFiltersProperties(),this.target,this.preset))||void 0===i||i.done((function(){var t=e(n.preset);if(t.length&&yith_wcan_shortcodes.scroll_top){var i=t.offset().top;if(yith_wcan_shortcodes.scroll_target){var a=e(yith_wcan_shortcodes.scroll_target);i=a.length?a.offset().top:i}else n.isMobile&&(i=100);e("body, html").animate({scrollTop:i-100})}n.originalFilters=n.getFiltersProperties(),n.dirty=!1})),this.isMobile&&(this.$preset.removeClass("with-filter-button"),null===(a=this.modalElements.applyFiltersButton)||void 0===a||a.hide(),this.closeModal())}},{key:"getFilters",value:function(){return!1===this.$filters&&(this.$filters=this.$preset.find(".yith-wcan-filter")),this.$filters}},{key:"getActiveFilters",value:function(){return!1===this.activeFilters&&(this.activeFilters=this.getFiltersProperties()),this.activeFilters}},{key:"isAnyFilterActive",value:function(){return!!Object.keys(this.getActiveFilters()).length}},{key:"isFilterActive",value:function(e){var t,i;switch(e.data("filter-type")){case"tax":case"review":case"price_range":var a=e.find(".filter-dropdown");if(a.length){var n=a.val();t="object"===u(n)?!(null==n||!n.length):!!n;break}case"stock_sale":t=e.find(".filter-item").filter(".active").length;break;case"price_slider":var l=parseFloat(e.find(".price-slider").data("step")),r=parseFloat(e.find(".price-slider").data("min")),s=parseFloat(e.find(".price-slider").data("max")),o=parseFloat(e.find(".price-slider-min").val()),c=parseFloat(e.find(".price-slider-max").val());t=Math.abs(o-r)>=l||Math.abs(c-s)>=l;break;case"orderby":t="menu_order"!==e.find(".filter-order-by").val();break;default:t=!1}return t=void 0!==(i=e.triggerHandler("yith_wcan_is_filter_active",[t,this]))?i:t}},{key:"countActiveItems",value:function(e){var t;switch(e.data("filter-type")){case"tax":case"review":case"price_range":var i=e.find(".filter-dropdown");if(i.length){var a=i.val();t="object"===u(a)?null==a?void 0:a.length:+!!a;break}case"stock_sale":t=e.find(".filter-items").find(".active").length;break;case"orderby":this.isFilterActive(e)&&(t=1);break;case"price_slider":default:t=0}return t}},{key:"getFilterProperties",value:function(t){var i,a,n=t.data("filter-type"),l="yes"===t.data("multiple"),r=t.find(".filter-dropdown"),s={};switch(n){case"tax":var o=[],c=t.data("taxonomy"),h=0===c.indexOf("filter"),d=t.data("relation");if(r.length?l?o=r.val():o.push(r.val()):o=(a=t.find(".filter-item").filter(".active").children("a, label")).get().reduce((function(t,i){var a;return(a=(i=e(i)).is("label")?i.find(":input").val():i.data("term-slug"))?(t.push(a),t):t}),o),l){var u=h||"and"!==d?",":"+";s[c]=o.join(u)}else s[c]=o.pop();h&&(s[c.replace("filter_","query_type_")]=d);break;case"review":r.length?s.rating_filter=r.val():(a=t.find(".filter-item").filter(".active").children("a, label"),l?s.rating_filter=a.get().reduce((function(t,i){var a;return(a=(i=e(i)).is("label")?i.find(":input").val():i.data("rating"))?(t.push(a),t):t}),[]).join(","):(a=a.first(),s.rating_filter=a.is("label")?a.find(":input").val():a.data("rating")));break;case"price_range":r.length?l?s.price_ranges=r.val().join(","):(s.min_price=r.val().split("-")[0],s.max_price=r.val().split("-")[1]):(a=t.find(".filter-item").filter(".active").children("a, label"),l?s.price_ranges=a.get().reduce((function(t,i){var a=e(i).data("range-min"),n=e(i).data("range-max");return t+=(n?"".concat(a,"-").concat(n):a)+","}),"").replace(/^(.*),$/,"$1"):(s.min_price=parseFloat(a.first().data("range-min")),s.max_price=parseFloat(a.first().data("range-max"))));break;case"price_slider":s.min_price=parseFloat(t.find(".price-slider-min").val()),s.max_price=parseFloat(t.find(".price-slider-max").val());break;case"stock_sale":t.find(".filter-on-sale").is(".active")&&(s.onsale_filter=1),t.find(".filter-in-stock").is(".active")&&(s.instock_filter=1),t.find(".filter-featured").is(".active")&&(s.featured_filter=1);break;case"orderby":s.orderby=t.find(".filter-order-by").val()}return s=void 0!==(i=t.triggerHandler("yith_wcan_filter_properties",[s,self]))?i:s}},{key:"getFiltersProperties",value:function(){var t={},i=this;return this.getFilters().each((function(){var a=e(this);if(i.isFilterActive(a)){var n=i.getFilterProperties(a);t=i.mergeProperties(t,n,a)}})),t}},{key:"getFiltersByProperties",value:function(t){var i=this;return this.getFilters().filter((function(){var a=e(this);if(i.isFilterActive(a)){var n=i.getFilterProperties(a),l=!1;for(var r in t){if(["min_price","max_price","price_ranges"].includes(r)&&(n.min_price||n.price_ranges)){l=!0;break}if(n[r]){l=!0;break}}return l}return!1}))}},{key:"maybeToggleClearFilter",value:function(e){this.isFilterActive(e)?this.maybeShowClearFilter(e):this.maybeHideClearFilter(e)}},{key:"maybeToggleClearAllFilters",value:function(){this.isAnyFilterActive()?this.maybeShowClearAllFilters():this.maybeHideClearAllFilters()}},{key:"maybeShowClearFilter",value:function(t){var i=this;this.isFilterActive(t)&&yith_wcan_shortcodes.show_clear_filter&&(t.find(".clear-selection").remove(),e("<a/>",{class:"clear-selection",text:yith_wcan_shortcodes.labels.clear_selection,role:"button"}).prependTo(t.find(".filter-content")).on("click",(function(e){e.preventDefault(),i.deactivateFilter(t,!1,yith_wcan_shortcodes.instant_filters),i.maybeHideClearFilter(t),yith_wcan_shortcodes.instant_filters&&i.closeModal()})))}},{key:"maybeShowClearAllFilters",value:function(){var t=this;this.isAnyFilterActive()&&this.isMobile&&(this.$preset.find(".clear-selection").remove(),e("<a/>",{class:"clear-selection",text:yith_wcan_shortcodes.labels.clear_all_selections,role:"button"}).prependTo(this.$preset.find(".filters-container")).on("click",(function(e){e.preventDefault(),t.deactivateAllFilters(yith_wcan_shortcodes.instant_filters),t.maybeHideClearAllFilters(),yith_wcan_shortcodes.instant_filters&&t.closeModal()})))}},{key:"maybeHideClearFilter",value:function(e){!this.isFilterActive(e)&&yith_wcan_shortcodes.show_clear_filter&&e.find(".clear-selection").remove()}},{key:"maybeHideClearAllFilters",value:function(){this.isAnyFilterActive()||this.$preset.find(".filters-container").children(".clear-selection").remove()}},{key:"deactivateFilter",value:function(t,i,a){var n=t.data("filter-type"),l=t.find(".filter-item"),r=l.filter(".active"),s=t.find(".filter-dropdown");switch(n){case"tax":var o=t.data("taxonomy");s.length?(i?s.find("option").each((function(){var t=e(this);t.val().toString()===i[o].toString()&&t.prop("selected",!1)})):s.find("option").prop("selected",!1),s.change()):i?r.each((function(){var t=e(this),a=t.children("label"),n=t.children("a");(a.length?a.find(":input").val():n.data("term-slug")).toString()===i[o].toString()&&(t.children("label").children("a").click(),t.removeClass("active"))})):(r.children("label").children("a").click(),r.removeClass("active"));break;case"review":s.length?(i?s.find("option").each((function(){var t=e(this);t.val()===i.rating_filter&&t.prop("selected",!1)})):s.find("option").prop("selected",!1),s.change()):i?r.each((function(){var t=e(this),a=t.children("label"),n=t.children("a");(a.length?a.find(":input").val():n.data("rating"))===i.rating_filter&&(t.children("label").children("a").click(),t.removeClass("active"))})):(r.children("label").children("a").click(),r.removeClass("active"));break;case"price_range":s.length?(i?s.find("option").each((function(){var t=e(this),a=i.min_price+(i.max_price?"-".concat(i.max_price):"");t.val()===a&&t.prop("selected",!1)})):s.find("option").prop("selected",!1),s.change()):i?r.each((function(){var t,a,n=e(this),l=n.children("label"),r=n.children("a");a=l.length?l.find(":input").val():r.data("min_price")+(r.data("max_price")?"-"+r.data("max_price"):""),i.min_price?t=i.min_price+(i.max_price?"-"+i.max_price:""):i.price_ranges&&(t=i.price_ranges),a===t&&(n.children("label").children("a").click(),n.removeClass("active"))})):(r.children("label").children("a").click(),r.removeClass("active"));break;case"price_slider":var c=t.find(".price-slider");t.find(".price-slider-min").val(c.data("min")),t.find(".price-slider-max").val(c.data("max")).change();break;case"orderby":t.find("select").val("menu_order");break;case"stock_sale":i?(null!=i&&i.instock_filter&&t.find(".filter-in-stock").find(":input").prop("checked",!1).change().closest(".filter-item").removeClass("active"),null!=i&&i.onsale_filter&&t.find(".filter-on-sale").find(":input").prop("checked",!1).change().closest(".filter-item").removeClass("active"),null!=i&&i.featured_filter&&t.find(".filter-featured").find(":input").prop("checked",!1).change().closest(".filter-item").removeClass("active")):(t.find(".filter-in-stock").find(":input").prop("checked",!1).change(),t.find(".filter-on-sale").find(":input").prop("checked",!1).change(),t.find(".filter-featured").find(":input").prop("checked",!1).change(),l.removeClass("active"));break;default:l.removeClass("active")}this.activeFilters=!1,a&&this.filter()}},{key:"deactivateAllFilters",value:function(t){var i=this;return this.getFilters().each((function(){var t=e(this);i.deactivateFilter(t)})),this.activeFilters=!1,t&&this.filter(),!0}},{key:"deactivateFilterByProperties",value:function(t,i){var a=this,n=this.getFiltersByProperties(t);return!!n.length&&(n.each((function(){var n=e(this);a.deactivateFilter(n,t,i)})),!0)}},{key:"openModal",value:function(){var t=this;this.isMobile&&(yith_wcan_shortcodes.toggles_open_on_modal?this._openAllCollapsables():this._closeAllCollapsables(),e("body").css("overflow","hidden").addClass("yith-wcan-preset-modal-open"),this.$preset.show(),setTimeout((function(){t.$preset.addClass("open")}),100))}},{key:"closeModal",value:function(){var t=this;this.isMobile&&(this.$preset.removeClass("open"),setTimeout((function(){t.$preset.hide(),e("body").css("overflow","auto").removeClass("yith-wcan-preset-modal-open")}),300))}},{key:"formatPrice",value:function(e){var t,i,a,n;return"undefined"!=typeof accounting&&(e=accounting.formatMoney(e,{symbol:null===(t=yith_wcan_shortcodes.currency_format)||void 0===t?void 0:t.symbol,decimal:null===(i=yith_wcan_shortcodes.currency_format)||void 0===i?void 0:i.decimal,thousand:null===(a=yith_wcan_shortcodes.currency_format)||void 0===a?void 0:a.thousand,precision:0,format:null===(n=yith_wcan_shortcodes.currency_format)||void 0===n?void 0:n.format})),e}},{key:"mergeProperties",value:function(t,i,a){for(var n in i)if(i.hasOwnProperty(n)&&t[n]){switch(n){case"rating_filter":case"min_price":case"max_price":case"onsale_filter":case"instock_filter":case"orderby":t[n]=i[n];break;default:if(0===n.indexOf("query_type_"))t[n]=i[n];else{var l=0===n.indexOf("filter_"),r=l?",":"+",s=t[n].replace(",",r)+r+i[n].replace(",",r);if(s=s.split(r).filter((function(e,t,i){return i.indexOf(e)===t})).join(r),t[n]=s,l){var o=n.replace("filter_","query_type_");t[o]="and",i[o]="and"}}}delete i[n]}return e.extend(t,i),t}}])&&f(i.prototype,a),n&&f(i,n),t}();jQuery((function(e){e(document).on("yith_wcan_init_shortcodes yith_plugin_fw_gutenberg_success_do_shortcode",(function(){e(".yith-wcan-filters").not(".enhanced").each((function(){new v(e(this))})),e(".yith-wcan-reset-filters").not(".enhanced").each((function(){new r(e(this))}))})).trigger("yith_wcan_init_shortcodes"),globalThis.product_filter=new l}))})();
|
1 |
+
(()=>{"use strict";var e=jQuery,t=e("body");function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var l=function(){function l(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),n(this,"xhr",null),n(this,"doingAjax",!1),n(this,"originalSearch",location.search),n(this,"initialized",!1),n(this,"filtered",!1),this.initPopState(),this.initialized=!0}var r,s,o;return r=l,(s=[{key:"initPopState",value:function(){yith_wcan_shortcodes.reload_on_back&&(this.pushUrlToHistory(window.location,document.title,null,!0),e(window).on("popstate",(function(){var e;null!==(e=window.history.state)&&void 0!==e&&e._yithWcan&&window.location.reload(!0)})))}},{key:"doFilter",value:function(t,i,a){var n,l,r=this,s=e(i||"body");return(l=e(document).triggerHandler("yith_wcan_filters_parameters",[t]))&&(t=l),s&&this.block(s),n=this.buildUrl(t),yith_wcan_shortcodes.ajax_filters?(this.doingAjax=!0,this._doAjax(n).done((function(e){n=r.searchAlternativeUrl(e,n),r._beforeFilter(e,t),r.refreshFragments(i,a,e),r.pushUrlToHistory(n,e.pageTitle,t),r.originalSearch=location.search,s&&r.unblock(s),r._afterFilter(e,t),r.doingAjax=!1}))):(this.pushUrlToHistory(n,document.title,t),void(window.location=n))}},{key:"_beforeFilter",value:function(t,i){e(document).trigger("yith-wcan-ajax-loading",[t,i])}},{key:"_afterFilter",value:function(i,a){e(".woocommerce-ordering").on("change","select.orderby",(function(){e(this).closest("form").submit()})),this.filtered=a&&!!Object.keys(a).length,this.filtered?t.addClass("filtered"):t.removeClass("filtered"),e(window).trigger("scroll"),e(document).trigger("yith-wcan-ajax-filtered",[i,a]).trigger("yith_wcwl_reload_fragments")}},{key:"buildUrl",value:function(t){var a,n=this,l=yith_wcan_shortcodes.query_param,r={},s=window.location,o=yith_wcan_shortcodes.base_url?yith_wcan_shortcodes.base_url:(null==s?void 0:s.origin)+(null==s?void 0:s.pathname),c=this,h="object"===i(t)&&Object.keys(t).length;if(yith_wcan_shortcodes.session_param&&(o=o.replace(new RegExp("/"+yith_wcan_shortcodes.session_param+"/[^/]*/"),"")),h&&(r[l]=1),this.originalSearch){var d=this.originalSearch.replace("?","").split("&").reduce((function(e,t){var i=t.split("=");if(2===i.length){if(n.isFilterParam(i[0]))return e;e[i[0]]=i[1]}return e}),{});r=e.extend(r,d)}return h&&(r=e.extend(r,t)),(a=Object.keys(r).reduce((function(e,t){var i=r[t];return i&&t?e+=c._cleanParam(t)+"="+c._cleanParam(i)+"&":e}),"?").replace(/&$/g,"").replace(/%2B/g,"+").replace(/%2C/g,",")).length>1&&(o+=a),o}},{key:"searchAlternativeUrl",value:function(e){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",a=i;return-1===e.indexOf("yith_wcan:sharing_url")?a:a=(t=e.match(/<meta name="yith_wcan:sharing_url" content="([^"]*)">/))&&1 in t?t[1]:a}},{key:"pushUrlToHistory",value:function(e,t,i,a){if(yith_wcan_shortcodes.change_browser_url&&!navigator.userAgent.match(/msie/i)){var n="pushState";a&&(n="replaceState"),window.history[n]({_yithWcan:!0,pageTitle:t,filters:i},"",e)}}},{key:"refreshFragments",value:function(t,i,a){var n=document.createElement("html"),l=e(n);if(n.innerHTML=a,t){var r,s=e(i),o=e(t);s.length&&(r=l.find(i)).length&&s.replaceWith(r.first()),o.length&&(r=l.find(t)).length&&o.replaceWith(r.first())}else{var c=e(yith_wcan_shortcodes.content);c.length?c.replaceWith(l.find(yith_wcan_shortcodes.content)):e("body").replaceWith(l.find("body"))}e(document).trigger("yith_wcan_init_shortcodes")}},{key:"_cleanParam",value:function(e){var t,i;return null===(t=yith_wcan_shortcodes)||void 0===t||!t.process_sanitize||null!==(i=yith_wcan_shortcodes)&&void 0!==i&&i.skip_sanitize?e:encodeURIComponent(e)}},{key:"_doAjax",value:function(t,i){return this.xhr&&this.xhr.abort(),i=e.extend({url:t,headers:{"X-YITH-WCAN":1}},i),this.xhr=e.ajax(i),this.xhr}},{key:"block",value:function(t){var i;if(void 0!==e.fn.block){var a="#fff center center no-repeat";null!==(i=yith_wcan_shortcodes)&&void 0!==i&&i.loader&&(a="url('".concat(yith_wcan_shortcodes.loader,"') ").concat(a)),t.block({message:null,overlayCSS:{background:a,opacity:.7}})}}},{key:"unblock",value:function(t){void 0!==e.fn.unblock&&t.unblock()}},{key:"isFilterParam",value:function(t){var i,a=["rating_filter","min_price","max_price","price_ranges","onsale_filter","instock_filter","featured_filter","orderby","product-page",yith_wcan_shortcodes.query_param];return(i=e(document).triggerHandler("yith_wcan_supported_filters_parameters",[a]))&&(a=i),-1!==(a=a.concat(yith_wcan_shortcodes.supported_taxonomies.map((function(e){return e.replace("pa_","filter_")})))).indexOf(t)||-1!==t.indexOf("filter_")||-1!==t.indexOf("query_type_")}}])&&a(r.prototype,s),o&&a(r,o),l}();var r=function t(i){var a,n,l;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),l=null,(n="$reset")in(a=this)?Object.defineProperty(a,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):a[n]=l,this.$reset=i,this.$reset.on("click",(function(t){t.preventDefault(),e(".yith-wcan-filters").each((function(){var t=e(this).data("preset");t.deactivateAllFilters(!0),t.closeModal()}))})),this.$reset.data("reset",this).addClass("enhanced")};function s(e,t){var i="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);"Object"===i&&e.constructor&&(i=e.constructor.name);if("Map"===i||"Set"===i)return Array.from(e);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return o(e,t)}(e))||t&&e&&"number"==typeof e.length){i&&(e=i);var a=0,n=function(){};return{s:n,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,r=!0,s=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return r=e.done,e},e:function(e){s=!0,l=e},f:function(){try{r||null==i.return||i.return()}finally{if(s)throw l}}}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,a=new Array(t);i<t;i++)a[i]=e[i];return a}function c(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function h(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var d=function(){function t(i,a){var n,l,r,s;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),h(this,"$originalSelect",null),h(this,"$_main",null),h(this,"$_label",null),h(this,"$_dropdown",null),h(this,"$_search",null),h(this,"$_showMore",null),h(this,"$_items",null),h(this,"currentPage",1),h(this,"options",{}),this.$originalSelect=i,this.$originalSelect.is("select")){var o=this.$originalSelect.data("per_page"),c=this.$originalSelect.data("order"),d=this.$originalSelect.data("all-label"),u={showSearch:this.$originalSelect.data("show_search"),paginate:this.$originalSelect.data("paginate"),perPage:o||10,order:c||"ASC",getElements:null,labels:{emptyLabel:d||(null===(n=yith_wcan_shortcodes.labels)||void 0===n?void 0:n.empty_option),searchPlaceholder:null===(l=yith_wcan_shortcodes.labels)||void 0===l?void 0:l.search_placeholder,noItemsFound:null===(r=yith_wcan_shortcodes.labels)||void 0===r?void 0:r.no_items,showMore:null===(s=yith_wcan_shortcodes.labels)||void 0===s?void 0:s.show_more}};this.options=e.extend(u,a),this._hideSelect(),this._initTemplate(),this._initActions(),this.$originalSelect.data("dropdown",this).addClass("enhanced")}}var i,a,n;return i=t,(a=[{key:"_hideSelect",value:function(){this.$originalSelect.hide()}},{key:"_initTemplate",value:function(){var t=e("<div/>",{class:"yith-wcan-dropdown closed"}),i=e("<div/>",{class:"dropdown-label",html:this.getLabel()}),a=e("<div>",{class:"dropdown-wrapper"}),n=e("<ul/>",{class:"matching-items filter-items"});a.append(n),t.append(i).append(a),this.options.showSearch&&this._initSearchTemplate(a),this.options.paginate&&this._initShowMoreTemplate(a),this.$originalSelect.after(t),this.$_main=t,this.$_label=i,this.$_dropdown=a,this.$_items=n}},{key:"_initSearchTemplate",value:function(t){var i=e("<div/>",{class:"search-field-container"}),a=e("<input/>",{name:"s",class:"search-field",type:"search",placeholder:this.options.labels.searchPlaceholder});i.append(a).prependTo(t),this.$_search=a}},{key:"_initShowMoreTemplate",value:function(t){var i,a=e("<a/>",{class:"show-more",text:null===(i=this.options.labels.showMore)||void 0===i?void 0:i.replace("%d",this.options.perPage)});a.on("click",this.loadNextPage.bind(this)).hide(),t.append(a),this.$_showMore=a}},{key:"_initActions",value:function(){var t,i,a=this;null===(t=this.$_main)||void 0===t||t.on("click",(function(e){e.stopPropagation(),a.toggleDropdown()})),this.$_dropdown.on("click",(function(e){e.stopPropagation()})),null===(i=this.$_search)||void 0===i||i.on("keyup search",(function(){a._populateItems()})),this.$_items.on("change",":input",(function(){var t,i=e(this).closest("li"),n=i.data("value");if(i.hasClass("disabled")&&!a.isValueSelected(n))return!1;i.toggleClass("active"),t=i.hasClass("active"),a._changeItemStatus(n,t)})),this.$_items.on("click","li:not(.checkbox) a",(function(t){var i,n=e(this).closest("li"),l=n.data("value");if(t.preventDefault(),n.hasClass("disabled")&&!a.isValueSelected(l))return!1;n.toggleClass("active"),(i=n.hasClass("active"))&&n.siblings().removeClass("active"),a._changeItemStatus(l,i)})),this.$_items.on("click","label > a",(function(t){var i=e(this).parent().find(":input");t.preventDefault(),(i.is('[type="radio"]')||i.is('[type="checkbox"]'))&&i.prop("checked",!i.prop("checked")),i.change()})),this.$originalSelect.on("change",(function(t,i){i||(a.$_items.find("li").each((function(){var t=e(this).data("value");a.isValueSelected(t)?a._selectItem(t):a._deselectItem(t)})),a.updateLabel())})),null!==globalThis&&void 0!==globalThis&&globalThis.yith_wcan_dropdown_init||(e(document).on("click",this._closeAllDropdowns),globalThis.yith_wcan_dropdown_init=!0)}},{key:"openDropdown",value:function(){var e;null===(e=this.$_main)||void 0===e||e.addClass("open").removeClass("closed"),this._afterDropdownOpen()}},{key:"closeDropdown",value:function(){var e;null===(e=this.$_main)||void 0===e||e.removeClass("open").addClass("closed")}},{key:"_closeAllDropdowns",value:function(){e(document).find("select.enhanced").filter((function(t,i){return!!e(i).data("dropdown")})).each((function(){e(this).data("dropdown").closeDropdown()}))}},{key:"_closeOtherDropdowns",value:function(){var t=this;e(document).find("select.enhanced").filter((function(i,a){var n=e(a);return!!n.data("dropdown")&&!n.is(t.$originalSelect)})).each((function(){e(this).data("dropdown").closeDropdown()}))}},{key:"toggleDropdown",value:function(){var e,t;null===(e=this.$_main)||void 0===e||e.toggleClass("open").toggleClass("closed"),null!==(t=this.$_main)&&void 0!==t&&t.hasClass("open")&&this._afterDropdownOpen()}},{key:"_afterDropdownOpen",value:function(){var e;this._closeOtherDropdowns(),null!==(e=this.$_search)&&void 0!==e&&e.length&&this.$_search.val(""),this._populateItems()}},{key:"getMatchingElements",value:function(t,i){var a=this,n=[],l=this.getOptions();return new Promise((function(r){l.each((function(){var i=e(this),a=i.val(),l=i.html(),r=new RegExp(".*"+t+".*","i");(!t||r.test(a)||r.test(l))&&n.push({value:a,label:l})})),a.options.getElements?a.options.getElements(t).then((function(t){t&&(t=t.reduce((function(e,t,i){return e.push({label:i,value:t}),e}),[]),n=e.extend(n,t)),r(a._formatItems(n,i))})):r(a._formatItems(n,i))}))}},{key:"_formatItems",value:function(e,t){var i=this,a=[],n=!1;return e.filter((function(e){return-1===a.indexOf(e.value)&&(a.push(e.value),!0)})).sort((function(e,t){var a="ASC"===i.options.order?1:-1;return e.value<t.value?-1*a:e.value>t.value?a:0})),t&&(n=t<Object.keys(e).length,e=e.slice(0,t)),{items:e,hasMore:n}}},{key:"_generateItem",value:function(t,i){var a,n=this.isValueSelected(t),l=this.getOptionByValue(t),r=e("<li/>",{"data-value":t,class:l.length?l.attr("class"):""});if(l.length){var s=l.data("template"),o=l.data("count");i=s||i,o&&(i+=o)}if(a=e("<a/>",{href:l.length?l.data("filter_url"):"#",html:i,rel:"nofollow","data-title":l.length?l.data("title"):""}),this.$originalSelect.prop("multiple")){var c=e("<input/>",{type:"checkbox",value:t}),h=e("<label>");c.prop("checked",n),h.prepend(c).append(a),r.append(h).addClass("checkbox")}else r.append(a);return n?r.addClass("active"):r.removeClass("active"),r}},{key:"_populateItems",value:function(t){var i,a,n=this,l=null!==(i=this.$_search)&&void 0!==i&&i.length?this.$_search.val():"",r=this.options.paginate?this.options.perPage:0;a=(t=t?parseInt(t):1)*r,this.getMatchingElements(l,a).then((function(i){var a=i.items,l=[],r=!1;if(n._emptyItems(),n._hideLoadMore(),a.length){var o,c=s(a);try{for(c.s();!(o=c.n()).done;){var h=o.value;""===h.value?l.unshift(n._generateItem(h.value,h.label)):l.push(n._generateItem(h.value,h.label))}}catch(e){c.e(e)}finally{c.f()}n.currentPage=t,r=i.hasMore}else l.push(e("<li/>",{text:n.options.labels.noItemsFound})),n.currentPage=1;n.$_items.append(l),n.$originalSelect.trigger("yith_wcan_dropdown_updated"),r&&n._showLoadMore()}))}},{key:"loadNextPage",value:function(){var e=this.currentPage+1;this._populateItems(e)}},{key:"_selectItem",value:function(e){return this._changeItemStatus(e,!0)}},{key:"_deselectItem",value:function(e){return this._changeItemStatus(e,!1)}},{key:"_changeItemStatus",value:function(e,t){var i=this.$originalSelect.find('option[value="'.concat(e,'"]'));return!!i.length&&(i.prop("selected",t),this.closeDropdown(),this.updateLabel(),this.$originalSelect.trigger("change",[!0]),!0)}},{key:"_emptyItems",value:function(){this.$_items.html("")}},{key:"_showLoadMore",value:function(){this.$_showMore.show()}},{key:"_hideLoadMore",value:function(){this.$_showMore.hide()}},{key:"getLabel",value:function(){return this.hasSelectedValues()?this.getSelectedLabels().join(", "):this.options.labels.emptyLabel}},{key:"updateLabel",value:function(){var e,t=this.getLabel();null===(e=this.$_label)||void 0===e||e.html(t)}},{key:"getOptions",value:function(){return this.$originalSelect.find("option")}},{key:"hasSelectedValues",value:function(){return this.getSelectedOptions().length}},{key:"isValueSelected",value:function(e){return-1!==this.getSelectedValues().indexOf(e.toString())}},{key:"getSelectedOptions",value:function(){return this.$originalSelect.find("option").filter(":selected")}},{key:"getOptionByValue",value:function(e){return this.$originalSelect.find('option[value="'.concat(e,'"]'))}},{key:"getSelectedLabels",value:function(){var t=[];return this.getSelectedOptions().each((function(){var i=e(this),a=i.data("template");a=a||i.html().replace(/\([0-9]*\)/,""),t.push(a)})),t}},{key:"getSelectedValues",value:function(){var t=[];return this.getSelectedOptions().each((function(){t.push(e(this).val())})),t}},{key:"destroy",value:function(){}}])&&c(i.prototype,a),n&&c(i,n),t}();function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function p(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var v=function(){function t(i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),p(this,"preset",!1),p(this,"$preset",!1),p(this,"target",!1),p(this,"$target",!1),p(this,"$filters",!1),p(this,"$filterButtons",!1),p(this,"modalElements",{}),p(this,"activeFilters",!1),p(this,"isMobile",!1),p(this,"sliderTimeout",!1),p(this,"originalFilters",null),p(this,"dirty",!1),this.preset="#"+i.attr("id"),this.$preset=i,this.target=this.$preset.data("target"),this.$target=!!this.target&&e(this.target),this._regiterStatus(),this._initFilterButton(),this._initResponsive(),this._initFilters(),this._initActions(),this.$preset.data("preset",this).addClass("enhanced").trigger("yith_wcan_preset_initialized",[this])}var i,a,n;return i=t,(a=[{key:"_initFilters",value:function(){var t=this;this.getFilters().each((function(){var i=e(this);t._initFilter(i)})),this.maybeShowClearAllFilters()}},{key:"_initFilterButton",value:function(){var e=this;this.$filterButtons=this.$preset.find(".apply-filters"),this.$filterButtons.length&&this.$filterButtons.on("click",(function(t){t.preventDefault(),e.filter()})).hide()}},{key:"_initActions",value:function(){this.$preset.find("form").on("submit",(function(e){e.preventDefault()}))}},{key:"_initResponsive",value:function(){var t=this;if(yith_wcan_shortcodes.modal_on_mobile){var i=window.matchMedia("(max-width: ".concat(yith_wcan_shortcodes.mobile_media_query,"px)"));e(window).on("resize",(function(){var e=!!i.matches;e!==t.isMobile&&(t.isMobile=e,t._afterLayoutChange())})).resize()}}},{key:"_initFilter",value:function(t){var i,a=this,n=function(i){var n=e(this),l=n.closest(".yith-wcan-filter"),r=!!l.length&&"yes"===l.data("multiple"),s=n.closest(".filter-item"),o=s.length?l.find(".filter-item").not(s):[];if(s.is(".disabled")&&!s.is(".active"))return i.preventDefault(),!1;i.preventDefault(),o.length&&!r&&o.removeClass("active").children("label").find(":input").prop("checked",!1).parent(".checked").removeClass("checked"),s.length&&s.toggleClass("active"),a.activeFilters=!1,a.maybeFilter(t),a.maybeToggleClearAllFilters(),a.maybeToggleClearFilter(l)};t.find(".filter-item").not(".checkbox").not(".radio").on("click","a",(function(t){var i=e(this).closest(".filter-item");if(!e(null==t?void 0:t.delegateTarget).is(i))return!1;n.call(this,t)})),t.find(":input").on("change",(function(t){var i=e(this),a=i.closest(".filter-item");if(a.is(".disabled")&&!a.is(".active"))return i.prop("checked",!1),!1;n.call(this,t)})),t.find("label > a").on("click",(function(t){var i=e(this),a=i.closest(".filter-item");if(t.preventDefault(),a.is(".disabled")&&!a.is(".active"))return!1;var n=i.parent().find(":input");(n.is('[type="radio"]')||n.is('[type="checkbox"]'))&&n.prop("checked",!n.prop("checked")),n.change()})),this._initTooltip(t),this._initPriceSlider(t),this._initDropdown(t),this._initCollapsable(t),this.maybeShowClearFilter(t),null!==(i=this.$preset)&&void 0!==i&&i.hasClass("custom-style")&&(this._initCustomInput(t),t.on("yith_wcan_dropdown_updated",(function(){var t=e(this).closest(".yith-wcan-filter");a._initCustomInput(t)})))}},{key:"_initTooltip",value:function(t,i){t.find("[data-title]").each((function(){var t=e(this);!t.hasClass("tooltip-added")&&t.data("title")&&(t.on("mouseenter",(function(){var t,a=e(this),n=null,l=a.outerWidth(),r=0;if(!i||"top"!==i&&"right"!==i){var s=a.closest(".filter-item");i=s.hasClass("color")||s.hasClass("label")?"top":"right"}n=e("<span>",{class:"yith-wcan-tooltip",html:a.data("title")}),a.append(n),t=n.outerWidth()+6,n.outerWidth(t),r="top"===i?(l-t)/2:l+15,n.css({left:r.toFixed(0)+"px"}).fadeIn(200),a.addClass("with-tooltip")})).on("mouseleave",(function(){var t=e(this);t.find(".yith-wcan-tooltip").fadeOut(200,(function(){t.removeClass("with-tooltip").find(".yith-wcan-tooltip").remove()}))})),t.addClass("tooltip-added"))}))}},{key:"_initDropdown",value:function(t){var i=t.find("select.filter-dropdown");i.length&&(i.hasClass("select2-hidden-accessible")&&void 0!==e.fn.selectWoo&&i.selectWoo("destroy"),this._initDropdownObject(i,{paginate:!0,perPage:yith_wcan_shortcodes.terms_per_page}))}},{key:"_initDropdownObject",value:function(e,t){return new d(e,t)}},{key:"_initPriceSlider",value:function(e){var t=this;if(e.hasClass("filter-price-slider")){var i=this,a=e.find(".price-slider"),n=a.find(".price-slider-min"),l=a.find(".price-slider-max"),r=parseFloat(a.data("min")),s=parseFloat(a.data("max")),o=parseFloat(n.val()),c=parseFloat(l.val()),h=parseFloat(a.data("step")),d=function(){i.sliderTimeout&&clearTimeout(i.sliderTimeout),i.sliderTimeout=setTimeout((function(){i.maybeFilter(e)}),200)};e.find(".price-slider-ui").ionRangeSlider({skin:"round",type:"double",min:r,max:s,step:h,from:o,to:c,min_interval:h,values_separator:" - ",prettify:function(e){return t.formatPrice(e)},onChange:function(e){n.val(e.from),l.val(e.to)},onFinish:d}),n.add(l).off("change").on("keyup",(function(){n.val()&&l.val()&&d()}))}}},{key:"_initCollapsable",value:function(e){this._initTitleCollapsable(e),this._initHierarchyCollapsable(e)}},{key:"_initTitleCollapsable",value:function(e){var t=e.find(".collapsable");t.length&&this._initToggle(t,t,e.find(".filter-content"))}},{key:"_initHierarchyCollapsable",value:function(t){var i=t.find(".hierarchy-collapsable");if(i.length){var a=this,n=t.find(".active");n.length&&(n.parents(".hierarchy-collapsable").removeClass("closed").addClass("opened"),n.hasClass("hierarchy-collapsable")&&yith_wcan_shortcodes.show_current_children&&n.removeClass("closed").addClass("opened")),i.each((function(){var t=e(this),i=e("<span/>",{class:"toggle-handle"});i.appendTo(t),a._initToggle(i,t,t.children("ul.filter-items"))}))}}},{key:"_initToggle",value:function(e,t,i){t.hasClass("closed")&&i.hide(),e.off("click").on("click",(function(e){e.stopPropagation(),e.preventDefault(),i.slideToggle(400,(function(){t.toggleClass("opened").toggleClass("closed")}))}))}},{key:"_initCustomInput",value:function(t){t.find(":input").each((function(){var t,i=e(this),a=i.attr("type"),n="".concat(a,"button");"checkbox"!==a&&"radio"!==a||i.closest(".".concat(n)).length||(i.is(":checked")&&(n+=" checked"),t=e("<span/>",{class:n}),i.wrap(t).on("change",(function(){var t=e(this);t.prop("checked")?t.parent().addClass("checked"):t.parent().removeClass("checked")})))}))}},{key:"_regiterStatus",value:function(){this.originalFilters=this.getFiltersProperties()}},{key:"_afterLayoutChange",value:function(){var t,i;this.isMobile?(this.$preset.addClass("filters-modal").attr("role","dialog").attr("tabindex","-1").hide(),this._addCloseModalButton(),this._addApplyFiltersModalButton(),this._switchToCollapsables(),null===(t=this.$filterButtons)||void 0===t||t.hide()):(this.$preset.removeClass("filters-modal").removeClass("open").removeAttr("role").removeAttr("tabindex").show(),e("body").css("overflow","auto").removeClass("yith-wcan-preset-modal-open"),this._removeCloseModalButton(),this._removeApplyFiltersModalButton(),this._switchBackCollapsables(),null===(i=this.$filterButtons)||void 0===i||i.show())}},{key:"_addCloseModalButton",value:function(){var t=e("<a/>",{class:"close-button",html:"×","data-dismiss":"modal","aria-label":yith_wcan_shortcodes.labels.close});t.prependTo(this.$preset).on("click",this.closeModal.bind(this)),this.modalElements.closeButton=t}},{key:"_removeCloseModalButton",value:function(){var e,t;null===(e=this.modalElements)||void 0===e||null===(t=e.closeButton)||void 0===t||t.remove()}},{key:"_addApplyFiltersModalButton",value:function(){var t=this,i=e("<button/>",{class:"apply-filters main-modal-button",html:yith_wcan_shortcodes.labels.show_results,"data-dismiss":"modal"});i.appendTo(this.$preset).on("click",(function(){t.filter(),t.closeModal()})),this.modalElements.applyFiltersButton=i}},{key:"_removeApplyFiltersModalButton",value:function(){var e,t;null===(e=this.modalElements)||void 0===e||null===(t=e.applyFiltersButton)||void 0===t||t.remove()}},{key:"_switchToCollapsables",value:function(){var t=this;this.getFilters().each((function(){var i=e(this),a=i.find(".filter-title");a.length&&!a.hasClass("collapsable")&&(a.addClass("collapsable").data("disable-collapse",!0),t._initTitleCollapsable(i))}))}},{key:"_switchBackCollapsables",value:function(){this.getFilters().each((function(){var t=e(this),i=t.find(".filter-title");i.length&&i.hasClass("collapsable")&&i.data("disable-collapse")&&(i.removeClass("collapsable").removeData("disable-collapse",!0).off("click"),t.find(".filter-content").show())}))}},{key:"_openAllCollapsables",value:function(){var t=this;this.$filters.not(".no-title").not((function(i,a){return t.isFilterActive(e(a))})).find(".filter-content").show().end().find(".filter-title").removeClass("closed").addClass("opened")}},{key:"_closeAllCollapsables",value:function(){var t=this;this.$filters.not(".no-title").not((function(i,a){return t.isFilterActive(e(a))})).find(".filter-content").hide().end().find(".filter-title").addClass("closed").removeClass("opened")}},{key:"maybeRegisterStatusChange",value:function(){var e=this.getFiltersProperties(),t=JSON.stringify(e),i=JSON.stringify(this.originalFilters);this.dirty=t!==i}},{key:"maybeFilter",value:function(e){if(this.maybeRegisterStatusChange(),yith_wcan_shortcodes.instant_filters&&!this.isMobile)this.filter();else if(yith_wcan_shortcodes.instant_filters||this.isMobile){if(this.isMobile&&this.dirty){var t;this.$preset.addClass("with-filter-button"),null===(t=this.modalElements.applyFiltersButton)||void 0===t||t.show()}}else{var i,a;this.dirty?null===(i=this.$filterButtons)||void 0===i||i.show():null===(a=this.$filterButtons)||void 0===a||a.hide()}}},{key:"filter",value:function(){var t,i,a,n=this,l=null===(t=window)||void 0===t?void 0:t.product_filter;null==l||null===(i=l.doFilter(this.getFiltersProperties(),this.target,this.preset))||void 0===i||i.done((function(){var t=e(n.preset);if(t.length&&yith_wcan_shortcodes.scroll_top){var i=t.offset().top;if(yith_wcan_shortcodes.scroll_target){var a=e(yith_wcan_shortcodes.scroll_target);i=a.length?a.offset().top:i}else n.isMobile&&(i=100);e("body, html").animate({scrollTop:i-100})}n.originalFilters=n.getFiltersProperties(),n.dirty=!1})),this.isMobile&&(this.$preset.removeClass("with-filter-button"),null===(a=this.modalElements.applyFiltersButton)||void 0===a||a.hide(),this.closeModal())}},{key:"getFilters",value:function(){return!1===this.$filters&&(this.$filters=this.$preset.find(".yith-wcan-filter")),this.$filters}},{key:"getActiveFilters",value:function(){return!1===this.activeFilters&&(this.activeFilters=this.getFiltersProperties()),this.activeFilters}},{key:"isAnyFilterActive",value:function(){return!!Object.keys(this.getActiveFilters()).length}},{key:"isFilterActive",value:function(e){var t,i;switch(e.data("filter-type")){case"tax":case"review":case"price_range":var a=e.find(".filter-dropdown");if(a.length){var n=a.val();t="object"===u(n)?!(null==n||!n.length):!!n;break}case"stock_sale":t=e.find(".filter-item").filter(".active").length;break;case"price_slider":var l=parseFloat(e.find(".price-slider").data("step")),r=parseFloat(e.find(".price-slider").data("min")),s=parseFloat(e.find(".price-slider").data("max")),o=parseFloat(e.find(".price-slider-min").val()),c=parseFloat(e.find(".price-slider-max").val());t=Math.abs(o-r)>=l||Math.abs(c-s)>=l;break;case"orderby":t="menu_order"!==e.find(".filter-order-by").val();break;default:t=!1}return t=void 0!==(i=e.triggerHandler("yith_wcan_is_filter_active",[t,this]))?i:t}},{key:"countActiveItems",value:function(e){var t;switch(e.data("filter-type")){case"tax":case"review":case"price_range":var i=e.find(".filter-dropdown");if(i.length){var a=i.val();t="object"===u(a)?null==a?void 0:a.length:+!!a;break}case"stock_sale":t=e.find(".filter-items").find(".active").length;break;case"orderby":this.isFilterActive(e)&&(t=1);break;case"price_slider":default:t=0}return t}},{key:"getFilterProperties",value:function(t){var i,a,n=t.data("filter-type"),l="yes"===t.data("multiple"),r=t.find(".filter-dropdown"),s={};switch(n){case"tax":var o=[],c=t.data("taxonomy"),h=0===c.indexOf("filter"),d=t.data("relation");if(r.length?l?o=r.val():o.push(r.val()):o=(a=t.find(".filter-item").filter(".active").children("a, label")).get().reduce((function(t,i){var a;return(a=(i=e(i)).is("label")?i.find(":input").val():i.data("term-slug"))?(t.push(a),t):t}),o),l){var u=h||"and"!==d?",":"+";s[c]=o.join(u)}else s[c]=o.pop();h&&(s[c.replace("filter_","query_type_")]=d);break;case"review":r.length?s.rating_filter=r.val():(a=t.find(".filter-item").filter(".active").children("a, label"),l?s.rating_filter=a.get().reduce((function(t,i){var a;return(a=(i=e(i)).is("label")?i.find(":input").val():i.data("rating"))?(t.push(a),t):t}),[]).join(","):(a=a.first(),s.rating_filter=a.is("label")?a.find(":input").val():a.data("rating")));break;case"price_range":r.length?l?s.price_ranges=r.val().join(","):(s.min_price=r.val().split("-")[0],s.max_price=r.val().split("-")[1]):(a=t.find(".filter-item").filter(".active").children("a, label"),l?s.price_ranges=a.get().reduce((function(t,i){var a=e(i).data("range-min"),n=e(i).data("range-max");return t+=(n?"".concat(a,"-").concat(n):a)+","}),"").replace(/^(.*),$/,"$1"):(s.min_price=parseFloat(a.first().data("range-min")),s.max_price=parseFloat(a.first().data("range-max"))));break;case"price_slider":s.min_price=parseFloat(t.find(".price-slider-min").val()),s.max_price=parseFloat(t.find(".price-slider-max").val());break;case"stock_sale":t.find(".filter-on-sale").is(".active")&&(s.onsale_filter=1),t.find(".filter-in-stock").is(".active")&&(s.instock_filter=1),t.find(".filter-featured").is(".active")&&(s.featured_filter=1);break;case"orderby":s.orderby=t.find(".filter-order-by").val()}return s=void 0!==(i=t.triggerHandler("yith_wcan_filter_properties",[s,self]))?i:s}},{key:"getFiltersProperties",value:function(){var t={},i=this;return this.getFilters().each((function(){var a=e(this);if(i.isFilterActive(a)){var n=i.getFilterProperties(a);t=i.mergeProperties(t,n,a)}})),t}},{key:"getFiltersByProperties",value:function(t){var i=this;return this.getFilters().filter((function(){var a=e(this);if(i.isFilterActive(a)){var n=i.getFilterProperties(a),l=!1;for(var r in t){if(["min_price","max_price","price_ranges"].includes(r)&&(n.min_price||n.price_ranges)){l=!0;break}if(n[r]){l=!0;break}}return l}return!1}))}},{key:"maybeToggleClearFilter",value:function(e){this.isFilterActive(e)?this.maybeShowClearFilter(e):this.maybeHideClearFilter(e)}},{key:"maybeToggleClearAllFilters",value:function(){this.isAnyFilterActive()?this.maybeShowClearAllFilters():this.maybeHideClearAllFilters()}},{key:"maybeShowClearFilter",value:function(t){var i=this;this.isFilterActive(t)&&yith_wcan_shortcodes.show_clear_filter&&(t.find(".clear-selection").remove(),e("<a/>",{class:"clear-selection",text:yith_wcan_shortcodes.labels.clear_selection,role:"button"}).prependTo(t.find(".filter-content")).on("click",(function(e){e.preventDefault(),i.deactivateFilter(t,!1,yith_wcan_shortcodes.instant_filters),i.maybeHideClearFilter(t),yith_wcan_shortcodes.instant_filters&&i.closeModal()})))}},{key:"maybeShowClearAllFilters",value:function(){var t=this;this.isAnyFilterActive()&&this.isMobile&&(this.$preset.find(".clear-selection").remove(),e("<a/>",{class:"clear-selection",text:yith_wcan_shortcodes.labels.clear_all_selections,role:"button"}).prependTo(this.$preset.find(".filters-container")).on("click",(function(e){e.preventDefault(),t.deactivateAllFilters(yith_wcan_shortcodes.instant_filters),t.maybeHideClearAllFilters(),yith_wcan_shortcodes.instant_filters&&t.closeModal()})))}},{key:"maybeHideClearFilter",value:function(e){!this.isFilterActive(e)&&yith_wcan_shortcodes.show_clear_filter&&e.find(".clear-selection").remove()}},{key:"maybeHideClearAllFilters",value:function(){this.isAnyFilterActive()||this.$preset.find(".filters-container").children(".clear-selection").remove()}},{key:"deactivateFilter",value:function(t,i,a){var n=t.data("filter-type"),l=t.find(".filter-item"),r=l.filter(".active"),s=t.find(".filter-dropdown");switch(n){case"tax":var o=t.data("taxonomy");s.length?(i?s.find("option").each((function(){var t=e(this);t.val().toString()===i[o].toString()&&t.prop("selected",!1)})):s.find("option").prop("selected",!1),s.change()):i?r.each((function(){var t=e(this),a=t.children("label"),n=t.children("a");(a.length?a.find(":input").val():n.data("term-slug")).toString()===i[o].toString()&&(t.children("label").children("a").click(),t.removeClass("active"))})):(r.children("label").children("a").click(),r.removeClass("active"));break;case"review":s.length?(i?s.find("option").each((function(){var t=e(this);t.val()===i.rating_filter&&t.prop("selected",!1)})):s.find("option").prop("selected",!1),s.change()):i?r.each((function(){var t=e(this),a=t.children("label"),n=t.children("a");(a.length?a.find(":input").val():n.data("rating"))===i.rating_filter&&(t.children("label").children("a").click(),t.removeClass("active"))})):(r.children("label").children("a").click(),r.removeClass("active"));break;case"price_range":s.length?(i?s.find("option").each((function(){var t=e(this),a=i.min_price+(i.max_price?"-".concat(i.max_price):"");t.val()===a&&t.prop("selected",!1)})):s.find("option").prop("selected",!1),s.change()):i?r.each((function(){var t,a,n=e(this),l=n.children("label"),r=n.children("a");a=l.length?l.find(":input").val():r.data("min_price")+(r.data("max_price")?"-"+r.data("max_price"):""),i.min_price?t=i.min_price+(i.max_price?"-"+i.max_price:""):i.price_ranges&&(t=i.price_ranges),a===t&&(n.children("label").children("a").click(),n.removeClass("active"))})):(r.children("label").children("a").click(),r.removeClass("active"));break;case"price_slider":var c=t.find(".price-slider");t.find(".price-slider-min").val(c.data("min")),t.find(".price-slider-max").val(c.data("max")).change();break;case"orderby":t.find("select").val("menu_order");break;case"stock_sale":i?(null!=i&&i.instock_filter&&t.find(".filter-in-stock").find(":input").prop("checked",!1).change().closest(".filter-item").removeClass("active"),null!=i&&i.onsale_filter&&t.find(".filter-on-sale").find(":input").prop("checked",!1).change().closest(".filter-item").removeClass("active"),null!=i&&i.featured_filter&&t.find(".filter-featured").find(":input").prop("checked",!1).change().closest(".filter-item").removeClass("active")):(t.find(".filter-in-stock").find(":input").prop("checked",!1).change(),t.find(".filter-on-sale").find(":input").prop("checked",!1).change(),t.find(".filter-featured").find(":input").prop("checked",!1).change(),l.removeClass("active"));break;default:l.removeClass("active")}this.activeFilters=!1,a&&this.filter()}},{key:"deactivateAllFilters",value:function(t){var i=this;return this.getFilters().each((function(){var t=e(this);i.deactivateFilter(t)})),this.activeFilters=!1,t&&this.filter(),!0}},{key:"deactivateFilterByProperties",value:function(t,i){var a=this,n=this.getFiltersByProperties(t);return!!n.length&&(n.each((function(){var n=e(this);a.deactivateFilter(n,t,i)})),!0)}},{key:"openModal",value:function(){var t=this;this.isMobile&&(yith_wcan_shortcodes.toggles_open_on_modal?this._openAllCollapsables():this._closeAllCollapsables(),e("body").css("overflow","hidden").addClass("yith-wcan-preset-modal-open"),this.$preset.show(),setTimeout((function(){t.$preset.addClass("open")}),100))}},{key:"closeModal",value:function(){var t=this;this.isMobile&&(this.$preset.removeClass("open"),setTimeout((function(){t.$preset.hide(),e("body").css("overflow","auto").removeClass("yith-wcan-preset-modal-open")}),300))}},{key:"formatPrice",value:function(e){var t,i,a,n;return"undefined"!=typeof accounting&&(e=accounting.formatMoney(e,{symbol:null===(t=yith_wcan_shortcodes.currency_format)||void 0===t?void 0:t.symbol,decimal:null===(i=yith_wcan_shortcodes.currency_format)||void 0===i?void 0:i.decimal,thousand:null===(a=yith_wcan_shortcodes.currency_format)||void 0===a?void 0:a.thousand,precision:0,format:null===(n=yith_wcan_shortcodes.currency_format)||void 0===n?void 0:n.format})),e}},{key:"mergeProperties",value:function(t,i,a){for(var n in i)if(i.hasOwnProperty(n)&&t[n]){switch(n){case"rating_filter":case"min_price":case"max_price":case"onsale_filter":case"instock_filter":case"orderby":t[n]=i[n];break;default:if(0===n.indexOf("query_type_"))t[n]=i[n];else{var l=0===n.indexOf("filter_"),r=l?",":"+",s=t[n].replace(",",r)+r+i[n].replace(",",r);if(s=s.split(r).filter((function(e,t,i){return i.indexOf(e)===t})).join(r),t[n]=s,l){var o=n.replace("filter_","query_type_");t[o]="and",i[o]="and"}}}delete i[n]}return e.extend(t,i),t}}])&&f(i.prototype,a),n&&f(i,n),t}();jQuery((function(e){e(document).on("yith_wcan_init_shortcodes yith_plugin_fw_gutenberg_success_do_shortcode",(function(){e(".yith-wcan-filters").not(".enhanced").each((function(){new v(e(this))})),e(".yith-wcan-reset-filters").not(".enhanced").each((function(){new r(e(this))}))})).trigger("yith_wcan_init_shortcodes"),globalThis.product_filter=new l}))})();
|
assets/scss/shortcodes.scss
CHANGED
@@ -544,6 +544,7 @@ $z-index: 1001; // value is this high since modal must be on top of Proteo's sti
|
|
544 |
.yith-wcan-tooltip {
|
545 |
bottom: calc(100% + 15px);
|
546 |
top: auto;
|
|
|
547 |
}
|
548 |
}
|
549 |
|
544 |
.yith-wcan-tooltip {
|
545 |
bottom: calc(100% + 15px);
|
546 |
top: auto;
|
547 |
+
white-space: nowrap;
|
548 |
}
|
549 |
}
|
550 |
|
includes/class-yith-wcan-frontend.php
CHANGED
@@ -598,6 +598,7 @@ if ( ! class_exists( 'YITH_WCAN_Frontend' ) ) {
|
|
598 |
'change_browser_url' => in_array( yith_wcan_get_option( 'yith_wcan_change_browser_url', 'yes' ), array( 'yes', 'custom' ), true ),
|
599 |
'instant_filters' => true,
|
600 |
'ajax_filters' => true,
|
|
|
601 |
'show_clear_filter' => false,
|
602 |
'scroll_top' => false,
|
603 |
'scroll_target' => false,
|
598 |
'change_browser_url' => in_array( yith_wcan_get_option( 'yith_wcan_change_browser_url', 'yes' ), array( 'yes', 'custom' ), true ),
|
599 |
'instant_filters' => true,
|
600 |
'ajax_filters' => true,
|
601 |
+
'reload_on_back' => true,
|
602 |
'show_clear_filter' => false,
|
603 |
'scroll_top' => false,
|
604 |
'scroll_target' => false,
|
init.php
CHANGED
@@ -3,14 +3,14 @@
|
|
3 |
* Plugin Name: YITH WooCommerce Ajax Product Filter
|
4 |
* Plugin URI: https://wordpress.org/plugins/yith-woocommerce-ajax-navigation/
|
5 |
* Description: <code><strong>YITH WooCommerce AJAX Product Filter</strong></code> allows your users to find the product they are looking for as quickly as possible. Thanks to the plugin you will be able to set up one or more search filters for your WooCommerce products and improve the user experience of your shop. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>
|
6 |
-
* Version: 4.
|
7 |
* Author: YITH
|
8 |
* Author URI: https://yithemes.com/
|
9 |
* Text Domain: yith-woocommerce-ajax-navigation
|
10 |
* Domain Path: /languages/
|
11 |
*
|
12 |
-
* WC requires at least: 6.
|
13 |
-
* WC tested up to: 6.
|
14 |
*
|
15 |
* @author YITH
|
16 |
* @package YITH\AjaxProductFilter
|
@@ -45,7 +45,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
45 |
! defined( 'YITH_WCAN_DIR' ) && define( 'YITH_WCAN_DIR', plugin_dir_path( __FILE__ ) );
|
46 |
! defined( 'YITH_WCAN_INC' ) && define( 'YITH_WCAN_INC', YITH_WCAN_DIR . 'includes/' );
|
47 |
! defined( 'YITH_WCAN_ASSETS' ) && define( 'YITH_WCAN_ASSETS', YITH_WCAN_URL . 'assets/' );
|
48 |
-
! defined( 'YITH_WCAN_VERSION' ) && define( 'YITH_WCAN_VERSION', '4.
|
49 |
! defined( 'YITH_WCAN_FILE' ) && define( 'YITH_WCAN_FILE', __FILE__ );
|
50 |
! defined( 'YITH_WCAN_SLUG' ) && define( 'YITH_WCAN_SLUG', 'yith-woocommerce-ajax-navigation' );
|
51 |
! defined( 'YITH_WCAN_INIT' ) && define( 'YITH_WCAN_INIT', plugin_basename( __FILE__ ) );
|
3 |
* Plugin Name: YITH WooCommerce Ajax Product Filter
|
4 |
* Plugin URI: https://wordpress.org/plugins/yith-woocommerce-ajax-navigation/
|
5 |
* Description: <code><strong>YITH WooCommerce AJAX Product Filter</strong></code> allows your users to find the product they are looking for as quickly as possible. Thanks to the plugin you will be able to set up one or more search filters for your WooCommerce products and improve the user experience of your shop. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>
|
6 |
+
* Version: 4.14.0
|
7 |
* Author: YITH
|
8 |
* Author URI: https://yithemes.com/
|
9 |
* Text Domain: yith-woocommerce-ajax-navigation
|
10 |
* Domain Path: /languages/
|
11 |
*
|
12 |
+
* WC requires at least: 6.7
|
13 |
+
* WC tested up to: 6.9
|
14 |
*
|
15 |
* @author YITH
|
16 |
* @package YITH\AjaxProductFilter
|
45 |
! defined( 'YITH_WCAN_DIR' ) && define( 'YITH_WCAN_DIR', plugin_dir_path( __FILE__ ) );
|
46 |
! defined( 'YITH_WCAN_INC' ) && define( 'YITH_WCAN_INC', YITH_WCAN_DIR . 'includes/' );
|
47 |
! defined( 'YITH_WCAN_ASSETS' ) && define( 'YITH_WCAN_ASSETS', YITH_WCAN_URL . 'assets/' );
|
48 |
+
! defined( 'YITH_WCAN_VERSION' ) && define( 'YITH_WCAN_VERSION', '4.14.0' );
|
49 |
! defined( 'YITH_WCAN_FILE' ) && define( 'YITH_WCAN_FILE', __FILE__ );
|
50 |
! defined( 'YITH_WCAN_SLUG' ) && define( 'YITH_WCAN_SLUG', 'yith-woocommerce-ajax-navigation' );
|
51 |
! defined( 'YITH_WCAN_INIT' ) && define( 'YITH_WCAN_INIT', plugin_basename( __FILE__ ) );
|
languages/yith-woocommerce-ajax-navigation-de_DE.mo
CHANGED
Binary file
|
languages/yith-woocommerce-ajax-navigation-de_DE.po
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2022-
|
9 |
"PO-Revision-Date: 2021-03-02 11:03+0100\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
@@ -571,51 +571,51 @@ msgctxt "[Admin] Default filter title"
|
|
571 |
msgid "New filter"
|
572 |
msgstr "Neuer Filter"
|
573 |
|
574 |
-
#: includes/class-yith-wcan-frontend.php:
|
575 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
576 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
577 |
msgid "All"
|
578 |
msgstr "Alle"
|
579 |
|
580 |
-
#: includes/class-yith-wcan-frontend.php:
|
581 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
582 |
msgid "Search..."
|
583 |
msgstr "Suchen..."
|
584 |
|
585 |
-
#: includes/class-yith-wcan-frontend.php:
|
586 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
587 |
msgid "No item found"
|
588 |
msgstr "Kein Artikel gefunden"
|
589 |
|
590 |
#. translators: 1. Number of items to show.
|
591 |
-
#: includes/class-yith-wcan-frontend.php:
|
592 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
593 |
msgid "Show %d more"
|
594 |
msgstr "%d mehr anzeigen"
|
595 |
|
596 |
-
#: includes/class-yith-wcan-frontend.php:
|
597 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
598 |
msgid "Close"
|
599 |
msgstr "Schließen"
|
600 |
|
601 |
-
#: includes/class-yith-wcan-frontend.php:
|
602 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
603 |
msgid "Save"
|
604 |
msgstr ""
|
605 |
|
606 |
-
#: includes/class-yith-wcan-frontend.php:
|
607 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
608 |
msgid "Show results"
|
609 |
msgstr "Ergebnisse anzeigen"
|
610 |
|
611 |
-
#: includes/class-yith-wcan-frontend.php:
|
612 |
msgctxt ""
|
613 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
614 |
"selection"
|
615 |
msgid "Clear"
|
616 |
msgstr "Löschen"
|
617 |
|
618 |
-
#: includes/class-yith-wcan-frontend.php:
|
619 |
msgctxt ""
|
620 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
621 |
"selection"
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2022-09-20 12:09:06+00:00\n"
|
9 |
"PO-Revision-Date: 2021-03-02 11:03+0100\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
571 |
msgid "New filter"
|
572 |
msgstr "Neuer Filter"
|
573 |
|
574 |
+
#: includes/class-yith-wcan-frontend.php:626
|
575 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
576 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
577 |
msgid "All"
|
578 |
msgstr "Alle"
|
579 |
|
580 |
+
#: includes/class-yith-wcan-frontend.php:627
|
581 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
582 |
msgid "Search..."
|
583 |
msgstr "Suchen..."
|
584 |
|
585 |
+
#: includes/class-yith-wcan-frontend.php:628
|
586 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
587 |
msgid "No item found"
|
588 |
msgstr "Kein Artikel gefunden"
|
589 |
|
590 |
#. translators: 1. Number of items to show.
|
591 |
+
#: includes/class-yith-wcan-frontend.php:630
|
592 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
593 |
msgid "Show %d more"
|
594 |
msgstr "%d mehr anzeigen"
|
595 |
|
596 |
+
#: includes/class-yith-wcan-frontend.php:631
|
597 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
598 |
msgid "Close"
|
599 |
msgstr "Schließen"
|
600 |
|
601 |
+
#: includes/class-yith-wcan-frontend.php:632
|
602 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
603 |
msgid "Save"
|
604 |
msgstr ""
|
605 |
|
606 |
+
#: includes/class-yith-wcan-frontend.php:633
|
607 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
608 |
msgid "Show results"
|
609 |
msgstr "Ergebnisse anzeigen"
|
610 |
|
611 |
+
#: includes/class-yith-wcan-frontend.php:634
|
612 |
msgctxt ""
|
613 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
614 |
"selection"
|
615 |
msgid "Clear"
|
616 |
msgstr "Löschen"
|
617 |
|
618 |
+
#: includes/class-yith-wcan-frontend.php:635
|
619 |
msgctxt ""
|
620 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
621 |
"selection"
|
languages/yith-woocommerce-ajax-navigation-de_DE_formal.mo
CHANGED
Binary file
|
languages/yith-woocommerce-ajax-navigation-de_DE_formal.po
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2022-
|
9 |
"PO-Revision-Date: 2021-03-02 11:03+0100\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
@@ -572,51 +572,51 @@ msgctxt "[Admin] Default filter title"
|
|
572 |
msgid "New filter"
|
573 |
msgstr "Neuer Filter"
|
574 |
|
575 |
-
#: includes/class-yith-wcan-frontend.php:
|
576 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
577 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
578 |
msgid "All"
|
579 |
msgstr "Alle"
|
580 |
|
581 |
-
#: includes/class-yith-wcan-frontend.php:
|
582 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
583 |
msgid "Search..."
|
584 |
msgstr "Suchen..."
|
585 |
|
586 |
-
#: includes/class-yith-wcan-frontend.php:
|
587 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
588 |
msgid "No item found"
|
589 |
msgstr "Kein Artikel gefunden"
|
590 |
|
591 |
#. translators: 1. Number of items to show.
|
592 |
-
#: includes/class-yith-wcan-frontend.php:
|
593 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
594 |
msgid "Show %d more"
|
595 |
msgstr "%d mehr anzeigen"
|
596 |
|
597 |
-
#: includes/class-yith-wcan-frontend.php:
|
598 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
599 |
msgid "Close"
|
600 |
msgstr "Schließen"
|
601 |
|
602 |
-
#: includes/class-yith-wcan-frontend.php:
|
603 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
604 |
msgid "Save"
|
605 |
msgstr ""
|
606 |
|
607 |
-
#: includes/class-yith-wcan-frontend.php:
|
608 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
609 |
msgid "Show results"
|
610 |
msgstr "Ergebnisse anzeigen"
|
611 |
|
612 |
-
#: includes/class-yith-wcan-frontend.php:
|
613 |
msgctxt ""
|
614 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
615 |
"selection"
|
616 |
msgid "Clear"
|
617 |
msgstr "Löschen"
|
618 |
|
619 |
-
#: includes/class-yith-wcan-frontend.php:
|
620 |
msgctxt ""
|
621 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
622 |
"selection"
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2022-09-20 12:09:06+00:00\n"
|
9 |
"PO-Revision-Date: 2021-03-02 11:03+0100\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
572 |
msgid "New filter"
|
573 |
msgstr "Neuer Filter"
|
574 |
|
575 |
+
#: includes/class-yith-wcan-frontend.php:626
|
576 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
577 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
578 |
msgid "All"
|
579 |
msgstr "Alle"
|
580 |
|
581 |
+
#: includes/class-yith-wcan-frontend.php:627
|
582 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
583 |
msgid "Search..."
|
584 |
msgstr "Suchen..."
|
585 |
|
586 |
+
#: includes/class-yith-wcan-frontend.php:628
|
587 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
588 |
msgid "No item found"
|
589 |
msgstr "Kein Artikel gefunden"
|
590 |
|
591 |
#. translators: 1. Number of items to show.
|
592 |
+
#: includes/class-yith-wcan-frontend.php:630
|
593 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
594 |
msgid "Show %d more"
|
595 |
msgstr "%d mehr anzeigen"
|
596 |
|
597 |
+
#: includes/class-yith-wcan-frontend.php:631
|
598 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
599 |
msgid "Close"
|
600 |
msgstr "Schließen"
|
601 |
|
602 |
+
#: includes/class-yith-wcan-frontend.php:632
|
603 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
604 |
msgid "Save"
|
605 |
msgstr ""
|
606 |
|
607 |
+
#: includes/class-yith-wcan-frontend.php:633
|
608 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
609 |
msgid "Show results"
|
610 |
msgstr "Ergebnisse anzeigen"
|
611 |
|
612 |
+
#: includes/class-yith-wcan-frontend.php:634
|
613 |
msgctxt ""
|
614 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
615 |
"selection"
|
616 |
msgid "Clear"
|
617 |
msgstr "Löschen"
|
618 |
|
619 |
+
#: includes/class-yith-wcan-frontend.php:635
|
620 |
msgctxt ""
|
621 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
622 |
"selection"
|
languages/yith-woocommerce-ajax-navigation-el.mo
CHANGED
Binary file
|
languages/yith-woocommerce-ajax-navigation-el.po
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2022-
|
9 |
"PO-Revision-Date: 2021-02-12 13:32:43+0000\n"
|
10 |
"Language: el_GR\n"
|
11 |
"MIME-Version: 1.0\n"
|
@@ -571,51 +571,51 @@ msgctxt "[Admin] Default filter title"
|
|
571 |
msgid "New filter"
|
572 |
msgstr "Νέο φίλτρο"
|
573 |
|
574 |
-
#: includes/class-yith-wcan-frontend.php:
|
575 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
576 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
577 |
msgid "All"
|
578 |
msgstr "Όλα"
|
579 |
|
580 |
-
#: includes/class-yith-wcan-frontend.php:
|
581 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
582 |
msgid "Search..."
|
583 |
msgstr "Αναζήτηση…"
|
584 |
|
585 |
-
#: includes/class-yith-wcan-frontend.php:
|
586 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
587 |
msgid "No item found"
|
588 |
msgstr "Δεν βρέθηκε αντικείμενο"
|
589 |
|
590 |
#. translators: 1. Number of items to show.
|
591 |
-
#: includes/class-yith-wcan-frontend.php:
|
592 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
593 |
msgid "Show %d more"
|
594 |
msgstr "Εμφάνιση %d περισσότερων"
|
595 |
|
596 |
-
#: includes/class-yith-wcan-frontend.php:
|
597 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
598 |
msgid "Close"
|
599 |
msgstr "Κλείσιμο"
|
600 |
|
601 |
-
#: includes/class-yith-wcan-frontend.php:
|
602 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
603 |
msgid "Save"
|
604 |
msgstr ""
|
605 |
|
606 |
-
#: includes/class-yith-wcan-frontend.php:
|
607 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
608 |
msgid "Show results"
|
609 |
msgstr "Εμφάνιση αποτελεσμάτων"
|
610 |
|
611 |
-
#: includes/class-yith-wcan-frontend.php:
|
612 |
msgctxt ""
|
613 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
614 |
"selection"
|
615 |
msgid "Clear"
|
616 |
msgstr "Καθαρισμός"
|
617 |
|
618 |
-
#: includes/class-yith-wcan-frontend.php:
|
619 |
msgctxt ""
|
620 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
621 |
"selection"
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2022-09-20 12:09:06+00:00\n"
|
9 |
"PO-Revision-Date: 2021-02-12 13:32:43+0000\n"
|
10 |
"Language: el_GR\n"
|
11 |
"MIME-Version: 1.0\n"
|
571 |
msgid "New filter"
|
572 |
msgstr "Νέο φίλτρο"
|
573 |
|
574 |
+
#: includes/class-yith-wcan-frontend.php:626
|
575 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
576 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
577 |
msgid "All"
|
578 |
msgstr "Όλα"
|
579 |
|
580 |
+
#: includes/class-yith-wcan-frontend.php:627
|
581 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
582 |
msgid "Search..."
|
583 |
msgstr "Αναζήτηση…"
|
584 |
|
585 |
+
#: includes/class-yith-wcan-frontend.php:628
|
586 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
587 |
msgid "No item found"
|
588 |
msgstr "Δεν βρέθηκε αντικείμενο"
|
589 |
|
590 |
#. translators: 1. Number of items to show.
|
591 |
+
#: includes/class-yith-wcan-frontend.php:630
|
592 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
593 |
msgid "Show %d more"
|
594 |
msgstr "Εμφάνιση %d περισσότερων"
|
595 |
|
596 |
+
#: includes/class-yith-wcan-frontend.php:631
|
597 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
598 |
msgid "Close"
|
599 |
msgstr "Κλείσιμο"
|
600 |
|
601 |
+
#: includes/class-yith-wcan-frontend.php:632
|
602 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
603 |
msgid "Save"
|
604 |
msgstr ""
|
605 |
|
606 |
+
#: includes/class-yith-wcan-frontend.php:633
|
607 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
608 |
msgid "Show results"
|
609 |
msgstr "Εμφάνιση αποτελεσμάτων"
|
610 |
|
611 |
+
#: includes/class-yith-wcan-frontend.php:634
|
612 |
msgctxt ""
|
613 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
614 |
"selection"
|
615 |
msgid "Clear"
|
616 |
msgstr "Καθαρισμός"
|
617 |
|
618 |
+
#: includes/class-yith-wcan-frontend.php:635
|
619 |
msgctxt ""
|
620 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
621 |
"selection"
|
languages/yith-woocommerce-ajax-navigation-es_ES.mo
CHANGED
Binary file
|
languages/yith-woocommerce-ajax-navigation-es_ES.po
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2022-
|
9 |
"PO-Revision-Date: 2021-02-12 13:30:42+0000\n"
|
10 |
"Language: es\n"
|
11 |
"MIME-Version: 1.0\n"
|
@@ -569,51 +569,51 @@ msgctxt "[Admin] Default filter title"
|
|
569 |
msgid "New filter"
|
570 |
msgstr "Nuevo filtro"
|
571 |
|
572 |
-
#: includes/class-yith-wcan-frontend.php:
|
573 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
574 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
575 |
msgid "All"
|
576 |
msgstr "Todo"
|
577 |
|
578 |
-
#: includes/class-yith-wcan-frontend.php:
|
579 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
580 |
msgid "Search..."
|
581 |
msgstr "Buscar..."
|
582 |
|
583 |
-
#: includes/class-yith-wcan-frontend.php:
|
584 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
585 |
msgid "No item found"
|
586 |
msgstr "No se han encontrado artículos."
|
587 |
|
588 |
#. translators: 1. Number of items to show.
|
589 |
-
#: includes/class-yith-wcan-frontend.php:
|
590 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
591 |
msgid "Show %d more"
|
592 |
msgstr "Mostrar %d más"
|
593 |
|
594 |
-
#: includes/class-yith-wcan-frontend.php:
|
595 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
596 |
msgid "Close"
|
597 |
msgstr "Cerrar"
|
598 |
|
599 |
-
#: includes/class-yith-wcan-frontend.php:
|
600 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
601 |
msgid "Save"
|
602 |
msgstr ""
|
603 |
|
604 |
-
#: includes/class-yith-wcan-frontend.php:
|
605 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
606 |
msgid "Show results"
|
607 |
msgstr "Mostrar resultados"
|
608 |
|
609 |
-
#: includes/class-yith-wcan-frontend.php:
|
610 |
msgctxt ""
|
611 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
612 |
"selection"
|
613 |
msgid "Clear"
|
614 |
msgstr "Limpiar"
|
615 |
|
616 |
-
#: includes/class-yith-wcan-frontend.php:
|
617 |
msgctxt ""
|
618 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
619 |
"selection"
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2022-09-20 12:09:06+00:00\n"
|
9 |
"PO-Revision-Date: 2021-02-12 13:30:42+0000\n"
|
10 |
"Language: es\n"
|
11 |
"MIME-Version: 1.0\n"
|
569 |
msgid "New filter"
|
570 |
msgstr "Nuevo filtro"
|
571 |
|
572 |
+
#: includes/class-yith-wcan-frontend.php:626
|
573 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
574 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
575 |
msgid "All"
|
576 |
msgstr "Todo"
|
577 |
|
578 |
+
#: includes/class-yith-wcan-frontend.php:627
|
579 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
580 |
msgid "Search..."
|
581 |
msgstr "Buscar..."
|
582 |
|
583 |
+
#: includes/class-yith-wcan-frontend.php:628
|
584 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
585 |
msgid "No item found"
|
586 |
msgstr "No se han encontrado artículos."
|
587 |
|
588 |
#. translators: 1. Number of items to show.
|
589 |
+
#: includes/class-yith-wcan-frontend.php:630
|
590 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
591 |
msgid "Show %d more"
|
592 |
msgstr "Mostrar %d más"
|
593 |
|
594 |
+
#: includes/class-yith-wcan-frontend.php:631
|
595 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
596 |
msgid "Close"
|
597 |
msgstr "Cerrar"
|
598 |
|
599 |
+
#: includes/class-yith-wcan-frontend.php:632
|
600 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
601 |
msgid "Save"
|
602 |
msgstr ""
|
603 |
|
604 |
+
#: includes/class-yith-wcan-frontend.php:633
|
605 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
606 |
msgid "Show results"
|
607 |
msgstr "Mostrar resultados"
|
608 |
|
609 |
+
#: includes/class-yith-wcan-frontend.php:634
|
610 |
msgctxt ""
|
611 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
612 |
"selection"
|
613 |
msgid "Clear"
|
614 |
msgstr "Limpiar"
|
615 |
|
616 |
+
#: includes/class-yith-wcan-frontend.php:635
|
617 |
msgctxt ""
|
618 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
619 |
"selection"
|
languages/yith-woocommerce-ajax-navigation-fr_FR.mo
CHANGED
Binary file
|
languages/yith-woocommerce-ajax-navigation-fr_FR.po
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2022-
|
9 |
"PO-Revision-Date: 2020-12-29 14:36:56+0000\n"
|
10 |
"Language: fr\n"
|
11 |
"MIME-Version: 1.0\n"
|
@@ -545,51 +545,51 @@ msgctxt "[Admin] Default filter title"
|
|
545 |
msgid "New filter"
|
546 |
msgstr ""
|
547 |
|
548 |
-
#: includes/class-yith-wcan-frontend.php:
|
549 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
550 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
551 |
msgid "All"
|
552 |
msgstr ""
|
553 |
|
554 |
-
#: includes/class-yith-wcan-frontend.php:
|
555 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
556 |
msgid "Search..."
|
557 |
msgstr ""
|
558 |
|
559 |
-
#: includes/class-yith-wcan-frontend.php:
|
560 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
561 |
msgid "No item found"
|
562 |
msgstr ""
|
563 |
|
564 |
#. translators: 1. Number of items to show.
|
565 |
-
#: includes/class-yith-wcan-frontend.php:
|
566 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
567 |
msgid "Show %d more"
|
568 |
msgstr ""
|
569 |
|
570 |
-
#: includes/class-yith-wcan-frontend.php:
|
571 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
572 |
msgid "Close"
|
573 |
msgstr ""
|
574 |
|
575 |
-
#: includes/class-yith-wcan-frontend.php:
|
576 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
577 |
msgid "Save"
|
578 |
msgstr ""
|
579 |
|
580 |
-
#: includes/class-yith-wcan-frontend.php:
|
581 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
582 |
msgid "Show results"
|
583 |
msgstr ""
|
584 |
|
585 |
-
#: includes/class-yith-wcan-frontend.php:
|
586 |
msgctxt ""
|
587 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
588 |
"selection"
|
589 |
msgid "Clear"
|
590 |
msgstr ""
|
591 |
|
592 |
-
#: includes/class-yith-wcan-frontend.php:
|
593 |
msgctxt ""
|
594 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
595 |
"selection"
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2022-09-20 12:09:06+00:00\n"
|
9 |
"PO-Revision-Date: 2020-12-29 14:36:56+0000\n"
|
10 |
"Language: fr\n"
|
11 |
"MIME-Version: 1.0\n"
|
545 |
msgid "New filter"
|
546 |
msgstr ""
|
547 |
|
548 |
+
#: includes/class-yith-wcan-frontend.php:626
|
549 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
550 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
551 |
msgid "All"
|
552 |
msgstr ""
|
553 |
|
554 |
+
#: includes/class-yith-wcan-frontend.php:627
|
555 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
556 |
msgid "Search..."
|
557 |
msgstr ""
|
558 |
|
559 |
+
#: includes/class-yith-wcan-frontend.php:628
|
560 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
561 |
msgid "No item found"
|
562 |
msgstr ""
|
563 |
|
564 |
#. translators: 1. Number of items to show.
|
565 |
+
#: includes/class-yith-wcan-frontend.php:630
|
566 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
567 |
msgid "Show %d more"
|
568 |
msgstr ""
|
569 |
|
570 |
+
#: includes/class-yith-wcan-frontend.php:631
|
571 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
572 |
msgid "Close"
|
573 |
msgstr ""
|
574 |
|
575 |
+
#: includes/class-yith-wcan-frontend.php:632
|
576 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
577 |
msgid "Save"
|
578 |
msgstr ""
|
579 |
|
580 |
+
#: includes/class-yith-wcan-frontend.php:633
|
581 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
582 |
msgid "Show results"
|
583 |
msgstr ""
|
584 |
|
585 |
+
#: includes/class-yith-wcan-frontend.php:634
|
586 |
msgctxt ""
|
587 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
588 |
"selection"
|
589 |
msgid "Clear"
|
590 |
msgstr ""
|
591 |
|
592 |
+
#: includes/class-yith-wcan-frontend.php:635
|
593 |
msgctxt ""
|
594 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
595 |
"selection"
|
languages/yith-woocommerce-ajax-navigation-it_IT.mo
CHANGED
Binary file
|
languages/yith-woocommerce-ajax-navigation-it_IT.po
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2022-
|
9 |
"PO-Revision-Date: 2021-03-03 10:36+0100\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
@@ -567,51 +567,51 @@ msgctxt "[Admin] Default filter title"
|
|
567 |
msgid "New filter"
|
568 |
msgstr "Nuovo filtro"
|
569 |
|
570 |
-
#: includes/class-yith-wcan-frontend.php:
|
571 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
572 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
573 |
msgid "All"
|
574 |
msgstr "Tutte"
|
575 |
|
576 |
-
#: includes/class-yith-wcan-frontend.php:
|
577 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
578 |
msgid "Search..."
|
579 |
msgstr "Cerca..."
|
580 |
|
581 |
-
#: includes/class-yith-wcan-frontend.php:
|
582 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
583 |
msgid "No item found"
|
584 |
msgstr "Nessun elemento trovato"
|
585 |
|
586 |
#. translators: 1. Number of items to show.
|
587 |
-
#: includes/class-yith-wcan-frontend.php:
|
588 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
589 |
msgid "Show %d more"
|
590 |
msgstr "Mostra altri %d"
|
591 |
|
592 |
-
#: includes/class-yith-wcan-frontend.php:
|
593 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
594 |
msgid "Close"
|
595 |
msgstr "Chiudi"
|
596 |
|
597 |
-
#: includes/class-yith-wcan-frontend.php:
|
598 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
599 |
msgid "Save"
|
600 |
msgstr ""
|
601 |
|
602 |
-
#: includes/class-yith-wcan-frontend.php:
|
603 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
604 |
msgid "Show results"
|
605 |
msgstr "Mostra risultati"
|
606 |
|
607 |
-
#: includes/class-yith-wcan-frontend.php:
|
608 |
msgctxt ""
|
609 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
610 |
"selection"
|
611 |
msgid "Clear"
|
612 |
msgstr "Cancella"
|
613 |
|
614 |
-
#: includes/class-yith-wcan-frontend.php:
|
615 |
msgctxt ""
|
616 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
617 |
"selection"
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2022-09-20 12:09:06+00:00\n"
|
9 |
"PO-Revision-Date: 2021-03-03 10:36+0100\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
567 |
msgid "New filter"
|
568 |
msgstr "Nuovo filtro"
|
569 |
|
570 |
+
#: includes/class-yith-wcan-frontend.php:626
|
571 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
572 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
573 |
msgid "All"
|
574 |
msgstr "Tutte"
|
575 |
|
576 |
+
#: includes/class-yith-wcan-frontend.php:627
|
577 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
578 |
msgid "Search..."
|
579 |
msgstr "Cerca..."
|
580 |
|
581 |
+
#: includes/class-yith-wcan-frontend.php:628
|
582 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
583 |
msgid "No item found"
|
584 |
msgstr "Nessun elemento trovato"
|
585 |
|
586 |
#. translators: 1. Number of items to show.
|
587 |
+
#: includes/class-yith-wcan-frontend.php:630
|
588 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
589 |
msgid "Show %d more"
|
590 |
msgstr "Mostra altri %d"
|
591 |
|
592 |
+
#: includes/class-yith-wcan-frontend.php:631
|
593 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
594 |
msgid "Close"
|
595 |
msgstr "Chiudi"
|
596 |
|
597 |
+
#: includes/class-yith-wcan-frontend.php:632
|
598 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
599 |
msgid "Save"
|
600 |
msgstr ""
|
601 |
|
602 |
+
#: includes/class-yith-wcan-frontend.php:633
|
603 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
604 |
msgid "Show results"
|
605 |
msgstr "Mostra risultati"
|
606 |
|
607 |
+
#: includes/class-yith-wcan-frontend.php:634
|
608 |
msgctxt ""
|
609 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
610 |
"selection"
|
611 |
msgid "Clear"
|
612 |
msgstr "Cancella"
|
613 |
|
614 |
+
#: includes/class-yith-wcan-frontend.php:635
|
615 |
msgctxt ""
|
616 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
617 |
"selection"
|
languages/yith-woocommerce-ajax-navigation-nl_NL.mo
CHANGED
Binary file
|
languages/yith-woocommerce-ajax-navigation-nl_NL.po
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2022-
|
9 |
"PO-Revision-Date: 2021-02-12 13:32:05+0000\n"
|
10 |
"Language: nl\n"
|
11 |
"MIME-Version: 1.0\n"
|
@@ -565,51 +565,51 @@ msgctxt "[Admin] Default filter title"
|
|
565 |
msgid "New filter"
|
566 |
msgstr "Nieuwe filter"
|
567 |
|
568 |
-
#: includes/class-yith-wcan-frontend.php:
|
569 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
570 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
571 |
msgid "All"
|
572 |
msgstr "Alle"
|
573 |
|
574 |
-
#: includes/class-yith-wcan-frontend.php:
|
575 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
576 |
msgid "Search..."
|
577 |
msgstr "Zoeken..."
|
578 |
|
579 |
-
#: includes/class-yith-wcan-frontend.php:
|
580 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
581 |
msgid "No item found"
|
582 |
msgstr "Geen item gevonden"
|
583 |
|
584 |
#. translators: 1. Number of items to show.
|
585 |
-
#: includes/class-yith-wcan-frontend.php:
|
586 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
587 |
msgid "Show %d more"
|
588 |
msgstr "Toon %d meer"
|
589 |
|
590 |
-
#: includes/class-yith-wcan-frontend.php:
|
591 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
592 |
msgid "Close"
|
593 |
msgstr "Sluiten"
|
594 |
|
595 |
-
#: includes/class-yith-wcan-frontend.php:
|
596 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
597 |
msgid "Save"
|
598 |
msgstr ""
|
599 |
|
600 |
-
#: includes/class-yith-wcan-frontend.php:
|
601 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
602 |
msgid "Show results"
|
603 |
msgstr "Resultaten weergeven"
|
604 |
|
605 |
-
#: includes/class-yith-wcan-frontend.php:
|
606 |
msgctxt ""
|
607 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
608 |
"selection"
|
609 |
msgid "Clear"
|
610 |
msgstr "Wissen"
|
611 |
|
612 |
-
#: includes/class-yith-wcan-frontend.php:
|
613 |
msgctxt ""
|
614 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
615 |
"selection"
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2022-09-20 12:09:06+00:00\n"
|
9 |
"PO-Revision-Date: 2021-02-12 13:32:05+0000\n"
|
10 |
"Language: nl\n"
|
11 |
"MIME-Version: 1.0\n"
|
565 |
msgid "New filter"
|
566 |
msgstr "Nieuwe filter"
|
567 |
|
568 |
+
#: includes/class-yith-wcan-frontend.php:626
|
569 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
570 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
571 |
msgid "All"
|
572 |
msgstr "Alle"
|
573 |
|
574 |
+
#: includes/class-yith-wcan-frontend.php:627
|
575 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
576 |
msgid "Search..."
|
577 |
msgstr "Zoeken..."
|
578 |
|
579 |
+
#: includes/class-yith-wcan-frontend.php:628
|
580 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
581 |
msgid "No item found"
|
582 |
msgstr "Geen item gevonden"
|
583 |
|
584 |
#. translators: 1. Number of items to show.
|
585 |
+
#: includes/class-yith-wcan-frontend.php:630
|
586 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
587 |
msgid "Show %d more"
|
588 |
msgstr "Toon %d meer"
|
589 |
|
590 |
+
#: includes/class-yith-wcan-frontend.php:631
|
591 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
592 |
msgid "Close"
|
593 |
msgstr "Sluiten"
|
594 |
|
595 |
+
#: includes/class-yith-wcan-frontend.php:632
|
596 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
597 |
msgid "Save"
|
598 |
msgstr ""
|
599 |
|
600 |
+
#: includes/class-yith-wcan-frontend.php:633
|
601 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
602 |
msgid "Show results"
|
603 |
msgstr "Resultaten weergeven"
|
604 |
|
605 |
+
#: includes/class-yith-wcan-frontend.php:634
|
606 |
msgctxt ""
|
607 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
608 |
"selection"
|
609 |
msgid "Clear"
|
610 |
msgstr "Wissen"
|
611 |
|
612 |
+
#: includes/class-yith-wcan-frontend.php:635
|
613 |
msgctxt ""
|
614 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
615 |
"selection"
|
languages/yith-woocommerce-ajax-navigation-tr_TR.mo
CHANGED
Binary file
|
languages/yith-woocommerce-ajax-navigation-tr_TR.po
CHANGED
@@ -3,7 +3,7 @@ msgstr ""
|
|
3 |
"Project-Id-Version: YITH WooCommerce Ajax Product filter\n"
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
5 |
"ajax-product-filter\n"
|
6 |
-
"POT-Creation-Date: 2022-
|
7 |
"PO-Revision-Date: 2019-06-06 10:16+0200\n"
|
8 |
"Last-Translator: Caner Öncel <caneroncel@gmail.com>\n"
|
9 |
"Language-Team: Caner Öncel <caneroncel@gmail.com>\n"
|
@@ -566,51 +566,51 @@ msgctxt "[Admin] Default filter title"
|
|
566 |
msgid "New filter"
|
567 |
msgstr ""
|
568 |
|
569 |
-
#: includes/class-yith-wcan-frontend.php:
|
570 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
571 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
572 |
msgid "All"
|
573 |
msgstr ""
|
574 |
|
575 |
-
#: includes/class-yith-wcan-frontend.php:
|
576 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
577 |
msgid "Search..."
|
578 |
msgstr ""
|
579 |
|
580 |
-
#: includes/class-yith-wcan-frontend.php:
|
581 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
582 |
msgid "No item found"
|
583 |
msgstr ""
|
584 |
|
585 |
#. translators: 1. Number of items to show.
|
586 |
-
#: includes/class-yith-wcan-frontend.php:
|
587 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
588 |
msgid "Show %d more"
|
589 |
msgstr ""
|
590 |
|
591 |
-
#: includes/class-yith-wcan-frontend.php:
|
592 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
593 |
msgid "Close"
|
594 |
msgstr ""
|
595 |
|
596 |
-
#: includes/class-yith-wcan-frontend.php:
|
597 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
598 |
msgid "Save"
|
599 |
msgstr ""
|
600 |
|
601 |
-
#: includes/class-yith-wcan-frontend.php:
|
602 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
603 |
msgid "Show results"
|
604 |
msgstr ""
|
605 |
|
606 |
-
#: includes/class-yith-wcan-frontend.php:
|
607 |
msgctxt ""
|
608 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
609 |
"selection"
|
610 |
msgid "Clear"
|
611 |
msgstr ""
|
612 |
|
613 |
-
#: includes/class-yith-wcan-frontend.php:
|
614 |
msgctxt ""
|
615 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
616 |
"selection"
|
3 |
"Project-Id-Version: YITH WooCommerce Ajax Product filter\n"
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
5 |
"ajax-product-filter\n"
|
6 |
+
"POT-Creation-Date: 2022-09-20 12:09:06+00:00\n"
|
7 |
"PO-Revision-Date: 2019-06-06 10:16+0200\n"
|
8 |
"Last-Translator: Caner Öncel <caneroncel@gmail.com>\n"
|
9 |
"Language-Team: Caner Öncel <caneroncel@gmail.com>\n"
|
566 |
msgid "New filter"
|
567 |
msgstr ""
|
568 |
|
569 |
+
#: includes/class-yith-wcan-frontend.php:626
|
570 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
571 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
572 |
msgid "All"
|
573 |
msgstr ""
|
574 |
|
575 |
+
#: includes/class-yith-wcan-frontend.php:627
|
576 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
577 |
msgid "Search..."
|
578 |
msgstr ""
|
579 |
|
580 |
+
#: includes/class-yith-wcan-frontend.php:628
|
581 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
582 |
msgid "No item found"
|
583 |
msgstr ""
|
584 |
|
585 |
#. translators: 1. Number of items to show.
|
586 |
+
#: includes/class-yith-wcan-frontend.php:630
|
587 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
588 |
msgid "Show %d more"
|
589 |
msgstr ""
|
590 |
|
591 |
+
#: includes/class-yith-wcan-frontend.php:631
|
592 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
593 |
msgid "Close"
|
594 |
msgstr ""
|
595 |
|
596 |
+
#: includes/class-yith-wcan-frontend.php:632
|
597 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
598 |
msgid "Save"
|
599 |
msgstr ""
|
600 |
|
601 |
+
#: includes/class-yith-wcan-frontend.php:633
|
602 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
603 |
msgid "Show results"
|
604 |
msgstr ""
|
605 |
|
606 |
+
#: includes/class-yith-wcan-frontend.php:634
|
607 |
msgctxt ""
|
608 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
609 |
"selection"
|
610 |
msgid "Clear"
|
611 |
msgstr ""
|
612 |
|
613 |
+
#: includes/class-yith-wcan-frontend.php:635
|
614 |
msgctxt ""
|
615 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
616 |
"selection"
|
languages/yith-woocommerce-ajax-navigation.pot
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Navigation\n"
|
6 |
"Report-Msgid-Bugs-To: "
|
7 |
"https://wordpress.org/support/plugin/yith-woocommerce-ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2022-
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=utf-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -553,51 +553,51 @@ msgctxt "[Admin] Default filter title"
|
|
553 |
msgid "New filter"
|
554 |
msgstr ""
|
555 |
|
556 |
-
#: includes/class-yith-wcan-frontend.php:
|
557 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
558 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
559 |
msgid "All"
|
560 |
msgstr ""
|
561 |
|
562 |
-
#: includes/class-yith-wcan-frontend.php:
|
563 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
564 |
msgid "Search..."
|
565 |
msgstr ""
|
566 |
|
567 |
-
#: includes/class-yith-wcan-frontend.php:
|
568 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
569 |
msgid "No item found"
|
570 |
msgstr ""
|
571 |
|
572 |
-
#: includes/class-yith-wcan-frontend.php:
|
573 |
#. translators: 1. Number of items to show.
|
574 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
575 |
msgid "Show %d more"
|
576 |
msgstr ""
|
577 |
|
578 |
-
#: includes/class-yith-wcan-frontend.php:
|
579 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
580 |
msgid "Close"
|
581 |
msgstr ""
|
582 |
|
583 |
-
#: includes/class-yith-wcan-frontend.php:
|
584 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
585 |
msgid "Save"
|
586 |
msgstr ""
|
587 |
|
588 |
-
#: includes/class-yith-wcan-frontend.php:
|
589 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
590 |
msgid "Show results"
|
591 |
msgstr ""
|
592 |
|
593 |
-
#: includes/class-yith-wcan-frontend.php:
|
594 |
msgctxt ""
|
595 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
596 |
"selection"
|
597 |
msgid "Clear"
|
598 |
msgstr ""
|
599 |
|
600 |
-
#: includes/class-yith-wcan-frontend.php:
|
601 |
msgctxt ""
|
602 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
603 |
"selection"
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Navigation\n"
|
6 |
"Report-Msgid-Bugs-To: "
|
7 |
"https://wordpress.org/support/plugin/yith-woocommerce-ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2022-09-20 12:09:06+00:00\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=utf-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
553 |
msgid "New filter"
|
554 |
msgstr ""
|
555 |
|
556 |
+
#: includes/class-yith-wcan-frontend.php:626
|
557 |
#: includes/filters/class-yith-wcan-filter-tax.php:62
|
558 |
msgctxt "[FRONTEND] \"All\" label shown when no term is selected"
|
559 |
msgid "All"
|
560 |
msgstr ""
|
561 |
|
562 |
+
#: includes/class-yith-wcan-frontend.php:627
|
563 |
msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
|
564 |
msgid "Search..."
|
565 |
msgstr ""
|
566 |
|
567 |
+
#: includes/class-yith-wcan-frontend.php:628
|
568 |
msgctxt "[FRONTEND] Empty items list in the dropdown"
|
569 |
msgid "No item found"
|
570 |
msgstr ""
|
571 |
|
572 |
+
#: includes/class-yith-wcan-frontend.php:630
|
573 |
#. translators: 1. Number of items to show.
|
574 |
msgctxt "[FRONTEND] Show more link on terms dropdown"
|
575 |
msgid "Show %d more"
|
576 |
msgstr ""
|
577 |
|
578 |
+
#: includes/class-yith-wcan-frontend.php:631
|
579 |
msgctxt "[FRONTEND] Alt text for modal close button on mobile"
|
580 |
msgid "Close"
|
581 |
msgstr ""
|
582 |
|
583 |
+
#: includes/class-yith-wcan-frontend.php:632
|
584 |
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
585 |
msgid "Save"
|
586 |
msgstr ""
|
587 |
|
588 |
+
#: includes/class-yith-wcan-frontend.php:633
|
589 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
590 |
msgid "Show results"
|
591 |
msgstr ""
|
592 |
|
593 |
+
#: includes/class-yith-wcan-frontend.php:634
|
594 |
msgctxt ""
|
595 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
596 |
"selection"
|
597 |
msgid "Clear"
|
598 |
msgstr ""
|
599 |
|
600 |
+
#: includes/class-yith-wcan-frontend.php:635
|
601 |
msgctxt ""
|
602 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
603 |
"selection"
|
plugin-fw/assets/css/welcome-modal.css
ADDED
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Welcome Modal.
|
3 |
+
*/
|
4 |
+
.yith-plugin-fw-welcome-modal .yith-plugin-fw__modal__content {
|
5 |
+
padding-bottom: 0;
|
6 |
+
}
|
7 |
+
|
8 |
+
.yith-plugin-fw-welcome-modal .yith-plugin-fw__modal__footer {
|
9 |
+
background: transparent;
|
10 |
+
text-align: center;
|
11 |
+
}
|
12 |
+
|
13 |
+
.yith-plugin-fw-welcome {
|
14 |
+
line-height: 1.5em;
|
15 |
+
}
|
16 |
+
|
17 |
+
.yith-plugin-fw-welcome a {
|
18 |
+
color: var(--yith-link);
|
19 |
+
}
|
20 |
+
|
21 |
+
.yith-plugin-fw-welcome .yith-plugin-fw-welcome__head {
|
22 |
+
text-align: center;
|
23 |
+
}
|
24 |
+
|
25 |
+
.yith-plugin-fw-welcome .yith-plugin-fw-welcome__icon {
|
26 |
+
width: 60px;
|
27 |
+
}
|
28 |
+
|
29 |
+
.yith-plugin-fw-welcome .yith-plugin-fw-welcome__title {
|
30 |
+
color: #03689f;
|
31 |
+
font-size: 18px;
|
32 |
+
line-height: 2em;
|
33 |
+
}
|
34 |
+
|
35 |
+
.yith-plugin-fw-welcome .yith-plugin-fw-welcome__description {
|
36 |
+
margin: 15px 0 25px;
|
37 |
+
}
|
38 |
+
|
39 |
+
.yith-plugin-fw-welcome .yith-plugin-fw-welcome__title__plugin-name {
|
40 |
+
font-weight: 700;
|
41 |
+
}
|
42 |
+
|
43 |
+
.yith-plugin-fw-welcome .yith-plugin-fw-welcome__list-head {
|
44 |
+
display: flex;
|
45 |
+
align-items: center;
|
46 |
+
}
|
47 |
+
|
48 |
+
.yith-plugin-fw-welcome .yith-plugin-fw-welcome__list-head__title {
|
49 |
+
font-size: 1.2em;
|
50 |
+
font-weight: 700;
|
51 |
+
flex: 1;
|
52 |
+
}
|
53 |
+
|
54 |
+
.yith-plugin-fw-welcome .yith-plugin-fw-welcome__list-head__changelog {
|
55 |
+
font-size: .85em;
|
56 |
+
text-decoration: none;
|
57 |
+
font-weight: 500;
|
58 |
+
}
|
59 |
+
|
60 |
+
.yith-plugin-fw-welcome.yith-plugin-fw-welcome--update .yith-plugin-fw-welcome__list-head {
|
61 |
+
margin-top: 30px;
|
62 |
+
}
|
63 |
+
|
64 |
+
.yith-plugin-fw-welcome__close {
|
65 |
+
color: var(--yith-link);
|
66 |
+
cursor: pointer;
|
67 |
+
font-size: .9em;
|
68 |
+
display: inline-block;
|
69 |
+
padding: 5px 10px;
|
70 |
+
text-decoration: none;
|
71 |
+
font-weight: 500;
|
72 |
+
}
|
plugin-fw/assets/css/yith-bh-onboarding.css
CHANGED
@@ -133,6 +133,7 @@
|
|
133 |
#yith-bh-onboarding ul.yith-bh-onboarding-connect-list p {
|
134 |
font-size: 13px;
|
135 |
line-height: 1.6em;
|
|
|
136 |
}
|
137 |
|
138 |
#yith-bh-onboarding .yith-bh-onboarding-connect-cta {
|
133 |
#yith-bh-onboarding ul.yith-bh-onboarding-connect-list p {
|
134 |
font-size: 13px;
|
135 |
line-height: 1.6em;
|
136 |
+
padding-left:10px;
|
137 |
}
|
138 |
|
139 |
#yith-bh-onboarding .yith-bh-onboarding-connect-cta {
|
plugin-fw/assets/css/yith-plugin-ui.css
CHANGED
@@ -969,6 +969,79 @@
|
|
969 |
border: 1px solid var(--yith-delete-hover);
|
970 |
}
|
971 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
972 |
.yith-plugin-fw__list-table-blank-state {
|
973 |
padding: 30px 30px 0;
|
974 |
text-align: center;
|
969 |
border: 1px solid var(--yith-delete-hover);
|
970 |
}
|
971 |
|
972 |
+
.yith-plugin-fw__list-items {
|
973 |
+
display: grid;
|
974 |
+
grid-gap: 13px;
|
975 |
+
margin: 15px 0 0;
|
976 |
+
}
|
977 |
+
|
978 |
+
.yith-plugin-fw__list-item .yith-plugin-fw__list-item__wrap {
|
979 |
+
padding: 12px 18px;
|
980 |
+
border: 1px solid #e6e6e6;
|
981 |
+
background: #f5f5f5;
|
982 |
+
display: flex;
|
983 |
+
align-items: center;
|
984 |
+
text-decoration: none;
|
985 |
+
color: inherit;
|
986 |
+
}
|
987 |
+
|
988 |
+
.yith-plugin-fw__list-item:not(.yith-plugin-fw__list-item--no-link) .yith-plugin-fw__list-item__wrap:hover {
|
989 |
+
border-color: #bcd9f6;
|
990 |
+
background: #e5eef7;
|
991 |
+
}
|
992 |
+
|
993 |
+
.yith-plugin-fw__list-item:not(.yith-plugin-fw__list-item--no-link) .yith-plugin-fw__list-item__wrap:hover .yith-plugin-fw__list-item__step,
|
994 |
+
.yith-plugin-fw__list-item:not(.yith-plugin-fw__list-item--no-link) .yith-plugin-fw__list-item__wrap:hover .yith-plugin-fw__list-item__arrow {
|
995 |
+
color: var(--yith-link);
|
996 |
+
}
|
997 |
+
|
998 |
+
.yith-plugin-fw__list-item mark {
|
999 |
+
background: transparent;
|
1000 |
+
color: var(--yith-link);
|
1001 |
+
}
|
1002 |
+
|
1003 |
+
.yith-plugin-fw__list-item .yith-plugin-fw__list-item__step {
|
1004 |
+
font-size: 30px;
|
1005 |
+
font-weight: 700;
|
1006 |
+
text-align: center;
|
1007 |
+
width: 60px;
|
1008 |
+
margin-left: -14px;
|
1009 |
+
color: #717171;
|
1010 |
+
opacity: .36;
|
1011 |
+
}
|
1012 |
+
|
1013 |
+
.yith-plugin-fw__list-item .yith-plugin-fw__list-item__content {
|
1014 |
+
font-weight: 500;
|
1015 |
+
flex: 1;
|
1016 |
+
}
|
1017 |
+
|
1018 |
+
.yith-plugin-fw__list-item .yith-plugin-fw__list-item__title {
|
1019 |
+
font-size: 1.1em;
|
1020 |
+
}
|
1021 |
+
|
1022 |
+
.yith-plugin-fw__list-item .yith-plugin-fw__list-item__description {
|
1023 |
+
font-size: .85em;
|
1024 |
+
margin-top: .5em;
|
1025 |
+
}
|
1026 |
+
|
1027 |
+
.yith-plugin-fw__list-item .yith-plugin-fw__list-item__cta {
|
1028 |
+
margin-top: .7em;
|
1029 |
+
color: var(--yith-link);
|
1030 |
+
font-size: .85em;
|
1031 |
+
font-weight: 500;
|
1032 |
+
}
|
1033 |
+
|
1034 |
+
.yith-plugin-fw__list-item .yith-plugin-fw__list-item__arrow {
|
1035 |
+
color: #717171;
|
1036 |
+
margin-left: 10px;
|
1037 |
+
font-size: 12px;
|
1038 |
+
font-weight: 800;
|
1039 |
+
}
|
1040 |
+
|
1041 |
+
.yith-plugin-fw__list-items--list .yith-plugin-fw__list-item__title {
|
1042 |
+
font-style: italic;
|
1043 |
+
}
|
1044 |
+
|
1045 |
.yith-plugin-fw__list-table-blank-state {
|
1046 |
padding: 30px 30px 0;
|
1047 |
text-align: center;
|
plugin-fw/assets/js/welcome-modal.js
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* global jQuery, yith, wp */
|
2 |
+
jQuery( function ( $ ) {
|
3 |
+
"use strict";
|
4 |
+
|
5 |
+
var template = wp.template( 'yith-plugin-fw-welcome-modal' ),
|
6 |
+
content = $( template( {} ) ),
|
7 |
+
footer = content.find( '.yith-plugin-fw-welcome__footer' );
|
8 |
+
|
9 |
+
yith.ui.modal(
|
10 |
+
{
|
11 |
+
content : content,
|
12 |
+
footer : footer,
|
13 |
+
classes : {
|
14 |
+
wrap: 'yith-plugin-fw-welcome-modal'
|
15 |
+
},
|
16 |
+
width : '600px',
|
17 |
+
closeWhenClickingOnOverlay: false,
|
18 |
+
onClose : function () {
|
19 |
+
var location = footer.find( '.yith-plugin-fw-welcome__close' ).attr( 'href' );
|
20 |
+
if ( location ) {
|
21 |
+
window.location.href = location;
|
22 |
+
}
|
23 |
+
}
|
24 |
+
}
|
25 |
+
);
|
26 |
+
|
27 |
+
} );
|
plugin-fw/assets/js/welcome-modal.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
jQuery(function(e){"use strict";var o=e(wp.template("yith-plugin-fw-welcome-modal")({})),i=o.find(".yith-plugin-fw-welcome__footer");yith.ui.modal({content:o,footer:i,classes:{wrap:"yith-plugin-fw-welcome-modal"},width:"600px",closeWhenClickingOnOverlay:!1,onClose:function(){var e=i.find(".yith-plugin-fw-welcome__close").attr("href");e&&(window.location.href=e)}})});
|
plugin-fw/includes/class-yit-assets.php
CHANGED
@@ -81,6 +81,7 @@ if ( ! class_exists( 'YIT_Assets' ) ) {
|
|
81 |
wp_register_script( 'yith_how_to', YIT_CORE_PLUGIN_URL . '/assets/js/how-to' . $suffix . '.js', array( 'jquery' ), $this->version, true );
|
82 |
wp_register_script( 'yith-plugin-fw-wp-pages', YIT_CORE_PLUGIN_URL . '/assets/js/wp-pages' . $suffix . '.js', array( 'jquery' ), $this->version, false );
|
83 |
wp_register_script( 'yith-bh-onboarding', YIT_CORE_PLUGIN_URL . '/assets/js/yith-bh-onboarding' . $suffix . '.js', array( 'jquery', 'yit-plugin-panel', 'yith-plugin-fw-fields', 'jquery-blockui' ), $this->version, true );
|
|
|
84 |
|
85 |
// Register styles.
|
86 |
wp_register_style( 'yith-plugin-ui', YIT_CORE_PLUGIN_URL . '/assets/css/yith-plugin-ui.css', array( 'yith-plugin-fw-icon-font' ), $this->version );
|
@@ -91,6 +92,7 @@ if ( ! class_exists( 'YIT_Assets' ) ) {
|
|
91 |
wp_register_style( 'yit-plugin-metaboxes', YIT_CORE_PLUGIN_URL . '/assets/css/metaboxes.css', array( 'yith-plugin-ui' ), $this->version );
|
92 |
wp_register_style( 'yith-plugin-fw-fields', YIT_CORE_PLUGIN_URL . '/assets/css/yith-fields.css', array( 'yith-plugin-ui' ), $this->version );
|
93 |
wp_register_style( 'yith-bh-onboarding', YIT_CORE_PLUGIN_URL . '/assets/css/yith-bh-onboarding.css', array( 'yith-plugin-ui', 'yith-plugin-fw-fields' ), $this->version );
|
|
|
94 |
|
95 |
$wc_version_suffix = '';
|
96 |
if ( function_exists( 'WC' ) || ! empty( $woocommerce ) ) {
|
81 |
wp_register_script( 'yith_how_to', YIT_CORE_PLUGIN_URL . '/assets/js/how-to' . $suffix . '.js', array( 'jquery' ), $this->version, true );
|
82 |
wp_register_script( 'yith-plugin-fw-wp-pages', YIT_CORE_PLUGIN_URL . '/assets/js/wp-pages' . $suffix . '.js', array( 'jquery' ), $this->version, false );
|
83 |
wp_register_script( 'yith-bh-onboarding', YIT_CORE_PLUGIN_URL . '/assets/js/yith-bh-onboarding' . $suffix . '.js', array( 'jquery', 'yit-plugin-panel', 'yith-plugin-fw-fields', 'jquery-blockui' ), $this->version, true );
|
84 |
+
wp_register_script( 'yith-plugin-fw-welcome-modal', YIT_CORE_PLUGIN_URL . '/assets/js/welcome-modal' . $suffix . '.js', array( 'jquery', 'wp-util', 'yith-ui' ), $this->version, true );
|
85 |
|
86 |
// Register styles.
|
87 |
wp_register_style( 'yith-plugin-ui', YIT_CORE_PLUGIN_URL . '/assets/css/yith-plugin-ui.css', array( 'yith-plugin-fw-icon-font' ), $this->version );
|
92 |
wp_register_style( 'yit-plugin-metaboxes', YIT_CORE_PLUGIN_URL . '/assets/css/metaboxes.css', array( 'yith-plugin-ui' ), $this->version );
|
93 |
wp_register_style( 'yith-plugin-fw-fields', YIT_CORE_PLUGIN_URL . '/assets/css/yith-fields.css', array( 'yith-plugin-ui' ), $this->version );
|
94 |
wp_register_style( 'yith-bh-onboarding', YIT_CORE_PLUGIN_URL . '/assets/css/yith-bh-onboarding.css', array( 'yith-plugin-ui', 'yith-plugin-fw-fields' ), $this->version );
|
95 |
+
wp_register_style( 'yith-plugin-fw-welcome-modal', YIT_CORE_PLUGIN_URL . '/assets/css/welcome-modal.css', array(), $this->version );
|
96 |
|
97 |
$wc_version_suffix = '';
|
98 |
if ( function_exists( 'WC' ) || ! empty( $woocommerce ) ) {
|
plugin-fw/includes/class-yit-plugin-panel-woocommerce.php
CHANGED
@@ -84,6 +84,7 @@ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
|
|
84 |
|
85 |
$this->maybe_init_help_tab();
|
86 |
$this->maybe_init_premium_tab();
|
|
|
87 |
|
88 |
add_action( 'admin_init', array( $this, 'set_default_options' ) );
|
89 |
add_action( 'admin_menu', array( $this, 'add_setting_page' ) );
|
84 |
|
85 |
$this->maybe_init_help_tab();
|
86 |
$this->maybe_init_premium_tab();
|
87 |
+
$this->maybe_init_welcome_modals();
|
88 |
|
89 |
add_action( 'admin_init', array( $this, 'set_default_options' ) );
|
90 |
add_action( 'admin_menu', array( $this, 'add_setting_page' ) );
|
plugin-fw/includes/class-yit-plugin-panel.php
CHANGED
@@ -105,6 +105,7 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
105 |
|
106 |
$this->maybe_init_help_tab();
|
107 |
$this->maybe_init_premium_tab();
|
|
|
108 |
|
109 |
add_action( 'admin_init', array( $this, 'register_settings' ) );
|
110 |
add_action( 'admin_menu', array( $this, 'add_setting_page' ), 20 );
|
@@ -207,8 +208,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
207 |
/**
|
208 |
* Init actions.
|
209 |
*
|
210 |
-
* @since 3.0.0
|
211 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
|
|
212 |
*/
|
213 |
protected static function init_actions() {
|
214 |
if ( ! static::$actions_initialized ) {
|
@@ -273,8 +274,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
273 |
*
|
274 |
* @param string $admin_body_classes Body classes.
|
275 |
*
|
276 |
-
* @return string
|
277 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
|
|
278 |
* @since 3.0.0
|
279 |
*/
|
280 |
public static function add_body_class( $admin_body_classes ) {
|
@@ -391,8 +392,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
391 |
*
|
392 |
* @param array $field The field to validate.
|
393 |
*
|
394 |
-
* @return array validated fields
|
395 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
|
|
396 |
*/
|
397 |
public function options_validate( $field ) {
|
398 |
$option_key = ! empty( $field['option_key'] ) ? $field['option_key'] : 'general';
|
@@ -440,8 +441,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
440 |
/**
|
441 |
* Add Premium Version upgrade menu item
|
442 |
*
|
443 |
-
* @since 2.9.13
|
444 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
|
|
445 |
*/
|
446 |
public function add_premium_version_upgrade_to_menu() {
|
447 |
// Add the How To menu item only if the customer haven't a premium version enabled.
|
@@ -503,9 +504,9 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
503 |
* @param string $tab_name Tab name.
|
504 |
* @param array $args Nav Arguments.
|
505 |
*
|
|
|
506 |
* @return string Tab HTML
|
507 |
*
|
508 |
-
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
509 |
* @since 3.4.0
|
510 |
*/
|
511 |
protected function get_tab_nav( $tab_slug, $tab_name, $args = array() ) {
|
@@ -776,8 +777,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
776 |
/**
|
777 |
* Checks whether current tab is special Help Tab
|
778 |
*
|
779 |
-
* @return bool Whether current tab is Help Tab
|
780 |
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
|
|
781 |
*/
|
782 |
public function is_help_tab() {
|
783 |
return 'help' === $this->get_current_tab();
|
@@ -786,8 +787,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
786 |
/**
|
787 |
* Prints special Help Tab
|
788 |
*
|
789 |
-
* @return void
|
790 |
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
|
|
791 |
*/
|
792 |
public function print_help_tab() {
|
793 |
$options = isset( $this->settings['help_tab'] ) ? $this->settings['help_tab'] : array();
|
@@ -801,11 +802,7 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
801 |
|
802 |
// translators: 1. Plugin name.
|
803 |
$default_title = $is_premium ? _x( 'Thank you for purchasing %s!', 'Help tab default title', 'yith-plugin-fw' ) : _x( 'Thank you for using %s!', 'Help tab default title', 'yith-plugin-fw' );
|
804 |
-
$default_doc_url =
|
805 |
-
|
806 |
-
if ( isset( $this->settings['plugin_slug'] ) ) {
|
807 |
-
$default_doc_url = $is_extended ? "https://www.bluehost.com/help/article/{$this->settings['plugin_slug']}/" : "https://docs.yithemes.com/{$this->settings['plugin_slug']}/";
|
808 |
-
}
|
809 |
|
810 |
// parse options.
|
811 |
$options = wp_parse_args(
|
@@ -880,10 +877,219 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
880 |
}
|
881 |
|
882 |
/**
|
883 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
884 |
*
|
|
|
885 |
* @return bool
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
886 |
* @author Giuseppe Arcifa <giuseppe.arcifa@yithemes.com>
|
|
|
887 |
* @since 3.9.0
|
888 |
*/
|
889 |
protected function is_premium_tab() {
|
@@ -894,8 +1100,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
894 |
* Check if panel has premium tab
|
895 |
* (Check for premium Tab through the premium_tab param fully handled by plugin-fw)
|
896 |
*
|
897 |
-
* @return bool
|
898 |
* @author Giuseppe Arcifa <giuseppe.arcifa@yithemes.com>
|
|
|
899 |
* @since 3.9.0
|
900 |
*/
|
901 |
protected function has_premium_tab() {
|
@@ -905,8 +1111,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
905 |
/**
|
906 |
* Prints Premium Tab
|
907 |
*
|
908 |
-
* @return void
|
909 |
* @author Giuseppe Arcifa <giuseppe.arcifa@yithemes.com>
|
|
|
910 |
* @since 3.9.0
|
911 |
*/
|
912 |
protected function print_premium_tab() {
|
@@ -995,13 +1201,26 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
995 |
* Get current tab.
|
996 |
* Retrieve the id of tab shown, return general is the current tab is not defined.
|
997 |
*
|
998 |
-
* @return string|false
|
999 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
|
|
|
|
1000 |
*/
|
1001 |
public function get_current_tab() {
|
1002 |
// phpcs:disable WordPress.Security.NonceVerification.Recommended
|
1003 |
$admin_tabs = array_keys( $this->settings['admin-tabs'] );
|
1004 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1005 |
if ( ! isset( $_GET['page'] ) || $_GET['page'] !== $this->settings['page'] ) {
|
1006 |
return false;
|
1007 |
}
|
@@ -1020,12 +1239,26 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1020 |
/**
|
1021 |
* Get the current sub-tab.
|
1022 |
*
|
1023 |
-
* @return string The key of the sub-tab if exists, empty string otherwise.
|
1024 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
|
|
1025 |
* @since 3.4.0
|
|
|
1026 |
*/
|
1027 |
public function get_current_sub_tab() {
|
1028 |
// phpcs:disable WordPress.Security.NonceVerification.Recommended
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1029 |
$sub_tabs = $this->get_sub_tabs();
|
1030 |
$sub_tab = isset( $_REQUEST['sub_tab'] ) ? sanitize_key( wp_unslash( $_REQUEST['sub_tab'] ) ) : '';
|
1031 |
|
@@ -1046,19 +1279,19 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1046 |
* for sub-tabbed tabs, it will return the current sub-tab.
|
1047 |
* fot normal tabs, it will return the current tab.
|
1048 |
*
|
1049 |
-
* @return string the current sub-tab, if exists; the current tab otherwise.
|
1050 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
|
|
1051 |
* @since 3.4.0
|
1052 |
*/
|
1053 |
public function get_current_option_key() {
|
1054 |
$current_tab = $this->get_current_tab();
|
1055 |
$current_sub_tab = $this->get_current_sub_tab();
|
1056 |
|
1057 |
-
if ( ! $current_tab ) {
|
1058 |
return false;
|
1059 |
}
|
1060 |
|
1061 |
-
return $current_sub_tab ? $current_sub_tab : $current_tab;
|
1062 |
}
|
1063 |
|
1064 |
/**
|
@@ -1100,8 +1333,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1100 |
* @param string $type The type of message (can be 'error' or 'updated').
|
1101 |
* @param bool $echo Set to true if you want to print the message.
|
1102 |
*
|
1103 |
-
* @return string
|
1104 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
|
|
1105 |
*/
|
1106 |
public function get_message( $message, $type = 'error', $echo = true ) {
|
1107 |
$message = '<div id="message" class="' . esc_attr( $type ) . ' fade"><p>' . wp_kses_post( $message ) . '</p></div>';
|
@@ -1116,8 +1349,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1116 |
* Get Tab Path Files
|
1117 |
* return an array with file names of tabs
|
1118 |
*
|
1119 |
-
* @return array
|
1120 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
|
|
1121 |
*/
|
1122 |
public function get_tabs_path_files() {
|
1123 |
$option_files_path = $this->settings['options-path'] . '/';
|
@@ -1141,8 +1374,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1141 |
* Get main array options
|
1142 |
* return an array with all options defined on options-files
|
1143 |
*
|
1144 |
-
* @return array
|
1145 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
|
|
1146 |
*/
|
1147 |
public function get_main_array_options() {
|
1148 |
$this->maybe_init_vars();
|
@@ -1177,7 +1410,7 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1177 |
|
1178 |
if ( is_string( $_tab ) ) {
|
1179 |
$main_array_options = $this->get_main_array_options();
|
1180 |
-
$current_tab_options =
|
1181 |
if ( $current_tab_options ) {
|
1182 |
$_tab = array( $_tab => $current_tab_options );
|
1183 |
}
|
@@ -1221,8 +1454,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1221 |
* Set an array with all default options
|
1222 |
* put default options in an array
|
1223 |
*
|
1224 |
-
* @return array
|
1225 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
|
|
1226 |
*/
|
1227 |
public function get_default_options() {
|
1228 |
$yit_options = $this->get_main_array_options();
|
@@ -1248,8 +1481,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1248 |
* Get the title of the tab
|
1249 |
* return the title of tab
|
1250 |
*
|
1251 |
-
* @return string
|
1252 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
|
|
1253 |
*/
|
1254 |
public function get_tab_title() {
|
1255 |
$yit_options = $this->get_main_array_options();
|
@@ -1272,8 +1505,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1272 |
*
|
1273 |
* @param string $section The section.
|
1274 |
*
|
1275 |
-
* @return string
|
1276 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
|
|
1277 |
*/
|
1278 |
public function get_section_title( $section ) {
|
1279 |
$yit_options = $this->get_main_array_options();
|
@@ -1294,8 +1527,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1294 |
*
|
1295 |
* @param string $section The section.
|
1296 |
*
|
1297 |
-
* @return string
|
1298 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
|
|
1299 |
*/
|
1300 |
public function get_section_description( $section ) {
|
1301 |
$yit_options = $this->get_main_array_options();
|
@@ -1315,8 +1548,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1315 |
* Show form when necessary
|
1316 |
* return true if 'showform' is not defined
|
1317 |
*
|
1318 |
-
* @return bool
|
1319 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
|
|
1320 |
*/
|
1321 |
public function is_show_form() {
|
1322 |
$yit_options = $this->get_main_array_options();
|
@@ -1342,8 +1575,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1342 |
*
|
1343 |
* @param string $name The name.
|
1344 |
*
|
1345 |
-
* @return string
|
1346 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
|
|
1347 |
*/
|
1348 |
public function get_name_field( $name = '' ) {
|
1349 |
return 'yit_' . $this->settings['parent'] . '_options[' . $name . ']';
|
@@ -1355,8 +1588,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1355 |
*
|
1356 |
* @param string $id The ID.
|
1357 |
*
|
1358 |
-
* @return string
|
1359 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
|
|
1360 |
*/
|
1361 |
public function get_id_field( $id ) {
|
1362 |
return 'yit_' . $this->settings['parent'] . '_options_' . $id;
|
@@ -1370,8 +1603,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1370 |
*
|
1371 |
* @param array $param The parameters.
|
1372 |
*
|
1373 |
-
* @return void
|
1374 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
|
|
1375 |
*/
|
1376 |
public function render_field( $param ) {
|
1377 |
if ( ! empty( $param ) && isset( $param ['option'] ) ) {
|
@@ -1413,8 +1646,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1413 |
* return the options from db, if the options aren't defined in the db,
|
1414 |
* get the default options ad add the options in the db
|
1415 |
*
|
1416 |
-
* @return array
|
1417 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
|
|
1418 |
*/
|
1419 |
public function get_options() {
|
1420 |
$options = get_option( 'yit_' . $this->settings['parent'] . '_options' );
|
@@ -1464,8 +1697,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1464 |
/**
|
1465 |
* Sort plugins by name in YITH Plugins menu.
|
1466 |
*
|
1467 |
-
* @since 3.0.0
|
1468 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
|
|
1469 |
*/
|
1470 |
public static function sort_plugins() {
|
1471 |
global $submenu;
|
@@ -1488,9 +1721,9 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1488 |
*
|
1489 |
* @param array $menu The menu.
|
1490 |
*
|
|
|
1491 |
* @return array
|
1492 |
* @since 3.0.0
|
1493 |
-
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
1494 |
*/
|
1495 |
public static function add_menu_class_in_yith_plugin( $menu ) {
|
1496 |
global $submenu;
|
@@ -1685,8 +1918,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1685 |
* If the panel page is a WP Page, this will redirect you to the correct page
|
1686 |
* useful when a Post Type (Taxonomy) is the first tab of your panel, so when you open your panel it'll open the Post Type (Taxonomy) list
|
1687 |
*
|
1688 |
-
* @since 3.4.0
|
1689 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
|
|
1690 |
*/
|
1691 |
public function maybe_redirect_to_proper_wp_page() {
|
1692 |
// phpcs:disable WordPress.Security.NonceVerification.Recommended
|
@@ -1711,8 +1944,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1711 |
* Print the Panel tabs and sub-tabs navigation in WP pages
|
1712 |
* Important: this opens a wrapper <div> that will be closed through YIT_Plugin_Panel::print_panel_tabs_in_post_edit_page_end()
|
1713 |
*
|
1714 |
-
* @since 3.4.0
|
1715 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
|
|
1716 |
*/
|
1717 |
public function print_panel_tabs_in_wp_pages() {
|
1718 |
if ( self::$panel_tabs_in_wp_pages && 'all_admin_notices' === current_action() ) {
|
@@ -1761,8 +1994,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
1761 |
/**
|
1762 |
* Close the wrapper opened in YIT_Plugin_Panel::print_panel_tabs_in_wp_pages()
|
1763 |
*
|
1764 |
-
* @since 3.4.0
|
1765 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
|
|
1766 |
*/
|
1767 |
public function print_panel_tabs_in_wp_pages_end() {
|
1768 |
if ( self::$panel_tabs_in_wp_pages ) {
|
105 |
|
106 |
$this->maybe_init_help_tab();
|
107 |
$this->maybe_init_premium_tab();
|
108 |
+
$this->maybe_init_welcome_modals();
|
109 |
|
110 |
add_action( 'admin_init', array( $this, 'register_settings' ) );
|
111 |
add_action( 'admin_menu', array( $this, 'add_setting_page' ), 20 );
|
208 |
/**
|
209 |
* Init actions.
|
210 |
*
|
|
|
211 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
212 |
+
* @since 3.0.0
|
213 |
*/
|
214 |
protected static function init_actions() {
|
215 |
if ( ! static::$actions_initialized ) {
|
274 |
*
|
275 |
* @param string $admin_body_classes Body classes.
|
276 |
*
|
|
|
277 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
278 |
+
* @return string
|
279 |
* @since 3.0.0
|
280 |
*/
|
281 |
public static function add_body_class( $admin_body_classes ) {
|
392 |
*
|
393 |
* @param array $field The field to validate.
|
394 |
*
|
|
|
395 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
396 |
+
* @return array validated fields
|
397 |
*/
|
398 |
public function options_validate( $field ) {
|
399 |
$option_key = ! empty( $field['option_key'] ) ? $field['option_key'] : 'general';
|
441 |
/**
|
442 |
* Add Premium Version upgrade menu item
|
443 |
*
|
|
|
444 |
* @author Andrea Grillo <andrea.grillo@yithemes.com>
|
445 |
+
* @since 2.9.13
|
446 |
*/
|
447 |
public function add_premium_version_upgrade_to_menu() {
|
448 |
// Add the How To menu item only if the customer haven't a premium version enabled.
|
504 |
* @param string $tab_name Tab name.
|
505 |
* @param array $args Nav Arguments.
|
506 |
*
|
507 |
+
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
508 |
* @return string Tab HTML
|
509 |
*
|
|
|
510 |
* @since 3.4.0
|
511 |
*/
|
512 |
protected function get_tab_nav( $tab_slug, $tab_name, $args = array() ) {
|
777 |
/**
|
778 |
* Checks whether current tab is special Help Tab
|
779 |
*
|
|
|
780 |
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
781 |
+
* @return bool Whether current tab is Help Tab
|
782 |
*/
|
783 |
public function is_help_tab() {
|
784 |
return 'help' === $this->get_current_tab();
|
787 |
/**
|
788 |
* Prints special Help Tab
|
789 |
*
|
|
|
790 |
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
791 |
+
* @return void
|
792 |
*/
|
793 |
public function print_help_tab() {
|
794 |
$options = isset( $this->settings['help_tab'] ) ? $this->settings['help_tab'] : array();
|
802 |
|
803 |
// translators: 1. Plugin name.
|
804 |
$default_title = $is_premium ? _x( 'Thank you for purchasing %s!', 'Help tab default title', 'yith-plugin-fw' ) : _x( 'Thank you for using %s!', 'Help tab default title', 'yith-plugin-fw' );
|
805 |
+
$default_doc_url = $this->get_doc_url();
|
|
|
|
|
|
|
|
|
806 |
|
807 |
// parse options.
|
808 |
$options = wp_parse_args(
|
877 |
}
|
878 |
|
879 |
/**
|
880 |
+
* Get the plugin doc URL.
|
881 |
+
*
|
882 |
+
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
883 |
+
* @return string
|
884 |
+
* @since 3.9.14
|
885 |
+
*/
|
886 |
+
protected function get_doc_url() {
|
887 |
+
$plugin_slug = sanitize_title( $this->settings['plugin_slug'] ?? '' );
|
888 |
+
if ( $plugin_slug ) {
|
889 |
+
return $this->is_extended() ? "https://www.bluehost.com/help/article/{$plugin_slug}/" : "https://docs.yithemes.com/{$plugin_slug}/";
|
890 |
+
}
|
891 |
+
|
892 |
+
return '';
|
893 |
+
}
|
894 |
+
|
895 |
+
/**
|
896 |
+
* Is in panel?
|
897 |
*
|
898 |
+
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
899 |
* @return bool
|
900 |
+
* @since 3.9.14
|
901 |
+
*/
|
902 |
+
protected function is_panel(): bool {
|
903 |
+
$is_panel = yith_plugin_fw_is_panel() && isset( $_GET['page'] ) && $_GET['page'] === $this->settings['page']; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
904 |
+
$is_wp_page_in_panel = isset( self::$panel_tabs_in_wp_pages, self::$panel_tabs_in_wp_pages['page'] ) && self::$panel_tabs_in_wp_pages['page'] === $this->settings['page'];
|
905 |
+
|
906 |
+
return $is_panel || $is_wp_page_in_panel;
|
907 |
+
}
|
908 |
+
|
909 |
+
/**
|
910 |
+
* Is this the first panel page?
|
911 |
+
*
|
912 |
+
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
913 |
+
* @return bool
|
914 |
+
* @since 3.9.14
|
915 |
+
*/
|
916 |
+
protected function is_first_page(): bool {
|
917 |
+
$is_first_page = false;
|
918 |
+
if ( $this->is_panel() ) {
|
919 |
+
$first_tab = current( array_keys( $this->settings['admin-tabs'] ?? array() ) );
|
920 |
+
$sub_tabs = $this->get_sub_tabs( $first_tab );
|
921 |
+
$first_sub_tab = current( array_keys( $sub_tabs ) );
|
922 |
+
|
923 |
+
$tab = $this->get_current_tab();
|
924 |
+
$sub_tab = $this->get_current_sub_tab();
|
925 |
+
|
926 |
+
$is_first_page = $first_tab === $tab;
|
927 |
+
|
928 |
+
if ( $is_first_page && ! ! $first_sub_tab ) {
|
929 |
+
$is_first_page = $first_sub_tab === $sub_tab;
|
930 |
+
}
|
931 |
+
}
|
932 |
+
|
933 |
+
return $is_first_page;
|
934 |
+
}
|
935 |
+
|
936 |
+
/**
|
937 |
+
* Add welcome modals.
|
938 |
+
*
|
939 |
+
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
940 |
+
* @since 3.9.14
|
941 |
+
*/
|
942 |
+
protected function maybe_init_welcome_modals() {
|
943 |
+
if ( isset( $this->settings['welcome_modals'] ) ) {
|
944 |
+
// Priority needs to be greater than 11, to correctly check if it's first page also for WP pages.
|
945 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'maybe_print_welcome_modal' ), 20 );
|
946 |
+
add_action( 'admin_init', array( $this, 'handle_welcome_modal_action' ) );
|
947 |
+
}
|
948 |
+
}
|
949 |
+
|
950 |
+
/**
|
951 |
+
* Handle welcome modal actions.
|
952 |
+
*
|
953 |
+
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
954 |
+
* @since 3.9.14
|
955 |
+
*/
|
956 |
+
public function handle_welcome_modal_action() {
|
957 |
+
if ( isset( $_GET['yith-plugin-fw-welcome-modal-close'], $_GET['yith-panel-page'] ) && $_GET['yith-panel-page'] === $this->settings['page'] ) {
|
958 |
+
check_admin_referer( 'welcome-modal-close' );
|
959 |
+
$modal = sanitize_key( wp_unslash( $_GET['yith-plugin-fw-welcome-modal-close'] ) );
|
960 |
+
$on_close = $this->settings['welcome_modals']['modals'][ $modal ]['on_close'] ?? $this->settings['welcome_modals']['on_close'] ?? false;
|
961 |
+
|
962 |
+
if ( $on_close && is_callable( $on_close ) ) {
|
963 |
+
call_user_func( $on_close );
|
964 |
+
}
|
965 |
+
|
966 |
+
wp_safe_redirect( add_query_arg( array( 'page' => $this->settings['page'] ), admin_url( 'admin.php' ) ) );
|
967 |
+
exit();
|
968 |
+
}
|
969 |
+
}
|
970 |
+
|
971 |
+
/**
|
972 |
+
* Print the welcome modal.
|
973 |
+
*
|
974 |
+
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
975 |
+
* @since 3.9.14
|
976 |
+
*/
|
977 |
+
public function maybe_print_welcome_modal() {
|
978 |
+
$settings = $this->settings['welcome_modals'] ?? array();
|
979 |
+
$modals = $settings['modals'] ?? array();
|
980 |
+
$show_in = $settings['show_in'] ?? 'panel';
|
981 |
+
|
982 |
+
if ( ! $this->is_panel() ) {
|
983 |
+
return;
|
984 |
+
}
|
985 |
+
|
986 |
+
$is_page_to_show = true;
|
987 |
+
|
988 |
+
switch ( $show_in ) {
|
989 |
+
case 'panel':
|
990 |
+
break;
|
991 |
+
case 'first_page':
|
992 |
+
$is_page_to_show = $this->is_first_page();
|
993 |
+
break;
|
994 |
+
default:
|
995 |
+
if ( is_callable( $show_in ) ) {
|
996 |
+
$context = array(
|
997 |
+
'is_first_page' => $this->is_first_page(),
|
998 |
+
'tab' => $this->get_current_tab(),
|
999 |
+
'sub_tab' => $this->get_current_sub_tab(),
|
1000 |
+
);
|
1001 |
+
$is_page_to_show = call_user_func( $show_in, $context );
|
1002 |
+
}
|
1003 |
+
break;
|
1004 |
+
}
|
1005 |
+
|
1006 |
+
if ( $is_page_to_show ) {
|
1007 |
+
foreach ( $modals as $key => $modal ) {
|
1008 |
+
$show = $modal['show'] ?? null;
|
1009 |
+
$should_be_shown = ! ! ( is_callable( $show ) ? call_user_func( $show ) : $show );
|
1010 |
+
$modal['items'] = $modal['items'] ?? array();
|
1011 |
+
|
1012 |
+
if ( $should_be_shown ) {
|
1013 |
+
$type = $modal['type'] ?? $key;
|
1014 |
+
$template = YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/welcome-modals/' . $type . '.php';
|
1015 |
+
$close_url = wp_nonce_url(
|
1016 |
+
add_query_arg(
|
1017 |
+
array(
|
1018 |
+
'yith-plugin-fw-welcome-modal-close' => $key,
|
1019 |
+
'yith-panel-page' => $this->settings['page'],
|
1020 |
+
),
|
1021 |
+
admin_url()
|
1022 |
+
),
|
1023 |
+
'welcome-modal-close'
|
1024 |
+
);
|
1025 |
+
$plugin = array(
|
1026 |
+
'name' => $this->settings['plugin_name'] ?? $this->settings['page_title'] ?? '',
|
1027 |
+
'version' => $this->settings['plugin_version'] ?? '',
|
1028 |
+
'slug' => $this->settings['plugin_slug'] ?? '',
|
1029 |
+
'icon' => $this->settings['plugin_icon'] ?? '',
|
1030 |
+
);
|
1031 |
+
|
1032 |
+
$plugin['version'] = preg_replace( '/\.0$/', '', $plugin['version'] ); // Make the version nicer.
|
1033 |
+
|
1034 |
+
if ( 'welcome' === $type ) {
|
1035 |
+
if ( isset( $modal['items']['documentation'] ) ) {
|
1036 |
+
$modal['items']['documentation'] = wp_parse_args(
|
1037 |
+
$modal['items']['documentation'],
|
1038 |
+
array(
|
1039 |
+
'title' => __( 'Read the <mark>plugin documentation</mark>', 'yith-plugin-fw' ),
|
1040 |
+
'description' => __( 'Learn what you can really do with this powerful tool', 'yith-plugin-fw' ),
|
1041 |
+
'url' => $this->get_doc_url(),
|
1042 |
+
)
|
1043 |
+
);
|
1044 |
+
}
|
1045 |
+
|
1046 |
+
if ( isset( $modal['items']['how-to-video'], $modal['items']['how-to-video']['url'] ) ) {
|
1047 |
+
$modal['items']['how-to-video'] = wp_parse_args(
|
1048 |
+
$modal['items']['how-to-video'],
|
1049 |
+
array(
|
1050 |
+
'title' => __( 'Watch our <mark>"First Steps" video</mark>', 'yith-plugin-fw' ),
|
1051 |
+
'description' => __( 'See how it works before you start using it', 'yith-plugin-fw' ),
|
1052 |
+
)
|
1053 |
+
);
|
1054 |
+
}
|
1055 |
+
}
|
1056 |
+
|
1057 |
+
if ( 'update' === $type ) {
|
1058 |
+
if ( ! isset( $modal['changelog_url'] ) && $this->is_premium() && ! $this->is_extended() ) {
|
1059 |
+
$doc_url = $this->get_doc_url();
|
1060 |
+
if ( $doc_url ) {
|
1061 |
+
$modal['changelog_url'] = trailingslashit( $doc_url ) . 'changelog/changelog-premium-version/';
|
1062 |
+
}
|
1063 |
+
}
|
1064 |
+
}
|
1065 |
+
|
1066 |
+
if ( file_exists( $template ) ) {
|
1067 |
+
wp_enqueue_script( 'yith-plugin-fw-welcome-modal' );
|
1068 |
+
wp_enqueue_style( 'yith-plugin-fw-welcome-modal' );
|
1069 |
+
|
1070 |
+
// Plugin, modal and close_url variables are required in the modal templates.
|
1071 |
+
$print_template_cb = function () use ( $template, $plugin, $modal, $close_url ) {
|
1072 |
+
?>
|
1073 |
+
<script type="text/html" id="tmpl-yith-plugin-fw-welcome-modal">
|
1074 |
+
<?php include $template; ?>
|
1075 |
+
</script>
|
1076 |
+
<?php
|
1077 |
+
};
|
1078 |
+
|
1079 |
+
add_action( 'admin_footer', $print_template_cb );
|
1080 |
+
}
|
1081 |
+
|
1082 |
+
break;
|
1083 |
+
}
|
1084 |
+
}
|
1085 |
+
}
|
1086 |
+
}
|
1087 |
+
|
1088 |
+
/**
|
1089 |
+
* Checks whether current tab is Premium Tab
|
1090 |
+
*
|
1091 |
* @author Giuseppe Arcifa <giuseppe.arcifa@yithemes.com>
|
1092 |
+
* @return bool
|
1093 |
* @since 3.9.0
|
1094 |
*/
|
1095 |
protected function is_premium_tab() {
|
1100 |
* Check if panel has premium tab
|
1101 |
* (Check for premium Tab through the premium_tab param fully handled by plugin-fw)
|
1102 |
*
|
|
|
1103 |
* @author Giuseppe Arcifa <giuseppe.arcifa@yithemes.com>
|
1104 |
+
* @return bool
|
1105 |
* @since 3.9.0
|
1106 |
*/
|
1107 |
protected function has_premium_tab() {
|
1111 |
/**
|
1112 |
* Prints Premium Tab
|
1113 |
*
|
|
|
1114 |
* @author Giuseppe Arcifa <giuseppe.arcifa@yithemes.com>
|
1115 |
+
* @return void
|
1116 |
* @since 3.9.0
|
1117 |
*/
|
1118 |
protected function print_premium_tab() {
|
1201 |
* Get current tab.
|
1202 |
* Retrieve the id of tab shown, return general is the current tab is not defined.
|
1203 |
*
|
|
|
1204 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
1205 |
+
* @return string|false
|
1206 |
+
* @since 3.9.14 Check for WP pages.
|
1207 |
*/
|
1208 |
public function get_current_tab() {
|
1209 |
// phpcs:disable WordPress.Security.NonceVerification.Recommended
|
1210 |
$admin_tabs = array_keys( $this->settings['admin-tabs'] );
|
1211 |
|
1212 |
+
global $post_type, $taxonomy;
|
1213 |
+
$wp_tabs = array();
|
1214 |
+
if ( $this->is_custom_post_type_page() ) {
|
1215 |
+
$wp_tabs = $this->get_post_type_tabs( $post_type );
|
1216 |
+
} elseif ( $this->is_custom_taxonomy_page() ) {
|
1217 |
+
$wp_tabs = $this->get_taxonomy_tabs( $taxonomy );
|
1218 |
+
}
|
1219 |
+
|
1220 |
+
if ( $wp_tabs && isset( $wp_tabs['tab'] ) ) {
|
1221 |
+
return $wp_tabs['tab'];
|
1222 |
+
}
|
1223 |
+
|
1224 |
if ( ! isset( $_GET['page'] ) || $_GET['page'] !== $this->settings['page'] ) {
|
1225 |
return false;
|
1226 |
}
|
1239 |
/**
|
1240 |
* Get the current sub-tab.
|
1241 |
*
|
|
|
1242 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
1243 |
+
* @return string The key of the sub-tab if exists, empty string otherwise.
|
1244 |
* @since 3.4.0
|
1245 |
+
* @since 3.9.14 Check for WP pages.
|
1246 |
*/
|
1247 |
public function get_current_sub_tab() {
|
1248 |
// phpcs:disable WordPress.Security.NonceVerification.Recommended
|
1249 |
+
|
1250 |
+
global $post_type, $taxonomy;
|
1251 |
+
$wp_tabs = array();
|
1252 |
+
if ( $this->is_custom_post_type_page() ) {
|
1253 |
+
$wp_tabs = $this->get_post_type_tabs( $post_type );
|
1254 |
+
} elseif ( $this->is_custom_taxonomy_page() ) {
|
1255 |
+
$wp_tabs = $this->get_taxonomy_tabs( $taxonomy );
|
1256 |
+
}
|
1257 |
+
|
1258 |
+
if ( $wp_tabs && isset( $wp_tabs['sub_tab'] ) ) {
|
1259 |
+
return $wp_tabs['sub_tab'];
|
1260 |
+
}
|
1261 |
+
|
1262 |
$sub_tabs = $this->get_sub_tabs();
|
1263 |
$sub_tab = isset( $_REQUEST['sub_tab'] ) ? sanitize_key( wp_unslash( $_REQUEST['sub_tab'] ) ) : '';
|
1264 |
|
1279 |
* for sub-tabbed tabs, it will return the current sub-tab.
|
1280 |
* fot normal tabs, it will return the current tab.
|
1281 |
*
|
|
|
1282 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
1283 |
+
* @return string the current sub-tab, if exists; the current tab otherwise.
|
1284 |
* @since 3.4.0
|
1285 |
*/
|
1286 |
public function get_current_option_key() {
|
1287 |
$current_tab = $this->get_current_tab();
|
1288 |
$current_sub_tab = $this->get_current_sub_tab();
|
1289 |
|
1290 |
+
if ( ! $current_tab || $this->is_custom_post_type_page() || $this->is_custom_taxonomy_page() ) {
|
1291 |
return false;
|
1292 |
}
|
1293 |
|
1294 |
+
return ! ! $current_sub_tab ? $current_sub_tab : $current_tab;
|
1295 |
}
|
1296 |
|
1297 |
/**
|
1333 |
* @param string $type The type of message (can be 'error' or 'updated').
|
1334 |
* @param bool $echo Set to true if you want to print the message.
|
1335 |
*
|
|
|
1336 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
1337 |
+
* @return string
|
1338 |
*/
|
1339 |
public function get_message( $message, $type = 'error', $echo = true ) {
|
1340 |
$message = '<div id="message" class="' . esc_attr( $type ) . ' fade"><p>' . wp_kses_post( $message ) . '</p></div>';
|
1349 |
* Get Tab Path Files
|
1350 |
* return an array with file names of tabs
|
1351 |
*
|
|
|
1352 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
1353 |
+
* @return array
|
1354 |
*/
|
1355 |
public function get_tabs_path_files() {
|
1356 |
$option_files_path = $this->settings['options-path'] . '/';
|
1374 |
* Get main array options
|
1375 |
* return an array with all options defined on options-files
|
1376 |
*
|
|
|
1377 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
1378 |
+
* @return array
|
1379 |
*/
|
1380 |
public function get_main_array_options() {
|
1381 |
$this->maybe_init_vars();
|
1410 |
|
1411 |
if ( is_string( $_tab ) ) {
|
1412 |
$main_array_options = $this->get_main_array_options();
|
1413 |
+
$current_tab_options = $main_array_options[ $_tab ] ?? array();
|
1414 |
if ( $current_tab_options ) {
|
1415 |
$_tab = array( $_tab => $current_tab_options );
|
1416 |
}
|
1454 |
* Set an array with all default options
|
1455 |
* put default options in an array
|
1456 |
*
|
|
|
1457 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
1458 |
+
* @return array
|
1459 |
*/
|
1460 |
public function get_default_options() {
|
1461 |
$yit_options = $this->get_main_array_options();
|
1481 |
* Get the title of the tab
|
1482 |
* return the title of tab
|
1483 |
*
|
|
|
1484 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
1485 |
+
* @return string
|
1486 |
*/
|
1487 |
public function get_tab_title() {
|
1488 |
$yit_options = $this->get_main_array_options();
|
1505 |
*
|
1506 |
* @param string $section The section.
|
1507 |
*
|
|
|
1508 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
1509 |
+
* @return string
|
1510 |
*/
|
1511 |
public function get_section_title( $section ) {
|
1512 |
$yit_options = $this->get_main_array_options();
|
1527 |
*
|
1528 |
* @param string $section The section.
|
1529 |
*
|
|
|
1530 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
1531 |
+
* @return string
|
1532 |
*/
|
1533 |
public function get_section_description( $section ) {
|
1534 |
$yit_options = $this->get_main_array_options();
|
1548 |
* Show form when necessary
|
1549 |
* return true if 'showform' is not defined
|
1550 |
*
|
|
|
1551 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
1552 |
+
* @return bool
|
1553 |
*/
|
1554 |
public function is_show_form() {
|
1555 |
$yit_options = $this->get_main_array_options();
|
1575 |
*
|
1576 |
* @param string $name The name.
|
1577 |
*
|
|
|
1578 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
1579 |
+
* @return string
|
1580 |
*/
|
1581 |
public function get_name_field( $name = '' ) {
|
1582 |
return 'yit_' . $this->settings['parent'] . '_options[' . $name . ']';
|
1588 |
*
|
1589 |
* @param string $id The ID.
|
1590 |
*
|
|
|
1591 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
1592 |
+
* @return string
|
1593 |
*/
|
1594 |
public function get_id_field( $id ) {
|
1595 |
return 'yit_' . $this->settings['parent'] . '_options_' . $id;
|
1603 |
*
|
1604 |
* @param array $param The parameters.
|
1605 |
*
|
|
|
1606 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
1607 |
+
* @return void
|
1608 |
*/
|
1609 |
public function render_field( $param ) {
|
1610 |
if ( ! empty( $param ) && isset( $param ['option'] ) ) {
|
1646 |
* return the options from db, if the options aren't defined in the db,
|
1647 |
* get the default options ad add the options in the db
|
1648 |
*
|
|
|
1649 |
* @author Emanuela Castorina <emanuela.castorina@yithemes.it>
|
1650 |
+
* @return array
|
1651 |
*/
|
1652 |
public function get_options() {
|
1653 |
$options = get_option( 'yit_' . $this->settings['parent'] . '_options' );
|
1697 |
/**
|
1698 |
* Sort plugins by name in YITH Plugins menu.
|
1699 |
*
|
|
|
1700 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
1701 |
+
* @since 3.0.0
|
1702 |
*/
|
1703 |
public static function sort_plugins() {
|
1704 |
global $submenu;
|
1721 |
*
|
1722 |
* @param array $menu The menu.
|
1723 |
*
|
1724 |
+
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
1725 |
* @return array
|
1726 |
* @since 3.0.0
|
|
|
1727 |
*/
|
1728 |
public static function add_menu_class_in_yith_plugin( $menu ) {
|
1729 |
global $submenu;
|
1918 |
* If the panel page is a WP Page, this will redirect you to the correct page
|
1919 |
* useful when a Post Type (Taxonomy) is the first tab of your panel, so when you open your panel it'll open the Post Type (Taxonomy) list
|
1920 |
*
|
|
|
1921 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
1922 |
+
* @since 3.4.0
|
1923 |
*/
|
1924 |
public function maybe_redirect_to_proper_wp_page() {
|
1925 |
// phpcs:disable WordPress.Security.NonceVerification.Recommended
|
1944 |
* Print the Panel tabs and sub-tabs navigation in WP pages
|
1945 |
* Important: this opens a wrapper <div> that will be closed through YIT_Plugin_Panel::print_panel_tabs_in_post_edit_page_end()
|
1946 |
*
|
|
|
1947 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
1948 |
+
* @since 3.4.0
|
1949 |
*/
|
1950 |
public function print_panel_tabs_in_wp_pages() {
|
1951 |
if ( self::$panel_tabs_in_wp_pages && 'all_admin_notices' === current_action() ) {
|
1994 |
/**
|
1995 |
* Close the wrapper opened in YIT_Plugin_Panel::print_panel_tabs_in_wp_pages()
|
1996 |
*
|
|
|
1997 |
* @author Leanza Francesco <leanzafrancesco@gmail.com>
|
1998 |
+
* @since 3.4.0
|
1999 |
*/
|
2000 |
public function print_panel_tabs_in_wp_pages_end() {
|
2001 |
if ( self::$panel_tabs_in_wp_pages ) {
|
plugin-fw/includes/class-yith-post-type-admin.php
CHANGED
@@ -427,7 +427,7 @@ if ( ! class_exists( 'YITH_Post_Type_Admin' ) ) {
|
|
427 |
}
|
428 |
|
429 |
/**
|
430 |
-
* Disable Months dropdown
|
431 |
*
|
432 |
* @param bool $disable Set true to disable.
|
433 |
* @param string $post_type The post type.
|
427 |
}
|
428 |
|
429 |
/**
|
430 |
+
* Disable Months dropdown
|
431 |
*
|
432 |
* @param bool $disable Set true to disable.
|
433 |
* @param string $post_type The post type.
|
plugin-fw/init.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Framework Name: YIT Plugin Framework
|
4 |
-
* Version: 3.9.
|
5 |
* Author: YITH
|
6 |
* Text Domain: yith-plugin-fw
|
7 |
* Domain Path: /languages/
|
8 |
*
|
9 |
* @author YITH
|
10 |
-
* @version 3.9.
|
11 |
* @package YITH\PluginFramework
|
12 |
*/
|
13 |
|
1 |
<?php
|
2 |
/**
|
3 |
* Framework Name: YIT Plugin Framework
|
4 |
+
* Version: 3.9.15
|
5 |
* Author: YITH
|
6 |
* Text Domain: yith-plugin-fw
|
7 |
* Domain Path: /languages/
|
8 |
*
|
9 |
* @author YITH
|
10 |
+
* @version 3.9.15
|
11 |
* @package YITH\PluginFramework
|
12 |
*/
|
13 |
|
plugin-fw/languages/yith-plugin-fw-el.mo
CHANGED
Binary file
|
plugin-fw/languages/yith-plugin-fw-el.po
CHANGED
@@ -4,7 +4,7 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
-
"POT-Creation-Date: 2022-08-
|
8 |
"PO-Revision-Date: 2021-02-11 18:07:46+0000\n"
|
9 |
"Language: el_GR\n"
|
10 |
"MIME-Version: 1.0\n"
|
@@ -13,56 +13,56 @@ msgstr ""
|
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
-
#: includes/class-yit-assets.php:
|
17 |
msgid "Confirm trash"
|
18 |
msgstr ""
|
19 |
|
20 |
-
#: includes/class-yit-assets.php:
|
21 |
msgid "Are you sure you want to trash the selected items?"
|
22 |
msgstr ""
|
23 |
|
24 |
-
#: includes/class-yit-assets.php:
|
25 |
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
|
26 |
#: yit-functions.php:2008 yit-functions.php:2026
|
27 |
msgid "No"
|
28 |
msgstr "Όχι"
|
29 |
|
30 |
-
#: includes/class-yit-assets.php:
|
31 |
#: yit-functions.php:2152
|
32 |
msgid "Confirm delete"
|
33 |
msgstr ""
|
34 |
|
35 |
-
#: includes/class-yit-assets.php:
|
36 |
msgid "Are you sure you want to delete the selected items?"
|
37 |
msgstr ""
|
38 |
|
39 |
-
#: includes/class-yit-assets.php:
|
40 |
#: yit-functions.php:2100
|
41 |
msgid ""
|
42 |
"This action cannot be undone and you will not be able to recover this data."
|
43 |
msgstr ""
|
44 |
|
45 |
-
#: includes/class-yit-assets.php:
|
46 |
msgid "Clear"
|
47 |
msgstr "Καθαρισμός"
|
48 |
|
49 |
-
#: includes/class-yit-assets.php:
|
50 |
msgid "Clear color"
|
51 |
msgstr "Καθαρισμός χρώματος"
|
52 |
|
53 |
-
#: includes/class-yit-assets.php:
|
54 |
msgid "Default"
|
55 |
msgstr "Προεπιλεγμένο"
|
56 |
|
57 |
-
#: includes/class-yit-assets.php:
|
58 |
msgid "Select default color"
|
59 |
msgstr "Επιλογή προεπιλεγμένου χρώματος"
|
60 |
|
61 |
-
#: includes/class-yit-assets.php:
|
62 |
msgid "Select Color"
|
63 |
msgstr "Επιλογή Χρώματος"
|
64 |
|
65 |
-
#: includes/class-yit-assets.php:
|
66 |
msgid "Color value"
|
67 |
msgstr "Αξία χρώματος"
|
68 |
|
@@ -70,7 +70,7 @@ msgstr "Αξία χρώματος"
|
|
70 |
msgid "There was an error with your request; please try again later."
|
71 |
msgstr ""
|
72 |
|
73 |
-
#: includes/class-yit-plugin-panel-woocommerce.php:
|
74 |
msgid "The changes you have made will be lost if you leave this page."
|
75 |
msgstr ""
|
76 |
"Οι αλλαγές που έχετε δημιουργήσει θα χαθούν αν αφήσετε αυτήν την σελίδα."
|
@@ -83,17 +83,17 @@ msgstr "Ρυθμίσεις Προσθέτου"
|
|
83 |
msgid "Settings"
|
84 |
msgstr "Ρυθμίσεις"
|
85 |
|
86 |
-
#: includes/class-yit-plugin-panel.php:
|
87 |
-
#: includes/class-yit-plugin-panel.php:
|
88 |
msgid "How to install premium version"
|
89 |
msgstr "Πώς να εγκαταστήσετε την προηγμένη έκδοση"
|
90 |
|
91 |
-
#: includes/class-yit-plugin-panel.php:
|
92 |
#: includes/class-yit-plugin-subpanel.php:133
|
93 |
msgid "Save Changes"
|
94 |
msgstr "Αποθήκευση Αλλαγών"
|
95 |
|
96 |
-
#: includes/class-yit-plugin-panel.php:
|
97 |
#: includes/class-yit-plugin-subpanel.php:140
|
98 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
99 |
msgid ""
|
@@ -102,73 +102,89 @@ msgstr ""
|
|
102 |
"Αν συνεχίσετε με αυτή την ενέργεια θα επαναφέρετε όλες τις επιλογές στη "
|
103 |
"σελίδα."
|
104 |
|
105 |
-
#: includes/class-yit-plugin-panel.php:
|
106 |
#: includes/class-yit-plugin-subpanel.php:140
|
107 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
108 |
msgid "Are you sure?"
|
109 |
msgstr "Είστε σίγουρος;"
|
110 |
|
111 |
-
#: includes/class-yit-plugin-panel.php:
|
112 |
#: includes/class-yit-plugin-subpanel.php:143
|
113 |
msgid "Reset to default"
|
114 |
msgstr "Επαναφορά σε προεπιλεγμένο"
|
115 |
|
116 |
-
#: includes/class-yit-plugin-panel.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
msgid ""
|
118 |
"The element you have entered already exists. Please, enter another name."
|
119 |
msgstr "Το στοιχείο που εισάγατε υπάρχει ήδη. Παρακαλώ, εισάγετε άλλο όνομα."
|
120 |
|
121 |
-
#: includes/class-yit-plugin-panel.php:
|
122 |
msgid "Settings saved"
|
123 |
msgstr "Ρυθμίσεις αποθηκεύτηκαν"
|
124 |
|
125 |
-
#: includes/class-yit-plugin-panel.php:
|
126 |
msgid "Settings reset"
|
127 |
msgstr "Επαναφορά ρυθμίσεων"
|
128 |
|
129 |
-
#: includes/class-yit-plugin-panel.php:
|
130 |
msgid "Element deleted correctly."
|
131 |
msgstr "Το στοιχείο διαγράφηκε επιτυχώς."
|
132 |
|
133 |
-
#: includes/class-yit-plugin-panel.php:
|
134 |
-
#: includes/class-yit-plugin-panel.php:
|
135 |
msgid "Element updated correctly."
|
136 |
msgstr "Το στοιχείο αναβαθμίστηκε επιτυχώς."
|
137 |
|
138 |
-
#: includes/class-yit-plugin-panel.php:
|
139 |
msgid "Database imported correctly."
|
140 |
msgstr "Επιτυχής εισαγωγή βάσης δεδομένων."
|
141 |
|
142 |
-
#: includes/class-yit-plugin-panel.php:
|
143 |
msgid "An error has occurred during import. Please try again."
|
144 |
msgstr "Παρουσιάστηκε σφάλμα κατά την εισαγωγή. Παρακαλώ προσπαθήστε ξανά."
|
145 |
|
146 |
-
#: includes/class-yit-plugin-panel.php:
|
147 |
msgid "The added file is not valid."
|
148 |
msgstr "Το προστιθέμενο αρχείο δεν είναι έγκυρο."
|
149 |
|
150 |
-
#: includes/class-yit-plugin-panel.php:
|
151 |
msgid "Sorry, import is disabled."
|
152 |
msgstr "Συγνώμη, η εισαγωγή είναι απενεργοποιημένη."
|
153 |
|
154 |
-
#: includes/class-yit-plugin-panel.php:
|
155 |
msgid "Sorting successful."
|
156 |
msgstr "Διαλογή επιτυχής."
|
157 |
|
158 |
-
#: includes/class-yit-plugin-panel.php:
|
159 |
msgid "We need your support"
|
160 |
msgstr "Χρειαζόμαστε την υποστήριξή σας"
|
161 |
|
162 |
-
#: includes/class-yit-plugin-panel.php:
|
163 |
msgid "to keep updating and improving the plugin. Please,"
|
164 |
msgstr ""
|
165 |
"για να διατηρήσετε την ενημέρωση και τη βελτίωση του πρόσθετου. Παρακαλώ,"
|
166 |
|
167 |
-
#: includes/class-yit-plugin-panel.php:
|
168 |
msgid "help us by leaving a good review"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: includes/class-yit-plugin-panel.php:
|
172 |
msgid ":) Thanks!"
|
173 |
msgstr ":) Ευχαριστώ!"
|
174 |
|
@@ -536,6 +552,34 @@ msgstr "Ανέβασμα"
|
|
536 |
msgid "Reset"
|
537 |
msgstr "Επαναφορά"
|
538 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
539 |
#: templates/panel/woocommerce/woocommerce-form.php:29
|
540 |
#: templates/panel/woocommerce/woocommerce-form.php:33
|
541 |
msgid "Save Options"
|
@@ -716,50 +760,50 @@ msgctxt "[gutenberg]: Category Name"
|
|
716 |
msgid "YITH"
|
717 |
msgstr "YITH"
|
718 |
|
719 |
-
#: includes/class-yit-assets.php:
|
720 |
msgctxt "Button text"
|
721 |
msgid "Confirm"
|
722 |
msgstr ""
|
723 |
|
724 |
-
#: includes/class-yit-assets.php:
|
725 |
msgctxt "Button text"
|
726 |
msgid "Cancel"
|
727 |
msgstr ""
|
728 |
|
729 |
-
#: includes/class-yit-assets.php:
|
730 |
msgctxt "Trash confirmation action"
|
731 |
msgid "Yes, move to trash"
|
732 |
msgstr ""
|
733 |
|
734 |
-
#: includes/class-yit-assets.php:
|
735 |
#: yit-functions.php:2154
|
736 |
msgctxt "Delete confirmation action"
|
737 |
msgid "Yes, delete"
|
738 |
msgstr ""
|
739 |
|
740 |
#. translators: 1. Plugin name.
|
741 |
-
#: includes/class-yit-plugin-panel.php:
|
742 |
msgctxt "Help tab default title"
|
743 |
msgid "Thank you for purchasing %s!"
|
744 |
msgstr ""
|
745 |
|
746 |
-
#: includes/class-yit-plugin-panel.php:
|
747 |
msgctxt "Help tab default title"
|
748 |
msgid "Thank you for using %s!"
|
749 |
msgstr ""
|
750 |
|
751 |
-
#: includes/class-yit-plugin-panel.php:
|
752 |
msgctxt "Help tab default description"
|
753 |
msgid ""
|
754 |
"We want to help you enjoy a wonderful experience with all of our products."
|
755 |
msgstr ""
|
756 |
|
757 |
-
#: includes/class-yit-plugin-panel.php:
|
758 |
msgctxt "Premium tab name"
|
759 |
msgid "Get premium"
|
760 |
msgstr ""
|
761 |
|
762 |
-
#: includes/class-yit-plugin-panel.php:
|
763 |
msgctxt "Help tab name"
|
764 |
msgid "Help"
|
765 |
msgstr ""
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
+
"POT-Creation-Date: 2022-08-10 12:46:35+00:00\n"
|
8 |
"PO-Revision-Date: 2021-02-11 18:07:46+0000\n"
|
9 |
"Language: el_GR\n"
|
10 |
"MIME-Version: 1.0\n"
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
+
#: includes/class-yit-assets.php:148 yit-functions.php:2006
|
17 |
msgid "Confirm trash"
|
18 |
msgstr ""
|
19 |
|
20 |
+
#: includes/class-yit-assets.php:149
|
21 |
msgid "Are you sure you want to trash the selected items?"
|
22 |
msgstr ""
|
23 |
|
24 |
+
#: includes/class-yit-assets.php:151 includes/class-yit-assets.php:155
|
25 |
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
|
26 |
#: yit-functions.php:2008 yit-functions.php:2026
|
27 |
msgid "No"
|
28 |
msgstr "Όχι"
|
29 |
|
30 |
+
#: includes/class-yit-assets.php:152 yit-functions.php:2024
|
31 |
#: yit-functions.php:2152
|
32 |
msgid "Confirm delete"
|
33 |
msgstr ""
|
34 |
|
35 |
+
#: includes/class-yit-assets.php:153
|
36 |
msgid "Are you sure you want to delete the selected items?"
|
37 |
msgstr ""
|
38 |
|
39 |
+
#: includes/class-yit-assets.php:153 yit-functions.php:1940
|
40 |
#: yit-functions.php:2100
|
41 |
msgid ""
|
42 |
"This action cannot be undone and you will not be able to recover this data."
|
43 |
msgstr ""
|
44 |
|
45 |
+
#: includes/class-yit-assets.php:174
|
46 |
msgid "Clear"
|
47 |
msgstr "Καθαρισμός"
|
48 |
|
49 |
+
#: includes/class-yit-assets.php:175
|
50 |
msgid "Clear color"
|
51 |
msgstr "Καθαρισμός χρώματος"
|
52 |
|
53 |
+
#: includes/class-yit-assets.php:176
|
54 |
msgid "Default"
|
55 |
msgstr "Προεπιλεγμένο"
|
56 |
|
57 |
+
#: includes/class-yit-assets.php:177
|
58 |
msgid "Select default color"
|
59 |
msgstr "Επιλογή προεπιλεγμένου χρώματος"
|
60 |
|
61 |
+
#: includes/class-yit-assets.php:178
|
62 |
msgid "Select Color"
|
63 |
msgstr "Επιλογή Χρώματος"
|
64 |
|
65 |
+
#: includes/class-yit-assets.php:179
|
66 |
msgid "Color value"
|
67 |
msgstr "Αξία χρώματος"
|
68 |
|
70 |
msgid "There was an error with your request; please try again later."
|
71 |
msgstr ""
|
72 |
|
73 |
+
#: includes/class-yit-plugin-panel-woocommerce.php:437
|
74 |
msgid "The changes you have made will be lost if you leave this page."
|
75 |
msgstr ""
|
76 |
"Οι αλλαγές που έχετε δημιουργήσει θα χαθούν αν αφήσετε αυτήν την σελίδα."
|
83 |
msgid "Settings"
|
84 |
msgstr "Ρυθμίσεις"
|
85 |
|
86 |
+
#: includes/class-yit-plugin-panel.php:456
|
87 |
+
#: includes/class-yit-plugin-panel.php:459
|
88 |
msgid "How to install premium version"
|
89 |
msgstr "Πώς να εγκαταστήσετε την προηγμένη έκδοση"
|
90 |
|
91 |
+
#: includes/class-yit-plugin-panel.php:656
|
92 |
#: includes/class-yit-plugin-subpanel.php:133
|
93 |
msgid "Save Changes"
|
94 |
msgstr "Αποθήκευση Αλλαγών"
|
95 |
|
96 |
+
#: includes/class-yit-plugin-panel.php:664
|
97 |
#: includes/class-yit-plugin-subpanel.php:140
|
98 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
99 |
msgid ""
|
102 |
"Αν συνεχίσετε με αυτή την ενέργεια θα επαναφέρετε όλες τις επιλογές στη "
|
103 |
"σελίδα."
|
104 |
|
105 |
+
#: includes/class-yit-plugin-panel.php:664
|
106 |
#: includes/class-yit-plugin-subpanel.php:140
|
107 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
108 |
msgid "Are you sure?"
|
109 |
msgstr "Είστε σίγουρος;"
|
110 |
|
111 |
+
#: includes/class-yit-plugin-panel.php:668
|
112 |
#: includes/class-yit-plugin-subpanel.php:143
|
113 |
msgid "Reset to default"
|
114 |
msgstr "Επαναφορά σε προεπιλεγμένο"
|
115 |
|
116 |
+
#: includes/class-yit-plugin-panel.php:1039
|
117 |
+
msgid "Read the <mark>plugin documentation</mark>"
|
118 |
+
msgstr ""
|
119 |
+
|
120 |
+
#: includes/class-yit-plugin-panel.php:1040
|
121 |
+
msgid "Learn what you can really do with this powerful tool"
|
122 |
+
msgstr ""
|
123 |
+
|
124 |
+
#: includes/class-yit-plugin-panel.php:1050
|
125 |
+
msgid "Watch our <mark>\"First Steps\" video</mark>"
|
126 |
+
msgstr ""
|
127 |
+
|
128 |
+
#: includes/class-yit-plugin-panel.php:1051
|
129 |
+
msgid "See how it works before you start using it"
|
130 |
+
msgstr ""
|
131 |
+
|
132 |
+
#: includes/class-yit-plugin-panel.php:1307
|
133 |
msgid ""
|
134 |
"The element you have entered already exists. Please, enter another name."
|
135 |
msgstr "Το στοιχείο που εισάγατε υπάρχει ήδη. Παρακαλώ, εισάγετε άλλο όνομα."
|
136 |
|
137 |
+
#: includes/class-yit-plugin-panel.php:1308
|
138 |
msgid "Settings saved"
|
139 |
msgstr "Ρυθμίσεις αποθηκεύτηκαν"
|
140 |
|
141 |
+
#: includes/class-yit-plugin-panel.php:1309
|
142 |
msgid "Settings reset"
|
143 |
msgstr "Επαναφορά ρυθμίσεων"
|
144 |
|
145 |
+
#: includes/class-yit-plugin-panel.php:1310
|
146 |
msgid "Element deleted correctly."
|
147 |
msgstr "Το στοιχείο διαγράφηκε επιτυχώς."
|
148 |
|
149 |
+
#: includes/class-yit-plugin-panel.php:1311
|
150 |
+
#: includes/class-yit-plugin-panel.php:1312
|
151 |
msgid "Element updated correctly."
|
152 |
msgstr "Το στοιχείο αναβαθμίστηκε επιτυχώς."
|
153 |
|
154 |
+
#: includes/class-yit-plugin-panel.php:1313
|
155 |
msgid "Database imported correctly."
|
156 |
msgstr "Επιτυχής εισαγωγή βάσης δεδομένων."
|
157 |
|
158 |
+
#: includes/class-yit-plugin-panel.php:1314
|
159 |
msgid "An error has occurred during import. Please try again."
|
160 |
msgstr "Παρουσιάστηκε σφάλμα κατά την εισαγωγή. Παρακαλώ προσπαθήστε ξανά."
|
161 |
|
162 |
+
#: includes/class-yit-plugin-panel.php:1315
|
163 |
msgid "The added file is not valid."
|
164 |
msgstr "Το προστιθέμενο αρχείο δεν είναι έγκυρο."
|
165 |
|
166 |
+
#: includes/class-yit-plugin-panel.php:1316
|
167 |
msgid "Sorry, import is disabled."
|
168 |
msgstr "Συγνώμη, η εισαγωγή είναι απενεργοποιημένη."
|
169 |
|
170 |
+
#: includes/class-yit-plugin-panel.php:1317
|
171 |
msgid "Sorting successful."
|
172 |
msgstr "Διαλογή επιτυχής."
|
173 |
|
174 |
+
#: includes/class-yit-plugin-panel.php:1806
|
175 |
msgid "We need your support"
|
176 |
msgstr "Χρειαζόμαστε την υποστήριξή σας"
|
177 |
|
178 |
+
#: includes/class-yit-plugin-panel.php:1807
|
179 |
msgid "to keep updating and improving the plugin. Please,"
|
180 |
msgstr ""
|
181 |
"για να διατηρήσετε την ενημέρωση και τη βελτίωση του πρόσθετου. Παρακαλώ,"
|
182 |
|
183 |
+
#: includes/class-yit-plugin-panel.php:1809
|
184 |
msgid "help us by leaving a good review"
|
185 |
msgstr ""
|
186 |
|
187 |
+
#: includes/class-yit-plugin-panel.php:1810
|
188 |
msgid ":) Thanks!"
|
189 |
msgstr ":) Ευχαριστώ!"
|
190 |
|
552 |
msgid "Reset"
|
553 |
msgstr "Επαναφορά"
|
554 |
|
555 |
+
#. translators: %s is the plugin version.
|
556 |
+
#: templates/panel/welcome-modals/update.php:34
|
557 |
+
msgid "is successfully updated to version %s."
|
558 |
+
msgstr ""
|
559 |
+
|
560 |
+
#. translators: %s is the plugin version.
|
561 |
+
#: templates/panel/welcome-modals/update.php:44
|
562 |
+
msgid "What's new in version %s"
|
563 |
+
msgstr ""
|
564 |
+
|
565 |
+
#: templates/panel/welcome-modals/update.php:49
|
566 |
+
msgid "Check the changelog >"
|
567 |
+
msgstr ""
|
568 |
+
|
569 |
+
#: templates/panel/welcome-modals/update.php:64
|
570 |
+
#: templates/panel/welcome-modals/welcome.php:60
|
571 |
+
msgid "Got it, close this window"
|
572 |
+
msgstr ""
|
573 |
+
|
574 |
+
#: templates/panel/welcome-modals/welcome.php:30
|
575 |
+
msgid "Thank you for using our plugin"
|
576 |
+
msgstr ""
|
577 |
+
|
578 |
+
#. translators: %s is the number of steps.
|
579 |
+
#: templates/panel/welcome-modals/welcome.php:45
|
580 |
+
msgid "Start with these %s steps:"
|
581 |
+
msgstr ""
|
582 |
+
|
583 |
#: templates/panel/woocommerce/woocommerce-form.php:29
|
584 |
#: templates/panel/woocommerce/woocommerce-form.php:33
|
585 |
msgid "Save Options"
|
760 |
msgid "YITH"
|
761 |
msgstr "YITH"
|
762 |
|
763 |
+
#: includes/class-yit-assets.php:136
|
764 |
msgctxt "Button text"
|
765 |
msgid "Confirm"
|
766 |
msgstr ""
|
767 |
|
768 |
+
#: includes/class-yit-assets.php:137
|
769 |
msgctxt "Button text"
|
770 |
msgid "Cancel"
|
771 |
msgstr ""
|
772 |
|
773 |
+
#: includes/class-yit-assets.php:150 yit-functions.php:2009
|
774 |
msgctxt "Trash confirmation action"
|
775 |
msgid "Yes, move to trash"
|
776 |
msgstr ""
|
777 |
|
778 |
+
#: includes/class-yit-assets.php:154 yit-functions.php:2027
|
779 |
#: yit-functions.php:2154
|
780 |
msgctxt "Delete confirmation action"
|
781 |
msgid "Yes, delete"
|
782 |
msgstr ""
|
783 |
|
784 |
#. translators: 1. Plugin name.
|
785 |
+
#: includes/class-yit-plugin-panel.php:804
|
786 |
msgctxt "Help tab default title"
|
787 |
msgid "Thank you for purchasing %s!"
|
788 |
msgstr ""
|
789 |
|
790 |
+
#: includes/class-yit-plugin-panel.php:804
|
791 |
msgctxt "Help tab default title"
|
792 |
msgid "Thank you for using %s!"
|
793 |
msgstr ""
|
794 |
|
795 |
+
#: includes/class-yit-plugin-panel.php:812
|
796 |
msgctxt "Help tab default description"
|
797 |
msgid ""
|
798 |
"We want to help you enjoy a wonderful experience with all of our products."
|
799 |
msgstr ""
|
800 |
|
801 |
+
#: includes/class-yit-plugin-panel.php:863
|
802 |
msgctxt "Premium tab name"
|
803 |
msgid "Get premium"
|
804 |
msgstr ""
|
805 |
|
806 |
+
#: includes/class-yit-plugin-panel.php:875
|
807 |
msgctxt "Help tab name"
|
808 |
msgid "Help"
|
809 |
msgstr ""
|
plugin-fw/languages/yith-plugin-fw-es_ES.mo
CHANGED
Binary file
|
plugin-fw/languages/yith-plugin-fw-es_ES.po
CHANGED
@@ -4,8 +4,8 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
-
"POT-Creation-Date: 2022-08-
|
8 |
-
"PO-Revision-Date: 2022-
|
9 |
"Language: es\n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
@@ -13,57 +13,57 @@ msgstr ""
|
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
-
#: includes/class-yit-assets.php:
|
17 |
msgid "Confirm trash"
|
18 |
msgstr "Confirmar el traslado a la papelera"
|
19 |
|
20 |
-
#: includes/class-yit-assets.php:
|
21 |
msgid "Are you sure you want to trash the selected items?"
|
22 |
msgstr ""
|
23 |
"¿Estás seguro de que quieres mover a la papelera los elementos seleccionados?"
|
24 |
|
25 |
-
#: includes/class-yit-assets.php:
|
26 |
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
|
27 |
#: yit-functions.php:2008 yit-functions.php:2026
|
28 |
msgid "No"
|
29 |
msgstr "No"
|
30 |
|
31 |
-
#: includes/class-yit-assets.php:
|
32 |
#: yit-functions.php:2152
|
33 |
msgid "Confirm delete"
|
34 |
msgstr "Confirmar el borrado"
|
35 |
|
36 |
-
#: includes/class-yit-assets.php:
|
37 |
msgid "Are you sure you want to delete the selected items?"
|
38 |
msgstr "¿Estás seguro de que quieres borrar los elementos seleccionados?"
|
39 |
|
40 |
-
#: includes/class-yit-assets.php:
|
41 |
#: yit-functions.php:2100
|
42 |
msgid ""
|
43 |
"This action cannot be undone and you will not be able to recover this data."
|
44 |
msgstr "Esta acción no se puede revertir y no podrá recuperar estos datos."
|
45 |
|
46 |
-
#: includes/class-yit-assets.php:
|
47 |
msgid "Clear"
|
48 |
msgstr "Borrar"
|
49 |
|
50 |
-
#: includes/class-yit-assets.php:
|
51 |
msgid "Clear color"
|
52 |
msgstr "Borrar color"
|
53 |
|
54 |
-
#: includes/class-yit-assets.php:
|
55 |
msgid "Default"
|
56 |
msgstr "Predeterminado"
|
57 |
|
58 |
-
#: includes/class-yit-assets.php:
|
59 |
msgid "Select default color"
|
60 |
msgstr "Seleccionar color predeterminado"
|
61 |
|
62 |
-
#: includes/class-yit-assets.php:
|
63 |
msgid "Select Color"
|
64 |
msgstr "Seleccionar color"
|
65 |
|
66 |
-
#: includes/class-yit-assets.php:
|
67 |
msgid "Color value"
|
68 |
msgstr "Valor del color"
|
69 |
|
@@ -72,7 +72,7 @@ msgid "There was an error with your request; please try again later."
|
|
72 |
msgstr ""
|
73 |
"Se ha producido un error en tu solicitud; inténtalo de nuevo más tarde."
|
74 |
|
75 |
-
#: includes/class-yit-plugin-panel-woocommerce.php:
|
76 |
msgid "The changes you have made will be lost if you leave this page."
|
77 |
msgstr "Los cambios que has hecho se perderán si abandonas esta página."
|
78 |
|
@@ -84,17 +84,17 @@ msgstr "Ajustes del plugin"
|
|
84 |
msgid "Settings"
|
85 |
msgstr "Ajustes"
|
86 |
|
87 |
-
#: includes/class-yit-plugin-panel.php:
|
88 |
-
#: includes/class-yit-plugin-panel.php:
|
89 |
msgid "How to install premium version"
|
90 |
msgstr "Cómo instalar la versión premium"
|
91 |
|
92 |
-
#: includes/class-yit-plugin-panel.php:
|
93 |
#: includes/class-yit-plugin-subpanel.php:133
|
94 |
msgid "Save Changes"
|
95 |
msgstr "Guardar cambios"
|
96 |
|
97 |
-
#: includes/class-yit-plugin-panel.php:
|
98 |
#: includes/class-yit-plugin-subpanel.php:140
|
99 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
100 |
msgid ""
|
@@ -103,74 +103,90 @@ msgstr ""
|
|
103 |
"Si continúas con esta acción, restablecerás todas las opciones en esta "
|
104 |
"página."
|
105 |
|
106 |
-
#: includes/class-yit-plugin-panel.php:
|
107 |
#: includes/class-yit-plugin-subpanel.php:140
|
108 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
109 |
msgid "Are you sure?"
|
110 |
msgstr "¿Estás seguro?"
|
111 |
|
112 |
-
#: includes/class-yit-plugin-panel.php:
|
113 |
#: includes/class-yit-plugin-subpanel.php:143
|
114 |
msgid "Reset to default"
|
115 |
msgstr "Restablecer valores predeterminados"
|
116 |
|
117 |
-
#: includes/class-yit-plugin-panel.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
msgid ""
|
119 |
"The element you have entered already exists. Please, enter another name."
|
120 |
msgstr ""
|
121 |
"El elemento que has introducido ya existe. Por favor, introduce otro nombre."
|
122 |
|
123 |
-
#: includes/class-yit-plugin-panel.php:
|
124 |
msgid "Settings saved"
|
125 |
msgstr "Ajustes guardados"
|
126 |
|
127 |
-
#: includes/class-yit-plugin-panel.php:
|
128 |
msgid "Settings reset"
|
129 |
msgstr "Restablecer ajustes"
|
130 |
|
131 |
-
#: includes/class-yit-plugin-panel.php:
|
132 |
msgid "Element deleted correctly."
|
133 |
msgstr "Elemento eliminado correctamente."
|
134 |
|
135 |
-
#: includes/class-yit-plugin-panel.php:
|
136 |
-
#: includes/class-yit-plugin-panel.php:
|
137 |
msgid "Element updated correctly."
|
138 |
msgstr "Elemento actualizado correctamente."
|
139 |
|
140 |
-
#: includes/class-yit-plugin-panel.php:
|
141 |
msgid "Database imported correctly."
|
142 |
msgstr "Base de datos importada correctamente."
|
143 |
|
144 |
-
#: includes/class-yit-plugin-panel.php:
|
145 |
msgid "An error has occurred during import. Please try again."
|
146 |
msgstr ""
|
147 |
"Ha ocurrido un error durante la importación. Por favor, inténtalo de nuevo."
|
148 |
|
149 |
-
#: includes/class-yit-plugin-panel.php:
|
150 |
msgid "The added file is not valid."
|
151 |
msgstr "El archivo añadido no es válido."
|
152 |
|
153 |
-
#: includes/class-yit-plugin-panel.php:
|
154 |
msgid "Sorry, import is disabled."
|
155 |
msgstr "Lo siento, la importación está desactivada."
|
156 |
|
157 |
-
#: includes/class-yit-plugin-panel.php:
|
158 |
msgid "Sorting successful."
|
159 |
msgstr "Clasificación realizada con éxito"
|
160 |
|
161 |
-
#: includes/class-yit-plugin-panel.php:
|
162 |
msgid "We need your support"
|
163 |
msgstr "Necesitamos tu apoyo"
|
164 |
|
165 |
-
#: includes/class-yit-plugin-panel.php:
|
166 |
msgid "to keep updating and improving the plugin. Please,"
|
167 |
msgstr "para que podamos seguir actualizando y mejorando el plugin. Por favor,"
|
168 |
|
169 |
-
#: includes/class-yit-plugin-panel.php:
|
170 |
msgid "help us by leaving a good review"
|
171 |
msgstr "ayúdanos dejando una buena valoración"
|
172 |
|
173 |
-
#: includes/class-yit-plugin-panel.php:
|
174 |
msgid ":) Thanks!"
|
175 |
msgstr ":) ¡Gracias!"
|
176 |
|
@@ -213,7 +229,7 @@ msgstr ""
|
|
213 |
|
214 |
#: includes/class-yith-bh-onboarding.php:85
|
215 |
msgid "It is not possible save the options"
|
216 |
-
msgstr ""
|
217 |
|
218 |
#: includes/class-yith-dashboard.php:35
|
219 |
msgid "YITH Latest Updates"
|
@@ -416,7 +432,7 @@ msgstr ""
|
|
416 |
|
417 |
#: templates/bh-onboarding/onboarding-tabs.php:63
|
418 |
msgid "Save"
|
419 |
-
msgstr ""
|
420 |
|
421 |
#: templates/fields/ajax-customers.php:41
|
422 |
msgid "Search for a customer..."
|
@@ -545,6 +561,34 @@ msgstr "Subir"
|
|
545 |
msgid "Reset"
|
546 |
msgstr "Restablecer"
|
547 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
548 |
#: templates/panel/woocommerce/woocommerce-form.php:29
|
549 |
#: templates/panel/woocommerce/woocommerce-form.php:33
|
550 |
msgid "Save Options"
|
@@ -728,40 +772,39 @@ msgctxt "[gutenberg]: Category Name"
|
|
728 |
msgid "YITH"
|
729 |
msgstr "YITH"
|
730 |
|
731 |
-
#: includes/class-yit-assets.php:
|
732 |
msgctxt "Button text"
|
733 |
msgid "Confirm"
|
734 |
msgstr "Confirmar"
|
735 |
|
736 |
-
#: includes/class-yit-assets.php:
|
737 |
msgctxt "Button text"
|
738 |
msgid "Cancel"
|
739 |
msgstr "Cancelar"
|
740 |
|
741 |
-
#: includes/class-yit-assets.php:
|
742 |
msgctxt "Trash confirmation action"
|
743 |
msgid "Yes, move to trash"
|
744 |
msgstr "Sí, mover a la papelera"
|
745 |
|
746 |
-
#: includes/class-yit-assets.php:
|
747 |
#: yit-functions.php:2154
|
748 |
msgctxt "Delete confirmation action"
|
749 |
msgid "Yes, delete"
|
750 |
msgstr "Si, borrar"
|
751 |
|
752 |
#. translators: 1. Plugin name.
|
753 |
-
#: includes/class-yit-plugin-panel.php:
|
754 |
msgctxt "Help tab default title"
|
755 |
msgid "Thank you for purchasing %s!"
|
756 |
msgstr "¡Gracias por comprar %s!"
|
757 |
|
758 |
-
#: includes/class-yit-plugin-panel.php:
|
759 |
-
#, fuzzy
|
760 |
msgctxt "Help tab default title"
|
761 |
msgid "Thank you for using %s!"
|
762 |
-
msgstr "¡Gracias por
|
763 |
|
764 |
-
#: includes/class-yit-plugin-panel.php:
|
765 |
msgctxt "Help tab default description"
|
766 |
msgid ""
|
767 |
"We want to help you enjoy a wonderful experience with all of our products."
|
@@ -769,12 +812,12 @@ msgstr ""
|
|
769 |
"Queremos ayudarte a disfrutar de una experiencia maravillosa con todos "
|
770 |
"nuestros productos."
|
771 |
|
772 |
-
#: includes/class-yit-plugin-panel.php:
|
773 |
msgctxt "Premium tab name"
|
774 |
msgid "Get premium"
|
775 |
msgstr "Obtén premium"
|
776 |
|
777 |
-
#: includes/class-yit-plugin-panel.php:
|
778 |
msgctxt "Help tab name"
|
779 |
msgid "Help"
|
780 |
msgstr "Ayuda"
|
@@ -969,19 +1012,16 @@ msgstr "Enviar ticket"
|
|
969 |
|
970 |
#: templates/panel/help-tab.php:216 templates/panel/help-tab.php:218
|
971 |
#: templates/panel/help-tab.php:223
|
972 |
-
#, fuzzy
|
973 |
msgctxt "Help tab documentation"
|
974 |
msgid "Read the plugin documentation"
|
975 |
-
msgstr "Lee la documentación"
|
976 |
|
977 |
#: templates/panel/help-tab.php:220
|
978 |
-
#, fuzzy
|
979 |
msgctxt "Help tab documentation"
|
980 |
msgid "to learn how it works from the basics."
|
981 |
-
msgstr "para aprender cómo funciona
|
982 |
|
983 |
#: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
|
984 |
-
#, fuzzy
|
985 |
msgctxt "Help tab support"
|
986 |
msgid "Need some help?"
|
987 |
msgstr "¿Necesitas ayuda?"
|
@@ -989,7 +1029,7 @@ msgstr "¿Necesitas ayuda?"
|
|
989 |
#: templates/panel/help-tab.php:235
|
990 |
msgctxt "Help tab support"
|
991 |
msgid "From DIY to full-service help"
|
992 |
-
msgstr ""
|
993 |
|
994 |
#: templates/panel/help-tab.php:238
|
995 |
msgctxt "Help tab support"
|
@@ -997,12 +1037,13 @@ msgid ""
|
|
997 |
"Call or chat 24/7 with our support agents, or let our experts build your "
|
998 |
"site."
|
999 |
msgstr ""
|
|
|
|
|
1000 |
|
1001 |
#: templates/panel/help-tab.php:241
|
1002 |
-
#, fuzzy
|
1003 |
msgctxt "Help tab support"
|
1004 |
msgid "Yes, I need help"
|
1005 |
-
msgstr "
|
1006 |
|
1007 |
#: templates/panel/premium-tab.php:30
|
1008 |
msgctxt "Premium Tab"
|
@@ -1026,10 +1067,9 @@ msgid "And so much more!"
|
|
1026 |
msgstr "¡Y mucho más!"
|
1027 |
|
1028 |
#: templates/panel/premium-tab.php:53
|
1029 |
-
#, fuzzy
|
1030 |
msgctxt "Premium Tab"
|
1031 |
msgid "Check the premium features >"
|
1032 |
-
msgstr "Comprueba las características
|
1033 |
|
1034 |
#: templates/panel/premium-tab.php:60
|
1035 |
msgctxt "Premium Tab"
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
+
"POT-Creation-Date: 2022-08-10 12:46:35+00:00\n"
|
8 |
+
"PO-Revision-Date: 2022-08-10 11:52:30+0000\n"
|
9 |
"Language: es\n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
+
#: includes/class-yit-assets.php:148 yit-functions.php:2006
|
17 |
msgid "Confirm trash"
|
18 |
msgstr "Confirmar el traslado a la papelera"
|
19 |
|
20 |
+
#: includes/class-yit-assets.php:149
|
21 |
msgid "Are you sure you want to trash the selected items?"
|
22 |
msgstr ""
|
23 |
"¿Estás seguro de que quieres mover a la papelera los elementos seleccionados?"
|
24 |
|
25 |
+
#: includes/class-yit-assets.php:151 includes/class-yit-assets.php:155
|
26 |
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
|
27 |
#: yit-functions.php:2008 yit-functions.php:2026
|
28 |
msgid "No"
|
29 |
msgstr "No"
|
30 |
|
31 |
+
#: includes/class-yit-assets.php:152 yit-functions.php:2024
|
32 |
#: yit-functions.php:2152
|
33 |
msgid "Confirm delete"
|
34 |
msgstr "Confirmar el borrado"
|
35 |
|
36 |
+
#: includes/class-yit-assets.php:153
|
37 |
msgid "Are you sure you want to delete the selected items?"
|
38 |
msgstr "¿Estás seguro de que quieres borrar los elementos seleccionados?"
|
39 |
|
40 |
+
#: includes/class-yit-assets.php:153 yit-functions.php:1940
|
41 |
#: yit-functions.php:2100
|
42 |
msgid ""
|
43 |
"This action cannot be undone and you will not be able to recover this data."
|
44 |
msgstr "Esta acción no se puede revertir y no podrá recuperar estos datos."
|
45 |
|
46 |
+
#: includes/class-yit-assets.php:174
|
47 |
msgid "Clear"
|
48 |
msgstr "Borrar"
|
49 |
|
50 |
+
#: includes/class-yit-assets.php:175
|
51 |
msgid "Clear color"
|
52 |
msgstr "Borrar color"
|
53 |
|
54 |
+
#: includes/class-yit-assets.php:176
|
55 |
msgid "Default"
|
56 |
msgstr "Predeterminado"
|
57 |
|
58 |
+
#: includes/class-yit-assets.php:177
|
59 |
msgid "Select default color"
|
60 |
msgstr "Seleccionar color predeterminado"
|
61 |
|
62 |
+
#: includes/class-yit-assets.php:178
|
63 |
msgid "Select Color"
|
64 |
msgstr "Seleccionar color"
|
65 |
|
66 |
+
#: includes/class-yit-assets.php:179
|
67 |
msgid "Color value"
|
68 |
msgstr "Valor del color"
|
69 |
|
72 |
msgstr ""
|
73 |
"Se ha producido un error en tu solicitud; inténtalo de nuevo más tarde."
|
74 |
|
75 |
+
#: includes/class-yit-plugin-panel-woocommerce.php:437
|
76 |
msgid "The changes you have made will be lost if you leave this page."
|
77 |
msgstr "Los cambios que has hecho se perderán si abandonas esta página."
|
78 |
|
84 |
msgid "Settings"
|
85 |
msgstr "Ajustes"
|
86 |
|
87 |
+
#: includes/class-yit-plugin-panel.php:456
|
88 |
+
#: includes/class-yit-plugin-panel.php:459
|
89 |
msgid "How to install premium version"
|
90 |
msgstr "Cómo instalar la versión premium"
|
91 |
|
92 |
+
#: includes/class-yit-plugin-panel.php:656
|
93 |
#: includes/class-yit-plugin-subpanel.php:133
|
94 |
msgid "Save Changes"
|
95 |
msgstr "Guardar cambios"
|
96 |
|
97 |
+
#: includes/class-yit-plugin-panel.php:664
|
98 |
#: includes/class-yit-plugin-subpanel.php:140
|
99 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
100 |
msgid ""
|
103 |
"Si continúas con esta acción, restablecerás todas las opciones en esta "
|
104 |
"página."
|
105 |
|
106 |
+
#: includes/class-yit-plugin-panel.php:664
|
107 |
#: includes/class-yit-plugin-subpanel.php:140
|
108 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
109 |
msgid "Are you sure?"
|
110 |
msgstr "¿Estás seguro?"
|
111 |
|
112 |
+
#: includes/class-yit-plugin-panel.php:668
|
113 |
#: includes/class-yit-plugin-subpanel.php:143
|
114 |
msgid "Reset to default"
|
115 |
msgstr "Restablecer valores predeterminados"
|
116 |
|
117 |
+
#: includes/class-yit-plugin-panel.php:1039
|
118 |
+
msgid "Read the <mark>plugin documentation</mark>"
|
119 |
+
msgstr "Lee la <mark>documentación del plugin</mark>"
|
120 |
+
|
121 |
+
#: includes/class-yit-plugin-panel.php:1040
|
122 |
+
msgid "Learn what you can really do with this powerful tool"
|
123 |
+
msgstr "Aprende lo que realmente puedes hacer con esta potente herramienta"
|
124 |
+
|
125 |
+
#: includes/class-yit-plugin-panel.php:1050
|
126 |
+
msgid "Watch our <mark>\"First Steps\" video</mark>"
|
127 |
+
msgstr "Mira nuestro <mark>vídeo de «primeros pasos»</mark>"
|
128 |
+
|
129 |
+
#: includes/class-yit-plugin-panel.php:1051
|
130 |
+
msgid "See how it works before you start using it"
|
131 |
+
msgstr "Ve cómo funciona antes de empezar a usarlo"
|
132 |
+
|
133 |
+
#: includes/class-yit-plugin-panel.php:1307
|
134 |
msgid ""
|
135 |
"The element you have entered already exists. Please, enter another name."
|
136 |
msgstr ""
|
137 |
"El elemento que has introducido ya existe. Por favor, introduce otro nombre."
|
138 |
|
139 |
+
#: includes/class-yit-plugin-panel.php:1308
|
140 |
msgid "Settings saved"
|
141 |
msgstr "Ajustes guardados"
|
142 |
|
143 |
+
#: includes/class-yit-plugin-panel.php:1309
|
144 |
msgid "Settings reset"
|
145 |
msgstr "Restablecer ajustes"
|
146 |
|
147 |
+
#: includes/class-yit-plugin-panel.php:1310
|
148 |
msgid "Element deleted correctly."
|
149 |
msgstr "Elemento eliminado correctamente."
|
150 |
|
151 |
+
#: includes/class-yit-plugin-panel.php:1311
|
152 |
+
#: includes/class-yit-plugin-panel.php:1312
|
153 |
msgid "Element updated correctly."
|
154 |
msgstr "Elemento actualizado correctamente."
|
155 |
|
156 |
+
#: includes/class-yit-plugin-panel.php:1313
|
157 |
msgid "Database imported correctly."
|
158 |
msgstr "Base de datos importada correctamente."
|
159 |
|
160 |
+
#: includes/class-yit-plugin-panel.php:1314
|
161 |
msgid "An error has occurred during import. Please try again."
|
162 |
msgstr ""
|
163 |
"Ha ocurrido un error durante la importación. Por favor, inténtalo de nuevo."
|
164 |
|
165 |
+
#: includes/class-yit-plugin-panel.php:1315
|
166 |
msgid "The added file is not valid."
|
167 |
msgstr "El archivo añadido no es válido."
|
168 |
|
169 |
+
#: includes/class-yit-plugin-panel.php:1316
|
170 |
msgid "Sorry, import is disabled."
|
171 |
msgstr "Lo siento, la importación está desactivada."
|
172 |
|
173 |
+
#: includes/class-yit-plugin-panel.php:1317
|
174 |
msgid "Sorting successful."
|
175 |
msgstr "Clasificación realizada con éxito"
|
176 |
|
177 |
+
#: includes/class-yit-plugin-panel.php:1806
|
178 |
msgid "We need your support"
|
179 |
msgstr "Necesitamos tu apoyo"
|
180 |
|
181 |
+
#: includes/class-yit-plugin-panel.php:1807
|
182 |
msgid "to keep updating and improving the plugin. Please,"
|
183 |
msgstr "para que podamos seguir actualizando y mejorando el plugin. Por favor,"
|
184 |
|
185 |
+
#: includes/class-yit-plugin-panel.php:1809
|
186 |
msgid "help us by leaving a good review"
|
187 |
msgstr "ayúdanos dejando una buena valoración"
|
188 |
|
189 |
+
#: includes/class-yit-plugin-panel.php:1810
|
190 |
msgid ":) Thanks!"
|
191 |
msgstr ":) ¡Gracias!"
|
192 |
|
229 |
|
230 |
#: includes/class-yith-bh-onboarding.php:85
|
231 |
msgid "It is not possible save the options"
|
232 |
+
msgstr "No es posible guardar las opciones"
|
233 |
|
234 |
#: includes/class-yith-dashboard.php:35
|
235 |
msgid "YITH Latest Updates"
|
432 |
|
433 |
#: templates/bh-onboarding/onboarding-tabs.php:63
|
434 |
msgid "Save"
|
435 |
+
msgstr "Guardar"
|
436 |
|
437 |
#: templates/fields/ajax-customers.php:41
|
438 |
msgid "Search for a customer..."
|
561 |
msgid "Reset"
|
562 |
msgstr "Restablecer"
|
563 |
|
564 |
+
#. translators: %s is the plugin version.
|
565 |
+
#: templates/panel/welcome-modals/update.php:34
|
566 |
+
msgid "is successfully updated to version %s."
|
567 |
+
msgstr "ha sido actualizado correctamente a la versión %s."
|
568 |
+
|
569 |
+
#. translators: %s is the plugin version.
|
570 |
+
#: templates/panel/welcome-modals/update.php:44
|
571 |
+
msgid "What's new in version %s"
|
572 |
+
msgstr "Novedades de la versión %s"
|
573 |
+
|
574 |
+
#: templates/panel/welcome-modals/update.php:49
|
575 |
+
msgid "Check the changelog >"
|
576 |
+
msgstr "Comprueba el registro de cambios >"
|
577 |
+
|
578 |
+
#: templates/panel/welcome-modals/update.php:64
|
579 |
+
#: templates/panel/welcome-modals/welcome.php:60
|
580 |
+
msgid "Got it, close this window"
|
581 |
+
msgstr "Entendido, cerrar esta ventana"
|
582 |
+
|
583 |
+
#: templates/panel/welcome-modals/welcome.php:30
|
584 |
+
msgid "Thank you for using our plugin"
|
585 |
+
msgstr "Gracias por usar nuestro plugin"
|
586 |
+
|
587 |
+
#. translators: %s is the number of steps.
|
588 |
+
#: templates/panel/welcome-modals/welcome.php:45
|
589 |
+
msgid "Start with these %s steps:"
|
590 |
+
msgstr "Comienza con estos %s pasos:"
|
591 |
+
|
592 |
#: templates/panel/woocommerce/woocommerce-form.php:29
|
593 |
#: templates/panel/woocommerce/woocommerce-form.php:33
|
594 |
msgid "Save Options"
|
772 |
msgid "YITH"
|
773 |
msgstr "YITH"
|
774 |
|
775 |
+
#: includes/class-yit-assets.php:136
|
776 |
msgctxt "Button text"
|
777 |
msgid "Confirm"
|
778 |
msgstr "Confirmar"
|
779 |
|
780 |
+
#: includes/class-yit-assets.php:137
|
781 |
msgctxt "Button text"
|
782 |
msgid "Cancel"
|
783 |
msgstr "Cancelar"
|
784 |
|
785 |
+
#: includes/class-yit-assets.php:150 yit-functions.php:2009
|
786 |
msgctxt "Trash confirmation action"
|
787 |
msgid "Yes, move to trash"
|
788 |
msgstr "Sí, mover a la papelera"
|
789 |
|
790 |
+
#: includes/class-yit-assets.php:154 yit-functions.php:2027
|
791 |
#: yit-functions.php:2154
|
792 |
msgctxt "Delete confirmation action"
|
793 |
msgid "Yes, delete"
|
794 |
msgstr "Si, borrar"
|
795 |
|
796 |
#. translators: 1. Plugin name.
|
797 |
+
#: includes/class-yit-plugin-panel.php:804
|
798 |
msgctxt "Help tab default title"
|
799 |
msgid "Thank you for purchasing %s!"
|
800 |
msgstr "¡Gracias por comprar %s!"
|
801 |
|
802 |
+
#: includes/class-yit-plugin-panel.php:804
|
|
|
803 |
msgctxt "Help tab default title"
|
804 |
msgid "Thank you for using %s!"
|
805 |
+
msgstr "¡Gracias por usar %s!"
|
806 |
|
807 |
+
#: includes/class-yit-plugin-panel.php:812
|
808 |
msgctxt "Help tab default description"
|
809 |
msgid ""
|
810 |
"We want to help you enjoy a wonderful experience with all of our products."
|
812 |
"Queremos ayudarte a disfrutar de una experiencia maravillosa con todos "
|
813 |
"nuestros productos."
|
814 |
|
815 |
+
#: includes/class-yit-plugin-panel.php:863
|
816 |
msgctxt "Premium tab name"
|
817 |
msgid "Get premium"
|
818 |
msgstr "Obtén premium"
|
819 |
|
820 |
+
#: includes/class-yit-plugin-panel.php:875
|
821 |
msgctxt "Help tab name"
|
822 |
msgid "Help"
|
823 |
msgstr "Ayuda"
|
1012 |
|
1013 |
#: templates/panel/help-tab.php:216 templates/panel/help-tab.php:218
|
1014 |
#: templates/panel/help-tab.php:223
|
|
|
1015 |
msgctxt "Help tab documentation"
|
1016 |
msgid "Read the plugin documentation"
|
1017 |
+
msgstr "Lee la documentación del plugin"
|
1018 |
|
1019 |
#: templates/panel/help-tab.php:220
|
|
|
1020 |
msgctxt "Help tab documentation"
|
1021 |
msgid "to learn how it works from the basics."
|
1022 |
+
msgstr "para aprender cómo funciona desde lo más básico."
|
1023 |
|
1024 |
#: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
|
|
|
1025 |
msgctxt "Help tab support"
|
1026 |
msgid "Need some help?"
|
1027 |
msgstr "¿Necesitas ayuda?"
|
1029 |
#: templates/panel/help-tab.php:235
|
1030 |
msgctxt "Help tab support"
|
1031 |
msgid "From DIY to full-service help"
|
1032 |
+
msgstr "Ayuda desde «hazlo tu mismo» hasta un servicio completo"
|
1033 |
|
1034 |
#: templates/panel/help-tab.php:238
|
1035 |
msgctxt "Help tab support"
|
1037 |
"Call or chat 24/7 with our support agents, or let our experts build your "
|
1038 |
"site."
|
1039 |
msgstr ""
|
1040 |
+
"Llama o chatee las 24 horas del día con nuestros agentes de soporte, o deja "
|
1041 |
+
"que nuestros expertos construyan tu sitio."
|
1042 |
|
1043 |
#: templates/panel/help-tab.php:241
|
|
|
1044 |
msgctxt "Help tab support"
|
1045 |
msgid "Yes, I need help"
|
1046 |
+
msgstr "Sí, necesito ayuda"
|
1047 |
|
1048 |
#: templates/panel/premium-tab.php:30
|
1049 |
msgctxt "Premium Tab"
|
1067 |
msgstr "¡Y mucho más!"
|
1068 |
|
1069 |
#: templates/panel/premium-tab.php:53
|
|
|
1070 |
msgctxt "Premium Tab"
|
1071 |
msgid "Check the premium features >"
|
1072 |
+
msgstr "Comprueba las características premium >"
|
1073 |
|
1074 |
#: templates/panel/premium-tab.php:60
|
1075 |
msgctxt "Premium Tab"
|
plugin-fw/languages/yith-plugin-fw-it_IT.mo
CHANGED
Binary file
|
plugin-fw/languages/yith-plugin-fw-it_IT.po
CHANGED
@@ -4,8 +4,8 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
-
"POT-Creation-Date: 2022-08-
|
8 |
-
"PO-Revision-Date: 2022-
|
9 |
"Language: it\n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
@@ -13,30 +13,30 @@ msgstr ""
|
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
-
#: includes/class-yit-assets.php:
|
17 |
msgid "Confirm trash"
|
18 |
msgstr "Conferma eliminazione"
|
19 |
|
20 |
-
#: includes/class-yit-assets.php:
|
21 |
msgid "Are you sure you want to trash the selected items?"
|
22 |
msgstr "Se sicuro di voler spostare nel cestino gli elementi selezionati?"
|
23 |
|
24 |
-
#: includes/class-yit-assets.php:
|
25 |
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
|
26 |
#: yit-functions.php:2008 yit-functions.php:2026
|
27 |
msgid "No"
|
28 |
msgstr "No"
|
29 |
|
30 |
-
#: includes/class-yit-assets.php:
|
31 |
#: yit-functions.php:2152
|
32 |
msgid "Confirm delete"
|
33 |
msgstr "Conferma eliminazione"
|
34 |
|
35 |
-
#: includes/class-yit-assets.php:
|
36 |
msgid "Are you sure you want to delete the selected items?"
|
37 |
msgstr "Se sicuro di voler eliminare gli elementi selezionati?"
|
38 |
|
39 |
-
#: includes/class-yit-assets.php:
|
40 |
#: yit-functions.php:2100
|
41 |
msgid ""
|
42 |
"This action cannot be undone and you will not be able to recover this data."
|
@@ -44,27 +44,27 @@ msgstr ""
|
|
44 |
"Quest'azione non può essere annullata e non sarà possibile recuperare questi "
|
45 |
"dati."
|
46 |
|
47 |
-
#: includes/class-yit-assets.php:
|
48 |
msgid "Clear"
|
49 |
msgstr "Rimuovi"
|
50 |
|
51 |
-
#: includes/class-yit-assets.php:
|
52 |
msgid "Clear color"
|
53 |
msgstr "Rimuovi colore"
|
54 |
|
55 |
-
#: includes/class-yit-assets.php:
|
56 |
msgid "Default"
|
57 |
msgstr "Predefinito"
|
58 |
|
59 |
-
#: includes/class-yit-assets.php:
|
60 |
msgid "Select default color"
|
61 |
msgstr "Seleziona il colore predefinito"
|
62 |
|
63 |
-
#: includes/class-yit-assets.php:
|
64 |
msgid "Select Color"
|
65 |
msgstr "Seleziona il colore"
|
66 |
|
67 |
-
#: includes/class-yit-assets.php:
|
68 |
msgid "Color value"
|
69 |
msgstr "Valore del colore"
|
70 |
|
@@ -72,7 +72,7 @@ msgstr "Valore del colore"
|
|
72 |
msgid "There was an error with your request; please try again later."
|
73 |
msgstr "Si è verificato un errore con la tua richiesta. Riprova più tardi."
|
74 |
|
75 |
-
#: includes/class-yit-plugin-panel-woocommerce.php:
|
76 |
msgid "The changes you have made will be lost if you leave this page."
|
77 |
msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
|
78 |
|
@@ -84,17 +84,17 @@ msgstr "Impostazioni plugin"
|
|
84 |
msgid "Settings"
|
85 |
msgstr "Impostazioni"
|
86 |
|
87 |
-
#: includes/class-yit-plugin-panel.php:
|
88 |
-
#: includes/class-yit-plugin-panel.php:
|
89 |
msgid "How to install premium version"
|
90 |
msgstr "Come installare la versione premium"
|
91 |
|
92 |
-
#: includes/class-yit-plugin-panel.php:
|
93 |
#: includes/class-yit-plugin-subpanel.php:133
|
94 |
msgid "Save Changes"
|
95 |
msgstr "Salva modifiche"
|
96 |
|
97 |
-
#: includes/class-yit-plugin-panel.php:
|
98 |
#: includes/class-yit-plugin-subpanel.php:140
|
99 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
100 |
msgid ""
|
@@ -103,72 +103,88 @@ msgstr ""
|
|
103 |
"Se prosegui con questa azione, tutte le opzioni di questa pagina saranno "
|
104 |
"reimpostate."
|
105 |
|
106 |
-
#: includes/class-yit-plugin-panel.php:
|
107 |
#: includes/class-yit-plugin-subpanel.php:140
|
108 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
109 |
msgid "Are you sure?"
|
110 |
msgstr "Sei sicuro?"
|
111 |
|
112 |
-
#: includes/class-yit-plugin-panel.php:
|
113 |
#: includes/class-yit-plugin-subpanel.php:143
|
114 |
msgid "Reset to default"
|
115 |
msgstr "Ripristina configurazione predefinita"
|
116 |
|
117 |
-
#: includes/class-yit-plugin-panel.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
msgid ""
|
119 |
"The element you have entered already exists. Please, enter another name."
|
120 |
msgstr "L'elemento inserito esiste già. Per favore, inserisci un altro nome."
|
121 |
|
122 |
-
#: includes/class-yit-plugin-panel.php:
|
123 |
msgid "Settings saved"
|
124 |
msgstr "Impostazioni salvate"
|
125 |
|
126 |
-
#: includes/class-yit-plugin-panel.php:
|
127 |
msgid "Settings reset"
|
128 |
msgstr "Impostazioni azzerate"
|
129 |
|
130 |
-
#: includes/class-yit-plugin-panel.php:
|
131 |
msgid "Element deleted correctly."
|
132 |
msgstr "Elemento rimosso correttamente."
|
133 |
|
134 |
-
#: includes/class-yit-plugin-panel.php:
|
135 |
-
#: includes/class-yit-plugin-panel.php:
|
136 |
msgid "Element updated correctly."
|
137 |
msgstr "Elemento aggiornato correttamente."
|
138 |
|
139 |
-
#: includes/class-yit-plugin-panel.php:
|
140 |
msgid "Database imported correctly."
|
141 |
msgstr "Database importato correttamente."
|
142 |
|
143 |
-
#: includes/class-yit-plugin-panel.php:
|
144 |
msgid "An error has occurred during import. Please try again."
|
145 |
msgstr "Si è verificato un errore durante l'importazione. Prova di nuovo."
|
146 |
|
147 |
-
#: includes/class-yit-plugin-panel.php:
|
148 |
msgid "The added file is not valid."
|
149 |
msgstr "Il file aggiunto non è valido."
|
150 |
|
151 |
-
#: includes/class-yit-plugin-panel.php:
|
152 |
msgid "Sorry, import is disabled."
|
153 |
msgstr "Ci dispiace, l'importazione è disabilitata."
|
154 |
|
155 |
-
#: includes/class-yit-plugin-panel.php:
|
156 |
msgid "Sorting successful."
|
157 |
msgstr "Ordinamento effettuato con successo."
|
158 |
|
159 |
-
#: includes/class-yit-plugin-panel.php:
|
160 |
msgid "We need your support"
|
161 |
msgstr "Abbiamo bisogno del tuo sostegno"
|
162 |
|
163 |
-
#: includes/class-yit-plugin-panel.php:
|
164 |
msgid "to keep updating and improving the plugin. Please,"
|
165 |
msgstr "per poter continuare ad aggiornare e migliorare il plugin."
|
166 |
|
167 |
-
#: includes/class-yit-plugin-panel.php:
|
168 |
msgid "help us by leaving a good review"
|
169 |
msgstr "Puoi darci una mano lasciando una recensione positiva"
|
170 |
|
171 |
-
#: includes/class-yit-plugin-panel.php:
|
172 |
msgid ":) Thanks!"
|
173 |
msgstr ":) Grazie!"
|
174 |
|
@@ -210,7 +226,7 @@ msgstr ""
|
|
210 |
|
211 |
#: includes/class-yith-bh-onboarding.php:85
|
212 |
msgid "It is not possible save the options"
|
213 |
-
msgstr ""
|
214 |
|
215 |
#: includes/class-yith-dashboard.php:35
|
216 |
msgid "YITH Latest Updates"
|
@@ -414,7 +430,7 @@ msgstr ""
|
|
414 |
|
415 |
#: templates/bh-onboarding/onboarding-tabs.php:63
|
416 |
msgid "Save"
|
417 |
-
msgstr ""
|
418 |
|
419 |
#: templates/fields/ajax-customers.php:41
|
420 |
msgid "Search for a customer..."
|
@@ -543,6 +559,34 @@ msgstr "Carica"
|
|
543 |
msgid "Reset"
|
544 |
msgstr "Ripristina"
|
545 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
546 |
#: templates/panel/woocommerce/woocommerce-form.php:29
|
547 |
#: templates/panel/woocommerce/woocommerce-form.php:33
|
548 |
msgid "Save Options"
|
@@ -728,40 +772,39 @@ msgctxt "[gutenberg]: Category Name"
|
|
728 |
msgid "YITH"
|
729 |
msgstr "YITH"
|
730 |
|
731 |
-
#: includes/class-yit-assets.php:
|
732 |
msgctxt "Button text"
|
733 |
msgid "Confirm"
|
734 |
msgstr "Conferma"
|
735 |
|
736 |
-
#: includes/class-yit-assets.php:
|
737 |
msgctxt "Button text"
|
738 |
msgid "Cancel"
|
739 |
msgstr "Annulla"
|
740 |
|
741 |
-
#: includes/class-yit-assets.php:
|
742 |
msgctxt "Trash confirmation action"
|
743 |
msgid "Yes, move to trash"
|
744 |
msgstr "Sì, sposta nel cestino"
|
745 |
|
746 |
-
#: includes/class-yit-assets.php:
|
747 |
#: yit-functions.php:2154
|
748 |
msgctxt "Delete confirmation action"
|
749 |
msgid "Yes, delete"
|
750 |
msgstr "Sì, elimina"
|
751 |
|
752 |
#. translators: 1. Plugin name.
|
753 |
-
#: includes/class-yit-plugin-panel.php:
|
754 |
msgctxt "Help tab default title"
|
755 |
msgid "Thank you for purchasing %s!"
|
756 |
msgstr "Grazie per aver acquistato %s!"
|
757 |
|
758 |
-
#: includes/class-yit-plugin-panel.php:
|
759 |
-
#, fuzzy
|
760 |
msgctxt "Help tab default title"
|
761 |
msgid "Thank you for using %s!"
|
762 |
-
msgstr "Grazie per aver
|
763 |
|
764 |
-
#: includes/class-yit-plugin-panel.php:
|
765 |
msgctxt "Help tab default description"
|
766 |
msgid ""
|
767 |
"We want to help you enjoy a wonderful experience with all of our products."
|
@@ -769,12 +812,12 @@ msgstr ""
|
|
769 |
"Vogliamo aiutarti ad avere un'esperienza fantastica con tutti i nostri "
|
770 |
"prodotti."
|
771 |
|
772 |
-
#: includes/class-yit-plugin-panel.php:
|
773 |
msgctxt "Premium tab name"
|
774 |
msgid "Get premium"
|
775 |
msgstr "Diventa premium"
|
776 |
|
777 |
-
#: includes/class-yit-plugin-panel.php:
|
778 |
msgctxt "Help tab name"
|
779 |
msgid "Help"
|
780 |
msgstr "Help"
|
@@ -970,19 +1013,16 @@ msgstr "Invia un ticket"
|
|
970 |
|
971 |
#: templates/panel/help-tab.php:216 templates/panel/help-tab.php:218
|
972 |
#: templates/panel/help-tab.php:223
|
973 |
-
#, fuzzy
|
974 |
msgctxt "Help tab documentation"
|
975 |
msgid "Read the plugin documentation"
|
976 |
-
msgstr "
|
977 |
|
978 |
#: templates/panel/help-tab.php:220
|
979 |
-
#, fuzzy
|
980 |
msgctxt "Help tab documentation"
|
981 |
msgid "to learn how it works from the basics."
|
982 |
-
msgstr "per
|
983 |
|
984 |
#: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
|
985 |
-
#, fuzzy
|
986 |
msgctxt "Help tab support"
|
987 |
msgid "Need some help?"
|
988 |
msgstr "Ti serve aiuto?"
|
@@ -990,7 +1030,7 @@ msgstr "Ti serve aiuto?"
|
|
990 |
#: templates/panel/help-tab.php:235
|
991 |
msgctxt "Help tab support"
|
992 |
msgid "From DIY to full-service help"
|
993 |
-
msgstr ""
|
994 |
|
995 |
#: templates/panel/help-tab.php:238
|
996 |
msgctxt "Help tab support"
|
@@ -998,12 +1038,13 @@ msgid ""
|
|
998 |
"Call or chat 24/7 with our support agents, or let our experts build your "
|
999 |
"site."
|
1000 |
msgstr ""
|
|
|
|
|
1001 |
|
1002 |
#: templates/panel/help-tab.php:241
|
1003 |
-
#, fuzzy
|
1004 |
msgctxt "Help tab support"
|
1005 |
msgid "Yes, I need help"
|
1006 |
-
msgstr "
|
1007 |
|
1008 |
#: templates/panel/premium-tab.php:30
|
1009 |
msgctxt "Premium Tab"
|
@@ -1027,10 +1068,9 @@ msgid "And so much more!"
|
|
1027 |
msgstr "E molto altro!"
|
1028 |
|
1029 |
#: templates/panel/premium-tab.php:53
|
1030 |
-
#, fuzzy
|
1031 |
msgctxt "Premium Tab"
|
1032 |
msgid "Check the premium features >"
|
1033 |
-
msgstr "
|
1034 |
|
1035 |
#: templates/panel/premium-tab.php:60
|
1036 |
msgctxt "Premium Tab"
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
+
"POT-Creation-Date: 2022-08-10 12:46:35+00:00\n"
|
8 |
+
"PO-Revision-Date: 2022-08-10 12:35:50+0000\n"
|
9 |
"Language: it\n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
+
#: includes/class-yit-assets.php:148 yit-functions.php:2006
|
17 |
msgid "Confirm trash"
|
18 |
msgstr "Conferma eliminazione"
|
19 |
|
20 |
+
#: includes/class-yit-assets.php:149
|
21 |
msgid "Are you sure you want to trash the selected items?"
|
22 |
msgstr "Se sicuro di voler spostare nel cestino gli elementi selezionati?"
|
23 |
|
24 |
+
#: includes/class-yit-assets.php:151 includes/class-yit-assets.php:155
|
25 |
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
|
26 |
#: yit-functions.php:2008 yit-functions.php:2026
|
27 |
msgid "No"
|
28 |
msgstr "No"
|
29 |
|
30 |
+
#: includes/class-yit-assets.php:152 yit-functions.php:2024
|
31 |
#: yit-functions.php:2152
|
32 |
msgid "Confirm delete"
|
33 |
msgstr "Conferma eliminazione"
|
34 |
|
35 |
+
#: includes/class-yit-assets.php:153
|
36 |
msgid "Are you sure you want to delete the selected items?"
|
37 |
msgstr "Se sicuro di voler eliminare gli elementi selezionati?"
|
38 |
|
39 |
+
#: includes/class-yit-assets.php:153 yit-functions.php:1940
|
40 |
#: yit-functions.php:2100
|
41 |
msgid ""
|
42 |
"This action cannot be undone and you will not be able to recover this data."
|
44 |
"Quest'azione non può essere annullata e non sarà possibile recuperare questi "
|
45 |
"dati."
|
46 |
|
47 |
+
#: includes/class-yit-assets.php:174
|
48 |
msgid "Clear"
|
49 |
msgstr "Rimuovi"
|
50 |
|
51 |
+
#: includes/class-yit-assets.php:175
|
52 |
msgid "Clear color"
|
53 |
msgstr "Rimuovi colore"
|
54 |
|
55 |
+
#: includes/class-yit-assets.php:176
|
56 |
msgid "Default"
|
57 |
msgstr "Predefinito"
|
58 |
|
59 |
+
#: includes/class-yit-assets.php:177
|
60 |
msgid "Select default color"
|
61 |
msgstr "Seleziona il colore predefinito"
|
62 |
|
63 |
+
#: includes/class-yit-assets.php:178
|
64 |
msgid "Select Color"
|
65 |
msgstr "Seleziona il colore"
|
66 |
|
67 |
+
#: includes/class-yit-assets.php:179
|
68 |
msgid "Color value"
|
69 |
msgstr "Valore del colore"
|
70 |
|
72 |
msgid "There was an error with your request; please try again later."
|
73 |
msgstr "Si è verificato un errore con la tua richiesta. Riprova più tardi."
|
74 |
|
75 |
+
#: includes/class-yit-plugin-panel-woocommerce.php:437
|
76 |
msgid "The changes you have made will be lost if you leave this page."
|
77 |
msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
|
78 |
|
84 |
msgid "Settings"
|
85 |
msgstr "Impostazioni"
|
86 |
|
87 |
+
#: includes/class-yit-plugin-panel.php:456
|
88 |
+
#: includes/class-yit-plugin-panel.php:459
|
89 |
msgid "How to install premium version"
|
90 |
msgstr "Come installare la versione premium"
|
91 |
|
92 |
+
#: includes/class-yit-plugin-panel.php:656
|
93 |
#: includes/class-yit-plugin-subpanel.php:133
|
94 |
msgid "Save Changes"
|
95 |
msgstr "Salva modifiche"
|
96 |
|
97 |
+
#: includes/class-yit-plugin-panel.php:664
|
98 |
#: includes/class-yit-plugin-subpanel.php:140
|
99 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
100 |
msgid ""
|
103 |
"Se prosegui con questa azione, tutte le opzioni di questa pagina saranno "
|
104 |
"reimpostate."
|
105 |
|
106 |
+
#: includes/class-yit-plugin-panel.php:664
|
107 |
#: includes/class-yit-plugin-subpanel.php:140
|
108 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
109 |
msgid "Are you sure?"
|
110 |
msgstr "Sei sicuro?"
|
111 |
|
112 |
+
#: includes/class-yit-plugin-panel.php:668
|
113 |
#: includes/class-yit-plugin-subpanel.php:143
|
114 |
msgid "Reset to default"
|
115 |
msgstr "Ripristina configurazione predefinita"
|
116 |
|
117 |
+
#: includes/class-yit-plugin-panel.php:1039
|
118 |
+
msgid "Read the <mark>plugin documentation</mark>"
|
119 |
+
msgstr "Consulta la <mark>documentazione del plugin</mark>"
|
120 |
+
|
121 |
+
#: includes/class-yit-plugin-panel.php:1040
|
122 |
+
msgid "Learn what you can really do with this powerful tool"
|
123 |
+
msgstr "Scopri cosa puoi fare con questo potente strumento"
|
124 |
+
|
125 |
+
#: includes/class-yit-plugin-panel.php:1050
|
126 |
+
msgid "Watch our <mark>\"First Steps\" video</mark>"
|
127 |
+
msgstr "Guarda il nostro <mark>video \"Primi Step\" video</mark>"
|
128 |
+
|
129 |
+
#: includes/class-yit-plugin-panel.php:1051
|
130 |
+
msgid "See how it works before you start using it"
|
131 |
+
msgstr "Guarda come funziona prima di iniziare ad usarlo"
|
132 |
+
|
133 |
+
#: includes/class-yit-plugin-panel.php:1307
|
134 |
msgid ""
|
135 |
"The element you have entered already exists. Please, enter another name."
|
136 |
msgstr "L'elemento inserito esiste già. Per favore, inserisci un altro nome."
|
137 |
|
138 |
+
#: includes/class-yit-plugin-panel.php:1308
|
139 |
msgid "Settings saved"
|
140 |
msgstr "Impostazioni salvate"
|
141 |
|
142 |
+
#: includes/class-yit-plugin-panel.php:1309
|
143 |
msgid "Settings reset"
|
144 |
msgstr "Impostazioni azzerate"
|
145 |
|
146 |
+
#: includes/class-yit-plugin-panel.php:1310
|
147 |
msgid "Element deleted correctly."
|
148 |
msgstr "Elemento rimosso correttamente."
|
149 |
|
150 |
+
#: includes/class-yit-plugin-panel.php:1311
|
151 |
+
#: includes/class-yit-plugin-panel.php:1312
|
152 |
msgid "Element updated correctly."
|
153 |
msgstr "Elemento aggiornato correttamente."
|
154 |
|
155 |
+
#: includes/class-yit-plugin-panel.php:1313
|
156 |
msgid "Database imported correctly."
|
157 |
msgstr "Database importato correttamente."
|
158 |
|
159 |
+
#: includes/class-yit-plugin-panel.php:1314
|
160 |
msgid "An error has occurred during import. Please try again."
|
161 |
msgstr "Si è verificato un errore durante l'importazione. Prova di nuovo."
|
162 |
|
163 |
+
#: includes/class-yit-plugin-panel.php:1315
|
164 |
msgid "The added file is not valid."
|
165 |
msgstr "Il file aggiunto non è valido."
|
166 |
|
167 |
+
#: includes/class-yit-plugin-panel.php:1316
|
168 |
msgid "Sorry, import is disabled."
|
169 |
msgstr "Ci dispiace, l'importazione è disabilitata."
|
170 |
|
171 |
+
#: includes/class-yit-plugin-panel.php:1317
|
172 |
msgid "Sorting successful."
|
173 |
msgstr "Ordinamento effettuato con successo."
|
174 |
|
175 |
+
#: includes/class-yit-plugin-panel.php:1806
|
176 |
msgid "We need your support"
|
177 |
msgstr "Abbiamo bisogno del tuo sostegno"
|
178 |
|
179 |
+
#: includes/class-yit-plugin-panel.php:1807
|
180 |
msgid "to keep updating and improving the plugin. Please,"
|
181 |
msgstr "per poter continuare ad aggiornare e migliorare il plugin."
|
182 |
|
183 |
+
#: includes/class-yit-plugin-panel.php:1809
|
184 |
msgid "help us by leaving a good review"
|
185 |
msgstr "Puoi darci una mano lasciando una recensione positiva"
|
186 |
|
187 |
+
#: includes/class-yit-plugin-panel.php:1810
|
188 |
msgid ":) Thanks!"
|
189 |
msgstr ":) Grazie!"
|
190 |
|
226 |
|
227 |
#: includes/class-yith-bh-onboarding.php:85
|
228 |
msgid "It is not possible save the options"
|
229 |
+
msgstr "Non è possibile salvare le opzioni"
|
230 |
|
231 |
#: includes/class-yith-dashboard.php:35
|
232 |
msgid "YITH Latest Updates"
|
430 |
|
431 |
#: templates/bh-onboarding/onboarding-tabs.php:63
|
432 |
msgid "Save"
|
433 |
+
msgstr "Salva"
|
434 |
|
435 |
#: templates/fields/ajax-customers.php:41
|
436 |
msgid "Search for a customer..."
|
559 |
msgid "Reset"
|
560 |
msgstr "Ripristina"
|
561 |
|
562 |
+
#. translators: %s is the plugin version.
|
563 |
+
#: templates/panel/welcome-modals/update.php:34
|
564 |
+
msgid "is successfully updated to version %s."
|
565 |
+
msgstr "è stato aggiornato alla versione %s."
|
566 |
+
|
567 |
+
#. translators: %s is the plugin version.
|
568 |
+
#: templates/panel/welcome-modals/update.php:44
|
569 |
+
msgid "What's new in version %s"
|
570 |
+
msgstr "Novità nella versione %s"
|
571 |
+
|
572 |
+
#: templates/panel/welcome-modals/update.php:49
|
573 |
+
msgid "Check the changelog >"
|
574 |
+
msgstr "Vedi tutte le modifiche >"
|
575 |
+
|
576 |
+
#: templates/panel/welcome-modals/update.php:64
|
577 |
+
#: templates/panel/welcome-modals/welcome.php:60
|
578 |
+
msgid "Got it, close this window"
|
579 |
+
msgstr "Ho capito, chiudi questa finestra"
|
580 |
+
|
581 |
+
#: templates/panel/welcome-modals/welcome.php:30
|
582 |
+
msgid "Thank you for using our plugin"
|
583 |
+
msgstr "Grazie per aver scelto di usare il nostro plugin"
|
584 |
+
|
585 |
+
#. translators: %s is the number of steps.
|
586 |
+
#: templates/panel/welcome-modals/welcome.php:45
|
587 |
+
msgid "Start with these %s steps:"
|
588 |
+
msgstr "Inizia da questi %s step:"
|
589 |
+
|
590 |
#: templates/panel/woocommerce/woocommerce-form.php:29
|
591 |
#: templates/panel/woocommerce/woocommerce-form.php:33
|
592 |
msgid "Save Options"
|
772 |
msgid "YITH"
|
773 |
msgstr "YITH"
|
774 |
|
775 |
+
#: includes/class-yit-assets.php:136
|
776 |
msgctxt "Button text"
|
777 |
msgid "Confirm"
|
778 |
msgstr "Conferma"
|
779 |
|
780 |
+
#: includes/class-yit-assets.php:137
|
781 |
msgctxt "Button text"
|
782 |
msgid "Cancel"
|
783 |
msgstr "Annulla"
|
784 |
|
785 |
+
#: includes/class-yit-assets.php:150 yit-functions.php:2009
|
786 |
msgctxt "Trash confirmation action"
|
787 |
msgid "Yes, move to trash"
|
788 |
msgstr "Sì, sposta nel cestino"
|
789 |
|
790 |
+
#: includes/class-yit-assets.php:154 yit-functions.php:2027
|
791 |
#: yit-functions.php:2154
|
792 |
msgctxt "Delete confirmation action"
|
793 |
msgid "Yes, delete"
|
794 |
msgstr "Sì, elimina"
|
795 |
|
796 |
#. translators: 1. Plugin name.
|
797 |
+
#: includes/class-yit-plugin-panel.php:804
|
798 |
msgctxt "Help tab default title"
|
799 |
msgid "Thank you for purchasing %s!"
|
800 |
msgstr "Grazie per aver acquistato %s!"
|
801 |
|
802 |
+
#: includes/class-yit-plugin-panel.php:804
|
|
|
803 |
msgctxt "Help tab default title"
|
804 |
msgid "Thank you for using %s!"
|
805 |
+
msgstr "Grazie per aver scelto %s!"
|
806 |
|
807 |
+
#: includes/class-yit-plugin-panel.php:812
|
808 |
msgctxt "Help tab default description"
|
809 |
msgid ""
|
810 |
"We want to help you enjoy a wonderful experience with all of our products."
|
812 |
"Vogliamo aiutarti ad avere un'esperienza fantastica con tutti i nostri "
|
813 |
"prodotti."
|
814 |
|
815 |
+
#: includes/class-yit-plugin-panel.php:863
|
816 |
msgctxt "Premium tab name"
|
817 |
msgid "Get premium"
|
818 |
msgstr "Diventa premium"
|
819 |
|
820 |
+
#: includes/class-yit-plugin-panel.php:875
|
821 |
msgctxt "Help tab name"
|
822 |
msgid "Help"
|
823 |
msgstr "Help"
|
1013 |
|
1014 |
#: templates/panel/help-tab.php:216 templates/panel/help-tab.php:218
|
1015 |
#: templates/panel/help-tab.php:223
|
|
|
1016 |
msgctxt "Help tab documentation"
|
1017 |
msgid "Read the plugin documentation"
|
1018 |
+
msgstr "Leggi la documentazione del plugin"
|
1019 |
|
1020 |
#: templates/panel/help-tab.php:220
|
|
|
1021 |
msgctxt "Help tab documentation"
|
1022 |
msgid "to learn how it works from the basics."
|
1023 |
+
msgstr "per vedere come funziona nel dettaglio."
|
1024 |
|
1025 |
#: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
|
|
|
1026 |
msgctxt "Help tab support"
|
1027 |
msgid "Need some help?"
|
1028 |
msgstr "Ti serve aiuto?"
|
1030 |
#: templates/panel/help-tab.php:235
|
1031 |
msgctxt "Help tab support"
|
1032 |
msgid "From DIY to full-service help"
|
1033 |
+
msgstr "Dal fai-da-te a un servizio completo"
|
1034 |
|
1035 |
#: templates/panel/help-tab.php:238
|
1036 |
msgctxt "Help tab support"
|
1038 |
"Call or chat 24/7 with our support agents, or let our experts build your "
|
1039 |
"site."
|
1040 |
msgstr ""
|
1041 |
+
"Chiamaci o avvia una chat con i nostri agenti disponibili 24/7 oppure "
|
1042 |
+
"lasciati aiutare dai nostri esperti a configurare il tuo sito."
|
1043 |
|
1044 |
#: templates/panel/help-tab.php:241
|
|
|
1045 |
msgctxt "Help tab support"
|
1046 |
msgid "Yes, I need help"
|
1047 |
+
msgstr "Sì, mi serve aiuto"
|
1048 |
|
1049 |
#: templates/panel/premium-tab.php:30
|
1050 |
msgctxt "Premium Tab"
|
1068 |
msgstr "E molto altro!"
|
1069 |
|
1070 |
#: templates/panel/premium-tab.php:53
|
|
|
1071 |
msgctxt "Premium Tab"
|
1072 |
msgid "Check the premium features >"
|
1073 |
+
msgstr "Scopri le funzionalità premium >"
|
1074 |
|
1075 |
#: templates/panel/premium-tab.php:60
|
1076 |
msgctxt "Premium Tab"
|
plugin-fw/languages/yith-plugin-fw-nl_NL.mo
CHANGED
Binary file
|
plugin-fw/languages/yith-plugin-fw-nl_NL.po
CHANGED
@@ -4,7 +4,7 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
-
"POT-Creation-Date: 2022-08-
|
8 |
"PO-Revision-Date: 2021-12-13 12:45:02+0000\n"
|
9 |
"Language: nl\n"
|
10 |
"MIME-Version: 1.0\n"
|
@@ -13,32 +13,32 @@ msgstr ""
|
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
-
#: includes/class-yit-assets.php:
|
17 |
msgid "Confirm trash"
|
18 |
msgstr "Verplaatsen naar prullenbak bevestigen"
|
19 |
|
20 |
-
#: includes/class-yit-assets.php:
|
21 |
msgid "Are you sure you want to trash the selected items?"
|
22 |
msgstr ""
|
23 |
"Weet je zeker dat je het geselecteerde item naar de prullenbak wilt "
|
24 |
"verplaatsen?"
|
25 |
|
26 |
-
#: includes/class-yit-assets.php:
|
27 |
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
|
28 |
#: yit-functions.php:2008 yit-functions.php:2026
|
29 |
msgid "No"
|
30 |
msgstr "Nee"
|
31 |
|
32 |
-
#: includes/class-yit-assets.php:
|
33 |
#: yit-functions.php:2152
|
34 |
msgid "Confirm delete"
|
35 |
msgstr "Verwijderen bevestigen"
|
36 |
|
37 |
-
#: includes/class-yit-assets.php:
|
38 |
msgid "Are you sure you want to delete the selected items?"
|
39 |
msgstr "Weet je zeker dat je de geselecteerde items wilt verwijderen?"
|
40 |
|
41 |
-
#: includes/class-yit-assets.php:
|
42 |
#: yit-functions.php:2100
|
43 |
msgid ""
|
44 |
"This action cannot be undone and you will not be able to recover this data."
|
@@ -46,27 +46,27 @@ msgstr ""
|
|
46 |
"Deze actie kan niet ongedaan gemaakt worden en je zult deze gegevens niet "
|
47 |
"kunnen herstellen."
|
48 |
|
49 |
-
#: includes/class-yit-assets.php:
|
50 |
msgid "Clear"
|
51 |
msgstr "Wissen"
|
52 |
|
53 |
-
#: includes/class-yit-assets.php:
|
54 |
msgid "Clear color"
|
55 |
msgstr "Kleur wissen"
|
56 |
|
57 |
-
#: includes/class-yit-assets.php:
|
58 |
msgid "Default"
|
59 |
msgstr "Standaard"
|
60 |
|
61 |
-
#: includes/class-yit-assets.php:
|
62 |
msgid "Select default color"
|
63 |
msgstr "Standaardkleur selecteren"
|
64 |
|
65 |
-
#: includes/class-yit-assets.php:
|
66 |
msgid "Select Color"
|
67 |
msgstr "Kleur selecteren"
|
68 |
|
69 |
-
#: includes/class-yit-assets.php:
|
70 |
msgid "Color value"
|
71 |
msgstr "Kleurwaarde"
|
72 |
|
@@ -75,7 +75,7 @@ msgid "There was an error with your request; please try again later."
|
|
75 |
msgstr ""
|
76 |
"Er is een fout opgetreden met je verzoek, probeer het later opnieuw a.u.b."
|
77 |
|
78 |
-
#: includes/class-yit-plugin-panel-woocommerce.php:
|
79 |
msgid "The changes you have made will be lost if you leave this page."
|
80 |
msgstr "Als je deze pagina verlaat zullen alle wijzigingen verloren gaan."
|
81 |
|
@@ -87,17 +87,17 @@ msgstr "Plugin instellingen"
|
|
87 |
msgid "Settings"
|
88 |
msgstr "Instellingen"
|
89 |
|
90 |
-
#: includes/class-yit-plugin-panel.php:
|
91 |
-
#: includes/class-yit-plugin-panel.php:
|
92 |
msgid "How to install premium version"
|
93 |
msgstr "Hoe installeer ik de premium versie"
|
94 |
|
95 |
-
#: includes/class-yit-plugin-panel.php:
|
96 |
#: includes/class-yit-plugin-subpanel.php:133
|
97 |
msgid "Save Changes"
|
98 |
msgstr "Wijzigingen opslaan"
|
99 |
|
100 |
-
#: includes/class-yit-plugin-panel.php:
|
101 |
#: includes/class-yit-plugin-subpanel.php:140
|
102 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
103 |
msgid ""
|
@@ -105,72 +105,88 @@ msgid ""
|
|
105 |
msgstr ""
|
106 |
"Als je doorgaat met deze actie, zal je alle opties op deze pagina resetten."
|
107 |
|
108 |
-
#: includes/class-yit-plugin-panel.php:
|
109 |
#: includes/class-yit-plugin-subpanel.php:140
|
110 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
111 |
msgid "Are you sure?"
|
112 |
msgstr "Weet je het zeker?"
|
113 |
|
114 |
-
#: includes/class-yit-plugin-panel.php:
|
115 |
#: includes/class-yit-plugin-subpanel.php:143
|
116 |
msgid "Reset to default"
|
117 |
msgstr "Resetten naar standaard"
|
118 |
|
119 |
-
#: includes/class-yit-plugin-panel.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
msgid ""
|
121 |
"The element you have entered already exists. Please, enter another name."
|
122 |
msgstr "Het element dat je hebt ingevoerd bestaat al. Voer een andere naam in."
|
123 |
|
124 |
-
#: includes/class-yit-plugin-panel.php:
|
125 |
msgid "Settings saved"
|
126 |
msgstr "Instellingen opgeslagen"
|
127 |
|
128 |
-
#: includes/class-yit-plugin-panel.php:
|
129 |
msgid "Settings reset"
|
130 |
msgstr "Instellingen resetten"
|
131 |
|
132 |
-
#: includes/class-yit-plugin-panel.php:
|
133 |
msgid "Element deleted correctly."
|
134 |
msgstr "Element juist verwijderd."
|
135 |
|
136 |
-
#: includes/class-yit-plugin-panel.php:
|
137 |
-
#: includes/class-yit-plugin-panel.php:
|
138 |
msgid "Element updated correctly."
|
139 |
msgstr "Element juist geüpdatet."
|
140 |
|
141 |
-
#: includes/class-yit-plugin-panel.php:
|
142 |
msgid "Database imported correctly."
|
143 |
msgstr "Database juist geïmporteerd."
|
144 |
|
145 |
-
#: includes/class-yit-plugin-panel.php:
|
146 |
msgid "An error has occurred during import. Please try again."
|
147 |
msgstr "Er is een fout opgetreden tijdens importeren. Probeer opnieuw."
|
148 |
|
149 |
-
#: includes/class-yit-plugin-panel.php:
|
150 |
msgid "The added file is not valid."
|
151 |
msgstr "Het toegevoegde bestand is niet geldig."
|
152 |
|
153 |
-
#: includes/class-yit-plugin-panel.php:
|
154 |
msgid "Sorry, import is disabled."
|
155 |
msgstr "Sorry, importeren is uitgeschakeld."
|
156 |
|
157 |
-
#: includes/class-yit-plugin-panel.php:
|
158 |
msgid "Sorting successful."
|
159 |
msgstr "Succesvol gesorteerd."
|
160 |
|
161 |
-
#: includes/class-yit-plugin-panel.php:
|
162 |
msgid "We need your support"
|
163 |
msgstr "We hebben je hulp nodig"
|
164 |
|
165 |
-
#: includes/class-yit-plugin-panel.php:
|
166 |
msgid "to keep updating and improving the plugin. Please,"
|
167 |
msgstr "om de plugin te blijven bijwerken en verbeteren. A.u.b.,"
|
168 |
|
169 |
-
#: includes/class-yit-plugin-panel.php:
|
170 |
msgid "help us by leaving a good review"
|
171 |
msgstr "help ons door een goede beoordeling achter te laten"
|
172 |
|
173 |
-
#: includes/class-yit-plugin-panel.php:
|
174 |
msgid ":) Thanks!"
|
175 |
msgstr ":) Bedankt!"
|
176 |
|
@@ -544,6 +560,34 @@ msgstr "Upload"
|
|
544 |
msgid "Reset"
|
545 |
msgstr "Resetten"
|
546 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
547 |
#: templates/panel/woocommerce/woocommerce-form.php:29
|
548 |
#: templates/panel/woocommerce/woocommerce-form.php:33
|
549 |
msgid "Save Options"
|
@@ -724,51 +768,50 @@ msgctxt "[gutenberg]: Category Name"
|
|
724 |
msgid "YITH"
|
725 |
msgstr "YITH"
|
726 |
|
727 |
-
#: includes/class-yit-assets.php:
|
728 |
msgctxt "Button text"
|
729 |
msgid "Confirm"
|
730 |
msgstr "Bevestigen"
|
731 |
|
732 |
-
#: includes/class-yit-assets.php:
|
733 |
msgctxt "Button text"
|
734 |
msgid "Cancel"
|
735 |
msgstr "Annuleren"
|
736 |
|
737 |
-
#: includes/class-yit-assets.php:
|
738 |
msgctxt "Trash confirmation action"
|
739 |
msgid "Yes, move to trash"
|
740 |
msgstr "Ja, verplaatsen naar prullenbak"
|
741 |
|
742 |
-
#: includes/class-yit-assets.php:
|
743 |
#: yit-functions.php:2154
|
744 |
msgctxt "Delete confirmation action"
|
745 |
msgid "Yes, delete"
|
746 |
msgstr "Ja, verwijderen"
|
747 |
|
748 |
#. translators: 1. Plugin name.
|
749 |
-
#: includes/class-yit-plugin-panel.php:
|
750 |
msgctxt "Help tab default title"
|
751 |
msgid "Thank you for purchasing %s!"
|
752 |
msgstr "Bedankt voor het kopen van %s!"
|
753 |
|
754 |
-
#: includes/class-yit-plugin-panel.php:
|
755 |
-
#, fuzzy
|
756 |
msgctxt "Help tab default title"
|
757 |
msgid "Thank you for using %s!"
|
758 |
-
msgstr "
|
759 |
|
760 |
-
#: includes/class-yit-plugin-panel.php:
|
761 |
msgctxt "Help tab default description"
|
762 |
msgid ""
|
763 |
"We want to help you enjoy a wonderful experience with all of our products."
|
764 |
msgstr ""
|
765 |
|
766 |
-
#: includes/class-yit-plugin-panel.php:
|
767 |
msgctxt "Premium tab name"
|
768 |
msgid "Get premium"
|
769 |
msgstr "Neem premium"
|
770 |
|
771 |
-
#: includes/class-yit-plugin-panel.php:
|
772 |
msgctxt "Help tab name"
|
773 |
msgid "Help"
|
774 |
msgstr "Help"
|
@@ -960,10 +1003,9 @@ msgstr "Verstuur een ticket"
|
|
960 |
|
961 |
#: templates/panel/help-tab.php:216 templates/panel/help-tab.php:218
|
962 |
#: templates/panel/help-tab.php:223
|
963 |
-
#, fuzzy
|
964 |
msgctxt "Help tab documentation"
|
965 |
msgid "Read the plugin documentation"
|
966 |
-
msgstr "
|
967 |
|
968 |
#: templates/panel/help-tab.php:220
|
969 |
msgctxt "Help tab documentation"
|
@@ -971,10 +1013,9 @@ msgid "to learn how it works from the basics."
|
|
971 |
msgstr ""
|
972 |
|
973 |
#: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
|
974 |
-
#, fuzzy
|
975 |
msgctxt "Help tab support"
|
976 |
msgid "Need some help?"
|
977 |
-
msgstr "
|
978 |
|
979 |
#: templates/panel/help-tab.php:235
|
980 |
msgctxt "Help tab support"
|
@@ -989,10 +1030,9 @@ msgid ""
|
|
989 |
msgstr ""
|
990 |
|
991 |
#: templates/panel/help-tab.php:241
|
992 |
-
#, fuzzy
|
993 |
msgctxt "Help tab support"
|
994 |
msgid "Yes, I need help"
|
995 |
-
msgstr "
|
996 |
|
997 |
#: templates/panel/premium-tab.php:30
|
998 |
msgctxt "Premium Tab"
|
@@ -1016,10 +1056,9 @@ msgid "And so much more!"
|
|
1016 |
msgstr "En zo veel meer!"
|
1017 |
|
1018 |
#: templates/panel/premium-tab.php:53
|
1019 |
-
#, fuzzy
|
1020 |
msgctxt "Premium Tab"
|
1021 |
msgid "Check the premium features >"
|
1022 |
-
msgstr "
|
1023 |
|
1024 |
#: templates/panel/premium-tab.php:60
|
1025 |
msgctxt "Premium Tab"
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
+
"POT-Creation-Date: 2022-08-10 12:46:35+00:00\n"
|
8 |
"PO-Revision-Date: 2021-12-13 12:45:02+0000\n"
|
9 |
"Language: nl\n"
|
10 |
"MIME-Version: 1.0\n"
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
+
#: includes/class-yit-assets.php:148 yit-functions.php:2006
|
17 |
msgid "Confirm trash"
|
18 |
msgstr "Verplaatsen naar prullenbak bevestigen"
|
19 |
|
20 |
+
#: includes/class-yit-assets.php:149
|
21 |
msgid "Are you sure you want to trash the selected items?"
|
22 |
msgstr ""
|
23 |
"Weet je zeker dat je het geselecteerde item naar de prullenbak wilt "
|
24 |
"verplaatsen?"
|
25 |
|
26 |
+
#: includes/class-yit-assets.php:151 includes/class-yit-assets.php:155
|
27 |
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
|
28 |
#: yit-functions.php:2008 yit-functions.php:2026
|
29 |
msgid "No"
|
30 |
msgstr "Nee"
|
31 |
|
32 |
+
#: includes/class-yit-assets.php:152 yit-functions.php:2024
|
33 |
#: yit-functions.php:2152
|
34 |
msgid "Confirm delete"
|
35 |
msgstr "Verwijderen bevestigen"
|
36 |
|
37 |
+
#: includes/class-yit-assets.php:153
|
38 |
msgid "Are you sure you want to delete the selected items?"
|
39 |
msgstr "Weet je zeker dat je de geselecteerde items wilt verwijderen?"
|
40 |
|
41 |
+
#: includes/class-yit-assets.php:153 yit-functions.php:1940
|
42 |
#: yit-functions.php:2100
|
43 |
msgid ""
|
44 |
"This action cannot be undone and you will not be able to recover this data."
|
46 |
"Deze actie kan niet ongedaan gemaakt worden en je zult deze gegevens niet "
|
47 |
"kunnen herstellen."
|
48 |
|
49 |
+
#: includes/class-yit-assets.php:174
|
50 |
msgid "Clear"
|
51 |
msgstr "Wissen"
|
52 |
|
53 |
+
#: includes/class-yit-assets.php:175
|
54 |
msgid "Clear color"
|
55 |
msgstr "Kleur wissen"
|
56 |
|
57 |
+
#: includes/class-yit-assets.php:176
|
58 |
msgid "Default"
|
59 |
msgstr "Standaard"
|
60 |
|
61 |
+
#: includes/class-yit-assets.php:177
|
62 |
msgid "Select default color"
|
63 |
msgstr "Standaardkleur selecteren"
|
64 |
|
65 |
+
#: includes/class-yit-assets.php:178
|
66 |
msgid "Select Color"
|
67 |
msgstr "Kleur selecteren"
|
68 |
|
69 |
+
#: includes/class-yit-assets.php:179
|
70 |
msgid "Color value"
|
71 |
msgstr "Kleurwaarde"
|
72 |
|
75 |
msgstr ""
|
76 |
"Er is een fout opgetreden met je verzoek, probeer het later opnieuw a.u.b."
|
77 |
|
78 |
+
#: includes/class-yit-plugin-panel-woocommerce.php:437
|
79 |
msgid "The changes you have made will be lost if you leave this page."
|
80 |
msgstr "Als je deze pagina verlaat zullen alle wijzigingen verloren gaan."
|
81 |
|
87 |
msgid "Settings"
|
88 |
msgstr "Instellingen"
|
89 |
|
90 |
+
#: includes/class-yit-plugin-panel.php:456
|
91 |
+
#: includes/class-yit-plugin-panel.php:459
|
92 |
msgid "How to install premium version"
|
93 |
msgstr "Hoe installeer ik de premium versie"
|
94 |
|
95 |
+
#: includes/class-yit-plugin-panel.php:656
|
96 |
#: includes/class-yit-plugin-subpanel.php:133
|
97 |
msgid "Save Changes"
|
98 |
msgstr "Wijzigingen opslaan"
|
99 |
|
100 |
+
#: includes/class-yit-plugin-panel.php:664
|
101 |
#: includes/class-yit-plugin-subpanel.php:140
|
102 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
103 |
msgid ""
|
105 |
msgstr ""
|
106 |
"Als je doorgaat met deze actie, zal je alle opties op deze pagina resetten."
|
107 |
|
108 |
+
#: includes/class-yit-plugin-panel.php:664
|
109 |
#: includes/class-yit-plugin-subpanel.php:140
|
110 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
111 |
msgid "Are you sure?"
|
112 |
msgstr "Weet je het zeker?"
|
113 |
|
114 |
+
#: includes/class-yit-plugin-panel.php:668
|
115 |
#: includes/class-yit-plugin-subpanel.php:143
|
116 |
msgid "Reset to default"
|
117 |
msgstr "Resetten naar standaard"
|
118 |
|
119 |
+
#: includes/class-yit-plugin-panel.php:1039
|
120 |
+
msgid "Read the <mark>plugin documentation</mark>"
|
121 |
+
msgstr ""
|
122 |
+
|
123 |
+
#: includes/class-yit-plugin-panel.php:1040
|
124 |
+
msgid "Learn what you can really do with this powerful tool"
|
125 |
+
msgstr ""
|
126 |
+
|
127 |
+
#: includes/class-yit-plugin-panel.php:1050
|
128 |
+
msgid "Watch our <mark>\"First Steps\" video</mark>"
|
129 |
+
msgstr ""
|
130 |
+
|
131 |
+
#: includes/class-yit-plugin-panel.php:1051
|
132 |
+
msgid "See how it works before you start using it"
|
133 |
+
msgstr ""
|
134 |
+
|
135 |
+
#: includes/class-yit-plugin-panel.php:1307
|
136 |
msgid ""
|
137 |
"The element you have entered already exists. Please, enter another name."
|
138 |
msgstr "Het element dat je hebt ingevoerd bestaat al. Voer een andere naam in."
|
139 |
|
140 |
+
#: includes/class-yit-plugin-panel.php:1308
|
141 |
msgid "Settings saved"
|
142 |
msgstr "Instellingen opgeslagen"
|
143 |
|
144 |
+
#: includes/class-yit-plugin-panel.php:1309
|
145 |
msgid "Settings reset"
|
146 |
msgstr "Instellingen resetten"
|
147 |
|
148 |
+
#: includes/class-yit-plugin-panel.php:1310
|
149 |
msgid "Element deleted correctly."
|
150 |
msgstr "Element juist verwijderd."
|
151 |
|
152 |
+
#: includes/class-yit-plugin-panel.php:1311
|
153 |
+
#: includes/class-yit-plugin-panel.php:1312
|
154 |
msgid "Element updated correctly."
|
155 |
msgstr "Element juist geüpdatet."
|
156 |
|
157 |
+
#: includes/class-yit-plugin-panel.php:1313
|
158 |
msgid "Database imported correctly."
|
159 |
msgstr "Database juist geïmporteerd."
|
160 |
|
161 |
+
#: includes/class-yit-plugin-panel.php:1314
|
162 |
msgid "An error has occurred during import. Please try again."
|
163 |
msgstr "Er is een fout opgetreden tijdens importeren. Probeer opnieuw."
|
164 |
|
165 |
+
#: includes/class-yit-plugin-panel.php:1315
|
166 |
msgid "The added file is not valid."
|
167 |
msgstr "Het toegevoegde bestand is niet geldig."
|
168 |
|
169 |
+
#: includes/class-yit-plugin-panel.php:1316
|
170 |
msgid "Sorry, import is disabled."
|
171 |
msgstr "Sorry, importeren is uitgeschakeld."
|
172 |
|
173 |
+
#: includes/class-yit-plugin-panel.php:1317
|
174 |
msgid "Sorting successful."
|
175 |
msgstr "Succesvol gesorteerd."
|
176 |
|
177 |
+
#: includes/class-yit-plugin-panel.php:1806
|
178 |
msgid "We need your support"
|
179 |
msgstr "We hebben je hulp nodig"
|
180 |
|
181 |
+
#: includes/class-yit-plugin-panel.php:1807
|
182 |
msgid "to keep updating and improving the plugin. Please,"
|
183 |
msgstr "om de plugin te blijven bijwerken en verbeteren. A.u.b.,"
|
184 |
|
185 |
+
#: includes/class-yit-plugin-panel.php:1809
|
186 |
msgid "help us by leaving a good review"
|
187 |
msgstr "help ons door een goede beoordeling achter te laten"
|
188 |
|
189 |
+
#: includes/class-yit-plugin-panel.php:1810
|
190 |
msgid ":) Thanks!"
|
191 |
msgstr ":) Bedankt!"
|
192 |
|
560 |
msgid "Reset"
|
561 |
msgstr "Resetten"
|
562 |
|
563 |
+
#. translators: %s is the plugin version.
|
564 |
+
#: templates/panel/welcome-modals/update.php:34
|
565 |
+
msgid "is successfully updated to version %s."
|
566 |
+
msgstr ""
|
567 |
+
|
568 |
+
#. translators: %s is the plugin version.
|
569 |
+
#: templates/panel/welcome-modals/update.php:44
|
570 |
+
msgid "What's new in version %s"
|
571 |
+
msgstr ""
|
572 |
+
|
573 |
+
#: templates/panel/welcome-modals/update.php:49
|
574 |
+
msgid "Check the changelog >"
|
575 |
+
msgstr ""
|
576 |
+
|
577 |
+
#: templates/panel/welcome-modals/update.php:64
|
578 |
+
#: templates/panel/welcome-modals/welcome.php:60
|
579 |
+
msgid "Got it, close this window"
|
580 |
+
msgstr ""
|
581 |
+
|
582 |
+
#: templates/panel/welcome-modals/welcome.php:30
|
583 |
+
msgid "Thank you for using our plugin"
|
584 |
+
msgstr ""
|
585 |
+
|
586 |
+
#. translators: %s is the number of steps.
|
587 |
+
#: templates/panel/welcome-modals/welcome.php:45
|
588 |
+
msgid "Start with these %s steps:"
|
589 |
+
msgstr ""
|
590 |
+
|
591 |
#: templates/panel/woocommerce/woocommerce-form.php:29
|
592 |
#: templates/panel/woocommerce/woocommerce-form.php:33
|
593 |
msgid "Save Options"
|
768 |
msgid "YITH"
|
769 |
msgstr "YITH"
|
770 |
|
771 |
+
#: includes/class-yit-assets.php:136
|
772 |
msgctxt "Button text"
|
773 |
msgid "Confirm"
|
774 |
msgstr "Bevestigen"
|
775 |
|
776 |
+
#: includes/class-yit-assets.php:137
|
777 |
msgctxt "Button text"
|
778 |
msgid "Cancel"
|
779 |
msgstr "Annuleren"
|
780 |
|
781 |
+
#: includes/class-yit-assets.php:150 yit-functions.php:2009
|
782 |
msgctxt "Trash confirmation action"
|
783 |
msgid "Yes, move to trash"
|
784 |
msgstr "Ja, verplaatsen naar prullenbak"
|
785 |
|
786 |
+
#: includes/class-yit-assets.php:154 yit-functions.php:2027
|
787 |
#: yit-functions.php:2154
|
788 |
msgctxt "Delete confirmation action"
|
789 |
msgid "Yes, delete"
|
790 |
msgstr "Ja, verwijderen"
|
791 |
|
792 |
#. translators: 1. Plugin name.
|
793 |
+
#: includes/class-yit-plugin-panel.php:804
|
794 |
msgctxt "Help tab default title"
|
795 |
msgid "Thank you for purchasing %s!"
|
796 |
msgstr "Bedankt voor het kopen van %s!"
|
797 |
|
798 |
+
#: includes/class-yit-plugin-panel.php:804
|
|
|
799 |
msgctxt "Help tab default title"
|
800 |
msgid "Thank you for using %s!"
|
801 |
+
msgstr ""
|
802 |
|
803 |
+
#: includes/class-yit-plugin-panel.php:812
|
804 |
msgctxt "Help tab default description"
|
805 |
msgid ""
|
806 |
"We want to help you enjoy a wonderful experience with all of our products."
|
807 |
msgstr ""
|
808 |
|
809 |
+
#: includes/class-yit-plugin-panel.php:863
|
810 |
msgctxt "Premium tab name"
|
811 |
msgid "Get premium"
|
812 |
msgstr "Neem premium"
|
813 |
|
814 |
+
#: includes/class-yit-plugin-panel.php:875
|
815 |
msgctxt "Help tab name"
|
816 |
msgid "Help"
|
817 |
msgstr "Help"
|
1003 |
|
1004 |
#: templates/panel/help-tab.php:216 templates/panel/help-tab.php:218
|
1005 |
#: templates/panel/help-tab.php:223
|
|
|
1006 |
msgctxt "Help tab documentation"
|
1007 |
msgid "Read the plugin documentation"
|
1008 |
+
msgstr ""
|
1009 |
|
1010 |
#: templates/panel/help-tab.php:220
|
1011 |
msgctxt "Help tab documentation"
|
1013 |
msgstr ""
|
1014 |
|
1015 |
#: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
|
|
|
1016 |
msgctxt "Help tab support"
|
1017 |
msgid "Need some help?"
|
1018 |
+
msgstr ""
|
1019 |
|
1020 |
#: templates/panel/help-tab.php:235
|
1021 |
msgctxt "Help tab support"
|
1030 |
msgstr ""
|
1031 |
|
1032 |
#: templates/panel/help-tab.php:241
|
|
|
1033 |
msgctxt "Help tab support"
|
1034 |
msgid "Yes, I need help"
|
1035 |
+
msgstr ""
|
1036 |
|
1037 |
#: templates/panel/premium-tab.php:30
|
1038 |
msgctxt "Premium Tab"
|
1056 |
msgstr "En zo veel meer!"
|
1057 |
|
1058 |
#: templates/panel/premium-tab.php:53
|
|
|
1059 |
msgctxt "Premium Tab"
|
1060 |
msgid "Check the premium features >"
|
1061 |
+
msgstr ""
|
1062 |
|
1063 |
#: templates/panel/premium-tab.php:60
|
1064 |
msgctxt "Premium Tab"
|
plugin-fw/languages/yith-plugin-fw-ru_RU.mo
CHANGED
Binary file
|
plugin-fw/languages/yith-plugin-fw-ru_RU.po
CHANGED
@@ -4,7 +4,7 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
-
"POT-Creation-Date: 2022-08-
|
8 |
"PO-Revision-Date: 2022-04-05 17:22:32+0000\n"
|
9 |
"Language: ru\n"
|
10 |
"MIME-Version: 1.0\n"
|
@@ -14,56 +14,56 @@ msgstr ""
|
|
14 |
"10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n"
|
15 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
16 |
|
17 |
-
#: includes/class-yit-assets.php:
|
18 |
msgid "Confirm trash"
|
19 |
msgstr "Подтвердить корзину"
|
20 |
|
21 |
-
#: includes/class-yit-assets.php:
|
22 |
msgid "Are you sure you want to trash the selected items?"
|
23 |
msgstr "Вы уверены, что хотите переместить в корзину выбранные элементы?"
|
24 |
|
25 |
-
#: includes/class-yit-assets.php:
|
26 |
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
|
27 |
#: yit-functions.php:2008 yit-functions.php:2026
|
28 |
msgid "No"
|
29 |
msgstr "Нет"
|
30 |
|
31 |
-
#: includes/class-yit-assets.php:
|
32 |
#: yit-functions.php:2152
|
33 |
msgid "Confirm delete"
|
34 |
msgstr "Подтвердите удаление"
|
35 |
|
36 |
-
#: includes/class-yit-assets.php:
|
37 |
msgid "Are you sure you want to delete the selected items?"
|
38 |
msgstr "Вы уверены, что хотите удалить выбранные элементы?"
|
39 |
|
40 |
-
#: includes/class-yit-assets.php:
|
41 |
#: yit-functions.php:2100
|
42 |
msgid ""
|
43 |
"This action cannot be undone and you will not be able to recover this data."
|
44 |
msgstr "Это действие нельзя отменить, и вы не сможете восстановить эти данные."
|
45 |
|
46 |
-
#: includes/class-yit-assets.php:
|
47 |
msgid "Clear"
|
48 |
msgstr "Очистить"
|
49 |
|
50 |
-
#: includes/class-yit-assets.php:
|
51 |
msgid "Clear color"
|
52 |
msgstr "Очистить цвет"
|
53 |
|
54 |
-
#: includes/class-yit-assets.php:
|
55 |
msgid "Default"
|
56 |
msgstr "По умолчанию"
|
57 |
|
58 |
-
#: includes/class-yit-assets.php:
|
59 |
msgid "Select default color"
|
60 |
msgstr "Выберите цвет по умолчанию"
|
61 |
|
62 |
-
#: includes/class-yit-assets.php:
|
63 |
msgid "Select Color"
|
64 |
msgstr "Выберите цвет"
|
65 |
|
66 |
-
#: includes/class-yit-assets.php:
|
67 |
msgid "Color value"
|
68 |
msgstr "Цвет значения"
|
69 |
|
@@ -73,7 +73,7 @@ msgstr ""
|
|
73 |
"При выполнении вашего запроса произошла ошибка; пожалуйста, повторите "
|
74 |
"попытку позже."
|
75 |
|
76 |
-
#: includes/class-yit-plugin-panel-woocommerce.php:
|
77 |
msgid "The changes you have made will be lost if you leave this page."
|
78 |
msgstr ""
|
79 |
"Внесенные вами изменения будут потеряны, если вы покинете эту страницу."
|
@@ -86,17 +86,17 @@ msgstr "Настройки Плагина"
|
|
86 |
msgid "Settings"
|
87 |
msgstr "Настройки"
|
88 |
|
89 |
-
#: includes/class-yit-plugin-panel.php:
|
90 |
-
#: includes/class-yit-plugin-panel.php:
|
91 |
msgid "How to install premium version"
|
92 |
msgstr "Как установить премиум версию"
|
93 |
|
94 |
-
#: includes/class-yit-plugin-panel.php:
|
95 |
#: includes/class-yit-plugin-subpanel.php:133
|
96 |
msgid "Save Changes"
|
97 |
msgstr "Сохранить Изменения"
|
98 |
|
99 |
-
#: includes/class-yit-plugin-panel.php:
|
100 |
#: includes/class-yit-plugin-subpanel.php:140
|
101 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
102 |
msgid ""
|
@@ -104,72 +104,88 @@ msgid ""
|
|
104 |
msgstr ""
|
105 |
"Если вы продолжите это действие, вы сбросите все параметры на этой странице."
|
106 |
|
107 |
-
#: includes/class-yit-plugin-panel.php:
|
108 |
#: includes/class-yit-plugin-subpanel.php:140
|
109 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
110 |
msgid "Are you sure?"
|
111 |
msgstr "Вы уверены?"
|
112 |
|
113 |
-
#: includes/class-yit-plugin-panel.php:
|
114 |
#: includes/class-yit-plugin-subpanel.php:143
|
115 |
msgid "Reset to default"
|
116 |
msgstr "Сброс до заводских настроек"
|
117 |
|
118 |
-
#: includes/class-yit-plugin-panel.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
msgid ""
|
120 |
"The element you have entered already exists. Please, enter another name."
|
121 |
msgstr "Введенный вами элемент уже существует. Пожалуйста, введите другое имя."
|
122 |
|
123 |
-
#: includes/class-yit-plugin-panel.php:
|
124 |
msgid "Settings saved"
|
125 |
msgstr "Настройки сохранены"
|
126 |
|
127 |
-
#: includes/class-yit-plugin-panel.php:
|
128 |
msgid "Settings reset"
|
129 |
msgstr "Сбросить настройки"
|
130 |
|
131 |
-
#: includes/class-yit-plugin-panel.php:
|
132 |
msgid "Element deleted correctly."
|
133 |
msgstr "Элемент удален правильно."
|
134 |
|
135 |
-
#: includes/class-yit-plugin-panel.php:
|
136 |
-
#: includes/class-yit-plugin-panel.php:
|
137 |
msgid "Element updated correctly."
|
138 |
msgstr "Элемент обновлен правильно."
|
139 |
|
140 |
-
#: includes/class-yit-plugin-panel.php:
|
141 |
msgid "Database imported correctly."
|
142 |
msgstr "База данных импортирована правильно."
|
143 |
|
144 |
-
#: includes/class-yit-plugin-panel.php:
|
145 |
msgid "An error has occurred during import. Please try again."
|
146 |
msgstr "Во время импорта произошла ошибка. Пожалуйста, попробуйте еще раз."
|
147 |
|
148 |
-
#: includes/class-yit-plugin-panel.php:
|
149 |
msgid "The added file is not valid."
|
150 |
msgstr "Добавленный файл недействителен."
|
151 |
|
152 |
-
#: includes/class-yit-plugin-panel.php:
|
153 |
msgid "Sorry, import is disabled."
|
154 |
msgstr "Извините, импорт отключен."
|
155 |
|
156 |
-
#: includes/class-yit-plugin-panel.php:
|
157 |
msgid "Sorting successful."
|
158 |
msgstr "Сортировка выполнена успешно."
|
159 |
|
160 |
-
#: includes/class-yit-plugin-panel.php:
|
161 |
msgid "We need your support"
|
162 |
msgstr "Нам нужна ваша поддержка"
|
163 |
|
164 |
-
#: includes/class-yit-plugin-panel.php:
|
165 |
msgid "to keep updating and improving the plugin. Please,"
|
166 |
msgstr "чтобы продолжать обновлять и улучшать плагин. Пожалуйста,"
|
167 |
|
168 |
-
#: includes/class-yit-plugin-panel.php:
|
169 |
msgid "help us by leaving a good review"
|
170 |
msgstr "помогите нам, оставив хороший отзыв"
|
171 |
|
172 |
-
#: includes/class-yit-plugin-panel.php:
|
173 |
msgid ":) Thanks!"
|
174 |
msgstr ":) Благодарим!"
|
175 |
|
@@ -543,6 +559,34 @@ msgstr "Загрузить"
|
|
543 |
msgid "Reset"
|
544 |
msgstr "Сброс"
|
545 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
546 |
#: templates/panel/woocommerce/woocommerce-form.php:29
|
547 |
#: templates/panel/woocommerce/woocommerce-form.php:33
|
548 |
msgid "Save Options"
|
@@ -724,40 +768,39 @@ msgctxt "[gutenberg]: Category Name"
|
|
724 |
msgid "YITH"
|
725 |
msgstr "YITH"
|
726 |
|
727 |
-
#: includes/class-yit-assets.php:
|
728 |
msgctxt "Button text"
|
729 |
msgid "Confirm"
|
730 |
msgstr "Подтвердить"
|
731 |
|
732 |
-
#: includes/class-yit-assets.php:
|
733 |
msgctxt "Button text"
|
734 |
msgid "Cancel"
|
735 |
msgstr "Отмена"
|
736 |
|
737 |
-
#: includes/class-yit-assets.php:
|
738 |
msgctxt "Trash confirmation action"
|
739 |
msgid "Yes, move to trash"
|
740 |
msgstr "Да, удалить в корзину"
|
741 |
|
742 |
-
#: includes/class-yit-assets.php:
|
743 |
#: yit-functions.php:2154
|
744 |
msgctxt "Delete confirmation action"
|
745 |
msgid "Yes, delete"
|
746 |
msgstr "Да, удалить"
|
747 |
|
748 |
#. translators: 1. Plugin name.
|
749 |
-
#: includes/class-yit-plugin-panel.php:
|
750 |
msgctxt "Help tab default title"
|
751 |
msgid "Thank you for purchasing %s!"
|
752 |
msgstr "Благодарим вас за покупку %s!"
|
753 |
|
754 |
-
#: includes/class-yit-plugin-panel.php:
|
755 |
-
#, fuzzy
|
756 |
msgctxt "Help tab default title"
|
757 |
msgid "Thank you for using %s!"
|
758 |
-
msgstr "
|
759 |
|
760 |
-
#: includes/class-yit-plugin-panel.php:
|
761 |
msgctxt "Help tab default description"
|
762 |
msgid ""
|
763 |
"We want to help you enjoy a wonderful experience with all of our products."
|
@@ -765,12 +808,12 @@ msgstr ""
|
|
765 |
"Мы хотим помочь вам получить удовольствие от использования всех наших "
|
766 |
"продуктов."
|
767 |
|
768 |
-
#: includes/class-yit-plugin-panel.php:
|
769 |
msgctxt "Premium tab name"
|
770 |
msgid "Get premium"
|
771 |
msgstr "Получите премиум"
|
772 |
|
773 |
-
#: includes/class-yit-plugin-panel.php:
|
774 |
msgctxt "Help tab name"
|
775 |
msgid "Help"
|
776 |
msgstr "Помощь"
|
@@ -966,10 +1009,9 @@ msgstr "Отправить обращение"
|
|
966 |
|
967 |
#: templates/panel/help-tab.php:216 templates/panel/help-tab.php:218
|
968 |
#: templates/panel/help-tab.php:223
|
969 |
-
#, fuzzy
|
970 |
msgctxt "Help tab documentation"
|
971 |
msgid "Read the plugin documentation"
|
972 |
-
msgstr "
|
973 |
|
974 |
#: templates/panel/help-tab.php:220
|
975 |
msgctxt "Help tab documentation"
|
@@ -977,10 +1019,9 @@ msgid "to learn how it works from the basics."
|
|
977 |
msgstr ""
|
978 |
|
979 |
#: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
|
980 |
-
#, fuzzy
|
981 |
msgctxt "Help tab support"
|
982 |
msgid "Need some help?"
|
983 |
-
msgstr "
|
984 |
|
985 |
#: templates/panel/help-tab.php:235
|
986 |
msgctxt "Help tab support"
|
@@ -995,10 +1036,9 @@ msgid ""
|
|
995 |
msgstr ""
|
996 |
|
997 |
#: templates/panel/help-tab.php:241
|
998 |
-
#, fuzzy
|
999 |
msgctxt "Help tab support"
|
1000 |
msgid "Yes, I need help"
|
1001 |
-
msgstr "
|
1002 |
|
1003 |
#: templates/panel/premium-tab.php:30
|
1004 |
msgctxt "Premium Tab"
|
@@ -1022,10 +1062,9 @@ msgid "And so much more!"
|
|
1022 |
msgstr "И многое другое!"
|
1023 |
|
1024 |
#: templates/panel/premium-tab.php:53
|
1025 |
-
#, fuzzy
|
1026 |
msgctxt "Premium Tab"
|
1027 |
msgid "Check the premium features >"
|
1028 |
-
msgstr "
|
1029 |
|
1030 |
#: templates/panel/premium-tab.php:60
|
1031 |
msgctxt "Premium Tab"
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
+
"POT-Creation-Date: 2022-08-10 12:46:35+00:00\n"
|
8 |
"PO-Revision-Date: 2022-04-05 17:22:32+0000\n"
|
9 |
"Language: ru\n"
|
10 |
"MIME-Version: 1.0\n"
|
14 |
"10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n"
|
15 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
16 |
|
17 |
+
#: includes/class-yit-assets.php:148 yit-functions.php:2006
|
18 |
msgid "Confirm trash"
|
19 |
msgstr "Подтвердить корзину"
|
20 |
|
21 |
+
#: includes/class-yit-assets.php:149
|
22 |
msgid "Are you sure you want to trash the selected items?"
|
23 |
msgstr "Вы уверены, что хотите переместить в корзину выбранные элементы?"
|
24 |
|
25 |
+
#: includes/class-yit-assets.php:151 includes/class-yit-assets.php:155
|
26 |
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
|
27 |
#: yit-functions.php:2008 yit-functions.php:2026
|
28 |
msgid "No"
|
29 |
msgstr "Нет"
|
30 |
|
31 |
+
#: includes/class-yit-assets.php:152 yit-functions.php:2024
|
32 |
#: yit-functions.php:2152
|
33 |
msgid "Confirm delete"
|
34 |
msgstr "Подтвердите удаление"
|
35 |
|
36 |
+
#: includes/class-yit-assets.php:153
|
37 |
msgid "Are you sure you want to delete the selected items?"
|
38 |
msgstr "Вы уверены, что хотите удалить выбранные элементы?"
|
39 |
|
40 |
+
#: includes/class-yit-assets.php:153 yit-functions.php:1940
|
41 |
#: yit-functions.php:2100
|
42 |
msgid ""
|
43 |
"This action cannot be undone and you will not be able to recover this data."
|
44 |
msgstr "Это действие нельзя отменить, и вы не сможете восстановить эти данные."
|
45 |
|
46 |
+
#: includes/class-yit-assets.php:174
|
47 |
msgid "Clear"
|
48 |
msgstr "Очистить"
|
49 |
|
50 |
+
#: includes/class-yit-assets.php:175
|
51 |
msgid "Clear color"
|
52 |
msgstr "Очистить цвет"
|
53 |
|
54 |
+
#: includes/class-yit-assets.php:176
|
55 |
msgid "Default"
|
56 |
msgstr "По умолчанию"
|
57 |
|
58 |
+
#: includes/class-yit-assets.php:177
|
59 |
msgid "Select default color"
|
60 |
msgstr "Выберите цвет по умолчанию"
|
61 |
|
62 |
+
#: includes/class-yit-assets.php:178
|
63 |
msgid "Select Color"
|
64 |
msgstr "Выберите цвет"
|
65 |
|
66 |
+
#: includes/class-yit-assets.php:179
|
67 |
msgid "Color value"
|
68 |
msgstr "Цвет значения"
|
69 |
|
73 |
"При выполнении вашего запроса произошла ошибка; пожалуйста, повторите "
|
74 |
"попытку позже."
|
75 |
|
76 |
+
#: includes/class-yit-plugin-panel-woocommerce.php:437
|
77 |
msgid "The changes you have made will be lost if you leave this page."
|
78 |
msgstr ""
|
79 |
"Внесенные вами изменения будут потеряны, если вы покинете эту страницу."
|
86 |
msgid "Settings"
|
87 |
msgstr "Настройки"
|
88 |
|
89 |
+
#: includes/class-yit-plugin-panel.php:456
|
90 |
+
#: includes/class-yit-plugin-panel.php:459
|
91 |
msgid "How to install premium version"
|
92 |
msgstr "Как установить премиум версию"
|
93 |
|
94 |
+
#: includes/class-yit-plugin-panel.php:656
|
95 |
#: includes/class-yit-plugin-subpanel.php:133
|
96 |
msgid "Save Changes"
|
97 |
msgstr "Сохранить Изменения"
|
98 |
|
99 |
+
#: includes/class-yit-plugin-panel.php:664
|
100 |
#: includes/class-yit-plugin-subpanel.php:140
|
101 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
102 |
msgid ""
|
104 |
msgstr ""
|
105 |
"Если вы продолжите это действие, вы сбросите все параметры на этой странице."
|
106 |
|
107 |
+
#: includes/class-yit-plugin-panel.php:664
|
108 |
#: includes/class-yit-plugin-subpanel.php:140
|
109 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
110 |
msgid "Are you sure?"
|
111 |
msgstr "Вы уверены?"
|
112 |
|
113 |
+
#: includes/class-yit-plugin-panel.php:668
|
114 |
#: includes/class-yit-plugin-subpanel.php:143
|
115 |
msgid "Reset to default"
|
116 |
msgstr "Сброс до заводских настроек"
|
117 |
|
118 |
+
#: includes/class-yit-plugin-panel.php:1039
|
119 |
+
msgid "Read the <mark>plugin documentation</mark>"
|
120 |
+
msgstr ""
|
121 |
+
|
122 |
+
#: includes/class-yit-plugin-panel.php:1040
|
123 |
+
msgid "Learn what you can really do with this powerful tool"
|
124 |
+
msgstr ""
|
125 |
+
|
126 |
+
#: includes/class-yit-plugin-panel.php:1050
|
127 |
+
msgid "Watch our <mark>\"First Steps\" video</mark>"
|
128 |
+
msgstr ""
|
129 |
+
|
130 |
+
#: includes/class-yit-plugin-panel.php:1051
|
131 |
+
msgid "See how it works before you start using it"
|
132 |
+
msgstr ""
|
133 |
+
|
134 |
+
#: includes/class-yit-plugin-panel.php:1307
|
135 |
msgid ""
|
136 |
"The element you have entered already exists. Please, enter another name."
|
137 |
msgstr "Введенный вами элемент уже существует. Пожалуйста, введите другое имя."
|
138 |
|
139 |
+
#: includes/class-yit-plugin-panel.php:1308
|
140 |
msgid "Settings saved"
|
141 |
msgstr "Настройки сохранены"
|
142 |
|
143 |
+
#: includes/class-yit-plugin-panel.php:1309
|
144 |
msgid "Settings reset"
|
145 |
msgstr "Сбросить настройки"
|
146 |
|
147 |
+
#: includes/class-yit-plugin-panel.php:1310
|
148 |
msgid "Element deleted correctly."
|
149 |
msgstr "Элемент удален правильно."
|
150 |
|
151 |
+
#: includes/class-yit-plugin-panel.php:1311
|
152 |
+
#: includes/class-yit-plugin-panel.php:1312
|
153 |
msgid "Element updated correctly."
|
154 |
msgstr "Элемент обновлен правильно."
|
155 |
|
156 |
+
#: includes/class-yit-plugin-panel.php:1313
|
157 |
msgid "Database imported correctly."
|
158 |
msgstr "База данных импортирована правильно."
|
159 |
|
160 |
+
#: includes/class-yit-plugin-panel.php:1314
|
161 |
msgid "An error has occurred during import. Please try again."
|
162 |
msgstr "Во время импорта произошла ошибка. Пожалуйста, попробуйте еще раз."
|
163 |
|
164 |
+
#: includes/class-yit-plugin-panel.php:1315
|
165 |
msgid "The added file is not valid."
|
166 |
msgstr "Добавленный файл недействителен."
|
167 |
|
168 |
+
#: includes/class-yit-plugin-panel.php:1316
|
169 |
msgid "Sorry, import is disabled."
|
170 |
msgstr "Извините, импорт отключен."
|
171 |
|
172 |
+
#: includes/class-yit-plugin-panel.php:1317
|
173 |
msgid "Sorting successful."
|
174 |
msgstr "Сортировка выполнена успешно."
|
175 |
|
176 |
+
#: includes/class-yit-plugin-panel.php:1806
|
177 |
msgid "We need your support"
|
178 |
msgstr "Нам нужна ваша поддержка"
|
179 |
|
180 |
+
#: includes/class-yit-plugin-panel.php:1807
|
181 |
msgid "to keep updating and improving the plugin. Please,"
|
182 |
msgstr "чтобы продолжать обновлять и улучшать плагин. Пожалуйста,"
|
183 |
|
184 |
+
#: includes/class-yit-plugin-panel.php:1809
|
185 |
msgid "help us by leaving a good review"
|
186 |
msgstr "помогите нам, оставив хороший отзыв"
|
187 |
|
188 |
+
#: includes/class-yit-plugin-panel.php:1810
|
189 |
msgid ":) Thanks!"
|
190 |
msgstr ":) Благодарим!"
|
191 |
|
559 |
msgid "Reset"
|
560 |
msgstr "Сброс"
|
561 |
|
562 |
+
#. translators: %s is the plugin version.
|
563 |
+
#: templates/panel/welcome-modals/update.php:34
|
564 |
+
msgid "is successfully updated to version %s."
|
565 |
+
msgstr ""
|
566 |
+
|
567 |
+
#. translators: %s is the plugin version.
|
568 |
+
#: templates/panel/welcome-modals/update.php:44
|
569 |
+
msgid "What's new in version %s"
|
570 |
+
msgstr ""
|
571 |
+
|
572 |
+
#: templates/panel/welcome-modals/update.php:49
|
573 |
+
msgid "Check the changelog >"
|
574 |
+
msgstr ""
|
575 |
+
|
576 |
+
#: templates/panel/welcome-modals/update.php:64
|
577 |
+
#: templates/panel/welcome-modals/welcome.php:60
|
578 |
+
msgid "Got it, close this window"
|
579 |
+
msgstr ""
|
580 |
+
|
581 |
+
#: templates/panel/welcome-modals/welcome.php:30
|
582 |
+
msgid "Thank you for using our plugin"
|
583 |
+
msgstr ""
|
584 |
+
|
585 |
+
#. translators: %s is the number of steps.
|
586 |
+
#: templates/panel/welcome-modals/welcome.php:45
|
587 |
+
msgid "Start with these %s steps:"
|
588 |
+
msgstr ""
|
589 |
+
|
590 |
#: templates/panel/woocommerce/woocommerce-form.php:29
|
591 |
#: templates/panel/woocommerce/woocommerce-form.php:33
|
592 |
msgid "Save Options"
|
768 |
msgid "YITH"
|
769 |
msgstr "YITH"
|
770 |
|
771 |
+
#: includes/class-yit-assets.php:136
|
772 |
msgctxt "Button text"
|
773 |
msgid "Confirm"
|
774 |
msgstr "Подтвердить"
|
775 |
|
776 |
+
#: includes/class-yit-assets.php:137
|
777 |
msgctxt "Button text"
|
778 |
msgid "Cancel"
|
779 |
msgstr "Отмена"
|
780 |
|
781 |
+
#: includes/class-yit-assets.php:150 yit-functions.php:2009
|
782 |
msgctxt "Trash confirmation action"
|
783 |
msgid "Yes, move to trash"
|
784 |
msgstr "Да, удалить в корзину"
|
785 |
|
786 |
+
#: includes/class-yit-assets.php:154 yit-functions.php:2027
|
787 |
#: yit-functions.php:2154
|
788 |
msgctxt "Delete confirmation action"
|
789 |
msgid "Yes, delete"
|
790 |
msgstr "Да, удалить"
|
791 |
|
792 |
#. translators: 1. Plugin name.
|
793 |
+
#: includes/class-yit-plugin-panel.php:804
|
794 |
msgctxt "Help tab default title"
|
795 |
msgid "Thank you for purchasing %s!"
|
796 |
msgstr "Благодарим вас за покупку %s!"
|
797 |
|
798 |
+
#: includes/class-yit-plugin-panel.php:804
|
|
|
799 |
msgctxt "Help tab default title"
|
800 |
msgid "Thank you for using %s!"
|
801 |
+
msgstr ""
|
802 |
|
803 |
+
#: includes/class-yit-plugin-panel.php:812
|
804 |
msgctxt "Help tab default description"
|
805 |
msgid ""
|
806 |
"We want to help you enjoy a wonderful experience with all of our products."
|
808 |
"Мы хотим помочь вам получить удовольствие от использования всех наших "
|
809 |
"продуктов."
|
810 |
|
811 |
+
#: includes/class-yit-plugin-panel.php:863
|
812 |
msgctxt "Premium tab name"
|
813 |
msgid "Get premium"
|
814 |
msgstr "Получите премиум"
|
815 |
|
816 |
+
#: includes/class-yit-plugin-panel.php:875
|
817 |
msgctxt "Help tab name"
|
818 |
msgid "Help"
|
819 |
msgstr "Помощь"
|
1009 |
|
1010 |
#: templates/panel/help-tab.php:216 templates/panel/help-tab.php:218
|
1011 |
#: templates/panel/help-tab.php:223
|
|
|
1012 |
msgctxt "Help tab documentation"
|
1013 |
msgid "Read the plugin documentation"
|
1014 |
+
msgstr ""
|
1015 |
|
1016 |
#: templates/panel/help-tab.php:220
|
1017 |
msgctxt "Help tab documentation"
|
1019 |
msgstr ""
|
1020 |
|
1021 |
#: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
|
|
|
1022 |
msgctxt "Help tab support"
|
1023 |
msgid "Need some help?"
|
1024 |
+
msgstr ""
|
1025 |
|
1026 |
#: templates/panel/help-tab.php:235
|
1027 |
msgctxt "Help tab support"
|
1036 |
msgstr ""
|
1037 |
|
1038 |
#: templates/panel/help-tab.php:241
|
|
|
1039 |
msgctxt "Help tab support"
|
1040 |
msgid "Yes, I need help"
|
1041 |
+
msgstr ""
|
1042 |
|
1043 |
#: templates/panel/premium-tab.php:30
|
1044 |
msgctxt "Premium Tab"
|
1062 |
msgstr "И многое другое!"
|
1063 |
|
1064 |
#: templates/panel/premium-tab.php:53
|
|
|
1065 |
msgctxt "Premium Tab"
|
1066 |
msgid "Check the premium features >"
|
1067 |
+
msgstr ""
|
1068 |
|
1069 |
#: templates/panel/premium-tab.php:60
|
1070 |
msgctxt "Premium Tab"
|
plugin-fw/languages/yith-plugin-fw-zh_CN.mo
CHANGED
Binary file
|
plugin-fw/languages/yith-plugin-fw-zh_CN.po
CHANGED
@@ -4,7 +4,7 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
-
"POT-Creation-Date: 2022-08-
|
8 |
"PO-Revision-Date: 2022-06-29 13:12:18+0000\n"
|
9 |
"Language: zh\n"
|
10 |
"MIME-Version: 1.0\n"
|
@@ -13,56 +13,56 @@ msgstr ""
|
|
13 |
"Plural-Forms: nplurals=1; plural=0;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
-
#: includes/class-yit-assets.php:
|
17 |
msgid "Confirm trash"
|
18 |
msgstr "確認丟棄"
|
19 |
|
20 |
-
#: includes/class-yit-assets.php:
|
21 |
msgid "Are you sure you want to trash the selected items?"
|
22 |
msgstr "你確定要將所選的項目移至垃圾桶嗎?"
|
23 |
|
24 |
-
#: includes/class-yit-assets.php:
|
25 |
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
|
26 |
#: yit-functions.php:2008 yit-functions.php:2026
|
27 |
msgid "No"
|
28 |
msgstr "不"
|
29 |
|
30 |
-
#: includes/class-yit-assets.php:
|
31 |
#: yit-functions.php:2152
|
32 |
msgid "Confirm delete"
|
33 |
msgstr "確認刪除"
|
34 |
|
35 |
-
#: includes/class-yit-assets.php:
|
36 |
msgid "Are you sure you want to delete the selected items?"
|
37 |
msgstr "你確定要刪除所選的項目嗎?"
|
38 |
|
39 |
-
#: includes/class-yit-assets.php:
|
40 |
#: yit-functions.php:2100
|
41 |
msgid ""
|
42 |
"This action cannot be undone and you will not be able to recover this data."
|
43 |
msgstr "此操作無法撤消,您將無法恢復此數據。"
|
44 |
|
45 |
-
#: includes/class-yit-assets.php:
|
46 |
msgid "Clear"
|
47 |
msgstr "清除"
|
48 |
|
49 |
-
#: includes/class-yit-assets.php:
|
50 |
msgid "Clear color"
|
51 |
msgstr "清除顏色"
|
52 |
|
53 |
-
#: includes/class-yit-assets.php:
|
54 |
msgid "Default"
|
55 |
msgstr "預設"
|
56 |
|
57 |
-
#: includes/class-yit-assets.php:
|
58 |
msgid "Select default color"
|
59 |
msgstr "選擇預設顏色"
|
60 |
|
61 |
-
#: includes/class-yit-assets.php:
|
62 |
msgid "Select Color"
|
63 |
msgstr "選擇顏色"
|
64 |
|
65 |
-
#: includes/class-yit-assets.php:
|
66 |
msgid "Color value"
|
67 |
msgstr "顏色數值"
|
68 |
|
@@ -70,7 +70,7 @@ msgstr "顏色數值"
|
|
70 |
msgid "There was an error with your request; please try again later."
|
71 |
msgstr "您的請求有誤; 請稍後再試。"
|
72 |
|
73 |
-
#: includes/class-yit-plugin-panel-woocommerce.php:
|
74 |
msgid "The changes you have made will be lost if you leave this page."
|
75 |
msgstr "如果你離開這個頁面,這些改變將會遺失"
|
76 |
|
@@ -82,89 +82,105 @@ msgstr "外掛設定"
|
|
82 |
msgid "Settings"
|
83 |
msgstr "設定"
|
84 |
|
85 |
-
#: includes/class-yit-plugin-panel.php:
|
86 |
-
#: includes/class-yit-plugin-panel.php:
|
87 |
msgid "How to install premium version"
|
88 |
msgstr "如何安裝高級版"
|
89 |
|
90 |
-
#: includes/class-yit-plugin-panel.php:
|
91 |
#: includes/class-yit-plugin-subpanel.php:133
|
92 |
msgid "Save Changes"
|
93 |
msgstr "儲存變更"
|
94 |
|
95 |
-
#: includes/class-yit-plugin-panel.php:
|
96 |
#: includes/class-yit-plugin-subpanel.php:140
|
97 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
98 |
msgid ""
|
99 |
"If you continue with this action, you will reset all options in this page."
|
100 |
msgstr "如果你繼續這個動作,你將會重設這個頁面所有的選項"
|
101 |
|
102 |
-
#: includes/class-yit-plugin-panel.php:
|
103 |
#: includes/class-yit-plugin-subpanel.php:140
|
104 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
105 |
msgid "Are you sure?"
|
106 |
msgstr "你確定嗎?"
|
107 |
|
108 |
-
#: includes/class-yit-plugin-panel.php:
|
109 |
#: includes/class-yit-plugin-subpanel.php:143
|
110 |
msgid "Reset to default"
|
111 |
msgstr "重置為預設值"
|
112 |
|
113 |
-
#: includes/class-yit-plugin-panel.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
msgid ""
|
115 |
"The element you have entered already exists. Please, enter another name."
|
116 |
msgstr "你輸入的這個元素已經存在,請輸入另一個名稱"
|
117 |
|
118 |
-
#: includes/class-yit-plugin-panel.php:
|
119 |
msgid "Settings saved"
|
120 |
msgstr "設定已經儲存"
|
121 |
|
122 |
-
#: includes/class-yit-plugin-panel.php:
|
123 |
msgid "Settings reset"
|
124 |
msgstr "重置設定"
|
125 |
|
126 |
-
#: includes/class-yit-plugin-panel.php:
|
127 |
msgid "Element deleted correctly."
|
128 |
msgstr "元素已被確實刪除"
|
129 |
|
130 |
-
#: includes/class-yit-plugin-panel.php:
|
131 |
-
#: includes/class-yit-plugin-panel.php:
|
132 |
msgid "Element updated correctly."
|
133 |
msgstr "元素已正確更新。"
|
134 |
|
135 |
-
#: includes/class-yit-plugin-panel.php:
|
136 |
msgid "Database imported correctly."
|
137 |
msgstr "資料庫已被正確匯入"
|
138 |
|
139 |
-
#: includes/class-yit-plugin-panel.php:
|
140 |
msgid "An error has occurred during import. Please try again."
|
141 |
msgstr "匯入過程中發生一個錯誤,請再試一次"
|
142 |
|
143 |
-
#: includes/class-yit-plugin-panel.php:
|
144 |
msgid "The added file is not valid."
|
145 |
msgstr "添加的檔案無效"
|
146 |
|
147 |
-
#: includes/class-yit-plugin-panel.php:
|
148 |
msgid "Sorry, import is disabled."
|
149 |
msgstr "抱歉,匯入功能被關閉"
|
150 |
|
151 |
-
#: includes/class-yit-plugin-panel.php:
|
152 |
msgid "Sorting successful."
|
153 |
msgstr "已順利排序"
|
154 |
|
155 |
-
#: includes/class-yit-plugin-panel.php:
|
156 |
msgid "We need your support"
|
157 |
msgstr "我們需要你的支援"
|
158 |
|
159 |
-
#: includes/class-yit-plugin-panel.php:
|
160 |
msgid "to keep updating and improving the plugin. Please,"
|
161 |
msgstr "請不斷保持更新與改進外掛"
|
162 |
|
163 |
-
#: includes/class-yit-plugin-panel.php:
|
164 |
msgid "help us by leaving a good review"
|
165 |
msgstr "留下好的評論幫助我們更進步"
|
166 |
|
167 |
-
#: includes/class-yit-plugin-panel.php:
|
168 |
msgid ":) Thanks!"
|
169 |
msgstr ":) 謝謝!"
|
170 |
|
@@ -527,6 +543,34 @@ msgstr "上傳"
|
|
527 |
msgid "Reset"
|
528 |
msgstr "重置"
|
529 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
530 |
#: templates/panel/woocommerce/woocommerce-form.php:29
|
531 |
#: templates/panel/woocommerce/woocommerce-form.php:33
|
532 |
msgid "Save Options"
|
@@ -704,51 +748,50 @@ msgctxt "[gutenberg]: Category Name"
|
|
704 |
msgid "YITH"
|
705 |
msgstr "YITH"
|
706 |
|
707 |
-
#: includes/class-yit-assets.php:
|
708 |
msgctxt "Button text"
|
709 |
msgid "Confirm"
|
710 |
msgstr "確認"
|
711 |
|
712 |
-
#: includes/class-yit-assets.php:
|
713 |
msgctxt "Button text"
|
714 |
msgid "Cancel"
|
715 |
msgstr "取消"
|
716 |
|
717 |
-
#: includes/class-yit-assets.php:
|
718 |
msgctxt "Trash confirmation action"
|
719 |
msgid "Yes, move to trash"
|
720 |
msgstr "是的,將它移至垃圾桶"
|
721 |
|
722 |
-
#: includes/class-yit-assets.php:
|
723 |
#: yit-functions.php:2154
|
724 |
msgctxt "Delete confirmation action"
|
725 |
msgid "Yes, delete"
|
726 |
msgstr "是的,刪除"
|
727 |
|
728 |
#. translators: 1. Plugin name.
|
729 |
-
#: includes/class-yit-plugin-panel.php:
|
730 |
msgctxt "Help tab default title"
|
731 |
msgid "Thank you for purchasing %s!"
|
732 |
msgstr "感謝您購買 %s !"
|
733 |
|
734 |
-
#: includes/class-yit-plugin-panel.php:
|
735 |
-
#, fuzzy
|
736 |
msgctxt "Help tab default title"
|
737 |
msgid "Thank you for using %s!"
|
738 |
-
msgstr "
|
739 |
|
740 |
-
#: includes/class-yit-plugin-panel.php:
|
741 |
msgctxt "Help tab default description"
|
742 |
msgid ""
|
743 |
"We want to help you enjoy a wonderful experience with all of our products."
|
744 |
msgstr "我們希望幫助您享受我們所有產品的美妙體驗。"
|
745 |
|
746 |
-
#: includes/class-yit-plugin-panel.php:
|
747 |
msgctxt "Premium tab name"
|
748 |
msgid "Get premium"
|
749 |
msgstr "取得高級版"
|
750 |
|
751 |
-
#: includes/class-yit-plugin-panel.php:
|
752 |
msgctxt "Help tab name"
|
753 |
msgid "Help"
|
754 |
msgstr "幫助"
|
@@ -938,22 +981,19 @@ msgstr "提交一張工作單"
|
|
938 |
|
939 |
#: templates/panel/help-tab.php:216 templates/panel/help-tab.php:218
|
940 |
#: templates/panel/help-tab.php:223
|
941 |
-
#, fuzzy
|
942 |
msgctxt "Help tab documentation"
|
943 |
msgid "Read the plugin documentation"
|
944 |
-
msgstr "
|
945 |
|
946 |
#: templates/panel/help-tab.php:220
|
947 |
-
#, fuzzy
|
948 |
msgctxt "Help tab documentation"
|
949 |
msgid "to learn how it works from the basics."
|
950 |
-
msgstr "
|
951 |
|
952 |
#: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
|
953 |
-
#, fuzzy
|
954 |
msgctxt "Help tab support"
|
955 |
msgid "Need some help?"
|
956 |
-
msgstr "
|
957 |
|
958 |
#: templates/panel/help-tab.php:235
|
959 |
msgctxt "Help tab support"
|
@@ -968,10 +1008,9 @@ msgid ""
|
|
968 |
msgstr ""
|
969 |
|
970 |
#: templates/panel/help-tab.php:241
|
971 |
-
#, fuzzy
|
972 |
msgctxt "Help tab support"
|
973 |
msgid "Yes, I need help"
|
974 |
-
msgstr "
|
975 |
|
976 |
#: templates/panel/premium-tab.php:30
|
977 |
msgctxt "Premium Tab"
|
@@ -995,10 +1034,9 @@ msgid "And so much more!"
|
|
995 |
msgstr "還有更多!"
|
996 |
|
997 |
#: templates/panel/premium-tab.php:53
|
998 |
-
#, fuzzy
|
999 |
msgctxt "Premium Tab"
|
1000 |
msgid "Check the premium features >"
|
1001 |
-
msgstr "
|
1002 |
|
1003 |
#: templates/panel/premium-tab.php:60
|
1004 |
msgctxt "Premium Tab"
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
+
"POT-Creation-Date: 2022-08-10 12:46:35+00:00\n"
|
8 |
"PO-Revision-Date: 2022-06-29 13:12:18+0000\n"
|
9 |
"Language: zh\n"
|
10 |
"MIME-Version: 1.0\n"
|
13 |
"Plural-Forms: nplurals=1; plural=0;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
+
#: includes/class-yit-assets.php:148 yit-functions.php:2006
|
17 |
msgid "Confirm trash"
|
18 |
msgstr "確認丟棄"
|
19 |
|
20 |
+
#: includes/class-yit-assets.php:149
|
21 |
msgid "Are you sure you want to trash the selected items?"
|
22 |
msgstr "你確定要將所選的項目移至垃圾桶嗎?"
|
23 |
|
24 |
+
#: includes/class-yit-assets.php:151 includes/class-yit-assets.php:155
|
25 |
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
|
26 |
#: yit-functions.php:2008 yit-functions.php:2026
|
27 |
msgid "No"
|
28 |
msgstr "不"
|
29 |
|
30 |
+
#: includes/class-yit-assets.php:152 yit-functions.php:2024
|
31 |
#: yit-functions.php:2152
|
32 |
msgid "Confirm delete"
|
33 |
msgstr "確認刪除"
|
34 |
|
35 |
+
#: includes/class-yit-assets.php:153
|
36 |
msgid "Are you sure you want to delete the selected items?"
|
37 |
msgstr "你確定要刪除所選的項目嗎?"
|
38 |
|
39 |
+
#: includes/class-yit-assets.php:153 yit-functions.php:1940
|
40 |
#: yit-functions.php:2100
|
41 |
msgid ""
|
42 |
"This action cannot be undone and you will not be able to recover this data."
|
43 |
msgstr "此操作無法撤消,您將無法恢復此數據。"
|
44 |
|
45 |
+
#: includes/class-yit-assets.php:174
|
46 |
msgid "Clear"
|
47 |
msgstr "清除"
|
48 |
|
49 |
+
#: includes/class-yit-assets.php:175
|
50 |
msgid "Clear color"
|
51 |
msgstr "清除顏色"
|
52 |
|
53 |
+
#: includes/class-yit-assets.php:176
|
54 |
msgid "Default"
|
55 |
msgstr "預設"
|
56 |
|
57 |
+
#: includes/class-yit-assets.php:177
|
58 |
msgid "Select default color"
|
59 |
msgstr "選擇預設顏色"
|
60 |
|
61 |
+
#: includes/class-yit-assets.php:178
|
62 |
msgid "Select Color"
|
63 |
msgstr "選擇顏色"
|
64 |
|
65 |
+
#: includes/class-yit-assets.php:179
|
66 |
msgid "Color value"
|
67 |
msgstr "顏色數值"
|
68 |
|
70 |
msgid "There was an error with your request; please try again later."
|
71 |
msgstr "您的請求有誤; 請稍後再試。"
|
72 |
|
73 |
+
#: includes/class-yit-plugin-panel-woocommerce.php:437
|
74 |
msgid "The changes you have made will be lost if you leave this page."
|
75 |
msgstr "如果你離開這個頁面,這些改變將會遺失"
|
76 |
|
82 |
msgid "Settings"
|
83 |
msgstr "設定"
|
84 |
|
85 |
+
#: includes/class-yit-plugin-panel.php:456
|
86 |
+
#: includes/class-yit-plugin-panel.php:459
|
87 |
msgid "How to install premium version"
|
88 |
msgstr "如何安裝高級版"
|
89 |
|
90 |
+
#: includes/class-yit-plugin-panel.php:656
|
91 |
#: includes/class-yit-plugin-subpanel.php:133
|
92 |
msgid "Save Changes"
|
93 |
msgstr "儲存變更"
|
94 |
|
95 |
+
#: includes/class-yit-plugin-panel.php:664
|
96 |
#: includes/class-yit-plugin-subpanel.php:140
|
97 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
98 |
msgid ""
|
99 |
"If you continue with this action, you will reset all options in this page."
|
100 |
msgstr "如果你繼續這個動作,你將會重設這個頁面所有的選項"
|
101 |
|
102 |
+
#: includes/class-yit-plugin-panel.php:664
|
103 |
#: includes/class-yit-plugin-subpanel.php:140
|
104 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
105 |
msgid "Are you sure?"
|
106 |
msgstr "你確定嗎?"
|
107 |
|
108 |
+
#: includes/class-yit-plugin-panel.php:668
|
109 |
#: includes/class-yit-plugin-subpanel.php:143
|
110 |
msgid "Reset to default"
|
111 |
msgstr "重置為預設值"
|
112 |
|
113 |
+
#: includes/class-yit-plugin-panel.php:1039
|
114 |
+
msgid "Read the <mark>plugin documentation</mark>"
|
115 |
+
msgstr ""
|
116 |
+
|
117 |
+
#: includes/class-yit-plugin-panel.php:1040
|
118 |
+
msgid "Learn what you can really do with this powerful tool"
|
119 |
+
msgstr ""
|
120 |
+
|
121 |
+
#: includes/class-yit-plugin-panel.php:1050
|
122 |
+
msgid "Watch our <mark>\"First Steps\" video</mark>"
|
123 |
+
msgstr ""
|
124 |
+
|
125 |
+
#: includes/class-yit-plugin-panel.php:1051
|
126 |
+
msgid "See how it works before you start using it"
|
127 |
+
msgstr ""
|
128 |
+
|
129 |
+
#: includes/class-yit-plugin-panel.php:1307
|
130 |
msgid ""
|
131 |
"The element you have entered already exists. Please, enter another name."
|
132 |
msgstr "你輸入的這個元素已經存在,請輸入另一個名稱"
|
133 |
|
134 |
+
#: includes/class-yit-plugin-panel.php:1308
|
135 |
msgid "Settings saved"
|
136 |
msgstr "設定已經儲存"
|
137 |
|
138 |
+
#: includes/class-yit-plugin-panel.php:1309
|
139 |
msgid "Settings reset"
|
140 |
msgstr "重置設定"
|
141 |
|
142 |
+
#: includes/class-yit-plugin-panel.php:1310
|
143 |
msgid "Element deleted correctly."
|
144 |
msgstr "元素已被確實刪除"
|
145 |
|
146 |
+
#: includes/class-yit-plugin-panel.php:1311
|
147 |
+
#: includes/class-yit-plugin-panel.php:1312
|
148 |
msgid "Element updated correctly."
|
149 |
msgstr "元素已正確更新。"
|
150 |
|
151 |
+
#: includes/class-yit-plugin-panel.php:1313
|
152 |
msgid "Database imported correctly."
|
153 |
msgstr "資料庫已被正確匯入"
|
154 |
|
155 |
+
#: includes/class-yit-plugin-panel.php:1314
|
156 |
msgid "An error has occurred during import. Please try again."
|
157 |
msgstr "匯入過程中發生一個錯誤,請再試一次"
|
158 |
|
159 |
+
#: includes/class-yit-plugin-panel.php:1315
|
160 |
msgid "The added file is not valid."
|
161 |
msgstr "添加的檔案無效"
|
162 |
|
163 |
+
#: includes/class-yit-plugin-panel.php:1316
|
164 |
msgid "Sorry, import is disabled."
|
165 |
msgstr "抱歉,匯入功能被關閉"
|
166 |
|
167 |
+
#: includes/class-yit-plugin-panel.php:1317
|
168 |
msgid "Sorting successful."
|
169 |
msgstr "已順利排序"
|
170 |
|
171 |
+
#: includes/class-yit-plugin-panel.php:1806
|
172 |
msgid "We need your support"
|
173 |
msgstr "我們需要你的支援"
|
174 |
|
175 |
+
#: includes/class-yit-plugin-panel.php:1807
|
176 |
msgid "to keep updating and improving the plugin. Please,"
|
177 |
msgstr "請不斷保持更新與改進外掛"
|
178 |
|
179 |
+
#: includes/class-yit-plugin-panel.php:1809
|
180 |
msgid "help us by leaving a good review"
|
181 |
msgstr "留下好的評論幫助我們更進步"
|
182 |
|
183 |
+
#: includes/class-yit-plugin-panel.php:1810
|
184 |
msgid ":) Thanks!"
|
185 |
msgstr ":) 謝謝!"
|
186 |
|
543 |
msgid "Reset"
|
544 |
msgstr "重置"
|
545 |
|
546 |
+
#. translators: %s is the plugin version.
|
547 |
+
#: templates/panel/welcome-modals/update.php:34
|
548 |
+
msgid "is successfully updated to version %s."
|
549 |
+
msgstr ""
|
550 |
+
|
551 |
+
#. translators: %s is the plugin version.
|
552 |
+
#: templates/panel/welcome-modals/update.php:44
|
553 |
+
msgid "What's new in version %s"
|
554 |
+
msgstr ""
|
555 |
+
|
556 |
+
#: templates/panel/welcome-modals/update.php:49
|
557 |
+
msgid "Check the changelog >"
|
558 |
+
msgstr ""
|
559 |
+
|
560 |
+
#: templates/panel/welcome-modals/update.php:64
|
561 |
+
#: templates/panel/welcome-modals/welcome.php:60
|
562 |
+
msgid "Got it, close this window"
|
563 |
+
msgstr ""
|
564 |
+
|
565 |
+
#: templates/panel/welcome-modals/welcome.php:30
|
566 |
+
msgid "Thank you for using our plugin"
|
567 |
+
msgstr ""
|
568 |
+
|
569 |
+
#. translators: %s is the number of steps.
|
570 |
+
#: templates/panel/welcome-modals/welcome.php:45
|
571 |
+
msgid "Start with these %s steps:"
|
572 |
+
msgstr ""
|
573 |
+
|
574 |
#: templates/panel/woocommerce/woocommerce-form.php:29
|
575 |
#: templates/panel/woocommerce/woocommerce-form.php:33
|
576 |
msgid "Save Options"
|
748 |
msgid "YITH"
|
749 |
msgstr "YITH"
|
750 |
|
751 |
+
#: includes/class-yit-assets.php:136
|
752 |
msgctxt "Button text"
|
753 |
msgid "Confirm"
|
754 |
msgstr "確認"
|
755 |
|
756 |
+
#: includes/class-yit-assets.php:137
|
757 |
msgctxt "Button text"
|
758 |
msgid "Cancel"
|
759 |
msgstr "取消"
|
760 |
|
761 |
+
#: includes/class-yit-assets.php:150 yit-functions.php:2009
|
762 |
msgctxt "Trash confirmation action"
|
763 |
msgid "Yes, move to trash"
|
764 |
msgstr "是的,將它移至垃圾桶"
|
765 |
|
766 |
+
#: includes/class-yit-assets.php:154 yit-functions.php:2027
|
767 |
#: yit-functions.php:2154
|
768 |
msgctxt "Delete confirmation action"
|
769 |
msgid "Yes, delete"
|
770 |
msgstr "是的,刪除"
|
771 |
|
772 |
#. translators: 1. Plugin name.
|
773 |
+
#: includes/class-yit-plugin-panel.php:804
|
774 |
msgctxt "Help tab default title"
|
775 |
msgid "Thank you for purchasing %s!"
|
776 |
msgstr "感謝您購買 %s !"
|
777 |
|
778 |
+
#: includes/class-yit-plugin-panel.php:804
|
|
|
779 |
msgctxt "Help tab default title"
|
780 |
msgid "Thank you for using %s!"
|
781 |
+
msgstr ""
|
782 |
|
783 |
+
#: includes/class-yit-plugin-panel.php:812
|
784 |
msgctxt "Help tab default description"
|
785 |
msgid ""
|
786 |
"We want to help you enjoy a wonderful experience with all of our products."
|
787 |
msgstr "我們希望幫助您享受我們所有產品的美妙體驗。"
|
788 |
|
789 |
+
#: includes/class-yit-plugin-panel.php:863
|
790 |
msgctxt "Premium tab name"
|
791 |
msgid "Get premium"
|
792 |
msgstr "取得高級版"
|
793 |
|
794 |
+
#: includes/class-yit-plugin-panel.php:875
|
795 |
msgctxt "Help tab name"
|
796 |
msgid "Help"
|
797 |
msgstr "幫助"
|
981 |
|
982 |
#: templates/panel/help-tab.php:216 templates/panel/help-tab.php:218
|
983 |
#: templates/panel/help-tab.php:223
|
|
|
984 |
msgctxt "Help tab documentation"
|
985 |
msgid "Read the plugin documentation"
|
986 |
+
msgstr ""
|
987 |
|
988 |
#: templates/panel/help-tab.php:220
|
|
|
989 |
msgctxt "Help tab documentation"
|
990 |
msgid "to learn how it works from the basics."
|
991 |
+
msgstr ""
|
992 |
|
993 |
#: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
|
|
|
994 |
msgctxt "Help tab support"
|
995 |
msgid "Need some help?"
|
996 |
+
msgstr ""
|
997 |
|
998 |
#: templates/panel/help-tab.php:235
|
999 |
msgctxt "Help tab support"
|
1008 |
msgstr ""
|
1009 |
|
1010 |
#: templates/panel/help-tab.php:241
|
|
|
1011 |
msgctxt "Help tab support"
|
1012 |
msgid "Yes, I need help"
|
1013 |
+
msgstr ""
|
1014 |
|
1015 |
#: templates/panel/premium-tab.php:30
|
1016 |
msgctxt "Premium Tab"
|
1034 |
msgstr "還有更多!"
|
1035 |
|
1036 |
#: templates/panel/premium-tab.php:53
|
|
|
1037 |
msgctxt "Premium Tab"
|
1038 |
msgid "Check the premium features >"
|
1039 |
+
msgstr ""
|
1040 |
|
1041 |
#: templates/panel/premium-tab.php:60
|
1042 |
msgctxt "Premium Tab"
|
plugin-fw/languages/yith-plugin-fw.pot
CHANGED
@@ -4,7 +4,7 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: \n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
-
"POT-Creation-Date: 2022-08-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -24,55 +24,55 @@ msgstr ""
|
|
24 |
"X-Textdomain-Support: yes\n"
|
25 |
"X-Generator: grunt-wp-i18n 1.0.3\n"
|
26 |
|
27 |
-
#: includes/class-yit-assets.php:
|
28 |
msgid "Confirm trash"
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: includes/class-yit-assets.php:
|
32 |
msgid "Are you sure you want to trash the selected items?"
|
33 |
msgstr ""
|
34 |
|
35 |
-
#: includes/class-yit-assets.php:
|
36 |
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
|
37 |
#: yit-functions.php:2008 yit-functions.php:2026
|
38 |
msgid "No"
|
39 |
msgstr ""
|
40 |
|
41 |
-
#: includes/class-yit-assets.php:
|
42 |
#: yit-functions.php:2152
|
43 |
msgid "Confirm delete"
|
44 |
msgstr ""
|
45 |
|
46 |
-
#: includes/class-yit-assets.php:
|
47 |
msgid "Are you sure you want to delete the selected items?"
|
48 |
msgstr ""
|
49 |
|
50 |
-
#: includes/class-yit-assets.php:
|
51 |
#: yit-functions.php:2100
|
52 |
msgid "This action cannot be undone and you will not be able to recover this data."
|
53 |
msgstr ""
|
54 |
|
55 |
-
#: includes/class-yit-assets.php:
|
56 |
msgid "Clear"
|
57 |
msgstr ""
|
58 |
|
59 |
-
#: includes/class-yit-assets.php:
|
60 |
msgid "Clear color"
|
61 |
msgstr ""
|
62 |
|
63 |
-
#: includes/class-yit-assets.php:
|
64 |
msgid "Default"
|
65 |
msgstr ""
|
66 |
|
67 |
-
#: includes/class-yit-assets.php:
|
68 |
msgid "Select default color"
|
69 |
msgstr ""
|
70 |
|
71 |
-
#: includes/class-yit-assets.php:
|
72 |
msgid "Select Color"
|
73 |
msgstr ""
|
74 |
|
75 |
-
#: includes/class-yit-assets.php:
|
76 |
msgid "Color value"
|
77 |
msgstr ""
|
78 |
|
@@ -80,7 +80,7 @@ msgstr ""
|
|
80 |
msgid "There was an error with your request; please try again later."
|
81 |
msgstr ""
|
82 |
|
83 |
-
#: includes/class-yit-plugin-panel-woocommerce.php:
|
84 |
msgid "The changes you have made will be lost if you leave this page."
|
85 |
msgstr ""
|
86 |
|
@@ -92,87 +92,103 @@ msgstr ""
|
|
92 |
msgid "Settings"
|
93 |
msgstr ""
|
94 |
|
95 |
-
#: includes/class-yit-plugin-panel.php:
|
96 |
-
#: includes/class-yit-plugin-panel.php:
|
97 |
msgid "How to install premium version"
|
98 |
msgstr ""
|
99 |
|
100 |
-
#: includes/class-yit-plugin-panel.php:
|
101 |
#: includes/class-yit-plugin-subpanel.php:133
|
102 |
msgid "Save Changes"
|
103 |
msgstr ""
|
104 |
|
105 |
-
#: includes/class-yit-plugin-panel.php:
|
106 |
#: includes/class-yit-plugin-subpanel.php:140
|
107 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
108 |
msgid "If you continue with this action, you will reset all options in this page."
|
109 |
msgstr ""
|
110 |
|
111 |
-
#: includes/class-yit-plugin-panel.php:
|
112 |
#: includes/class-yit-plugin-subpanel.php:140
|
113 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
114 |
msgid "Are you sure?"
|
115 |
msgstr ""
|
116 |
|
117 |
-
#: includes/class-yit-plugin-panel.php:
|
118 |
#: includes/class-yit-plugin-subpanel.php:143
|
119 |
msgid "Reset to default"
|
120 |
msgstr ""
|
121 |
|
122 |
-
#: includes/class-yit-plugin-panel.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
msgid "The element you have entered already exists. Please, enter another name."
|
124 |
msgstr ""
|
125 |
|
126 |
-
#: includes/class-yit-plugin-panel.php:
|
127 |
msgid "Settings saved"
|
128 |
msgstr ""
|
129 |
|
130 |
-
#: includes/class-yit-plugin-panel.php:
|
131 |
msgid "Settings reset"
|
132 |
msgstr ""
|
133 |
|
134 |
-
#: includes/class-yit-plugin-panel.php:
|
135 |
msgid "Element deleted correctly."
|
136 |
msgstr ""
|
137 |
|
138 |
-
#: includes/class-yit-plugin-panel.php:
|
139 |
-
#: includes/class-yit-plugin-panel.php:
|
140 |
msgid "Element updated correctly."
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: includes/class-yit-plugin-panel.php:
|
144 |
msgid "Database imported correctly."
|
145 |
msgstr ""
|
146 |
|
147 |
-
#: includes/class-yit-plugin-panel.php:
|
148 |
msgid "An error has occurred during import. Please try again."
|
149 |
msgstr ""
|
150 |
|
151 |
-
#: includes/class-yit-plugin-panel.php:
|
152 |
msgid "The added file is not valid."
|
153 |
msgstr ""
|
154 |
|
155 |
-
#: includes/class-yit-plugin-panel.php:
|
156 |
msgid "Sorry, import is disabled."
|
157 |
msgstr ""
|
158 |
|
159 |
-
#: includes/class-yit-plugin-panel.php:
|
160 |
msgid "Sorting successful."
|
161 |
msgstr ""
|
162 |
|
163 |
-
#: includes/class-yit-plugin-panel.php:
|
164 |
msgid "We need your support"
|
165 |
msgstr ""
|
166 |
|
167 |
-
#: includes/class-yit-plugin-panel.php:
|
168 |
msgid "to keep updating and improving the plugin. Please,"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: includes/class-yit-plugin-panel.php:
|
172 |
msgid "help us by leaving a good review"
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: includes/class-yit-plugin-panel.php:
|
176 |
msgid ":) Thanks!"
|
177 |
msgstr ""
|
178 |
|
@@ -524,6 +540,34 @@ msgstr ""
|
|
524 |
msgid "Reset"
|
525 |
msgstr ""
|
526 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
527 |
#: templates/panel/woocommerce/woocommerce-form.php:29
|
528 |
#: templates/panel/woocommerce/woocommerce-form.php:33
|
529 |
msgid "Save Options"
|
@@ -701,49 +745,49 @@ msgctxt "[gutenberg]: Category Name"
|
|
701 |
msgid "YITH"
|
702 |
msgstr ""
|
703 |
|
704 |
-
#: includes/class-yit-assets.php:
|
705 |
msgctxt "Button text"
|
706 |
msgid "Confirm"
|
707 |
msgstr ""
|
708 |
|
709 |
-
#: includes/class-yit-assets.php:
|
710 |
msgctxt "Button text"
|
711 |
msgid "Cancel"
|
712 |
msgstr ""
|
713 |
|
714 |
-
#: includes/class-yit-assets.php:
|
715 |
msgctxt "Trash confirmation action"
|
716 |
msgid "Yes, move to trash"
|
717 |
msgstr ""
|
718 |
|
719 |
-
#: includes/class-yit-assets.php:
|
720 |
#: yit-functions.php:2154
|
721 |
msgctxt "Delete confirmation action"
|
722 |
msgid "Yes, delete"
|
723 |
msgstr ""
|
724 |
|
725 |
-
#: includes/class-yit-plugin-panel.php:
|
726 |
#. translators: 1. Plugin name.
|
727 |
msgctxt "Help tab default title"
|
728 |
msgid "Thank you for purchasing %s!"
|
729 |
msgstr ""
|
730 |
|
731 |
-
#: includes/class-yit-plugin-panel.php:
|
732 |
msgctxt "Help tab default title"
|
733 |
msgid "Thank you for using %s!"
|
734 |
msgstr ""
|
735 |
|
736 |
-
#: includes/class-yit-plugin-panel.php:
|
737 |
msgctxt "Help tab default description"
|
738 |
msgid "We want to help you enjoy a wonderful experience with all of our products."
|
739 |
msgstr ""
|
740 |
|
741 |
-
#: includes/class-yit-plugin-panel.php:
|
742 |
msgctxt "Premium tab name"
|
743 |
msgid "Get premium"
|
744 |
msgstr ""
|
745 |
|
746 |
-
#: includes/class-yit-plugin-panel.php:
|
747 |
msgctxt "Help tab name"
|
748 |
msgid "Help"
|
749 |
msgstr ""
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: \n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
+
"POT-Creation-Date: 2022-08-10 12:46:35+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
24 |
"X-Textdomain-Support: yes\n"
|
25 |
"X-Generator: grunt-wp-i18n 1.0.3\n"
|
26 |
|
27 |
+
#: includes/class-yit-assets.php:148 yit-functions.php:2006
|
28 |
msgid "Confirm trash"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: includes/class-yit-assets.php:149
|
32 |
msgid "Are you sure you want to trash the selected items?"
|
33 |
msgstr ""
|
34 |
|
35 |
+
#: includes/class-yit-assets.php:151 includes/class-yit-assets.php:155
|
36 |
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
|
37 |
#: yit-functions.php:2008 yit-functions.php:2026
|
38 |
msgid "No"
|
39 |
msgstr ""
|
40 |
|
41 |
+
#: includes/class-yit-assets.php:152 yit-functions.php:2024
|
42 |
#: yit-functions.php:2152
|
43 |
msgid "Confirm delete"
|
44 |
msgstr ""
|
45 |
|
46 |
+
#: includes/class-yit-assets.php:153
|
47 |
msgid "Are you sure you want to delete the selected items?"
|
48 |
msgstr ""
|
49 |
|
50 |
+
#: includes/class-yit-assets.php:153 yit-functions.php:1940
|
51 |
#: yit-functions.php:2100
|
52 |
msgid "This action cannot be undone and you will not be able to recover this data."
|
53 |
msgstr ""
|
54 |
|
55 |
+
#: includes/class-yit-assets.php:174
|
56 |
msgid "Clear"
|
57 |
msgstr ""
|
58 |
|
59 |
+
#: includes/class-yit-assets.php:175
|
60 |
msgid "Clear color"
|
61 |
msgstr ""
|
62 |
|
63 |
+
#: includes/class-yit-assets.php:176
|
64 |
msgid "Default"
|
65 |
msgstr ""
|
66 |
|
67 |
+
#: includes/class-yit-assets.php:177
|
68 |
msgid "Select default color"
|
69 |
msgstr ""
|
70 |
|
71 |
+
#: includes/class-yit-assets.php:178
|
72 |
msgid "Select Color"
|
73 |
msgstr ""
|
74 |
|
75 |
+
#: includes/class-yit-assets.php:179
|
76 |
msgid "Color value"
|
77 |
msgstr ""
|
78 |
|
80 |
msgid "There was an error with your request; please try again later."
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: includes/class-yit-plugin-panel-woocommerce.php:437
|
84 |
msgid "The changes you have made will be lost if you leave this page."
|
85 |
msgstr ""
|
86 |
|
92 |
msgid "Settings"
|
93 |
msgstr ""
|
94 |
|
95 |
+
#: includes/class-yit-plugin-panel.php:456
|
96 |
+
#: includes/class-yit-plugin-panel.php:459
|
97 |
msgid "How to install premium version"
|
98 |
msgstr ""
|
99 |
|
100 |
+
#: includes/class-yit-plugin-panel.php:656
|
101 |
#: includes/class-yit-plugin-subpanel.php:133
|
102 |
msgid "Save Changes"
|
103 |
msgstr ""
|
104 |
|
105 |
+
#: includes/class-yit-plugin-panel.php:664
|
106 |
#: includes/class-yit-plugin-subpanel.php:140
|
107 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
108 |
msgid "If you continue with this action, you will reset all options in this page."
|
109 |
msgstr ""
|
110 |
|
111 |
+
#: includes/class-yit-plugin-panel.php:664
|
112 |
#: includes/class-yit-plugin-subpanel.php:140
|
113 |
#: templates/panel/woocommerce/woocommerce-form.php:15
|
114 |
msgid "Are you sure?"
|
115 |
msgstr ""
|
116 |
|
117 |
+
#: includes/class-yit-plugin-panel.php:668
|
118 |
#: includes/class-yit-plugin-subpanel.php:143
|
119 |
msgid "Reset to default"
|
120 |
msgstr ""
|
121 |
|
122 |
+
#: includes/class-yit-plugin-panel.php:1039
|
123 |
+
msgid "Read the <mark>plugin documentation</mark>"
|
124 |
+
msgstr ""
|
125 |
+
|
126 |
+
#: includes/class-yit-plugin-panel.php:1040
|
127 |
+
msgid "Learn what you can really do with this powerful tool"
|
128 |
+
msgstr ""
|
129 |
+
|
130 |
+
#: includes/class-yit-plugin-panel.php:1050
|
131 |
+
msgid "Watch our <mark>\"First Steps\" video</mark>"
|
132 |
+
msgstr ""
|
133 |
+
|
134 |
+
#: includes/class-yit-plugin-panel.php:1051
|
135 |
+
msgid "See how it works before you start using it"
|
136 |
+
msgstr ""
|
137 |
+
|
138 |
+
#: includes/class-yit-plugin-panel.php:1307
|
139 |
msgid "The element you have entered already exists. Please, enter another name."
|
140 |
msgstr ""
|
141 |
|
142 |
+
#: includes/class-yit-plugin-panel.php:1308
|
143 |
msgid "Settings saved"
|
144 |
msgstr ""
|
145 |
|
146 |
+
#: includes/class-yit-plugin-panel.php:1309
|
147 |
msgid "Settings reset"
|
148 |
msgstr ""
|
149 |
|
150 |
+
#: includes/class-yit-plugin-panel.php:1310
|
151 |
msgid "Element deleted correctly."
|
152 |
msgstr ""
|
153 |
|
154 |
+
#: includes/class-yit-plugin-panel.php:1311
|
155 |
+
#: includes/class-yit-plugin-panel.php:1312
|
156 |
msgid "Element updated correctly."
|
157 |
msgstr ""
|
158 |
|
159 |
+
#: includes/class-yit-plugin-panel.php:1313
|
160 |
msgid "Database imported correctly."
|
161 |
msgstr ""
|
162 |
|
163 |
+
#: includes/class-yit-plugin-panel.php:1314
|
164 |
msgid "An error has occurred during import. Please try again."
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: includes/class-yit-plugin-panel.php:1315
|
168 |
msgid "The added file is not valid."
|
169 |
msgstr ""
|
170 |
|
171 |
+
#: includes/class-yit-plugin-panel.php:1316
|
172 |
msgid "Sorry, import is disabled."
|
173 |
msgstr ""
|
174 |
|
175 |
+
#: includes/class-yit-plugin-panel.php:1317
|
176 |
msgid "Sorting successful."
|
177 |
msgstr ""
|
178 |
|
179 |
+
#: includes/class-yit-plugin-panel.php:1806
|
180 |
msgid "We need your support"
|
181 |
msgstr ""
|
182 |
|
183 |
+
#: includes/class-yit-plugin-panel.php:1807
|
184 |
msgid "to keep updating and improving the plugin. Please,"
|
185 |
msgstr ""
|
186 |
|
187 |
+
#: includes/class-yit-plugin-panel.php:1809
|
188 |
msgid "help us by leaving a good review"
|
189 |
msgstr ""
|
190 |
|
191 |
+
#: includes/class-yit-plugin-panel.php:1810
|
192 |
msgid ":) Thanks!"
|
193 |
msgstr ""
|
194 |
|
540 |
msgid "Reset"
|
541 |
msgstr ""
|
542 |
|
543 |
+
#: templates/panel/welcome-modals/update.php:34
|
544 |
+
#. translators: %s is the plugin version.
|
545 |
+
msgid "is successfully updated to version %s."
|
546 |
+
msgstr ""
|
547 |
+
|
548 |
+
#: templates/panel/welcome-modals/update.php:44
|
549 |
+
#. translators: %s is the plugin version.
|
550 |
+
msgid "What's new in version %s"
|
551 |
+
msgstr ""
|
552 |
+
|
553 |
+
#: templates/panel/welcome-modals/update.php:49
|
554 |
+
msgid "Check the changelog >"
|
555 |
+
msgstr ""
|
556 |
+
|
557 |
+
#: templates/panel/welcome-modals/update.php:64
|
558 |
+
#: templates/panel/welcome-modals/welcome.php:60
|
559 |
+
msgid "Got it, close this window"
|
560 |
+
msgstr ""
|
561 |
+
|
562 |
+
#: templates/panel/welcome-modals/welcome.php:30
|
563 |
+
msgid "Thank you for using our plugin"
|
564 |
+
msgstr ""
|
565 |
+
|
566 |
+
#: templates/panel/welcome-modals/welcome.php:45
|
567 |
+
#. translators: %s is the number of steps.
|
568 |
+
msgid "Start with these %s steps:"
|
569 |
+
msgstr ""
|
570 |
+
|
571 |
#: templates/panel/woocommerce/woocommerce-form.php:29
|
572 |
#: templates/panel/woocommerce/woocommerce-form.php:33
|
573 |
msgid "Save Options"
|
745 |
msgid "YITH"
|
746 |
msgstr ""
|
747 |
|
748 |
+
#: includes/class-yit-assets.php:136
|
749 |
msgctxt "Button text"
|
750 |
msgid "Confirm"
|
751 |
msgstr ""
|
752 |
|
753 |
+
#: includes/class-yit-assets.php:137
|
754 |
msgctxt "Button text"
|
755 |
msgid "Cancel"
|
756 |
msgstr ""
|
757 |
|
758 |
+
#: includes/class-yit-assets.php:150 yit-functions.php:2009
|
759 |
msgctxt "Trash confirmation action"
|
760 |
msgid "Yes, move to trash"
|
761 |
msgstr ""
|
762 |
|
763 |
+
#: includes/class-yit-assets.php:154 yit-functions.php:2027
|
764 |
#: yit-functions.php:2154
|
765 |
msgctxt "Delete confirmation action"
|
766 |
msgid "Yes, delete"
|
767 |
msgstr ""
|
768 |
|
769 |
+
#: includes/class-yit-plugin-panel.php:804
|
770 |
#. translators: 1. Plugin name.
|
771 |
msgctxt "Help tab default title"
|
772 |
msgid "Thank you for purchasing %s!"
|
773 |
msgstr ""
|
774 |
|
775 |
+
#: includes/class-yit-plugin-panel.php:804
|
776 |
msgctxt "Help tab default title"
|
777 |
msgid "Thank you for using %s!"
|
778 |
msgstr ""
|
779 |
|
780 |
+
#: includes/class-yit-plugin-panel.php:812
|
781 |
msgctxt "Help tab default description"
|
782 |
msgid "We want to help you enjoy a wonderful experience with all of our products."
|
783 |
msgstr ""
|
784 |
|
785 |
+
#: includes/class-yit-plugin-panel.php:863
|
786 |
msgctxt "Premium tab name"
|
787 |
msgid "Get premium"
|
788 |
msgstr ""
|
789 |
|
790 |
+
#: includes/class-yit-plugin-panel.php:875
|
791 |
msgctxt "Help tab name"
|
792 |
msgid "Help"
|
793 |
msgstr ""
|
plugin-fw/phpcs.xml
CHANGED
@@ -52,4 +52,10 @@
|
|
52 |
<property name="customEscapingFunctions" type="array" value="wc_help_tip,wc_sanitize_tooltip,wc_selected,wc_kses_notice,wc_esc_json,wc_query_string_form_fields,wc_make_phone_clickable,yith_plugin_fw_html_data_to_string,yith_field_deps_data,yith_panel_field_deps_data,yith_plugin_fw_html_attributes_to_string"/>
|
53 |
</properties>
|
54 |
</rule>
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
</ruleset>
|
52 |
<property name="customEscapingFunctions" type="array" value="wc_help_tip,wc_sanitize_tooltip,wc_selected,wc_kses_notice,wc_esc_json,wc_query_string_form_fields,wc_make_phone_clickable,yith_plugin_fw_html_data_to_string,yith_field_deps_data,yith_panel_field_deps_data,yith_plugin_fw_html_attributes_to_string"/>
|
53 |
</properties>
|
54 |
</rule>
|
55 |
+
|
56 |
+
<rule ref="WordPress.Arrays.MultipleStatementAlignment">
|
57 |
+
<properties>
|
58 |
+
<property name="maxColumn" value="200"/>
|
59 |
+
</properties>
|
60 |
+
</rule>
|
61 |
</ruleset>
|
plugin-fw/templates/components/list-items.php
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Template for displaying the list-items component
|
4 |
+
*
|
5 |
+
* @var array $component The component.
|
6 |
+
* @package YITH\PluginFramework\Templates\Components
|
7 |
+
*/
|
8 |
+
|
9 |
+
defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
|
10 |
+
|
11 |
+
list ( $component_id, $class, $the_title, $attributes, $data, $items, $variant ) = yith_plugin_fw_extract( $component, 'id', 'class', 'title', 'attributes', 'data', 'items', 'variant' );
|
12 |
+
|
13 |
+
$variant = sanitize_key( $variant ?? 'list' );
|
14 |
+
$classes = array(
|
15 |
+
'yith-plugin-fw__list-items',
|
16 |
+
"yith-plugin-fw__list-items--{$variant}",
|
17 |
+
$class,
|
18 |
+
);
|
19 |
+
$classes = implode( ' ', $classes );
|
20 |
+
$current_locale = substr( get_user_locale(), 0, 2 );
|
21 |
+
$loop = 1;
|
22 |
+
?>
|
23 |
+
<ul
|
24 |
+
id="<?php echo esc_attr( $component_id ); ?>"
|
25 |
+
class="<?php echo esc_attr( $classes ); ?>"
|
26 |
+
<?php echo yith_plugin_fw_html_attributes_to_string( $attributes ); ?>
|
27 |
+
<?php echo yith_plugin_fw_html_data_to_string( $data ); ?>
|
28 |
+
>
|
29 |
+
|
30 |
+
<?php foreach ( $items as $item ) : ?>
|
31 |
+
<?php
|
32 |
+
$item_url = $item['url'] ?? '';
|
33 |
+
$item_title = $item['title'] ?? '';
|
34 |
+
$item_description = $item['description'] ?? '';
|
35 |
+
$item_cta = $item['cta'] ?? '';
|
36 |
+
$item_classes = array( 'yith-plugin-fw__list-item' );
|
37 |
+
|
38 |
+
if ( is_array( $item_url ) ) {
|
39 |
+
$item_url = $item_url[ $current_locale ] ?? $item_url['en'] ?? current( $item_url );
|
40 |
+
}
|
41 |
+
|
42 |
+
if ( ! $item_url ) {
|
43 |
+
$item_classes[] = 'yith-plugin-fw__list-item--no-link';
|
44 |
+
}
|
45 |
+
|
46 |
+
$item_classes = implode( ' ', $item_classes );
|
47 |
+
?>
|
48 |
+
<li class="<?php echo esc_attr( $item_classes ); ?>">
|
49 |
+
<a
|
50 |
+
class="yith-plugin-fw__list-item__wrap"
|
51 |
+
target="_blank"
|
52 |
+
<?php if ( $item_url ) : ?>
|
53 |
+
href="<?php echo esc_url( $item_url ); ?>"
|
54 |
+
<?php endif; ?>
|
55 |
+
>
|
56 |
+
<?php if ( 'steps' === $variant ) : ?>
|
57 |
+
<div class="yith-plugin-fw__list-item__step">
|
58 |
+
<?php echo esc_html( $loop ); ?>
|
59 |
+
</div>
|
60 |
+
<?php endif; ?>
|
61 |
+
<div class="yith-plugin-fw__list-item__content">
|
62 |
+
<div class="yith-plugin-fw__list-item__title">
|
63 |
+
<?php echo wp_kses_post( $item_title ); ?>
|
64 |
+
</div>
|
65 |
+
<div class="yith-plugin-fw__list-item__description">
|
66 |
+
<?php echo wp_kses_post( $item_description ); ?>
|
67 |
+
</div>
|
68 |
+
<?php if ( $item_cta ) : ?>
|
69 |
+
<div class="yith-plugin-fw__list-item__cta">
|
70 |
+
<?php echo esc_html( $item_cta ); ?>
|
71 |
+
</div>
|
72 |
+
<?php endif; ?>
|
73 |
+
</div>
|
74 |
+
|
75 |
+
<?php if ( $item_url && ! $item_cta ) : ?>
|
76 |
+
<i class="yith-plugin-fw__list-item__arrow yith-icon yith-icon-arrow-right-alt"></i>
|
77 |
+
<?php endif; ?>
|
78 |
+
</a>
|
79 |
+
</li>
|
80 |
+
|
81 |
+
<?php $loop ++; ?>
|
82 |
+
<?php endforeach; ?>
|
83 |
+
</ul>
|
plugin-fw/templates/panel/welcome-modals/update.php
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* "Update" modal view.
|
4 |
+
*
|
5 |
+
* @var array $plugin The plugin info.
|
6 |
+
* @var array $modal The modal info.
|
7 |
+
* @var string $close_url The URL for closing the modal.
|
8 |
+
*
|
9 |
+
* @package YITH\PluginFramework
|
10 |
+
*/
|
11 |
+
|
12 |
+
defined( 'ABSPATH' ) || exit;
|
13 |
+
|
14 |
+
$classes = array(
|
15 |
+
'yith-plugin-fw-welcome',
|
16 |
+
'yith-plugin-fw-welcome--update',
|
17 |
+
);
|
18 |
+
$classes = implode( ' ', $classes );
|
19 |
+
|
20 |
+
$description = $modal['description'] ?? '';
|
21 |
+
$items = $modal['items'] ?? array();
|
22 |
+
|
23 |
+
?>
|
24 |
+
<div class="<?php echo esc_attr( $classes ); ?>">
|
25 |
+
<div class="yith-plugin-fw-welcome__head">
|
26 |
+
<?php if ( $plugin['icon'] ) : ?>
|
27 |
+
<img class="yith-plugin-fw-welcome__icon" src="<?php echo esc_url( $plugin['icon'] ); ?>"/>
|
28 |
+
<?php endif; ?>
|
29 |
+
<div class="yith-plugin-fw-welcome__title">
|
30 |
+
<div class="yith-plugin-fw-welcome__title__plugin-name"><?php echo esc_html( $plugin['name'] ); ?></div>
|
31 |
+
<div>
|
32 |
+
<?php
|
33 |
+
// translators: %s is the plugin version.
|
34 |
+
echo esc_html( sprintf( __( 'is successfully updated to version %s.', 'yith-plugin-fw' ), $plugin['version'] ) );
|
35 |
+
?>
|
36 |
+
</div>
|
37 |
+
</div>
|
38 |
+
</div>
|
39 |
+
|
40 |
+
<div class="yith-plugin-fw-welcome__list-head">
|
41 |
+
<div class="yith-plugin-fw-welcome__list-head__title">
|
42 |
+
<?php
|
43 |
+
// translators: %s is the plugin version.
|
44 |
+
echo esc_html( sprintf( __( 'What\'s new in version %s', 'yith-plugin-fw' ), $modal['since'] ?? $plugin['version'] ) );
|
45 |
+
?>
|
46 |
+
</div>
|
47 |
+
<?php if ( isset( $modal['changelog_url'] ) ) : ?>
|
48 |
+
<a class="yith-plugin-fw-welcome__list-head__changelog" target="_blank" href="<?php echo esc_url( $modal['changelog_url'] ); ?>">
|
49 |
+
<?php esc_html_e( 'Check the changelog >', 'yith-plugin-fw' ); ?>
|
50 |
+
</a>
|
51 |
+
<?php endif; ?>
|
52 |
+
</div>
|
53 |
+
<?php
|
54 |
+
yith_plugin_fw_get_component(
|
55 |
+
array(
|
56 |
+
'type' => 'list-items',
|
57 |
+
'variant' => 'list',
|
58 |
+
'items' => $items,
|
59 |
+
)
|
60 |
+
);
|
61 |
+
?>
|
62 |
+
|
63 |
+
<div class="yith-plugin-fw-welcome__footer">
|
64 |
+
<a class="yith-plugin-fw-welcome__close" href="<?php echo esc_url( $close_url ); ?>"><?php esc_html_e( 'Got it, close this window', 'yith-plugin-fw' ); ?></a>
|
65 |
+
</div>
|
66 |
+
</div>
|
plugin-fw/templates/panel/welcome-modals/welcome.php
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* "Welcome" modal view.
|
4 |
+
*
|
5 |
+
* @var array $plugin The plugin info.
|
6 |
+
* @var array $modal The modal info.
|
7 |
+
* @var string $close_url The URL for closing the modal.
|
8 |
+
*
|
9 |
+
* @package YITH\PluginFramework
|
10 |
+
*/
|
11 |
+
|
12 |
+
defined( 'ABSPATH' ) || exit;
|
13 |
+
|
14 |
+
$classes = array(
|
15 |
+
'yith-plugin-fw-welcome',
|
16 |
+
'yith-plugin-fw-welcome--welcome',
|
17 |
+
);
|
18 |
+
$classes = implode( ' ', $classes );
|
19 |
+
|
20 |
+
$description = $modal['description'] ?? '';
|
21 |
+
$items = $modal['items'] ?? array();
|
22 |
+
?>
|
23 |
+
<div class="<?php echo esc_attr( $classes ); ?>">
|
24 |
+
<div class="yith-plugin-fw-welcome__head">
|
25 |
+
<?php if ( $plugin['icon'] ) : ?>
|
26 |
+
<img class="yith-plugin-fw-welcome__icon" src="<?php echo esc_url( $plugin['icon'] ); ?>"/>
|
27 |
+
<?php endif; ?>
|
28 |
+
|
29 |
+
<div class="yith-plugin-fw-welcome__title">
|
30 |
+
<div><?php esc_html_e( 'Thank you for using our plugin', 'yith-plugin-fw' ); ?></div>
|
31 |
+
<div class="yith-plugin-fw-welcome__title__plugin-name"><?php echo esc_html( $plugin['name'] ); ?></div>
|
32 |
+
</div>
|
33 |
+
|
34 |
+
<?php if ( $description ) : ?>
|
35 |
+
<div class="yith-plugin-fw-welcome__description">
|
36 |
+
<?php echo wp_kses_post( $description ); ?>
|
37 |
+
</div>
|
38 |
+
<?php endif; ?>
|
39 |
+
</div>
|
40 |
+
|
41 |
+
<div class="yith-plugin-fw-welcome__list-head">
|
42 |
+
<div class="yith-plugin-fw-welcome__list-head__title">
|
43 |
+
<?php
|
44 |
+
// translators: %s is the number of steps.
|
45 |
+
echo esc_html( sprintf( __( 'Start with these %s steps:', 'yith-plugin-fw' ), count( $items ) ) );
|
46 |
+
?>
|
47 |
+
</div>
|
48 |
+
</div>
|
49 |
+
<?php
|
50 |
+
yith_plugin_fw_get_component(
|
51 |
+
array(
|
52 |
+
'type' => 'list-items',
|
53 |
+
'variant' => 'steps',
|
54 |
+
'items' => $items,
|
55 |
+
)
|
56 |
+
);
|
57 |
+
?>
|
58 |
+
|
59 |
+
<div class="yith-plugin-fw-welcome__footer">
|
60 |
+
<a class="yith-plugin-fw-welcome__close" href="<?php echo esc_url( $close_url ); ?>"><?php esc_html_e( 'Got it, close this window', 'yith-plugin-fw' ); ?></a>
|
61 |
+
</div>
|
62 |
+
</div>
|
readme.txt
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
|
3 |
Contributors: yithemes
|
4 |
Tags: woocommerce ajax product filter download, woocommerce, widget, ajax, ajax filtered nav, ajax navigation, ajax filtered navigation, woocommerce layered navigation, woocommerce layered nav, product filter, product filters, ajax product filter, woocommerce ajax product filter, woocommerce filters, sidebar filter, sidebar ajax filter, ajax price filter, price filter, product sorting, woocommerce filter, taxonomy filter, attribute filter, attributes filter, woocommerce product sort, ajax sort, woocommerce ajax product filter, advanced product filters, ajax product filters, filters, woocommerce ajax product filters, woocommerce product filters, woocommerce product filters, category filter, attribute filters, woocommerce products filter, woocommerce price filter, yit, yith, yithemes
|
5 |
-
Requires at least: 5.
|
6 |
Tested up to: 6.0
|
7 |
-
Stable tag: 4.
|
8 |
License: GPLv3 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -152,6 +152,12 @@ If none of the previous listed actions helps you solve the problem, then, submit
|
|
152 |
|
153 |
== Changelog ==
|
154 |
|
|
|
|
|
|
|
|
|
|
|
|
|
155 |
= 4.13.0 - Released on 08 August 2022 =
|
156 |
|
157 |
* New: support for WooCommerce 6.8
|
2 |
|
3 |
Contributors: yithemes
|
4 |
Tags: woocommerce ajax product filter download, woocommerce, widget, ajax, ajax filtered nav, ajax navigation, ajax filtered navigation, woocommerce layered navigation, woocommerce layered nav, product filter, product filters, ajax product filter, woocommerce ajax product filter, woocommerce filters, sidebar filter, sidebar ajax filter, ajax price filter, price filter, product sorting, woocommerce filter, taxonomy filter, attribute filter, attributes filter, woocommerce product sort, ajax sort, woocommerce ajax product filter, advanced product filters, ajax product filters, filters, woocommerce ajax product filters, woocommerce product filters, woocommerce product filters, category filter, attribute filters, woocommerce products filter, woocommerce price filter, yit, yith, yithemes
|
5 |
+
Requires at least: 5.8
|
6 |
Tested up to: 6.0
|
7 |
+
Stable tag: 4.14.0
|
8 |
License: GPLv3 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
152 |
|
153 |
== Changelog ==
|
154 |
|
155 |
+
= 4.14.0 - Released on 20 September 2022 =
|
156 |
+
|
157 |
+
* New: support for WooCommerce 6.9
|
158 |
+
* Tweak: added reload_on_back localized parameter
|
159 |
+
* Update: YITH plugin framework
|
160 |
+
|
161 |
= 4.13.0 - Released on 08 August 2022 =
|
162 |
|
163 |
* New: support for WooCommerce 6.8
|