YITH WooCommerce Ajax Product Filter - Version 4.14.0

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 Icon 128x128 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

Files changed (58) hide show
  1. assets/css/admin.css +2 -3
  2. assets/css/admin.css.map +1 -1
  3. assets/css/shortcodes.css +7 -6
  4. assets/css/shortcodes.css.map +1 -1
  5. assets/js/shortcodes/modules/yith-wcan-filter.js +4 -0
  6. assets/js/yith-wcan-admin-filters.js +33 -10
  7. assets/js/yith-wcan-admin-filters.min.js +1 -1
  8. assets/js/yith-wcan-shortcodes.js +4 -0
  9. assets/js/yith-wcan-shortcodes.js.map +1 -1
  10. assets/js/yith-wcan-shortcodes.min.js +1 -1
  11. assets/scss/shortcodes.scss +1 -0
  12. includes/class-yith-wcan-frontend.php +1 -0
  13. init.php +4 -4
  14. languages/yith-woocommerce-ajax-navigation-de_DE.mo +0 -0
  15. languages/yith-woocommerce-ajax-navigation-de_DE.po +10 -10
  16. languages/yith-woocommerce-ajax-navigation-de_DE_formal.mo +0 -0
  17. languages/yith-woocommerce-ajax-navigation-de_DE_formal.po +10 -10
  18. languages/yith-woocommerce-ajax-navigation-el.mo +0 -0
  19. languages/yith-woocommerce-ajax-navigation-el.po +10 -10
  20. languages/yith-woocommerce-ajax-navigation-es_ES.mo +0 -0
  21. languages/yith-woocommerce-ajax-navigation-es_ES.po +10 -10
  22. languages/yith-woocommerce-ajax-navigation-fr_FR.mo +0 -0
  23. languages/yith-woocommerce-ajax-navigation-fr_FR.po +10 -10
  24. languages/yith-woocommerce-ajax-navigation-it_IT.mo +0 -0
  25. languages/yith-woocommerce-ajax-navigation-it_IT.po +10 -10
  26. languages/yith-woocommerce-ajax-navigation-nl_NL.mo +0 -0
  27. languages/yith-woocommerce-ajax-navigation-nl_NL.po +10 -10
  28. languages/yith-woocommerce-ajax-navigation-tr_TR.mo +0 -0
  29. languages/yith-woocommerce-ajax-navigation-tr_TR.po +10 -10
  30. languages/yith-woocommerce-ajax-navigation.pot +10 -10
  31. plugin-fw/assets/css/welcome-modal.css +72 -0
  32. plugin-fw/assets/css/yith-bh-onboarding.css +1 -0
  33. plugin-fw/assets/css/yith-plugin-ui.css +73 -0
  34. plugin-fw/assets/js/welcome-modal.js +27 -0
  35. plugin-fw/assets/js/welcome-modal.min.js +1 -0
  36. plugin-fw/includes/class-yit-assets.php +2 -0
  37. plugin-fw/includes/class-yit-plugin-panel-woocommerce.php +1 -0
  38. plugin-fw/includes/class-yit-plugin-panel.php +271 -38
  39. plugin-fw/includes/class-yith-post-type-admin.php +1 -1
  40. plugin-fw/init.php +2 -2
  41. plugin-fw/languages/yith-plugin-fw-el.mo +0 -0
  42. plugin-fw/languages/yith-plugin-fw-el.po +88 -44
  43. plugin-fw/languages/yith-plugin-fw-es_ES.mo +0 -0
  44. plugin-fw/languages/yith-plugin-fw-es_ES.po +99 -59
  45. plugin-fw/languages/yith-plugin-fw-it_IT.mo +0 -0
  46. plugin-fw/languages/yith-plugin-fw-it_IT.po +99 -59
  47. plugin-fw/languages/yith-plugin-fw-nl_NL.mo +0 -0
  48. plugin-fw/languages/yith-plugin-fw-nl_NL.po +93 -54
  49. plugin-fw/languages/yith-plugin-fw-ru_RU.mo +0 -0
  50. plugin-fw/languages/yith-plugin-fw-ru_RU.po +93 -54
  51. plugin-fw/languages/yith-plugin-fw-zh_CN.mo +0 -0
  52. plugin-fw/languages/yith-plugin-fw-zh_CN.po +94 -56
  53. plugin-fw/languages/yith-plugin-fw.pot +88 -44
  54. plugin-fw/phpcs.xml +6 -0
  55. plugin-fw/templates/components/list-items.php +83 -0
  56. plugin-fw/templates/panel/welcome-modals/update.php +66 -0
  57. plugin-fw/templates/panel/welcome-modals/welcome.php +62 -0
  58. 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":";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"}
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( --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,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( --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,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( 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));
1037
- 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));
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,eA3lBY;;AA8lBb;EACC,kBAnmBW;;AAsmBZ;EACC;EACA,kBAxmBW;EAymBX;EACA;EACA;EACA;;AAGD;AAAA;EAEC;EACA;;AAGD;AAAA;AAAA;EA/gBF,kBAtGc;EAuGd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA4gBG;;AA1gBH;AAAA;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;AAAA;AAAA;EACC;EACA;;AA2fE;AAAA;AAAA;EACC;EACA;EACA;EACA;EACA;;AAMH;EACC;EACA,eAroBa;EAsoBb;EArnBF;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EAeA;;AAXA;EAOA;;AAgmBE;EACC;EACA;EACA,eA7oBY;EA8oBZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;EACA;;AAEA;EACC,cApqBQ;EAqqBR;EACA,eAtqBQ;;AA0qBV;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACC;EACA;EACA;;AAEA;EACC;;AAEA;EACC;EACA;;AA3oBN;EACC;EACA;;AAGD;EACC,kBA5Da;EA6Db,eAzDc;;AAosBZ;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC,OA/sBS;;AAotBZ;EACC;;AAEA;EA1sBH;EACA;EACA;EACA;;AA4sBE;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,eAnwBY;EAowBZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA,kBAvxBW;EAwxBX,cAxxBW;EAyxBX;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,kBAh0BW;EAi0BX;;AAIF;EACC,OAh0BU;;AAq0BZ;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAEA;EACC,YAv1BU;EAw1BV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAIF;EACC;EACA;EACA;EACA;;AA7zBF;EACC;EACA;;AAGD;EACC,kBA5Da;EA6Db,eAzDc;;AAm3Bb;EACC;EACA;EACA;;AAIF;EACC;;AAGD;EACC;EACA,eAh4Ba;EAi4Bb;EACA;;AAEA;EACC;;AAEA;EACC;;AAIF;EACC;;AAIF;EACC;EACA;EACA;;AAGD;EACC,OA35BY;EA45BZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC,OA36BW;;AA+6Bb;EACC,kBAh7BY;EAi7BZ,cAj7BY;EAk7BZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA,eAz8BY;EA08BZ;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EACA;;AAGD;EAEC;EACA;;AAGD;EACC;EACA;EACA,eAp+BW;EAq+BX;EACA;EACA;EACA;EACA,SAn+BK;;AAq+BL;EACC,kBAx+BY;EAy+BZ;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EAEA;EACA;;AAOJ;EACC;EACA;EACA;EACA;;AAp9BH;EACC;EACA;;AAGD;EACC,kBA5Da;EA6Db,eAzDc;;AA2gCb;EACC;;AAKA;EACC;;AAEA;EACC;;AAKD;EACC;;AAMJ;EACC;;;AAKH;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SA/iCS;;AAijCT;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;EAvhCD;EACA;EACA,OAvFc;EAwFd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA8gCE;;AAEA;EAhjCF,kBAlEc;EAmEd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAoiCE;EAxmCF;EACA;EACA;EACA;EAumCG;;AAKH;EACC;;AAGD;EACC,OA5nCW;;AA+nCZ;EA/iCA;EACA;EACA,OAvFc;EAwFd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAsiCC,kBAxoCa;EAyoCb;;AAEA;EACC;EACA;;;AAKH;AAEA;EACC;EACA,eAlpCe;EAmpCf;EACA,OAvpCc;EAwpCd;EACA,eA1pCc;;AA4pCd;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC,YAzqCa;EA0qCb,cA1qCa;EA2qCb;;AAEA;EACC","file":"shortcodes.css"}
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("&amp;","&"),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("&amp;","&").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("&amp;","&"),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("&amp;","&").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":";;;;;AAAa;AAEb;;AAEA,IAAMA,CAAC,GAAGC,MAAV,C,CAAkB;;AAClB,IAAMC,KAAK,GAAGF,CAAC,CAAE,MAAF,CAAf;;;ACLa;AAEb;;;;;;;;;;;;AAEA;;IAEqBG,gB;AACpB;AAGA;AAGA;AAGA;AAGA;AAGA;AACA,8BAAc;AAAA;;AAAA,iCAfR,IAeQ;;AAAA,uCAZF,KAYE;;AAAA,4CATGC,QAAQ,CAACC,MASZ;;AAAA,yCANA,KAMA;;AAAA,sCAHH,KAGG;;AACb,SAAKC,YAAL;AACA,SAAKC,WAAL,GAAmB,IAAnB;AACA,G,CAED;;;;;WACA,wBAAe;AACd,WAAKC,gBAAL,CAAuBC,MAAM,CAACL,QAA9B,EAAwCM,QAAQ,CAACC,KAAjD,EAAwD,IAAxD,EAA8D,IAA9D;AAEAX,OAAC,CAAES,MAAF,CAAD,CAAYG,EAAZ,CAAgB,UAAhB,EAA4B,YAAY;AAAA;;AACvC,YAAK,2BAAEH,MAAM,CAACI,OAAP,CAAeC,KAAjB,kDAAE,sBAAsBC,SAAxB,CAAL,EAAyC;AACxC;AACA;;AAEDN,cAAM,CAACL,QAAP,CAAgBY,MAAhB,CAAwB,IAAxB;AACA,OAND;AAOA,K,CAED;;;;WACA,kBAAUC,OAAV,EAAmBC,MAAnB,EAA2BC,MAA3B,EAAoC;AAAA;;AACnC,UAAIC,SAAJ;AAAA,UACCC,OAAO,GAAGH,MAAM,GAAGlB,CAAC,CAAEkB,MAAF,CAAJ,GAAiBlB,CAAC,CAAE,MAAF,CADnC;AAAA,UAECsB,aAFD,CADmC,CAKnC;;AACAA,mBAAa,GAAGtB,CAAC,CAAEU,QAAF,CAAD,CAAca,cAAd,CACf,8BADe,EAEf,CAAEN,OAAF,CAFe,CAAhB;;AAKA,UAAK,CAAC,CAAEK,aAAR,EAAwB;AACvBL,eAAO,GAAGK,aAAV;AACA,OAbkC,CAenC;;;AACAD,aAAO,IAAI,KAAKG,KAAL,CAAYH,OAAZ,CAAX,CAhBmC,CAkBnC;;AACAD,eAAS,GAAG,KAAKK,QAAL,CAAeR,OAAf,CAAZ,CAnBmC,CAqBnC;;AACA,UAAK,CAAES,oBAAoB,CAACC,YAA5B,EAA2C;AAC1C,aAAKnB,gBAAL,CAAuBY,SAAvB,EAAkCV,QAAQ,CAACC,KAA3C,EAAkDM,OAAlD;AAEAR,cAAM,CAACL,QAAP,GAAkBgB,SAAlB;AACA;AACA,OA3BkC,CA6BnC;;;AACA,WAAKQ,SAAL,GAAiB,IAAjB;AAEA,aAAO,KAAKC,OAAL,CAAcT,SAAd,EAA0BU,IAA1B,CAAgC,UAAEC,QAAF,EAAgB;AACtDX,iBAAS,GAAG,KAAI,CAACY,oBAAL,CAA2BD,QAA3B,EAAqCX,SAArC,CAAZ;;AAEA,aAAI,CAACa,aAAL,CAAoBF,QAApB,EAA8Bd,OAA9B;;AAEA,aAAI,CAACiB,gBAAL,CAAuBhB,MAAvB,EAA+BC,MAA/B,EAAuCY,QAAvC;;AACA,aAAI,CAACvB,gBAAL,CAAuBY,SAAvB,EAAkCW,QAAQ,CAACI,SAA3C,EAAsDlB,OAAtD;;AACA,aAAI,CAACmB,cAAL,GAAsBhC,QAAQ,CAACC,MAA/B;AAEAgB,eAAO,IAAI,KAAI,CAACgB,OAAL,CAAchB,OAAd,CAAX;;AAEA,aAAI,CAACiB,YAAL,CAAmBP,QAAnB,EAA6Bd,OAA7B;;AAEA,aAAI,CAACW,SAAL,GAAiB,KAAjB;AACA,OAdM,CAAP;AAeA,K,CAED;;;;WACA,uBAAeG,QAAf,EAAyBd,OAAzB,EAAmC;AAClCjB,OAAC,CAAEU,QAAF,CAAD,CAAc6B,OAAd,CAAuB,wBAAvB,EAAiD,CAChDR,QADgD,EAEhDd,OAFgD,CAAjD;AAIA,K,CAED;;;;WACA,sBAAcc,QAAd,EAAwBd,OAAxB,EAAkC;AACjCjB,OAAC,CAAE,uBAAF,CAAD,CAA6BY,EAA7B,CACC,QADD,EAEC,gBAFD,EAGC,YAAY;AACXZ,SAAC,CAAE,IAAF,CAAD,CAAUwC,OAAV,CAAmB,MAAnB,EAA4BC,MAA5B;AACA,OALF;AAQA,WAAKC,QAAL,GAAgBzB,OAAO,IAAI,CAAC,CAAE0B,MAAM,CAACC,IAAP,CAAa3B,OAAb,EAAuB4B,MAArD;AACA,WAAKH,QAAL,GACGxC,cAAA,CAAgB,UAAhB,CADH,GAEGA,iBAAA,CAAmB,UAAnB,CAFH;AAIAF,OAAC,CAAES,MAAF,CAAD,CAAY8B,OAAZ,CAAqB,QAArB;AAEAvC,OAAC,CAAEU,QAAF,CAAD,CACE6B,OADF,CACW,yBADX,EACsC,CAAER,QAAF,EAAYd,OAAZ,CADtC,EAEEsB,OAFF,CAEW,4BAFX;AAGA,K,CAED;;;;WACA,kBAAUtB,OAAV,EAAoB;AAAA;;AACnB,UAAI6B,UAAU,GAAGpB,oBAAoB,CAACqB,WAAtC;AAAA,UACCC,MAAM,GAAG,EADV;AAAA,UAEC5C,QAAQ,GAAGK,MAAM,CAACL,QAFnB;AAAA,UAGC6C,GAAG,GAAG,CAAC,CAAEvB,oBAAoB,CAACwB,QAAxB,GACHxB,oBAAoB,CAACwB,QADlB,GAEH,CAAA9C,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAE+C,MAAV,KAAmB/C,QAAnB,aAAmBA,QAAnB,uBAAmBA,QAAQ,CAAEgD,QAA7B,CALJ;AAAA,UAMC/C,MAAM,GAAG,EANV;AAAA,UAOCgD,IAAI,GAAG,IAPR;AASA,UAAMC,WAAW,GAChB,QAAOrC,OAAP,MAAmB,QAAnB,IAA+B0B,MAAM,CAACC,IAAP,CAAa3B,OAAb,EAAuB4B,MADvD,CAVmB,CAanB;;AACA,UAAK,CAAC,CAAEnB,oBAAoB,CAAC6B,aAA7B,EAA6C;AAC5CN,WAAG,GAAGA,GAAG,CAACO,OAAJ,CACL,IAAIC,MAAJ,CACC,MAAM/B,oBAAoB,CAAC6B,aAA3B,GAA2C,SAD5C,CADK,EAIL,EAJK,CAAN;AAMA;;AAED,UAAKD,WAAL,EAAmB;AAClBN,cAAM,CAAEF,UAAF,CAAN,GAAuB,CAAvB;AACA;;AAED,UAAK,CAAC,CAAE,KAAKV,cAAb,EAA8B;AAC7B,YAAMsB,YAAY,GAAG,KAAKtB,cAAL,CACnBoB,OADmB,CACV,GADU,EACL,EADK,EAEnBG,KAFmB,CAEZ,GAFY,EAGnBC,MAHmB,CAGX,UAAEC,CAAF,EAAKC,CAAL,EAAY;AACpB,cAAMC,KAAK,GAAGD,CAAC,CAACH,KAAF,CAAS,GAAT,CAAd;;AAEA,cAAKI,KAAK,CAAClB,MAAN,KAAiB,CAAtB,EAA0B;AACzB,gBAAK,MAAI,CAACmB,aAAL,CAAoBD,KAAK,CAAE,CAAF,CAAzB,CAAL,EAAwC;AACvC,qBAAOF,CAAP;AACA;;AAEDA,aAAC,CAAEE,KAAK,CAAE,CAAF,CAAP,CAAD,GAAkBA,KAAK,CAAE,CAAF,CAAvB;AACA;;AAED,iBAAOF,CAAP;AACA,SAfmB,EAejB,EAfiB,CAArB;AAiBAb,cAAM,GAAGhD,QAAA,CAAUgD,MAAV,EAAkBU,YAAlB,CAAT;AACA;;AAED,UAAKJ,WAAL,EAAmB;AAClBN,cAAM,GAAGhD,QAAA,CAAUgD,MAAV,EAAkB/B,OAAlB,CAAT;AACA;;AAEDZ,YAAM,GAAGsC,MAAM,CAACC,IAAP,CAAaI,MAAb,EACPY,MADO,CACC,UAAWC,CAAX,EAAcI,CAAd,EAAkB;AAC1B,YAAMH,CAAC,GAAGd,MAAM,CAAEiB,CAAF,CAAhB;;AAEA,YAAK,CAAEH,CAAF,IAAO,CAAEG,CAAd,EAAkB;AACjB,iBAAOJ,CAAP;AACA;;AAEDA,SAAC,IAAIR,IAAI,CAACa,WAAL,CAAkBD,CAAlB,IAAwB,GAAxB,GAA8BZ,IAAI,CAACa,WAAL,CAAkBJ,CAAlB,CAA9B,GAAsD,GAA3D;AAEA,eAAOD,CAAP;AACA,OAXO,EAWL,GAXK,EAYPL,OAZO,CAYE,KAZF,EAYS,EAZT,EAaPA,OAbO,CAaE,MAbF,EAaU,GAbV,EAcPA,OAdO,CAcE,MAdF,EAcU,GAdV,CAAT;;AAgBA,UAAKnD,MAAM,CAACwC,MAAP,GAAgB,CAArB,EAAyB;AACxBI,WAAG,IAAI5C,MAAP;AACA;;AAED,aAAO4C,GAAP;AACA,K,CAED;;;;WACA,8BAAsBlB,QAAtB,EAAkD;AAAA,UAAlBoC,UAAkB,uEAAL,EAAK;AACjD,UAAIlB,GAAG,GAAGkB,UAAV;AAAA,UACCC,OADD;;AAGA,UAAK,CAAC,CAAD,KAAOrC,QAAQ,CAACsC,OAAT,CAAkB,uBAAlB,CAAZ,EAA0D;AACzD,eAAOpB,GAAP;AACA;;AAEDmB,aAAO,GAAGrC,QAAQ,CAACuC,KAAT,CACT,uDADS,CAAV;AAGArB,SAAG,GAAGmB,OAAO,IAAI,KAAKA,OAAhB,GAA0BA,OAAO,CAAE,CAAF,CAAjC,GAAyCnB,GAA/C;AAEA,aAAOA,GAAP;AACA,K,CAED;;;;WACA,0BAAkBA,GAAlB,EAAuBtC,KAAvB,EAA8BM,OAA9B,EAAuCsD,OAAvC,EAAiD;AAChD,UACC,CAAE7C,oBAAoB,CAAC8C,kBAAvB,IACAC,SAAS,CAACC,SAAV,CAAoBJ,KAApB,CAA2B,OAA3B,CAFD,EAGE;AACD;AACA;;AAED,UAAIK,MAAM,GAAG,WAAb;;AAEA,UAAK,CAAC,CAAEJ,OAAR,EAAkB;AACjBI,cAAM,GAAG,cAAT;AACA;;AAEDlE,YAAM,CAACI,OAAP,CAAgB8D,MAAhB,EACC;AACC5D,iBAAS,EAAE,IADZ;AAECoB,iBAAS,EAAExB,KAFZ;AAGCM,eAAO,EAAPA;AAHD,OADD,EAMC,EAND,EAOCgC,GAPD;AASA,K,CAED;;;;WACA,0BAAkB/B,MAAlB,EAA0BC,MAA1B,EAAkCY,QAAlC,EAA6C;AAC5C,UAAM6C,WAAW,GAAGlE,QAAQ,CAACmE,aAAT,CAAwB,MAAxB,CAApB;AAAA,UACCC,SAAS,GAAG9E,CAAC,CAAE4E,WAAF,CADd;AAGAA,iBAAW,CAACG,SAAZ,GAAwBhD,QAAxB;;AAEA,UAAKb,MAAL,EAAc;AACb,YAAI8D,OAAO,GAAGhF,CAAC,CAAEmB,MAAF,CAAf;AAAA,YACCE,OAAO,GAAGrB,CAAC,CAAEkB,MAAF,CADZ;AAAA,YAEC+D,YAFD;;AAIA,YAAKD,OAAO,CAACnC,MAAb,EAAsB;AACrBoC,sBAAY,GAAGH,SAAS,CAACI,IAAV,CAAgB/D,MAAhB,CAAf;;AAEA,cAAK8D,YAAY,CAACpC,MAAlB,EAA2B;AAC1BmC,mBAAO,CAACG,WAAR,CAAqBF,YAAY,CAACG,KAAb,EAArB;AACA;AACD;;AAED,YAAK/D,OAAO,CAACwB,MAAb,EAAsB;AACrBoC,sBAAY,GAAGH,SAAS,CAACI,IAAV,CAAgBhE,MAAhB,CAAf;;AAEA,cAAK+D,YAAY,CAACpC,MAAlB,EAA2B;AAC1BxB,mBAAO,CAAC8D,WAAR,CAAqBF,YAAY,CAACG,KAAb,EAArB;AACA;AACD;AACD,OApBD,MAoBO;AACN,YAAMC,OAAO,GAAGrF,CAAC,CAAE0B,oBAAoB,CAAC2D,OAAvB,CAAjB;;AAEA,YAAKA,OAAO,CAACxC,MAAb,EAAsB;AACrBwC,iBAAO,CAACF,WAAR,CACCL,SAAS,CAACI,IAAV,CAAgBxD,oBAAoB,CAAC2D,OAArC,CADD;AAGA,SAJD,MAIO;AACNrF,WAAC,CAAE,MAAF,CAAD,CAAYmF,WAAZ,CAAyBL,SAAS,CAACI,IAAV,CAAgB,MAAhB,CAAzB;AACA;AACD;;AAEDlF,OAAC,CAAEU,QAAF,CAAD,CAAc6B,OAAd,CAAuB,2BAAvB;AACA,K,CAED;;;;WACA,qBAAa+C,KAAb,EAAqB;AAAA;;AACpB,UACC,2BAAE5D,oBAAF,kDAAE,sBAAsB6D,gBAAxB,+BACA7D,oBADA,mDACA,uBAAsB8D,aAFvB,EAGE;AACD,eAAOF,KAAP;AACA;;AAED,aAAOG,kBAAkB,CAAEH,KAAF,CAAzB;AACA,K,CAED;;;;WACA,iBAASrC,GAAT,EAAcD,MAAd,EAAuB;AACtB,UAAK,KAAK0C,GAAV,EAAgB;AACf,aAAKA,GAAL,CAASC,KAAT;AACA;;AAED3C,YAAM,GAAGhD,QAAA,CACR;AACCiD,WAAG,EAAHA,GADD;AAEC2C,eAAO,EAAE;AACR,yBAAe;AADP;AAFV,OADQ,EAOR5C,MAPQ,CAAT;AAUA,WAAK0C,GAAL,GAAW1F,MAAA,CAAQgD,MAAR,CAAX;AAEA,aAAO,KAAK0C,GAAZ;AACA,K,CAED;;;;WACA,eAAOG,GAAP,EAAa;AAAA;;AACZ,UAAK,OAAO7F,UAAP,KAAsB,WAA3B,EAAyC;AACxC;AACA;;AAED,UAAI8F,UAAU,GAAG,8BAAjB;;AAEA,oCAAKpE,oBAAL,mDAAK,uBAAsBqE,MAA3B,EAAoC;AACnCD,kBAAU,kBAAYpE,oBAAoB,CAACqE,MAAjC,gBAA+CD,UAA/C,CAAV;AACA;;AAEDD,SAAG,CAACrE,KAAJ,CAAW;AACVwE,eAAO,EAAE,IADC;AAEVC,kBAAU,EAAE;AACXH,oBAAU,EAAVA,UADW;AAEXI,iBAAO,EAAE;AAFE;AAFF,OAAX;AAOA,K,CAED;;;;WACA,iBAASL,GAAT,EAAe;AACd,UAAK,OAAO7F,YAAP,KAAwB,WAA7B,EAA2C;AAC1C;AACA;;AAED6F,SAAG,CAACxD,OAAJ;AACA,K,CAED;;;;WACA,uBAAeiD,KAAf,EAAuB;AACtB,UAAIa,eAAe,GAAG,CACpB,eADoB,EAEpB,WAFoB,EAGpB,WAHoB,EAIpB,cAJoB,EAKpB,eALoB,EAMpB,gBANoB,EAOpB,iBAPoB,EAQpB,SARoB,EASpB,cAToB,EAUpBzE,oBAAoB,CAACqB,WAVD,CAAtB;AAAA,UAYCqD,YAZD,CADsB,CAetB;;AACAA,kBAAY,GAAGpG,CAAC,CAAEU,QAAF,CAAD,CAAca,cAAd,CACd,wCADc,EAEd,CAAE4E,eAAF,CAFc,CAAf;;AAKA,UAAK,CAAC,CAAEC,YAAR,EAAuB;AACtBD,uBAAe,GAAGC,YAAlB;AACA;;AAEDD,qBAAe,GAAGA,eAAe,CAACE,MAAhB,CACjB3E,oBAAoB,CAAC4E,oBAArB,CAA0CC,GAA1C,CAA+C,UAAEtC,CAAF;AAAA,eAC9CA,CAAC,CAACT,OAAF,CAAW,KAAX,EAAkB,SAAlB,CAD8C;AAAA,OAA/C,CADiB,CAAlB;;AAMA,UAAK,CAAC,CAAD,KAAO2C,eAAe,CAAC9B,OAAhB,CAAyBiB,KAAzB,CAAZ,EAA+C;AAC9C,eAAO,IAAP;AACA;;AAED,UAAK,CAAC,CAAD,KAAOA,KAAK,CAACjB,OAAN,CAAe,SAAf,CAAZ,EAAyC;AACxC,eAAO,IAAP;AACA;;AAED,UAAK,CAAC,CAAD,KAAOiB,KAAK,CAACjB,OAAN,CAAe,aAAf,CAAZ,EAA6C;AAC5C,eAAO,IAAP;AACA;;AAED,aAAO,KAAP;AACA;;;;;;;;ACtYW;AAEb;;;;;;AAEA;;IAEqBmC,sB,GACpB;AAGA;AACA,gCAAaC,EAAb,EAAkB;AAAA;;AAAA,wDAHT,IAGS;;AACjB;AACA,OAAKC,MAAL,GAAcD,EAAd;AAEA,OAAKC,MAAL,CAAY9F,EAAZ,CAAgB,OAAhB,EAAyB,UAAW+F,EAAX,EAAgB;AACxCA,MAAE,CAACC,cAAH;AAEA5G,KAAC,CAAE,oBAAF,CAAD,CAA0B6G,IAA1B,CAAgC,YAAY;AAC3C,UAAM1F,MAAM,GAAGnB,CAAC,CAAE,IAAF,CAAD,CAAU8G,IAAV,CAAgB,QAAhB,CAAf;AAEA3F,YAAM,CAAC4F,oBAAP,CAA6B,IAA7B;AACA5F,YAAM,CAAC6F,UAAP;AACA,KALD;AAMA,GATD;AAWA,OAAKN,MAAL,CAAYI,IAAZ,CAAkB,OAAlB,EAA2B,IAA3B,EAAkCG,QAAlC,CAA4C,UAA5C;AACA,C;;;;AC3BW;AAEb;;;;;;;;;;;;;;;;AAEA;;IAEqBC,kB;AACpB;AAGA;AAGA;AAGA;AAGA;AAGA;AAGA;AAGA;AAGA;AAGA;AACA,8BAAaT,EAAb,EAAiBU,IAAjB,EAAwB;AAAA;;AAAA;;AAAA,+DA3BN,IA2BM;;AAAA,sDAxBf,IAwBe;;AAAA,uDArBd,IAqBc;;AAAA,0DAlBX,IAkBW;;AAAA,wDAfb,IAea;;AAAA,0DAZX,IAYW;;AAAA,uDATd,IASc;;AAAA,2DANV,CAMU;;AAAA,uDAHd,EAGc;;AACvB,SAAKC,eAAL,GAAuBX,EAAvB;;AAEA,QAAK,CAAE,KAAKW,eAAL,CAAqBC,EAArB,CAAyB,QAAzB,CAAP,EAA6C;AAC5C;AACA;;AAED,QAAMC,cAAc,GAAG,KAAKF,eAAL,CAAqBN,IAArB,CAA2B,UAA3B,CAAvB;AAAA,QACCS,YAAY,GAAG,KAAKH,eAAL,CAAqBN,IAArB,CAA2B,OAA3B,CADhB;AAAA,QAECU,UAAU,GAAG,KAAKJ,eAAL,CAAqBN,IAArB,CAA2B,WAA3B,CAFd;AAAA,QAGCW,QAAQ,GAAG;AACVC,gBAAU,EAAE,KAAKN,eAAL,CAAqBN,IAArB,CAA2B,aAA3B,CADF;AAEVa,cAAQ,EAAE,KAAKP,eAAL,CAAqBN,IAArB,CAA2B,UAA3B,CAFA;AAGVc,aAAO,EAAEN,cAAc,GAAGA,cAAH,GAAoB,EAHjC;AAIVO,WAAK,EAAEN,YAAY,GAAGA,YAAH,GAAkB,KAJ3B;AAKVO,iBAAW,EAAE,IALH;AAMVC,YAAM,EAAE;AACPC,kBAAU,EAAER,UAAU,GACnBA,UADmB,4BAEnB9F,oBAAoB,CAACqG,MAFF,0DAEnB,sBAA6BE,YAHzB;AAIPC,yBAAiB,4BAChBxG,oBAAoB,CAACqG,MADL,2DAChB,uBAA6BI,kBALvB;AAMPC,oBAAY,4BAAE1G,oBAAoB,CAACqG,MAAvB,2DAAE,uBAA6BM,QANpC;AAOPC,gBAAQ,4BAAE5G,oBAAoB,CAACqG,MAAvB,2DAAE,uBAA6BQ;AAPhC;AANE,KAHZ;AAoBA,SAAKC,OAAL,GAAexI,QAAA,CAAUyH,QAAV,EAAoBN,IAApB,CAAf;;AAEA,SAAKsB,WAAL;;AACA,SAAKC,aAAL;;AACA,SAAKC,YAAL;;AAEA,SAAKvB,eAAL,CAAqBN,IAArB,CAA2B,UAA3B,EAAuC,IAAvC,EAA8CG,QAA9C,CAAwD,UAAxD;AACA,G,CAED;;;;;WACA,uBAAc;AACb,WAAKG,eAAL,CAAqBwB,IAArB;AACA,K,CAED;;;;WACA,yBAAgB;AACf,UAAMC,SAAS,GAAG7I,CAAC,CAAE,QAAF,EAAY;AAC7B,iBAAO;AADsB,OAAZ,CAAnB;AAAA,UAGC8I,UAAU,GAAG9I,CAAC,CAAE,QAAF,EAAY;AACzB,iBAAO,gBADkB;AAEzB+I,YAAI,EAAE,KAAKC,QAAL;AAFmB,OAAZ,CAHf;AAAA,UAOCC,aAAa,GAAGjJ,CAAC,CAAE,OAAF,EAAW;AAC3B,iBAAO;AADoB,OAAX,CAPlB;AAAA,UAUCkJ,kBAAkB,GAAGlJ,CAAC,CAAE,OAAF,EAAW;AAChC,iBAAO;AADyB,OAAX,CAVvB;AAcAiJ,mBAAa,CAACE,MAAd,CAAsBD,kBAAtB;AACAL,eAAS,CAACM,MAAV,CAAkBL,UAAlB,EAA+BK,MAA/B,CAAuCF,aAAvC;;AAEA,UAAK,KAAKT,OAAL,CAAad,UAAlB,EAA+B;AAC9B,aAAK0B,mBAAL,CAA0BH,aAA1B;AACA;;AAED,UAAK,KAAKT,OAAL,CAAab,QAAlB,EAA6B;AAC5B,aAAK0B,qBAAL,CAA4BJ,aAA5B;AACA;;AAED,WAAK7B,eAAL,CAAqBkC,KAArB,CAA4BT,SAA5B;AACA,WAAKU,MAAL,GAAcV,SAAd;AACA,WAAKW,OAAL,GAAeV,UAAf;AACA,WAAKW,UAAL,GAAkBR,aAAlB;AACA,WAAKS,OAAL,GAAeR,kBAAf;AACA,K,CAED;;;;WACA,6BAAqBS,aAArB,EAAqC;AACpC,UAAMC,UAAU,GAAG5J,CAAC,CAAE,QAAF,EAAY;AAC9B,iBAAO;AADuB,OAAZ,CAApB;AAAA,UAGC6J,OAAO,GAAG7J,CAAC,CAAE,UAAF,EAAc;AACxB8J,YAAI,EAAE,GADkB;AAExB,iBAAO,cAFiB;AAGxBC,YAAI,EAAE,QAHkB;AAIxBC,mBAAW,EAAE,KAAKxB,OAAL,CAAaT,MAAb,CAAoBG;AAJT,OAAd,CAHZ;AAUA0B,gBAAU,CAACT,MAAX,CAAmBU,OAAnB,EAA6BI,SAA7B,CAAwCN,aAAxC;AACA,WAAKO,QAAL,GAAgBL,OAAhB;AACA,K,CAED;;;;WACA,+BAAuBF,aAAvB,EAAuC;AAAA;;AACtC,UAAMQ,SAAS,GAAGnK,CAAC,CAAE,MAAF,EAAU;AAC5B,iBAAO,WADqB;AAE5BoK,YAAI,2BAAE,KAAK5B,OAAL,CAAaT,MAAb,CAAoBO,QAAtB,0DAAE,sBAA8B9E,OAA9B,CACL,IADK,EAEL,KAAKgF,OAAL,CAAaZ,OAFR;AAFsB,OAAV,CAAnB;AAQAuC,eAAS,CAACvJ,EAAV,CAAc,OAAd,EAAuB,KAAKyJ,YAAL,CAAkBC,IAAlB,CAAwB,IAAxB,CAAvB,EAAwD1B,IAAxD;AAEAe,mBAAa,CAACR,MAAd,CAAsBgB,SAAtB;AACA,WAAKI,UAAL,GAAkBJ,SAAlB;AACA,K,CAED;;;;WACA,wBAAe;AAAA;;AACd,UAAM9G,IAAI,GAAG,IAAb,CADc,CAGd;;AACA,2BAAKkG,MAAL,8DAAa3I,EAAb,CAAiB,OAAjB,EAA0B,UAAE+F,EAAF,EAAU;AACnCA,UAAE,CAAC6D,eAAH;AACAnH,YAAI,CAACoH,cAAL;AACA,OAHD;AAIA,WAAKhB,UAAL,CAAgB7I,EAAhB,CAAoB,OAApB,EAA6B,UAAE+F,EAAF,EAAU;AACtCA,UAAE,CAAC6D,eAAH;AACA,OAFD,EARc,CAYd;;AACA,6BAAKN,QAAL,kEAAetJ,EAAf,CAAmB,cAAnB,EAAmC,YAAM;AACxCyC,YAAI,CAACqH,cAAL;AACA,OAFD,EAbc,CAiBd;;AACA,WAAKhB,OAAL,CAAa9I,EAAb,CAAiB,QAAjB,EAA2B,QAA3B,EAAqC,YAAY;AAChD,YAAI+J,GAAG,GAAG3K,CAAC,CAAE,IAAF,CAAD,CAAUwC,OAAV,CAAmB,IAAnB,CAAV;AAAA,YACCoI,KAAK,GAAGD,GAAG,CAAC7D,IAAJ,CAAU,OAAV,CADT;AAAA,YAEC+D,QAAQ,GAAG,KAFZ;;AAIA,YACCF,GAAG,CAACG,QAAJ,CAAc,UAAd,KACA,CAAEzH,IAAI,CAAC0H,eAAL,CAAsBH,KAAtB,CAFH,EAGE;AACD,iBAAO,KAAP;AACA;;AAEDD,WAAG,CAACK,WAAJ,CAAiB,QAAjB;AACAH,gBAAQ,GAAGF,GAAG,CAACG,QAAJ,CAAc,QAAd,CAAX;;AAEAzH,YAAI,CAAC4H,iBAAL,CAAwBL,KAAxB,EAA+BC,QAA/B;AACA,OAhBD;AAiBA,WAAKnB,OAAL,CAAa9I,EAAb,CAAiB,OAAjB,EAA0B,qBAA1B,EAAiD,UAAW+F,EAAX,EAAgB;AAChE,YAAIgE,GAAG,GAAG3K,CAAC,CAAE,IAAF,CAAD,CAAUwC,OAAV,CAAmB,IAAnB,CAAV;AAAA,YACCoI,KAAK,GAAGD,GAAG,CAAC7D,IAAJ,CAAU,OAAV,CADT;AAAA,YAEC+D,QAAQ,GAAG,KAFZ;AAIAlE,UAAE,CAACC,cAAH;;AAEA,YACC+D,GAAG,CAACG,QAAJ,CAAc,UAAd,KACA,CAAEzH,IAAI,CAAC0H,eAAL,CAAsBH,KAAtB,CAFH,EAGE;AACD,iBAAO,KAAP;AACA;;AAEDD,WAAG,CAACK,WAAJ,CAAiB,QAAjB;AACAH,gBAAQ,GAAGF,GAAG,CAACG,QAAJ,CAAc,QAAd,CAAX;;AAEA,YAAKD,QAAL,EAAgB;AACfF,aAAG,CAACO,QAAJ,GAAeC,WAAf,CAA4B,QAA5B;AACA;;AAED9H,YAAI,CAAC4H,iBAAL,CAAwBL,KAAxB,EAA+BC,QAA/B;AACA,OAtBD;AAuBA,WAAKnB,OAAL,CAAa9I,EAAb,CAAiB,OAAjB,EAA0B,WAA1B,EAAuC,UAAW+F,EAAX,EAAgB;AACtD,YAAMyE,KAAK,GAAGpL,CAAC,CAAE,IAAF,CAAD,CAAUqL,MAAV,GAAmBnG,IAAnB,CAAyB,QAAzB,CAAd;AAEAyB,UAAE,CAACC,cAAH;;AAEA,YACCwE,KAAK,CAAC/D,EAAN,CAAU,gBAAV,KACA+D,KAAK,CAAC/D,EAAN,CAAU,mBAAV,CAFD,EAGE;AACD+D,eAAK,CAACE,IAAN,CAAY,SAAZ,EAAuB,CAAEF,KAAK,CAACE,IAAN,CAAY,SAAZ,CAAzB;AACA;;AAEDF,aAAK,CAACG,MAAN;AACA,OAbD,EA1Dc,CAyEd;;AACA,WAAKnE,eAAL,CAAqBxG,EAArB,CAAyB,QAAzB,EAAmC,UAAE+F,EAAF,EAAM6E,cAAN,EAA0B;AAC5D,YAAKA,cAAL,EAAsB;AACrB;AACA;;AAEDnI,YAAI,CAACqG,OAAL,CAAaxE,IAAb,CAAmB,IAAnB,EAA0B2B,IAA1B,CAAgC,YAAY;AAC3C,cAAM+D,KAAK,GAAG5K,CAAC,CAAE,IAAF,CAAD,CAAU8G,IAAV,CAAgB,OAAhB,CAAd;;AAEA,cAAKzD,IAAI,CAAC0H,eAAL,CAAsBH,KAAtB,CAAL,EAAqC;AACpCvH,gBAAI,CAACoI,WAAL,CAAkBb,KAAlB;AACA,WAFD,MAEO;AACNvH,gBAAI,CAACqI,aAAL,CAAoBd,KAApB;AACA;AACD,SARD;AAUAvH,YAAI,CAACsI,WAAL;AACA,OAhBD,EA1Ec,CA4Fd;;AACA,UAAK,EAAEC,UAAF,aAAEA,UAAF,eAAEA,UAAU,CAAEC,uBAAd,CAAL,EAA6C;AAC5C7L,SAAC,CAAEU,QAAF,CAAD,CAAcE,EAAd,CAAkB,OAAlB,EAA2B,KAAKkL,kBAAhC;AACAF,kBAAU,CAACC,uBAAX,GAAqC,IAArC;AACA;AACD,K,CAED;;;;WACA,wBAAe;AAAA;;AACd,4BAAKtC,MAAL,gEAAatC,QAAb,CAAuB,MAAvB,EAAgCkE,WAAhC,CAA6C,QAA7C;;AACA,WAAKY,kBAAL;AACA,K,CAED;;;;WACA,yBAAgB;AAAA;;AACf,4BAAKxC,MAAL,gEAAa4B,WAAb,CAA0B,MAA1B,EAAmClE,QAAnC,CAA6C,QAA7C;AACA,K,CAED;;;;WACA,8BAAqB;AACpB,UAAM+E,SAAS,GAAGhM,CAAC,CAAEU,QAAF,CAAD,CAChBwE,IADgB,CACV,iBADU,EAEhB+G,MAFgB,CAER,UAAWhI,CAAX,EAAciI,MAAd,EAAuB;AAC/B,YAAMrG,GAAG,GAAG7F,CAAC,CAAEkM,MAAF,CAAb;AAEA,eAAO,CAAC,CAAErG,GAAG,CAACiB,IAAJ,CAAU,UAAV,CAAV;AACA,OANgB,CAAlB;AAQAkF,eAAS,CAACnF,IAAV,CAAgB,YAAY;AAC3B7G,SAAC,CAAE,IAAF,CAAD,CAAU8G,IAAV,CAAgB,UAAhB,EAA6BqF,aAA7B;AACA,OAFD;AAGA,K,CAED;;;;WACA,gCAAuB;AACtB,UAAM9I,IAAI,GAAG,IAAb;AAAA,UACC2I,SAAS,GAAGhM,CAAC,CAAEU,QAAF,CAAD,CACVwE,IADU,CACJ,iBADI,EAEV+G,MAFU,CAEF,UAAWhI,CAAX,EAAciI,MAAd,EAAuB;AAC/B,YAAMrG,GAAG,GAAG7F,CAAC,CAAEkM,MAAF,CAAb;AAEA,eACC,CAAC,CAAErG,GAAG,CAACiB,IAAJ,CAAU,UAAV,CAAH,IACA,CAAEjB,GAAG,CAACwB,EAAJ,CAAQhE,IAAI,CAAC+D,eAAb,CAFH;AAIA,OATU,CADb;AAYA4E,eAAS,CAACnF,IAAV,CAAgB,YAAY;AAC3B7G,SAAC,CAAE,IAAF,CAAD,CAAU8G,IAAV,CAAgB,UAAhB,EAA6BqF,aAA7B;AACA,OAFD;AAGA,K,CAED;;;;WACA,0BAAiB;AAAA;;AAChB,4BAAK5C,MAAL,gEAAayB,WAAb,CAA0B,MAA1B,EAAmCA,WAAnC,CAAgD,QAAhD;;AAEA,2BAAK,KAAKzB,MAAV,0CAAK,cAAauB,QAAb,CAAuB,MAAvB,CAAL,EAAuC;AACtC,aAAKiB,kBAAL;AACA;AACD,K,CAED;;;;WACA,8BAAqB;AAAA;;AACpB,WAAKK,oBAAL;;AAEA,6BAAK,KAAKlC,QAAV,4CAAK,gBAAerH,MAApB,EAA6B;AAC5B,aAAKqH,QAAL,CAAcmC,GAAd,CAAmB,EAAnB;AACA;;AAED,WAAK3B,cAAL;AACA,K,CAED;;;;WACA,6BAAqBrK,MAArB,EAA6BiM,KAA7B,EAAqC;AAAA;;AACpC,UAAIC,gBAAgB,GAAG,EAAvB;AAAA,UACCC,QAAQ,GAAG,KAAKC,UAAL,EADZ;AAAA,UAECC,OAFD;AAIAA,aAAO,GAAG,IAAIC,OAAJ,CAAa,UAAEC,OAAF,EAAe;AACrC;AACAJ,gBAAQ,CAAC3F,IAAT,CAAe,YAAY;AAC1B,cAAMgG,CAAC,GAAG7M,CAAC,CAAE,IAAF,CAAX;AAAA,cACC4K,KAAK,GAAGiC,CAAC,CAACR,GAAF,EADT;AAAA,cAECS,KAAK,GAAGD,CAAC,CAAC9D,IAAF,EAFT;AAAA,cAGCgE,KAAK,GAAG,IAAItJ,MAAJ,CAAY,OAAOpD,MAAP,GAAgB,IAA5B,EAAkC,GAAlC,CAHT;AAAA,cAIC2M,IAAI,GACH,CAAE3M,MAAF,IAAY0M,KAAK,CAACE,IAAN,CAAYrC,KAAZ,CAAZ,IAAmCmC,KAAK,CAACE,IAAN,CAAYH,KAAZ,CALrC;;AAOA,cAAKE,IAAL,EAAY;AACXT,4BAAgB,CAACW,IAAjB,CAAuB;AACtBtC,mBAAK,EAALA,KADsB;AAEtBkC,mBAAK,EAALA;AAFsB,aAAvB;AAIA;AACD,SAdD,EAFqC,CAkBrC;;AACA,YAAK,KAAI,CAACtE,OAAL,CAAaV,WAAlB,EAAgC;AAC/B;AACA,eAAI,CAACU,OAAL,CACEV,WADF,CACezH,MADf,EAEE8M,IAFF,CAEQ,UAAEC,iBAAF,EAAyB;AAC/B,gBAAKA,iBAAL,EAAyB;AACxB;AACAA,+BAAiB,GAAGA,iBAAiB,CAACxJ,MAAlB,CACnB,UAAEC,CAAF,EAAKC,CAAL,EAAQG,CAAR,EAAe;AACdJ,iBAAC,CAACqJ,IAAF,CAAQ;AAAEJ,uBAAK,EAAE7I,CAAT;AAAY2G,uBAAK,EAAE9G;AAAnB,iBAAR;AACA,uBAAOD,CAAP;AACA,eAJkB,EAKnB,EALmB,CAApB,CAFwB,CAUxB;;AACA0I,8BAAgB,GAAGvM,QAAA,CAClBuM,gBADkB,EAElBa,iBAFkB,CAAnB;AAIA;;AAEDR,mBAAO,CAAE,KAAI,CAACS,YAAL,CAAmBd,gBAAnB,EAAqCD,KAArC,CAAF,CAAP;AACA,WArBF;AAsBA,SAxBD,MAwBO;AACNM,iBAAO,CAAE,KAAI,CAACS,YAAL,CAAmBd,gBAAnB,EAAqCD,KAArC,CAAF,CAAP;AACA;AACD,OA9CS,CAAV;AAgDA,aAAOI,OAAP;AACA,K,CAED;;;;WACA,sBAAc3I,KAAd,EAAqBuI,KAArB,EAA6B;AAAA;;AAC5B,UAAIgB,OAAO,GAAG,EAAd;AAAA,UACCC,OAAO,GAAG,KADX,CAD4B,CAI5B;;AACAxJ,WAAK,CACHkI,MADF,CACU,UAAEnI,CAAF,EAAS;AACjB,YAAK,CAAC,CAAD,KAAOwJ,OAAO,CAACjJ,OAAR,CAAiBP,CAAC,CAAC8G,KAAnB,CAAZ,EAAyC;AACxC0C,iBAAO,CAACJ,IAAR,CAAcpJ,CAAC,CAAC8G,KAAhB;AACA,iBAAO,IAAP;AACA;;AAED,eAAO,KAAP;AACA,OARF,EASE4C,IATF,CASQ,UAAE3J,CAAF,EAAK4J,CAAL,EAAY;AAClB,YAAM5F,KAAK,GAAG,MAAI,CAACW,OAAL,CAAaX,KAA3B;AAAA,YACC6F,GAAG,GAAG7F,KAAK,KAAK,KAAV,GAAkB,CAAlB,GAAsB,CAAC,CAD9B;;AAGA,YAAKhE,CAAC,CAAC+G,KAAF,GAAU6C,CAAC,CAAC7C,KAAjB,EAAyB;AACxB,iBAAO,CAAC,CAAD,GAAK8C,GAAZ;AACA,SAFD,MAEO,IAAK7J,CAAC,CAAC+G,KAAF,GAAU6C,CAAC,CAAC7C,KAAjB,EAAyB;AAC/B,iBAAO8C,GAAP;AACA;;AAED,eAAO,CAAP;AACA,OApBF,EAL4B,CA2B5B;;AACA,UAAKpB,KAAL,EAAa;AACZiB,eAAO,GAAGjB,KAAK,GAAG3J,MAAM,CAACC,IAAP,CAAamB,KAAb,EAAqBlB,MAAvC;AACAkB,aAAK,GAAGA,KAAK,CAAC4J,KAAN,CAAa,CAAb,EAAgBrB,KAAhB,CAAR;AACA;;AAED,aAAO;AACNvI,aAAK,EAALA,KADM;AAENwJ,eAAO,EAAPA;AAFM,OAAP;AAIA,K,CAED;;;;WACA,uBAAe3C,KAAf,EAAsBkC,KAAtB,EAA8B;AAC7B,UAAIc,MAAM,GAAG,KAAK7C,eAAL,CAAsBH,KAAtB,CAAb;AAAA,UACCiD,MAAM,GAAG,KAAKC,gBAAL,CAAuBlD,KAAvB,CADV;AAAA,UAECmD,KAAK,GAAG/N,CAAC,CAAE,OAAF,EAAW;AACnB,sBAAc4K,KADK;AAEnB,iBAAOiD,MAAM,CAAChL,MAAP,GAAgBgL,MAAM,CAACG,IAAP,CAAa,OAAb,CAAhB,GAAyC;AAF7B,OAAX,CAFV;AAAA,UAMCC,OAND;;AAQA,UAAKJ,MAAM,CAAChL,MAAZ,EAAqB;AACpB,YAAMqL,QAAQ,GAAGL,MAAM,CAAC/G,IAAP,CAAa,UAAb,CAAjB;AAAA,YACCqH,KAAK,GAAGN,MAAM,CAAC/G,IAAP,CAAa,OAAb,CADT;AAGAgG,aAAK,GAAGoB,QAAQ,GAAGA,QAAH,GAAcpB,KAA9B;;AAEA,YAAK,CAAC,CAAEqB,KAAR,EAAgB;AACfrB,eAAK,IAAIqB,KAAT;AACA;AACD;;AAEDF,aAAO,GAAGjO,CAAC,CAAE,MAAF,EAAU;AACpBoO,YAAI,EAAEP,MAAM,CAAChL,MAAP,GAAgBgL,MAAM,CAAC/G,IAAP,CAAa,YAAb,CAAhB,GAA8C,GADhC;AAEpBiC,YAAI,EAAE+D,KAFc;AAGpBuB,WAAG,EAAE,UAHe;AAIpB,sBAAcR,MAAM,CAAChL,MAAP,GAAgBgL,MAAM,CAAC/G,IAAP,CAAa,OAAb,CAAhB,GAAyC;AAJnC,OAAV,CAAX;;AAOA,UAAK,KAAKM,eAAL,CAAqBkE,IAArB,CAA2B,UAA3B,CAAL,EAA+C;AAC9C,YAAMgD,SAAS,GAAGtO,CAAC,CAAE,UAAF,EAAc;AAC/B+J,cAAI,EAAE,UADyB;AAE/Ba,eAAK,EAALA;AAF+B,SAAd,CAAnB;AAAA,YAIC2D,MAAM,GAAGvO,CAAC,CAAE,SAAF,CAJX;AAMAsO,iBAAS,CAAChD,IAAV,CAAgB,SAAhB,EAA2BsC,MAA3B;AACAW,cAAM,CAACC,OAAP,CAAgBF,SAAhB,EAA4BnF,MAA5B,CAAoC8E,OAApC;AACAF,aAAK,CAAC5E,MAAN,CAAcoF,MAAd,EAAuBtH,QAAvB,CAAiC,UAAjC;AACA,OAVD,MAUO;AACN8G,aAAK,CAAC5E,MAAN,CAAc8E,OAAd;AACA;;AAEDL,YAAM,GAAGG,KAAK,CAAC9G,QAAN,CAAgB,QAAhB,CAAH,GAAgC8G,KAAK,CAAC5C,WAAN,CAAmB,QAAnB,CAAtC;AAEA,aAAO4C,KAAP;AACA,K,CAED;;;;WACA,wBAAgBU,IAAhB,EAAuB;AAAA;AAAA;;AACtB,UAAIpO,MAAM,GAAG,wBAAK6J,QAAL,4DAAerH,MAAf,GAAwB,KAAKqH,QAAL,CAAcmC,GAAd,EAAxB,GAA8C,EAA3D;AAAA,UACCzE,OAAO,GAAG,KAAKY,OAAL,CAAab,QAAb,GAAwB,KAAKa,OAAL,CAAaZ,OAArC,GAA+C,CAD1D;AAAA,UAEC0E,KAFD;AAIAmC,UAAI,GAAGA,IAAI,GAAGC,QAAQ,CAAED,IAAF,CAAX,GAAsB,CAAjC;AACAnC,WAAK,GAAGmC,IAAI,GAAG7G,OAAf;AAEA,WAAK+G,mBAAL,CAA0BtO,MAA1B,EAAkCiM,KAAlC,EAA0Ca,IAA1C,CAAgD,UAAEyB,SAAF,EAAiB;AAChE,YAAIC,aAAa,GAAGD,SAAS,CAAC7K,KAA9B;AAAA,YACCA,KAAK,GAAG,EADT;AAAA,YAECwJ,OAAO,GAAG,KAFX,CADgE,CAKhE;;AACA,cAAI,CAACuB,WAAL;;AACA,cAAI,CAACC,aAAL;;AAEA,YAAK,CAAEF,aAAa,CAAChM,MAArB,EAA8B;AAC7BkB,eAAK,CAACmJ,IAAN,CACClN,CAAC,CAAE,OAAF,EAAW;AAAEoK,gBAAI,EAAE,MAAI,CAAC5B,OAAL,CAAaT,MAAb,CAAoBK;AAA5B,WAAX,CADF;AAIA,gBAAI,CAAC4G,WAAL,GAAmB,CAAnB;AACA,SAND,MAMO;AAAA,qDACWH,aADX;AAAA;;AAAA;AACN,gEAAiC;AAAA,kBAArB/K,CAAqB;;AAChC,kBAAKA,CAAC,CAAC8G,KAAF,KAAY,EAAjB,EAAsB;AACrB7G,qBAAK,CAACkL,OAAN,CAAe,MAAI,CAACC,aAAL,CAAoBpL,CAAC,CAAC8G,KAAtB,EAA6B9G,CAAC,CAACgJ,KAA/B,CAAf;AACA,eAFD,MAEO;AACN/I,qBAAK,CAACmJ,IAAN,CAAY,MAAI,CAACgC,aAAL,CAAoBpL,CAAC,CAAC8G,KAAtB,EAA6B9G,CAAC,CAACgJ,KAA/B,CAAZ;AACA;AACD;AAPK;AAAA;AAAA;AAAA;AAAA;;AASN,gBAAI,CAACkC,WAAL,GAAmBP,IAAnB;AACAlB,iBAAO,GAAGqB,SAAS,CAACrB,OAApB;AACA;;AAED,cAAI,CAAC7D,OAAL,CAAaP,MAAb,CAAqBpF,KAArB;;AAEA,cAAI,CAACqD,eAAL,CAAqB7E,OAArB,CAA8B,4BAA9B;;AAEA,YAAKgL,OAAL,EAAe;AACd,gBAAI,CAAC4B,aAAL;AACA;AACD,OAnCD;AAoCA,K,CAED;;;;WACA,wBAAe;AACd,UAAMV,IAAI,GAAG,KAAKO,WAAL,GAAmB,CAAhC;;AAEA,WAAKtE,cAAL,CAAqB+D,IAArB;AACA,K,CAED;;;;WACA,qBAAa7D,KAAb,EAAqB;AACpB,aAAO,KAAKK,iBAAL,CAAwBL,KAAxB,EAA+B,IAA/B,CAAP;AACA,K,CAED;;;;WACA,uBAAeA,KAAf,EAAuB;AACtB,aAAO,KAAKK,iBAAL,CAAwBL,KAAxB,EAA+B,KAA/B,CAAP;AACA,K,CAED;;;;WACA,2BAAmBA,KAAnB,EAA0BwE,MAA1B,EAAmC;AAClC,UAAMC,OAAO,GAAG,KAAKjI,eAAL,CAAqBlC,IAArB,0BACG0F,KADH,SAAhB;;AAIA,UAAKyE,OAAO,CAACxM,MAAb,EAAsB;AACrBwM,eAAO,CAAC/D,IAAR,CAAc,UAAd,EAA0B8D,MAA1B;AAEA,aAAKjD,aAAL;AACA,aAAKR,WAAL;AAEA,aAAKvE,eAAL,CAAqB7E,OAArB,CAA8B,QAA9B,EAAwC,CAAE,IAAF,CAAxC;AAEA,eAAO,IAAP;AACA;;AACD,aAAO,KAAP;AACA,K,CAED;;;;WACA,uBAAc;AACb,WAAKmH,OAAL,CAAaX,IAAb,CAAmB,EAAnB;AACA,K,CAED;;;;WACA,yBAAgB;AACf,WAAKwB,UAAL,CAAgByC,IAAhB;AACA,K,CAED;;;;WACA,yBAAgB;AACf,WAAKzC,UAAL,CAAgB3B,IAAhB;AACA,K,CAED;;;;WACA,oBAAW;AACV,aAAO,KAAK0G,iBAAL,KACJ,KAAKC,iBAAL,GAAyBC,IAAzB,CAA+B,IAA/B,CADI,GAEJ,KAAKhH,OAAL,CAAaT,MAAb,CAAoBC,UAFvB;AAGA,K,CAED;;;;WACA,uBAAc;AAAA;;AACb,UAAM8E,KAAK,GAAG,KAAK9D,QAAL,EAAd;AAEA,4BAAKQ,OAAL,gEAAcT,IAAd,CAAoB+D,KAApB;AACA,K,CAED;;;;WACA,sBAAa;AACZ,aAAO,KAAK1F,eAAL,CAAqBlC,IAArB,CAA2B,QAA3B,CAAP;AACA,K,CAED;;;;WACA,6BAAoB;AACnB,aAAO,KAAKuK,kBAAL,GAA0B5M,MAAjC;AACA,K,CAED;;;;WACA,yBAAiB+H,KAAjB,EAAyB;AACxB,UAAM8E,KAAK,GAAG,KAAKC,iBAAL,GAAyBtL,OAAzB,CAAkCuG,KAAK,CAACgF,QAAN,EAAlC,CAAd;AAEA,aAAO,CAAC,CAAD,KAAOF,KAAd;AACA,K,CAED;;;;WACA,8BAAqB;AACpB,aAAO,KAAKtI,eAAL,CAAqBlC,IAArB,CAA2B,QAA3B,EAAsC+G,MAAtC,CAA8C,WAA9C,CAAP;AACA,K,CAED;;;;WACA,0BAAkBrB,KAAlB,EAA0B;AACzB,aAAO,KAAKxD,eAAL,CAAqBlC,IAArB,0BAA6C0F,KAA7C,SAAP;AACA,K,CAED;;;;WACA,6BAAoB;AACnB,UAAM7C,MAAM,GAAG,EAAf;AAEA,WAAK0H,kBAAL,GAA0B5I,IAA1B,CAAgC,YAAY;AAC3C,YAAIwI,OAAO,GAAGrP,CAAC,CAAE,IAAF,CAAf;AAAA,YACCkO,QAAQ,GAAGmB,OAAO,CAACvI,IAAR,CAAc,UAAd,CADZ;AAGAoH,gBAAQ,GAAGA,QAAQ,GAChBA,QADgB,GAEhBmB,OAAO,CAACtG,IAAR,GAAevF,OAAf,CAAwB,YAAxB,EAAsC,EAAtC,CAFH;AAIAuE,cAAM,CAACmF,IAAP,CAAagB,QAAb;AACA,OATD;AAWA,aAAOnG,MAAP;AACA,K,CAED;;;;WACA,6BAAoB;AACnB,UAAM8H,MAAM,GAAG,EAAf;AAEA,WAAKJ,kBAAL,GAA0B5I,IAA1B,CAAgC,YAAY;AAC3CgJ,cAAM,CAAC3C,IAAP,CAAalN,CAAC,CAAE,IAAF,CAAD,CAAUqM,GAAV,EAAb;AACA,OAFD;AAIA,aAAOwD,MAAP;AACA;;;WAED,mBAAU,CACT;AACA;;;;;;;;AC7mBW;AAEb;;;;;;;;;;;;AAEA;AACA;;IAEqBC,gB;AACpB;AAIA;AAIA;AAGA;AAGA;AAGA;AAGA;AAGA;AAGA;AAIA;AACA,4BAAarJ,EAAb,EAAkB;AAAA;;AAAA,oDA9BT,KA8BS;;AAAA,qDA7BR,KA6BQ;;AAAA,oDA1BT,KA0BS;;AAAA,qDAzBR,KAyBQ;;AAAA,sDAtBP,KAsBO;;AAAA,4DAnBD,KAmBC;;AAAA,2DAhBF,EAgBE;;AAAA,2DAbF,KAaE;;AAAA,sDAVP,KAUO;;AAAA,2DAPF,KAOE;;AAAA,6DAJA,IAIA;;AAAA,mDAHV,KAGU;;AACjB;AACA,SAAKtF,MAAL,GAAc,MAAMsF,EAAE,CAACuH,IAAH,CAAS,IAAT,CAApB;AACA,SAAKhJ,OAAL,GAAeyB,EAAf,CAHiB,CAKjB;;AACA,SAAKvF,MAAL,GAAc,KAAK8D,OAAL,CAAa8B,IAAb,CAAmB,QAAnB,CAAd;AACA,SAAKzF,OAAL,GAAe,KAAKH,MAAL,GAAclB,CAAC,CAAE,KAAKkB,MAAP,CAAf,GAAiC,KAAhD;;AAEA,SAAK6O,cAAL;;AACA,SAAKC,iBAAL;;AACA,SAAKC,eAAL;;AACA,SAAKC,YAAL;;AACA,SAAKvH,YAAL;;AAEA,SAAK3D,OAAL,CACE8B,IADF,CACQ,QADR,EACkB,IADlB,EAEEG,QAFF,CAEY,UAFZ,EAGE1E,OAHF,CAGW,8BAHX,EAG2C,CAAE,IAAF,CAH3C;AAIA,G,CAED;;;;;WACA,wBAAe;AACd,UAAMc,IAAI,GAAG,IAAb;AAEA,WAAK8M,UAAL,GAAkBtJ,IAAlB,CAAwB,YAAY;AACnC,YAAMuJ,OAAO,GAAGpQ,CAAC,CAAE,IAAF,CAAjB;;AAEAqD,YAAI,CAACgN,WAAL,CAAkBD,OAAlB;AACA,OAJD;AAMA,WAAKE,wBAAL;AACA,K,CAED;;;;WACA,6BAAoB;AAAA;;AACnB,WAAKC,cAAL,GAAsB,KAAKvL,OAAL,CAAaE,IAAb,CAAmB,gBAAnB,CAAtB;;AAEA,UAAK,CAAE,KAAKqL,cAAL,CAAoB1N,MAA3B,EAAoC;AACnC;AACA,OALkB,CAOnB;;;AACA,WAAK0N,cAAL,CACE3P,EADF,CACM,OADN,EACe,UAAE+F,EAAF,EAAU;AACvBA,UAAE,CAACC,cAAH;;AACA,aAAI,CAACqF,MAAL;AACA,OAJF,EAKErD,IALF;AAMA,K,CAED;;;;WACA,wBAAe;AACd,WAAK5D,OAAL,CAAaE,IAAb,CAAmB,MAAnB,EAA4BtE,EAA5B,CAAgC,QAAhC,EAA0C,UAAE+F,EAAF,EAAU;AACnDA,UAAE,CAACC,cAAH;AACA,OAFD;AAGA,K,CAED;;;;WACA,2BAAkB;AAAA;;AACjB,UAAK,CAAElF,oBAAoB,CAAC8O,eAA5B,EAA8C;AAC7C;AACA;;AAED,UAAMC,KAAK,GAAGhQ,MAAM,CAACiQ,UAAP,uBACGhP,oBAAoB,CAACiP,kBADxB,SAAd;AAIA3Q,OAAC,CAAES,MAAF,CAAD,CACEG,EADF,CACM,QADN,EACgB,YAAM;AACpB,YAAMgQ,QAAQ,GAAG,CAAC,CAAEH,KAAK,CAACrM,OAA1B;;AAEA,YAAKwM,QAAQ,KAAK,MAAI,CAACA,QAAvB,EAAkC;AACjC,gBAAI,CAACA,QAAL,GAAgBA,QAAhB;;AACA,gBAAI,CAACC,kBAAL;AACA;AACD,OARF,EASEC,MATF;AAUA,K,CAED;;;;WACA,qBAAaV,OAAb,EAAuB;AAAA;;AACtB,UAAM/M,IAAI,GAAG,IAAb;AAAA,UACC0N,YAAY,GAAG,SAAfA,YAAe,CAAWpK,EAAX,EAAgB;AAC9B,YAAMkG,CAAC,GAAG7M,CAAC,CAAE,IAAF,CAAX;AAAA,YACCgR,cAAc,GAAGnE,CAAC,CAACrK,OAAF,CAAW,mBAAX,CADlB;AAAA,YAECyO,QAAQ,GAAGD,cAAc,CAACnO,MAAf,GACR,UAAUmO,cAAc,CAAClK,IAAf,CAAqB,UAArB,CADF,GAER,KAJJ;AAAA,YAKCiH,KAAK,GAAGlB,CAAC,CAACrK,OAAF,CAAW,cAAX,CALT;AAAA,YAMC0O,MAAM,GAAGnD,KAAK,CAAClL,MAAN,GACNmO,cAAc,CAAC9L,IAAf,CAAqB,cAArB,EAAsCiM,GAAtC,CAA2CpD,KAA3C,CADM,GAEN,EARJ;;AAUA,YAAKA,KAAK,CAAC1G,EAAN,CAAU,WAAV,KAA2B,CAAE0G,KAAK,CAAC1G,EAAN,CAAU,SAAV,CAAlC,EAA0D;AACzDV,YAAE,CAACC,cAAH;AACA,iBAAO,KAAP;AACA;;AAEDD,UAAE,CAACC,cAAH;AAEAsK,cAAM,CAACrO,MAAP,IACC,CAAEoO,QADH,IAECC,MAAM,CACJ/F,WADF,CACe,QADf,EAEEiG,QAFF,CAEY,OAFZ,EAGElM,IAHF,CAGQ,QAHR,EAIEoG,IAJF,CAIQ,SAJR,EAImB,KAJnB,EAKED,MALF,CAKU,UALV,EAMEF,WANF,CAMe,SANf,CAFD;AASA4C,aAAK,CAAClL,MAAN,IAAgBkL,KAAK,CAAC/C,WAAN,CAAmB,QAAnB,CAAhB,CA3B8B,CA6B9B;;AACA3H,YAAI,CAACgO,aAAL,GAAqB,KAArB;AAEAhO,YAAI,CAACiO,WAAL,CAAkBlB,OAAlB;AACA/M,YAAI,CAACkO,0BAAL;AACAlO,YAAI,CAACmO,sBAAL,CAA6BR,cAA7B;AACA,OApCF,CADsB,CAuCtB;;;AACAZ,aAAO,CACLlL,IADF,CACQ,cADR,EAEEiM,GAFF,CAEO,WAFP,EAGEA,GAHF,CAGO,QAHP,EAIEvQ,EAJF,CAIM,OAJN,EAIe,GAJf,EAIoB,UAAW+F,EAAX,EAAgB;AAClC,YAAMkG,CAAC,GAAG7M,CAAC,CAAE,IAAF,CAAX;AAAA,YACC+N,KAAK,GAAGlB,CAAC,CAACrK,OAAF,CAAW,cAAX,CADT;;AAGA,YAAK,CAAExC,CAAC,CAAE2G,EAAF,aAAEA,EAAF,uBAAEA,EAAE,CAAE8K,cAAN,CAAD,CAAwBpK,EAAxB,CAA4B0G,KAA5B,CAAP,EAA6C;AAC5C,iBAAO,KAAP;AACA;;AAEDgD,oBAAY,CAACW,IAAb,CAAmB,IAAnB,EAAyB/K,EAAzB;AACA,OAbF,EAxCsB,CAuDtB;;AACAyJ,aAAO,CAAClL,IAAR,CAAc,QAAd,EAAyBtE,EAAzB,CAA6B,QAA7B,EAAuC,UAAW+F,EAAX,EAAgB;AACtD,YAAMkG,CAAC,GAAG7M,CAAC,CAAE,IAAF,CAAX;AAAA,YACC+N,KAAK,GAAGlB,CAAC,CAACrK,OAAF,CAAW,cAAX,CADT;;AAGA,YAAKuL,KAAK,CAAC1G,EAAN,CAAU,WAAV,KAA2B,CAAE0G,KAAK,CAAC1G,EAAN,CAAU,SAAV,CAAlC,EAA0D;AACzDwF,WAAC,CAACvB,IAAF,CAAQ,SAAR,EAAmB,KAAnB;AACA,iBAAO,KAAP;AACA;;AAEDyF,oBAAY,CAACW,IAAb,CAAmB,IAAnB,EAAyB/K,EAAzB;AACA,OAVD,EAxDsB,CAoEtB;;AACAyJ,aAAO,CAAClL,IAAR,CAAc,WAAd,EAA4BtE,EAA5B,CAAgC,OAAhC,EAAyC,UAAW+F,EAAX,EAAgB;AACxD,YAAMkG,CAAC,GAAG7M,CAAC,CAAE,IAAF,CAAX;AAAA,YACC+N,KAAK,GAAGlB,CAAC,CAACrK,OAAF,CAAW,cAAX,CADT;AAGAmE,UAAE,CAACC,cAAH;;AAEA,YAAKmH,KAAK,CAAC1G,EAAN,CAAU,WAAV,KAA2B,CAAE0G,KAAK,CAAC1G,EAAN,CAAU,SAAV,CAAlC,EAA0D;AACzD,iBAAO,KAAP;AACA;;AAED,YAAMsK,MAAM,GAAG9E,CAAC,CAACxB,MAAF,GAAWnG,IAAX,CAAiB,QAAjB,CAAf;;AAEA,YACCyM,MAAM,CAACtK,EAAP,CAAW,gBAAX,KACAsK,MAAM,CAACtK,EAAP,CAAW,mBAAX,CAFD,EAGE;AACDsK,gBAAM,CAACrG,IAAP,CAAa,SAAb,EAAwB,CAAEqG,MAAM,CAACrG,IAAP,CAAa,SAAb,CAA1B;AACA;;AAEDqG,cAAM,CAACpG,MAAP;AACA,OApBD,EArEsB,CA2FtB;;AACA,WAAKqG,YAAL,CAAmBxB,OAAnB,EA5FsB,CA8FtB;;;AACA,WAAKyB,gBAAL,CAAuBzB,OAAvB,EA/FsB,CAiGtB;;;AACA,WAAK0B,aAAL,CAAoB1B,OAApB,EAlGsB,CAoGtB;;;AACA,WAAK2B,gBAAL,CAAuB3B,OAAvB,EArGsB,CAuGtB;;;AACA,WAAK4B,oBAAL,CAA2B5B,OAA3B,EAxGsB,CA0GtB;;AACA,2BAAK,KAAKpL,OAAV,0CAAK,cAAc8F,QAAd,CAAwB,cAAxB,CAAL,EAAgD;AAC/C,aAAKmH,gBAAL,CAAuB7B,OAAvB;;AACAA,eAAO,CAACxP,EAAR,CAAY,4BAAZ,EAA0C,YAAY;AACrD,cAAMsR,SAAS,GAAGlS,CAAC,CAAE,IAAF,CAAnB;AAAA,cACCmS,QAAQ,GAAGD,SAAS,CAAC1P,OAAV,CAAmB,mBAAnB,CADZ;;AAGAa,cAAI,CAAC4O,gBAAL,CAAuBE,QAAvB;AACA,SALD;AAMA;AACD,K,CAED;;;;WACA,sBAAc/B,OAAd,EAAuBgC,QAAvB,EAAkC;AACjChC,aAAO,CAAClL,IAAR,CAAc,cAAd,EAA+B2B,IAA/B,CAAqC,YAAY;AAChD,YAAMgG,CAAC,GAAG7M,CAAC,CAAE,IAAF,CAAX;;AAEA,YAAK6M,CAAC,CAAC/B,QAAF,CAAY,eAAZ,KAAiC,CAAE+B,CAAC,CAAC/F,IAAF,CAAQ,OAAR,CAAxC,EAA4D;AAC3D;AACA;;AAED+F,SAAC,CAACjM,EAAF,CAAM,YAAN,EAAoB,YAAY;AAC/B,cAAIyR,EAAE,GAAGrS,CAAC,CAAE,IAAF,CAAV;AAAA,cACCsS,OAAO,GAAG,IADX;AAAA,cAECC,YAAY,GAAGF,EAAE,CAACG,UAAH,EAFhB;AAAA,cAGCC,IAAI,GAAG,CAHR;AAAA,cAICC,KAAK,GAAG,CAJT;;AAMA,cACC,CAAEN,QAAF,IACE,UAAUA,QAAV,IAAsB,YAAYA,QAFrC,EAGE;AACD,gBAAMO,SAAS,GAAGN,EAAE,CAAC7P,OAAH,CAAY,cAAZ,CAAlB;AAEA4P,oBAAQ,GACPO,SAAS,CAAC7H,QAAV,CAAoB,OAApB,KACA6H,SAAS,CAAC7H,QAAV,CAAoB,OAApB,CADA,GAEG,KAFH,GAGG,OAJJ;AAKA;;AAEDwH,iBAAO,GAAGtS,CAAC,CAAE,QAAF,EAAY;AACtB,qBAAO,mBADe;AAEtB+I,gBAAI,EAAEsJ,EAAE,CAACvL,IAAH,CAAS,OAAT;AAFgB,WAAZ,CAAX;AAKAuL,YAAE,CAAClJ,MAAH,CAAWmJ,OAAX;AAEAI,eAAK,GAAGJ,OAAO,CAACE,UAAR,KAAuB,CAA/B;AACAF,iBAAO,CAACE,UAAR,CAAoBE,KAApB;;AAEA,cAAK,UAAUN,QAAf,EAA0B;AACzBK,gBAAI,GAAG,CAAEF,YAAY,GAAGG,KAAjB,IAA2B,CAAlC;AACA,WAFD,MAEO;AACND,gBAAI,GAAGF,YAAY,GAAG,EAAtB;AACA;;AAEDD,iBAAO,CAACM,GAAR,CAAa;AAAEH,gBAAI,EAAEA,IAAI,CAACI,OAAL,CAAc,CAAd,IAAoB;AAA5B,WAAb,EAAkDC,MAAlD,CAA0D,GAA1D;AAEAT,YAAE,CAACpL,QAAH,CAAa,cAAb;AACA,SAvCD,EAuCIrG,EAvCJ,CAuCQ,YAvCR,EAuCsB,YAAY;AACjC,cAAMyR,EAAE,GAAGrS,CAAC,CAAE,IAAF,CAAZ;AAEAqS,YAAE,CAACnN,IAAH,CAAS,oBAAT,EAAgC6N,OAAhC,CAAyC,GAAzC,EAA8C,YAAY;AACzDV,cAAE,CAAClH,WAAH,CAAgB,cAAhB,EACEjG,IADF,CACQ,oBADR,EAEE8N,MAFF;AAGA,WAJD;AAKA,SA/CD;AAiDAnG,SAAC,CAAC5F,QAAF,CAAY,eAAZ;AACA,OAzDD;AA0DA,K,CAED;;;;WACA,uBAAemJ,OAAf,EAAyB;AACxB,UAAM8B,SAAS,GAAG9B,OAAO,CAAClL,IAAR,CAAc,wBAAd,CAAlB;;AAEA,UAAK,CAAEgN,SAAS,CAACrP,MAAjB,EAA0B;AACzB;AACA;;AAED,UACCqP,SAAS,CAACpH,QAAV,CAAoB,2BAApB,KACA,gBAAgB,OAAO9K,cAFxB,EAGE;AACDkS,iBAAS,CAACe,SAAV,CAAqB,SAArB;AACA;;AAED,WAAKC,mBAAL,CAA0BhB,SAA1B,EAAqC;AACpCvK,gBAAQ,EAAE,IAD0B;AAEpCC,eAAO,EAAElG,oBAAoB,CAACyR;AAFM,OAArC;AAIA,K,CAED;;;;WACA,6BAAqBjB,SAArB,EAAgC/K,IAAhC,EAAuC;AACtC,aAAO,IAAID,kBAAJ,CAAwBgL,SAAxB,EAAmC/K,IAAnC,CAAP;AACA,K,CAED;;;;WACA,0BAAkBiJ,OAAlB,EAA4B;AAAA;;AAC3B,UAAK,CAAEA,OAAO,CAACtF,QAAR,CAAkB,qBAAlB,CAAP,EAAmD;AAClD;AACA;;AAED,UAAMzH,IAAI,GAAG,IAAb;AAAA,UACCuG,UAAU,GAAGwG,OAAO,CAAClL,IAAR,CAAc,eAAd,CADd;AAAA,UAECkO,SAAS,GAAGxJ,UAAU,CAAC1E,IAAX,CAAiB,mBAAjB,CAFb;AAAA,UAGCmO,SAAS,GAAGzJ,UAAU,CAAC1E,IAAX,CAAiB,mBAAjB,CAHb;AAAA,UAICoO,GAAG,GAAGC,UAAU,CAAE3J,UAAU,CAAC9C,IAAX,CAAiB,KAAjB,CAAF,CAJjB;AAAA,UAKC0M,GAAG,GAAGD,UAAU,CAAE3J,UAAU,CAAC9C,IAAX,CAAiB,KAAjB,CAAF,CALjB;AAAA,UAMC2M,UAAU,GAAGF,UAAU,CAAEH,SAAS,CAAC/G,GAAV,EAAF,CANxB;AAAA,UAOCqH,UAAU,GAAGH,UAAU,CAAEF,SAAS,CAAChH,GAAV,EAAF,CAPxB;AAAA,UAQCsH,IAAI,GAAGJ,UAAU,CAAE3J,UAAU,CAAC9C,IAAX,CAAiB,MAAjB,CAAF,CARlB;AAAA,UASC8M,kBAAkB,GAAG,SAArBA,kBAAqB,GAAY;AAChC,YAAKvQ,IAAI,CAACwQ,aAAV,EAA0B;AACzBC,sBAAY,CAAEzQ,IAAI,CAACwQ,aAAP,CAAZ;AACA;;AAEDxQ,YAAI,CAACwQ,aAAL,GAAqBE,UAAU,CAAE,YAAM;AACtC1Q,cAAI,CAACiO,WAAL,CAAkBlB,OAAlB;AACA,SAF8B,EAE5B,GAF4B,CAA/B;AAGA,OAjBF;;AAmBAA,aAAO,CAAClL,IAAR,CAAc,kBAAd,EAAmC8O,cAAnC,CAAmD;AAClDC,YAAI,EAAE,OAD4C;AAElDlK,YAAI,EAAE,QAF4C;AAGlDuJ,WAAG,EAAHA,GAHkD;AAIlDE,WAAG,EAAHA,GAJkD;AAKlDG,YAAI,EAAJA,IALkD;AAMlDO,YAAI,EAAET,UAN4C;AAOlDU,UAAE,EAAET,UAP8C;AAQlDU,oBAAY,EAAET,IARoC;AASlDU,wBAAgB,EAAE,KATgC;AAUlDC,gBAAQ,EAAE,kBAAExQ,CAAF;AAAA,iBAAS,MAAI,CAACyQ,WAAL,CAAkBzQ,CAAlB,CAAT;AAAA,SAVwC;AAWlD0Q,gBAAQ,EAAE,kBAAE1N,IAAF,EAAY;AACrBsM,mBAAS,CAAC/G,GAAV,CAAevF,IAAI,CAACoN,IAApB;AACAb,mBAAS,CAAChH,GAAV,CAAevF,IAAI,CAACqN,EAApB;AACA,SAdiD;AAelDM,gBAAQ,EAAEb;AAfwC,OAAnD;AAkBAR,eAAS,CACPsB,GADF,CACOrB,SADP,EAEEsB,GAFF,CAEO,QAFP,EAGE/T,EAHF,CAGM,OAHN,EAGe,YAAM;AACnB,YAAK,CAAEwS,SAAS,CAAC/G,GAAV,EAAF,IAAqB,CAAEgH,SAAS,CAAChH,GAAV,EAA5B,EAA8C;AAC7C;AACA;;AAEDuH,0BAAkB;AAClB,OATF;AAUA,K,CAED;;;;WACA,0BAAkBxD,OAAlB,EAA4B;AAC3B,WAAKwE,qBAAL,CAA4BxE,OAA5B;;AACA,WAAKyE,yBAAL,CAAgCzE,OAAhC;AACA,K,CAED;;;;WACA,+BAAuBA,OAAvB,EAAiC;AAChC,UAAM0E,MAAM,GAAG1E,OAAO,CAAClL,IAAR,CAAc,cAAd,CAAf;;AAEA,UAAK,CAAE4P,MAAM,CAACjS,MAAd,EAAuB;AACtB;AACA;;AAED,WAAKkS,WAAL,CAAkBD,MAAlB,EAA0BA,MAA1B,EAAkC1E,OAAO,CAAClL,IAAR,CAAc,iBAAd,CAAlC;AACA,K,CAED;;;;WACA,mCAA2BkL,OAA3B,EAAqC;AACpC,UAAMc,MAAM,GAAGd,OAAO,CAAClL,IAAR,CAAc,wBAAd,CAAf;;AAEA,UAAK,CAAEgM,MAAM,CAACrO,MAAd,EAAuB;AACtB;AACA,OALmC,CAOpC;;;AACA,UAAMQ,IAAI,GAAG,IAAb;AAAA,UACCuK,MAAM,GAAGwC,OAAO,CAAClL,IAAR,CAAc,SAAd,CADV;;AAGA,UAAK0I,MAAM,CAAC/K,MAAZ,EAAqB;AACpB+K,cAAM,CACJoH,OADF,CACW,wBADX,EAEE7J,WAFF,CAEe,QAFf,EAGElE,QAHF,CAGY,QAHZ;;AAKA,YACC2G,MAAM,CAAC9C,QAAP,CAAiB,uBAAjB,KACApJ,oBAAoB,CAACuT,qBAFtB,EAGE;AACDrH,gBAAM,CAACzC,WAAP,CAAoB,QAApB,EAA+BlE,QAA/B,CAAyC,QAAzC;AACA;AACD;;AAEDiK,YAAM,CAACrK,IAAP,CAAa,YAAY;AACxB,YAAMqO,EAAE,GAAGlV,CAAC,CAAE,IAAF,CAAZ;AAAA,YACCmV,OAAO,GAAGnV,CAAC,CAAE,SAAF,EAAa;AACvB,mBAAO;AADgB,SAAb,CADZ;AAKAmV,eAAO,CAACC,QAAR,CAAkBF,EAAlB;;AAEA7R,YAAI,CAAC0R,WAAL,CAAkBI,OAAlB,EAA2BD,EAA3B,EAA+BA,EAAE,CAAC9D,QAAH,CAAa,iBAAb,CAA/B;AACA,OATD;AAUA,K,CAED;;;;WACA,qBAAa+D,OAAb,EAAsBvL,UAAtB,EAAkCvI,OAAlC,EAA4C;AAC3C,UAAKuI,UAAU,CAACkB,QAAX,CAAqB,QAArB,CAAL,EAAuC;AACtCzJ,eAAO,CAACuH,IAAR;AACA;;AAEDuM,aAAO,CAACR,GAAR,CAAa,OAAb,EAAuB/T,EAAvB,CAA2B,OAA3B,EAAoC,UAAE+F,EAAF,EAAU;AAC7CA,UAAE,CAAC6D,eAAH;AACA7D,UAAE,CAACC,cAAH;AAEAvF,eAAO,CAACgU,WAAR,CAAqB,GAArB,EAA0B,YAAM;AAC/BzL,oBAAU,CAACoB,WAAX,CAAwB,QAAxB,EAAmCA,WAAnC,CAAgD,QAAhD;AACA,SAFD;AAGA,OAPD;AAQA,K,CAED;;;;WACA,0BAAkBoF,OAAlB,EAA4B;AAC3BA,aAAO,CAAClL,IAAR,CAAc,QAAd,EAAyB2B,IAAzB,CAA+B,YAAY;AAC1C,YAAIuE,KAAK,GAAGpL,CAAC,CAAE,IAAF,CAAb;AAAA,YACC+J,IAAI,GAAGqB,KAAK,CAAC4C,IAAN,CAAY,MAAZ,CADR;AAAA,YAECsH,cAAc,aAAOvL,IAAP,WAFf;AAAA,YAGC4I,SAHD;;AAKA,YAAK,eAAe5I,IAAf,IAAuB,YAAYA,IAAxC,EAA+C;AAC9C;AACA;;AAED,YAAKqB,KAAK,CAAC5I,OAAN,YAAoB8S,cAApB,GAAwCzS,MAA7C,EAAsD;AACrD;AACA;;AAED,YAAKuI,KAAK,CAAC/D,EAAN,CAAU,UAAV,CAAL,EAA8B;AAC7BiO,wBAAc,IAAI,UAAlB;AACA;;AAED3C,iBAAS,GAAG3S,CAAC,CAAE,SAAF,EAAa;AACzB,mBAAOsV;AADkB,SAAb,CAAb;AAIAlK,aAAK,CAACmK,IAAN,CAAY5C,SAAZ,EAAwB/R,EAAxB,CAA4B,QAA5B,EAAsC,YAAY;AACjD,cAAMiM,CAAC,GAAG7M,CAAC,CAAE,IAAF,CAAX;AAEA6M,WAAC,CAACvB,IAAF,CAAQ,SAAR,IACGuB,CAAC,CAACxB,MAAF,GAAWpE,QAAX,CAAqB,SAArB,CADH,GAEG4F,CAAC,CAACxB,MAAF,GAAWF,WAAX,CAAwB,SAAxB,CAFH;AAGA,SAND;AAOA,OA7BD;AA8BA,K,CAED;;;;WACA,0BAAiB;AAChB,WAAKqK,eAAL,GAAuB,KAAKC,oBAAL,EAAvB;AACA,K,CAED;;;;WACA,8BAAqB;AACpB,UAAK,KAAK7E,QAAV,EAAqB;AAAA;;AACpB,aAAK5L,OAAL,CACEiC,QADF,CACY,eADZ,EAEE+G,IAFF,CAEQ,MAFR,EAEgB,QAFhB,EAGEA,IAHF,CAGQ,UAHR,EAGoB,IAHpB,EAIEpF,IAJF;;AAMA,aAAK8M,oBAAL;;AACA,aAAKC,2BAAL;;AACA,aAAKC,qBAAL;;AAEA,qCAAKrF,cAAL,8EAAqB3H,IAArB;AACA,OAZD,MAYO;AAAA;;AACN,aAAK5D,OAAL,CACEmG,WADF,CACe,eADf,EAEEA,WAFF,CAEe,MAFf,EAGE0K,UAHF,CAGc,MAHd,EAIEA,UAJF,CAIc,UAJd,EAKE7I,IALF;AAOAhN,SAAC,CAAE,MAAF,CAAD,CACE4S,GADF,CACO,UADP,EACmB,MADnB,EAEEzH,WAFF,CAEe,6BAFf;;AAIA,aAAK2K,uBAAL;;AACA,aAAKC,8BAAL;;AACA,aAAKC,uBAAL;;AAEA,sCAAKzF,cAAL,gFAAqBvD,IAArB;AACA;AACD,K,CAED;;;;WACA,gCAAuB;AACtB,UAAMiJ,YAAY,GAAGjW,CAAC,CAAE,MAAF,EAAU;AAC/B,iBAAO,cADwB;AAE/B+I,YAAI,EAAE,SAFyB;AAG/B,wBAAgB,OAHe;AAI/B,sBAAcrH,oBAAoB,CAACqG,MAArB,CAA4BmO;AAJX,OAAV,CAAtB;AAOAD,kBAAY,CACVhM,SADF,CACa,KAAKjF,OADlB,EAEEpE,EAFF,CAEM,OAFN,EAEe,KAAKoG,UAAL,CAAgBsD,IAAhB,CAAsB,IAAtB,CAFf;AAGA,WAAK6L,aAAL,CAAmBC,WAAnB,GAAiCH,YAAjC;AACA,K,CAED;;;;WACA,mCAA0B;AAAA;;AACzB,kCAAKE,aAAL,qGAAoBC,WAApB,gFAAiCpD,MAAjC;AACA,K,CAED;;;;WACA,uCAA8B;AAAA;;AAC7B,UAAMqD,aAAa,GAAGrW,CAAC,CAAE,WAAF,EAAe;AACrC,iBAAO,iCAD8B;AAErC+I,YAAI,EAAErH,oBAAoB,CAACqG,MAArB,CAA4BuO,YAFG;AAGrC,wBAAgB;AAHqB,OAAf,CAAvB;AAMAD,mBAAa,CAACjB,QAAd,CAAwB,KAAKpQ,OAA7B,EAAuCpE,EAAvC,CAA2C,OAA3C,EAAoD,YAAM;AACzD,cAAI,CAACqL,MAAL;;AACA,cAAI,CAACjF,UAAL;AACA,OAHD;AAIA,WAAKmP,aAAL,CAAmBI,kBAAnB,GAAwCF,aAAxC;AACA,K,CAED;;;;WACA,0CAAiC;AAAA;;AAChC,mCAAKF,aAAL,uGAAoBI,kBAApB,gFAAwCvD,MAAxC;AACA,K,CAED;;;;WACA,iCAAwB;AACvB,UAAM3P,IAAI,GAAG,IAAb;AAEA,WAAK8M,UAAL,GAAkBtJ,IAAlB,CAAwB,YAAY;AACnC,YAAMuJ,OAAO,GAAGpQ,CAAC,CAAE,IAAF,CAAjB;AAAA,YACC8U,MAAM,GAAG1E,OAAO,CAAClL,IAAR,CAAc,eAAd,CADV;;AAGA,YAAK,CAAE4P,MAAM,CAACjS,MAAT,IAAmBiS,MAAM,CAAChK,QAAP,CAAiB,aAAjB,CAAxB,EAA2D;AAC1D;AACA;;AAEDgK,cAAM,CAAC7N,QAAP,CAAiB,aAAjB,EAAiCH,IAAjC,CAAuC,kBAAvC,EAA2D,IAA3D;;AAEAzD,YAAI,CAACuR,qBAAL,CAA4BxE,OAA5B;AACA,OAXD;AAYA,K,CAED;;;;WACA,mCAA0B;AACzB,WAAKD,UAAL,GAAkBtJ,IAAlB,CAAwB,YAAY;AACnC,YAAMuJ,OAAO,GAAGpQ,CAAC,CAAE,IAAF,CAAjB;AAAA,YACC8U,MAAM,GAAG1E,OAAO,CAAClL,IAAR,CAAc,eAAd,CADV;;AAGA,YACC,CAAE4P,MAAM,CAACjS,MAAT,IACA,CAAEiS,MAAM,CAAChK,QAAP,CAAiB,aAAjB,CADF,IAEA,CAAEgK,MAAM,CAAChO,IAAP,CAAa,kBAAb,CAHH,EAIE;AACD;AACA;;AAEDgO,cAAM,CACJ3J,WADF,CACe,aADf,EAEEqL,UAFF,CAEc,kBAFd,EAEkC,IAFlC,EAGE7B,GAHF,CAGO,OAHP;AAKAvE,eAAO,CAAClL,IAAR,CAAc,iBAAd,EAAkC8H,IAAlC;AACA,OAlBD;AAmBA,K,CAED;;;;WACA,gCAAuB;AAAA;;AACtB,WAAKyJ,QAAL,CACEtF,GADF,CACO,WADP,EAEEA,GAFF,CAEO,UAAElN,CAAF,EAAKH,CAAL,EAAY;AACjB,eAAO,MAAI,CAAC4S,cAAL,CAAqB1W,CAAC,CAAE8D,CAAF,CAAtB,CAAP;AACA,OAJF,EAKEoB,IALF,CAKQ,iBALR,EAME8H,IANF,GAOE2J,GAPF,GAQEzR,IARF,CAQQ,eARR,EASEiG,WATF,CASe,QATf,EAUElE,QAVF,CAUY,QAVZ;AAWA,K,CAED;;;;WACA,iCAAwB;AAAA;;AACvB,WAAKwP,QAAL,CACEtF,GADF,CACO,WADP,EAEEA,GAFF,CAEO,UAAElN,CAAF,EAAKH,CAAL,EAAY;AACjB,eAAO,MAAI,CAAC4S,cAAL,CAAqB1W,CAAC,CAAE8D,CAAF,CAAtB,CAAP;AACA,OAJF,EAKEoB,IALF,CAKQ,iBALR,EAME0D,IANF,GAOE+N,GAPF,GAQEzR,IARF,CAQQ,eARR,EASE+B,QATF,CASY,QATZ,EAUEkE,WAVF,CAUe,QAVf;AAWA,K,CAED;;;;WACA,qCAA4B;AAC3B,UAAMyL,cAAc,GAAG,KAAKnB,oBAAL,EAAvB;AAAA,UACCoB,UAAU,GAAGC,IAAI,CAACC,SAAL,CAAgBH,cAAhB,CADd;AAAA,UAECI,WAAW,GAAGF,IAAI,CAACC,SAAL,CAAgB,KAAKvB,eAArB,CAFf;AAIA,WAAKyB,KAAL,GAAaJ,UAAU,KAAKG,WAA5B;AACA,K,CAED;;;;WACA,qBAAaE,UAAb,EAA0B;AACzB;AACA,WAAKC,yBAAL,GAFyB,CAIzB;;AACA,UAAKzV,oBAAoB,CAAC0V,eAArB,IAAwC,CAAE,KAAKxG,QAApD,EAA+D;AAC9D,aAAK3E,MAAL;AACA,OAFD,MAEO,IACN,CAAEvK,oBAAoB,CAAC0V,eAAvB,IACA,CAAE,KAAKxG,QAFD,EAGL;AAAA;;AACD,aAAKqG,KAAL,4BACG,KAAK1G,cADR,0DACG,sBAAqBvD,IAArB,EADH,4BAEG,KAAKuD,cAFR,0DAEG,sBAAqB3H,IAArB,EAFH;AAGA,OAPM,MAOA,IAAK,KAAKgI,QAAL,IAAiB,KAAKqG,KAA3B,EAAmC;AAAA;;AACzC,aAAKjS,OAAL,CAAaiC,QAAb,CAAuB,oBAAvB;AACA,sCAAKkP,aAAL,CAAmBI,kBAAnB,gFAAuCvJ,IAAvC;AACA;AACD,K,CAED;;;;WACA,kBAAS;AAAA;AAAA;AAAA;;AACR,UAAMf,MAAM,cAAGxL,MAAH,4CAAG,QAAQ4W,cAAvB;AAEApL,YAAM,SAAN,IAAAA,MAAM,WAAN,gCAAAA,MAAM,CACHqL,QADH,CACa,KAAK7B,oBAAL,EADb,EAC0C,KAAKvU,MAD/C,EACuD,KAAKC,MAD5D,uEAEGW,IAFH,CAES,YAAM;AACb,YAAIyV,SAAS,GAAGvX,CAAC,CAAE,MAAI,CAACmB,MAAP,CAAjB;;AAEA,YAAKoW,SAAS,CAAC1U,MAAV,IAAoBnB,oBAAoB,CAAC8V,UAA9C,EAA2D;AAC1D;AACA,cAAIC,YAAY,GAAGF,SAAS,CAACG,MAAV,GAAmBC,GAAtC;;AAEA,cAAK,CAAC,CAAEjW,oBAAoB,CAACkW,aAA7B,EAA6C;AAC5C;AACA,gBAAMC,aAAa,GAAG7X,CAAC,CACtB0B,oBAAoB,CAACkW,aADC,CAAvB;AAIAH,wBAAY,GAAGI,aAAa,CAAChV,MAAd,GACZgV,aAAa,CAACH,MAAd,GAAuBC,GADX,GAEZF,YAFH;AAGA,WATD,MASO,IAAK,MAAI,CAAC7G,QAAV,EAAqB;AAC3B;AACA;AACA6G,wBAAY,GAAG,GAAf;AACA;;AAEDzX,WAAC,CAAE,YAAF,CAAD,CAAkB8X,OAAlB,CAA2B;AAC1BC,qBAAS,EAAEN,YAAY,GAAG;AADA,WAA3B;AAGA,SAzBY,CA2Bb;;;AACA,cAAI,CAACjC,eAAL,GAAuB,MAAI,CAACC,oBAAL,EAAvB;AACA,cAAI,CAACwB,KAAL,GAAa,KAAb;AACA,OAhCF;;AAkCA,UAAK,KAAKrG,QAAV,EAAqB;AAAA;;AACpB,aAAK5L,OAAL,CAAamG,WAAb,CAA0B,oBAA1B;AACA,uCAAKgL,aAAL,CAAmBI,kBAAnB,kFAAuC3N,IAAvC;AACA,aAAK5B,UAAL;AACA;AACD,K,CAED;;;;WACA,sBAAa;AACZ,UAAK,UAAU,KAAKyP,QAApB,EAA+B;AAC9B,aAAKA,QAAL,GAAgB,KAAKzR,OAAL,CAAaE,IAAb,CAAmB,mBAAnB,CAAhB;AACA;;AAED,aAAO,KAAKuR,QAAZ;AACA,K,CAED;;;;WACA,4BAAmB;AAClB,UAAK,UAAU,KAAKpF,aAApB,EAAoC;AACnC,aAAKA,aAAL,GAAqB,KAAKoE,oBAAL,EAArB;AACA;;AAED,aAAO,KAAKpE,aAAZ;AACA,K,CAED;;;;WACA,6BAAoB;AACnB,aAAO,CAAC,CAAE1O,MAAM,CAACC,IAAP,CAAa,KAAKoV,gBAAL,EAAb,EAAuCnV,MAAjD;AACA,K,CAED;;;;WACA,wBAAgBuN,OAAhB,EAA0B;AACzB,UAAI6H,UAAU,GAAG7H,OAAO,CAACtJ,IAAR,CAAc,aAAd,CAAjB;AAAA,UACC8G,MADD;AAAA,UAECsK,cAFD;;AAIA,cAASD,UAAT;AACC,aAAK,KAAL;AACA,aAAK,QAAL;AACA,aAAK,aAAL;AACC,cAAM/F,SAAS,GAAG9B,OAAO,CAAClL,IAAR,CAAc,kBAAd,CAAlB;;AAEA,cAAKgN,SAAS,CAACrP,MAAf,EAAwB;AACvB,gBAAMwJ,GAAG,GAAG6F,SAAS,CAAC7F,GAAV,EAAZ;AAEAuB,kBAAM,GAAG,aAAa,wBAAOvB,GAApB,IAA0B,CAAC,EAAEA,GAAF,aAAEA,GAAF,eAAEA,GAAG,CAAExJ,MAAP,CAA3B,GAA2C,CAAC,CAAEwJ,GAAvD;AACA;AACA;;AAEF;;AACA,aAAK,YAAL;AACCuB,gBAAM,GAAGwC,OAAO,CACdlL,IADO,CACD,cADC,EAEP+G,MAFO,CAEC,SAFD,EAEapJ,MAFtB;AAGA;;AACD,aAAK,cAAL;AACC,cAAM8Q,IAAI,GAAGJ,UAAU,CACrBnD,OAAO,CAAClL,IAAR,CAAc,eAAd,EAAgC4B,IAAhC,CAAsC,MAAtC,CADqB,CAAvB;AAAA,cAGCwM,GAAG,GAAGC,UAAU,CACfnD,OAAO,CAAClL,IAAR,CAAc,eAAd,EAAgC4B,IAAhC,CAAsC,KAAtC,CADe,CAHjB;AAAA,cAMC0M,GAAG,GAAGD,UAAU,CACfnD,OAAO,CAAClL,IAAR,CAAc,eAAd,EAAgC4B,IAAhC,CAAsC,KAAtC,CADe,CANjB;AAAA,cASC2M,UAAU,GAAGF,UAAU,CACtBnD,OAAO,CAAClL,IAAR,CAAc,mBAAd,EAAoCmH,GAApC,EADsB,CATxB;AAAA,cAYCqH,UAAU,GAAGH,UAAU,CACtBnD,OAAO,CAAClL,IAAR,CAAc,mBAAd,EAAoCmH,GAApC,EADsB,CAZxB;AAgBAuB,gBAAM,GACLuK,IAAI,CAACC,GAAL,CAAU3E,UAAU,GAAGH,GAAvB,KAAgCK,IAAhC,IACAwE,IAAI,CAACC,GAAL,CAAU1E,UAAU,GAAGF,GAAvB,KAAgCG,IAFjC;AAGA;;AACD,aAAK,SAAL;AACC/F,gBAAM,GACL,iBAAiBwC,OAAO,CAAClL,IAAR,CAAc,kBAAd,EAAmCmH,GAAnC,EADlB;AAEA;;AACD;AACCuB,gBAAM,GAAG,KAAT;AACA;AA9CF;;AAiDAsK,oBAAc,GAAG9H,OAAO,CAAC7O,cAAR,CAAwB,4BAAxB,EAAsD,CACtEqM,MADsE,EAEtE,IAFsE,CAAtD,CAAjB;AAIAA,YAAM,GACL,OAAOsK,cAAP,KAA0B,WAA1B,GAAwCA,cAAxC,GAAyDtK,MAD1D;AAGA,aAAOA,MAAP;AACA,K,CAED;;;;WACA,0BAAkBwC,OAAlB,EAA4B;AAC3B,UAAI6H,UAAU,GAAG7H,OAAO,CAACtJ,IAAR,CAAc,aAAd,CAAjB;AAAA,UACCqH,KADD;;AAGA,cAAS8J,UAAT;AACC,aAAK,KAAL;AACA,aAAK,QAAL;AACA,aAAK,aAAL;AACC,cAAM/F,SAAS,GAAG9B,OAAO,CAAClL,IAAR,CAAc,kBAAd,CAAlB;;AAEA,cAAKgN,SAAS,CAACrP,MAAf,EAAwB;AACvB,gBAAMwJ,GAAG,GAAG6F,SAAS,CAAC7F,GAAV,EAAZ;AAEA8B,iBAAK,GAAG,aAAa,wBAAO9B,GAApB,IAA0BA,GAA1B,aAA0BA,GAA1B,uBAA0BA,GAAG,CAAExJ,MAA/B,GAAwC,CAAC,CAAC,CAAEwJ,GAApD;AACA;AACA;;AAEF;;AACA,aAAK,YAAL;AACC8B,eAAK,GAAGiC,OAAO,CACblL,IADM,CACA,eADA,EAENA,IAFM,CAEA,SAFA,EAEYrC,MAFpB;AAGA;;AACD,aAAK,SAAL;AACC,cAAK,KAAK6T,cAAL,CAAqBtG,OAArB,CAAL,EAAsC;AACrCjC,iBAAK,GAAG,CAAR;AACA;;AACD;;AACD,aAAK,cAAL;AACA;AACCA,eAAK,GAAG,CAAR;AACA;AA3BF;;AA8BA,aAAOA,KAAP;AACA,K,CAED;;;;WACA,6BAAqBiC,OAArB,EAA+B;AAC9B,UAAI6H,UAAU,GAAG7H,OAAO,CAACtJ,IAAR,CAAc,aAAd,CAAjB;AAAA,UACCmK,QAAQ,GAAG,UAAUb,OAAO,CAACtJ,IAAR,CAAc,UAAd,CADtB;AAAA,UAECoL,SAAS,GAAG9B,OAAO,CAAClL,IAAR,CAAc,kBAAd,CAFb;AAAA,UAGCmT,UAAU,GAAG,EAHd;AAAA,UAICC,kBAJD;AAAA,UAKCC,OALD;;AAOA,cAASN,UAAT;AACC,aAAK,KAAL;AACC,cAAIO,WAAW,GAAG,EAAlB;AAAA,cACCC,QAAQ,GAAGrI,OAAO,CAACtJ,IAAR,CAAc,UAAd,CADZ;AAAA,cAEC4R,MAAM,GAAG,MAAMD,QAAQ,CAACpU,OAAT,CAAkB,QAAlB,CAFhB;AAAA,cAGCsU,QAAQ,GAAGvI,OAAO,CAACtJ,IAAR,CAAc,UAAd,CAHZ;;AAKA,cAAKoL,SAAS,CAACrP,MAAf,EAAwB;AACvB,gBAAKoO,QAAL,EAAgB;AACfuH,yBAAW,GAAGtG,SAAS,CAAC7F,GAAV,EAAd;AACA,aAFD,MAEO;AACNmM,yBAAW,CAACtL,IAAZ,CAAkBgF,SAAS,CAAC7F,GAAV,EAAlB;AACA;AACD,WAND,MAMO;AACNkM,mBAAO,GAAGnI,OAAO,CACflL,IADQ,CACF,cADE,EAER+G,MAFQ,CAEA,SAFA,EAGRmF,QAHQ,CAGE,UAHF,CAAV;AAKAoH,uBAAW,GAAGD,OAAO,CAACK,GAAR,GAAchV,MAAd,CAAsB,UAAWC,CAAX,EAAcC,CAAd,EAAkB;AACrD,kBAAIuI,GAAJ;AAEAvI,eAAC,GAAG9D,CAAC,CAAE8D,CAAF,CAAL;AACAuI,iBAAG,GAAGvI,CAAC,CAACuD,EAAF,CAAM,OAAN,IACHvD,CAAC,CAACoB,IAAF,CAAQ,QAAR,EAAmBmH,GAAnB,EADG,GAEHvI,CAAC,CAACgD,IAAF,CAAQ,WAAR,CAFH;;AAIA,kBAAK,CAAEuF,GAAP,EAAa;AACZ,uBAAOxI,CAAP;AACA;;AAEDA,eAAC,CAACqJ,IAAF,CAAQb,GAAR;AAEA,qBAAOxI,CAAP;AACA,aAfa,EAeX2U,WAfW,CAAd;AAgBA;;AAED,cAAK,CAAEvH,QAAP,EAAkB;AACjBoH,sBAAU,CAAEI,QAAF,CAAV,GAAyBD,WAAW,CAACK,GAAZ,EAAzB;AACA,WAFD,MAEO;AACN,gBAAMC,IAAI,GAAG,CAAEJ,MAAF,IAAY,UAAUC,QAAtB,GAAiC,GAAjC,GAAuC,GAApD;AACAN,sBAAU,CAAEI,QAAF,CAAV,GAAyBD,WAAW,CAAChJ,IAAZ,CAAkBsJ,IAAlB,CAAzB;AACA;;AAED,cAAKJ,MAAL,EAAc;AACbL,sBAAU,CAAEI,QAAQ,CAACjV,OAAT,CAAkB,SAAlB,EAA6B,aAA7B,CAAF,CAAV,GACCmV,QADD;AAEA;;AAED;;AACD,aAAK,QAAL;AACC,cAAKzG,SAAS,CAACrP,MAAf,EAAwB;AACvBwV,sBAAU,CAACU,aAAX,GAA2B7G,SAAS,CAAC7F,GAAV,EAA3B;AACA,WAFD,MAEO;AACNkM,mBAAO,GAAGnI,OAAO,CACflL,IADQ,CACF,cADE,EAER+G,MAFQ,CAEA,SAFA,EAGRmF,QAHQ,CAGE,UAHF,CAAV;;AAKA,gBAAK,CAAEH,QAAP,EAAkB;AACjBsH,qBAAO,GAAGA,OAAO,CAACnT,KAAR,EAAV;AACAiT,wBAAU,CAACU,aAAX,GAA2BR,OAAO,CAAClR,EAAR,CAAY,OAAZ,IACxBkR,OAAO,CAACrT,IAAR,CAAc,QAAd,EAAyBmH,GAAzB,EADwB,GAExBkM,OAAO,CAACzR,IAAR,CAAc,QAAd,CAFH;AAGA,aALD,MAKO;AACNuR,wBAAU,CAACU,aAAX,GAA2BR,OAAO,CAChCK,GADyB,GAEzBhV,MAFyB,CAEjB,UAAWC,CAAX,EAAcC,CAAd,EAAkB;AAC1B,oBAAIuI,GAAJ;AAEAvI,iBAAC,GAAG9D,CAAC,CAAE8D,CAAF,CAAL;AACAuI,mBAAG,GAAGvI,CAAC,CAACuD,EAAF,CAAM,OAAN,IACHvD,CAAC,CAACoB,IAAF,CAAQ,QAAR,EAAmBmH,GAAnB,EADG,GAEHvI,CAAC,CAACgD,IAAF,CAAQ,QAAR,CAFH;;AAIA,oBAAK,CAAEuF,GAAP,EAAa;AACZ,yBAAOxI,CAAP;AACA;;AAEDA,iBAAC,CAACqJ,IAAF,CAAQb,GAAR;AAEA,uBAAOxI,CAAP;AACA,eAjByB,EAiBvB,EAjBuB,EAkBzB2L,IAlByB,CAkBnB,GAlBmB,CAA3B;AAmBA;AACD;;AACD;;AACD,aAAK,aAAL;AACC,cAAK0C,SAAS,CAACrP,MAAf,EAAwB;AACvB,gBAAKoO,QAAL,EAAgB;AACfoH,wBAAU,CAACW,YAAX,GAA0B9G,SAAS,CAAC7F,GAAV,GAAgBmD,IAAhB,CAAsB,GAAtB,CAA1B;AACA,aAFD,MAEO;AACN6I,wBAAU,CAACY,SAAX,GAAuB/G,SAAS,CAC9B7F,GADqB,GAErB1I,KAFqB,CAEd,GAFc,EAEP,CAFO,CAAvB;AAGA0U,wBAAU,CAACa,SAAX,GAAuBhH,SAAS,CAC9B7F,GADqB,GAErB1I,KAFqB,CAEd,GAFc,EAEP,CAFO,CAAvB;AAGA;AACD,WAXD,MAWO;AACN4U,mBAAO,GAAGnI,OAAO,CACflL,IADQ,CACF,cADE,EAER+G,MAFQ,CAEA,SAFA,EAGRmF,QAHQ,CAGE,UAHF,CAAV;;AAKA,gBAAKH,QAAL,EAAgB;AACfoH,wBAAU,CAACW,YAAX,GAA0BT,OAAO,CAC/BK,GADwB,GAExBhV,MAFwB,CAEhB,UAAEC,CAAF,EAAKC,CAAL,EAAY;AACpB,oBAAIwP,GAAG,GAAGtT,CAAC,CAAE8D,CAAF,CAAD,CAAOgD,IAAP,CAAa,WAAb,CAAV;AAAA,oBACC0M,GAAG,GAAGxT,CAAC,CAAE8D,CAAF,CAAD,CAAOgD,IAAP,CAAa,WAAb,CADP;AAGAjD,iBAAC,IAAI,CAAE2P,GAAG,aAAOF,GAAP,cAAgBE,GAAhB,IAAyBF,GAA9B,IAAsC,GAA3C;AAEA,uBAAOzP,CAAP;AACA,eATwB,EAStB,EATsB,EAUxBL,OAVwB,CAUf,SAVe,EAUJ,IAVI,CAA1B;AAWA,aAZD,MAYO;AACN6U,wBAAU,CAACY,SAAX,GAAuB1F,UAAU,CAChCgF,OAAO,CAACnT,KAAR,GAAgB0B,IAAhB,CAAsB,WAAtB,CADgC,CAAjC;AAGAuR,wBAAU,CAACa,SAAX,GAAuB3F,UAAU,CAChCgF,OAAO,CAACnT,KAAR,GAAgB0B,IAAhB,CAAsB,WAAtB,CADgC,CAAjC;AAGA;AACD;;AACD;;AACD,aAAK,cAAL;AACCuR,oBAAU,CAACY,SAAX,GAAuB1F,UAAU,CAChCnD,OAAO,CAAClL,IAAR,CAAc,mBAAd,EAAoCmH,GAApC,EADgC,CAAjC;AAGAgM,oBAAU,CAACa,SAAX,GAAuB3F,UAAU,CAChCnD,OAAO,CAAClL,IAAR,CAAc,mBAAd,EAAoCmH,GAApC,EADgC,CAAjC;AAGA;;AACD,aAAK,YAAL;AACC,cAAK+D,OAAO,CAAClL,IAAR,CAAc,iBAAd,EAAkCmC,EAAlC,CAAsC,SAAtC,CAAL,EAAyD;AACxDgR,sBAAU,CAACc,aAAX,GAA2B,CAA3B;AACA;;AACD,cAAK/I,OAAO,CAAClL,IAAR,CAAc,kBAAd,EAAmCmC,EAAnC,CAAuC,SAAvC,CAAL,EAA0D;AACzDgR,sBAAU,CAACe,cAAX,GAA4B,CAA5B;AACA;;AACD,cAAKhJ,OAAO,CAAClL,IAAR,CAAc,kBAAd,EAAmCmC,EAAnC,CAAuC,SAAvC,CAAL,EAA0D;AACzDgR,sBAAU,CAACgB,eAAX,GAA6B,CAA7B;AACA;;AACD;;AACD,aAAK,SAAL;AACChB,oBAAU,CAACiB,OAAX,GAAqBlJ,OAAO,CAAClL,IAAR,CAAc,kBAAd,EAAmCmH,GAAnC,EAArB;AACA;;AACD;AACC;AAtJF;;AAyJAiM,wBAAkB,GAAGlI,OAAO,CAAC7O,cAAR,CACpB,6BADoB,EAEpB,CAAE8W,UAAF,EAAchV,IAAd,CAFoB,CAArB;AAIAgV,gBAAU,GACT,OAAOC,kBAAP,KAA8B,WAA9B,GACGA,kBADH,GAEGD,UAHJ;AAKA,aAAOA,UAAP;AACA,K,CAED;;;;WACA,gCAAuB;AACtB,UAAIA,UAAU,GAAG,EAAjB;AACA,UAAMhV,IAAI,GAAG,IAAb;AAEA,WAAK8M,UAAL,GAAkBtJ,IAAlB,CAAwB,YAAY;AACnC,YAAMuJ,OAAO,GAAGpQ,CAAC,CAAE,IAAF,CAAjB;;AAEA,YAAKqD,IAAI,CAACqT,cAAL,CAAqBtG,OAArB,CAAL,EAAsC;AACrC,cAAMmJ,gBAAgB,GAAGlW,IAAI,CAACmW,mBAAL,CAA0BpJ,OAA1B,CAAzB;AAEAiI,oBAAU,GAAGhV,IAAI,CAACoW,eAAL,CACZpB,UADY,EAEZkB,gBAFY,EAGZnJ,OAHY,CAAb;AAKA;AACD,OAZD;AAcA,aAAOiI,UAAP;AACA,K,CAED;;;;WACA,gCAAwBA,UAAxB,EAAqC;AACpC,UAAMhV,IAAI,GAAG,IAAb;AAEA,aAAO,KAAK8M,UAAL,GAAkBlE,MAAlB,CAA0B,YAAY;AAC5C,YAAMmE,OAAO,GAAGpQ,CAAC,CAAE,IAAF,CAAjB;;AAEA,YAAKqD,IAAI,CAACqT,cAAL,CAAqBtG,OAArB,CAAL,EAAsC;AACrC,cAAImJ,gBAAgB,GAAGlW,IAAI,CAACmW,mBAAL,CAA0BpJ,OAA1B,CAAvB;AAAA,cACCsJ,OAAO,GAAG,KADX;;AAGA,eAAM,IAAMpO,IAAZ,IAAoB+M,UAApB,EAAiC;AAChC,gBACC,CAAE,WAAF,EAAe,WAAf,EAA4B,cAA5B,EAA6CsB,QAA7C,CACCrO,IADD,MAGEiO,gBAAgB,CAACN,SAAjB,IACDM,gBAAgB,CAACP,YAJlB,CADD,EAME;AACDU,qBAAO,GAAG,IAAV;AACA;AACA,aATD,MASO,IAAKH,gBAAgB,CAAEjO,IAAF,CAArB,EAAgC;AACtCoO,qBAAO,GAAG,IAAV;AACA;AACA;AACD;;AAED,iBAAOA,OAAP;AACA;;AAED,eAAO,KAAP;AACA,OA3BM,CAAP;AA4BA,K,CAED;;;;WACA,gCAAwBtJ,OAAxB,EAAkC;AACjC,UAAK,CAAE,KAAKsG,cAAL,CAAqBtG,OAArB,CAAP,EAAwC;AACvC,aAAKwJ,oBAAL,CAA2BxJ,OAA3B;AACA,OAFD,MAEO;AACN,aAAK4B,oBAAL,CAA2B5B,OAA3B;AACA;AACD,K,CAED;;;;WACA,sCAA6B;AAC5B,UAAK,CAAE,KAAKyJ,iBAAL,EAAP,EAAkC;AACjC,aAAKC,wBAAL;AACA,OAFD,MAEO;AACN,aAAKxJ,wBAAL;AACA;AACD,K,CAED;;;;WACA,8BAAsBF,OAAtB,EAAgC;AAAA;;AAC/B,UACC,CAAE,KAAKsG,cAAL,CAAqBtG,OAArB,CAAF,IACA,CAAE1O,oBAAoB,CAACqY,iBAFxB,EAGE;AACD;AACA,OAN8B,CAQ/B;;;AACA3J,aAAO,CAAClL,IAAR,CAAc,kBAAd,EAAmC8N,MAAnC,GAT+B,CAW/B;;AACAhT,OAAC,CAAE,MAAF,EAAU;AACV,iBAAO,iBADG;AAEVoK,YAAI,EAAE1I,oBAAoB,CAACqG,MAArB,CAA4BiS,eAFxB;AAGVC,YAAI,EAAE;AAHI,OAAV,CAAD,CAKEhQ,SALF,CAKamG,OAAO,CAAClL,IAAR,CAAc,iBAAd,CALb,EAMEtE,EANF,CAMM,OANN,EAMe,UAAE+F,EAAF,EAAU;AACvBA,UAAE,CAACC,cAAH;;AAEA,cAAI,CAACsT,gBAAL,CACC9J,OADD,EAEC,KAFD,EAGC1O,oBAAoB,CAAC0V,eAHtB;;AAKA,cAAI,CAACwC,oBAAL,CAA2BxJ,OAA3B;;AAEA,YAAK1O,oBAAoB,CAAC0V,eAA1B,EAA4C;AAC3C,gBAAI,CAACpQ,UAAL;AACA;AACD,OAnBF;AAoBA,K,CAED;;;;WACA,oCAA2B;AAAA;;AAC1B,UAAK,CAAE,KAAK6S,iBAAL,EAAF,IAA8B,CAAE,KAAKjJ,QAA1C,EAAqD;AACpD;AACA,OAHyB,CAK1B;;;AACA,WAAK5L,OAAL,CAAaE,IAAb,CAAmB,kBAAnB,EAAwC8N,MAAxC,GAN0B,CAQ1B;;AACAhT,OAAC,CAAE,MAAF,EAAU;AACV,iBAAO,iBADG;AAEVoK,YAAI,EAAE1I,oBAAoB,CAACqG,MAArB,CAA4BoS,oBAFxB;AAGVF,YAAI,EAAE;AAHI,OAAV,CAAD,CAKEhQ,SALF,CAKa,KAAKjF,OAAL,CAAaE,IAAb,CAAmB,oBAAnB,CALb,EAMEtE,EANF,CAMM,OANN,EAMe,UAAE+F,EAAF,EAAU;AACvBA,UAAE,CAACC,cAAH;;AAEA,cAAI,CAACG,oBAAL,CACCrF,oBAAoB,CAAC0V,eADtB;;AAGA,cAAI,CAAC0C,wBAAL;;AAEA,YAAKpY,oBAAoB,CAAC0V,eAA1B,EAA4C;AAC3C,gBAAI,CAACpQ,UAAL;AACA;AACD,OAjBF;AAkBA,K,CAED;;;;WACA,8BAAsBoJ,OAAtB,EAAgC;AAC/B,UACC,KAAKsG,cAAL,CAAqBtG,OAArB,KACA,CAAE1O,oBAAoB,CAACqY,iBAFxB,EAGE;AACD;AACA,OAN8B,CAQ/B;;;AACA3J,aAAO,CAAClL,IAAR,CAAc,kBAAd,EAAmC8N,MAAnC;AACA,K,CAED;;;;WACA,oCAA2B;AAC1B,UAAK,KAAK6G,iBAAL,EAAL,EAAgC;AAC/B;AACA,OAHyB,CAK1B;;;AACA,WAAK7U,OAAL,CACEE,IADF,CACQ,oBADR,EAEEkM,QAFF,CAEY,kBAFZ,EAGE4B,MAHF;AAIA,K,CAED;;;;WACA,0BAAkB5C,OAAlB,EAA2BiI,UAA3B,EAAuCf,QAAvC,EAAkD;AACjD,UAAMW,UAAU,GAAG7H,OAAO,CAACtJ,IAAR,CAAc,aAAd,CAAnB;AAAA,UACCoK,MAAM,GAAGd,OAAO,CAAClL,IAAR,CAAc,cAAd,CADV;AAAA,UAECkV,YAAY,GAAGlJ,MAAM,CAACjF,MAAP,CAAe,SAAf,CAFhB;AAAA,UAGCiG,SAAS,GAAG9B,OAAO,CAAClL,IAAR,CAAc,kBAAd,CAHb;;AAKA,cAAS+S,UAAT;AACC,aAAK,KAAL;AACC,cAAMQ,QAAQ,GAAGrI,OAAO,CAACtJ,IAAR,CAAc,UAAd,CAAjB;;AAEA,cAAKoL,SAAS,CAACrP,MAAf,EAAwB;AACvB,gBAAK,CAAEwV,UAAP,EAAoB;AACnBnG,uBAAS,CAAChN,IAAV,CAAgB,QAAhB,EAA2BoG,IAA3B,CAAiC,UAAjC,EAA6C,KAA7C;AACA,aAFD,MAEO;AACN4G,uBAAS,CAAChN,IAAV,CAAgB,QAAhB,EAA2B2B,IAA3B,CAAiC,YAAY;AAC5C,oBAAMwI,OAAO,GAAGrP,CAAC,CAAE,IAAF,CAAjB;;AAEA,oBACCqP,OAAO,CAAChD,GAAR,GAAcuD,QAAd,OACAyI,UAAU,CAAEI,QAAF,CAAV,CAAuB7I,QAAvB,EAFD,EAGE;AACDP,yBAAO,CAAC/D,IAAR,CAAc,UAAd,EAA0B,KAA1B;AACA;AACD,eATD;AAUA;;AAED4G,qBAAS,CAAC3G,MAAV;AACA,WAjBD,MAiBO,IAAK,CAAE8M,UAAP,EAAoB;AAC1B+B,wBAAY,CAAChJ,QAAb,CAAuB,OAAvB,EAAiCA,QAAjC,CAA2C,GAA3C,EAAiDiJ,KAAjD;AACAD,wBAAY,CAACjP,WAAb,CAA0B,QAA1B;AACA,WAHM,MAGA;AACNiP,wBAAY,CAACvT,IAAb,CAAmB,YAAY;AAC9B,kBAAIkH,KAAK,GAAG/N,CAAC,CAAE,IAAF,CAAb;AAAA,kBACCuO,MAAM,GAAGR,KAAK,CAACqD,QAAN,CAAgB,OAAhB,CADV;AAAA,kBAECnD,OAAO,GAAGF,KAAK,CAACqD,QAAN,CAAgB,GAAhB,CAFX;AAAA,kBAGCxG,KAHD;AAKAA,mBAAK,GAAG2D,MAAM,CAAC1L,MAAP,GACL0L,MAAM,CAACrJ,IAAP,CAAa,QAAb,EAAwBmH,GAAxB,EADK,GAEL4B,OAAO,CAACnH,IAAR,CAAc,WAAd,CAFH;;AAIA,kBACC8D,KAAK,CAACgF,QAAN,OACAyI,UAAU,CAAEI,QAAF,CAAV,CAAuB7I,QAAvB,EAFD,EAGE;AACD7B,qBAAK,CAACqD,QAAN,CAAgB,OAAhB,EAA0BA,QAA1B,CAAoC,GAApC,EAA0CiJ,KAA1C;AACAtM,qBAAK,CAAC5C,WAAN,CAAmB,QAAnB;AACA;AACD,aAjBD;AAkBA;;AACD;;AACD,aAAK,QAAL;AACC,cAAK+G,SAAS,CAACrP,MAAf,EAAwB;AACvB,gBAAK,CAAEwV,UAAP,EAAoB;AACnBnG,uBAAS,CAAChN,IAAV,CAAgB,QAAhB,EAA2BoG,IAA3B,CAAiC,UAAjC,EAA6C,KAA7C;AACA,aAFD,MAEO;AACN4G,uBAAS,CAAChN,IAAV,CAAgB,QAAhB,EAA2B2B,IAA3B,CAAiC,YAAY;AAC5C,oBAAMwI,OAAO,GAAGrP,CAAC,CAAE,IAAF,CAAjB;;AAEA,oBAAKqP,OAAO,CAAChD,GAAR,OAAkBgM,UAAU,CAACU,aAAlC,EAAkD;AACjD1J,yBAAO,CAAC/D,IAAR,CAAc,UAAd,EAA0B,KAA1B;AACA;AACD,eAND;AAOA;;AAED4G,qBAAS,CAAC3G,MAAV;AACA,WAdD,MAcO,IAAK,CAAE8M,UAAP,EAAoB;AAC1B+B,wBAAY,CAAChJ,QAAb,CAAuB,OAAvB,EAAiCA,QAAjC,CAA2C,GAA3C,EAAiDiJ,KAAjD;AACAD,wBAAY,CAACjP,WAAb,CAA0B,QAA1B;AACA,WAHM,MAGA;AACNiP,wBAAY,CAACvT,IAAb,CAAmB,YAAY;AAC9B,kBAAIkH,KAAK,GAAG/N,CAAC,CAAE,IAAF,CAAb;AAAA,kBACCuO,MAAM,GAAGR,KAAK,CAACqD,QAAN,CAAgB,OAAhB,CADV;AAAA,kBAECnD,OAAO,GAAGF,KAAK,CAACqD,QAAN,CAAgB,GAAhB,CAFX;AAAA,kBAGCxG,KAHD;AAKAA,mBAAK,GAAG2D,MAAM,CAAC1L,MAAP,GACL0L,MAAM,CAACrJ,IAAP,CAAa,QAAb,EAAwBmH,GAAxB,EADK,GAEL4B,OAAO,CAACnH,IAAR,CAAc,QAAd,CAFH;;AAIA,kBAAK8D,KAAK,KAAKyN,UAAU,CAACU,aAA1B,EAA0C;AACzChL,qBAAK,CAACqD,QAAN,CAAgB,OAAhB,EAA0BA,QAA1B,CAAoC,GAApC,EAA0CiJ,KAA1C;AACAtM,qBAAK,CAAC5C,WAAN,CAAmB,QAAnB;AACA;AACD,aAdD;AAeA;;AACD;;AACD,aAAK,aAAL;AACC,cAAK+G,SAAS,CAACrP,MAAf,EAAwB;AACvB,gBAAK,CAAEwV,UAAP,EAAoB;AACnBnG,uBAAS,CAAChN,IAAV,CAAgB,QAAhB,EAA2BoG,IAA3B,CAAiC,UAAjC,EAA6C,KAA7C;AACA,aAFD,MAEO;AACN4G,uBAAS,CAAChN,IAAV,CAAgB,QAAhB,EAA2B2B,IAA3B,CAAiC,YAAY;AAC5C,oBAAMwI,OAAO,GAAGrP,CAAC,CAAE,IAAF,CAAjB;AAAA,oBACCsa,cAAc,GACbjC,UAAU,CAACY,SAAX,IACEZ,UAAU,CAACa,SAAX,cACMb,UAAU,CAACa,SADjB,IAEC,EAHH,CAFF;;AAOA,oBAAK7J,OAAO,CAAChD,GAAR,OAAkBiO,cAAvB,EAAwC;AACvCjL,yBAAO,CAAC/D,IAAR,CAAc,UAAd,EAA0B,KAA1B;AACA;AACD,eAXD;AAYA;;AAED4G,qBAAS,CAAC3G,MAAV;AACA,WAnBD,MAmBO,IAAK,CAAE8M,UAAP,EAAoB;AAC1B+B,wBAAY,CAAChJ,QAAb,CAAuB,OAAvB,EAAiCA,QAAjC,CAA2C,GAA3C,EAAiDiJ,KAAjD;AACAD,wBAAY,CAACjP,WAAb,CAA0B,QAA1B;AACA,WAHM,MAGA;AACNiP,wBAAY,CAACvT,IAAb,CAAmB,YAAY;AAC9B,kBAAIkH,KAAK,GAAG/N,CAAC,CAAE,IAAF,CAAb;AAAA,kBACCuO,MAAM,GAAGR,KAAK,CAACqD,QAAN,CAAgB,OAAhB,CADV;AAAA,kBAECnD,OAAO,GAAGF,KAAK,CAACqD,QAAN,CAAgB,GAAhB,CAFX;AAAA,kBAGCkJ,cAHD;AAAA,kBAIC1P,KAJD;AAMAA,mBAAK,GAAG2D,MAAM,CAAC1L,MAAP,GACL0L,MAAM,CAACrJ,IAAP,CAAa,QAAb,EAAwBmH,GAAxB,EADK,GAEL4B,OAAO,CAACnH,IAAR,CAAc,WAAd,KACEmH,OAAO,CAACnH,IAAR,CAAc,WAAd,IACA,MAAMmH,OAAO,CAACnH,IAAR,CAAc,WAAd,CADN,GAEA,EAHF,CAFH;;AAOA,kBAAKuR,UAAU,CAACY,SAAhB,EAA4B;AAC3BqB,8BAAc,GACbjC,UAAU,CAACY,SAAX,IACEZ,UAAU,CAACa,SAAX,GACC,MAAMb,UAAU,CAACa,SADlB,GAEC,EAHH,CADD;AAKA,eAND,MAMO,IAAKb,UAAU,CAACW,YAAhB,EAA+B;AACrCsB,8BAAc,GAAGjC,UAAU,CAACW,YAA5B;AACA;;AAED,kBAAKpO,KAAK,KAAK0P,cAAf,EAAgC;AAC/BvM,qBAAK,CAACqD,QAAN,CAAgB,OAAhB,EAA0BA,QAA1B,CAAoC,GAApC,EAA0CiJ,KAA1C;AACAtM,qBAAK,CAAC5C,WAAN,CAAmB,QAAnB;AACA;AACD,aA5BD;AA6BA;;AACD;;AACD,aAAK,cAAL;AACC,cAAMoP,YAAY,GAAGnK,OAAO,CAAClL,IAAR,CAAc,eAAd,CAArB;AAEAkL,iBAAO,CACLlL,IADF,CACQ,mBADR,EAEEmH,GAFF,CAEOkO,YAAY,CAACzT,IAAb,CAAmB,KAAnB,CAFP;AAGAsJ,iBAAO,CACLlL,IADF,CACQ,mBADR,EAEEmH,GAFF,CAEOkO,YAAY,CAACzT,IAAb,CAAmB,KAAnB,CAFP,EAGEyE,MAHF;AAIA;;AACD,aAAK,SAAL;AACC6E,iBAAO,CAAClL,IAAR,CAAc,QAAd,EAAyBmH,GAAzB,CAA8B,YAA9B;AACA;;AACD,aAAK,YAAL;AACC,cAAK,CAAEgM,UAAP,EAAoB;AACnBjI,mBAAO,CACLlL,IADF,CACQ,kBADR,EAEEA,IAFF,CAEQ,QAFR,EAGEoG,IAHF,CAGQ,SAHR,EAGmB,KAHnB,EAIEC,MAJF;AAKA6E,mBAAO,CACLlL,IADF,CACQ,iBADR,EAEEA,IAFF,CAEQ,QAFR,EAGEoG,IAHF,CAGQ,SAHR,EAGmB,KAHnB,EAIEC,MAJF;AAKA6E,mBAAO,CACLlL,IADF,CACQ,kBADR,EAEEA,IAFF,CAEQ,QAFR,EAGEoG,IAHF,CAGQ,SAHR,EAGmB,KAHnB,EAIEC,MAJF;AAMA2F,kBAAM,CAAC/F,WAAP,CAAoB,QAApB;AACA,WAlBD,MAkBO;AACN,gBAAKkN,UAAL,aAAKA,UAAL,eAAKA,UAAU,CAAEe,cAAjB,EAAkC;AACjChJ,qBAAO,CACLlL,IADF,CACQ,kBADR,EAEEA,IAFF,CAEQ,QAFR,EAGEoG,IAHF,CAGQ,SAHR,EAGmB,KAHnB,EAIEC,MAJF,GAKE/I,OALF,CAKW,cALX,EAME2I,WANF,CAMe,QANf;AAOA;;AAED,gBAAKkN,UAAL,aAAKA,UAAL,eAAKA,UAAU,CAAEc,aAAjB,EAAiC;AAChC/I,qBAAO,CACLlL,IADF,CACQ,iBADR,EAEEA,IAFF,CAEQ,QAFR,EAGEoG,IAHF,CAGQ,SAHR,EAGmB,KAHnB,EAIEC,MAJF,GAKE/I,OALF,CAKW,cALX,EAME2I,WANF,CAMe,QANf;AAOA;;AAED,gBAAKkN,UAAL,aAAKA,UAAL,eAAKA,UAAU,CAAEgB,eAAjB,EAAmC;AAClCjJ,qBAAO,CACLlL,IADF,CACQ,kBADR,EAEEA,IAFF,CAEQ,QAFR,EAGEoG,IAHF,CAGQ,SAHR,EAGmB,KAHnB,EAIEC,MAJF,GAKE/I,OALF,CAKW,cALX,EAME2I,WANF,CAMe,QANf;AAOA;AACD;;AACD;;AACD;AACC+F,gBAAM,CAAC/F,WAAP,CAAoB,QAApB;AACA;AA3MF;;AA8MA,WAAKkG,aAAL,GAAqB,KAArB;;AAEA,UAAKiG,QAAL,EAAgB;AACf,aAAKrL,MAAL;AACA;AACD,K,CAED;;;;WACA,8BAAsBqL,QAAtB,EAAiC;AAChC,UAAMjU,IAAI,GAAG,IAAb;AAAA,UACCoT,QAAQ,GAAG,KAAKtG,UAAL,EADZ;AAGAsG,cAAQ,CAAC5P,IAAT,CAAe,YAAY;AAC1B,YAAMuJ,OAAO,GAAGpQ,CAAC,CAAE,IAAF,CAAjB;AAEAqD,YAAI,CAAC6W,gBAAL,CAAuB9J,OAAvB;AACA,OAJD;AAMA,WAAKiB,aAAL,GAAqB,KAArB;;AAEA,UAAKiG,QAAL,EAAgB;AACf,aAAKrL,MAAL;AACA;;AAED,aAAO,IAAP;AACA,K,CAED;;;;WACA,sCAA8BoM,UAA9B,EAA0Cf,QAA1C,EAAqD;AACpD,UAAMjU,IAAI,GAAG,IAAb;AAAA,UACCoT,QAAQ,GAAG,KAAK+D,sBAAL,CAA6BnC,UAA7B,CADZ;;AAGA,UAAK,CAAE5B,QAAQ,CAAC5T,MAAhB,EAAyB;AACxB,eAAO,KAAP;AACA;;AAED4T,cAAQ,CAAC5P,IAAT,CAAe,YAAY;AAC1B,YAAMuJ,OAAO,GAAGpQ,CAAC,CAAE,IAAF,CAAjB;AAEAqD,YAAI,CAAC6W,gBAAL,CAAuB9J,OAAvB,EAAgCiI,UAAhC,EAA4Cf,QAA5C;AACA,OAJD;AAMA,aAAO,IAAP;AACA,K,CAED;;;;WACA,qBAAY;AAAA;;AACX,UAAK,CAAE,KAAK1G,QAAZ,EAAuB;AACtB;AACA;;AAED,UAAKlP,oBAAoB,CAAC+Y,qBAA1B,EAAkD;AACjD,aAAKC,oBAAL;AACA,OAFD,MAEO;AACN,aAAKC,qBAAL;AACA;;AAED3a,OAAC,CAAE,MAAF,CAAD,CACE4S,GADF,CACO,UADP,EACmB,QADnB,EAEE3L,QAFF,CAEY,6BAFZ;AAIA,WAAKjC,OAAL,CAAagI,IAAb;AAEA+G,gBAAU,CAAE,YAAM;AACjB,eAAI,CAAC/O,OAAL,CAAaiC,QAAb,CAAuB,MAAvB;AACA,OAFS,EAEP,GAFO,CAAV;AAGA,K,CAED;;;;WACA,sBAAa;AAAA;;AACZ,UAAK,CAAE,KAAK2J,QAAZ,EAAuB;AACtB;AACA;;AAED,WAAK5L,OAAL,CAAamG,WAAb,CAA0B,MAA1B;AAEA4I,gBAAU,CAAE,YAAM;AACjB,eAAI,CAAC/O,OAAL,CAAa4D,IAAb;;AACA5I,SAAC,CAAE,MAAF,CAAD,CACE4S,GADF,CACO,UADP,EACmB,MADnB,EAEEzH,WAFF,CAEe,6BAFf;AAGA,OALS,EAKP,GALO,CAAV;AAMA,K,CAED;;;;WACA,qBAAayP,KAAb,EAAqB;AACpB,UAAK,gBAAgB,OAAOC,UAA5B,EAAyC;AAAA;;AACxCD,aAAK,GAAGC,UAAU,CAACC,WAAX,CAAwBF,KAAxB,EAA+B;AACtCG,gBAAM,2BAAErZ,oBAAoB,CAACsZ,eAAvB,0DAAE,sBAAsCD,MADR;AAEtCE,iBAAO,4BAAEvZ,oBAAoB,CAACsZ,eAAvB,2DAAE,uBAAsCC,OAFT;AAGtCC,kBAAQ,4BAAExZ,oBAAoB,CAACsZ,eAAvB,2DAAE,uBAAsCE,QAHV;AAItCC,mBAAS,EAAE,CAJ2B;AAKtCC,gBAAM,4BAAE1Z,oBAAoB,CAACsZ,eAAvB,2DAAE,uBAAsCI;AALR,SAA/B,CAAR;AAOA;;AAED,aAAOR,KAAP;AACA,K,CAED;;;;WACA,yBAAiBS,IAAjB,EAAuBC,IAAvB,EAA6BlL,OAA7B,EAAuC;AACtC;AACA,WAAM,IAAM9E,IAAZ,IAAoBgQ,IAApB,EAA2B;AAC1B,YAAK,CAAEA,IAAI,CAACC,cAAL,CAAqBjQ,IAArB,CAAP,EAAqC;AACpC;AACA;;AAED,YAAK,CAAC,CAAE+P,IAAI,CAAE/P,IAAF,CAAZ,EAAuB;AACtB,kBAASA,IAAT;AACC,iBAAK,eAAL;AACA,iBAAK,WAAL;AACA,iBAAK,WAAL;AACA,iBAAK,eAAL;AACA,iBAAK,gBAAL;AACA,iBAAK,SAAL;AACC;AACA+P,kBAAI,CAAE/P,IAAF,CAAJ,GAAegQ,IAAI,CAAEhQ,IAAF,CAAnB;AACA;;AACD;AACC,kBAAK,MAAMA,IAAI,CAACjH,OAAL,CAAc,aAAd,CAAX,EAA2C;AAC1C;AACAgX,oBAAI,CAAE/P,IAAF,CAAJ,GAAegQ,IAAI,CAAEhQ,IAAF,CAAnB;AACA,eAHD,MAGO;AACN;AACA,oBAAMoN,MAAM,GAAG,MAAMpN,IAAI,CAACjH,OAAL,CAAc,SAAd,CAArB;AAAA,oBACCyU,IAAI,GAAGJ,MAAM,GAAG,GAAH,GAAS,GADvB;AAGA,oBAAI8C,QAAQ,GACXH,IAAI,CAAE/P,IAAF,CAAJ,CAAa9H,OAAb,CAAsB,GAAtB,EAA2BsV,IAA3B,IACAA,IADA,GAEAwC,IAAI,CAAEhQ,IAAF,CAAJ,CAAa9H,OAAb,CAAsB,GAAtB,EAA2BsV,IAA3B,CAHD;AAKA0C,wBAAQ,GAAGA,QAAQ,CACjB7X,KADS,CACFmV,IADE,EAET7M,MAFS,CAGT,UAAErB,KAAF,EAAS6Q,KAAT,EAAgBC,GAAhB;AAAA,yBACCA,GAAG,CAACrX,OAAJ,CAAauG,KAAb,MAAyB6Q,KAD1B;AAAA,iBAHS,EAMTjM,IANS,CAMHsJ,IANG,CAAX;AAQAuC,oBAAI,CAAE/P,IAAF,CAAJ,GAAekQ,QAAf;;AAEA,oBAAK9C,MAAL,EAAc;AACb,sBAAMiD,cAAc,GAAGrQ,IAAI,CAAC9H,OAAL,CACtB,SADsB,EAEtB,aAFsB,CAAvB;AAKA6X,sBAAI,CAAEM,cAAF,CAAJ,GAAyB,KAAzB;AACAL,sBAAI,CAAEK,cAAF,CAAJ,GAAyB,KAAzB;AACA;AACD;;AA3CH;;AA8CA,iBAAOL,IAAI,CAAEhQ,IAAF,CAAX;AACA;AACD;;AAEDtL,cAAA,CAAUqb,IAAV,EAAgBC,IAAhB;AAEA,aAAOD,IAAP;AACA;;;;;;;;AC9gDW;AAEb;;AAEA;AACA;AACA;AAEApb,MAAM,CAAE,UAAWD,CAAX,EAAe;AACtBA,GAAC,CAAEU,QAAF,CAAD,CACEE,EADF,CAEE,yEAFF,EAGE,YAAY;AACXZ,KAAC,CAAE,oBAAF,CAAD,CACEmR,GADF,CACO,WADP,EAEEtK,IAFF,CAEQ,YAAY;AAClB,UAAIiJ,gBAAJ,CAAsB9P,CAAC,CAAE,IAAF,CAAvB;AACA,KAJF;AAMAA,KAAC,CAAE,0BAAF,CAAD,CACEmR,GADF,CACO,WADP,EAEEtK,IAFF,CAEQ,YAAY;AAClB,UAAIL,sBAAJ,CAA4BxG,CAAC,CAAE,IAAF,CAA7B;AACA,KAJF;AAKA,GAfH,EAiBEuC,OAjBF,CAiBW,2BAjBX;AAmBAqJ,YAAU,CAACyL,cAAX,GAA4B,IAAIlX,gBAAJ,EAA5B;AACA,CArBK,CAAN,C","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: '&times;',\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: '&times;',\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:"&times;","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:"&times;","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.13.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.6
13
- * WC tested up to: 6.8
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.13.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__ ) );
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-08-08 08:50:46+00:00\n"
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:625
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:626
581
  msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
582
  msgid "Search..."
583
  msgstr "Suchen..."
584
 
585
- #: includes/class-yith-wcan-frontend.php:627
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:629
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:630
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:631
602
  msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
603
  msgid "Save"
604
  msgstr ""
605
 
606
- #: includes/class-yith-wcan-frontend.php:632
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:633
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:634
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-08-08 08:50:46+00:00\n"
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:625
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:626
582
  msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
583
  msgid "Search..."
584
  msgstr "Suchen..."
585
 
586
- #: includes/class-yith-wcan-frontend.php:627
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:629
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:630
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:631
603
  msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
604
  msgid "Save"
605
  msgstr ""
606
 
607
- #: includes/class-yith-wcan-frontend.php:632
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:633
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:634
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-08-08 08:50:46+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,51 +571,51 @@ msgctxt "[Admin] Default filter title"
571
  msgid "New filter"
572
  msgstr "Νέο φίλτρο"
573
 
574
- #: includes/class-yith-wcan-frontend.php:625
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:626
581
  msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
582
  msgid "Search..."
583
  msgstr "Αναζήτηση…"
584
 
585
- #: includes/class-yith-wcan-frontend.php:627
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:629
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:630
597
  msgctxt "[FRONTEND] Alt text for modal close button on mobile"
598
  msgid "Close"
599
  msgstr "Κλείσιμο"
600
 
601
- #: includes/class-yith-wcan-frontend.php:631
602
  msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
603
  msgid "Save"
604
  msgstr ""
605
 
606
- #: includes/class-yith-wcan-frontend.php:632
607
  msgctxt "[FRONTEND] Label for filter button, on mobile modal"
608
  msgid "Show results"
609
  msgstr "Εμφάνιση αποτελεσμάτων"
610
 
611
- #: includes/class-yith-wcan-frontend.php:633
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:634
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-08-08 08:50:46+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,51 +569,51 @@ msgctxt "[Admin] Default filter title"
569
  msgid "New filter"
570
  msgstr "Nuevo filtro"
571
 
572
- #: includes/class-yith-wcan-frontend.php:625
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:626
579
  msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
580
  msgid "Search..."
581
  msgstr "Buscar..."
582
 
583
- #: includes/class-yith-wcan-frontend.php:627
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:629
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:630
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:631
600
  msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
601
  msgid "Save"
602
  msgstr ""
603
 
604
- #: includes/class-yith-wcan-frontend.php:632
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:633
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:634
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-08-08 08:50:46+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,51 +545,51 @@ msgctxt "[Admin] Default filter title"
545
  msgid "New filter"
546
  msgstr ""
547
 
548
- #: includes/class-yith-wcan-frontend.php:625
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:626
555
  msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
556
  msgid "Search..."
557
  msgstr ""
558
 
559
- #: includes/class-yith-wcan-frontend.php:627
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:629
566
  msgctxt "[FRONTEND] Show more link on terms dropdown"
567
  msgid "Show %d more"
568
  msgstr ""
569
 
570
- #: includes/class-yith-wcan-frontend.php:630
571
  msgctxt "[FRONTEND] Alt text for modal close button on mobile"
572
  msgid "Close"
573
  msgstr ""
574
 
575
- #: includes/class-yith-wcan-frontend.php:631
576
  msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
577
  msgid "Save"
578
  msgstr ""
579
 
580
- #: includes/class-yith-wcan-frontend.php:632
581
  msgctxt "[FRONTEND] Label for filter button, on mobile modal"
582
  msgid "Show results"
583
  msgstr ""
584
 
585
- #: includes/class-yith-wcan-frontend.php:633
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:634
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-08-08 08:50:46+00:00\n"
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:625
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:626
577
  msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
578
  msgid "Search..."
579
  msgstr "Cerca..."
580
 
581
- #: includes/class-yith-wcan-frontend.php:627
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:629
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:630
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:631
598
  msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
599
  msgid "Save"
600
  msgstr ""
601
 
602
- #: includes/class-yith-wcan-frontend.php:632
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:633
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:634
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-08-08 08:50:46+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,51 +565,51 @@ msgctxt "[Admin] Default filter title"
565
  msgid "New filter"
566
  msgstr "Nieuwe filter"
567
 
568
- #: includes/class-yith-wcan-frontend.php:625
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:626
575
  msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
576
  msgid "Search..."
577
  msgstr "Zoeken..."
578
 
579
- #: includes/class-yith-wcan-frontend.php:627
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:629
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:630
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:631
596
  msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
597
  msgid "Save"
598
  msgstr ""
599
 
600
- #: includes/class-yith-wcan-frontend.php:632
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:633
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:634
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-08-08 08:50:46+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,51 +566,51 @@ msgctxt "[Admin] Default filter title"
566
  msgid "New filter"
567
  msgstr ""
568
 
569
- #: includes/class-yith-wcan-frontend.php:625
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:626
576
  msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
577
  msgid "Search..."
578
  msgstr ""
579
 
580
- #: includes/class-yith-wcan-frontend.php:627
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:629
587
  msgctxt "[FRONTEND] Show more link on terms dropdown"
588
  msgid "Show %d more"
589
  msgstr ""
590
 
591
- #: includes/class-yith-wcan-frontend.php:630
592
  msgctxt "[FRONTEND] Alt text for modal close button on mobile"
593
  msgid "Close"
594
  msgstr ""
595
 
596
- #: includes/class-yith-wcan-frontend.php:631
597
  msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
598
  msgid "Save"
599
  msgstr ""
600
 
601
- #: includes/class-yith-wcan-frontend.php:632
602
  msgctxt "[FRONTEND] Label for filter button, on mobile modal"
603
  msgid "Show results"
604
  msgstr ""
605
 
606
- #: includes/class-yith-wcan-frontend.php:633
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:634
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-08-08 08:50:46+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,51 +553,51 @@ msgctxt "[Admin] Default filter title"
553
  msgid "New filter"
554
  msgstr ""
555
 
556
- #: includes/class-yith-wcan-frontend.php:625
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:626
563
  msgctxt "[FRONTEND] Search placeholder shown in terms dropdown"
564
  msgid "Search..."
565
  msgstr ""
566
 
567
- #: includes/class-yith-wcan-frontend.php:627
568
  msgctxt "[FRONTEND] Empty items list in the dropdown"
569
  msgid "No item found"
570
  msgstr ""
571
 
572
- #: includes/class-yith-wcan-frontend.php:629
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:630
579
  msgctxt "[FRONTEND] Alt text for modal close button on mobile"
580
  msgid "Close"
581
  msgstr ""
582
 
583
- #: includes/class-yith-wcan-frontend.php:631
584
  msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
585
  msgid "Save"
586
  msgstr ""
587
 
588
- #: includes/class-yith-wcan-frontend.php:632
589
  msgctxt "[FRONTEND] Label for filter button, on mobile modal"
590
  msgid "Show results"
591
  msgstr ""
592
 
593
- #: includes/class-yith-wcan-frontend.php:633
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:634
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
- * Checks whether current tab is Premium Tab
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 = isset( $main_array_options[ $_tab ] ) ? $main_array_options[ $_tab ] : array();
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 for Bookings
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.13
5
  * Author: YITH
6
  * Text Domain: yith-plugin-fw
7
  * Domain Path: /languages/
8
  *
9
  * @author YITH
10
- * @version 3.9.13
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-02 12:02:23+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,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:146 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr ""
19
 
20
- #: includes/class-yit-assets.php:147
21
  msgid "Are you sure you want to trash the selected items?"
22
  msgstr ""
23
 
24
- #: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
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:150 yit-functions.php:2024
31
  #: yit-functions.php:2152
32
  msgid "Confirm delete"
33
  msgstr ""
34
 
35
- #: includes/class-yit-assets.php:151
36
  msgid "Are you sure you want to delete the selected items?"
37
  msgstr ""
38
 
39
- #: includes/class-yit-assets.php:151 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:172
46
  msgid "Clear"
47
  msgstr "Καθαρισμός"
48
 
49
- #: includes/class-yit-assets.php:173
50
  msgid "Clear color"
51
  msgstr "Καθαρισμός χρώματος"
52
 
53
- #: includes/class-yit-assets.php:174
54
  msgid "Default"
55
  msgstr "Προεπιλεγμένο"
56
 
57
- #: includes/class-yit-assets.php:175
58
  msgid "Select default color"
59
  msgstr "Επιλογή προεπιλεγμένου χρώματος"
60
 
61
- #: includes/class-yit-assets.php:176
62
  msgid "Select Color"
63
  msgstr "Επιλογή Χρώματος"
64
 
65
- #: includes/class-yit-assets.php:177
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:430
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:455
87
- #: includes/class-yit-plugin-panel.php:458
88
  msgid "How to install premium version"
89
  msgstr "Πώς να εγκαταστήσετε την προηγμένη έκδοση"
90
 
91
- #: includes/class-yit-plugin-panel.php:655
92
  #: includes/class-yit-plugin-subpanel.php:133
93
  msgid "Save Changes"
94
  msgstr "Αποθήκευση Αλλαγών"
95
 
96
- #: includes/class-yit-plugin-panel.php:663
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:663
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:667
112
  #: includes/class-yit-plugin-subpanel.php:143
113
  msgid "Reset to default"
114
  msgstr "Επαναφορά σε προεπιλεγμένο"
115
 
116
- #: includes/class-yit-plugin-panel.php:1074
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  msgid ""
118
  "The element you have entered already exists. Please, enter another name."
119
  msgstr "Το στοιχείο που εισάγατε υπάρχει ήδη. Παρακαλώ, εισάγετε άλλο όνομα."
120
 
121
- #: includes/class-yit-plugin-panel.php:1075
122
  msgid "Settings saved"
123
  msgstr "Ρυθμίσεις αποθηκεύτηκαν"
124
 
125
- #: includes/class-yit-plugin-panel.php:1076
126
  msgid "Settings reset"
127
  msgstr "Επαναφορά ρυθμίσεων"
128
 
129
- #: includes/class-yit-plugin-panel.php:1077
130
  msgid "Element deleted correctly."
131
  msgstr "Το στοιχείο διαγράφηκε επιτυχώς."
132
 
133
- #: includes/class-yit-plugin-panel.php:1078
134
- #: includes/class-yit-plugin-panel.php:1079
135
  msgid "Element updated correctly."
136
  msgstr "Το στοιχείο αναβαθμίστηκε επιτυχώς."
137
 
138
- #: includes/class-yit-plugin-panel.php:1080
139
  msgid "Database imported correctly."
140
  msgstr "Επιτυχής εισαγωγή βάσης δεδομένων."
141
 
142
- #: includes/class-yit-plugin-panel.php:1081
143
  msgid "An error has occurred during import. Please try again."
144
  msgstr "Παρουσιάστηκε σφάλμα κατά την εισαγωγή. Παρακαλώ προσπαθήστε ξανά."
145
 
146
- #: includes/class-yit-plugin-panel.php:1082
147
  msgid "The added file is not valid."
148
  msgstr "Το προστιθέμενο αρχείο δεν είναι έγκυρο."
149
 
150
- #: includes/class-yit-plugin-panel.php:1083
151
  msgid "Sorry, import is disabled."
152
  msgstr "Συγνώμη, η εισαγωγή είναι απενεργοποιημένη."
153
 
154
- #: includes/class-yit-plugin-panel.php:1084
155
  msgid "Sorting successful."
156
  msgstr "Διαλογή επιτυχής."
157
 
158
- #: includes/class-yit-plugin-panel.php:1573
159
  msgid "We need your support"
160
  msgstr "Χρειαζόμαστε την υποστήριξή σας"
161
 
162
- #: includes/class-yit-plugin-panel.php:1574
163
  msgid "to keep updating and improving the plugin. Please,"
164
  msgstr ""
165
  "για να διατηρήσετε την ενημέρωση και τη βελτίωση του πρόσθετου. Παρακαλώ,"
166
 
167
- #: includes/class-yit-plugin-panel.php:1576
168
  msgid "help us by leaving a good review"
169
  msgstr ""
170
 
171
- #: includes/class-yit-plugin-panel.php:1577
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:134
720
  msgctxt "Button text"
721
  msgid "Confirm"
722
  msgstr ""
723
 
724
- #: includes/class-yit-assets.php:135
725
  msgctxt "Button text"
726
  msgid "Cancel"
727
  msgstr ""
728
 
729
- #: includes/class-yit-assets.php:148 yit-functions.php:2009
730
  msgctxt "Trash confirmation action"
731
  msgid "Yes, move to trash"
732
  msgstr ""
733
 
734
- #: includes/class-yit-assets.php:152 yit-functions.php:2027
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:803
742
  msgctxt "Help tab default title"
743
  msgid "Thank you for purchasing %s!"
744
  msgstr ""
745
 
746
- #: includes/class-yit-plugin-panel.php:803
747
  msgctxt "Help tab default title"
748
  msgid "Thank you for using %s!"
749
  msgstr ""
750
 
751
- #: includes/class-yit-plugin-panel.php:815
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:866
758
  msgctxt "Premium tab name"
759
  msgid "Get premium"
760
  msgstr ""
761
 
762
- #: includes/class-yit-plugin-panel.php:878
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-02 12:02:23+00:00\n"
8
- "PO-Revision-Date: 2022-07-06 06:44:36+0000\n"
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:146 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr "Confirmar el traslado a la papelera"
19
 
20
- #: includes/class-yit-assets.php:147
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:149 includes/class-yit-assets.php:153
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:150 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:151
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:151 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:172
47
  msgid "Clear"
48
  msgstr "Borrar"
49
 
50
- #: includes/class-yit-assets.php:173
51
  msgid "Clear color"
52
  msgstr "Borrar color"
53
 
54
- #: includes/class-yit-assets.php:174
55
  msgid "Default"
56
  msgstr "Predeterminado"
57
 
58
- #: includes/class-yit-assets.php:175
59
  msgid "Select default color"
60
  msgstr "Seleccionar color predeterminado"
61
 
62
- #: includes/class-yit-assets.php:176
63
  msgid "Select Color"
64
  msgstr "Seleccionar color"
65
 
66
- #: includes/class-yit-assets.php:177
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:430
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:455
88
- #: includes/class-yit-plugin-panel.php:458
89
  msgid "How to install premium version"
90
  msgstr "Cómo instalar la versión premium"
91
 
92
- #: includes/class-yit-plugin-panel.php:655
93
  #: includes/class-yit-plugin-subpanel.php:133
94
  msgid "Save Changes"
95
  msgstr "Guardar cambios"
96
 
97
- #: includes/class-yit-plugin-panel.php:663
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:663
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:667
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:1074
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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:1075
124
  msgid "Settings saved"
125
  msgstr "Ajustes guardados"
126
 
127
- #: includes/class-yit-plugin-panel.php:1076
128
  msgid "Settings reset"
129
  msgstr "Restablecer ajustes"
130
 
131
- #: includes/class-yit-plugin-panel.php:1077
132
  msgid "Element deleted correctly."
133
  msgstr "Elemento eliminado correctamente."
134
 
135
- #: includes/class-yit-plugin-panel.php:1078
136
- #: includes/class-yit-plugin-panel.php:1079
137
  msgid "Element updated correctly."
138
  msgstr "Elemento actualizado correctamente."
139
 
140
- #: includes/class-yit-plugin-panel.php:1080
141
  msgid "Database imported correctly."
142
  msgstr "Base de datos importada correctamente."
143
 
144
- #: includes/class-yit-plugin-panel.php:1081
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:1082
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:1083
154
  msgid "Sorry, import is disabled."
155
  msgstr "Lo siento, la importación está desactivada."
156
 
157
- #: includes/class-yit-plugin-panel.php:1084
158
  msgid "Sorting successful."
159
  msgstr "Clasificación realizada con éxito"
160
 
161
- #: includes/class-yit-plugin-panel.php:1573
162
  msgid "We need your support"
163
  msgstr "Necesitamos tu apoyo"
164
 
165
- #: includes/class-yit-plugin-panel.php:1574
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:1576
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:1577
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:134
732
  msgctxt "Button text"
733
  msgid "Confirm"
734
  msgstr "Confirmar"
735
 
736
- #: includes/class-yit-assets.php:135
737
  msgctxt "Button text"
738
  msgid "Cancel"
739
  msgstr "Cancelar"
740
 
741
- #: includes/class-yit-assets.php:148 yit-functions.php:2009
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:152 yit-functions.php:2027
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:803
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:803
759
- #, fuzzy
760
  msgctxt "Help tab default title"
761
  msgid "Thank you for using %s!"
762
- msgstr "¡Gracias por comprar %s!"
763
 
764
- #: includes/class-yit-plugin-panel.php:815
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:866
773
  msgctxt "Premium tab name"
774
  msgid "Get premium"
775
  msgstr "Obtén premium"
776
 
777
- #: includes/class-yit-plugin-panel.php:878
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 el plugin desde lo más básico."
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 "¿Necesitas ayuda?"
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 gratuitas frente a las premium >"
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-02 12:02:23+00:00\n"
8
- "PO-Revision-Date: 2022-07-06 07:17:32+0000\n"
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:146 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr "Conferma eliminazione"
19
 
20
- #: includes/class-yit-assets.php:147
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:149 includes/class-yit-assets.php:153
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:150 yit-functions.php:2024
31
  #: yit-functions.php:2152
32
  msgid "Confirm delete"
33
  msgstr "Conferma eliminazione"
34
 
35
- #: includes/class-yit-assets.php:151
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:151 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,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:172
48
  msgid "Clear"
49
  msgstr "Rimuovi"
50
 
51
- #: includes/class-yit-assets.php:173
52
  msgid "Clear color"
53
  msgstr "Rimuovi colore"
54
 
55
- #: includes/class-yit-assets.php:174
56
  msgid "Default"
57
  msgstr "Predefinito"
58
 
59
- #: includes/class-yit-assets.php:175
60
  msgid "Select default color"
61
  msgstr "Seleziona il colore predefinito"
62
 
63
- #: includes/class-yit-assets.php:176
64
  msgid "Select Color"
65
  msgstr "Seleziona il colore"
66
 
67
- #: includes/class-yit-assets.php:177
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:430
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:455
88
- #: includes/class-yit-plugin-panel.php:458
89
  msgid "How to install premium version"
90
  msgstr "Come installare la versione premium"
91
 
92
- #: includes/class-yit-plugin-panel.php:655
93
  #: includes/class-yit-plugin-subpanel.php:133
94
  msgid "Save Changes"
95
  msgstr "Salva modifiche"
96
 
97
- #: includes/class-yit-plugin-panel.php:663
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:663
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:667
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:1074
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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:1075
123
  msgid "Settings saved"
124
  msgstr "Impostazioni salvate"
125
 
126
- #: includes/class-yit-plugin-panel.php:1076
127
  msgid "Settings reset"
128
  msgstr "Impostazioni azzerate"
129
 
130
- #: includes/class-yit-plugin-panel.php:1077
131
  msgid "Element deleted correctly."
132
  msgstr "Elemento rimosso correttamente."
133
 
134
- #: includes/class-yit-plugin-panel.php:1078
135
- #: includes/class-yit-plugin-panel.php:1079
136
  msgid "Element updated correctly."
137
  msgstr "Elemento aggiornato correttamente."
138
 
139
- #: includes/class-yit-plugin-panel.php:1080
140
  msgid "Database imported correctly."
141
  msgstr "Database importato correttamente."
142
 
143
- #: includes/class-yit-plugin-panel.php:1081
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:1082
148
  msgid "The added file is not valid."
149
  msgstr "Il file aggiunto non è valido."
150
 
151
- #: includes/class-yit-plugin-panel.php:1083
152
  msgid "Sorry, import is disabled."
153
  msgstr "Ci dispiace, l'importazione è disabilitata."
154
 
155
- #: includes/class-yit-plugin-panel.php:1084
156
  msgid "Sorting successful."
157
  msgstr "Ordinamento effettuato con successo."
158
 
159
- #: includes/class-yit-plugin-panel.php:1573
160
  msgid "We need your support"
161
  msgstr "Abbiamo bisogno del tuo sostegno"
162
 
163
- #: includes/class-yit-plugin-panel.php:1574
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:1576
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:1577
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:134
732
  msgctxt "Button text"
733
  msgid "Confirm"
734
  msgstr "Conferma"
735
 
736
- #: includes/class-yit-assets.php:135
737
  msgctxt "Button text"
738
  msgid "Cancel"
739
  msgstr "Annulla"
740
 
741
- #: includes/class-yit-assets.php:148 yit-functions.php:2009
742
  msgctxt "Trash confirmation action"
743
  msgid "Yes, move to trash"
744
  msgstr "Sì, sposta nel cestino"
745
 
746
- #: includes/class-yit-assets.php:152 yit-functions.php:2027
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:803
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:803
759
- #, fuzzy
760
  msgctxt "Help tab default title"
761
  msgid "Thank you for using %s!"
762
- msgstr "Grazie per aver acquistato %s!"
763
 
764
- #: includes/class-yit-plugin-panel.php:815
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:866
773
  msgctxt "Premium tab name"
774
  msgid "Get premium"
775
  msgstr "Diventa premium"
776
 
777
- #: includes/class-yit-plugin-panel.php:878
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 "Consulta la documentazione"
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 scoprire dalle basi come funziona il plugin."
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 "Ti serve aiuto?"
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 "Confronta le funzionalità gratuite e premium >"
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-02 12:02:23+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,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:146 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr "Verplaatsen naar prullenbak bevestigen"
19
 
20
- #: includes/class-yit-assets.php:147
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:149 includes/class-yit-assets.php:153
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:150 yit-functions.php:2024
33
  #: yit-functions.php:2152
34
  msgid "Confirm delete"
35
  msgstr "Verwijderen bevestigen"
36
 
37
- #: includes/class-yit-assets.php:151
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:151 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,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:172
50
  msgid "Clear"
51
  msgstr "Wissen"
52
 
53
- #: includes/class-yit-assets.php:173
54
  msgid "Clear color"
55
  msgstr "Kleur wissen"
56
 
57
- #: includes/class-yit-assets.php:174
58
  msgid "Default"
59
  msgstr "Standaard"
60
 
61
- #: includes/class-yit-assets.php:175
62
  msgid "Select default color"
63
  msgstr "Standaardkleur selecteren"
64
 
65
- #: includes/class-yit-assets.php:176
66
  msgid "Select Color"
67
  msgstr "Kleur selecteren"
68
 
69
- #: includes/class-yit-assets.php:177
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:430
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:455
91
- #: includes/class-yit-plugin-panel.php:458
92
  msgid "How to install premium version"
93
  msgstr "Hoe installeer ik de premium versie"
94
 
95
- #: includes/class-yit-plugin-panel.php:655
96
  #: includes/class-yit-plugin-subpanel.php:133
97
  msgid "Save Changes"
98
  msgstr "Wijzigingen opslaan"
99
 
100
- #: includes/class-yit-plugin-panel.php:663
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:663
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:667
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:1074
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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:1075
125
  msgid "Settings saved"
126
  msgstr "Instellingen opgeslagen"
127
 
128
- #: includes/class-yit-plugin-panel.php:1076
129
  msgid "Settings reset"
130
  msgstr "Instellingen resetten"
131
 
132
- #: includes/class-yit-plugin-panel.php:1077
133
  msgid "Element deleted correctly."
134
  msgstr "Element juist verwijderd."
135
 
136
- #: includes/class-yit-plugin-panel.php:1078
137
- #: includes/class-yit-plugin-panel.php:1079
138
  msgid "Element updated correctly."
139
  msgstr "Element juist geüpdatet."
140
 
141
- #: includes/class-yit-plugin-panel.php:1080
142
  msgid "Database imported correctly."
143
  msgstr "Database juist geïmporteerd."
144
 
145
- #: includes/class-yit-plugin-panel.php:1081
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:1082
150
  msgid "The added file is not valid."
151
  msgstr "Het toegevoegde bestand is niet geldig."
152
 
153
- #: includes/class-yit-plugin-panel.php:1083
154
  msgid "Sorry, import is disabled."
155
  msgstr "Sorry, importeren is uitgeschakeld."
156
 
157
- #: includes/class-yit-plugin-panel.php:1084
158
  msgid "Sorting successful."
159
  msgstr "Succesvol gesorteerd."
160
 
161
- #: includes/class-yit-plugin-panel.php:1573
162
  msgid "We need your support"
163
  msgstr "We hebben je hulp nodig"
164
 
165
- #: includes/class-yit-plugin-panel.php:1574
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:1576
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:1577
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:134
728
  msgctxt "Button text"
729
  msgid "Confirm"
730
  msgstr "Bevestigen"
731
 
732
- #: includes/class-yit-assets.php:135
733
  msgctxt "Button text"
734
  msgid "Cancel"
735
  msgstr "Annuleren"
736
 
737
- #: includes/class-yit-assets.php:148 yit-functions.php:2009
738
  msgctxt "Trash confirmation action"
739
  msgid "Yes, move to trash"
740
  msgstr "Ja, verplaatsen naar prullenbak"
741
 
742
- #: includes/class-yit-assets.php:152 yit-functions.php:2027
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:803
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:803
755
- #, fuzzy
756
  msgctxt "Help tab default title"
757
  msgid "Thank you for using %s!"
758
- msgstr "Bedankt voor het kopen van %s!"
759
 
760
- #: includes/class-yit-plugin-panel.php:815
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:866
767
  msgctxt "Premium tab name"
768
  msgid "Get premium"
769
  msgstr "Neem premium"
770
 
771
- #: includes/class-yit-plugin-panel.php:878
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 "Lees de documentatie"
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 "Hulp nodig?"
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 "Hulp nodig?"
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 "Bekijk de gratis vs premium opties >"
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-02 12:02:23+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,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:146 yit-functions.php:2006
18
  msgid "Confirm trash"
19
  msgstr "Подтвердить корзину"
20
 
21
- #: includes/class-yit-assets.php:147
22
  msgid "Are you sure you want to trash the selected items?"
23
  msgstr "Вы уверены, что хотите переместить в корзину выбранные элементы?"
24
 
25
- #: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
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:150 yit-functions.php:2024
32
  #: yit-functions.php:2152
33
  msgid "Confirm delete"
34
  msgstr "Подтвердите удаление"
35
 
36
- #: includes/class-yit-assets.php:151
37
  msgid "Are you sure you want to delete the selected items?"
38
  msgstr "Вы уверены, что хотите удалить выбранные элементы?"
39
 
40
- #: includes/class-yit-assets.php:151 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:172
47
  msgid "Clear"
48
  msgstr "Очистить"
49
 
50
- #: includes/class-yit-assets.php:173
51
  msgid "Clear color"
52
  msgstr "Очистить цвет"
53
 
54
- #: includes/class-yit-assets.php:174
55
  msgid "Default"
56
  msgstr "По умолчанию"
57
 
58
- #: includes/class-yit-assets.php:175
59
  msgid "Select default color"
60
  msgstr "Выберите цвет по умолчанию"
61
 
62
- #: includes/class-yit-assets.php:176
63
  msgid "Select Color"
64
  msgstr "Выберите цвет"
65
 
66
- #: includes/class-yit-assets.php:177
67
  msgid "Color value"
68
  msgstr "Цвет значения"
69
 
@@ -73,7 +73,7 @@ msgstr ""
73
  "При выполнении вашего запроса произошла ошибка; пожалуйста, повторите "
74
  "попытку позже."
75
 
76
- #: includes/class-yit-plugin-panel-woocommerce.php:430
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:455
90
- #: includes/class-yit-plugin-panel.php:458
91
  msgid "How to install premium version"
92
  msgstr "Как установить премиум версию"
93
 
94
- #: includes/class-yit-plugin-panel.php:655
95
  #: includes/class-yit-plugin-subpanel.php:133
96
  msgid "Save Changes"
97
  msgstr "Сохранить Изменения"
98
 
99
- #: includes/class-yit-plugin-panel.php:663
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:663
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:667
114
  #: includes/class-yit-plugin-subpanel.php:143
115
  msgid "Reset to default"
116
  msgstr "Сброс до заводских настроек"
117
 
118
- #: includes/class-yit-plugin-panel.php:1074
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
  msgid ""
120
  "The element you have entered already exists. Please, enter another name."
121
  msgstr "Введенный вами элемент уже существует. Пожалуйста, введите другое имя."
122
 
123
- #: includes/class-yit-plugin-panel.php:1075
124
  msgid "Settings saved"
125
  msgstr "Настройки сохранены"
126
 
127
- #: includes/class-yit-plugin-panel.php:1076
128
  msgid "Settings reset"
129
  msgstr "Сбросить настройки"
130
 
131
- #: includes/class-yit-plugin-panel.php:1077
132
  msgid "Element deleted correctly."
133
  msgstr "Элемент удален правильно."
134
 
135
- #: includes/class-yit-plugin-panel.php:1078
136
- #: includes/class-yit-plugin-panel.php:1079
137
  msgid "Element updated correctly."
138
  msgstr "Элемент обновлен правильно."
139
 
140
- #: includes/class-yit-plugin-panel.php:1080
141
  msgid "Database imported correctly."
142
  msgstr "База данных импортирована правильно."
143
 
144
- #: includes/class-yit-plugin-panel.php:1081
145
  msgid "An error has occurred during import. Please try again."
146
  msgstr "Во время импорта произошла ошибка. Пожалуйста, попробуйте еще раз."
147
 
148
- #: includes/class-yit-plugin-panel.php:1082
149
  msgid "The added file is not valid."
150
  msgstr "Добавленный файл недействителен."
151
 
152
- #: includes/class-yit-plugin-panel.php:1083
153
  msgid "Sorry, import is disabled."
154
  msgstr "Извините, импорт отключен."
155
 
156
- #: includes/class-yit-plugin-panel.php:1084
157
  msgid "Sorting successful."
158
  msgstr "Сортировка выполнена успешно."
159
 
160
- #: includes/class-yit-plugin-panel.php:1573
161
  msgid "We need your support"
162
  msgstr "Нам нужна ваша поддержка"
163
 
164
- #: includes/class-yit-plugin-panel.php:1574
165
  msgid "to keep updating and improving the plugin. Please,"
166
  msgstr "чтобы продолжать обновлять и улучшать плагин. Пожалуйста,"
167
 
168
- #: includes/class-yit-plugin-panel.php:1576
169
  msgid "help us by leaving a good review"
170
  msgstr "помогите нам, оставив хороший отзыв"
171
 
172
- #: includes/class-yit-plugin-panel.php:1577
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:134
728
  msgctxt "Button text"
729
  msgid "Confirm"
730
  msgstr "Подтвердить"
731
 
732
- #: includes/class-yit-assets.php:135
733
  msgctxt "Button text"
734
  msgid "Cancel"
735
  msgstr "Отмена"
736
 
737
- #: includes/class-yit-assets.php:148 yit-functions.php:2009
738
  msgctxt "Trash confirmation action"
739
  msgid "Yes, move to trash"
740
  msgstr "Да, удалить в корзину"
741
 
742
- #: includes/class-yit-assets.php:152 yit-functions.php:2027
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:803
750
  msgctxt "Help tab default title"
751
  msgid "Thank you for purchasing %s!"
752
  msgstr "Благодарим вас за покупку %s!"
753
 
754
- #: includes/class-yit-plugin-panel.php:803
755
- #, fuzzy
756
  msgctxt "Help tab default title"
757
  msgid "Thank you for using %s!"
758
- msgstr "Благодарим вас за покупку %s!"
759
 
760
- #: includes/class-yit-plugin-panel.php:815
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:866
769
  msgctxt "Premium tab name"
770
  msgid "Get premium"
771
  msgstr "Получите премиум"
772
 
773
- #: includes/class-yit-plugin-panel.php:878
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-02 12:02:23+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,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:146 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr "確認丟棄"
19
 
20
- #: includes/class-yit-assets.php:147
21
  msgid "Are you sure you want to trash the selected items?"
22
  msgstr "你確定要將所選的項目移至垃圾桶嗎?"
23
 
24
- #: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
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:150 yit-functions.php:2024
31
  #: yit-functions.php:2152
32
  msgid "Confirm delete"
33
  msgstr "確認刪除"
34
 
35
- #: includes/class-yit-assets.php:151
36
  msgid "Are you sure you want to delete the selected items?"
37
  msgstr "你確定要刪除所選的項目嗎?"
38
 
39
- #: includes/class-yit-assets.php:151 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:172
46
  msgid "Clear"
47
  msgstr "清除"
48
 
49
- #: includes/class-yit-assets.php:173
50
  msgid "Clear color"
51
  msgstr "清除顏色"
52
 
53
- #: includes/class-yit-assets.php:174
54
  msgid "Default"
55
  msgstr "預設"
56
 
57
- #: includes/class-yit-assets.php:175
58
  msgid "Select default color"
59
  msgstr "選擇預設顏色"
60
 
61
- #: includes/class-yit-assets.php:176
62
  msgid "Select Color"
63
  msgstr "選擇顏色"
64
 
65
- #: includes/class-yit-assets.php:177
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:430
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:455
86
- #: includes/class-yit-plugin-panel.php:458
87
  msgid "How to install premium version"
88
  msgstr "如何安裝高級版"
89
 
90
- #: includes/class-yit-plugin-panel.php:655
91
  #: includes/class-yit-plugin-subpanel.php:133
92
  msgid "Save Changes"
93
  msgstr "儲存變更"
94
 
95
- #: includes/class-yit-plugin-panel.php:663
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:663
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:667
109
  #: includes/class-yit-plugin-subpanel.php:143
110
  msgid "Reset to default"
111
  msgstr "重置為預設值"
112
 
113
- #: includes/class-yit-plugin-panel.php:1074
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  msgid ""
115
  "The element you have entered already exists. Please, enter another name."
116
  msgstr "你輸入的這個元素已經存在,請輸入另一個名稱"
117
 
118
- #: includes/class-yit-plugin-panel.php:1075
119
  msgid "Settings saved"
120
  msgstr "設定已經儲存"
121
 
122
- #: includes/class-yit-plugin-panel.php:1076
123
  msgid "Settings reset"
124
  msgstr "重置設定"
125
 
126
- #: includes/class-yit-plugin-panel.php:1077
127
  msgid "Element deleted correctly."
128
  msgstr "元素已被確實刪除"
129
 
130
- #: includes/class-yit-plugin-panel.php:1078
131
- #: includes/class-yit-plugin-panel.php:1079
132
  msgid "Element updated correctly."
133
  msgstr "元素已正確更新。"
134
 
135
- #: includes/class-yit-plugin-panel.php:1080
136
  msgid "Database imported correctly."
137
  msgstr "資料庫已被正確匯入"
138
 
139
- #: includes/class-yit-plugin-panel.php:1081
140
  msgid "An error has occurred during import. Please try again."
141
  msgstr "匯入過程中發生一個錯誤,請再試一次"
142
 
143
- #: includes/class-yit-plugin-panel.php:1082
144
  msgid "The added file is not valid."
145
  msgstr "添加的檔案無效"
146
 
147
- #: includes/class-yit-plugin-panel.php:1083
148
  msgid "Sorry, import is disabled."
149
  msgstr "抱歉,匯入功能被關閉"
150
 
151
- #: includes/class-yit-plugin-panel.php:1084
152
  msgid "Sorting successful."
153
  msgstr "已順利排序"
154
 
155
- #: includes/class-yit-plugin-panel.php:1573
156
  msgid "We need your support"
157
  msgstr "我們需要你的支援"
158
 
159
- #: includes/class-yit-plugin-panel.php:1574
160
  msgid "to keep updating and improving the plugin. Please,"
161
  msgstr "請不斷保持更新與改進外掛"
162
 
163
- #: includes/class-yit-plugin-panel.php:1576
164
  msgid "help us by leaving a good review"
165
  msgstr "留下好的評論幫助我們更進步"
166
 
167
- #: includes/class-yit-plugin-panel.php:1577
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:134
708
  msgctxt "Button text"
709
  msgid "Confirm"
710
  msgstr "確認"
711
 
712
- #: includes/class-yit-assets.php:135
713
  msgctxt "Button text"
714
  msgid "Cancel"
715
  msgstr "取消"
716
 
717
- #: includes/class-yit-assets.php:148 yit-functions.php:2009
718
  msgctxt "Trash confirmation action"
719
  msgid "Yes, move to trash"
720
  msgstr "是的,將它移至垃圾桶"
721
 
722
- #: includes/class-yit-assets.php:152 yit-functions.php:2027
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:803
730
  msgctxt "Help tab default title"
731
  msgid "Thank you for purchasing %s!"
732
  msgstr "感謝您購買 %s !"
733
 
734
- #: includes/class-yit-plugin-panel.php:803
735
- #, fuzzy
736
  msgctxt "Help tab default title"
737
  msgid "Thank you for using %s!"
738
- msgstr "感謝您購買 %s !"
739
 
740
- #: includes/class-yit-plugin-panel.php:815
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:866
747
  msgctxt "Premium tab name"
748
  msgid "Get premium"
749
  msgstr "取得高級版"
750
 
751
- #: includes/class-yit-plugin-panel.php:878
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-02 12:02:23+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,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:146 yit-functions.php:2006
28
  msgid "Confirm trash"
29
  msgstr ""
30
 
31
- #: includes/class-yit-assets.php:147
32
  msgid "Are you sure you want to trash the selected items?"
33
  msgstr ""
34
 
35
- #: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
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:150 yit-functions.php:2024
42
  #: yit-functions.php:2152
43
  msgid "Confirm delete"
44
  msgstr ""
45
 
46
- #: includes/class-yit-assets.php:151
47
  msgid "Are you sure you want to delete the selected items?"
48
  msgstr ""
49
 
50
- #: includes/class-yit-assets.php:151 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:172
56
  msgid "Clear"
57
  msgstr ""
58
 
59
- #: includes/class-yit-assets.php:173
60
  msgid "Clear color"
61
  msgstr ""
62
 
63
- #: includes/class-yit-assets.php:174
64
  msgid "Default"
65
  msgstr ""
66
 
67
- #: includes/class-yit-assets.php:175
68
  msgid "Select default color"
69
  msgstr ""
70
 
71
- #: includes/class-yit-assets.php:176
72
  msgid "Select Color"
73
  msgstr ""
74
 
75
- #: includes/class-yit-assets.php:177
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:430
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:455
96
- #: includes/class-yit-plugin-panel.php:458
97
  msgid "How to install premium version"
98
  msgstr ""
99
 
100
- #: includes/class-yit-plugin-panel.php:655
101
  #: includes/class-yit-plugin-subpanel.php:133
102
  msgid "Save Changes"
103
  msgstr ""
104
 
105
- #: includes/class-yit-plugin-panel.php:663
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:663
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:667
118
  #: includes/class-yit-plugin-subpanel.php:143
119
  msgid "Reset to default"
120
  msgstr ""
121
 
122
- #: includes/class-yit-plugin-panel.php:1074
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  msgid "The element you have entered already exists. Please, enter another name."
124
  msgstr ""
125
 
126
- #: includes/class-yit-plugin-panel.php:1075
127
  msgid "Settings saved"
128
  msgstr ""
129
 
130
- #: includes/class-yit-plugin-panel.php:1076
131
  msgid "Settings reset"
132
  msgstr ""
133
 
134
- #: includes/class-yit-plugin-panel.php:1077
135
  msgid "Element deleted correctly."
136
  msgstr ""
137
 
138
- #: includes/class-yit-plugin-panel.php:1078
139
- #: includes/class-yit-plugin-panel.php:1079
140
  msgid "Element updated correctly."
141
  msgstr ""
142
 
143
- #: includes/class-yit-plugin-panel.php:1080
144
  msgid "Database imported correctly."
145
  msgstr ""
146
 
147
- #: includes/class-yit-plugin-panel.php:1081
148
  msgid "An error has occurred during import. Please try again."
149
  msgstr ""
150
 
151
- #: includes/class-yit-plugin-panel.php:1082
152
  msgid "The added file is not valid."
153
  msgstr ""
154
 
155
- #: includes/class-yit-plugin-panel.php:1083
156
  msgid "Sorry, import is disabled."
157
  msgstr ""
158
 
159
- #: includes/class-yit-plugin-panel.php:1084
160
  msgid "Sorting successful."
161
  msgstr ""
162
 
163
- #: includes/class-yit-plugin-panel.php:1573
164
  msgid "We need your support"
165
  msgstr ""
166
 
167
- #: includes/class-yit-plugin-panel.php:1574
168
  msgid "to keep updating and improving the plugin. Please,"
169
  msgstr ""
170
 
171
- #: includes/class-yit-plugin-panel.php:1576
172
  msgid "help us by leaving a good review"
173
  msgstr ""
174
 
175
- #: includes/class-yit-plugin-panel.php:1577
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:134
705
  msgctxt "Button text"
706
  msgid "Confirm"
707
  msgstr ""
708
 
709
- #: includes/class-yit-assets.php:135
710
  msgctxt "Button text"
711
  msgid "Cancel"
712
  msgstr ""
713
 
714
- #: includes/class-yit-assets.php:148 yit-functions.php:2009
715
  msgctxt "Trash confirmation action"
716
  msgid "Yes, move to trash"
717
  msgstr ""
718
 
719
- #: includes/class-yit-assets.php:152 yit-functions.php:2027
720
  #: yit-functions.php:2154
721
  msgctxt "Delete confirmation action"
722
  msgid "Yes, delete"
723
  msgstr ""
724
 
725
- #: includes/class-yit-plugin-panel.php:803
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:803
732
  msgctxt "Help tab default title"
733
  msgid "Thank you for using %s!"
734
  msgstr ""
735
 
736
- #: includes/class-yit-plugin-panel.php:815
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:866
742
  msgctxt "Premium tab name"
743
  msgid "Get premium"
744
  msgstr ""
745
 
746
- #: includes/class-yit-plugin-panel.php:878
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.7
6
  Tested up to: 6.0
7
- Stable tag: 4.13.0
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