YITH WooCommerce Wishlist - Version 3.0.19

Version Description

  • Released on 18 February 2021 =

  • New: support for WooCommerce 5.0

  • Update: YITH plugin framework

  • Tweak: added transient for hidden products

  • Dev: fixed issue when unchecking all products in wishlist page

  • Dev: added yith_wcwl_mobile_media_query filter

  • Dev: added new filters yith_wcwl_remove_after_add_to_cart and yith_wcwl_allow_remove_after_add_to_cart

Download this release

Release Info

Developer yithemes
Plugin Icon 128x128 YITH WooCommerce Wishlist
Version 3.0.19
Comparing to
See all releases

Code changes from version 3.0.17 to 3.0.19

Files changed (122) hide show
  1. .editorconfig +0 -26
  2. .jshintrc +0 -27
  3. README.md +8 -12
  4. README.txt +18 -2
  5. assets/css/font-awesome.css +1 -1
  6. assets/js/admin/yith-wcwl.js +0 -1
  7. assets/js/admin/yith-wcwl.min.js +1 -0
  8. assets/js/jquery.selectBox.min.js +1 -7
  9. assets/js/jquery.yith-wcwl.js +0 -1
  10. assets/js/jquery.yith-wcwl.min.js +1 -0
  11. assets/js/unminified/jquery.yith-wcwl.js +4 -2
  12. composer.json +0 -16
  13. gulpfile.js +0 -85
  14. includes/class.yith-wcwl-admin.php +3 -1
  15. includes/class.yith-wcwl-form-handler.php +1 -1
  16. includes/class.yith-wcwl-frontend.php +3 -2
  17. includes/class.yith-wcwl-shortcode.php +1 -1
  18. includes/class.yith-wcwl.php +1 -1
  19. includes/functions.yith-wcwl.php +38 -29
  20. init.php +2 -2
  21. languages/yith-woocommerce-wishlist-da_DK.mo +0 -0
  22. languages/yith-woocommerce-wishlist-da_DK.po +19 -19
  23. languages/yith-woocommerce-wishlist-de_DE.mo +0 -0
  24. languages/yith-woocommerce-wishlist-de_DE.po +19 -19
  25. languages/yith-woocommerce-wishlist-es_AR.mo +0 -0
  26. languages/yith-woocommerce-wishlist-es_AR.po +19 -19
  27. languages/yith-woocommerce-wishlist-es_ES.mo +0 -0
  28. languages/yith-woocommerce-wishlist-es_ES.po +19 -19
  29. languages/yith-woocommerce-wishlist-es_MX.mo +0 -0
  30. languages/yith-woocommerce-wishlist-es_MX.po +19 -19
  31. languages/yith-woocommerce-wishlist-fa_IR.mo +0 -0
  32. languages/yith-woocommerce-wishlist-fa_IR.po +19 -19
  33. languages/yith-woocommerce-wishlist-fr_FR.mo +0 -0
  34. languages/yith-woocommerce-wishlist-fr_FR.po +19 -19
  35. languages/yith-woocommerce-wishlist-he_IL.mo +0 -0
  36. languages/yith-woocommerce-wishlist-he_IL.po +19 -19
  37. languages/yith-woocommerce-wishlist-hr.mo +0 -0
  38. languages/yith-woocommerce-wishlist-hr.po +19 -19
  39. languages/yith-woocommerce-wishlist-it_IT.mo +0 -0
  40. languages/yith-woocommerce-wishlist-it_IT.po +19 -19
  41. languages/yith-woocommerce-wishlist-ko_KR.mo +0 -0
  42. languages/yith-woocommerce-wishlist-ko_KR.po +19 -19
  43. languages/yith-woocommerce-wishlist-nl_NL.mo +0 -0
  44. languages/yith-woocommerce-wishlist-nl_NL.po +19 -19
  45. languages/yith-woocommerce-wishlist-pl_PL.mo +0 -0
  46. languages/yith-woocommerce-wishlist-pl_PL.po +19 -19
  47. languages/yith-woocommerce-wishlist-pt_BR.mo +0 -0
  48. languages/yith-woocommerce-wishlist-pt_BR.po +19 -19
  49. languages/yith-woocommerce-wishlist-pt_PT.mo +0 -0
  50. languages/yith-woocommerce-wishlist-pt_PT.po +19 -19
  51. languages/yith-woocommerce-wishlist-ru_RU.mo +0 -0
  52. languages/yith-woocommerce-wishlist-ru_RU.po +19 -19
  53. languages/yith-woocommerce-wishlist-sv_SE.mo +0 -0
  54. languages/yith-woocommerce-wishlist-sv_SE.po +19 -19
  55. languages/yith-woocommerce-wishlist-tr_TR.mo +0 -0
  56. languages/yith-woocommerce-wishlist-tr_TR.po +19 -19
  57. languages/yith-woocommerce-wishlist-uk_UA.mo +0 -0
  58. languages/yith-woocommerce-wishlist-uk_UA.po +19 -19
  59. languages/yith-woocommerce-wishlist-zh_CN.mo +0 -0
  60. languages/yith-woocommerce-wishlist-zh_CN.po +19 -19
  61. languages/yith-woocommerce-wishlist-zh_TW.mo +0 -0
  62. languages/yith-woocommerce-wishlist-zh_TW.po +19 -19
  63. languages/yith-woocommerce-wishlist.pot +250 -259
  64. package-lock.json +0 -4731
  65. package.json +0 -31
  66. plugin-fw/.jshintrc +0 -26
  67. plugin-fw/Gruntfile.js +0 -144
  68. plugin-fw/LICENSE.txt +696 -0
  69. plugin-fw/assets/css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  70. plugin-fw/assets/css/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  71. plugin-fw/assets/css/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  72. plugin-fw/assets/css/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  73. plugin-fw/assets/css/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  74. plugin-fw/assets/css/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  75. plugin-fw/assets/css/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  76. plugin-fw/assets/css/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  77. plugin-fw/assets/css/jquery-ui/images/ui-icons_222222_256x240.png +0 -0
  78. plugin-fw/assets/css/jquery-ui/images/ui-icons_2e83ff_256x240.png +0 -0
  79. plugin-fw/assets/css/jquery-ui/images/ui-icons_454545_256x240.png +0 -0
  80. plugin-fw/assets/css/jquery-ui/images/ui-icons_888888_256x240.png +0 -0
  81. plugin-fw/assets/css/jquery-ui/images/ui-icons_cd0a0a_256x240.png +0 -0
  82. plugin-fw/assets/css/jquery-ui/jquery-ui.min.css +7 -0
  83. plugin-fw/assets/css/metaboxes.css +1 -0
  84. plugin-fw/assets/css/yit-plugin-panel.css +116 -99
  85. plugin-fw/assets/css/yit-upgrade-to-pro.css +67 -61
  86. plugin-fw/assets/css/yith-fields.css +60 -48
  87. plugin-fw/assets/js/metabox.js +144 -155
  88. plugin-fw/assets/js/metabox.min.js +1 -1
  89. plugin-fw/assets/js/select2/select2.min.js +13 -0
  90. plugin-fw/assets/js/yit-plugin-panel.js +200 -208
  91. plugin-fw/assets/js/yit-plugin-panel.min.js +1 -1
  92. plugin-fw/assets/js/yith-date-format.js +60 -0
  93. plugin-fw/assets/js/yith-date-format.min.js +1 -0
  94. plugin-fw/assets/js/yith-fields.js +809 -798
  95. plugin-fw/assets/js/yith-fields.min.js +1 -1
  96. plugin-fw/assets/js/yith-gutenberg.js +6 -5
  97. plugin-fw/assets/js/yith-gutenberg.min.js +1 -1
  98. plugin-fw/bin/clean-language-files.js +0 -36
  99. plugin-fw/bin/download-translations-config.json +0 -27
  100. plugin-fw/bin/download-translations.js +0 -57
  101. plugin-fw/includes/class-yit-ajax.php +252 -0
  102. plugin-fw/includes/class-yit-assets.php +132 -0
  103. plugin-fw/includes/class-yit-cpt-unlimited.php +54 -0
  104. plugin-fw/includes/class-yit-gradients.php +505 -0
  105. plugin-fw/includes/class-yit-icons.php +1180 -0
  106. plugin-fw/includes/class-yit-metabox.php +540 -0
  107. plugin-fw/includes/class-yit-plugin-common.php +1181 -0
  108. plugin-fw/includes/class-yit-plugin-licence.php +94 -0
  109. plugin-fw/includes/class-yit-plugin-panel-woocommerce.php +759 -0
  110. plugin-fw/includes/class-yit-plugin-panel.php +1547 -0
  111. plugin-fw/includes/class-yit-plugin-subpanel.php +149 -0
  112. plugin-fw/includes/class-yit-pointers.php +380 -0
  113. plugin-fw/includes/class-yit-theme-licence.php +74 -0
  114. plugin-fw/includes/class-yit-upgrade.php +70 -0
  115. plugin-fw/includes/class-yit-video.php +192 -0
  116. plugin-fw/includes/class-yith-dashboard.php +149 -0
  117. plugin-fw/includes/class-yith-debug.php +290 -0
  118. plugin-fw/includes/class-yith-gutenberg.php +328 -0
  119. plugin-fw/includes/class-yith-system-status.php +721 -0
  120. plugin-fw/includes/privacy/class-yith-privacy-plugin-abstract.php +72 -0
  121. plugin-fw/includes/privacy/class-yith-privacy.php +114 -0
  122. plugin-fw/{lib/promo/black.jpg → includes/pro} +0 -0
.editorconfig DELETED
@@ -1,26 +0,0 @@
1
- # This file is for unifying the coding style for different editors and IDEs
2
- # editorconfig.org
3
- # https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties
4
-
5
- # WordPress Coding Standards
6
- # http://make.wordpress.org/core/handbook/coding-standards/
7
-
8
- root = true
9
-
10
- [*]
11
- charset = utf-8
12
- end_of_line = lf
13
- indent_style = tab
14
- indent_size = 4
15
- tab_width = 4
16
- insert_final_newline = true
17
- trim_trailing_whitespace = true
18
- # spaces_around_operators = true
19
- # spaces_around_brackets = both
20
-
21
- [*.txt]
22
- trim_trailing_whitespace = false
23
-
24
- [*.yml]
25
- indent_style = space
26
- indent_size = 2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.jshintrc DELETED
@@ -1,27 +0,0 @@
1
- {
2
- "esversion": 6,
3
- "boss": true,
4
- "curly": true,
5
- "eqeqeq": true,
6
- "eqnull": true,
7
- "es3": false,
8
- "expr": true,
9
- "immed": true,
10
- "noarg": true,
11
- "onevar": true,
12
- "quotmark": "single",
13
- "trailing": true,
14
- "undef": true,
15
- "unused": true,
16
- "multistr": true,
17
-
18
- "browser": true,
19
-
20
- "globals": {
21
- "_": false,
22
- "Backbone": false,
23
- "jQuery": false,
24
- "JSON": false,
25
- "wp": false
26
- }
27
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
README.md CHANGED
@@ -151,18 +151,14 @@ Yes, of course you can. To avoid Wishlist page to show product prices, you can h
151
 
152
  ## Changelog
153
 
154
- ### 3.0.17 - Released on 11 December 2020
155
-
156
- * New: support for WooCommerce 4.8
157
- * Update: plugin framework
158
- * Update: Spanish translation
159
- * Tweak: added rel="noopener" attribute to sharing links (thanks to onetimelord)
160
- * Tweak: avoid slugs that overflow column width
161
- * Tweak: changed set of default columns for wishlist table
162
- * Tweak: improved style for Edit Title form in wishlist page
163
- * Fix: prevent load_fragments ajax call when no fragment is found for current page (thanks to powernic)
164
- * Fix: correctly sanitize fragments options
165
-
166
  ## Support
167
 
168
  This repository should be considered as a development tool.
151
 
152
  ## Changelog
153
 
154
+ ###3.0.19 - Released on 18 February 2021
155
+
156
+ * New: support for WooCommerce 5.0
157
+ * Update: YITH plugin framework
158
+ * Tweak: added transient for hidden products
159
+ * Dev: fixed issue when unchecking all products in wishlist page
160
+ * Dev: added yith_wcwl_mobile_media_query filter
161
+ * Dev: added new filters yith_wcwl_remove_after_add_to_cart and yith_wcwl_allow_remove_after_add_to_cart
 
 
 
 
162
  ## Support
163
 
164
  This repository should be considered as a development tool.
README.txt CHANGED
@@ -4,12 +4,12 @@ Contributors: yithemes
4
  Tags: wishlist, woocommerce, products, yit, e-commerce, shop, ecommerce wishlist, yith, woocommerce wishlist, shop wishlist
5
  Requires at least: 5.3
6
  Tested up to: 5.6
7
- Stable tag: 3.0.17
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
  YITH WooCommerce Wishlist add all Wishlist features to your website. Needs WooCommerce to work.
12
- WooCommerce 4.8.x compatible.
13
 
14
  == Description ==
15
 
@@ -113,6 +113,22 @@ Yes, of course you can. To avoid Wishlist page to show product prices, you can h
113
 
114
  == Changelog ==
115
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  = 3.0.17 - Released on 11 December 2020 =
117
 
118
  * New: support for WooCommerce 4.8
4
  Tags: wishlist, woocommerce, products, yit, e-commerce, shop, ecommerce wishlist, yith, woocommerce wishlist, shop wishlist
5
  Requires at least: 5.3
6
  Tested up to: 5.6
7
+ Stable tag: 3.0.19
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
  YITH WooCommerce Wishlist add all Wishlist features to your website. Needs WooCommerce to work.
12
+ WooCommerce 5.0.x compatible.
13
 
14
  == Description ==
15
 
113
 
114
  == Changelog ==
115
 
116
+ = 3.0.19 - Released on 18 February 2021 =
117
+
118
+ * New: support for WooCommerce 5.0
119
+ * Update: YITH plugin framework
120
+ * Tweak: added transient for hidden products
121
+ * Dev: fixed issue when unchecking all products in wishlist page
122
+ * Dev: added yith_wcwl_mobile_media_query filter
123
+ * Dev: added new filters yith_wcwl_remove_after_add_to_cart and yith_wcwl_allow_remove_after_add_to_cart
124
+
125
+ = 3.0.18 - Released on 13 January 2021 =
126
+
127
+ * New: support for WooCommerce 4.9
128
+ * Update: plugin framework
129
+ * Tweak: improved product name sanitization on wishlist template
130
+ * Dev: added fifth parameter for yith_wcwl_add_to_wishlist_button_html filter
131
+
132
  = 3.0.17 - Released on 11 December 2020 =
133
 
134
  * New: support for WooCommerce 4.8
assets/css/font-awesome.css CHANGED
@@ -1,4 +1,4 @@
1
  /*!
2
  * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3
  * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
- */@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.7.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format('embedded-opentype'),url(../fonts/fontawesome-webfont.woff2?v=4.7.0) format('woff2'),url(../fonts/fontawesome-webfont.woff?v=4.7.0) format('woff'),url(../fonts/fontawesome-webfont.ttf?v=4.7.0) format('truetype'),url(../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular) format('svg');font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-address-card:before,.fa-vcard:before{content:"\f2bb"}.fa-address-card-o:before,.fa-vcard-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
1
  /*!
2
  * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3
  * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
+ */@font-face{font-family:FontAwesome;src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-address-card:before,.fa-vcard:before{content:"\f2bb"}.fa-address-card-o:before,.fa-vcard-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
assets/js/admin/yith-wcwl.js DELETED
@@ -1 +0,0 @@
1
- jQuery((function(t){t.fn.dependency=function(e,n,i,c){var o=t(this);o.on("change",(function(){var _=n(o);t.each(e,(function(e,n){var i=t(n);if(i.length){var c=i.closest("tr");c.length&&(_?c.show().fadeTo("slow",1):c.is(":visible")?c.fadeTo("slow",0,(function(){c.hide()})):c.css("opacity",0).hide())}})),void 0!==i&&i(o,c)})).change()};var e=function(e,n){var i=this;i.settings={},i.modal=null,i._init=function(){i.settings=t.extend({template:e.data("template"),template_data:{},container:".yith-wcwl-wizard-modal",events:{}},n),"function"==typeof i.settings.events.init&&i.settings.events.init(e,n),i._initOpener()},i._initOpener=function(){e.on("click",(function(e){var n=t(this),c=i.settings.template_data;e.preventDefault(),"function"==typeof c&&(c=c(n)),n.WCBackboneModal({template:i.settings.template,variable:c});var o=t(i.settings.container);i._initEditor(o),i._initEnhancedSelect(o),i._initTabs(o),i._initSteps(o),i._initOptions(o,c),i._initEvents(o,i.settings.events)}))},i._initEditor=function(e){e.find(".with-editor").each((function(){var e=t(this),n=e.attr("id");tinymce.get(n)&&(restoreTextMode=tinymce.get(n).isHidden(),wp.editor.remove(n)),wp.editor.initialize(n,{tinymce:{wpautop:!0,init_instance_callback:function(t){t.on("Change",(function(n){e.val(t.getContent()).change()}))}},quicktags:!0,mediaButtons:!0})}))},i._initEnhancedSelect=function(e){t(document.body).trigger("wc-enhanced-select-init")},i._initTabs=function(e){e.find(".tabs").on("click","a",(function(e){var n=t(this),i=n.closest("ul"),c=i.find("a"),o=i.parent().find(".tab"),_=n.data("target"),a=t(_),s=!1;e.preventDefault(),n.hasClass("active")||(s=!0),c.attr("aria-selected","false").removeClass("active"),n.attr("aria-selected","true").addClass("active"),o.attr("aria-expanded","false").removeClass("active").hide(),a.attr("aria-expanded","true").addClass("active").show(),s&&n.trigger("tabChange")}))},i._initOptions=function(e,n){t.each(n,(function(t,n){var i=e.find('[name="'+t+'"]');i.length&&n!==i.val()&&(i.is("select")&&!i.find('option[value="'+n+'"]').length?i.append('<option value="'+n+'" selected="selected">'+n+" </option>"):i.val(n))}))},i._initSteps=function(e){e.find(".step").hide().first().show(),e.find(".continue-button").on("click",(function(n){var c=t(this).closest(".step"),o=c.next(".step");n.preventDefault(),o.length&&i._changeStep(e,c,o)})),e.find(".back-button").on("click",(function(n){var c=t(this).closest(".step"),o=c.prev(".step");n.preventDefault(),o.length&&i._changeStep(e,c,o)}))},i._initEvents=function(n,c){"function"==typeof i.settings.events.open&&i.settings.events.open(e,n),t.each(c,(function(e,i){"init"!==e&&"open"!==e&&("tabChange"===e?n.find(".tabs"):"stepChange"===e?n.find(".step"):n.find(":input")).on(e,(function(e){return i(t(this),n,e)}))}))},i._changeStep=function(t,e,n){e.animate({opacity:0},{duration:200,complete:function(){var i=t.find("article"),c=i.outerWidth(),o=i.outerHeight();i.outerWidth("auto"),i.outerHeight("auto"),e.hide(),n.show();var _=n.outerWidth(),a=n.outerHeight();n.hide(),e.css("opacity",1),i.outerWidth(c),i.outerHeight(o),i.animate({width:_,height:a},{duration:200,complete:function(){n.fadeIn(200)}})}}),n.trigger("stepChange")},i._init()},n=null,i=function(e,i,c){var o=i.find(".email-preview"),_=i.find("#template").val();n&&n.abort(),n=t.ajax({url:ajaxurl+"?action=preview_promotion_email",data:i.find("form").serialize(),method:"POST",beforeSend:function(){o.block({message:null,overlayCSS:{background:"transparent",opacity:.6}})},complete:function(){o.unblock()},success:function(t){o.removeClass("html plain").addClass(_).find(".no-interactions").html(t)}})},c=function(){return{template:"yith-wcwl-promotion-wizard",template_data:function(e){var n;return n=e.hasClass("restore-draft")?e.data("draft"):t.extend(n,{product_id:e.data("product_id"),user_id:e.data("user_id")})},events:{change:i,open:function(t,e,n){e.find("#content_html-tmce").click(),i(0,e)},tabChange:function(t,e,n){e.find("#template").val(t.find(".active").data("template")),i(0,e)},stepChange:function(e,n,i){var c=e.find(".receivers-count"),o=e.find(".show-on-long-queue"),_=o.data("threshold");c.length&&t.ajax({url:ajaxurl+"?action=calculate_promotion_email_receivers",data:n.find("form").serialize(),method:"post",beforeSend:function(){c.css("opacity",.3),o.length&&o.hide()},complete:function(){c.css("opacity",1)},success:function(t){void 0!==t.label&&(c.html(t.label),o.length&&void 0!==t.count&&t.count>_&&o.show())}})}}}};t.fn.wizard=function(n){var i=t(this);new e(i,n)},t(".create-promotion").wizard(c()),t(".restore-draft").wizard(c());var o=function(t){return t.is('input[type="radio"]')||(t=t.find('input[type="radio"]:checked')),"no"===t.val()},_=function(t){return t.is(":checked")},a=t("#yith_wcwl_disable_wishlist_for_unauthenticated_users"),s=t("#yith_wcwl_multi_wishlist_enable"),l=t("#yith_wcwl_enable_multi_wishlist_for_unauthenticated_users"),r=t("#yith_wcwl_modal_enable"),u=t("#yith_wcwl_loop_position"),h=t(".icon-select"),d=t('[name="yith_wcwl_add_to_cart_style"]'),w=t("#yith_wcwl_add_to_cart_icon"),m=t('[name="yith_wcwl_ask_an_estimate_style"]'),f=t("#yith_wcwl_ask_an_estimate_icon"),p=t("#yith_wcwl_enable_share"),y=t("#yith_wcwl_share_fb"),g=t("#yith_wcwl_fb_button_icon"),v=t("#yith_wcwl_share_twitter"),b=t("#yith_wcwl_tw_button_icon"),k=t("#yith_wcwl_share_pinterest"),x=t("#yith_wcwl_pr_button_icon"),C=t("#yith_wcwl_share_email"),S=t("#yith_wcwl_em_button_icon"),T=t("#yith_wcwl_share_whatsapp"),z=t("#yith_wcwl_wa_button_icon"),j=t("#yith_wcwl_show_estimate_button"),E=t("#yith_wcwl_show_additional_info_textarea"),H=t("#yith_wcwl_ask_an_estimate_fields"),O=t("#woocommerce_promotion_mail_settings\\[email_type\\]"),W=t("#woocommerce_yith_wcwl_back_in_stock_settings\\[enabled\\]"),D=t("#woocommerce_yith_wcwl_back_in_stock_settings\\[email_type\\]"),q=t("#woocommerce_yith_wcwl_on_sale_item_settings\\[enabled\\]"),B=t("#woocommerce_yith_wcwl_on_sale_item_settings\\[email_type\\]"),M=t('[id^="type_"]');u.add("select#yith_wcwl_button_position").on("change",(function(){var e=t(this);"shortcode"===e.val()?e.parent().next().find(".addon").show():e.parent().next().find(".addon").hide()})).change(),M.on("change",(function(){var e=t(this),n=e.val(),i=e.closest(".yith-toggle-content-row").next();"radio"===n||"select"===n?i.show().fadeTo("slow",1):i.is(":visible")?i.fadeTo("slow",0,(function(){i.hide()})):i.css("opacity",0).hide()})).change(),d.on("change",(function(){w.change()})),m.on("change",(function(){f.change()})),h.each((function(){t(this).select2({templateResult:function(e){return e.id?t('<span><i class="option-icon fa '+e.element.value.toLowerCase()+'" ></i> '+e.text+"</span>"):e.text}})})),a.dependency(["#yith_wcwl_enable_multi_wishlist_for_unauthenticated_users-yes"],(function(){return o(a)&&_(s)}),(function(){l.change()})),s.dependency(["#yith_wcwl_enable_multi_wishlist_for_unauthenticated_users-yes"],(function(){return o(a)&&_(s)}),(function(){l.change()})),l.dependency(["#yith_wcwl_show_login_notice","#yith_wcwl_login_anchor_text"],(function(){return _(s)&&o(a)&&o(l)})),r.dependency(["#yith_wcwl_show_exists_in_a_wishlist"],(function(){var e="default"!==r.find(":checked").val();return e||t("#yith_wcwl_show_exists_in_a_wishlist").prop("checked",!0),e})),w.dependency(["#yith_wcwl_add_to_cart_custom_icon"],(function(){return"custom"===w.val()&&"button_custom"===d.filter(":checked").val()})),f.dependency(["#yith_wcwl_ask_an_estimate_custom_icon"],(function(){return"custom"===f.val()&&"button_custom"===m.filter(":checked").val()})),p.dependency(["#yith_wcwl_share_fb"],_,(function(){y.change(),g.change(),v.change(),b.change(),k.change(),x.change(),C.change(),S.change(),T.change(),z.change()})),y.dependency(["#yith_wcwl_fb_button_icon","#yith_wcwl_color_fb_button_background"],(function(){return _(y)&&_(p)}),(function(){g.change()})),g.dependency(["#yith_wcwl_fb_button_custom_icon"],(function(){return _(y)&&_(p)&&"custom"===g.val()})),v.dependency(["#yith_wcwl_tw_button_icon","#yith_wcwl_color_tw_button_background"],(function(){return _(v)&&_(p)}),(function(){b.change()})),b.dependency(["#yith_wcwl_tw_button_custom_icon"],(function(){return _(v)&&_(p)&&"custom"===b.val()})),k.dependency(["#yith_wcwl_socials_image_url","#yith_wcwl_pr_button_icon","#yith_wcwl_color_pr_button_background"],(function(){return _(k)&&_(p)}),(function(){x.change()})),x.dependency(["#yith_wcwl_pr_button_custom_icon"],(function(){return _(k)&&_(p)&&"custom"===x.val()})),C.dependency(["#yith_wcwl_em_button_icon","#yith_wcwl_color_em_button_background"],(function(){return _(C)&&_(p)}),(function(){S.change()})),S.dependency(["#yith_wcwl_em_button_custom_icon"],(function(){return _(C)&&_(p)&&"custom"===S.val()})),T.dependency(["#yith_wcwl_wa_button_icon","#yith_wcwl_wa_button_custom_icon","#yith_wcwl_color_wa_button_background"],(function(){return _(T)&&_(p)}),(function(){z.change()})),z.dependency(["#yith_wcwl_wa_button_custom_icon"],(function(){return _(T)&&_(p)&&"custom"===z.val()})),v.add(k).dependency(["#yith_wcwl_socials_title","#yith_wcwl_socials_text"],(function(){return(_(v)||_(k))&&_(p)})),j.dependency(["#yith_wcwl_show_additional_info_textarea"],_,(function(){E.change()})),j.on("change",(function(){E.change()})),E.dependency(["#yith_wcwl_additional_info_textarea_label"],(function(){return _(j)&&_(E)})),E.on("change",(function(){t(this).is(":checked")&&j.is(":checked")?H.removeClass("yith-disabled"):H.addClass("yith-disabled")})),O.dependency(["#woocommerce_promotion_mail_settings\\[content_html\\]"],(function(){return"multipart"===O.val()||"html"===O.val()})),O.dependency(["#woocommerce_promotion_mail_settings\\[content_text\\]"],(function(){return"multipart"===O.val()||"plain"===O.val()})),W.dependency(["#woocommerce_yith_wcwl_back_in_stock_settings\\[product_exclusions\\]","#woocommerce_yith_wcwl_back_in_stock_settings\\[category_exclusions\\]","#woocommerce_yith_wcwl_back_in_stock_settings\\[email_type\\]","#woocommerce_yith_wcwl_back_in_stock_settings\\[heading\\]","#woocommerce_yith_wcwl_back_in_stock_settings\\[subject\\]","#woocommerce_yith_wcwl_back_in_stock_settings\\[content_html\\]","#woocommerce_yith_wcwl_back_in_stock_settings\\[content_text\\]"],(function(){return _(W)}),(function(){D.change()})),D.dependency(["#woocommerce_yith_wcwl_back_in_stock_settings\\[content_html\\]"],(function(){return("multipart"===D.val()||"html"===D.val())&&_(W)})),D.dependency(["#woocommerce_yith_wcwl_back_in_stock_settings\\[content_text\\]"],(function(){return("multipart"===D.val()||"plain"===D.val())&&_(W)})),q.dependency(["#woocommerce_yith_wcwl_on_sale_item_settings\\[product_exclusions\\]","#woocommerce_yith_wcwl_on_sale_item_settings\\[category_exclusions\\]","#woocommerce_yith_wcwl_on_sale_item_settings\\[email_type\\]","#woocommerce_yith_wcwl_on_sale_item_settings\\[heading\\]","#woocommerce_yith_wcwl_on_sale_item_settings\\[subject\\]","#woocommerce_yith_wcwl_on_sale_item_settings\\[content_html\\]","#woocommerce_yith_wcwl_on_sale_item_settings\\[content_text\\]"],(function(){return _(q)}),(function(){B.change()})),B.dependency(["#woocommerce_yith_wcwl_on_sale_item_settings\\[content_html\\]"],(function(){return("multipart"===B.val()||"html"===B.val())&&_(q)})),B.dependency(["#woocommerce_yith_wcwl_on_sale_item_settings\\[content_text\\]"],(function(){return("multipart"===B.val()||"plain"===B.val())&&_(q)})),t(document).on("yith-add-box-button-toggle",(function(){var e=t("#new_type"),n=t("#new_options").closest(".yith-add-box-row");e.on("change",(function(){var i=e.val();"radio"===i||"select"===i?n.show().fadeTo("slow",1):n.is(":visible")?n.fadeTo("slow",0,(function(){t(this).hide()})):n.css("opacity",0).hide()})).change()}))}));
 
assets/js/admin/yith-wcwl.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(function(_){_.fn.dependency=function(t,e,n,c){var o=_(this);o.on("change",function(){var i=e(o);_.each(t,function(t,e){var n,e=_(e);!e.length||(n=e.closest("tr")).length&&(i?n.show().fadeTo("slow",1):n.is(":visible")?n.fadeTo("slow",0,function(){n.hide()}):n.css("opacity",0).hide())}),void 0!==n&&n(o,c)}).change()};var n=function(e,t){var c=this;c.settings={},c.modal=null,c._init=function(){c.settings=_.extend({template:e.data("template"),template_data:{},container:".yith-wcwl-wizard-modal",events:{}},t),"function"==typeof c.settings.events.init&&c.settings.events.init(e,t),c._initOpener()},c._initOpener=function(){e.on("click",function(t){var e=_(this),n=c.settings.template_data;t.preventDefault(),"function"==typeof n&&(n=n(e)),e.WCBackboneModal({template:c.settings.template,variable:n});e=_(c.settings.container);c._initEditor(e),c._initEnhancedSelect(e),c._initTabs(e),c._initSteps(e),c._initOptions(e,n),c._initEvents(e,c.settings.events)})},c._initEditor=function(t){t.find(".with-editor").each(function(){var n=_(this),t=n.attr("id");tinymce.get(t)&&(restoreTextMode=tinymce.get(t).isHidden(),wp.editor.remove(t)),wp.editor.initialize(t,{tinymce:{wpautop:!0,init_instance_callback:function(e){e.on("Change",function(t){n.val(e.getContent()).change()})}},quicktags:!0,mediaButtons:!0})})},c._initEnhancedSelect=function(t){_(document.body).trigger("wc-enhanced-select-init")},c._initTabs=function(t){t.find(".tabs").on("click","a",function(t){var e=_(this),n=e.closest("ul"),i=n.find("a"),c=n.parent().find(".tab"),o=e.data("target"),n=_(o),o=!1;t.preventDefault(),e.hasClass("active")||(o=!0),i.attr("aria-selected","false").removeClass("active"),e.attr("aria-selected","true").addClass("active"),c.attr("aria-expanded","false").removeClass("active").hide(),n.attr("aria-expanded","true").addClass("active").show(),o&&e.trigger("tabChange")})},c._initOptions=function(n,t){_.each(t,function(t,e){t=n.find('[name="'+t+'"]');t.length&&e!==t.val()&&(t.is("select")&&!t.find('option[value="'+e+'"]').length?t.append('<option value="'+e+'" selected="selected">'+e+" </option>"):t.val(e))})},c._initSteps=function(i){i.find(".step").hide().first().show(),i.find(".continue-button").on("click",function(t){var e=_(this).closest(".step"),n=e.next(".step");t.preventDefault(),n.length&&c._changeStep(i,e,n)}),i.find(".back-button").on("click",function(t){var e=_(this).closest(".step"),n=e.prev(".step");t.preventDefault(),n.length&&c._changeStep(i,e,n)})},c._initEvents=function(n,t){"function"==typeof c.settings.events.open&&c.settings.events.open(e,n),_.each(t,function(t,e){"init"!==t&&"open"!==t&&("tabChange"===t?n.find(".tabs"):"stepChange"===t?n.find(".step"):n.find(":input")).on(t,function(t){return e(_(this),n,t)})})},c._changeStep=function(o,_,a){_.animate({opacity:0},{duration:200,complete:function(){var t=o.find("article"),e=t.outerWidth(),n=t.outerHeight();t.outerWidth("auto"),t.outerHeight("auto"),_.hide(),a.show();var i=a.outerWidth(),c=a.outerHeight();a.hide(),_.css("opacity",1),t.outerWidth(e),t.outerHeight(n),t.animate({width:i,height:c},{duration:200,complete:function(){a.fadeIn(200)}})}}),a.trigger("stepChange")},c._init()},o=null,i=function(t,e,n){var i=e.find(".email-preview"),c=e.find("#template").val();o&&o.abort(),o=_.ajax({url:ajaxurl+"?action=preview_promotion_email",data:e.find("form").serialize(),method:"POST",beforeSend:function(){i.block({message:null,overlayCSS:{background:"transparent",opacity:.6}})},complete:function(){i.unblock()},success:function(t){i.removeClass("html plain").addClass(c).find(".no-interactions").html(t)}})},t=function(){return{template:"yith-wcwl-promotion-wizard",template_data:function(t){var e=t.hasClass("restore-draft")?t.data("draft"):_.extend(e,{product_id:t.data("product_id"),user_id:t.data("user_id")});return e},events:{change:i,open:function(t,e,n){e.find("#content_html-tmce").click(),i(0,e)},tabChange:function(t,e,n){e.find("#template").val(t.find(".active").data("template")),i(0,e)},stepChange:function(t,e,n){var i=t.find(".receivers-count"),c=t.find(".show-on-long-queue"),o=c.data("threshold");i.length&&_.ajax({url:ajaxurl+"?action=calculate_promotion_email_receivers",data:e.find("form").serialize(),method:"post",beforeSend:function(){i.css("opacity",.3),c.length&&c.hide()},complete:function(){i.css("opacity",1)},success:function(t){"undefined"!=typeof t.label&&(i.html(t.label),c.length&&"undefined"!=typeof t.count&&t.count>o&&c.show())}})}}}};_.fn.wizard=function(t){var e=_(this);new n(e,t)},_(".create-promotion").wizard(t()),_(".restore-draft").wizard(t());var e=function(t){return"no"===(t=!t.is('input[type="radio"]')?t.find('input[type="radio"]:checked'):t).val()},c=function(t){return t.is(":checked")},a=_("#yith_wcwl_disable_wishlist_for_unauthenticated_users"),s=_("#yith_wcwl_multi_wishlist_enable"),l=_("#yith_wcwl_enable_multi_wishlist_for_unauthenticated_users"),r=_("#yith_wcwl_modal_enable"),u=_("#yith_wcwl_loop_position"),h=_(".icon-select"),d=_('[name="yith_wcwl_add_to_cart_style"]'),w=_("#yith_wcwl_add_to_cart_icon"),m=_('[name="yith_wcwl_ask_an_estimate_style"]'),f=_("#yith_wcwl_ask_an_estimate_icon"),p=_("#yith_wcwl_enable_share"),y=_("#yith_wcwl_share_fb"),g=_("#yith_wcwl_fb_button_icon"),v=_("#yith_wcwl_share_twitter"),b=_("#yith_wcwl_tw_button_icon"),k=_("#yith_wcwl_share_pinterest"),x=_("#yith_wcwl_pr_button_icon"),C=_("#yith_wcwl_share_email"),S=_("#yith_wcwl_em_button_icon"),T=_("#yith_wcwl_share_whatsapp"),z=_("#yith_wcwl_wa_button_icon"),j=_("#yith_wcwl_show_estimate_button"),E=_("#yith_wcwl_show_additional_info_textarea"),H=_("#yith_wcwl_ask_an_estimate_fields"),O=_("#woocommerce_promotion_mail_settings\\[email_type\\]"),W=_("#woocommerce_yith_wcwl_back_in_stock_settings\\[enabled\\]"),D=_("#woocommerce_yith_wcwl_back_in_stock_settings\\[email_type\\]"),q=_("#woocommerce_yith_wcwl_on_sale_item_settings\\[enabled\\]"),B=_("#woocommerce_yith_wcwl_on_sale_item_settings\\[email_type\\]"),t=_('[id^="type_"]');u.add("select#yith_wcwl_button_position").on("change",function(){var t=_(this);"shortcode"===t.val()?t.parent().next().find(".addon").show():t.parent().next().find(".addon").hide()}).change(),t.on("change",function(){var t=_(this),e=t.val(),n=t.closest(".yith-toggle-content-row").next();"radio"===e||"select"===e?n.show().fadeTo("slow",1):n.is(":visible")?n.fadeTo("slow",0,function(){n.hide()}):n.css("opacity",0).hide()}).change(),d.on("change",function(){w.change()}),m.on("change",function(){f.change()}),h.each(function(){_(this).select2({templateResult:function(t){return t.id?_('<span><i class="option-icon fa '+t.element.value.toLowerCase()+'" ></i> '+t.text+"</span>"):t.text}})}),a.dependency(["#yith_wcwl_enable_multi_wishlist_for_unauthenticated_users-yes"],function(){return e(a)&&c(s)},function(){l.change()}),s.dependency(["#yith_wcwl_enable_multi_wishlist_for_unauthenticated_users-yes"],function(){return e(a)&&c(s)},function(){l.change()}),l.dependency(["#yith_wcwl_show_login_notice","#yith_wcwl_login_anchor_text"],function(){return c(s)&&e(a)&&e(l)}),r.dependency(["#yith_wcwl_show_exists_in_a_wishlist"],function(){var t="default"!==r.find(":checked").val();return t||_("#yith_wcwl_show_exists_in_a_wishlist").prop("checked",!0),t}),w.dependency(["#yith_wcwl_add_to_cart_custom_icon"],function(){return"custom"===w.val()&&"button_custom"===d.filter(":checked").val()}),f.dependency(["#yith_wcwl_ask_an_estimate_custom_icon"],function(){return"custom"===f.val()&&"button_custom"===m.filter(":checked").val()}),p.dependency(["#yith_wcwl_share_fb"],c,function(){y.change(),g.change(),v.change(),b.change(),k.change(),x.change(),C.change(),S.change(),T.change(),z.change()}),y.dependency(["#yith_wcwl_fb_button_icon","#yith_wcwl_color_fb_button_background"],function(){return c(y)&&c(p)},function(){g.change()}),g.dependency(["#yith_wcwl_fb_button_custom_icon"],function(){return c(y)&&c(p)&&"custom"===g.val()}),v.dependency(["#yith_wcwl_tw_button_icon","#yith_wcwl_color_tw_button_background"],function(){return c(v)&&c(p)},function(){b.change()}),b.dependency(["#yith_wcwl_tw_button_custom_icon"],function(){return c(v)&&c(p)&&"custom"===b.val()}),k.dependency(["#yith_wcwl_socials_image_url","#yith_wcwl_pr_button_icon","#yith_wcwl_color_pr_button_background"],function(){return c(k)&&c(p)},function(){x.change()}),x.dependency(["#yith_wcwl_pr_button_custom_icon"],function(){return c(k)&&c(p)&&"custom"===x.val()}),C.dependency(["#yith_wcwl_em_button_icon","#yith_wcwl_color_em_button_background"],function(){return c(C)&&c(p)},function(){S.change()}),S.dependency(["#yith_wcwl_em_button_custom_icon"],function(){return c(C)&&c(p)&&"custom"===S.val()}),T.dependency(["#yith_wcwl_wa_button_icon","#yith_wcwl_wa_button_custom_icon","#yith_wcwl_color_wa_button_background"],function(){return c(T)&&c(p)},function(){z.change()}),z.dependency(["#yith_wcwl_wa_button_custom_icon"],function(){return c(T)&&c(p)&&"custom"===z.val()}),v.add(k).dependency(["#yith_wcwl_socials_title","#yith_wcwl_socials_text"],function(){return(c(v)||c(k))&&c(p)}),j.dependency(["#yith_wcwl_show_additional_info_textarea"],c,function(){E.change()}),j.on("change",function(){E.change()}),E.dependency(["#yith_wcwl_additional_info_textarea_label"],function(){return c(j)&&c(E)}),E.on("change",function(){_(this).is(":checked")&&j.is(":checked")?H.removeClass("yith-disabled"):H.addClass("yith-disabled")}),O.dependency(["#woocommerce_promotion_mail_settings\\[content_html\\]"],function(){return"multipart"===O.val()||"html"===O.val()}),O.dependency(["#woocommerce_promotion_mail_settings\\[content_text\\]"],function(){return"multipart"===O.val()||"plain"===O.val()}),W.dependency(["#woocommerce_yith_wcwl_back_in_stock_settings\\[product_exclusions\\]","#woocommerce_yith_wcwl_back_in_stock_settings\\[category_exclusions\\]","#woocommerce_yith_wcwl_back_in_stock_settings\\[email_type\\]","#woocommerce_yith_wcwl_back_in_stock_settings\\[heading\\]","#woocommerce_yith_wcwl_back_in_stock_settings\\[subject\\]","#woocommerce_yith_wcwl_back_in_stock_settings\\[content_html\\]","#woocommerce_yith_wcwl_back_in_stock_settings\\[content_text\\]"],function(){return c(W)},function(){D.change()}),D.dependency(["#woocommerce_yith_wcwl_back_in_stock_settings\\[content_html\\]"],function(){return("multipart"===D.val()||"html"===D.val())&&c(W)}),D.dependency(["#woocommerce_yith_wcwl_back_in_stock_settings\\[content_text\\]"],function(){return("multipart"===D.val()||"plain"===D.val())&&c(W)}),q.dependency(["#woocommerce_yith_wcwl_on_sale_item_settings\\[product_exclusions\\]","#woocommerce_yith_wcwl_on_sale_item_settings\\[category_exclusions\\]","#woocommerce_yith_wcwl_on_sale_item_settings\\[email_type\\]","#woocommerce_yith_wcwl_on_sale_item_settings\\[heading\\]","#woocommerce_yith_wcwl_on_sale_item_settings\\[subject\\]","#woocommerce_yith_wcwl_on_sale_item_settings\\[content_html\\]","#woocommerce_yith_wcwl_on_sale_item_settings\\[content_text\\]"],function(){return c(q)},function(){B.change()}),B.dependency(["#woocommerce_yith_wcwl_on_sale_item_settings\\[content_html\\]"],function(){return("multipart"===B.val()||"html"===B.val())&&c(q)}),B.dependency(["#woocommerce_yith_wcwl_on_sale_item_settings\\[content_text\\]"],function(){return("multipart"===B.val()||"plain"===B.val())&&c(q)}),_(document).on("yith-add-box-button-toggle",function(){var e=_("#new_type"),n=_("#new_options").closest(".yith-add-box-row");e.on("change",function(){var t=e.val();"radio"===t||"select"===t?n.show().fadeTo("slow",1):n.is(":visible")?n.fadeTo("slow",0,function(){_(this).hide()}):n.css("opacity",0).hide()}).change()})});
assets/js/jquery.selectBox.min.js CHANGED
@@ -1,7 +1 @@
1
- /**
2
- * jQuery SelectBox
3
- *
4
- * v1.2.0
5
- * github.com/marcj/jquery-selectBox
6
- */
7
- (function(a){var b=this.SelectBox=function(c,d){if(c instanceof jQuery){if(c.length>0){c=c[0]}else{return}}this.typeTimer=null;this.typeSearch="";this.isMac=navigator.platform.match(/mac/i);d="object"===typeof d?d:{};this.selectElement=c;if(!d.mobile&&navigator.userAgent.match(/iPad|iPhone|Android|IEMobile|BlackBerry/i)){return false}if("select"!==c.tagName.toLowerCase()){return false}this.init(d)};b.prototype.version="1.2.0";b.prototype.init=function(o){var j=a(this.selectElement);if(j.data("selectBox-control")){return false}var f=a('<a class="selectBox" />'),h=j.attr("multiple")||parseInt(j.attr("size"))>1,d=o||{},c=parseInt(j.prop("tabindex"))||0,m=this;f.width(j.outerWidth()).addClass(j.attr("class")).attr("title",j.attr("title")||"").attr("tabindex",c).css("display","inline-block").bind("focus.selectBox",function(){if(this!==document.activeElement&&document.body!==document.activeElement){a(document.activeElement).blur()}if(f.hasClass("selectBox-active")){return}f.addClass("selectBox-active");j.trigger("focus")}).bind("blur.selectBox",function(){if(!f.hasClass("selectBox-active")){return}f.removeClass("selectBox-active");j.trigger("blur")});if(!a(window).data("selectBox-bindings")){a(window).data("selectBox-bindings",true).bind("scroll.selectBox",this.hideMenus).bind("resize.selectBox",this.hideMenus)}if(j.attr("disabled")){f.addClass("selectBox-disabled")}j.bind("click.selectBox",function(p){f.focus();p.preventDefault()});if(h){o=this.getOptions("inline");f.append(o).data("selectBox-options",o).addClass("selectBox-inline selectBox-menuShowing").bind("keydown.selectBox",function(p){m.handleKeyDown(p)}).bind("keypress.selectBox",function(p){m.handleKeyPress(p)}).bind("mousedown.selectBox",function(p){if(1!==p.which){return}if(a(p.target).is("A.selectBox-inline")){p.preventDefault()}if(!f.hasClass("selectBox-focus")){f.focus()}}).insertAfter(j);if(!j[0].style.height){var n=j.attr("size")?parseInt(j.attr("size")):5;var e=f.clone().removeAttr("id").css({position:"absolute",top:"-9999em"}).show().appendTo("body");e.find(".selectBox-options").html("<li><a>\u00A0</a></li>");var l=parseInt(e.find(".selectBox-options A:first").html("&nbsp;").outerHeight());e.remove();f.height(l*n)}this.disableSelection(f)}else{var i=a('<span class="selectBox-label" />'),k=a('<span class="selectBox-arrow" />');i.attr("class",this.getLabelClass()).text(this.getLabelText());o=this.getOptions("dropdown");o.appendTo("BODY");f.data("selectBox-options",o).addClass("selectBox-dropdown").append(i).append(k).bind("mousedown.selectBox",function(p){if(1===p.which){if(f.hasClass("selectBox-menuShowing")){m.hideMenus()}else{p.stopPropagation();o.data("selectBox-down-at-x",p.screenX).data("selectBox-down-at-y",p.screenY);m.showMenu()}}}).bind("keydown.selectBox",function(p){m.handleKeyDown(p)}).bind("keypress.selectBox",function(p){m.handleKeyPress(p)}).bind("open.selectBox",function(q,p){if(p&&p._selectBox===true){return}m.showMenu()}).bind("close.selectBox",function(q,p){if(p&&p._selectBox===true){return}m.hideMenus()}).insertAfter(j);var g=f.width()-k.outerWidth()-parseInt(i.css("paddingLeft"))||0-parseInt(i.css("paddingRight"))||0;i.width(g);this.disableSelection(f)}j.addClass("selectBox").data("selectBox-control",f).data("selectBox-settings",d).hide()};b.prototype.getOptions=function(j){var f;var c=a(this.selectElement);var e=this;var d=function(i,k){i.children("OPTION, OPTGROUP").each(function(){if(a(this).is("OPTION")){if(a(this).length>0){e.generateOptions(a(this),k)}else{k.append("<li>\u00A0</li>")}}else{var l=a('<li class="selectBox-optgroup" />');l.text(a(this).attr("label"));k.append(l);k=d(a(this),k)}});return k};switch(j){case"inline":f=a('<ul class="selectBox-options" />');f=d(c,f);f.find("A").bind("mouseover.selectBox",function(i){e.addHover(a(this).parent())}).bind("mouseout.selectBox",function(i){e.removeHover(a(this).parent())}).bind("mousedown.selectBox",function(i){if(1!==i.which){return}i.preventDefault();if(!c.selectBox("control").hasClass("selectBox-active")){c.selectBox("control").focus()}}).bind("mouseup.selectBox",function(i){if(1!==i.which){return}e.hideMenus();e.selectOption(a(this).parent(),i)});this.disableSelection(f);return f;case"dropdown":f=a('<ul class="selectBox-dropdown-menu selectBox-options" />');f=d(c,f);f.data("selectBox-select",c).css("display","none").appendTo("BODY").find("A").bind("mousedown.selectBox",function(i){if(i.which===1){i.preventDefault();if(i.screenX===f.data("selectBox-down-at-x")&&i.screenY===f.data("selectBox-down-at-y")){f.removeData("selectBox-down-at-x").removeData("selectBox-down-at-y");e.hideMenus()}}}).bind("mouseup.selectBox",function(i){if(1!==i.which){return}if(i.screenX===f.data("selectBox-down-at-x")&&i.screenY===f.data("selectBox-down-at-y")){return}else{f.removeData("selectBox-down-at-x").removeData("selectBox-down-at-y")}e.selectOption(a(this).parent());e.hideMenus()}).bind("mouseover.selectBox",function(i){e.addHover(a(this).parent())}).bind("mouseout.selectBox",function(i){e.removeHover(a(this).parent())});var h=c.attr("class")||"";if(""!==h){h=h.split(" ");for(var g in h){f.addClass(h[g]+"-selectBox-dropdown-menu")}}this.disableSelection(f);return f}};b.prototype.getLabelClass=function(){var c=a(this.selectElement).find("OPTION:selected");return("selectBox-label "+(c.attr("class")||"")).replace(/\s+$/,"")};b.prototype.getLabelText=function(){var c=a(this.selectElement).find("OPTION:selected");return c.text()||"\u00A0"};b.prototype.setLabel=function(){var c=a(this.selectElement);var d=c.data("selectBox-control");if(!d){return}d.find(".selectBox-label").attr("class",this.getLabelClass()).text(this.getLabelText())};b.prototype.destroy=function(){var c=a(this.selectElement);var e=c.data("selectBox-control");if(!e){return}var d=e.data("selectBox-options");d.remove();e.remove();c.removeClass("selectBox").removeData("selectBox-control").data("selectBox-control",null).removeData("selectBox-settings").data("selectBox-settings",null).show()};b.prototype.refresh=function(){var c=a(this.selectElement),e=c.data("selectBox-control"),f=e.hasClass("selectBox-dropdown"),d=e.hasClass("selectBox-menuShowing");c.selectBox("options",c.html());if(f&&d){this.showMenu()}};b.prototype.showMenu=function(){var e=this,d=a(this.selectElement),j=d.data("selectBox-control"),h=d.data("selectBox-settings"),f=j.data("selectBox-options");if(j.hasClass("selectBox-disabled")){return false}this.hideMenus();var g=parseInt(j.css("borderBottomWidth"))||0;f.width(j.innerWidth()).css({top:j.offset().top+j.outerHeight()-g,left:j.offset().left});if(d.triggerHandler("beforeopen")){return false}var i=function(){d.triggerHandler("open",{_selectBox:true})};switch(h.menuTransition){case"fade":f.fadeIn(h.menuSpeed,i);break;case"slide":f.slideDown(h.menuSpeed,i);break;default:f.show(h.menuSpeed,i);break}if(!h.menuSpeed){i()}var c=f.find(".selectBox-selected:first");this.keepOptionInView(c,true);this.addHover(c);j.addClass("selectBox-menuShowing");a(document).bind("mousedown.selectBox",function(k){if(1===k.which){if(a(k.target).parents().andSelf().hasClass("selectBox-options")){return}e.hideMenus()}})};b.prototype.hideMenus=function(){if(a(".selectBox-dropdown-menu:visible").length===0){return}a(document).unbind("mousedown.selectBox");a(".selectBox-dropdown-menu").each(function(){var d=a(this),c=d.data("selectBox-select"),g=c.data("selectBox-control"),e=c.data("selectBox-settings");if(c.triggerHandler("beforeclose")){return false}var f=function(){c.triggerHandler("close",{_selectBox:true})};if(e){switch(e.menuTransition){case"fade":d.fadeOut(e.menuSpeed,f);break;case"slide":d.slideUp(e.menuSpeed,f);break;default:d.hide(e.menuSpeed,f);break}if(!e.menuSpeed){f()}g.removeClass("selectBox-menuShowing")}else{a(this).hide();a(this).triggerHandler("close",{_selectBox:true});a(this).removeClass("selectBox-menuShowing")}})};b.prototype.selectOption=function(d,j){var c=a(this.selectElement);d=a(d);var k=c.data("selectBox-control"),h=c.data("selectBox-settings");if(k.hasClass("selectBox-disabled")){return false}if(0===d.length||d.hasClass("selectBox-disabled")){return false}if(c.attr("multiple")){if(j.shiftKey&&k.data("selectBox-last-selected")){d.toggleClass("selectBox-selected");var e;if(d.index()>k.data("selectBox-last-selected").index()){e=d.siblings().slice(k.data("selectBox-last-selected").index(),d.index())}else{e=d.siblings().slice(d.index(),k.data("selectBox-last-selected").index())}e=e.not(".selectBox-optgroup, .selectBox-disabled");if(d.hasClass("selectBox-selected")){e.addClass("selectBox-selected")}else{e.removeClass("selectBox-selected")}}else{if((this.isMac&&j.metaKey)||(!this.isMac&&j.ctrlKey)){d.toggleClass("selectBox-selected")}else{d.siblings().removeClass("selectBox-selected");d.addClass("selectBox-selected")}}}else{d.siblings().removeClass("selectBox-selected");d.addClass("selectBox-selected")}if(k.hasClass("selectBox-dropdown")){k.find(".selectBox-label").text(d.text())}var f=0,g=[];if(c.attr("multiple")){k.find(".selectBox-selected A").each(function(){g[f++]=a(this).attr("rel")})}else{g=d.find("A").attr("rel")}k.data("selectBox-last-selected",d);if(c.val()!==g){c.val(g);this.setLabel();c.trigger("change")}return true};b.prototype.addHover=function(d){d=a(d);var c=a(this.selectElement),f=c.data("selectBox-control"),e=f.data("selectBox-options");e.find(".selectBox-hover").removeClass("selectBox-hover");d.addClass("selectBox-hover")};b.prototype.getSelectElement=function(){return this.selectElement};b.prototype.removeHover=function(d){d=a(d);var c=a(this.selectElement),f=c.data("selectBox-control"),e=f.data("selectBox-options");e.find(".selectBox-hover").removeClass("selectBox-hover")};b.prototype.keepOptionInView=function(e,d){if(!e||e.length===0){return}var c=a(this.selectElement),j=c.data("selectBox-control"),g=j.data("selectBox-options"),h=j.hasClass("selectBox-dropdown")?g:g.parent(),i=parseInt(e.offset().top-h.position().top),f=parseInt(i+e.outerHeight());if(d){h.scrollTop(e.offset().top-h.offset().top+h.scrollTop()-(h.height()/2))}else{if(i<0){h.scrollTop(e.offset().top-h.offset().top+h.scrollTop())}if(f>h.height()){h.scrollTop((e.offset().top+e.outerHeight())-h.offset().top+h.scrollTop()-h.height())}}};b.prototype.handleKeyDown=function(c){var k=a(this.selectElement),g=k.data("selectBox-control"),l=g.data("selectBox-options"),e=k.data("selectBox-settings"),f=0,h=0;if(g.hasClass("selectBox-disabled")){return}switch(c.keyCode){case 8:c.preventDefault();this.typeSearch="";break;case 9:case 27:this.hideMenus();this.removeHover();break;case 13:if(g.hasClass("selectBox-menuShowing")){this.selectOption(l.find("LI.selectBox-hover:first"),c);if(g.hasClass("selectBox-dropdown")){this.hideMenus()}}else{this.showMenu()}break;case 38:case 37:c.preventDefault();if(g.hasClass("selectBox-menuShowing")){var d=l.find(".selectBox-hover").prev("LI");f=l.find("LI:not(.selectBox-optgroup)").length;h=0;while(d.length===0||d.hasClass("selectBox-disabled")||d.hasClass("selectBox-optgroup")){d=d.prev("LI");if(d.length===0){if(e.loopOptions){d=l.find("LI:last")}else{d=l.find("LI:first")}}if(++h>=f){break}}this.addHover(d);this.selectOption(d,c);this.keepOptionInView(d)}else{this.showMenu()}break;case 40:case 39:c.preventDefault();if(g.hasClass("selectBox-menuShowing")){var j=l.find(".selectBox-hover").next("LI");f=l.find("LI:not(.selectBox-optgroup)").length;h=0;while(0===j.length||j.hasClass("selectBox-disabled")||j.hasClass("selectBox-optgroup")){j=j.next("LI");if(j.length===0){if(e.loopOptions){j=l.find("LI:first")}else{j=l.find("LI:last")}}if(++h>=f){break}}this.addHover(j);this.selectOption(j,c);this.keepOptionInView(j)}else{this.showMenu()}break}};b.prototype.handleKeyPress=function(e){var c=a(this.selectElement),f=c.data("selectBox-control"),d=f.data("selectBox-options");if(f.hasClass("selectBox-disabled")){return}switch(e.keyCode){case 9:case 27:case 13:case 38:case 37:case 40:case 39:break;default:if(!f.hasClass("selectBox-menuShowing")){this.showMenu()}e.preventDefault();clearTimeout(this.typeTimer);this.typeSearch+=String.fromCharCode(e.charCode||e.keyCode);d.find("A").each(function(){if(a(this).text().substr(0,this.typeSearch.length).toLowerCase()===this.typeSearch.toLowerCase()){this.addHover(a(this).parent());this.selectOption(a(this).parent(),e);this.keepOptionInView(a(this).parent());return false}});this.typeTimer=setTimeout(function(){this.typeSearch=""},1000);break}};b.prototype.enable=function(){var c=a(this.selectElement);c.prop("disabled",false);var d=c.data("selectBox-control");if(!d){return}d.removeClass("selectBox-disabled")};b.prototype.disable=function(){var c=a(this.selectElement);c.prop("disabled",true);var d=c.data("selectBox-control");if(!d){return}d.addClass("selectBox-disabled")};b.prototype.setValue=function(f){var c=a(this.selectElement);c.val(f);f=c.val();if(null===f){f=c.children().first().val();c.val(f)}var g=c.data("selectBox-control");if(!g){return}var e=c.data("selectBox-settings"),d=g.data("selectBox-options");this.setLabel();d.find(".selectBox-selected").removeClass("selectBox-selected");d.find("A").each(function(){if(typeof(f)==="object"){for(var h=0;h<f.length;h++){if(a(this).attr("rel")==f[h]){a(this).parent().addClass("selectBox-selected")}}}else{if(a(this).attr("rel")==f){a(this).parent().addClass("selectBox-selected")}}});if(e.change){e.change.call(c)}};b.prototype.setOptions=function(m){var l=a(this.selectElement),f=l.data("selectBox-control"),d=l.data("selectBox-settings"),k;switch(typeof(m)){case"string":l.html(m);break;case"object":l.html("");for(var g in m){if(m[g]===null){continue}if(typeof(m[g])==="object"){var c=a('<optgroup label="'+g+'" />');for(var e in m[g]){c.append('<option value="'+e+'">'+m[g][e]+"</option>")}l.append(c)}else{var h=a('<option value="'+g+'">'+m[g]+"</option>");l.append(h)}}break}if(!f){return}f.data("selectBox-options").remove();k=f.hasClass("selectBox-dropdown")?"dropdown":"inline";m=this.getOptions(k);f.data("selectBox-options",m);switch(k){case"inline":f.append(m);break;case"dropdown":this.setLabel();a("BODY").append(m);break}};b.prototype.disableSelection=function(c){a(c).css("MozUserSelect","none").bind("selectstart",function(d){d.preventDefault()})};b.prototype.generateOptions=function(e,f){var c=a("<li />"),d=a("<a />");c.addClass(e.attr("class"));c.data(e.data());d.attr("rel",e.val()).text(e.text());c.append(d);if(e.attr("disabled")){c.addClass("selectBox-disabled")}if(e.attr("selected")){c.addClass("selectBox-selected")}f.append(c)};a.extend(a.fn,{selectBox:function(e,c){var d;switch(e){case"control":return a(this).data("selectBox-control");case"settings":if(!c){return a(this).data("selectBox-settings")}a(this).each(function(){a(this).data("selectBox-settings",a.extend(true,a(this).data("selectBox-settings"),c))});break;case"options":if(undefined===c){return a(this).data("selectBox-control").data("selectBox-options")}a(this).each(function(){if(d=a(this).data("selectBox")){d.setOptions(c)}});break;case"value":if(undefined===c){return a(this).val()}a(this).each(function(){if(d=a(this).data("selectBox")){d.setValue(c)}});break;case"refresh":a(this).each(function(){if(d=a(this).data("selectBox")){d.refresh()}});break;case"enable":a(this).each(function(){if(d=a(this).data("selectBox")){d.enable(this)}});break;case"disable":a(this).each(function(){if(d=a(this).data("selectBox")){d.disable()}});break;case"destroy":a(this).each(function(){if(d=a(this).data("selectBox")){d.destroy();a(this).data("selectBox",null)}});break;case"instance":return a(this).data("selectBox");default:a(this).each(function(g,f){if(!a(f).data("selectBox")){a(f).data("selectBox",new b(f,e))}});break}return a(this)}})})(jQuery);
1
+ !function(r){var o=this.SelectBox=function(e,t){if(e instanceof jQuery){if(!(0<e.length))return;e=e[0]}return this.typeTimer=null,this.typeSearch="",this.isMac=navigator.platform.match(/mac/i),t="object"==typeof t?t:{},this.selectElement=e,!(!t.mobile&&navigator.userAgent.match(/iPad|iPhone|Android|IEMobile|BlackBerry/i))&&("select"===e.tagName.toLowerCase()&&void this.init(t))};o.prototype.version="1.2.0",o.prototype.init=function(t){var e=r(this.selectElement);if(e.data("selectBox-control"))return!1;var s,o,a=r('<a class="selectBox" />'),n=e.attr("multiple")||1<parseInt(e.attr("size")),l=t||{},i=parseInt(e.prop("tabindex"))||0,c=this;a.width(e.outerWidth()).addClass(e.attr("class")).attr("title",e.attr("title")||"").attr("tabindex",i).css("display","inline-block").bind("focus.selectBox",function(){this!==document.activeElement&&document.body!==document.activeElement&&r(document.activeElement).blur(),a.hasClass("selectBox-active")||(a.addClass("selectBox-active"),e.trigger("focus"))}).bind("blur.selectBox",function(){a.hasClass("selectBox-active")&&(a.removeClass("selectBox-active"),e.trigger("blur"))}),r(window).data("selectBox-bindings")||r(window).data("selectBox-bindings",!0).bind("scroll.selectBox",this.hideMenus).bind("resize.selectBox",this.hideMenus),e.attr("disabled")&&a.addClass("selectBox-disabled"),e.bind("click.selectBox",function(e){a.focus(),e.preventDefault()}),n?(t=this.getOptions("inline"),a.append(t).data("selectBox-options",t).addClass("selectBox-inline selectBox-menuShowing").bind("keydown.selectBox",function(e){c.handleKeyDown(e)}).bind("keypress.selectBox",function(e){c.handleKeyPress(e)}).bind("mousedown.selectBox",function(e){1===e.which&&(r(e.target).is("A.selectBox-inline")&&e.preventDefault(),a.hasClass("selectBox-focus")||a.focus())}).insertAfter(e),e[0].style.height||(o=e.attr("size")?parseInt(e.attr("size")):5,(n=a.clone().removeAttr("id").css({position:"absolute",top:"-9999em"}).show().appendTo("body")).find(".selectBox-options").html("<li><a> </a></li>"),s=parseInt(n.find(".selectBox-options A:first").html("&nbsp;").outerHeight()),n.remove(),a.height(s*o))):(s=r('<span class="selectBox-label" />'),o=r('<span class="selectBox-arrow" />'),s.attr("class",this.getLabelClass()).text(this.getLabelText()),(t=this.getOptions("dropdown")).appendTo("BODY"),a.data("selectBox-options",t).addClass("selectBox-dropdown").append(s).append(o).bind("mousedown.selectBox",function(e){1===e.which&&(a.hasClass("selectBox-menuShowing")?c.hideMenus():(e.stopPropagation(),t.data("selectBox-down-at-x",e.screenX).data("selectBox-down-at-y",e.screenY),c.showMenu()))}).bind("keydown.selectBox",function(e){c.handleKeyDown(e)}).bind("keypress.selectBox",function(e){c.handleKeyPress(e)}).bind("open.selectBox",function(e,t){t&&!0===t._selectBox||c.showMenu()}).bind("close.selectBox",function(e,t){t&&!0===t._selectBox||c.hideMenus()}).insertAfter(e),o=a.width()-o.outerWidth()-parseInt(s.css("paddingLeft"))||0-parseInt(s.css("paddingRight"))||0,s.width(o)),this.disableSelection(a),e.addClass("selectBox").data("selectBox-control",a).data("selectBox-settings",l).hide()},o.prototype.getOptions=function(e){var t,s=r(this.selectElement),o=this,a=function(e,t){return e.children("OPTION, OPTGROUP").each(function(){var e;r(this).is("OPTION")?0<r(this).length?o.generateOptions(r(this),t):t.append("<li> </li>"):((e=r('<li class="selectBox-optgroup" />')).text(r(this).attr("label")),t.append(e),t=a(r(this),t))}),t};switch(e){case"inline":return t=r('<ul class="selectBox-options" />'),(t=a(s,t)).find("A").bind("mouseover.selectBox",function(e){o.addHover(r(this).parent())}).bind("mouseout.selectBox",function(e){o.removeHover(r(this).parent())}).bind("mousedown.selectBox",function(e){1===e.which&&(e.preventDefault(),s.selectBox("control").hasClass("selectBox-active")||s.selectBox("control").focus())}).bind("mouseup.selectBox",function(e){1===e.which&&(o.hideMenus(),o.selectOption(r(this).parent(),e))}),this.disableSelection(t),t;case"dropdown":t=r('<ul class="selectBox-dropdown-menu selectBox-options" />'),(t=a(s,t)).data("selectBox-select",s).css("display","none").appendTo("BODY").find("A").bind("mousedown.selectBox",function(e){1===e.which&&(e.preventDefault(),e.screenX===t.data("selectBox-down-at-x")&&e.screenY===t.data("selectBox-down-at-y")&&(t.removeData("selectBox-down-at-x").removeData("selectBox-down-at-y"),o.hideMenus()))}).bind("mouseup.selectBox",function(e){1===e.which&&(e.screenX===t.data("selectBox-down-at-x")&&e.screenY===t.data("selectBox-down-at-y")||(t.removeData("selectBox-down-at-x").removeData("selectBox-down-at-y"),o.selectOption(r(this).parent()),o.hideMenus()))}).bind("mouseover.selectBox",function(e){o.addHover(r(this).parent())}).bind("mouseout.selectBox",function(e){o.removeHover(r(this).parent())});var n=s.attr("class")||"";if(""!==n)for(var l in n=n.split(" "))t.addClass(n[l]+"-selectBox-dropdown-menu");return this.disableSelection(t),t}},o.prototype.getLabelClass=function(){return("selectBox-label "+(r(this.selectElement).find("OPTION:selected").attr("class")||"")).replace(/\s+$/,"")},o.prototype.getLabelText=function(){return r(this.selectElement).find("OPTION:selected").text()||" "},o.prototype.setLabel=function(){var e=r(this.selectElement).data("selectBox-control");e&&e.find(".selectBox-label").attr("class",this.getLabelClass()).text(this.getLabelText())},o.prototype.destroy=function(){var e=r(this.selectElement),t=e.data("selectBox-control");t&&(t.data("selectBox-options").remove(),t.remove(),e.removeClass("selectBox").removeData("selectBox-control").data("selectBox-control",null).removeData("selectBox-settings").data("selectBox-settings",null).show())},o.prototype.refresh=function(){var e=r(this.selectElement),t=e.data("selectBox-control"),s=t.hasClass("selectBox-dropdown"),t=t.hasClass("selectBox-menuShowing");e.selectBox("options",e.html()),s&&t&&this.showMenu()},o.prototype.showMenu=function(){var t=this,e=r(this.selectElement),s=e.data("selectBox-control"),o=e.data("selectBox-settings"),a=s.data("selectBox-options");if(s.hasClass("selectBox-disabled"))return!1;this.hideMenus();var n=parseInt(s.css("borderBottomWidth"))||0;if(a.width(s.innerWidth()).css({top:s.offset().top+s.outerHeight()-n,left:s.offset().left}),e.triggerHandler("beforeopen"))return!1;var l=function(){e.triggerHandler("open",{_selectBox:!0})};switch(o.menuTransition){case"fade":a.fadeIn(o.menuSpeed,l);break;case"slide":a.slideDown(o.menuSpeed,l);break;default:a.show(o.menuSpeed,l)}o.menuSpeed||l();n=a.find(".selectBox-selected:first");this.keepOptionInView(n,!0),this.addHover(n),s.addClass("selectBox-menuShowing"),r(document).bind("mousedown.selectBox",function(e){1===e.which&&(r(e.target).parents().andSelf().hasClass("selectBox-options")||t.hideMenus())})},o.prototype.hideMenus=function(){0!==r(".selectBox-dropdown-menu:visible").length&&(r(document).unbind("mousedown.selectBox"),r(".selectBox-dropdown-menu").each(function(){var e=r(this),t=e.data("selectBox-select"),s=t.data("selectBox-control"),o=t.data("selectBox-settings");if(t.triggerHandler("beforeclose"))return!1;var a=function(){t.triggerHandler("close",{_selectBox:!0})};if(o){switch(o.menuTransition){case"fade":e.fadeOut(o.menuSpeed,a);break;case"slide":e.slideUp(o.menuSpeed,a);break;default:e.hide(o.menuSpeed,a)}o.menuSpeed||a(),s.removeClass("selectBox-menuShowing")}else r(this).hide(),r(this).triggerHandler("close",{_selectBox:!0}),r(this).removeClass("selectBox-menuShowing")}))},o.prototype.selectOption=function(e,t){var s=r(this.selectElement);e=r(e);var o,a=s.data("selectBox-control");s.data("selectBox-settings");if(a.hasClass("selectBox-disabled"))return!1;if(0===e.length||e.hasClass("selectBox-disabled"))return!1;s.attr("multiple")?t.shiftKey&&a.data("selectBox-last-selected")?(e.toggleClass("selectBox-selected"),o=(o=e.index()>a.data("selectBox-last-selected").index()?e.siblings().slice(a.data("selectBox-last-selected").index(),e.index()):e.siblings().slice(e.index(),a.data("selectBox-last-selected").index())).not(".selectBox-optgroup, .selectBox-disabled"),e.hasClass("selectBox-selected")?o.addClass("selectBox-selected"):o.removeClass("selectBox-selected")):this.isMac&&t.metaKey||!this.isMac&&t.ctrlKey?e.toggleClass("selectBox-selected"):(e.siblings().removeClass("selectBox-selected"),e.addClass("selectBox-selected")):(e.siblings().removeClass("selectBox-selected"),e.addClass("selectBox-selected")),a.hasClass("selectBox-dropdown")&&a.find(".selectBox-label").text(e.text());var n=0,l=[];return s.attr("multiple")?a.find(".selectBox-selected A").each(function(){l[n++]=r(this).attr("rel")}):l=e.find("A").attr("rel"),a.data("selectBox-last-selected",e),s.val()!==l&&(s.val(l),this.setLabel(),s.trigger("change")),!0},o.prototype.addHover=function(e){e=r(e),r(this.selectElement).data("selectBox-control").data("selectBox-options").find(".selectBox-hover").removeClass("selectBox-hover"),e.addClass("selectBox-hover")},o.prototype.getSelectElement=function(){return this.selectElement},o.prototype.removeHover=function(e){e=r(e),r(this.selectElement).data("selectBox-control").data("selectBox-options").find(".selectBox-hover").removeClass("selectBox-hover")},o.prototype.keepOptionInView=function(e,t){var s,o,a;e&&0!==e.length&&(a=(o=r(this.selectElement).data("selectBox-control")).data("selectBox-options"),s=o.hasClass("selectBox-dropdown")?a:a.parent(),o=parseInt(e.offset().top-s.position().top),a=parseInt(o+e.outerHeight()),t?s.scrollTop(e.offset().top-s.offset().top+s.scrollTop()-s.height()/2):(o<0&&s.scrollTop(e.offset().top-s.offset().top+s.scrollTop()),a>s.height()&&s.scrollTop(e.offset().top+e.outerHeight()-s.offset().top+s.scrollTop()-s.height())))},o.prototype.handleKeyDown=function(e){var t=r(this.selectElement),s=t.data("selectBox-control"),o=s.data("selectBox-options"),a=t.data("selectBox-settings"),n=0,l=0;if(!s.hasClass("selectBox-disabled"))switch(e.keyCode){case 8:e.preventDefault(),this.typeSearch="";break;case 9:case 27:this.hideMenus(),this.removeHover();break;case 13:s.hasClass("selectBox-menuShowing")?(this.selectOption(o.find("LI.selectBox-hover:first"),e),s.hasClass("selectBox-dropdown")&&this.hideMenus()):this.showMenu();break;case 38:case 37:if(e.preventDefault(),s.hasClass("selectBox-menuShowing")){for(var i=o.find(".selectBox-hover").prev("LI"),n=o.find("LI:not(.selectBox-optgroup)").length,l=0;(0===i.length||i.hasClass("selectBox-disabled")||i.hasClass("selectBox-optgroup"))&&(0===(i=i.prev("LI")).length&&(i=a.loopOptions?o.find("LI:last"):o.find("LI:first")),!(++l>=n)););this.addHover(i),this.selectOption(i,e),this.keepOptionInView(i)}else this.showMenu();break;case 40:case 39:if(e.preventDefault(),s.hasClass("selectBox-menuShowing")){var c=o.find(".selectBox-hover").next("LI");for(n=o.find("LI:not(.selectBox-optgroup)").length,l=0;(0===c.length||c.hasClass("selectBox-disabled")||c.hasClass("selectBox-optgroup"))&&(0===(c=c.next("LI")).length&&(c=a.loopOptions?o.find("LI:first"):o.find("LI:last")),!(++l>=n)););this.addHover(c),this.selectOption(c,e),this.keepOptionInView(c)}else this.showMenu()}},o.prototype.handleKeyPress=function(e){var t=r(this.selectElement).data("selectBox-control"),s=t.data("selectBox-options");if(!t.hasClass("selectBox-disabled"))switch(e.keyCode){case 9:case 27:case 13:case 38:case 37:case 40:case 39:break;default:t.hasClass("selectBox-menuShowing")||this.showMenu(),e.preventDefault(),clearTimeout(this.typeTimer),this.typeSearch+=String.fromCharCode(e.charCode||e.keyCode),s.find("A").each(function(){if(r(this).text().substr(0,this.typeSearch.length).toLowerCase()===this.typeSearch.toLowerCase())return this.addHover(r(this).parent()),this.selectOption(r(this).parent(),e),this.keepOptionInView(r(this).parent()),!1}),this.typeTimer=setTimeout(function(){this.typeSearch=""},1e3)}},o.prototype.enable=function(){var e=r(this.selectElement);e.prop("disabled",!1);e=e.data("selectBox-control");e&&e.removeClass("selectBox-disabled")},o.prototype.disable=function(){var e=r(this.selectElement);e.prop("disabled",!0);e=e.data("selectBox-control");e&&e.addClass("selectBox-disabled")},o.prototype.setValue=function(t){var e=r(this.selectElement);e.val(t),null===(t=e.val())&&(t=e.children().first().val(),e.val(t));var s,o=e.data("selectBox-control");o&&(s=e.data("selectBox-settings"),o=o.data("selectBox-options"),this.setLabel(),o.find(".selectBox-selected").removeClass("selectBox-selected"),o.find("A").each(function(){if("object"==typeof t)for(var e=0;e<t.length;e++)r(this).attr("rel")==t[e]&&r(this).parent().addClass("selectBox-selected");else r(this).attr("rel")==t&&r(this).parent().addClass("selectBox-selected")}),s.change&&s.change.call(e))},o.prototype.setOptions=function(e){var t,s=r(this.selectElement),o=s.data("selectBox-control");s.data("selectBox-settings");switch(typeof e){case"string":s.html(e);break;case"object":for(var a in s.html(""),e)if(null!==e[a])if("object"==typeof e[a]){var n,l=r('<optgroup label="'+a+'" />');for(n in e[a])l.append('<option value="'+n+'">'+e[a][n]+"</option>");s.append(l)}else{var i=r('<option value="'+a+'">'+e[a]+"</option>");s.append(i)}}if(o)switch(o.data("selectBox-options").remove(),t=o.hasClass("selectBox-dropdown")?"dropdown":"inline",e=this.getOptions(t),o.data("selectBox-options",e),t){case"inline":o.append(e);break;case"dropdown":this.setLabel(),r("BODY").append(e)}},o.prototype.disableSelection=function(e){r(e).css("MozUserSelect","none").bind("selectstart",function(e){e.preventDefault()})},o.prototype.generateOptions=function(e,t){var s=r("<li />"),o=r("<a />");s.addClass(e.attr("class")),s.data(e.data()),o.attr("rel",e.val()).text(e.text()),s.append(o),e.attr("disabled")&&s.addClass("selectBox-disabled"),e.attr("selected")&&s.addClass("selectBox-selected"),t.append(s)},r.extend(r.fn,{selectBox:function(s,e){var t;switch(s){case"control":return r(this).data("selectBox-control");case"settings":if(!e)return r(this).data("selectBox-settings");r(this).each(function(){r(this).data("selectBox-settings",r.extend(!0,r(this).data("selectBox-settings"),e))});break;case"options":if(undefined===e)return r(this).data("selectBox-control").data("selectBox-options");r(this).each(function(){(t=r(this).data("selectBox"))&&t.setOptions(e)});break;case"value":if(undefined===e)return r(this).val();r(this).each(function(){(t=r(this).data("selectBox"))&&t.setValue(e)});break;case"refresh":r(this).each(function(){(t=r(this).data("selectBox"))&&t.refresh()});break;case"enable":r(this).each(function(){(t=r(this).data("selectBox"))&&t.enable(this)});break;case"disable":r(this).each(function(){(t=r(this).data("selectBox"))&&t.disable()});break;case"destroy":r(this).each(function(){(t=r(this).data("selectBox"))&&(t.destroy(),r(this).data("selectBox",null))});break;case"instance":return r(this).data("selectBox");default:r(this).each(function(e,t){r(t).data("selectBox")||r(t).data("selectBox",new o(t,s))})}return r(this)}})}(jQuery);
 
 
 
 
 
 
assets/js/jquery.yith-wcwl.js DELETED
@@ -1 +0,0 @@
1
- jQuery((function(t){function i(){void 0!==t.fn.selectBox&&t("select.selectBox").filter(":visible").not(".enhanced").selectBox().addClass("enhanced")}function e(){if(void 0!==t.prettyPhoto){var e={hook:"data-rel",social_tools:!1,theme:"pp_woocommerce",horizontal_padding:20,opacity:.8,deeplinking:!1,overlay_gallery:!1,default_width:500,changepicturecallback:function(){i(),t(".wishlist-select").filter(":visible").change(),t(document).trigger("yith_wcwl_popup_opened",[this])},markup:'<div class="pp_pic_holder"><div class="ppt">&nbsp;</div><div class="pp_top"><div class="pp_left"></div><div class="pp_middle"></div><div class="pp_right"></div></div><div class="pp_content_container"><div class="pp_left"><div class="pp_right"><div class="pp_content"><div class="pp_loaderIcon"></div><div class="pp_fade"><a href="#" class="pp_expand" title="Expand the image">Expand</a><div class="pp_hoverContainer"><a class="pp_next" href="#">next</a><a class="pp_previous" href="#">previous</a></div><div id="pp_full_res"></div><div class="pp_details"><a class="pp_close" href="#">Close</a></div></div></div></div></div></div><div class="pp_bottom"><div class="pp_left"></div><div class="pp_middle"></div><div class="pp_right"></div></div></div><div class="pp_overlay yith-wcwl-overlay"></div>'};t('a[data-rel^="prettyPhoto[add_to_wishlist_"]').add('a[data-rel="prettyPhoto[ask_an_estimate]"]').add('a[data-rel="prettyPhoto[create_wishlist]"]').unbind("click").prettyPhoto(e),t('a[data-rel="prettyPhoto[move_to_another_wishlist]"]').on("click",(function(){var i=t(this),e=t("#move_to_another_wishlist").find("form"),a=e.find(".row-id"),n=i.closest("[data-row-id]").data("row-id");a.length&&a.remove(),e.append('<input type="hidden" name="row_id" class="row-id" value="'+n+'"/>')})).prettyPhoto(e);var a=function(i,e){if(void 0!==i.classList&&i.classList.contains("yith-wcwl-overlay")){var a="remove"===e?"removeClass":"addClass";t("body")[a]("yith-wcwl-with-pretty-photo")}},n=function(t){a(t,"add")},o=function(t){a(t,"remove")};new MutationObserver((function(t){for(var i in t){var e=t[i];"childList"===e.type&&(void 0!==e.addedNodes&&e.addedNodes.forEach(n),void 0!==e.removedNodes&&e.removedNodes.forEach(o))}})).observe(document.body,{childList:!0})}}function a(){t(".wishlist_table").find('.product-checkbox input[type="checkbox"]').off("change").on("change",(function(){var i=t(this);i.parent().removeClass("checked").removeClass("unchecked").addClass(i.is(":checked")?"checked":"unchecked")})).trigger("change")}function n(){t(".add_to_cart").filter("[data-icon]").not(".icon-added").each((function(){var i,e=t(this),a=e.data("icon");i=a.match(/[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)?/gi)?t("<img/>",{src:a}):t("<i/>",{class:"fa "+a}),e.prepend(i).addClass("icon-added")}))}function o(){i(),e(),a(),n(),l(),s(),_(),d(),c(),r(),t(document).trigger("yith_wcwl_init_after_ajax")}function s(){yith_wcwl_l10n.enable_tooltip&&t(".yith-wcwl-add-to-wishlist").find("[data-title]").each((function(){var i=t(this);i.hasClass("tooltip-added")||(i.on("mouseenter",(function(){var i,e=t(this),a=null,n=e.outerWidth(),o=0;a=t("<span>",{class:"yith-wcwl-tooltip",text:e.data("title")}),e.append(a),i=a.outerWidth()+6,a.outerWidth(i),o=(n-i)/2,a.css({left:o.toFixed(0)+"px"}).fadeIn(200),e.addClass("with-tooltip")})).on("mouseleave",(function(){var i=t(this);i.find(".yith-wcwl-tooltip").fadeOut(200,(function(){i.removeClass("with-tooltip").find(".yith-wcwl-tooltip").remove()}))})),i.addClass("tooltip-added"))}))}function l(){t(".yith-wcwl-add-button").filter(".with-dropdown").on("mouseleave",(function(){var i=t(this).find(".yith-wcwl-dropdown");i.length&&i.fadeOut(200)})).children("a").on("mouseenter",(function(){var i=t(this).closest(".with-dropdown"),e=i.find(".yith-wcwl-dropdown");e.length&&e.children().length&&i.find(".yith-wcwl-dropdown").fadeIn(200)}))}function d(){void 0!==yith_wcwl_l10n.enable_drag_n_drop&&yith_wcwl_l10n.enable_drag_n_drop&&t(".wishlist_table").filter(".sortable").not(".no-interactions").each((function(){var i=t(this),e=!1;i.sortable({items:"[data-row-id]",scroll:!0,helper:function(i,e){return e.children().each((function(){t(this).width(t(this).width())})),e},update:function(){var a=i.find("[data-row-id]"),n=[],o=0;a.length&&(e&&e.abort(),a.each((function(){var i=t(this);i.find('input[name*="[position]"]').val(o++),n.push(i.data("row-id"))})),e=t.ajax({data:{action:yith_wcwl_l10n.actions.sort_wishlist_items,context:"frontend",positions:n,wishlist_token:i.data("token"),page:i.data("page"),per_page:i.data("per-page")},method:"POST",url:yith_wcwl_l10n.ajax_url}))}})}))}function c(){var i,e;t(".wishlist_table").on("change",".product-quantity :input",(function(){var a=t(this),n=a.closest("[data-row-id]"),o=n.data("row-id"),s=a.closest(".wishlist_table"),l=s.data("token");clearTimeout(e),n.find(".add_to_cart").attr("data-quantity",a.val()),e=setTimeout((function(){i&&i.abort(),i=t.ajax({beforeSend:function(){b(s)},complete:function(){x(s)},data:{action:yith_wcwl_l10n.actions.update_item_quantity,context:"frontend",product_id:o,wishlist_token:l,quantity:a.val()},method:"POST",url:yith_wcwl_l10n.ajax_url})}),1e3)}))}function r(){t(".copy-trigger").on("click",(function(){var i=t(".copy-target");if(i.length>0)if(i.is("input"))S()?i[0].setSelectionRange(0,9999):i.select(),document.execCommand("copy");else{var e=t("<input/>",{val:i.text(),type:"text"});t("body").append(e),S()?e[0].setSelectionRange(0,9999):e.select(),document.execCommand("copy"),e.remove()}}))}function _(){t(".wishlist_table").filter(".images_grid").not(".enhanced").on("click","[data-row-id] .product-thumbnail a",(function(i){var e=t(this).closest("[data-row-id]"),a=e.siblings("[data-row-id]"),n=e.find(".item-details");i.preventDefault(),n.length&&(a.removeClass("show"),e.toggleClass("show"))})).on("click","[data-row-id] a.close",(function(i){var e=t(this).closest("[data-row-id]"),a=e.find(".item-details");i.preventDefault(),a.length&&e.removeClass("show")})).on("click","[data-row-id] a.remove_from_wishlist",(function(i){var e=t(this);return i.stopPropagation(),w(e),!1})).addClass("enhanced"),t(document).on("click",(function(i){t(i.target).closest("[data-row-id]").length||t(".wishlist_table").filter(".images_grid").find(".show").removeClass("show")})).on("added_to_cart",(function(){t(".wishlist_table").filter(".images_grid").find(".show").removeClass("show")}))}function h(i,e,a){i.action=yith_wcwl_l10n.actions.move_to_another_wishlist_action,i.context="frontend",""!==i.wishlist_token&&""!==i.destination_wishlist_token&&""!==i.item_id&&t.ajax({beforeSend:e,url:yith_wcwl_l10n.ajax_url,data:i,dataType:"json",method:"post",success:function(e){a(e),o(),t("body").trigger("moved_to_another_wishlist",[t(this),i.item_id])}})}function w(i){var e=i.parents(".cart.wishlist_table"),a=i.parents("[data-row-id]"),n=a.data("row-id"),s=e.data("id"),l=e.data("token"),d={action:yith_wcwl_l10n.actions.remove_from_wishlist_action,context:"frontend",remove_from_wishlist:n,wishlist_id:s,wishlist_token:l,fragments:j(n)};t.ajax({beforeSend:function(){b(e)},complete:function(){x(e)},data:d,method:"post",success:function(e){void 0!==e.fragments&&T(e.fragments),o(),t("body").trigger("removed_from_wishlist",[i,a])},url:yith_wcwl_l10n.ajax_url})}function f(i){var e=t(this),a=e.closest(".wishlist_table"),n=null;i.preventDefault(),(n=a.length?e.closest("[data-wishlist-id]").find(".wishlist-title"):e.parents(".wishlist-title")).next().css("display","inline-block").find('input[type="text"]').focus(),n.hide()}function p(i){var e=t(this);i.preventDefault(),e.parents(".hidden-title-form").hide(),e.parents(".hidden-title-form").prev().show()}function u(i){var e,a=t(this),n=a.closest(".hidden-title-form"),o=a.closest("[data-wishlist-id]").data("wishlist-id"),s=n.find('input[type="text"]'),l=s.val();if(i.preventDefault(),!l)return n.addClass("woocommerce-invalid"),void s.focus();o||(o=t("#wishlist_id").val()),e={action:yith_wcwl_l10n.actions.save_title_action,context:"frontend",wishlist_id:o,title:l,fragments:j()},t.ajax({type:"POST",url:yith_wcwl_l10n.ajax_url,data:e,dataType:"json",beforeSend:function(){b(n)},complete:function(){x(n)},success:function(t){var i=t.fragments;t.result?(n.hide(),n.prev().find(".wishlist-anchor, h1, h2").text(l).end().show()):(n.addClass("woocommerce-invalid"),s.focus()),void 0!==i&&T(i)}})}function m(){var i=t(this),e=i.val(),a=i.closest("[data-wishlist-id]").data("wishlist-id"),n={action:yith_wcwl_l10n.actions.save_privacy_action,context:"frontend",wishlist_id:a,privacy:e,fragments:j()};t.ajax({type:"POST",url:yith_wcwl_l10n.ajax_url,data:n,dataType:"json",success:function(t){var i=t.fragments;void 0!==i&&T(i)}})}function v(i){if(void 0!==t.prettyPhoto&&void 0!==t.prettyPhoto.close)if(void 0!==i){var e=t(".pp_content_container"),a=e.find(".pp_content"),n=e.find(".yith-wcwl-popup-form"),o=n.closest(".pp_pic_holder");if(n.length){var s=t("<div/>",{class:"yith-wcwl-popup-feedback"});s.append(t("<i/>",{class:"fa fa-check heading-icon"})),s.append(t("<p/>",{class:"feedback",html:i})),s.css("display","none"),a.css("height","auto"),n.after(s),n.fadeOut(200,(function(){s.fadeIn()})),o.addClass("feedback"),o.css("left",t(window).innerWidth()/2-o.outerWidth()/2+"px"),(void 0===yith_wcwl_l10n.auto_close_popup||yith_wcwl_l10n.auto_close_popup)&&setTimeout(v,yith_wcwl_l10n.popup_timeout)}}else try{t.prettyPhoto.close()}catch(t){}}function g(i){var e=t("#yith-wcwl-popup-message"),a=t("#yith-wcwl-message"),n=void 0!==yith_wcwl_l10n.popup_timeout?yith_wcwl_l10n.popup_timeout:3e3;(void 0===yith_wcwl_l10n.enable_notices||yith_wcwl_l10n.enable_notices)&&(a.html(i),e.css("margin-left","-"+t(e).width()+"px").fadeIn(),window.setTimeout((function(){e.fadeOut()}),n))}function y(i){var e=t("select.wishlist-select"),a=t("ul.yith-wcwl-dropdown");e.each((function(){var e=t(this),a=e.find("option"),n=a.filter('[value="new"]');a.not(n).remove(),t.each(i,(function(i,a){t("<option>",{value:a.id,html:a.wishlist_name}).appendTo(e)})),e.append(n)})),a.each((function(){var e=t(this),a=e.find("li"),n=e.closest(".yith-wcwl-add-button").children("a.add_to_wishlist"),o=n.attr("data-product-id"),s=n.attr("data-product-type");a.remove(),t.each(i,(function(i,a){a.default||t("<li>").append(t("<a>",{rel:"nofollow",html:a.wishlist_name,class:"add_to_wishlist",href:a.add_to_this_wishlist_url,"data-product-id":o,"data-product-type":s,"data-wishlist-id":a.id})).appendTo(e)}))}))}function b(i){void 0!==t.fn.block&&i.fadeTo("400","0.6").block({message:null,overlayCSS:{background:"transparent url("+yith_wcwl_l10n.ajax_loader_url+") no-repeat center",backgroundSize:"40px 40px",opacity:1}})}function x(i){void 0!==t.fn.unblock&&i.stop(!0).css("opacity","1").unblock()}function k(){if(navigator.cookieEnabled)return!0;document.cookie="cookietest=1";var t=-1!==document.cookie.indexOf("cookietest=");return document.cookie="cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT",t}function j(i){var e={},a=null;return i?"object"==typeof i?(a=(i=t.extend({fragments:null,s:"",container:t(document),firstLoad:!1},i)).fragments?i.fragments:i.container.find(".wishlist-fragment"),i.s&&(a=a.not("[data-fragment-ref]").add(a.filter('[data-fragment-ref="'+i.s+'"]'))),i.firstLoad&&(a=a.filter(".on-first-load"))):(a=t(".wishlist-fragment"),"string"!=typeof i&&"number"!=typeof i||(a=a.not("[data-fragment-ref]").add(a.filter('[data-fragment-ref="'+i+'"]')))):a=t(".wishlist-fragment"),a.length?(a.each((function(){var i=t(this),a=i.attr("class").split(" ").filter(t=>t.length&&"exists"!==t).join(yith_wcwl_l10n.fragments_index_glue);e[a]=i.data("fragment-options")})),e):null}function C(i){var e=j(i=t.extend({firstLoad:!0},i));e&&t.ajax({data:{action:yith_wcwl_l10n.actions.load_fragments,context:"frontend",fragments:e},method:"post",success:function(a){void 0!==a.fragments&&(T(a.fragments),o(),t(document).trigger("yith_wcwl_fragments_loaded",[e,a.fragments,i.firstLoad]))},url:yith_wcwl_l10n.ajax_url})}function T(i){t.each(i,(function(i,e){var a="."+i.split(yith_wcwl_l10n.fragments_index_glue).filter(t=>t.length&&"exists"!==t).join("."),n=t(a),o=t(e).filter(a);o.length||(o=t(e).find(a)),n.length&&o.length&&n.replaceWith(o)}))}function S(){return navigator.userAgent.match(/ipad|iphone/i)}function P(t){return!0===t||"yes"===t||"1"===t||1===t}t(document).on("yith_wcwl_init",(function(){var S=t(this),O="undefined"!=typeof wc_add_to_cart_params&&null!==wc_add_to_cart_params?wc_add_to_cart_params.cart_redirect_after_add:"";S.on("click",".add_to_wishlist",(function(i){var e,a=t(this),n=a.attr("data-product-id"),s=t(".add-to-wishlist-"+n),l={action:yith_wcwl_l10n.actions.add_to_wishlist_action,context:"frontend",add_to_wishlist:n,product_type:a.data("product-type"),wishlist_id:a.data("wishlist-id"),fragments:j(n)};if((e=t(document).triggerHandler("yith_wcwl_add_to_wishlist_data",[a,l]))&&(l=e),i.preventDefault(),jQuery(document.body).trigger("adding_to_wishlist"),yith_wcwl_l10n.multi_wishlist&&yith_wcwl_l10n.modal_enable){var d=a.parents(".yith-wcwl-popup-footer").prev(".yith-wcwl-popup-content"),c=d.find(".wishlist-select"),r=d.find(".wishlist-name"),_=d.find(".wishlist-visibility").filter(":checked");if(l.wishlist_id=c.is(":visible")?c.val():"new",l.wishlist_name=r.val(),l.wishlist_visibility=_.val(),"new"===l.wishlist_id&&!l.wishlist_name)return r.closest("p").addClass("woocommerce-invalid"),!1;r.closest("p").removeClass("woocommerce-invalid")}if(k())return t.ajax({type:"POST",url:yith_wcwl_l10n.ajax_url,data:l,dataType:"json",beforeSend:function(){b(a)},complete:function(){x(a)},success:function(i){var e=i.result,n=i.message;yith_wcwl_l10n.multi_wishlist?(v(n),void 0!==i.user_wishlists&&y(i.user_wishlists)):g(n),"true"!==e&&"exists"!==e||(void 0!==i.fragments&&T(i.fragments),yith_wcwl_l10n.multi_wishlist&&!yith_wcwl_l10n.hide_add_button||s.find(".yith-wcwl-add-button").remove(),s.addClass("exists")),o(),t("body").trigger("added_to_wishlist",[a,s])}}),!1;window.alert(yith_wcwl_l10n.labels.cookie_disabled)})),S.on("click",".wishlist_table .remove_from_wishlist",(function(i){var e=t(this);return i.preventDefault(),w(e),!1})),S.on("adding_to_cart","body",(function(t,i,e){void 0!==i&&void 0!==e&&i.closest(".wishlist_table").length&&(e.remove_from_wishlist_after_add_to_cart=i.closest("[data-row-id]").data("row-id"),e.wishlist_id=i.closest(".wishlist_table").data("id"),"undefined"!=typeof wc_add_to_cart_params&&(wc_add_to_cart_params.cart_redirect_after_add=yith_wcwl_l10n.redirect_to_cart),"undefined"!=typeof yith_wccl_general&&(yith_wccl_general.cart_redirect=P(yith_wcwl_l10n.redirect_to_cart)))})),S.on("added_to_cart","body",(function(t,i,e,a){if(void 0!==a&&a.closest(".wishlist_table").length){"undefined"!=typeof wc_add_to_cart_params&&(wc_add_to_cart_params.cart_redirect_after_add=O),"undefined"!=typeof yith_wccl_general&&(yith_wccl_general.cart_redirect=P(O));var n=a.closest("[data-row-id]"),o=n.closest(".wishlist-fragment").data("fragment-options");a.removeClass("added"),n.find(".added_to_cart").remove(),yith_wcwl_l10n.remove_from_wishlist_after_add_to_cart&&o.is_user_owner&&n.remove()}})),S.on("added_to_cart","body",(function(){var i=t(".woocommerce-message");0===i.length?t("#yith-wcwl-form").prepend(yith_wcwl_l10n.labels.added_to_cart_message):i.fadeOut(300,(function(){t(this).replaceWith(yith_wcwl_l10n.labels.added_to_cart_message).fadeIn()}))})),S.on("cart_page_refreshed","body",o),S.on("click",".show-title-form",f),S.on("click",".wishlist-title-with-form h2",f),S.on("click",".remove_from_all_wishlists",(function(i){var e=t(this),a=e.attr("data-product-id"),n=e.data("wishlist-id"),s=e.closest(".content"),l={action:yith_wcwl_l10n.actions.remove_from_all_wishlists,context:"frontend",prod_id:a,wishlist_id:n,fragments:j(a)};i.preventDefault(),t.ajax({beforeSend:function(){b(s)},complete:function(){x(s)},data:l,dataType:"json",method:"post",success:function(t){void 0!==t.fragments&&T(t.fragments),o()},url:yith_wcwl_l10n.ajax_url})})),S.on("click",".hide-title-form",p),S.on("click",".save-title-form",u),S.on("change",".wishlist_manage_table .wishlist-visibility",m),S.on("change",".change-wishlist",(function(){var i=t(this),e=i.parents(".cart.wishlist_table"),a=e.data("token"),n=i.parents("[data-row-id]").data("row-id");h({wishlist_token:a,destination_wishlist_token:i.val(),item_id:n,fragments:j()},(function(){b(e)}),(function(t){void 0!==t.fragments&&T(t.fragments),x(e)}))})),S.on("click",".yith-wcwl-popup-footer .move_to_wishlist",(function(){var i=t(this),e=i.attr("data-product-id"),a=i.data("origin-wishlist-id"),n=i.closest("form"),s=n.find(".wishlist-select").val(),l=n.find(".wishlist-name"),d=l.val(),c=n.find(".wishlist-visibility").filter(":checked").val();if("new"===s&&!d)return l.closest("p").addClass("woocommerce-invalid"),!1;l.closest("p").removeClass("woocommerce-invalid"),h({wishlist_token:a,destination_wishlist_token:s,item_id:e,wishlist_name:d,wishlist_visibility:c,fragments:j(e)},(function(){b(i)}),(function(t){var e=t.message;yith_wcwl_l10n.multi_wishlist?(v(e),void 0!==t.user_wishlists&&y(t.user_wishlists)):g(e),void 0!==t.fragments&&T(t.fragments),o(),x(i)}))})),S.on("click",".delete_item",(function(){var i=t(this),e=i.attr("data-product-id"),a=i.data("item-id"),n=t(".add-to-wishlist-"+e),s={action:yith_wcwl_l10n.actions.delete_item_action,context:"frontend",item_id:a,fragments:j(e)};return t.ajax({url:yith_wcwl_l10n.ajax_url,data:s,dataType:"json",beforeSend:function(){b(i)},complete:function(){x(i)},method:"post",success:function(e){var a=e.fragments,s=e.message;yith_wcwl_l10n.multi_wishlist&&v(s),i.closest(".yith-wcwl-remove-button").length||g(s),void 0!==a&&T(a),o(),t("body").trigger("removed_from_wishlist",[i,n])}}),!1})),S.on("change",".yith-wcwl-popup-content .wishlist-select",(function(){var i=t(this);"new"===i.val()?i.parents(".yith-wcwl-first-row").next(".yith-wcwl-second-row").show():i.parents(".yith-wcwl-first-row").next(".yith-wcwl-second-row").hide()})),S.on("change","#bulk_add_to_cart",(function(){var i=t(this),e=i.closest(".wishlist_table").find("[data-row-id]").find('input[type="checkbox"]:not(:disabled)');i.is(":checked")?e.prop("checked","checked").change():e.removeProp("checked").change()})),S.on("submit",".wishlist-ask-an-estimate-popup",(function(){var i=t(this),e=i.closest("form"),a=i.closest(".pp_content"),n=e.serializeArray().reduce((t,i)=>(t[i.name]=i.value,t),{});return n.action=yith_wcwl_l10n.actions.ask_an_estimate,n.context="frontend",t.ajax({beforeSend:function(){b(e)},complete:function(){x(e)},data:n,dataType:"json",method:"post",success:function(i){if(void 0!==i.result&&i.result){var n=i.template;void 0!==n&&(e.replaceWith(n),a.css("height","auto"),setTimeout(v,yith_wcwl_l10n.time_to_close_prettyphoto))}else void 0!==i.message&&(e.find(".woocommerce-error").remove(),e.find(".popup-description").after(t("<div>",{text:i.message,class:"woocommerce-error"})))},url:yith_wcwl_l10n.ajax_url}),!1})),S.on("click",".yith-wfbt-add-wishlist",(function(i){i.preventDefault();var e=t(this),a=t("#yith-wcwl-form");t("html, body").animate({scrollTop:a.offset().top},500),function(i,e){var a=i.attr("data-product-id"),n=t(document).find(".cart.wishlist_table"),s=n.data("pagination"),l=n.data("per-page"),d=n.data("id"),c=n.data("token"),r={action:yith_wcwl_l10n.actions.reload_wishlist_and_adding_elem_action,context:"frontend",pagination:s,per_page:l,wishlist_id:d,wishlist_token:c,add_to_wishlist:a,product_type:i.data("product-type")};if(!k())return void window.alert(yith_wcwl_l10n.labels.cookie_disabled);t.ajax({type:"POST",url:yith_wcwl_l10n.ajax_url,data:r,dataType:"html",beforeSend:function(){b(n)},complete:function(){x(n)},success:function(i){var a=t(i),n=a.find("#yith-wcwl-form"),s=a.find(".yith-wfbt-slider-wrapper");e.replaceWith(n),t(".yith-wfbt-slider-wrapper").replaceWith(s),o(),t(document).trigger("yith_wcwl_reload_wishlist_from_frequently")}})}(e,a)})),S.on("submit",".yith-wcwl-popup-form",(function(){return!1})),S.on("yith_infs_added_elem",(function(){e()})),S.on("found_variation",(function(i,e){var a=t(i.target).data("product_id"),n=e.variation_id,o=t('[data-product-id="'+a+'"]').add('[data-original-product-id="'+a+'"]'),s=o.closest(".wishlist-fragment").filter(":visible");a&&n&&o.length&&(o.each((function(){var i,e=t(this),o=e.closest(".yith-wcwl-add-to-wishlist");e.attr("data-original-product-id",a),e.attr("data-product-id",n),o.length&&(void 0!==(i=o.data("fragment-options"))&&(i.product_id=n,o.data("fragment-options",i)),o.removeClass((function(t,i){return i.match(/add-to-wishlist-\S+/g).join(" ")})).addClass("add-to-wishlist-"+n).attr("data-fragment-ref",n))})),yith_wcwl_l10n.reload_on_found_variation&&(b(s),C({fragments:s,firstLoad:!1})))})),S.on("reset_data",(function(i){var e=t(i.target).data("product_id"),a=t('[data-original-product-id="'+e+'"]'),n=a.closest(".wishlist-fragment").filter(":visible");e&&a.length&&(a.each((function(){var i,a=t(this),n=a.closest(".yith-wcwl-add-to-wishlist"),o=a.attr("data-product-id");a.attr("data-product-id",e),a.attr("data-original-product-id",""),n.length&&(void 0!==(i=n.data("fragment-options"))&&(i.product_id=e,n.data("fragment-options",i)),n.removeClass("add-to-wishlist-"+o).addClass("add-to-wishlist-"+e).attr("data-fragment-ref",e))})),yith_wcwl_l10n.reload_on_found_variation&&(b(n),C({fragments:n,firstLoad:!1})))})),S.on("yith_wcwl_reload_fragments",C),S.on("yith_infs_added_elem",(function(t,i){C({container:i,firstLoad:!1})})),S.on("yith_wcwl_fragments_loaded",(function(i,e,a,n){n&&t(".variations_form").find(".variations select").last().change()})),S.on("click",".yith-wcwl-popup-feedback .close-popup",(function(t){t.preventDefault(),v()})),function(){if(void 0!==yith_wcwl_l10n.enable_notices&&!yith_wcwl_l10n.enable_notices)return;if(t(".yith-wcwl-add-to-wishlist").length&&!t("#yith-wcwl-popup-message").length){var i=t("<div>").attr("id","yith-wcwl-message"),e=t("<div>").attr("id","yith-wcwl-popup-message").html(i).hide();t("body").prepend(e)}}(),s(),l(),d(),c(),_(),t(document).on("click",".show-tab",(function(i){var e=t(this),a=e.closest(".yith-wcwl-popup-content"),n=e.data("tab"),o=a.find(".tab").filter("."+n);if(i.preventDefault(),!o.length)return!1;e.addClass("active").siblings(".show-tab").removeClass("active"),o.show().siblings(".tab").hide(),"create"===n?a.prepend('<input type="hidden" id="new_wishlist_selector" class="wishlist-select" value="new">'):a.find("#new_wishlist_selector").remove()})),t(document).on("change",".wishlist-select",(function(){var i=t(this),e=i.closest(".yith-wcwl-popup-content"),a=i.closest(".tab"),n=e.find(".tab.create"),o=e.find(".show-tab"),s=o.filter('[data-tab="create"]');"new"===i.val()&&n.length&&(a.hide(),n.show(),o.removeClass("active"),s.addClass("active"),i.find("option").removeProp("selected"),i.change())})),i(),a(),e(),n(),function(){var i=!1;if(!yith_wcwl_l10n.is_wishlist_responsive)return;t(window).on("resize",(function(){var e=t(".wishlist_table.responsive"),a=e.is(".mobile"),n=window.matchMedia("(max-width: 768px)"),s=e.closest("form"),l=s.attr("class"),d=s.data("fragment-options"),c={},r=!1;e.length&&(n.matches&&e&&!a?(d.is_mobile="yes",r=!0):!n.matches&&e&&a&&(d.is_mobile="no",r=!0),r&&(i&&i.abort(),c[l.split(" ").join(yith_wcwl_l10n.fragments_index_glue)]=d,i=t.ajax({beforeSend:function(){b(e)},complete:function(){x(e)},data:{action:yith_wcwl_l10n.actions.load_mobile_action,context:"frontend",fragments:c},method:"post",success:function(i){void 0!==i.fragments&&(T(i.fragments),o(),t(document).trigger("yith_wcwl_responsive_template",[a,i.fragments]))},url:yith_wcwl_l10n.ajax_url})))}))}(),r(),yith_wcwl_l10n.enable_ajax_loading&&C()})).trigger("yith_wcwl_init")}));
 
assets/js/jquery.yith-wcwl.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(function(l){function n(){"undefined"!=typeof l.fn.selectBox&&l("select.selectBox").filter(":visible").not(".enhanced").selectBox().addClass("enhanced")}function e(){var t,e,i,a;"undefined"!=typeof l.prettyPhoto&&(t={hook:"data-rel",social_tools:!1,theme:"pp_woocommerce",horizontal_padding:20,opacity:.8,deeplinking:!1,overlay_gallery:!1,default_width:500,changepicturecallback:function(){n(),l(".wishlist-select").filter(":visible").change(),l(document).trigger("yith_wcwl_popup_opened",[this])},markup:'<div class="pp_pic_holder"><div class="ppt">&nbsp;</div><div class="pp_top"><div class="pp_left"></div><div class="pp_middle"></div><div class="pp_right"></div></div><div class="pp_content_container"><div class="pp_left"><div class="pp_right"><div class="pp_content"><div class="pp_loaderIcon"></div><div class="pp_fade"><a href="#" class="pp_expand" title="Expand the image">Expand</a><div class="pp_hoverContainer"><a class="pp_next" href="#">next</a><a class="pp_previous" href="#">previous</a></div><div id="pp_full_res"></div><div class="pp_details"><a class="pp_close" href="#">Close</a></div></div></div></div></div></div><div class="pp_bottom"><div class="pp_left"></div><div class="pp_middle"></div><div class="pp_right"></div></div></div><div class="pp_overlay yith-wcwl-overlay"></div>'},l('a[data-rel^="prettyPhoto[add_to_wishlist_"]').add('a[data-rel="prettyPhoto[ask_an_estimate]"]').add('a[data-rel="prettyPhoto[create_wishlist]"]').unbind("click").prettyPhoto(t),l('a[data-rel="prettyPhoto[move_to_another_wishlist]"]').on("click",function(){var t=l(this),e=l("#move_to_another_wishlist").find("form"),i=e.find(".row-id"),t=t.closest("[data-row-id]").data("row-id");i.length&&i.remove(),e.append('<input type="hidden" name="row_id" class="row-id" value="'+t+'"/>')}).prettyPhoto(t),e=function(t,e){"undefined"!=typeof t.classList&&t.classList.contains("yith-wcwl-overlay")&&(e="remove"===e?"removeClass":"addClass",l("body")[e]("yith-wcwl-with-pretty-photo"))},i=function(t){e(t,"add")},a=function(t){e(t,"remove")},new MutationObserver(function(t){for(var e in t){e=t[e];"childList"===e.type&&("undefined"!=typeof e.addedNodes&&e.addedNodes.forEach(i),"undefined"!=typeof e.removedNodes&&e.removedNodes.forEach(a))}}).observe(document.body,{childList:!0}))}function i(){l(".wishlist_table").find('.product-checkbox input[type="checkbox"]').off("change").on("change",function(){var t=l(this);t.parent().removeClass("checked").removeClass("unchecked").addClass(t.is(":checked")?"checked":"unchecked")}).trigger("change")}function a(){l(".add_to_cart").filter("[data-icon]").not(".icon-added").each(function(){var t=l(this),e=t.data("icon"),e=e.match(/[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)?/gi)?l("<img/>",{src:e}):l("<i/>",{"class":"fa "+e});t.prepend(e).addClass("icon-added")})}function c(){n(),e(),i(),a(),r(),o(),w(),_(),h(),f(),l(document).trigger("yith_wcwl_init_after_ajax")}function o(){yith_wcwl_l10n.enable_tooltip&&l(".yith-wcwl-add-to-wishlist").find("[data-title]").each(function(){var t=l(this);t.hasClass("tooltip-added")||(t.on("mouseenter",function(){var t,e=l(this),i=null,a=e.outerWidth(),n=0,i=l("<span>",{"class":"yith-wcwl-tooltip",text:e.data("title")});e.append(i),t=i.outerWidth()+6,i.outerWidth(t),n=(a-t)/2,i.css({left:n.toFixed(0)+"px"}).fadeIn(200),e.addClass("with-tooltip")}).on("mouseleave",function(){var t=l(this);t.find(".yith-wcwl-tooltip").fadeOut(200,function(){t.removeClass("with-tooltip").find(".yith-wcwl-tooltip").remove()})}),t.addClass("tooltip-added"))})}function r(){l(".yith-wcwl-add-button").filter(".with-dropdown").on("mouseleave",function(){var t=l(this).find(".yith-wcwl-dropdown");t.length&&t.fadeOut(200)}).children("a").on("mouseenter",function(){var t=l(this).closest(".with-dropdown"),e=t.find(".yith-wcwl-dropdown");e.length&&e.children().length&&t.find(".yith-wcwl-dropdown").fadeIn(200)})}function _(){"undefined"!=typeof yith_wcwl_l10n.enable_drag_n_drop&&yith_wcwl_l10n.enable_drag_n_drop&&l(".wishlist_table").filter(".sortable").not(".no-interactions").each(function(){var a=l(this),n=!1;a.sortable({items:"[data-row-id]",scroll:!0,helper:function(t,e){return e.children().each(function(){l(this).width(l(this).width())}),e},update:function(){var t=a.find("[data-row-id]"),e=[],i=0;t.length&&(n&&n.abort(),t.each(function(){var t=l(this);t.find('input[name*="[position]"]').val(i++),e.push(t.data("row-id"))}),n=l.ajax({data:{action:yith_wcwl_l10n.actions.sort_wishlist_items,context:"frontend",positions:e,wishlist_token:a.data("token"),page:a.data("page"),per_page:a.data("per-page")},method:"POST",url:yith_wcwl_l10n.ajax_url}))}})})}function h(){var o,s;l(".wishlist_table").on("change",".product-quantity :input",function(){var t=l(this),e=t.closest("[data-row-id]"),i=e.data("row-id"),a=t.closest(".wishlist_table"),n=a.data("token");clearTimeout(s),e.find(".add_to_cart").attr("data-quantity",t.val()),s=setTimeout(function(){o&&o.abort(),o=l.ajax({beforeSend:function(){j(a)},complete:function(){C(a)},data:{action:yith_wcwl_l10n.actions.update_item_quantity,context:"frontend",product_id:i,wishlist_token:n,quantity:t.val()},method:"POST",url:yith_wcwl_l10n.ajax_url})},1e3)})}function f(){l(".copy-trigger").on("click",function(){var t=l(".copy-target");0<t.length&&(t.is("input")?(s()?t[0].setSelectionRange(0,9999):t.select(),document.execCommand("copy")):(t=l("<input/>",{val:t.text(),type:"text"}),l("body").append(t),s()?t[0].setSelectionRange(0,9999):t.select(),document.execCommand("copy"),t.remove()))})}function w(){l(".wishlist_table").filter(".images_grid").not(".enhanced").on("click","[data-row-id] .product-thumbnail a",function(t){var e=l(this).closest("[data-row-id]"),i=e.siblings("[data-row-id]"),a=e.find(".item-details");t.preventDefault(),a.length&&(i.removeClass("show"),e.toggleClass("show"))}).on("click","[data-row-id] a.close",function(t){var e=l(this).closest("[data-row-id]"),i=e.find(".item-details");t.preventDefault(),i.length&&e.removeClass("show")}).on("click","[data-row-id] a.remove_from_wishlist",function(t){var e=l(this);return t.stopPropagation(),u(e),!1}).addClass("enhanced"),l(document).on("click",function(t){l(t.target).closest("[data-row-id]").length||l(".wishlist_table").filter(".images_grid").find(".show").removeClass("show")}).on("added_to_cart",function(){l(".wishlist_table").filter(".images_grid").find(".show").removeClass("show")})}function p(e,t,i){e.action=yith_wcwl_l10n.actions.move_to_another_wishlist_action,e.context="frontend",""!==e.wishlist_token&&""!==e.destination_wishlist_token&&""!==e.item_id&&l.ajax({beforeSend:t,url:yith_wcwl_l10n.ajax_url,data:e,dataType:"json",method:"post",success:function(t){i(t),c(),l("body").trigger("moved_to_another_wishlist",[l(this),e.item_id])}})}function u(e){var t=e.parents(".cart.wishlist_table"),i=e.parents("[data-row-id]"),a=i.data("row-id"),n=t.data("id"),o=t.data("token"),a={action:yith_wcwl_l10n.actions.remove_from_wishlist_action,context:"frontend",remove_from_wishlist:a,wishlist_id:n,wishlist_token:o,fragments:S(a)};l.ajax({beforeSend:function(){j(t)},complete:function(){C(t)},data:a,method:"post",success:function(t){"undefined"!=typeof t.fragments&&O(t.fragments),c(),l("body").trigger("removed_from_wishlist",[e,i])},url:yith_wcwl_l10n.ajax_url})}function m(t){var e=l(this),i=e.closest(".wishlist_table"),a=null;t.preventDefault(),(a=i.length?e.closest("[data-wishlist-id]").find(".wishlist-title"):e.parents(".wishlist-title")).next().css("display","inline-block").find('input[type="text"]').focus(),a.hide()}function v(t){var e=l(this);t.preventDefault(),e.parents(".hidden-title-form").hide(),e.parents(".hidden-title-form").prev().show()}function y(t){var e=l(this),i=e.closest(".hidden-title-form"),a=e.closest("[data-wishlist-id]").data("wishlist-id"),n=i.find('input[type="text"]'),o=n.val(),e={};if(t.preventDefault(),!o)return i.addClass("woocommerce-invalid"),void n.focus();a=a||l("#wishlist_id").val(),e={action:yith_wcwl_l10n.actions.save_title_action,context:"frontend",wishlist_id:a,title:o,fragments:S()},l.ajax({type:"POST",url:yith_wcwl_l10n.ajax_url,data:e,dataType:"json",beforeSend:function(){j(i)},complete:function(){C(i)},success:function(t){var e=t.fragments;t.result?(i.hide(),i.prev().find(".wishlist-anchor, h1, h2").text(o).end().show()):(i.addClass("woocommerce-invalid"),n.focus()),void 0!==e&&O(e)}})}function g(){var t=l(this),e=t.val(),t=t.closest("[data-wishlist-id]").data("wishlist-id"),e={action:yith_wcwl_l10n.actions.save_privacy_action,context:"frontend",wishlist_id:t,privacy:e,fragments:S()};l.ajax({type:"POST",url:yith_wcwl_l10n.ajax_url,data:e,dataType:"json",success:function(t){t=t.fragments;void 0!==t&&O(t)}})}function b(t){if("undefined"!=typeof l.prettyPhoto&&"undefined"!=typeof l.prettyPhoto.close)if(void 0!==t){var e,i=l(".pp_content_container"),a=i.find(".pp_content"),n=i.find(".yith-wcwl-popup-form"),i=n.closest(".pp_pic_holder");n.length&&((e=l("<div/>",{"class":"yith-wcwl-popup-feedback"})).append(l("<i/>",{"class":"fa fa-check heading-icon"})),e.append(l("<p/>",{"class":"feedback",html:t})),e.css("display","none"),a.css("height","auto"),n.after(e),n.fadeOut(200,function(){e.fadeIn()}),i.addClass("feedback"),i.css("left",l(window).innerWidth()/2-i.outerWidth()/2+"px"),"undefined"!=typeof yith_wcwl_l10n.auto_close_popup&&!yith_wcwl_l10n.auto_close_popup||setTimeout(b,yith_wcwl_l10n.popup_timeout))}else try{l.prettyPhoto.close()}catch(o){}}function x(t){var e=l("#yith-wcwl-popup-message"),i=l("#yith-wcwl-message"),a="undefined"!=typeof yith_wcwl_l10n.popup_timeout?yith_wcwl_l10n.popup_timeout:3e3;"undefined"!=typeof yith_wcwl_l10n.enable_notices&&!yith_wcwl_l10n.enable_notices||(i.html(t),e.css("margin-left","-"+l(e).width()+"px").fadeIn(),window.setTimeout(function(){e.fadeOut()},a))}function k(o){var t=l("select.wishlist-select"),e=l("ul.yith-wcwl-dropdown");t.each(function(){var i=l(this),t=i.find("option"),e=t.filter('[value="new"]');t.not(e).remove(),l.each(o,function(t,e){l("<option>",{value:e.id,html:e.wishlist_name}).appendTo(i)}),i.append(e)}),e.each(function(){var i=l(this),t=i.find("li"),e=i.closest(".yith-wcwl-add-button").children("a.add_to_wishlist"),a=e.attr("data-product-id"),n=e.attr("data-product-type");t.remove(),l.each(o,function(t,e){e["default"]||l("<li>").append(l("<a>",{rel:"nofollow",html:e.wishlist_name,"class":"add_to_wishlist",href:e.add_to_this_wishlist_url,"data-product-id":a,"data-product-type":n,"data-wishlist-id":e.id})).appendTo(i)})})}function j(t){"undefined"!=typeof l.fn.block&&t.fadeTo("400","0.6").block({message:null,overlayCSS:{background:"transparent url("+yith_wcwl_l10n.ajax_loader_url+") no-repeat center",backgroundSize:"40px 40px",opacity:1}})}function C(t){"undefined"!=typeof l.fn.unblock&&t.stop(!0).css("opacity","1").unblock()}function T(){if(navigator.cookieEnabled)return 1;document.cookie="cookietest=1";var t=-1!==document.cookie.indexOf("cookietest=");return document.cookie="cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT",t}function S(t){var i={},e=null;return t?"object"==typeof t?(e=(t=l.extend({fragments:null,s:"",container:l(document),firstLoad:!1},t)).fragments||t.container.find(".wishlist-fragment"),t.s&&(e=e.not("[data-fragment-ref]").add(e.filter('[data-fragment-ref="'+t.s+'"]'))),t.firstLoad&&(e=e.filter(".on-first-load"))):(e=l(".wishlist-fragment"),"string"!=typeof t&&"number"!=typeof t||(e=e.not("[data-fragment-ref]").add(e.filter('[data-fragment-ref="'+t+'"]')))):e=l(".wishlist-fragment"),e.length?(e.each(function(){var t=l(this),e=t.attr("class").split(" ").filter(t=>t.length&&"exists"!==t).join(yith_wcwl_l10n.fragments_index_glue);i[e]=t.data("fragment-options")}),i):null}function P(e){var i=S(e=l.extend({firstLoad:!0},e));i&&l.ajax({data:{action:yith_wcwl_l10n.actions.load_fragments,context:"frontend",fragments:i},method:"post",success:function(t){"undefined"!=typeof t.fragments&&(O(t.fragments),c(),l(document).trigger("yith_wcwl_fragments_loaded",[i,t.fragments,e.firstLoad]))},url:yith_wcwl_l10n.ajax_url})}function O(t){l.each(t,function(t,e){var i="."+t.split(yith_wcwl_l10n.fragments_index_glue).filter(t=>t.length&&"exists"!==t).join("."),a=l(i),t=l(e).filter(i);t.length||(t=l(e).find(i)),a.length&&t.length&&a.replaceWith(t)})}function s(){return navigator.userAgent.match(/ipad|iphone/i)}function D(t){return!0===t||"yes"===t||"1"===t||1===t}l(document).on("yith_wcwl_init",function(){var d,t=l(this),s="undefined"!=typeof wc_add_to_cart_params&&null!==wc_add_to_cart_params?wc_add_to_cart_params.cart_redirect_after_add:"";t.on("click",".add_to_wishlist",function(t){var a=l(this),e=a.attr("data-product-id"),n=l(".add-to-wishlist-"+e),i=null,o={action:yith_wcwl_l10n.actions.add_to_wishlist_action,context:"frontend",add_to_wishlist:e,product_type:a.data("product-type"),wishlist_id:a.data("wishlist-id"),fragments:S(e)};if((i=l(document).triggerHandler("yith_wcwl_add_to_wishlist_data",[a,o]))&&(o=i),t.preventDefault(),jQuery(document.body).trigger("adding_to_wishlist"),yith_wcwl_l10n.multi_wishlist&&yith_wcwl_l10n.modal_enable){e=a.parents(".yith-wcwl-popup-footer").prev(".yith-wcwl-popup-content"),i=e.find(".wishlist-select"),t=e.find(".wishlist-name"),e=e.find(".wishlist-visibility").filter(":checked");if(o.wishlist_id=i.is(":visible")?i.val():"new",o.wishlist_name=t.val(),o.wishlist_visibility=e.val(),"new"===o.wishlist_id&&!o.wishlist_name)return t.closest("p").addClass("woocommerce-invalid"),!1;t.closest("p").removeClass("woocommerce-invalid")}if(T())return l.ajax({type:"POST",url:yith_wcwl_l10n.ajax_url,data:o,dataType:"json",beforeSend:function(){j(a)},complete:function(){C(a)},success:function(t){var e=t.result,i=t.message;yith_wcwl_l10n.multi_wishlist?(b(i),"undefined"!=typeof t.user_wishlists&&k(t.user_wishlists)):x(i),"true"!==e&&"exists"!==e||("undefined"!=typeof t.fragments&&O(t.fragments),yith_wcwl_l10n.multi_wishlist&&!yith_wcwl_l10n.hide_add_button||n.find(".yith-wcwl-add-button").remove(),n.addClass("exists")),c(),l("body").trigger("added_to_wishlist",[a,n])}}),!1;window.alert(yith_wcwl_l10n.labels.cookie_disabled)}),t.on("click",".wishlist_table .remove_from_wishlist",function(t){var e=l(this);return t.preventDefault(),u(e),!1}),t.on("adding_to_cart","body",function(t,e,i){void 0!==e&&void 0!==i&&e.closest(".wishlist_table").length&&(i.remove_from_wishlist_after_add_to_cart=e.closest("[data-row-id]").data("row-id"),i.wishlist_id=e.closest(".wishlist_table").data("id"),"undefined"!=typeof wc_add_to_cart_params&&(wc_add_to_cart_params.cart_redirect_after_add=yith_wcwl_l10n.redirect_to_cart),"undefined"!=typeof yith_wccl_general&&(yith_wccl_general.cart_redirect=D(yith_wcwl_l10n.redirect_to_cart)))}),t.on("added_to_cart","body",function(t,e,i,a){var n,o;void 0!==a&&a.closest(".wishlist_table").length&&("undefined"!=typeof wc_add_to_cart_params&&(wc_add_to_cart_params.cart_redirect_after_add=s),"undefined"!=typeof yith_wccl_general&&(yith_wccl_general.cart_redirect=D(s)),o=(n=a.closest("[data-row-id]")).closest(".wishlist-fragment").data("fragment-options"),a.removeClass("added"),n.find(".added_to_cart").remove(),yith_wcwl_l10n.remove_from_wishlist_after_add_to_cart&&o.is_user_owner&&n.remove())}),t.on("added_to_cart","body",function(){var t=l(".woocommerce-message");0===t.length?l("#yith-wcwl-form").prepend(yith_wcwl_l10n.labels.added_to_cart_message):t.fadeOut(300,function(){l(this).replaceWith(yith_wcwl_l10n.labels.added_to_cart_message).fadeIn()})}),t.on("cart_page_refreshed","body",c),t.on("click",".show-title-form",m),t.on("click",".wishlist-title-with-form h2",m),t.on("click",".remove_from_all_wishlists",function(t){var e=l(this),i=e.attr("data-product-id"),a=e.data("wishlist-id"),n=e.closest(".content"),i={action:yith_wcwl_l10n.actions.remove_from_all_wishlists,context:"frontend",prod_id:i,wishlist_id:a,fragments:S(i)};t.preventDefault(),l.ajax({beforeSend:function(){j(n)},complete:function(){C(n)},data:i,dataType:"json",method:"post",success:function(t){"undefined"!=typeof t.fragments&&O(t.fragments),c()},url:yith_wcwl_l10n.ajax_url})}),t.on("click",".hide-title-form",v),t.on("click",".save-title-form",y),t.on("change",".wishlist_manage_table .wishlist-visibility",g),t.on("change",".change-wishlist",function(){var t=l(this),e=t.parents(".cart.wishlist_table"),i=e.data("token"),a=t.parents("[data-row-id]").data("row-id");p({wishlist_token:i,destination_wishlist_token:t.val(),item_id:a,fragments:S()},function(){j(e)},function(t){"undefined"!=typeof t.fragments&&O(t.fragments),C(e)})}),t.on("click",".yith-wcwl-popup-footer .move_to_wishlist",function(){var i=l(this),t=i.attr("data-product-id"),e=i.data("origin-wishlist-id"),a=i.closest("form"),n=a.find(".wishlist-select").val(),o=a.find(".wishlist-name"),s=o.val(),a=a.find(".wishlist-visibility").filter(":checked").val();if("new"===n&&!s)return o.closest("p").addClass("woocommerce-invalid"),!1;o.closest("p").removeClass("woocommerce-invalid"),p({wishlist_token:e,destination_wishlist_token:n,item_id:t,wishlist_name:s,wishlist_visibility:a,fragments:S(t)},function(){j(i)},function(t){var e=t.message;yith_wcwl_l10n.multi_wishlist?(b(e),"undefined"!=typeof t.user_wishlists&&k(t.user_wishlists)):x(e),"undefined"!=typeof t.fragments&&O(t.fragments),c(),C(i)})}),t.on("click",".delete_item",function(){var i=l(this),t=i.attr("data-product-id"),e=i.data("item-id"),a=l(".add-to-wishlist-"+t),t={action:yith_wcwl_l10n.actions.delete_item_action,context:"frontend",item_id:e,fragments:S(t)};return l.ajax({url:yith_wcwl_l10n.ajax_url,data:t,dataType:"json",beforeSend:function(){j(i)},complete:function(){C(i)},method:"post",success:function(t){var e=t.fragments,t=t.message;yith_wcwl_l10n.multi_wishlist&&b(t),i.closest(".yith-wcwl-remove-button").length||x(t),void 0!==e&&O(e),c(),l("body").trigger("removed_from_wishlist",[i,a])}}),!1}),t.on("change",".yith-wcwl-popup-content .wishlist-select",function(){var t=l(this);"new"===t.val()?t.parents(".yith-wcwl-first-row").next(".yith-wcwl-second-row").show():t.parents(".yith-wcwl-first-row").next(".yith-wcwl-second-row").hide()}),t.on("change","#bulk_add_to_cart",function(){var t=l(this),e=t.closest(".wishlist_table").find("[data-row-id]").find('input[type="checkbox"]:not(:disabled)');(t.is(":checked")?e.prop("checked","checked"):e.prop("checked",!1)).change()}),t.on("submit",".wishlist-ask-an-estimate-popup",function(){var t=l(this),i=t.closest("form"),a=t.closest(".pp_content"),t=i.serializeArray().reduce((t,e)=>(t[e.name]=e.value,t),{});return t.action=yith_wcwl_l10n.actions.ask_an_estimate,t.context="frontend",l.ajax({beforeSend:function(){j(i)},complete:function(){C(i)},data:t,dataType:"json",method:"post",success:function(t){var e;"undefined"!=typeof t.result&&t.result?void 0!==(e=t.template)&&(i.replaceWith(e),a.css("height","auto"),setTimeout(b,yith_wcwl_l10n.time_to_close_prettyphoto)):"undefined"!=typeof t.message&&(i.find(".woocommerce-error").remove(),i.find(".popup-description").after(l("<div>",{text:t.message,"class":"woocommerce-error"})))},url:yith_wcwl_l10n.ajax_url}),!1}),t.on("click",".yith-wfbt-add-wishlist",function(t){t.preventDefault();var e=l(this),t=l("#yith-wcwl-form");l("html, body").animate({scrollTop:t.offset().top},500),function(t,i){var e=t.attr("data-product-id"),a=l(document).find(".cart.wishlist_table"),n=a.data("pagination"),o=a.data("per-page"),s=a.data("id"),d=a.data("token"),t={action:yith_wcwl_l10n.actions.reload_wishlist_and_adding_elem_action,context:"frontend",pagination:n,per_page:o,wishlist_id:s,wishlist_token:d,add_to_wishlist:e,product_type:t.data("product-type")};if(!T())return window.alert(yith_wcwl_l10n.labels.cookie_disabled);l.ajax({type:"POST",url:yith_wcwl_l10n.ajax_url,data:t,dataType:"html",beforeSend:function(){j(a)},complete:function(){C(a)},success:function(t){var e=l(t),t=e.find("#yith-wcwl-form"),e=e.find(".yith-wfbt-slider-wrapper");i.replaceWith(t),l(".yith-wfbt-slider-wrapper").replaceWith(e),c(),l(document).trigger("yith_wcwl_reload_wishlist_from_frequently")}})}(e,t)}),t.on("submit",".yith-wcwl-popup-form",function(){return!1}),t.on("yith_infs_added_elem",function(){e()}),t.on("found_variation",function(t,e){var i=l(t.target).data("product_id"),a=e.variation_id,t=l('[data-product-id="'+i+'"]').add('[data-original-product-id="'+i+'"]'),e=t.closest(".wishlist-fragment").filter(":visible");i&&a&&t.length&&(t.each(function(){var t=l(this),e=t.closest(".yith-wcwl-add-to-wishlist");t.attr("data-original-product-id",i),t.attr("data-product-id",a),e.length&&(void 0!==(t=e.data("fragment-options"))&&(t.product_id=a,e.data("fragment-options",t)),e.removeClass(function(t,e){return e.match(/add-to-wishlist-\S+/g).join(" ")}).addClass("add-to-wishlist-"+a).attr("data-fragment-ref",a))}),yith_wcwl_l10n.reload_on_found_variation&&(j(e),P({fragments:e,firstLoad:!1})))}),t.on("reset_data",function(t){var a=l(t.target).data("product_id"),e=l('[data-original-product-id="'+a+'"]'),t=e.closest(".wishlist-fragment").filter(":visible");a&&e.length&&(e.each(function(){var t=l(this),e=t.closest(".yith-wcwl-add-to-wishlist"),i=t.attr("data-product-id");t.attr("data-product-id",a),t.attr("data-original-product-id",""),e.length&&(void 0!==(t=e.data("fragment-options"))&&(t.product_id=a,e.data("fragment-options",t)),e.removeClass("add-to-wishlist-"+i).addClass("add-to-wishlist-"+a).attr("data-fragment-ref",a))}),yith_wcwl_l10n.reload_on_found_variation&&(j(t),P({fragments:t,firstLoad:!1})))}),t.on("yith_wcwl_reload_fragments",P),t.on("yith_infs_added_elem",function(t,e){P({container:e,firstLoad:!1})}),t.on("yith_wcwl_fragments_loaded",function(t,e,i,a){a&&l(".variations_form").find(".variations select").last().change()}),t.on("click",".yith-wcwl-popup-feedback .close-popup",function(t){t.preventDefault(),b()}),"undefined"!=typeof yith_wcwl_l10n.enable_notices&&!yith_wcwl_l10n.enable_notices||!l(".yith-wcwl-add-to-wishlist").length||l("#yith-wcwl-popup-message").length||(t=l("<div>").attr("id","yith-wcwl-message"),t=l("<div>").attr("id","yith-wcwl-popup-message").html(t).hide(),l("body").prepend(t)),o(),r(),_(),h(),w(),l(document).on("click",".show-tab",function(t){var e=l(this),i=e.closest(".yith-wcwl-popup-content"),a=e.data("tab"),n=i.find(".tab").filter("."+a);if(t.preventDefault(),!n.length)return!1;e.addClass("active").siblings(".show-tab").removeClass("active"),n.show().siblings(".tab").hide(),"create"===a?i.prepend('<input type="hidden" id="new_wishlist_selector" class="wishlist-select" value="new">'):i.find("#new_wishlist_selector").remove()}),l(document).on("change",".wishlist-select",function(){var t=l(this),e=t.closest(".yith-wcwl-popup-content"),i=t.closest(".tab"),a=e.find(".tab.create"),n=e.find(".show-tab"),e=n.filter('[data-tab="create"]');"new"===t.val()&&a.length&&(i.hide(),a.show(),n.removeClass("active"),e.addClass("active"),t.find("option").removeProp("selected"),t.change())}),n(),i(),e(),a(),d=!1,yith_wcwl_l10n.is_wishlist_responsive&&l(window).on("resize",function(){var t=l(".wishlist_table.responsive"),e=t.is(".mobile"),i=window.matchMedia("(max-width: "+yith_wcwl_l10n.mobile_media_query+"px)"),a=t.closest("form"),n=a.attr("class"),o=a.data("fragment-options"),s={},a=!1;t.length&&(i.matches&&t&&!e?(o.is_mobile="yes",a=!0):!i.matches&&t&&e&&(o.is_mobile="no",a=!0),a&&(d&&d.abort(),s[n.split(" ").join(yith_wcwl_l10n.fragments_index_glue)]=o,d=l.ajax({beforeSend:function(){j(t)},complete:function(){C(t)},data:{action:yith_wcwl_l10n.actions.load_mobile_action,context:"frontend",fragments:s},method:"post",success:function(t){"undefined"!=typeof t.fragments&&(O(t.fragments),c(),l(document).trigger("yith_wcwl_responsive_template",[e,t.fragments]))},url:yith_wcwl_l10n.ajax_url})))}),f(),yith_wcwl_l10n.enable_ajax_loading&&P()}).trigger("yith_wcwl_init")});
assets/js/unminified/jquery.yith-wcwl.js CHANGED
@@ -360,7 +360,7 @@ jQuery( function( $ ){
360
  checkboxes.prop( 'checked','checked').change();
361
  }
362
  else{
363
- checkboxes.removeProp( 'checked').change();
364
  }
365
  } );
366
 
@@ -521,6 +521,7 @@ jQuery( function( $ ){
521
  fragments: fragments,
522
  firstLoad: false
523
  } );
 
524
  } );
525
 
526
  t.on( 'yith_wcwl_reload_fragments', load_fragments );
@@ -1145,7 +1146,7 @@ jQuery( function( $ ){
1145
  $( window ).on( 'resize', function(){
1146
  var table = $('.wishlist_table.responsive'),
1147
  mobile = table.is('.mobile'),
1148
- media = window.matchMedia( '(max-width: 768px)' ),
1149
  form = table.closest('form'),
1150
  id = form.attr('class'),
1151
  options = form.data('fragment-options'),
@@ -1747,6 +1748,7 @@ jQuery( function( $ ){
1747
  init_handling_after_ajax();
1748
 
1749
  $(document).trigger( 'yith_wcwl_fragments_loaded', [ fragments, data.fragments, search.firstLoad ] );
 
1750
  }
1751
  },
1752
  url: yith_wcwl_l10n.ajax_url
360
  checkboxes.prop( 'checked','checked').change();
361
  }
362
  else{
363
+ checkboxes.prop('checked', false).change();
364
  }
365
  } );
366
 
521
  fragments: fragments,
522
  firstLoad: false
523
  } );
524
+
525
  } );
526
 
527
  t.on( 'yith_wcwl_reload_fragments', load_fragments );
1146
  $( window ).on( 'resize', function(){
1147
  var table = $('.wishlist_table.responsive'),
1148
  mobile = table.is('.mobile'),
1149
+ media = window.matchMedia( '(max-width: ' + yith_wcwl_l10n.mobile_media_query + 'px)' ),
1150
  form = table.closest('form'),
1151
  id = form.attr('class'),
1152
  options = form.data('fragment-options'),
1748
  init_handling_after_ajax();
1749
 
1750
  $(document).trigger( 'yith_wcwl_fragments_loaded', [ fragments, data.fragments, search.firstLoad ] );
1751
+
1752
  }
1753
  },
1754
  url: yith_wcwl_l10n.ajax_url
composer.json DELETED
@@ -1,16 +0,0 @@
1
- {
2
- "name": "yith/yith-woocommerce-wishlist",
3
- "type": "wordpress-plugin",
4
- "description": "YITH WooCommerce Wishlist gives your users the possibility to create, fill, manage and share their wishlists allowing you to analyze their interests and needs to improve your marketing strategies.",
5
- "keywords": [
6
- "wishlist",
7
- "woocommerce",
8
- "products",
9
- "e-commerce",
10
- "shop",
11
- "ecommerce",
12
- "yith"
13
- ],
14
- "homepage": "https://yithemes.com/themes/plugins/yith-woocommerce-wishlist/",
15
- "license": "GPL-3.0"
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
gulpfile.js DELETED
@@ -1,85 +0,0 @@
1
- var gulp = require('gulp');
2
- var cleanCSS = require('gulp-clean-css');
3
- var uglify = require('gulp-uglify-es').default;
4
- var wpPot = require('gulp-wp-pot');
5
- var poSync = require('gulp-po-sync');
6
- var po2mo = require('gulp-po2mo');
7
- var jshint = require('gulp-jshint');
8
-
9
- /* Task to compile less */
10
-
11
- var minifyCss = function () {
12
- return gulp.src('assets/css/unminified/*.css')
13
- .pipe(cleanCSS({debug: true}, (details) => {
14
- console.log(`${details.name}: ${details.stats.originalSize}kb => ${details.stats.minifiedSize} kb`);
15
- }))
16
- .pipe(gulp.dest('./assets/css/'));
17
- };
18
-
19
- var minifyThemesCss = function () {
20
- return gulp.src('assets/css/unminified/themes/*.css')
21
- .pipe(cleanCSS({debug: true}, (details) => {
22
- console.log(`${details.name}: ${details.stats.originalSize}kb => ${details.stats.minifiedSize} kb`);
23
- }))
24
- .pipe(gulp.dest('./assets/css/themes/'));
25
- };
26
-
27
- var minifyMainJs = function () {
28
- return gulp.src('./assets/js/unminified/jquery.yith-wcwl.js')
29
- .pipe(uglify())
30
- .pipe(gulp.dest('./assets/js/'))
31
- };
32
-
33
- var minifyAdminJs = function () {
34
- return gulp.src('./assets/js/unminified/admin/yith-wcwl.js')
35
- .pipe(uglify())
36
- .pipe(gulp.dest('./assets/js/admin/'))
37
- };
38
-
39
- var updatePot = function () {
40
- return gulp.src(['./*.php', './**/*.php', '!./plugin-fw/**/*.php', '!./plugin-upgrade/**/*.php'])
41
- .pipe(wpPot( {
42
- domain: 'yith-woocommerce-wishlist',
43
- package: 'YITH WooCommerce Wishlist',
44
- destFile: './languages/yith-woocommerce-wishlist.pot',
45
- metadataFile: '../init.php',
46
- headers: {
47
- "Project-Id-Version": "YITH WooCommerce Wishlist Premium",
48
- "Content-Type": "text/plain; charset=UTF-8",
49
- "Language-Team": "YITH <plugins@yithemes.com>",
50
- "X-Poedit-KeywordsList": "__;_e;_n:1,2;__ngettext:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;esc_attr__;esc_attr_e;esc_html__;esc_html_e",
51
- "X-Poedit-Basepath": "..",
52
- "X-Poedit-SearchPath-0": ".",
53
- "X-Poedit-SearchPathExcluded-0": "plugin-fw",
54
- "X-Poedit-SearchPathExcluded-1": "plugin-upgrade",
55
- "X-Poedit-SearchPathExcluded-2": "node_modules"
56
- }
57
- } ))
58
- .pipe(gulp.dest('./languages/yith-woocommerce-wishlist.pot'));
59
- };
60
-
61
- var updatePo = function () {
62
- return gulp.src('./languages/**/*.po')
63
- .pipe(poSync('./languages/yith-woocommerce-wishlist.pot'))
64
- .pipe(gulp.dest('./languages'));
65
- };
66
-
67
- var updateMo = function () {
68
- return gulp.src('./languages/**/*.po')
69
- .pipe(po2mo())
70
- .pipe(gulp.dest('./languages'));
71
- };
72
-
73
- var validateJs = function () {
74
- return gulp.src('./assets/js/unminified/*yith*.js')
75
- .pipe(jshint())
76
- .pipe(jshint.reporter('default'));
77
- };
78
-
79
- exports.minify_js = gulp.series(minifyMainJs, minifyAdminJs);
80
- exports.minify = gulp.series(minifyCss, minifyThemesCss);
81
- exports.uppot = gulp.series(updatePot);
82
- exports.localize = gulp.series(updatePot, updatePo, updateMo);
83
- exports.deploy = gulp.series(minifyCss, minifyThemesCss, minifyMainJs, minifyAdminJs, updatePot, updatePo, updateMo);
84
- exports.default = gulp.series(minifyCss, minifyThemesCss, validateJs, minifyMainJs, minifyAdminJs);
85
- exports.jshint = gulp.series(validateJs);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/class.yith-wcwl-admin.php CHANGED
@@ -140,6 +140,8 @@ if ( ! class_exists( 'YITH_WCWL_Admin' ) ) {
140
  */
141
  public function init() {
142
  $prefix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? 'unminified/' : '';
 
 
143
  $this->available_tabs = apply_filters(
144
  'yith_wcwl_available_admin_tabs',
145
  array(
@@ -153,7 +155,7 @@ if ( ! class_exists( 'YITH_WCWL_Admin' ) ) {
153
  wp_register_style( 'yith-wcwl-font-awesome', YITH_WCWL_URL . 'assets/css/font-awesome.min.css', array(), '4.7.0' );
154
  wp_register_style( 'yith-wcwl-material-icons', 'https://fonts.googleapis.com/icon?family=Material+Icons', array(), '3.0.1' );
155
  wp_register_style( 'yith-wcwl-admin', YITH_WCWL_URL . 'assets/css/admin.css', array( 'yith-wcwl-font-awesome' ), YITH_WCWL_Frontend()->version );
156
- wp_register_script( 'yith-wcwl-admin', YITH_WCWL_URL . 'assets/js/' . $prefix . 'admin/yith-wcwl.js', array( 'jquery', 'wc-backbone-modal', 'jquery-blockui' ), YITH_WCWL_Frontend()->version );
157
  }
158
 
159
  /**
140
  */
141
  public function init() {
142
  $prefix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? 'unminified/' : '';
143
+ $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
144
+
145
  $this->available_tabs = apply_filters(
146
  'yith_wcwl_available_admin_tabs',
147
  array(
155
  wp_register_style( 'yith-wcwl-font-awesome', YITH_WCWL_URL . 'assets/css/font-awesome.min.css', array(), '4.7.0' );
156
  wp_register_style( 'yith-wcwl-material-icons', 'https://fonts.googleapis.com/icon?family=Material+Icons', array(), '3.0.1' );
157
  wp_register_style( 'yith-wcwl-admin', YITH_WCWL_URL . 'assets/css/admin.css', array( 'yith-wcwl-font-awesome' ), YITH_WCWL_Frontend()->version );
158
+ wp_register_script( 'yith-wcwl-admin', YITH_WCWL_URL . 'assets/js/' . $prefix . 'admin/yith-wcwl' . $suffix . '.js', array( 'jquery', 'wc-backbone-modal', 'jquery-blockui' ), YITH_WCWL_Frontend()->version );
159
  }
160
 
161
  /**
includes/class.yith-wcwl-form-handler.php CHANGED
@@ -125,7 +125,7 @@ if ( ! class_exists( 'YITH_WCWL_Form_Handler' ) ) {
125
  if ( ! empty( $args['wishlist_id'] ) ) {
126
  $wishlist = yith_wcwl_get_wishlist( $args['wishlist_id'] );
127
 
128
- if ( $wishlist && $wishlist->is_current_user_owner() ) {
129
  try {
130
  YITH_WCWL()->remove( $args );
131
  } catch ( Exception $e ) {
125
  if ( ! empty( $args['wishlist_id'] ) ) {
126
  $wishlist = yith_wcwl_get_wishlist( $args['wishlist_id'] );
127
 
128
+ if ( apply_filters( 'yith_wcwl_remove_after_add_to_cart', $wishlist && $wishlist->is_current_user_owner(), $wishlist ) ) {
129
  try {
130
  YITH_WCWL()->remove( $args );
131
  } catch ( Exception $e ) {
includes/class.yith-wcwl-frontend.php CHANGED
@@ -33,7 +33,7 @@ if ( ! class_exists( 'YITH_WCWL_Frontend' ) ) {
33
  * @var string
34
  * @since 1.0.0
35
  */
36
- public $version = '3.0.17';
37
 
38
  /**
39
  * Plugin database version
@@ -307,7 +307,7 @@ if ( ! class_exists( 'YITH_WCWL_Frontend' ) ) {
307
  $main_script_deps = apply_filters( 'yith_wcwl_main_script_deps', array( 'jquery', 'jquery-selectBox' ) );
308
 
309
  if ( ! $located ) {
310
- wp_register_script( 'jquery-yith-wcwl', YITH_WCWL_URL . 'assets/js/' . $prefix . 'jquery.yith-wcwl.js', $main_script_deps, $this->version, true );
311
  wp_localize_script( 'jquery-yith-wcwl', 'yith_wcwl_l10n', $yith_wcwl_l10n );
312
  }
313
  else {
@@ -399,6 +399,7 @@ if ( ! class_exists( 'YITH_WCWL_Frontend' ) ) {
399
  'time_to_close_prettyphoto' => apply_filters( 'yith_wcwl_time_to_close_prettyphoto', 3000 ),
400
  'fragments_index_glue' => apply_filters( 'yith_wcwl_fragments_index_glue', '.' ),
401
  'reload_on_found_variation' => apply_filters( 'yith_wcwl_reload_on_found_variation', true ),
 
402
  'labels' => array(
403
  'cookie_disabled' => __( 'We are sorry, but this feature is available only if cookies on your browser are enabled.', 'yith-woocommerce-wishlist' ),
404
  'added_to_cart_message' => sprintf( '<div class="woocommerce-notices-wrapper"><div class="woocommerce-message" role="alert">%s</div></div>', apply_filters( 'yith_wcwl_added_to_cart_message', __( 'Product added to cart successfully', 'yith-woocommerce-wishlist' ) ) ),
33
  * @var string
34
  * @since 1.0.0
35
  */
36
+ public $version = '3.0.19';
37
 
38
  /**
39
  * Plugin database version
307
  $main_script_deps = apply_filters( 'yith_wcwl_main_script_deps', array( 'jquery', 'jquery-selectBox' ) );
308
 
309
  if ( ! $located ) {
310
+ wp_register_script( 'jquery-yith-wcwl', YITH_WCWL_URL . 'assets/js/' . $prefix . 'jquery.yith-wcwl' . $suffix . '.js', $main_script_deps, $this->version, true );
311
  wp_localize_script( 'jquery-yith-wcwl', 'yith_wcwl_l10n', $yith_wcwl_l10n );
312
  }
313
  else {
399
  'time_to_close_prettyphoto' => apply_filters( 'yith_wcwl_time_to_close_prettyphoto', 3000 ),
400
  'fragments_index_glue' => apply_filters( 'yith_wcwl_fragments_index_glue', '.' ),
401
  'reload_on_found_variation' => apply_filters( 'yith_wcwl_reload_on_found_variation', true ),
402
+ 'mobile_media_query' => apply_filters( 'yith_wcwl_mobile_media_query', 768 ),
403
  'labels' => array(
404
  'cookie_disabled' => __( 'We are sorry, but this feature is available only if cookies on your browser are enabled.', 'yith-woocommerce-wishlist' ),
405
  'added_to_cart_message' => sprintf( '<div class="woocommerce-notices-wrapper"><div class="woocommerce-message" role="alert">%s</div></div>', apply_filters( 'yith_wcwl_added_to_cart_message', __( 'Product added to cart successfully', 'yith-woocommerce-wishlist' ) ) ),
includes/class.yith-wcwl-shortcode.php CHANGED
@@ -694,7 +694,7 @@ if( ! class_exists( 'YITH_WCWL_Shortcode' ) ) {
694
 
695
  $template = yith_wcwl_get_template( 'add-to-wishlist.php', $atts, true );
696
 
697
- return apply_filters( 'yith_wcwl_add_to_wishlisth_button_html', $template, $wishlist_url, $product_type, $exists );
698
  }
699
 
700
  }
694
 
695
  $template = yith_wcwl_get_template( 'add-to-wishlist.php', $atts, true );
696
 
697
+ return apply_filters( 'yith_wcwl_add_to_wishlisth_button_html', $template, $wishlist_url, $product_type, $exists, $atts );
698
  }
699
 
700
  }
includes/class.yith-wcwl.php CHANGED
@@ -235,7 +235,7 @@ if ( ! class_exists( 'YITH_WCWL' ) ) {
235
 
236
  $wishlist = YITH_WCWL_Wishlist_Factory::get_wishlist( $wishlist_id );
237
 
238
- if( ! $wishlist instanceof YITH_WCWL_Wishlist || ! $wishlist->current_user_can( 'remove_from_wishlist' ) ){
239
  throw new YITH_WCWL_Exception( apply_filters( 'yith_wcwl_unable_to_remove_product_message', __( 'Error. Unable to remove the product from the wishlist.', 'yith-woocommerce-wishlist' ) ), 0 );
240
  }
241
 
235
 
236
  $wishlist = YITH_WCWL_Wishlist_Factory::get_wishlist( $wishlist_id );
237
 
238
+ if ( apply_filters( 'yith_wcwl_allow_remove_after_add_to_cart', ! $wishlist instanceof YITH_WCWL_Wishlist || ! $wishlist->current_user_can( 'remove_from_wishlist' ), $wishlist ) ) {
239
  throw new YITH_WCWL_Exception( apply_filters( 'yith_wcwl_unable_to_remove_product_message', __( 'Error. Unable to remove the product from the wishlist.', 'yith-woocommerce-wishlist' ) ), 0 );
240
  }
241
 
includes/functions.yith-wcwl.php CHANGED
@@ -352,38 +352,47 @@ if ( ! function_exists( 'yith_wcwl_get_hidden_products' ) ) {
352
  * @since 2.1.1
353
  */
354
  function yith_wcwl_get_hidden_products() {
355
- if ( version_compare( WC()->version, '3.0.0', '<' ) ) {
356
- $hidden_products = get_posts(
357
- array(
358
- 'post_type' => 'product',
359
- 'post_status' => 'publish',
360
- 'posts_per_page' => - 1,
361
- 'fields' => 'ids',
362
- 'meta_query' => array(
363
- array(
364
- 'key' => '_visibility',
365
- 'value' => 'visible',
 
 
 
 
366
  ),
367
- ),
368
- )
369
- );
370
- } else {
371
- $hidden_products = wc_get_products(
372
- array(
373
- 'limit' => - 1,
374
- 'status' => 'publish',
375
- 'return' => 'ids',
376
- 'visibility' => 'hidden',
377
- )
378
- );
 
 
 
 
 
 
 
 
 
379
  }
380
 
381
- /**
382
- * array_filter was added to prevent errors when previous query returns for some reason just 0 index
383
- *
384
- * @since 2.2.6
385
- */
386
- return apply_filters( 'yith_wcwl_hidden_products', array_filter( $hidden_products ) );
387
  }
388
  }
389
 
352
  * @since 2.1.1
353
  */
354
  function yith_wcwl_get_hidden_products() {
355
+ $hidden_products = get_transient( 'yith_wcwl_hidden_products' );
356
+
357
+ if ( false === $hidden_products ) {
358
+ if ( version_compare( WC()->version, '3.0.0', '<' ) ) {
359
+ $hidden_products = get_posts(
360
+ array(
361
+ 'post_type' => 'product',
362
+ 'post_status' => 'publish',
363
+ 'posts_per_page' => - 1,
364
+ 'fields' => 'ids',
365
+ 'meta_query' => array(
366
+ array(
367
+ 'key' => '_visibility',
368
+ 'value' => 'visible',
369
+ ),
370
  ),
371
+ )
372
+ );
373
+ } else {
374
+ $hidden_products = wc_get_products(
375
+ array(
376
+ 'limit' => - 1,
377
+ 'status' => 'publish',
378
+ 'return' => 'ids',
379
+ 'visibility' => 'hidden',
380
+ )
381
+ );
382
+ }
383
+
384
+ /**
385
+ * Array_filter was added to prevent errors when previous query returns for some reason just 0 index.
386
+ *
387
+ * @since 2.2.6
388
+ */
389
+ $hidden_products = array_filter( $hidden_products );
390
+
391
+ set_transient( 'yith_wcwl_hidden_products', $hidden_products, 30 * DAY_IN_SECONDS );
392
  }
393
 
394
+
395
+ return apply_filters( 'yith_wcwl_hidden_products', $hidden_products );
 
 
 
 
396
  }
397
  }
398
 
init.php CHANGED
@@ -3,13 +3,13 @@
3
  * Plugin Name: YITH WooCommerce Wishlist
4
  * Plugin URI: https://yithemes.com/themes/plugins/yith-woocommerce-wishlist/
5
  * Description: <code><strong>YITH WooCommerce Wishlist</strong></code> gives your users the possibility to create, fill, manage and share their wishlists allowing you to analyze their interests and needs to improve your marketing strategies. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce on <strong>YITH</strong></a>
6
- * Version: 3.0.17
7
  * Author: YITH
8
  * Author URI: https://yithemes.com/
9
  * Text Domain: yith-woocommerce-wishlist
10
  * Domain Path: /languages/
11
  * WC requires at least: 4.2.0
12
- * WC tested up to: 4.8
13
  *
14
  * @author YITHEMES
15
  * @package YITH WooCommerce Wishlist
3
  * Plugin Name: YITH WooCommerce Wishlist
4
  * Plugin URI: https://yithemes.com/themes/plugins/yith-woocommerce-wishlist/
5
  * Description: <code><strong>YITH WooCommerce Wishlist</strong></code> gives your users the possibility to create, fill, manage and share their wishlists allowing you to analyze their interests and needs to improve your marketing strategies. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce on <strong>YITH</strong></a>
6
+ * Version: 3.0.19
7
  * Author: YITH
8
  * Author URI: https://yithemes.com/
9
  * Text Domain: yith-woocommerce-wishlist
10
  * Domain Path: /languages/
11
  * WC requires at least: 4.2.0
12
+ * WC tested up to: 5.0
13
  *
14
  * @author YITHEMES
15
  * @package YITH WooCommerce Wishlist
languages/yith-woocommerce-wishlist-da_DK.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-da_DK.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WCWL\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:04+0200\n"
9
  "Last-Translator: Morten Ruus <altombasketball@gmail.com>\n"
10
  "Language-Team: Your Inspiration Themes <support@yithemes.com>\n"
@@ -1517,73 +1517,73 @@ msgstr ""
1517
  msgid "Edit title"
1518
  msgstr "Rediger titel"
1519
 
1520
- #: templates/wishlist-view-mobile.php:126
1521
  msgid "Added on:"
1522
  msgstr ""
1523
 
1524
- #: templates/wishlist-view-mobile.php:137
1525
  msgid "Price:"
1526
  msgstr ""
1527
 
1528
- #: templates/wishlist-view-mobile.php:164
1529
  msgid "Quantity:"
1530
  msgstr ""
1531
 
1532
- #: templates/wishlist-view-mobile.php:179
1533
  msgid "Stock:"
1534
  msgstr ""
1535
 
1536
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1537
  msgid "Out of stock"
1538
  msgstr ""
1539
 
1540
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1541
  msgid "In Stock"
1542
  msgstr "På lager"
1543
 
1544
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1545
  msgid "Move"
1546
  msgstr "Flyt"
1547
 
1548
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1549
  msgid "Move to another list &rsaquo;"
1550
  msgstr ""
1551
 
1552
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1553
- #: templates/wishlist-view.php:287
1554
  msgid "Remove this product"
1555
  msgstr "Fjern denne vare"
1556
 
1557
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1558
  msgid "No products added to the wishlist"
1559
  msgstr ""
1560
 
1561
- #: templates/wishlist-view.php:78
1562
  msgid "Product name"
1563
  msgstr ""
1564
 
1565
- #: templates/wishlist-view.php:86
1566
  msgid "Unit price"
1567
  msgstr ""
1568
 
1569
- #: templates/wishlist-view.php:95
1570
  msgid "Quantity"
1571
  msgstr ""
1572
 
1573
- #: templates/wishlist-view.php:104
1574
  msgid "Stock status"
1575
  msgstr ""
1576
 
1577
- #: templates/wishlist-view.php:122
1578
  msgid "Arrange"
1579
  msgstr ""
1580
 
1581
  #. translators: date added label: 1 date added.
1582
- #: templates/wishlist-view.php:238
1583
  msgid "Added on: %s"
1584
  msgstr ""
1585
 
1586
- #: templates/wishlist-view.php:287
1587
  msgid "Remove"
1588
  msgstr "Fjern"
1589
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WCWL\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:04+0200\n"
9
  "Last-Translator: Morten Ruus <altombasketball@gmail.com>\n"
10
  "Language-Team: Your Inspiration Themes <support@yithemes.com>\n"
1517
  msgid "Edit title"
1518
  msgstr "Rediger titel"
1519
 
1520
+ #: templates/wishlist-view-mobile.php:136
1521
  msgid "Added on:"
1522
  msgstr ""
1523
 
1524
+ #: templates/wishlist-view-mobile.php:147
1525
  msgid "Price:"
1526
  msgstr ""
1527
 
1528
+ #: templates/wishlist-view-mobile.php:174
1529
  msgid "Quantity:"
1530
  msgstr ""
1531
 
1532
+ #: templates/wishlist-view-mobile.php:189
1533
  msgid "Stock:"
1534
  msgstr ""
1535
 
1536
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1537
  msgid "Out of stock"
1538
  msgstr ""
1539
 
1540
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1541
  msgid "In Stock"
1542
  msgstr "På lager"
1543
 
1544
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1545
  msgid "Move"
1546
  msgstr "Flyt"
1547
 
1548
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1549
  msgid "Move to another list &rsaquo;"
1550
  msgstr ""
1551
 
1552
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1553
+ #: templates/wishlist-view.php:290
1554
  msgid "Remove this product"
1555
  msgstr "Fjern denne vare"
1556
 
1557
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1558
  msgid "No products added to the wishlist"
1559
  msgstr ""
1560
 
1561
+ #: templates/wishlist-view.php:79
1562
  msgid "Product name"
1563
  msgstr ""
1564
 
1565
+ #: templates/wishlist-view.php:87
1566
  msgid "Unit price"
1567
  msgstr ""
1568
 
1569
+ #: templates/wishlist-view.php:96
1570
  msgid "Quantity"
1571
  msgstr ""
1572
 
1573
+ #: templates/wishlist-view.php:105
1574
  msgid "Stock status"
1575
  msgstr ""
1576
 
1577
+ #: templates/wishlist-view.php:123
1578
  msgid "Arrange"
1579
  msgstr ""
1580
 
1581
  #. translators: date added label: 1 date added.
1582
+ #: templates/wishlist-view.php:241
1583
  msgid "Added on: %s"
1584
  msgstr ""
1585
 
1586
+ #: templates/wishlist-view.php:290
1587
  msgid "Remove"
1588
  msgstr "Fjern"
1589
 
languages/yith-woocommerce-wishlist-de_DE.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-de_DE.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:04+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -1530,73 +1530,73 @@ msgstr ""
1530
  msgid "Edit title"
1531
  msgstr "Titel bearbeiten"
1532
 
1533
- #: templates/wishlist-view-mobile.php:126
1534
  msgid "Added on:"
1535
  msgstr ""
1536
 
1537
- #: templates/wishlist-view-mobile.php:137
1538
  msgid "Price:"
1539
  msgstr ""
1540
 
1541
- #: templates/wishlist-view-mobile.php:164
1542
  msgid "Quantity:"
1543
  msgstr ""
1544
 
1545
- #: templates/wishlist-view-mobile.php:179
1546
  msgid "Stock:"
1547
  msgstr ""
1548
 
1549
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1550
  msgid "Out of stock"
1551
  msgstr ""
1552
 
1553
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1554
  msgid "In Stock"
1555
  msgstr "Auf Lager"
1556
 
1557
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1558
  msgid "Move"
1559
  msgstr "Verschieben"
1560
 
1561
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1562
  msgid "Move to another list &rsaquo;"
1563
  msgstr ""
1564
 
1565
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1566
- #: templates/wishlist-view.php:287
1567
  msgid "Remove this product"
1568
  msgstr "Artikel entfernen"
1569
 
1570
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1571
  msgid "No products added to the wishlist"
1572
  msgstr ""
1573
 
1574
- #: templates/wishlist-view.php:78
1575
  msgid "Product name"
1576
  msgstr ""
1577
 
1578
- #: templates/wishlist-view.php:86
1579
  msgid "Unit price"
1580
  msgstr ""
1581
 
1582
- #: templates/wishlist-view.php:95
1583
  msgid "Quantity"
1584
  msgstr ""
1585
 
1586
- #: templates/wishlist-view.php:104
1587
  msgid "Stock status"
1588
  msgstr ""
1589
 
1590
- #: templates/wishlist-view.php:122
1591
  msgid "Arrange"
1592
  msgstr ""
1593
 
1594
  #. translators: date added label: 1 date added.
1595
- #: templates/wishlist-view.php:238
1596
  msgid "Added on: %s"
1597
  msgstr ""
1598
 
1599
- #: templates/wishlist-view.php:287
1600
  msgid "Remove"
1601
  msgstr "Entfernen"
1602
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:04+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
1530
  msgid "Edit title"
1531
  msgstr "Titel bearbeiten"
1532
 
1533
+ #: templates/wishlist-view-mobile.php:136
1534
  msgid "Added on:"
1535
  msgstr ""
1536
 
1537
+ #: templates/wishlist-view-mobile.php:147
1538
  msgid "Price:"
1539
  msgstr ""
1540
 
1541
+ #: templates/wishlist-view-mobile.php:174
1542
  msgid "Quantity:"
1543
  msgstr ""
1544
 
1545
+ #: templates/wishlist-view-mobile.php:189
1546
  msgid "Stock:"
1547
  msgstr ""
1548
 
1549
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1550
  msgid "Out of stock"
1551
  msgstr ""
1552
 
1553
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1554
  msgid "In Stock"
1555
  msgstr "Auf Lager"
1556
 
1557
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1558
  msgid "Move"
1559
  msgstr "Verschieben"
1560
 
1561
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1562
  msgid "Move to another list &rsaquo;"
1563
  msgstr ""
1564
 
1565
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1566
+ #: templates/wishlist-view.php:290
1567
  msgid "Remove this product"
1568
  msgstr "Artikel entfernen"
1569
 
1570
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1571
  msgid "No products added to the wishlist"
1572
  msgstr ""
1573
 
1574
+ #: templates/wishlist-view.php:79
1575
  msgid "Product name"
1576
  msgstr ""
1577
 
1578
+ #: templates/wishlist-view.php:87
1579
  msgid "Unit price"
1580
  msgstr ""
1581
 
1582
+ #: templates/wishlist-view.php:96
1583
  msgid "Quantity"
1584
  msgstr ""
1585
 
1586
+ #: templates/wishlist-view.php:105
1587
  msgid "Stock status"
1588
  msgstr ""
1589
 
1590
+ #: templates/wishlist-view.php:123
1591
  msgid "Arrange"
1592
  msgstr ""
1593
 
1594
  #. translators: date added label: 1 date added.
1595
+ #: templates/wishlist-view.php:241
1596
  msgid "Added on: %s"
1597
  msgstr ""
1598
 
1599
+ #: templates/wishlist-view.php:290
1600
  msgid "Remove"
1601
  msgstr "Entfernen"
1602
 
languages/yith-woocommerce-wishlist-es_AR.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-es_AR.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:04+0200\n"
9
  "Last-Translator: YIThemes <support@yithemes.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -1531,73 +1531,73 @@ msgstr ""
1531
  msgid "Edit title"
1532
  msgstr "Título de la Lista de deseos"
1533
 
1534
- #: templates/wishlist-view-mobile.php:126
1535
  msgid "Added on:"
1536
  msgstr ""
1537
 
1538
- #: templates/wishlist-view-mobile.php:137
1539
  msgid "Price:"
1540
  msgstr ""
1541
 
1542
- #: templates/wishlist-view-mobile.php:164
1543
  msgid "Quantity:"
1544
  msgstr ""
1545
 
1546
- #: templates/wishlist-view-mobile.php:179
1547
  msgid "Stock:"
1548
  msgstr ""
1549
 
1550
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1551
  msgid "Out of stock"
1552
  msgstr ""
1553
 
1554
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1555
  msgid "In Stock"
1556
  msgstr "¡Disponible!"
1557
 
1558
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1559
  msgid "Move"
1560
  msgstr ""
1561
 
1562
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1563
  msgid "Move to another list &rsaquo;"
1564
  msgstr ""
1565
 
1566
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1567
- #: templates/wishlist-view.php:287
1568
  msgid "Remove this product"
1569
  msgstr "Ya no lo quiero"
1570
 
1571
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1572
  msgid "No products added to the wishlist"
1573
  msgstr ""
1574
 
1575
- #: templates/wishlist-view.php:78
1576
  msgid "Product name"
1577
  msgstr ""
1578
 
1579
- #: templates/wishlist-view.php:86
1580
  msgid "Unit price"
1581
  msgstr ""
1582
 
1583
- #: templates/wishlist-view.php:95
1584
  msgid "Quantity"
1585
  msgstr ""
1586
 
1587
- #: templates/wishlist-view.php:104
1588
  msgid "Stock status"
1589
  msgstr ""
1590
 
1591
- #: templates/wishlist-view.php:122
1592
  msgid "Arrange"
1593
  msgstr ""
1594
 
1595
  #. translators: date added label: 1 date added.
1596
- #: templates/wishlist-view.php:238
1597
  msgid "Added on: %s"
1598
  msgstr ""
1599
 
1600
- #: templates/wishlist-view.php:287
1601
  msgid "Remove"
1602
  msgstr ""
1603
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:04+0200\n"
9
  "Last-Translator: YIThemes <support@yithemes.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
1531
  msgid "Edit title"
1532
  msgstr "Título de la Lista de deseos"
1533
 
1534
+ #: templates/wishlist-view-mobile.php:136
1535
  msgid "Added on:"
1536
  msgstr ""
1537
 
1538
+ #: templates/wishlist-view-mobile.php:147
1539
  msgid "Price:"
1540
  msgstr ""
1541
 
1542
+ #: templates/wishlist-view-mobile.php:174
1543
  msgid "Quantity:"
1544
  msgstr ""
1545
 
1546
+ #: templates/wishlist-view-mobile.php:189
1547
  msgid "Stock:"
1548
  msgstr ""
1549
 
1550
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1551
  msgid "Out of stock"
1552
  msgstr ""
1553
 
1554
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1555
  msgid "In Stock"
1556
  msgstr "¡Disponible!"
1557
 
1558
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1559
  msgid "Move"
1560
  msgstr ""
1561
 
1562
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1563
  msgid "Move to another list &rsaquo;"
1564
  msgstr ""
1565
 
1566
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1567
+ #: templates/wishlist-view.php:290
1568
  msgid "Remove this product"
1569
  msgstr "Ya no lo quiero"
1570
 
1571
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1572
  msgid "No products added to the wishlist"
1573
  msgstr ""
1574
 
1575
+ #: templates/wishlist-view.php:79
1576
  msgid "Product name"
1577
  msgstr ""
1578
 
1579
+ #: templates/wishlist-view.php:87
1580
  msgid "Unit price"
1581
  msgstr ""
1582
 
1583
+ #: templates/wishlist-view.php:96
1584
  msgid "Quantity"
1585
  msgstr ""
1586
 
1587
+ #: templates/wishlist-view.php:105
1588
  msgid "Stock status"
1589
  msgstr ""
1590
 
1591
+ #: templates/wishlist-view.php:123
1592
  msgid "Arrange"
1593
  msgstr ""
1594
 
1595
  #. translators: date added label: 1 date added.
1596
+ #: templates/wishlist-view.php:241
1597
  msgid "Added on: %s"
1598
  msgstr ""
1599
 
1600
+ #: templates/wishlist-view.php:290
1601
  msgid "Remove"
1602
  msgstr ""
1603
 
languages/yith-woocommerce-wishlist-es_ES.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-es_ES.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:04+0200\n"
9
  "Last-Translator: Nicola Mustone <mail@nicolamustone.it>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -1662,73 +1662,73 @@ msgstr "Añadir todo al carrito"
1662
  msgid "Edit title"
1663
  msgstr "Editar título"
1664
 
1665
- #: templates/wishlist-view-mobile.php:126
1666
  msgid "Added on:"
1667
  msgstr "Añadido el:"
1668
 
1669
- #: templates/wishlist-view-mobile.php:137
1670
  msgid "Price:"
1671
  msgstr "Precio:"
1672
 
1673
- #: templates/wishlist-view-mobile.php:164
1674
  msgid "Quantity:"
1675
  msgstr "Cantidad:"
1676
 
1677
- #: templates/wishlist-view-mobile.php:179
1678
  msgid "Stock:"
1679
  msgstr "En inventario:"
1680
 
1681
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1682
  msgid "Out of stock"
1683
  msgstr "Agotado"
1684
 
1685
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1686
  msgid "In Stock"
1687
  msgstr "En stock"
1688
 
1689
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1690
  msgid "Move"
1691
  msgstr "Mover"
1692
 
1693
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1694
  msgid "Move to another list &rsaquo;"
1695
  msgstr "Mover a otra lista &rsaquo;"
1696
 
1697
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1698
- #: templates/wishlist-view.php:287
1699
  msgid "Remove this product"
1700
  msgstr "Eliminar este producto"
1701
 
1702
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1703
  msgid "No products added to the wishlist"
1704
  msgstr "No se han añadido productos a la lista de deseos"
1705
 
1706
- #: templates/wishlist-view.php:78
1707
  msgid "Product name"
1708
  msgstr "Nombre del producto"
1709
 
1710
- #: templates/wishlist-view.php:86
1711
  msgid "Unit price"
1712
  msgstr "Precio por unidad"
1713
 
1714
- #: templates/wishlist-view.php:95
1715
  msgid "Quantity"
1716
  msgstr "Cantidad"
1717
 
1718
- #: templates/wishlist-view.php:104
1719
  msgid "Stock status"
1720
  msgstr "Estado de inventario"
1721
 
1722
- #: templates/wishlist-view.php:122
1723
  msgid "Arrange"
1724
  msgstr "Ordenar"
1725
 
1726
  #. translators: date added label: 1 date added.
1727
- #: templates/wishlist-view.php:238
1728
  msgid "Added on: %s"
1729
  msgstr "Añadido el: %s"
1730
 
1731
- #: templates/wishlist-view.php:287
1732
  msgid "Remove"
1733
  msgstr "Quitar"
1734
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:04+0200\n"
9
  "Last-Translator: Nicola Mustone <mail@nicolamustone.it>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
1662
  msgid "Edit title"
1663
  msgstr "Editar título"
1664
 
1665
+ #: templates/wishlist-view-mobile.php:136
1666
  msgid "Added on:"
1667
  msgstr "Añadido el:"
1668
 
1669
+ #: templates/wishlist-view-mobile.php:147
1670
  msgid "Price:"
1671
  msgstr "Precio:"
1672
 
1673
+ #: templates/wishlist-view-mobile.php:174
1674
  msgid "Quantity:"
1675
  msgstr "Cantidad:"
1676
 
1677
+ #: templates/wishlist-view-mobile.php:189
1678
  msgid "Stock:"
1679
  msgstr "En inventario:"
1680
 
1681
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1682
  msgid "Out of stock"
1683
  msgstr "Agotado"
1684
 
1685
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1686
  msgid "In Stock"
1687
  msgstr "En stock"
1688
 
1689
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1690
  msgid "Move"
1691
  msgstr "Mover"
1692
 
1693
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1694
  msgid "Move to another list &rsaquo;"
1695
  msgstr "Mover a otra lista &rsaquo;"
1696
 
1697
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1698
+ #: templates/wishlist-view.php:290
1699
  msgid "Remove this product"
1700
  msgstr "Eliminar este producto"
1701
 
1702
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1703
  msgid "No products added to the wishlist"
1704
  msgstr "No se han añadido productos a la lista de deseos"
1705
 
1706
+ #: templates/wishlist-view.php:79
1707
  msgid "Product name"
1708
  msgstr "Nombre del producto"
1709
 
1710
+ #: templates/wishlist-view.php:87
1711
  msgid "Unit price"
1712
  msgstr "Precio por unidad"
1713
 
1714
+ #: templates/wishlist-view.php:96
1715
  msgid "Quantity"
1716
  msgstr "Cantidad"
1717
 
1718
+ #: templates/wishlist-view.php:105
1719
  msgid "Stock status"
1720
  msgstr "Estado de inventario"
1721
 
1722
+ #: templates/wishlist-view.php:123
1723
  msgid "Arrange"
1724
  msgstr "Ordenar"
1725
 
1726
  #. translators: date added label: 1 date added.
1727
+ #: templates/wishlist-view.php:241
1728
  msgid "Added on: %s"
1729
  msgstr "Añadido el: %s"
1730
 
1731
+ #: templates/wishlist-view.php:290
1732
  msgid "Remove"
1733
  msgstr "Quitar"
1734
 
languages/yith-woocommerce-wishlist-es_MX.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-es_MX.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:04+0200\n"
9
  "Last-Translator: Gabriel Azarias Dzul Cocom <gabrieldzul@gmail.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -1529,73 +1529,73 @@ msgstr ""
1529
  msgid "Edit title"
1530
  msgstr "Título de la Lista de deseos"
1531
 
1532
- #: templates/wishlist-view-mobile.php:126
1533
  msgid "Added on:"
1534
  msgstr ""
1535
 
1536
- #: templates/wishlist-view-mobile.php:137
1537
  msgid "Price:"
1538
  msgstr ""
1539
 
1540
- #: templates/wishlist-view-mobile.php:164
1541
  msgid "Quantity:"
1542
  msgstr ""
1543
 
1544
- #: templates/wishlist-view-mobile.php:179
1545
  msgid "Stock:"
1546
  msgstr ""
1547
 
1548
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1549
  msgid "Out of stock"
1550
  msgstr ""
1551
 
1552
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1553
  msgid "In Stock"
1554
  msgstr "Disponilbe."
1555
 
1556
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1557
  msgid "Move"
1558
  msgstr ""
1559
 
1560
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1561
  msgid "Move to another list &rsaquo;"
1562
  msgstr ""
1563
 
1564
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1565
- #: templates/wishlist-view.php:287
1566
  msgid "Remove this product"
1567
  msgstr "Remover este producto"
1568
 
1569
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1570
  msgid "No products added to the wishlist"
1571
  msgstr ""
1572
 
1573
- #: templates/wishlist-view.php:78
1574
  msgid "Product name"
1575
  msgstr ""
1576
 
1577
- #: templates/wishlist-view.php:86
1578
  msgid "Unit price"
1579
  msgstr ""
1580
 
1581
- #: templates/wishlist-view.php:95
1582
  msgid "Quantity"
1583
  msgstr ""
1584
 
1585
- #: templates/wishlist-view.php:104
1586
  msgid "Stock status"
1587
  msgstr ""
1588
 
1589
- #: templates/wishlist-view.php:122
1590
  msgid "Arrange"
1591
  msgstr ""
1592
 
1593
  #. translators: date added label: 1 date added.
1594
- #: templates/wishlist-view.php:238
1595
  msgid "Added on: %s"
1596
  msgstr ""
1597
 
1598
- #: templates/wishlist-view.php:287
1599
  msgid "Remove"
1600
  msgstr ""
1601
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:04+0200\n"
9
  "Last-Translator: Gabriel Azarias Dzul Cocom <gabrieldzul@gmail.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
1529
  msgid "Edit title"
1530
  msgstr "Título de la Lista de deseos"
1531
 
1532
+ #: templates/wishlist-view-mobile.php:136
1533
  msgid "Added on:"
1534
  msgstr ""
1535
 
1536
+ #: templates/wishlist-view-mobile.php:147
1537
  msgid "Price:"
1538
  msgstr ""
1539
 
1540
+ #: templates/wishlist-view-mobile.php:174
1541
  msgid "Quantity:"
1542
  msgstr ""
1543
 
1544
+ #: templates/wishlist-view-mobile.php:189
1545
  msgid "Stock:"
1546
  msgstr ""
1547
 
1548
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1549
  msgid "Out of stock"
1550
  msgstr ""
1551
 
1552
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1553
  msgid "In Stock"
1554
  msgstr "Disponilbe."
1555
 
1556
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1557
  msgid "Move"
1558
  msgstr ""
1559
 
1560
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1561
  msgid "Move to another list &rsaquo;"
1562
  msgstr ""
1563
 
1564
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1565
+ #: templates/wishlist-view.php:290
1566
  msgid "Remove this product"
1567
  msgstr "Remover este producto"
1568
 
1569
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1570
  msgid "No products added to the wishlist"
1571
  msgstr ""
1572
 
1573
+ #: templates/wishlist-view.php:79
1574
  msgid "Product name"
1575
  msgstr ""
1576
 
1577
+ #: templates/wishlist-view.php:87
1578
  msgid "Unit price"
1579
  msgstr ""
1580
 
1581
+ #: templates/wishlist-view.php:96
1582
  msgid "Quantity"
1583
  msgstr ""
1584
 
1585
+ #: templates/wishlist-view.php:105
1586
  msgid "Stock status"
1587
  msgstr ""
1588
 
1589
+ #: templates/wishlist-view.php:123
1590
  msgid "Arrange"
1591
  msgstr ""
1592
 
1593
  #. translators: date added label: 1 date added.
1594
+ #: templates/wishlist-view.php:241
1595
  msgid "Added on: %s"
1596
  msgstr ""
1597
 
1598
+ #: templates/wishlist-view.php:290
1599
  msgid "Remove"
1600
  msgstr ""
1601
 
languages/yith-woocommerce-wishlist-fa_IR.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-fa_IR.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:05+0200\n"
9
  "Last-Translator: Am!n <amin.pe94@gmail.com>\n"
10
  "Language-Team: YITH - translated to persian by dornaweb <info@dornaweb.com>\n"
@@ -1532,73 +1532,73 @@ msgstr ""
1532
  msgid "Edit title"
1533
  msgstr "ویرایش عنوان"
1534
 
1535
- #: templates/wishlist-view-mobile.php:126
1536
  msgid "Added on:"
1537
  msgstr ""
1538
 
1539
- #: templates/wishlist-view-mobile.php:137
1540
  msgid "Price:"
1541
  msgstr ""
1542
 
1543
- #: templates/wishlist-view-mobile.php:164
1544
  msgid "Quantity:"
1545
  msgstr ""
1546
 
1547
- #: templates/wishlist-view-mobile.php:179
1548
  msgid "Stock:"
1549
  msgstr ""
1550
 
1551
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1552
  msgid "Out of stock"
1553
  msgstr ""
1554
 
1555
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1556
  msgid "In Stock"
1557
  msgstr "موجود"
1558
 
1559
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1560
  msgid "Move"
1561
  msgstr ""
1562
 
1563
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1564
  msgid "Move to another list &rsaquo;"
1565
  msgstr ""
1566
 
1567
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1568
- #: templates/wishlist-view.php:287
1569
  msgid "Remove this product"
1570
  msgstr "حذف این محصول"
1571
 
1572
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1573
  msgid "No products added to the wishlist"
1574
  msgstr ""
1575
 
1576
- #: templates/wishlist-view.php:78
1577
  msgid "Product name"
1578
  msgstr ""
1579
 
1580
- #: templates/wishlist-view.php:86
1581
  msgid "Unit price"
1582
  msgstr ""
1583
 
1584
- #: templates/wishlist-view.php:95
1585
  msgid "Quantity"
1586
  msgstr ""
1587
 
1588
- #: templates/wishlist-view.php:104
1589
  msgid "Stock status"
1590
  msgstr ""
1591
 
1592
- #: templates/wishlist-view.php:122
1593
  msgid "Arrange"
1594
  msgstr ""
1595
 
1596
  #. translators: date added label: 1 date added.
1597
- #: templates/wishlist-view.php:238
1598
  msgid "Added on: %s"
1599
  msgstr ""
1600
 
1601
- #: templates/wishlist-view.php:287
1602
  msgid "Remove"
1603
  msgstr "حذف"
1604
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:05+0200\n"
9
  "Last-Translator: Am!n <amin.pe94@gmail.com>\n"
10
  "Language-Team: YITH - translated to persian by dornaweb <info@dornaweb.com>\n"
1532
  msgid "Edit title"
1533
  msgstr "ویرایش عنوان"
1534
 
1535
+ #: templates/wishlist-view-mobile.php:136
1536
  msgid "Added on:"
1537
  msgstr ""
1538
 
1539
+ #: templates/wishlist-view-mobile.php:147
1540
  msgid "Price:"
1541
  msgstr ""
1542
 
1543
+ #: templates/wishlist-view-mobile.php:174
1544
  msgid "Quantity:"
1545
  msgstr ""
1546
 
1547
+ #: templates/wishlist-view-mobile.php:189
1548
  msgid "Stock:"
1549
  msgstr ""
1550
 
1551
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1552
  msgid "Out of stock"
1553
  msgstr ""
1554
 
1555
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1556
  msgid "In Stock"
1557
  msgstr "موجود"
1558
 
1559
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1560
  msgid "Move"
1561
  msgstr ""
1562
 
1563
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1564
  msgid "Move to another list &rsaquo;"
1565
  msgstr ""
1566
 
1567
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1568
+ #: templates/wishlist-view.php:290
1569
  msgid "Remove this product"
1570
  msgstr "حذف این محصول"
1571
 
1572
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1573
  msgid "No products added to the wishlist"
1574
  msgstr ""
1575
 
1576
+ #: templates/wishlist-view.php:79
1577
  msgid "Product name"
1578
  msgstr ""
1579
 
1580
+ #: templates/wishlist-view.php:87
1581
  msgid "Unit price"
1582
  msgstr ""
1583
 
1584
+ #: templates/wishlist-view.php:96
1585
  msgid "Quantity"
1586
  msgstr ""
1587
 
1588
+ #: templates/wishlist-view.php:105
1589
  msgid "Stock status"
1590
  msgstr ""
1591
 
1592
+ #: templates/wishlist-view.php:123
1593
  msgid "Arrange"
1594
  msgstr ""
1595
 
1596
  #. translators: date added label: 1 date added.
1597
+ #: templates/wishlist-view.php:241
1598
  msgid "Added on: %s"
1599
  msgstr ""
1600
 
1601
+ #: templates/wishlist-view.php:290
1602
  msgid "Remove"
1603
  msgstr "حذف"
1604
 
languages/yith-woocommerce-wishlist-fr_FR.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-fr_FR.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:05+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: \n"
@@ -1663,73 +1663,73 @@ msgstr "Tout ajouter au panier"
1663
  msgid "Edit title"
1664
  msgstr "Modifier le titre"
1665
 
1666
- #: templates/wishlist-view-mobile.php:126
1667
  msgid "Added on:"
1668
  msgstr "Ajouté le:"
1669
 
1670
- #: templates/wishlist-view-mobile.php:137
1671
  msgid "Price:"
1672
  msgstr "Prix:"
1673
 
1674
- #: templates/wishlist-view-mobile.php:164
1675
  msgid "Quantity:"
1676
  msgstr "Quantité:"
1677
 
1678
- #: templates/wishlist-view-mobile.php:179
1679
  msgid "Stock:"
1680
  msgstr "Stock:"
1681
 
1682
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1683
  msgid "Out of stock"
1684
  msgstr "En rupture de stock"
1685
 
1686
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1687
  msgid "In Stock"
1688
  msgstr "En Stock"
1689
 
1690
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1691
  msgid "Move"
1692
  msgstr "Déplacer"
1693
 
1694
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1695
  msgid "Move to another list &rsaquo;"
1696
  msgstr "Déplacer vers une autre liste &rsaquo;"
1697
 
1698
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1699
- #: templates/wishlist-view.php:287
1700
  msgid "Remove this product"
1701
  msgstr "Supprimer ce produit"
1702
 
1703
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1704
  msgid "No products added to the wishlist"
1705
  msgstr "Aucun produit ajouté à la liste de souhaits"
1706
 
1707
- #: templates/wishlist-view.php:78
1708
  msgid "Product name"
1709
  msgstr "Nom du produit"
1710
 
1711
- #: templates/wishlist-view.php:86
1712
  msgid "Unit price"
1713
  msgstr "Prix unitaire"
1714
 
1715
- #: templates/wishlist-view.php:95
1716
  msgid "Quantity"
1717
  msgstr "Quantité"
1718
 
1719
- #: templates/wishlist-view.php:104
1720
  msgid "Stock status"
1721
  msgstr "État des stocks"
1722
 
1723
- #: templates/wishlist-view.php:122
1724
  msgid "Arrange"
1725
  msgstr "Organiser"
1726
 
1727
  #. translators: date added label: 1 date added.
1728
- #: templates/wishlist-view.php:238
1729
  msgid "Added on: %s"
1730
  msgstr "Ajouté le: %s"
1731
 
1732
- #: templates/wishlist-view.php:287
1733
  msgid "Remove"
1734
  msgstr "Supprimé"
1735
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:05+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: \n"
1663
  msgid "Edit title"
1664
  msgstr "Modifier le titre"
1665
 
1666
+ #: templates/wishlist-view-mobile.php:136
1667
  msgid "Added on:"
1668
  msgstr "Ajouté le:"
1669
 
1670
+ #: templates/wishlist-view-mobile.php:147
1671
  msgid "Price:"
1672
  msgstr "Prix:"
1673
 
1674
+ #: templates/wishlist-view-mobile.php:174
1675
  msgid "Quantity:"
1676
  msgstr "Quantité:"
1677
 
1678
+ #: templates/wishlist-view-mobile.php:189
1679
  msgid "Stock:"
1680
  msgstr "Stock:"
1681
 
1682
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1683
  msgid "Out of stock"
1684
  msgstr "En rupture de stock"
1685
 
1686
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1687
  msgid "In Stock"
1688
  msgstr "En Stock"
1689
 
1690
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1691
  msgid "Move"
1692
  msgstr "Déplacer"
1693
 
1694
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1695
  msgid "Move to another list &rsaquo;"
1696
  msgstr "Déplacer vers une autre liste &rsaquo;"
1697
 
1698
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1699
+ #: templates/wishlist-view.php:290
1700
  msgid "Remove this product"
1701
  msgstr "Supprimer ce produit"
1702
 
1703
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1704
  msgid "No products added to the wishlist"
1705
  msgstr "Aucun produit ajouté à la liste de souhaits"
1706
 
1707
+ #: templates/wishlist-view.php:79
1708
  msgid "Product name"
1709
  msgstr "Nom du produit"
1710
 
1711
+ #: templates/wishlist-view.php:87
1712
  msgid "Unit price"
1713
  msgstr "Prix unitaire"
1714
 
1715
+ #: templates/wishlist-view.php:96
1716
  msgid "Quantity"
1717
  msgstr "Quantité"
1718
 
1719
+ #: templates/wishlist-view.php:105
1720
  msgid "Stock status"
1721
  msgstr "État des stocks"
1722
 
1723
+ #: templates/wishlist-view.php:123
1724
  msgid "Arrange"
1725
  msgstr "Organiser"
1726
 
1727
  #. translators: date added label: 1 date added.
1728
+ #: templates/wishlist-view.php:241
1729
  msgid "Added on: %s"
1730
  msgstr "Ajouté le: %s"
1731
 
1732
+ #: templates/wishlist-view.php:290
1733
  msgid "Remove"
1734
  msgstr "Supprimé"
1735
 
languages/yith-woocommerce-wishlist-he_IL.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-he_IL.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:05+0200\n"
9
  "Last-Translator: Nicola Mustone <mail@nicolamustone.it>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -1529,73 +1529,73 @@ msgstr ""
1529
  msgid "Edit title"
1530
  msgstr "כותרת רשימת משאלות"
1531
 
1532
- #: templates/wishlist-view-mobile.php:126
1533
  msgid "Added on:"
1534
  msgstr ""
1535
 
1536
- #: templates/wishlist-view-mobile.php:137
1537
  msgid "Price:"
1538
  msgstr ""
1539
 
1540
- #: templates/wishlist-view-mobile.php:164
1541
  msgid "Quantity:"
1542
  msgstr ""
1543
 
1544
- #: templates/wishlist-view-mobile.php:179
1545
  msgid "Stock:"
1546
  msgstr ""
1547
 
1548
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1549
  msgid "Out of stock"
1550
  msgstr ""
1551
 
1552
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1553
  msgid "In Stock"
1554
  msgstr "קיים במלאי"
1555
 
1556
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1557
  msgid "Move"
1558
  msgstr ""
1559
 
1560
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1561
  msgid "Move to another list &rsaquo;"
1562
  msgstr ""
1563
 
1564
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1565
- #: templates/wishlist-view.php:287
1566
  msgid "Remove this product"
1567
  msgstr "הסרת מוצר מהרשימה"
1568
 
1569
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1570
  msgid "No products added to the wishlist"
1571
  msgstr ""
1572
 
1573
- #: templates/wishlist-view.php:78
1574
  msgid "Product name"
1575
  msgstr ""
1576
 
1577
- #: templates/wishlist-view.php:86
1578
  msgid "Unit price"
1579
  msgstr ""
1580
 
1581
- #: templates/wishlist-view.php:95
1582
  msgid "Quantity"
1583
  msgstr ""
1584
 
1585
- #: templates/wishlist-view.php:104
1586
  msgid "Stock status"
1587
  msgstr ""
1588
 
1589
- #: templates/wishlist-view.php:122
1590
  msgid "Arrange"
1591
  msgstr ""
1592
 
1593
  #. translators: date added label: 1 date added.
1594
- #: templates/wishlist-view.php:238
1595
  msgid "Added on: %s"
1596
  msgstr ""
1597
 
1598
- #: templates/wishlist-view.php:287
1599
  msgid "Remove"
1600
  msgstr ""
1601
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:05+0200\n"
9
  "Last-Translator: Nicola Mustone <mail@nicolamustone.it>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
1529
  msgid "Edit title"
1530
  msgstr "כותרת רשימת משאלות"
1531
 
1532
+ #: templates/wishlist-view-mobile.php:136
1533
  msgid "Added on:"
1534
  msgstr ""
1535
 
1536
+ #: templates/wishlist-view-mobile.php:147
1537
  msgid "Price:"
1538
  msgstr ""
1539
 
1540
+ #: templates/wishlist-view-mobile.php:174
1541
  msgid "Quantity:"
1542
  msgstr ""
1543
 
1544
+ #: templates/wishlist-view-mobile.php:189
1545
  msgid "Stock:"
1546
  msgstr ""
1547
 
1548
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1549
  msgid "Out of stock"
1550
  msgstr ""
1551
 
1552
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1553
  msgid "In Stock"
1554
  msgstr "קיים במלאי"
1555
 
1556
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1557
  msgid "Move"
1558
  msgstr ""
1559
 
1560
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1561
  msgid "Move to another list &rsaquo;"
1562
  msgstr ""
1563
 
1564
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1565
+ #: templates/wishlist-view.php:290
1566
  msgid "Remove this product"
1567
  msgstr "הסרת מוצר מהרשימה"
1568
 
1569
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1570
  msgid "No products added to the wishlist"
1571
  msgstr ""
1572
 
1573
+ #: templates/wishlist-view.php:79
1574
  msgid "Product name"
1575
  msgstr ""
1576
 
1577
+ #: templates/wishlist-view.php:87
1578
  msgid "Unit price"
1579
  msgstr ""
1580
 
1581
+ #: templates/wishlist-view.php:96
1582
  msgid "Quantity"
1583
  msgstr ""
1584
 
1585
+ #: templates/wishlist-view.php:105
1586
  msgid "Stock status"
1587
  msgstr ""
1588
 
1589
+ #: templates/wishlist-view.php:123
1590
  msgid "Arrange"
1591
  msgstr ""
1592
 
1593
  #. translators: date added label: 1 date added.
1594
+ #: templates/wishlist-view.php:241
1595
  msgid "Added on: %s"
1596
  msgstr ""
1597
 
1598
+ #: templates/wishlist-view.php:290
1599
  msgid "Remove"
1600
  msgstr ""
1601
 
languages/yith-woocommerce-wishlist-hr.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-hr.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:05+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -1539,73 +1539,73 @@ msgstr ""
1539
  msgid "Edit title"
1540
  msgstr "Uredi naslov"
1541
 
1542
- #: templates/wishlist-view-mobile.php:126
1543
  msgid "Added on:"
1544
  msgstr ""
1545
 
1546
- #: templates/wishlist-view-mobile.php:137
1547
  msgid "Price:"
1548
  msgstr ""
1549
 
1550
- #: templates/wishlist-view-mobile.php:164
1551
  msgid "Quantity:"
1552
  msgstr ""
1553
 
1554
- #: templates/wishlist-view-mobile.php:179
1555
  msgid "Stock:"
1556
  msgstr ""
1557
 
1558
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1559
  msgid "Out of stock"
1560
  msgstr ""
1561
 
1562
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1563
  msgid "In Stock"
1564
  msgstr "Na zalihi"
1565
 
1566
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1567
  msgid "Move"
1568
  msgstr "Premjesti"
1569
 
1570
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1571
  msgid "Move to another list &rsaquo;"
1572
  msgstr ""
1573
 
1574
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1575
- #: templates/wishlist-view.php:287
1576
  msgid "Remove this product"
1577
  msgstr "Obriši ovaj proizvod"
1578
 
1579
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1580
  msgid "No products added to the wishlist"
1581
  msgstr ""
1582
 
1583
- #: templates/wishlist-view.php:78
1584
  msgid "Product name"
1585
  msgstr ""
1586
 
1587
- #: templates/wishlist-view.php:86
1588
  msgid "Unit price"
1589
  msgstr ""
1590
 
1591
- #: templates/wishlist-view.php:95
1592
  msgid "Quantity"
1593
  msgstr ""
1594
 
1595
- #: templates/wishlist-view.php:104
1596
  msgid "Stock status"
1597
  msgstr ""
1598
 
1599
- #: templates/wishlist-view.php:122
1600
  msgid "Arrange"
1601
  msgstr ""
1602
 
1603
  #. translators: date added label: 1 date added.
1604
- #: templates/wishlist-view.php:238
1605
  msgid "Added on: %s"
1606
  msgstr ""
1607
 
1608
- #: templates/wishlist-view.php:287
1609
  msgid "Remove"
1610
  msgstr "Obriši"
1611
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:05+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
1539
  msgid "Edit title"
1540
  msgstr "Uredi naslov"
1541
 
1542
+ #: templates/wishlist-view-mobile.php:136
1543
  msgid "Added on:"
1544
  msgstr ""
1545
 
1546
+ #: templates/wishlist-view-mobile.php:147
1547
  msgid "Price:"
1548
  msgstr ""
1549
 
1550
+ #: templates/wishlist-view-mobile.php:174
1551
  msgid "Quantity:"
1552
  msgstr ""
1553
 
1554
+ #: templates/wishlist-view-mobile.php:189
1555
  msgid "Stock:"
1556
  msgstr ""
1557
 
1558
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1559
  msgid "Out of stock"
1560
  msgstr ""
1561
 
1562
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1563
  msgid "In Stock"
1564
  msgstr "Na zalihi"
1565
 
1566
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1567
  msgid "Move"
1568
  msgstr "Premjesti"
1569
 
1570
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1571
  msgid "Move to another list &rsaquo;"
1572
  msgstr ""
1573
 
1574
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1575
+ #: templates/wishlist-view.php:290
1576
  msgid "Remove this product"
1577
  msgstr "Obriši ovaj proizvod"
1578
 
1579
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1580
  msgid "No products added to the wishlist"
1581
  msgstr ""
1582
 
1583
+ #: templates/wishlist-view.php:79
1584
  msgid "Product name"
1585
  msgstr ""
1586
 
1587
+ #: templates/wishlist-view.php:87
1588
  msgid "Unit price"
1589
  msgstr ""
1590
 
1591
+ #: templates/wishlist-view.php:96
1592
  msgid "Quantity"
1593
  msgstr ""
1594
 
1595
+ #: templates/wishlist-view.php:105
1596
  msgid "Stock status"
1597
  msgstr ""
1598
 
1599
+ #: templates/wishlist-view.php:123
1600
  msgid "Arrange"
1601
  msgstr ""
1602
 
1603
  #. translators: date added label: 1 date added.
1604
+ #: templates/wishlist-view.php:241
1605
  msgid "Added on: %s"
1606
  msgstr ""
1607
 
1608
+ #: templates/wishlist-view.php:290
1609
  msgid "Remove"
1610
  msgstr "Obriši"
1611
 
languages/yith-woocommerce-wishlist-it_IT.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-it_IT.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:05+0200\n"
9
  "Last-Translator: Nicola Mustone <mail@nicolamustone.it>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -1660,73 +1660,73 @@ msgstr "Aggiungi tutti al carrello"
1660
  msgid "Edit title"
1661
  msgstr "Modifica titolo"
1662
 
1663
- #: templates/wishlist-view-mobile.php:126
1664
  msgid "Added on:"
1665
  msgstr "Aggiunto il:"
1666
 
1667
- #: templates/wishlist-view-mobile.php:137
1668
  msgid "Price:"
1669
  msgstr "Prezzo:"
1670
 
1671
- #: templates/wishlist-view-mobile.php:164
1672
  msgid "Quantity:"
1673
  msgstr "Quantità:"
1674
 
1675
- #: templates/wishlist-view-mobile.php:179
1676
  msgid "Stock:"
1677
  msgstr "Disponibilità in magazzino:"
1678
 
1679
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1680
  msgid "Out of stock"
1681
  msgstr "Esaurito"
1682
 
1683
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1684
  msgid "In Stock"
1685
  msgstr "Disponibile"
1686
 
1687
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1688
  msgid "Move"
1689
  msgstr "Sposta"
1690
 
1691
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1692
  msgid "Move to another list &rsaquo;"
1693
  msgstr "Sposta in un'altra lista &rsaquo;"
1694
 
1695
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1696
- #: templates/wishlist-view.php:287
1697
  msgid "Remove this product"
1698
  msgstr "Rimuovi questo prodotto"
1699
 
1700
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1701
  msgid "No products added to the wishlist"
1702
  msgstr "Non è stato ancora aggiunto nessun prodotto alla lista"
1703
 
1704
- #: templates/wishlist-view.php:78
1705
  msgid "Product name"
1706
  msgstr "Nome prodotto"
1707
 
1708
- #: templates/wishlist-view.php:86
1709
  msgid "Unit price"
1710
  msgstr "Prezzo unitario"
1711
 
1712
- #: templates/wishlist-view.php:95
1713
  msgid "Quantity"
1714
  msgstr "Quantità"
1715
 
1716
- #: templates/wishlist-view.php:104
1717
  msgid "Stock status"
1718
  msgstr "Disponibilità in magazzino"
1719
 
1720
- #: templates/wishlist-view.php:122
1721
  msgid "Arrange"
1722
  msgstr "Riordina"
1723
 
1724
  #. translators: date added label: 1 date added.
1725
- #: templates/wishlist-view.php:238
1726
  msgid "Added on: %s"
1727
  msgstr "Aggiunto il: %s"
1728
 
1729
- #: templates/wishlist-view.php:287
1730
  msgid "Remove"
1731
  msgstr "Rimuovi"
1732
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:05+0200\n"
9
  "Last-Translator: Nicola Mustone <mail@nicolamustone.it>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
1660
  msgid "Edit title"
1661
  msgstr "Modifica titolo"
1662
 
1663
+ #: templates/wishlist-view-mobile.php:136
1664
  msgid "Added on:"
1665
  msgstr "Aggiunto il:"
1666
 
1667
+ #: templates/wishlist-view-mobile.php:147
1668
  msgid "Price:"
1669
  msgstr "Prezzo:"
1670
 
1671
+ #: templates/wishlist-view-mobile.php:174
1672
  msgid "Quantity:"
1673
  msgstr "Quantità:"
1674
 
1675
+ #: templates/wishlist-view-mobile.php:189
1676
  msgid "Stock:"
1677
  msgstr "Disponibilità in magazzino:"
1678
 
1679
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1680
  msgid "Out of stock"
1681
  msgstr "Esaurito"
1682
 
1683
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1684
  msgid "In Stock"
1685
  msgstr "Disponibile"
1686
 
1687
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1688
  msgid "Move"
1689
  msgstr "Sposta"
1690
 
1691
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1692
  msgid "Move to another list &rsaquo;"
1693
  msgstr "Sposta in un'altra lista &rsaquo;"
1694
 
1695
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1696
+ #: templates/wishlist-view.php:290
1697
  msgid "Remove this product"
1698
  msgstr "Rimuovi questo prodotto"
1699
 
1700
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1701
  msgid "No products added to the wishlist"
1702
  msgstr "Non è stato ancora aggiunto nessun prodotto alla lista"
1703
 
1704
+ #: templates/wishlist-view.php:79
1705
  msgid "Product name"
1706
  msgstr "Nome prodotto"
1707
 
1708
+ #: templates/wishlist-view.php:87
1709
  msgid "Unit price"
1710
  msgstr "Prezzo unitario"
1711
 
1712
+ #: templates/wishlist-view.php:96
1713
  msgid "Quantity"
1714
  msgstr "Quantità"
1715
 
1716
+ #: templates/wishlist-view.php:105
1717
  msgid "Stock status"
1718
  msgstr "Disponibilità in magazzino"
1719
 
1720
+ #: templates/wishlist-view.php:123
1721
  msgid "Arrange"
1722
  msgstr "Riordina"
1723
 
1724
  #. translators: date added label: 1 date added.
1725
+ #: templates/wishlist-view.php:241
1726
  msgid "Added on: %s"
1727
  msgstr "Aggiunto il: %s"
1728
 
1729
+ #: templates/wishlist-view.php:290
1730
  msgid "Remove"
1731
  msgstr "Rimuovi"
1732
 
languages/yith-woocommerce-wishlist-ko_KR.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-ko_KR.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:05+0200\n"
9
  "Last-Translator: Valentyn Zubenko <valentyn.zubenko@gmail.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -1535,73 +1535,73 @@ msgstr ""
1535
  msgid "Edit title"
1536
  msgstr "타이틀 편집 "
1537
 
1538
- #: templates/wishlist-view-mobile.php:126
1539
  msgid "Added on:"
1540
  msgstr ""
1541
 
1542
- #: templates/wishlist-view-mobile.php:137
1543
  msgid "Price:"
1544
  msgstr ""
1545
 
1546
- #: templates/wishlist-view-mobile.php:164
1547
  msgid "Quantity:"
1548
  msgstr ""
1549
 
1550
- #: templates/wishlist-view-mobile.php:179
1551
  msgid "Stock:"
1552
  msgstr ""
1553
 
1554
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1555
  msgid "Out of stock"
1556
  msgstr ""
1557
 
1558
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1559
  msgid "In Stock"
1560
  msgstr "재고 있음 "
1561
 
1562
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1563
  msgid "Move"
1564
  msgstr "이동 "
1565
 
1566
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1567
  msgid "Move to another list &rsaquo;"
1568
  msgstr ""
1569
 
1570
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1571
- #: templates/wishlist-view.php:287
1572
  msgid "Remove this product"
1573
  msgstr "이 상품 제거 "
1574
 
1575
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1576
  msgid "No products added to the wishlist"
1577
  msgstr ""
1578
 
1579
- #: templates/wishlist-view.php:78
1580
  msgid "Product name"
1581
  msgstr ""
1582
 
1583
- #: templates/wishlist-view.php:86
1584
  msgid "Unit price"
1585
  msgstr ""
1586
 
1587
- #: templates/wishlist-view.php:95
1588
  msgid "Quantity"
1589
  msgstr ""
1590
 
1591
- #: templates/wishlist-view.php:104
1592
  msgid "Stock status"
1593
  msgstr ""
1594
 
1595
- #: templates/wishlist-view.php:122
1596
  msgid "Arrange"
1597
  msgstr ""
1598
 
1599
  #. translators: date added label: 1 date added.
1600
- #: templates/wishlist-view.php:238
1601
  msgid "Added on: %s"
1602
  msgstr ""
1603
 
1604
- #: templates/wishlist-view.php:287
1605
  msgid "Remove"
1606
  msgstr "제거 "
1607
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:05+0200\n"
9
  "Last-Translator: Valentyn Zubenko <valentyn.zubenko@gmail.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
1535
  msgid "Edit title"
1536
  msgstr "타이틀 편집 "
1537
 
1538
+ #: templates/wishlist-view-mobile.php:136
1539
  msgid "Added on:"
1540
  msgstr ""
1541
 
1542
+ #: templates/wishlist-view-mobile.php:147
1543
  msgid "Price:"
1544
  msgstr ""
1545
 
1546
+ #: templates/wishlist-view-mobile.php:174
1547
  msgid "Quantity:"
1548
  msgstr ""
1549
 
1550
+ #: templates/wishlist-view-mobile.php:189
1551
  msgid "Stock:"
1552
  msgstr ""
1553
 
1554
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1555
  msgid "Out of stock"
1556
  msgstr ""
1557
 
1558
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1559
  msgid "In Stock"
1560
  msgstr "재고 있음 "
1561
 
1562
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1563
  msgid "Move"
1564
  msgstr "이동 "
1565
 
1566
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1567
  msgid "Move to another list &rsaquo;"
1568
  msgstr ""
1569
 
1570
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1571
+ #: templates/wishlist-view.php:290
1572
  msgid "Remove this product"
1573
  msgstr "이 상품 제거 "
1574
 
1575
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1576
  msgid "No products added to the wishlist"
1577
  msgstr ""
1578
 
1579
+ #: templates/wishlist-view.php:79
1580
  msgid "Product name"
1581
  msgstr ""
1582
 
1583
+ #: templates/wishlist-view.php:87
1584
  msgid "Unit price"
1585
  msgstr ""
1586
 
1587
+ #: templates/wishlist-view.php:96
1588
  msgid "Quantity"
1589
  msgstr ""
1590
 
1591
+ #: templates/wishlist-view.php:105
1592
  msgid "Stock status"
1593
  msgstr ""
1594
 
1595
+ #: templates/wishlist-view.php:123
1596
  msgid "Arrange"
1597
  msgstr ""
1598
 
1599
  #. translators: date added label: 1 date added.
1600
+ #: templates/wishlist-view.php:241
1601
  msgid "Added on: %s"
1602
  msgstr ""
1603
 
1604
+ #: templates/wishlist-view.php:290
1605
  msgid "Remove"
1606
  msgstr "제거 "
1607
 
languages/yith-woocommerce-wishlist-nl_NL.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-nl_NL.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:06+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -1662,73 +1662,73 @@ msgstr "Allen toevoegen aan winkelwagen"
1662
  msgid "Edit title"
1663
  msgstr "Bewerk titel"
1664
 
1665
- #: templates/wishlist-view-mobile.php:126
1666
  msgid "Added on:"
1667
  msgstr "Toegevoegd op:"
1668
 
1669
- #: templates/wishlist-view-mobile.php:137
1670
  msgid "Price:"
1671
  msgstr "Prijs:"
1672
 
1673
- #: templates/wishlist-view-mobile.php:164
1674
  msgid "Quantity:"
1675
  msgstr "Hoeveelheid:"
1676
 
1677
- #: templates/wishlist-view-mobile.php:179
1678
  msgid "Stock:"
1679
  msgstr "Voorraad:"
1680
 
1681
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1682
  msgid "Out of stock"
1683
  msgstr "Niet op voorraad"
1684
 
1685
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1686
  msgid "In Stock"
1687
  msgstr "Op voorraad"
1688
 
1689
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1690
  msgid "Move"
1691
  msgstr "Verplaatsen"
1692
 
1693
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1694
  msgid "Move to another list &rsaquo;"
1695
  msgstr "Verplaatsen naar een andere lijst &rsaquo;"
1696
 
1697
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1698
- #: templates/wishlist-view.php:287
1699
  msgid "Remove this product"
1700
  msgstr "Verwijder dit product"
1701
 
1702
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1703
  msgid "No products added to the wishlist"
1704
  msgstr "Geen producten toegevoegd aan de verlanglijst"
1705
 
1706
- #: templates/wishlist-view.php:78
1707
  msgid "Product name"
1708
  msgstr "Productnaam"
1709
 
1710
- #: templates/wishlist-view.php:86
1711
  msgid "Unit price"
1712
  msgstr "Eenheidsprijs"
1713
 
1714
- #: templates/wishlist-view.php:95
1715
  msgid "Quantity"
1716
  msgstr "Hoeveelheid"
1717
 
1718
- #: templates/wishlist-view.php:104
1719
  msgid "Stock status"
1720
  msgstr "Voorraad status"
1721
 
1722
- #: templates/wishlist-view.php:122
1723
  msgid "Arrange"
1724
  msgstr "Schikken"
1725
 
1726
  #. translators: date added label: 1 date added.
1727
- #: templates/wishlist-view.php:238
1728
  msgid "Added on: %s"
1729
  msgstr "Toegevoegd op: %s"
1730
 
1731
- #: templates/wishlist-view.php:287
1732
  msgid "Remove"
1733
  msgstr "Verwijderen"
1734
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:06+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
1662
  msgid "Edit title"
1663
  msgstr "Bewerk titel"
1664
 
1665
+ #: templates/wishlist-view-mobile.php:136
1666
  msgid "Added on:"
1667
  msgstr "Toegevoegd op:"
1668
 
1669
+ #: templates/wishlist-view-mobile.php:147
1670
  msgid "Price:"
1671
  msgstr "Prijs:"
1672
 
1673
+ #: templates/wishlist-view-mobile.php:174
1674
  msgid "Quantity:"
1675
  msgstr "Hoeveelheid:"
1676
 
1677
+ #: templates/wishlist-view-mobile.php:189
1678
  msgid "Stock:"
1679
  msgstr "Voorraad:"
1680
 
1681
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1682
  msgid "Out of stock"
1683
  msgstr "Niet op voorraad"
1684
 
1685
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1686
  msgid "In Stock"
1687
  msgstr "Op voorraad"
1688
 
1689
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1690
  msgid "Move"
1691
  msgstr "Verplaatsen"
1692
 
1693
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1694
  msgid "Move to another list &rsaquo;"
1695
  msgstr "Verplaatsen naar een andere lijst &rsaquo;"
1696
 
1697
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1698
+ #: templates/wishlist-view.php:290
1699
  msgid "Remove this product"
1700
  msgstr "Verwijder dit product"
1701
 
1702
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1703
  msgid "No products added to the wishlist"
1704
  msgstr "Geen producten toegevoegd aan de verlanglijst"
1705
 
1706
+ #: templates/wishlist-view.php:79
1707
  msgid "Product name"
1708
  msgstr "Productnaam"
1709
 
1710
+ #: templates/wishlist-view.php:87
1711
  msgid "Unit price"
1712
  msgstr "Eenheidsprijs"
1713
 
1714
+ #: templates/wishlist-view.php:96
1715
  msgid "Quantity"
1716
  msgstr "Hoeveelheid"
1717
 
1718
+ #: templates/wishlist-view.php:105
1719
  msgid "Stock status"
1720
  msgstr "Voorraad status"
1721
 
1722
+ #: templates/wishlist-view.php:123
1723
  msgid "Arrange"
1724
  msgstr "Schikken"
1725
 
1726
  #. translators: date added label: 1 date added.
1727
+ #: templates/wishlist-view.php:241
1728
  msgid "Added on: %s"
1729
  msgstr "Toegevoegd op: %s"
1730
 
1731
+ #: templates/wishlist-view.php:290
1732
  msgid "Remove"
1733
  msgstr "Verwijderen"
1734
 
languages/yith-woocommerce-wishlist-pl_PL.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-pl_PL.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:06+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -1525,73 +1525,73 @@ msgstr ""
1525
  msgid "Edit title"
1526
  msgstr "Edytuj tytuł"
1527
 
1528
- #: templates/wishlist-view-mobile.php:126
1529
  msgid "Added on:"
1530
  msgstr ""
1531
 
1532
- #: templates/wishlist-view-mobile.php:137
1533
  msgid "Price:"
1534
  msgstr ""
1535
 
1536
- #: templates/wishlist-view-mobile.php:164
1537
  msgid "Quantity:"
1538
  msgstr ""
1539
 
1540
- #: templates/wishlist-view-mobile.php:179
1541
  msgid "Stock:"
1542
  msgstr ""
1543
 
1544
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1545
  msgid "Out of stock"
1546
  msgstr ""
1547
 
1548
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1549
  msgid "In Stock"
1550
  msgstr "Dostępny"
1551
 
1552
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1553
  msgid "Move"
1554
  msgstr "Przenieś"
1555
 
1556
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1557
  msgid "Move to another list &rsaquo;"
1558
  msgstr ""
1559
 
1560
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1561
- #: templates/wishlist-view.php:287
1562
  msgid "Remove this product"
1563
  msgstr "Usuń"
1564
 
1565
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1566
  msgid "No products added to the wishlist"
1567
  msgstr ""
1568
 
1569
- #: templates/wishlist-view.php:78
1570
  msgid "Product name"
1571
  msgstr ""
1572
 
1573
- #: templates/wishlist-view.php:86
1574
  msgid "Unit price"
1575
  msgstr ""
1576
 
1577
- #: templates/wishlist-view.php:95
1578
  msgid "Quantity"
1579
  msgstr ""
1580
 
1581
- #: templates/wishlist-view.php:104
1582
  msgid "Stock status"
1583
  msgstr ""
1584
 
1585
- #: templates/wishlist-view.php:122
1586
  msgid "Arrange"
1587
  msgstr ""
1588
 
1589
  #. translators: date added label: 1 date added.
1590
- #: templates/wishlist-view.php:238
1591
  msgid "Added on: %s"
1592
  msgstr ""
1593
 
1594
- #: templates/wishlist-view.php:287
1595
  msgid "Remove"
1596
  msgstr "Usuń"
1597
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:06+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
1525
  msgid "Edit title"
1526
  msgstr "Edytuj tytuł"
1527
 
1528
+ #: templates/wishlist-view-mobile.php:136
1529
  msgid "Added on:"
1530
  msgstr ""
1531
 
1532
+ #: templates/wishlist-view-mobile.php:147
1533
  msgid "Price:"
1534
  msgstr ""
1535
 
1536
+ #: templates/wishlist-view-mobile.php:174
1537
  msgid "Quantity:"
1538
  msgstr ""
1539
 
1540
+ #: templates/wishlist-view-mobile.php:189
1541
  msgid "Stock:"
1542
  msgstr ""
1543
 
1544
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1545
  msgid "Out of stock"
1546
  msgstr ""
1547
 
1548
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1549
  msgid "In Stock"
1550
  msgstr "Dostępny"
1551
 
1552
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1553
  msgid "Move"
1554
  msgstr "Przenieś"
1555
 
1556
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1557
  msgid "Move to another list &rsaquo;"
1558
  msgstr ""
1559
 
1560
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1561
+ #: templates/wishlist-view.php:290
1562
  msgid "Remove this product"
1563
  msgstr "Usuń"
1564
 
1565
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1566
  msgid "No products added to the wishlist"
1567
  msgstr ""
1568
 
1569
+ #: templates/wishlist-view.php:79
1570
  msgid "Product name"
1571
  msgstr ""
1572
 
1573
+ #: templates/wishlist-view.php:87
1574
  msgid "Unit price"
1575
  msgstr ""
1576
 
1577
+ #: templates/wishlist-view.php:96
1578
  msgid "Quantity"
1579
  msgstr ""
1580
 
1581
+ #: templates/wishlist-view.php:105
1582
  msgid "Stock status"
1583
  msgstr ""
1584
 
1585
+ #: templates/wishlist-view.php:123
1586
  msgid "Arrange"
1587
  msgstr ""
1588
 
1589
  #. translators: date added label: 1 date added.
1590
+ #: templates/wishlist-view.php:241
1591
  msgid "Added on: %s"
1592
  msgstr ""
1593
 
1594
+ #: templates/wishlist-view.php:290
1595
  msgid "Remove"
1596
  msgstr "Usuń"
1597
 
languages/yith-woocommerce-wishlist-pt_BR.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-pt_BR.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:06+0200\n"
9
  "Last-Translator: YIThemes <support@yithemes.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -1529,73 +1529,73 @@ msgstr ""
1529
  msgid "Edit title"
1530
  msgstr "Titulo da lista de desejos"
1531
 
1532
- #: templates/wishlist-view-mobile.php:126
1533
  msgid "Added on:"
1534
  msgstr ""
1535
 
1536
- #: templates/wishlist-view-mobile.php:137
1537
  msgid "Price:"
1538
  msgstr ""
1539
 
1540
- #: templates/wishlist-view-mobile.php:164
1541
  msgid "Quantity:"
1542
  msgstr ""
1543
 
1544
- #: templates/wishlist-view-mobile.php:179
1545
  msgid "Stock:"
1546
  msgstr ""
1547
 
1548
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1549
  msgid "Out of stock"
1550
  msgstr ""
1551
 
1552
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1553
  msgid "In Stock"
1554
  msgstr "Em estoque"
1555
 
1556
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1557
  msgid "Move"
1558
  msgstr ""
1559
 
1560
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1561
  msgid "Move to another list &rsaquo;"
1562
  msgstr ""
1563
 
1564
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1565
- #: templates/wishlist-view.php:287
1566
  msgid "Remove this product"
1567
  msgstr "Remover este produto"
1568
 
1569
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1570
  msgid "No products added to the wishlist"
1571
  msgstr ""
1572
 
1573
- #: templates/wishlist-view.php:78
1574
  msgid "Product name"
1575
  msgstr ""
1576
 
1577
- #: templates/wishlist-view.php:86
1578
  msgid "Unit price"
1579
  msgstr ""
1580
 
1581
- #: templates/wishlist-view.php:95
1582
  msgid "Quantity"
1583
  msgstr ""
1584
 
1585
- #: templates/wishlist-view.php:104
1586
  msgid "Stock status"
1587
  msgstr ""
1588
 
1589
- #: templates/wishlist-view.php:122
1590
  msgid "Arrange"
1591
  msgstr ""
1592
 
1593
  #. translators: date added label: 1 date added.
1594
- #: templates/wishlist-view.php:238
1595
  msgid "Added on: %s"
1596
  msgstr ""
1597
 
1598
- #: templates/wishlist-view.php:287
1599
  msgid "Remove"
1600
  msgstr ""
1601
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:06+0200\n"
9
  "Last-Translator: YIThemes <support@yithemes.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
1529
  msgid "Edit title"
1530
  msgstr "Titulo da lista de desejos"
1531
 
1532
+ #: templates/wishlist-view-mobile.php:136
1533
  msgid "Added on:"
1534
  msgstr ""
1535
 
1536
+ #: templates/wishlist-view-mobile.php:147
1537
  msgid "Price:"
1538
  msgstr ""
1539
 
1540
+ #: templates/wishlist-view-mobile.php:174
1541
  msgid "Quantity:"
1542
  msgstr ""
1543
 
1544
+ #: templates/wishlist-view-mobile.php:189
1545
  msgid "Stock:"
1546
  msgstr ""
1547
 
1548
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1549
  msgid "Out of stock"
1550
  msgstr ""
1551
 
1552
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1553
  msgid "In Stock"
1554
  msgstr "Em estoque"
1555
 
1556
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1557
  msgid "Move"
1558
  msgstr ""
1559
 
1560
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1561
  msgid "Move to another list &rsaquo;"
1562
  msgstr ""
1563
 
1564
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1565
+ #: templates/wishlist-view.php:290
1566
  msgid "Remove this product"
1567
  msgstr "Remover este produto"
1568
 
1569
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1570
  msgid "No products added to the wishlist"
1571
  msgstr ""
1572
 
1573
+ #: templates/wishlist-view.php:79
1574
  msgid "Product name"
1575
  msgstr ""
1576
 
1577
+ #: templates/wishlist-view.php:87
1578
  msgid "Unit price"
1579
  msgstr ""
1580
 
1581
+ #: templates/wishlist-view.php:96
1582
  msgid "Quantity"
1583
  msgstr ""
1584
 
1585
+ #: templates/wishlist-view.php:105
1586
  msgid "Stock status"
1587
  msgstr ""
1588
 
1589
+ #: templates/wishlist-view.php:123
1590
  msgid "Arrange"
1591
  msgstr ""
1592
 
1593
  #. translators: date added label: 1 date added.
1594
+ #: templates/wishlist-view.php:241
1595
  msgid "Added on: %s"
1596
  msgstr ""
1597
 
1598
+ #: templates/wishlist-view.php:290
1599
  msgid "Remove"
1600
  msgstr ""
1601
 
languages/yith-woocommerce-wishlist-pt_PT.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-pt_PT.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:06+0200\n"
9
  "Last-Translator: YIThemes <support@yithemes.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -1529,73 +1529,73 @@ msgstr ""
1529
  msgid "Edit title"
1530
  msgstr "Titulo da lista de desejos"
1531
 
1532
- #: templates/wishlist-view-mobile.php:126
1533
  msgid "Added on:"
1534
  msgstr ""
1535
 
1536
- #: templates/wishlist-view-mobile.php:137
1537
  msgid "Price:"
1538
  msgstr ""
1539
 
1540
- #: templates/wishlist-view-mobile.php:164
1541
  msgid "Quantity:"
1542
  msgstr ""
1543
 
1544
- #: templates/wishlist-view-mobile.php:179
1545
  msgid "Stock:"
1546
  msgstr ""
1547
 
1548
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1549
  msgid "Out of stock"
1550
  msgstr ""
1551
 
1552
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1553
  msgid "In Stock"
1554
  msgstr "Em stock"
1555
 
1556
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1557
  msgid "Move"
1558
  msgstr ""
1559
 
1560
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1561
  msgid "Move to another list &rsaquo;"
1562
  msgstr ""
1563
 
1564
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1565
- #: templates/wishlist-view.php:287
1566
  msgid "Remove this product"
1567
  msgstr "Remover este produto"
1568
 
1569
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1570
  msgid "No products added to the wishlist"
1571
  msgstr ""
1572
 
1573
- #: templates/wishlist-view.php:78
1574
  msgid "Product name"
1575
  msgstr ""
1576
 
1577
- #: templates/wishlist-view.php:86
1578
  msgid "Unit price"
1579
  msgstr ""
1580
 
1581
- #: templates/wishlist-view.php:95
1582
  msgid "Quantity"
1583
  msgstr ""
1584
 
1585
- #: templates/wishlist-view.php:104
1586
  msgid "Stock status"
1587
  msgstr ""
1588
 
1589
- #: templates/wishlist-view.php:122
1590
  msgid "Arrange"
1591
  msgstr ""
1592
 
1593
  #. translators: date added label: 1 date added.
1594
- #: templates/wishlist-view.php:238
1595
  msgid "Added on: %s"
1596
  msgstr ""
1597
 
1598
- #: templates/wishlist-view.php:287
1599
  msgid "Remove"
1600
  msgstr ""
1601
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:06+0200\n"
9
  "Last-Translator: YIThemes <support@yithemes.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
1529
  msgid "Edit title"
1530
  msgstr "Titulo da lista de desejos"
1531
 
1532
+ #: templates/wishlist-view-mobile.php:136
1533
  msgid "Added on:"
1534
  msgstr ""
1535
 
1536
+ #: templates/wishlist-view-mobile.php:147
1537
  msgid "Price:"
1538
  msgstr ""
1539
 
1540
+ #: templates/wishlist-view-mobile.php:174
1541
  msgid "Quantity:"
1542
  msgstr ""
1543
 
1544
+ #: templates/wishlist-view-mobile.php:189
1545
  msgid "Stock:"
1546
  msgstr ""
1547
 
1548
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1549
  msgid "Out of stock"
1550
  msgstr ""
1551
 
1552
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1553
  msgid "In Stock"
1554
  msgstr "Em stock"
1555
 
1556
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1557
  msgid "Move"
1558
  msgstr ""
1559
 
1560
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1561
  msgid "Move to another list &rsaquo;"
1562
  msgstr ""
1563
 
1564
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1565
+ #: templates/wishlist-view.php:290
1566
  msgid "Remove this product"
1567
  msgstr "Remover este produto"
1568
 
1569
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1570
  msgid "No products added to the wishlist"
1571
  msgstr ""
1572
 
1573
+ #: templates/wishlist-view.php:79
1574
  msgid "Product name"
1575
  msgstr ""
1576
 
1577
+ #: templates/wishlist-view.php:87
1578
  msgid "Unit price"
1579
  msgstr ""
1580
 
1581
+ #: templates/wishlist-view.php:96
1582
  msgid "Quantity"
1583
  msgstr ""
1584
 
1585
+ #: templates/wishlist-view.php:105
1586
  msgid "Stock status"
1587
  msgstr ""
1588
 
1589
+ #: templates/wishlist-view.php:123
1590
  msgid "Arrange"
1591
  msgstr ""
1592
 
1593
  #. translators: date added label: 1 date added.
1594
+ #: templates/wishlist-view.php:241
1595
  msgid "Added on: %s"
1596
  msgstr ""
1597
 
1598
+ #: templates/wishlist-view.php:290
1599
  msgid "Remove"
1600
  msgstr ""
1601
 
languages/yith-woocommerce-wishlist-ru_RU.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-ru_RU.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WCWL\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:06+0200\n"
9
  "Last-Translator: Valentyn Zubenko <valentyn.zubenko@gmail.com>\n"
10
  "Language-Team: Your Inspiration Themes <support@yithemes.com>\n"
@@ -1525,73 +1525,73 @@ msgstr ""
1525
  msgid "Edit title"
1526
  msgstr ""
1527
 
1528
- #: templates/wishlist-view-mobile.php:126
1529
  msgid "Added on:"
1530
  msgstr ""
1531
 
1532
- #: templates/wishlist-view-mobile.php:137
1533
  msgid "Price:"
1534
  msgstr ""
1535
 
1536
- #: templates/wishlist-view-mobile.php:164
1537
  msgid "Quantity:"
1538
  msgstr ""
1539
 
1540
- #: templates/wishlist-view-mobile.php:179
1541
  msgid "Stock:"
1542
  msgstr ""
1543
 
1544
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1545
  msgid "Out of stock"
1546
  msgstr ""
1547
 
1548
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1549
  msgid "In Stock"
1550
  msgstr "в наличии"
1551
 
1552
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1553
  msgid "Move"
1554
  msgstr ""
1555
 
1556
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1557
  msgid "Move to another list &rsaquo;"
1558
  msgstr ""
1559
 
1560
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1561
- #: templates/wishlist-view.php:287
1562
  msgid "Remove this product"
1563
  msgstr ""
1564
 
1565
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1566
  msgid "No products added to the wishlist"
1567
  msgstr ""
1568
 
1569
- #: templates/wishlist-view.php:78
1570
  msgid "Product name"
1571
  msgstr ""
1572
 
1573
- #: templates/wishlist-view.php:86
1574
  msgid "Unit price"
1575
  msgstr ""
1576
 
1577
- #: templates/wishlist-view.php:95
1578
  msgid "Quantity"
1579
  msgstr ""
1580
 
1581
- #: templates/wishlist-view.php:104
1582
  msgid "Stock status"
1583
  msgstr ""
1584
 
1585
- #: templates/wishlist-view.php:122
1586
  msgid "Arrange"
1587
  msgstr ""
1588
 
1589
  #. translators: date added label: 1 date added.
1590
- #: templates/wishlist-view.php:238
1591
  msgid "Added on: %s"
1592
  msgstr ""
1593
 
1594
- #: templates/wishlist-view.php:287
1595
  msgid "Remove"
1596
  msgstr ""
1597
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WCWL\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:06+0200\n"
9
  "Last-Translator: Valentyn Zubenko <valentyn.zubenko@gmail.com>\n"
10
  "Language-Team: Your Inspiration Themes <support@yithemes.com>\n"
1525
  msgid "Edit title"
1526
  msgstr ""
1527
 
1528
+ #: templates/wishlist-view-mobile.php:136
1529
  msgid "Added on:"
1530
  msgstr ""
1531
 
1532
+ #: templates/wishlist-view-mobile.php:147
1533
  msgid "Price:"
1534
  msgstr ""
1535
 
1536
+ #: templates/wishlist-view-mobile.php:174
1537
  msgid "Quantity:"
1538
  msgstr ""
1539
 
1540
+ #: templates/wishlist-view-mobile.php:189
1541
  msgid "Stock:"
1542
  msgstr ""
1543
 
1544
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1545
  msgid "Out of stock"
1546
  msgstr ""
1547
 
1548
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1549
  msgid "In Stock"
1550
  msgstr "в наличии"
1551
 
1552
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1553
  msgid "Move"
1554
  msgstr ""
1555
 
1556
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1557
  msgid "Move to another list &rsaquo;"
1558
  msgstr ""
1559
 
1560
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1561
+ #: templates/wishlist-view.php:290
1562
  msgid "Remove this product"
1563
  msgstr ""
1564
 
1565
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1566
  msgid "No products added to the wishlist"
1567
  msgstr ""
1568
 
1569
+ #: templates/wishlist-view.php:79
1570
  msgid "Product name"
1571
  msgstr ""
1572
 
1573
+ #: templates/wishlist-view.php:87
1574
  msgid "Unit price"
1575
  msgstr ""
1576
 
1577
+ #: templates/wishlist-view.php:96
1578
  msgid "Quantity"
1579
  msgstr ""
1580
 
1581
+ #: templates/wishlist-view.php:105
1582
  msgid "Stock status"
1583
  msgstr ""
1584
 
1585
+ #: templates/wishlist-view.php:123
1586
  msgid "Arrange"
1587
  msgstr ""
1588
 
1589
  #. translators: date added label: 1 date added.
1590
+ #: templates/wishlist-view.php:241
1591
  msgid "Added on: %s"
1592
  msgstr ""
1593
 
1594
+ #: templates/wishlist-view.php:290
1595
  msgid "Remove"
1596
  msgstr ""
1597
 
languages/yith-woocommerce-wishlist-sv_SE.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-sv_SE.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WCWL\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:06+0200\n"
9
  "Last-Translator: Nicola Mustone <mail@nicolamustone.it>\n"
10
  "Language-Team: Your Inspiration Themes <support@yithemes.com>\n"
@@ -1529,73 +1529,73 @@ msgstr ""
1529
  msgid "Edit title"
1530
  msgstr "Ändra titel"
1531
 
1532
- #: templates/wishlist-view-mobile.php:126
1533
  msgid "Added on:"
1534
  msgstr ""
1535
 
1536
- #: templates/wishlist-view-mobile.php:137
1537
  msgid "Price:"
1538
  msgstr ""
1539
 
1540
- #: templates/wishlist-view-mobile.php:164
1541
  msgid "Quantity:"
1542
  msgstr ""
1543
 
1544
- #: templates/wishlist-view-mobile.php:179
1545
  msgid "Stock:"
1546
  msgstr ""
1547
 
1548
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1549
  msgid "Out of stock"
1550
  msgstr ""
1551
 
1552
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1553
  msgid "In Stock"
1554
  msgstr "Finns i lager"
1555
 
1556
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1557
  msgid "Move"
1558
  msgstr "Flytta"
1559
 
1560
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1561
  msgid "Move to another list &rsaquo;"
1562
  msgstr ""
1563
 
1564
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1565
- #: templates/wishlist-view.php:287
1566
  msgid "Remove this product"
1567
  msgstr "Ta bort denna produkt"
1568
 
1569
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1570
  msgid "No products added to the wishlist"
1571
  msgstr ""
1572
 
1573
- #: templates/wishlist-view.php:78
1574
  msgid "Product name"
1575
  msgstr ""
1576
 
1577
- #: templates/wishlist-view.php:86
1578
  msgid "Unit price"
1579
  msgstr ""
1580
 
1581
- #: templates/wishlist-view.php:95
1582
  msgid "Quantity"
1583
  msgstr ""
1584
 
1585
- #: templates/wishlist-view.php:104
1586
  msgid "Stock status"
1587
  msgstr ""
1588
 
1589
- #: templates/wishlist-view.php:122
1590
  msgid "Arrange"
1591
  msgstr ""
1592
 
1593
  #. translators: date added label: 1 date added.
1594
- #: templates/wishlist-view.php:238
1595
  msgid "Added on: %s"
1596
  msgstr ""
1597
 
1598
- #: templates/wishlist-view.php:287
1599
  msgid "Remove"
1600
  msgstr "Ta bort"
1601
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WCWL\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:06+0200\n"
9
  "Last-Translator: Nicola Mustone <mail@nicolamustone.it>\n"
10
  "Language-Team: Your Inspiration Themes <support@yithemes.com>\n"
1529
  msgid "Edit title"
1530
  msgstr "Ändra titel"
1531
 
1532
+ #: templates/wishlist-view-mobile.php:136
1533
  msgid "Added on:"
1534
  msgstr ""
1535
 
1536
+ #: templates/wishlist-view-mobile.php:147
1537
  msgid "Price:"
1538
  msgstr ""
1539
 
1540
+ #: templates/wishlist-view-mobile.php:174
1541
  msgid "Quantity:"
1542
  msgstr ""
1543
 
1544
+ #: templates/wishlist-view-mobile.php:189
1545
  msgid "Stock:"
1546
  msgstr ""
1547
 
1548
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1549
  msgid "Out of stock"
1550
  msgstr ""
1551
 
1552
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1553
  msgid "In Stock"
1554
  msgstr "Finns i lager"
1555
 
1556
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1557
  msgid "Move"
1558
  msgstr "Flytta"
1559
 
1560
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1561
  msgid "Move to another list &rsaquo;"
1562
  msgstr ""
1563
 
1564
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1565
+ #: templates/wishlist-view.php:290
1566
  msgid "Remove this product"
1567
  msgstr "Ta bort denna produkt"
1568
 
1569
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1570
  msgid "No products added to the wishlist"
1571
  msgstr ""
1572
 
1573
+ #: templates/wishlist-view.php:79
1574
  msgid "Product name"
1575
  msgstr ""
1576
 
1577
+ #: templates/wishlist-view.php:87
1578
  msgid "Unit price"
1579
  msgstr ""
1580
 
1581
+ #: templates/wishlist-view.php:96
1582
  msgid "Quantity"
1583
  msgstr ""
1584
 
1585
+ #: templates/wishlist-view.php:105
1586
  msgid "Stock status"
1587
  msgstr ""
1588
 
1589
+ #: templates/wishlist-view.php:123
1590
  msgid "Arrange"
1591
  msgstr ""
1592
 
1593
  #. translators: date added label: 1 date added.
1594
+ #: templates/wishlist-view.php:241
1595
  msgid "Added on: %s"
1596
  msgstr ""
1597
 
1598
+ #: templates/wishlist-view.php:290
1599
  msgid "Remove"
1600
  msgstr "Ta bort"
1601
 
languages/yith-woocommerce-wishlist-tr_TR.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-tr_TR.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:06+0200\n"
9
  "Last-Translator: Caner Öncel <caneroncel@gmail.com>\n"
10
  "Language-Team: Caner Öncel (@egonomik) <caneroncel@gmail.com>\n"
@@ -1529,73 +1529,73 @@ msgstr ""
1529
  msgid "Edit title"
1530
  msgstr "İstek listesi başlığı"
1531
 
1532
- #: templates/wishlist-view-mobile.php:126
1533
  msgid "Added on:"
1534
  msgstr ""
1535
 
1536
- #: templates/wishlist-view-mobile.php:137
1537
  msgid "Price:"
1538
  msgstr ""
1539
 
1540
- #: templates/wishlist-view-mobile.php:164
1541
  msgid "Quantity:"
1542
  msgstr ""
1543
 
1544
- #: templates/wishlist-view-mobile.php:179
1545
  msgid "Stock:"
1546
  msgstr ""
1547
 
1548
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1549
  msgid "Out of stock"
1550
  msgstr ""
1551
 
1552
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1553
  msgid "In Stock"
1554
  msgstr "Stokta"
1555
 
1556
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1557
  msgid "Move"
1558
  msgstr ""
1559
 
1560
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1561
  msgid "Move to another list &rsaquo;"
1562
  msgstr ""
1563
 
1564
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1565
- #: templates/wishlist-view.php:287
1566
  msgid "Remove this product"
1567
  msgstr "Bu ürünü kaldır"
1568
 
1569
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1570
  msgid "No products added to the wishlist"
1571
  msgstr ""
1572
 
1573
- #: templates/wishlist-view.php:78
1574
  msgid "Product name"
1575
  msgstr ""
1576
 
1577
- #: templates/wishlist-view.php:86
1578
  msgid "Unit price"
1579
  msgstr ""
1580
 
1581
- #: templates/wishlist-view.php:95
1582
  msgid "Quantity"
1583
  msgstr ""
1584
 
1585
- #: templates/wishlist-view.php:104
1586
  msgid "Stock status"
1587
  msgstr ""
1588
 
1589
- #: templates/wishlist-view.php:122
1590
  msgid "Arrange"
1591
  msgstr ""
1592
 
1593
  #. translators: date added label: 1 date added.
1594
- #: templates/wishlist-view.php:238
1595
  msgid "Added on: %s"
1596
  msgstr ""
1597
 
1598
- #: templates/wishlist-view.php:287
1599
  msgid "Remove"
1600
  msgstr ""
1601
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:06+0200\n"
9
  "Last-Translator: Caner Öncel <caneroncel@gmail.com>\n"
10
  "Language-Team: Caner Öncel (@egonomik) <caneroncel@gmail.com>\n"
1529
  msgid "Edit title"
1530
  msgstr "İstek listesi başlığı"
1531
 
1532
+ #: templates/wishlist-view-mobile.php:136
1533
  msgid "Added on:"
1534
  msgstr ""
1535
 
1536
+ #: templates/wishlist-view-mobile.php:147
1537
  msgid "Price:"
1538
  msgstr ""
1539
 
1540
+ #: templates/wishlist-view-mobile.php:174
1541
  msgid "Quantity:"
1542
  msgstr ""
1543
 
1544
+ #: templates/wishlist-view-mobile.php:189
1545
  msgid "Stock:"
1546
  msgstr ""
1547
 
1548
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1549
  msgid "Out of stock"
1550
  msgstr ""
1551
 
1552
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1553
  msgid "In Stock"
1554
  msgstr "Stokta"
1555
 
1556
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1557
  msgid "Move"
1558
  msgstr ""
1559
 
1560
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1561
  msgid "Move to another list &rsaquo;"
1562
  msgstr ""
1563
 
1564
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1565
+ #: templates/wishlist-view.php:290
1566
  msgid "Remove this product"
1567
  msgstr "Bu ürünü kaldır"
1568
 
1569
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1570
  msgid "No products added to the wishlist"
1571
  msgstr ""
1572
 
1573
+ #: templates/wishlist-view.php:79
1574
  msgid "Product name"
1575
  msgstr ""
1576
 
1577
+ #: templates/wishlist-view.php:87
1578
  msgid "Unit price"
1579
  msgstr ""
1580
 
1581
+ #: templates/wishlist-view.php:96
1582
  msgid "Quantity"
1583
  msgstr ""
1584
 
1585
+ #: templates/wishlist-view.php:105
1586
  msgid "Stock status"
1587
  msgstr ""
1588
 
1589
+ #: templates/wishlist-view.php:123
1590
  msgid "Arrange"
1591
  msgstr ""
1592
 
1593
  #. translators: date added label: 1 date added.
1594
+ #: templates/wishlist-view.php:241
1595
  msgid "Added on: %s"
1596
  msgstr ""
1597
 
1598
+ #: templates/wishlist-view.php:290
1599
  msgid "Remove"
1600
  msgstr ""
1601
 
languages/yith-woocommerce-wishlist-uk_UA.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-uk_UA.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:07+0200\n"
9
  "Last-Translator: Valentyn Zubenko <valentyn.zubenko@gmail.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -1524,73 +1524,73 @@ msgstr ""
1524
  msgid "Edit title"
1525
  msgstr ""
1526
 
1527
- #: templates/wishlist-view-mobile.php:126
1528
  msgid "Added on:"
1529
  msgstr ""
1530
 
1531
- #: templates/wishlist-view-mobile.php:137
1532
  msgid "Price:"
1533
  msgstr ""
1534
 
1535
- #: templates/wishlist-view-mobile.php:164
1536
  msgid "Quantity:"
1537
  msgstr ""
1538
 
1539
- #: templates/wishlist-view-mobile.php:179
1540
  msgid "Stock:"
1541
  msgstr ""
1542
 
1543
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1544
  msgid "Out of stock"
1545
  msgstr ""
1546
 
1547
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1548
  msgid "In Stock"
1549
  msgstr "в наявності"
1550
 
1551
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1552
  msgid "Move"
1553
  msgstr ""
1554
 
1555
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1556
  msgid "Move to another list &rsaquo;"
1557
  msgstr ""
1558
 
1559
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1560
- #: templates/wishlist-view.php:287
1561
  msgid "Remove this product"
1562
  msgstr ""
1563
 
1564
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1565
  msgid "No products added to the wishlist"
1566
  msgstr ""
1567
 
1568
- #: templates/wishlist-view.php:78
1569
  msgid "Product name"
1570
  msgstr ""
1571
 
1572
- #: templates/wishlist-view.php:86
1573
  msgid "Unit price"
1574
  msgstr ""
1575
 
1576
- #: templates/wishlist-view.php:95
1577
  msgid "Quantity"
1578
  msgstr ""
1579
 
1580
- #: templates/wishlist-view.php:104
1581
  msgid "Stock status"
1582
  msgstr ""
1583
 
1584
- #: templates/wishlist-view.php:122
1585
  msgid "Arrange"
1586
  msgstr ""
1587
 
1588
  #. translators: date added label: 1 date added.
1589
- #: templates/wishlist-view.php:238
1590
  msgid "Added on: %s"
1591
  msgstr ""
1592
 
1593
- #: templates/wishlist-view.php:287
1594
  msgid "Remove"
1595
  msgstr ""
1596
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:07+0200\n"
9
  "Last-Translator: Valentyn Zubenko <valentyn.zubenko@gmail.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
1524
  msgid "Edit title"
1525
  msgstr ""
1526
 
1527
+ #: templates/wishlist-view-mobile.php:136
1528
  msgid "Added on:"
1529
  msgstr ""
1530
 
1531
+ #: templates/wishlist-view-mobile.php:147
1532
  msgid "Price:"
1533
  msgstr ""
1534
 
1535
+ #: templates/wishlist-view-mobile.php:174
1536
  msgid "Quantity:"
1537
  msgstr ""
1538
 
1539
+ #: templates/wishlist-view-mobile.php:189
1540
  msgid "Stock:"
1541
  msgstr ""
1542
 
1543
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1544
  msgid "Out of stock"
1545
  msgstr ""
1546
 
1547
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1548
  msgid "In Stock"
1549
  msgstr "в наявності"
1550
 
1551
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1552
  msgid "Move"
1553
  msgstr ""
1554
 
1555
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1556
  msgid "Move to another list &rsaquo;"
1557
  msgstr ""
1558
 
1559
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1560
+ #: templates/wishlist-view.php:290
1561
  msgid "Remove this product"
1562
  msgstr ""
1563
 
1564
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1565
  msgid "No products added to the wishlist"
1566
  msgstr ""
1567
 
1568
+ #: templates/wishlist-view.php:79
1569
  msgid "Product name"
1570
  msgstr ""
1571
 
1572
+ #: templates/wishlist-view.php:87
1573
  msgid "Unit price"
1574
  msgstr ""
1575
 
1576
+ #: templates/wishlist-view.php:96
1577
  msgid "Quantity"
1578
  msgstr ""
1579
 
1580
+ #: templates/wishlist-view.php:105
1581
  msgid "Stock status"
1582
  msgstr ""
1583
 
1584
+ #: templates/wishlist-view.php:123
1585
  msgid "Arrange"
1586
  msgstr ""
1587
 
1588
  #. translators: date added label: 1 date added.
1589
+ #: templates/wishlist-view.php:241
1590
  msgid "Added on: %s"
1591
  msgstr ""
1592
 
1593
+ #: templates/wishlist-view.php:290
1594
  msgid "Remove"
1595
  msgstr ""
1596
 
languages/yith-woocommerce-wishlist-zh_CN.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-zh_CN.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:07+0200\n"
9
  "Last-Translator: 李明軒 <eggeggxuan@gmail.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -1528,73 +1528,73 @@ msgstr ""
1528
  msgid "Edit title"
1529
  msgstr ""
1530
 
1531
- #: templates/wishlist-view-mobile.php:126
1532
  msgid "Added on:"
1533
  msgstr ""
1534
 
1535
- #: templates/wishlist-view-mobile.php:137
1536
  msgid "Price:"
1537
  msgstr ""
1538
 
1539
- #: templates/wishlist-view-mobile.php:164
1540
  msgid "Quantity:"
1541
  msgstr ""
1542
 
1543
- #: templates/wishlist-view-mobile.php:179
1544
  msgid "Stock:"
1545
  msgstr ""
1546
 
1547
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1548
  msgid "Out of stock"
1549
  msgstr ""
1550
 
1551
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1552
  msgid "In Stock"
1553
  msgstr "有货"
1554
 
1555
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1556
  msgid "Move"
1557
  msgstr ""
1558
 
1559
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1560
  msgid "Move to another list &rsaquo;"
1561
  msgstr ""
1562
 
1563
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1564
- #: templates/wishlist-view.php:287
1565
  msgid "Remove this product"
1566
  msgstr "移除这个商品"
1567
 
1568
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1569
  msgid "No products added to the wishlist"
1570
  msgstr ""
1571
 
1572
- #: templates/wishlist-view.php:78
1573
  msgid "Product name"
1574
  msgstr ""
1575
 
1576
- #: templates/wishlist-view.php:86
1577
  msgid "Unit price"
1578
  msgstr ""
1579
 
1580
- #: templates/wishlist-view.php:95
1581
  msgid "Quantity"
1582
  msgstr ""
1583
 
1584
- #: templates/wishlist-view.php:104
1585
  msgid "Stock status"
1586
  msgstr ""
1587
 
1588
- #: templates/wishlist-view.php:122
1589
  msgid "Arrange"
1590
  msgstr ""
1591
 
1592
  #. translators: date added label: 1 date added.
1593
- #: templates/wishlist-view.php:238
1594
  msgid "Added on: %s"
1595
  msgstr ""
1596
 
1597
- #: templates/wishlist-view.php:287
1598
  msgid "Remove"
1599
  msgstr ""
1600
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:07+0200\n"
9
  "Last-Translator: 李明軒 <eggeggxuan@gmail.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
1528
  msgid "Edit title"
1529
  msgstr ""
1530
 
1531
+ #: templates/wishlist-view-mobile.php:136
1532
  msgid "Added on:"
1533
  msgstr ""
1534
 
1535
+ #: templates/wishlist-view-mobile.php:147
1536
  msgid "Price:"
1537
  msgstr ""
1538
 
1539
+ #: templates/wishlist-view-mobile.php:174
1540
  msgid "Quantity:"
1541
  msgstr ""
1542
 
1543
+ #: templates/wishlist-view-mobile.php:189
1544
  msgid "Stock:"
1545
  msgstr ""
1546
 
1547
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1548
  msgid "Out of stock"
1549
  msgstr ""
1550
 
1551
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1552
  msgid "In Stock"
1553
  msgstr "有货"
1554
 
1555
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1556
  msgid "Move"
1557
  msgstr ""
1558
 
1559
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1560
  msgid "Move to another list &rsaquo;"
1561
  msgstr ""
1562
 
1563
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1564
+ #: templates/wishlist-view.php:290
1565
  msgid "Remove this product"
1566
  msgstr "移除这个商品"
1567
 
1568
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1569
  msgid "No products added to the wishlist"
1570
  msgstr ""
1571
 
1572
+ #: templates/wishlist-view.php:79
1573
  msgid "Product name"
1574
  msgstr ""
1575
 
1576
+ #: templates/wishlist-view.php:87
1577
  msgid "Unit price"
1578
  msgstr ""
1579
 
1580
+ #: templates/wishlist-view.php:96
1581
  msgid "Quantity"
1582
  msgstr ""
1583
 
1584
+ #: templates/wishlist-view.php:105
1585
  msgid "Stock status"
1586
  msgstr ""
1587
 
1588
+ #: templates/wishlist-view.php:123
1589
  msgid "Arrange"
1590
  msgstr ""
1591
 
1592
  #. translators: date added label: 1 date added.
1593
+ #: templates/wishlist-view.php:241
1594
  msgid "Added on: %s"
1595
  msgstr ""
1596
 
1597
+ #: templates/wishlist-view.php:290
1598
  msgid "Remove"
1599
  msgstr ""
1600
 
languages/yith-woocommerce-wishlist-zh_TW.mo CHANGED
Binary file
languages/yith-woocommerce-wishlist-zh_TW.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:07+0200\n"
9
  "Last-Translator: 李明軒 <eggeggxuan@gmail.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -1528,73 +1528,73 @@ msgstr ""
1528
  msgid "Edit title"
1529
  msgstr ""
1530
 
1531
- #: templates/wishlist-view-mobile.php:126
1532
  msgid "Added on:"
1533
  msgstr ""
1534
 
1535
- #: templates/wishlist-view-mobile.php:137
1536
  msgid "Price:"
1537
  msgstr ""
1538
 
1539
- #: templates/wishlist-view-mobile.php:164
1540
  msgid "Quantity:"
1541
  msgstr ""
1542
 
1543
- #: templates/wishlist-view-mobile.php:179
1544
  msgid "Stock:"
1545
  msgstr ""
1546
 
1547
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1548
  msgid "Out of stock"
1549
  msgstr ""
1550
 
1551
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1552
  msgid "In Stock"
1553
  msgstr "有貨"
1554
 
1555
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1556
  msgid "Move"
1557
  msgstr ""
1558
 
1559
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1560
  msgid "Move to another list &rsaquo;"
1561
  msgstr ""
1562
 
1563
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1564
- #: templates/wishlist-view.php:287
1565
  msgid "Remove this product"
1566
  msgstr "移除這個商品"
1567
 
1568
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1569
  msgid "No products added to the wishlist"
1570
  msgstr ""
1571
 
1572
- #: templates/wishlist-view.php:78
1573
  msgid "Product name"
1574
  msgstr ""
1575
 
1576
- #: templates/wishlist-view.php:86
1577
  msgid "Unit price"
1578
  msgstr ""
1579
 
1580
- #: templates/wishlist-view.php:95
1581
  msgid "Quantity"
1582
  msgstr ""
1583
 
1584
- #: templates/wishlist-view.php:104
1585
  msgid "Stock status"
1586
  msgstr ""
1587
 
1588
- #: templates/wishlist-view.php:122
1589
  msgid "Arrange"
1590
  msgstr ""
1591
 
1592
  #. translators: date added label: 1 date added.
1593
- #: templates/wishlist-view.php:238
1594
  msgid "Added on: %s"
1595
  msgstr ""
1596
 
1597
- #: templates/wishlist-view.php:287
1598
  msgid "Remove"
1599
  msgstr ""
1600
 
4
  msgstr ""
5
  "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
+ "POT-Creation-Date: 2021-01-13 16:23:11+00:00\n"
8
  "PO-Revision-Date: 2020-10-16 14:07+0200\n"
9
  "Last-Translator: 李明軒 <eggeggxuan@gmail.com>\n"
10
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
1528
  msgid "Edit title"
1529
  msgstr ""
1530
 
1531
+ #: templates/wishlist-view-mobile.php:136
1532
  msgid "Added on:"
1533
  msgstr ""
1534
 
1535
+ #: templates/wishlist-view-mobile.php:147
1536
  msgid "Price:"
1537
  msgstr ""
1538
 
1539
+ #: templates/wishlist-view-mobile.php:174
1540
  msgid "Quantity:"
1541
  msgstr ""
1542
 
1543
+ #: templates/wishlist-view-mobile.php:189
1544
  msgid "Stock:"
1545
  msgstr ""
1546
 
1547
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1548
  msgid "Out of stock"
1549
  msgstr ""
1550
 
1551
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1552
  msgid "In Stock"
1553
  msgstr "有貨"
1554
 
1555
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1556
  msgid "Move"
1557
  msgstr ""
1558
 
1559
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1560
  msgid "Move to another list &rsaquo;"
1561
  msgstr ""
1562
 
1563
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1564
+ #: templates/wishlist-view.php:290
1565
  msgid "Remove this product"
1566
  msgstr "移除這個商品"
1567
 
1568
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1569
  msgid "No products added to the wishlist"
1570
  msgstr ""
1571
 
1572
+ #: templates/wishlist-view.php:79
1573
  msgid "Product name"
1574
  msgstr ""
1575
 
1576
+ #: templates/wishlist-view.php:87
1577
  msgid "Unit price"
1578
  msgstr ""
1579
 
1580
+ #: templates/wishlist-view.php:96
1581
  msgid "Quantity"
1582
  msgstr ""
1583
 
1584
+ #: templates/wishlist-view.php:105
1585
  msgid "Stock status"
1586
  msgstr ""
1587
 
1588
+ #: templates/wishlist-view.php:123
1589
  msgid "Arrange"
1590
  msgstr ""
1591
 
1592
  #. translators: date added label: 1 date added.
1593
+ #: templates/wishlist-view.php:241
1594
  msgid "Added on: %s"
1595
  msgstr ""
1596
 
1597
+ #: templates/wishlist-view.php:290
1598
  msgid "Remove"
1599
  msgstr ""
1600
 
languages/yith-woocommerce-wishlist.pot CHANGED
@@ -1,55 +1,60 @@
1
- # Copyright (C) 2020 YITH WooCommerce Wishlist
2
  # This file is distributed under the same license as the YITH WooCommerce Wishlist package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: YITH WooCommerce Wishlist\n"
6
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/init\n"
7
- "POT-Creation-Date: 2020-12-11 14:39:59+00:00\n"
 
8
  "MIME-Version: 1.0\n"
9
- "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2020-MO-DA HO:MI+ZONE\n"
 
12
  "Language-Team: YITH <plugins@yithemes.com>\n"
13
- "X-Poedit-KeywordsList: __;_e;_n:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
14
- "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;"
15
- "esc_html__;esc_html_e;esc_attr__;esc_attr_e\n"
 
 
 
 
 
16
  "X-Poedit-Basepath: ..\n"
17
  "X-Poedit-SearchPath-0: .\n"
 
 
18
  "X-Poedit-SearchPathExcluded-0: plugin-fw\n"
19
  "X-Poedit-SearchPathExcluded-1: plugin-upgrade\n"
 
 
20
 
21
  #: includes/class.yith-wcwl-admin.php:126
22
  msgid "Wishlist Page"
23
  msgstr ""
24
 
25
- #: includes/class.yith-wcwl-admin.php:146
26
  msgid "General settings"
27
  msgstr ""
28
 
29
- #: includes/class.yith-wcwl-admin.php:147
30
  msgid "Add to wishlist options"
31
  msgstr ""
32
 
33
- #: includes/class.yith-wcwl-admin.php:148
34
  msgid "Wishlist page options"
35
  msgstr ""
36
 
37
- #: includes/class.yith-wcwl-admin.php:149
38
  msgid "Premium Version"
39
  msgstr ""
40
 
41
- #. #-#-#-#-# yith-woocommerce-wishlist.pot (YITH WooCommerce Wishlist) #-#-#-#-#
42
- #. Plugin Name of the plugin/theme
43
- #: includes/class.yith-wcwl-admin.php:235
44
- msgid "YITH WooCommerce Wishlist"
45
- msgstr ""
46
-
47
- #: includes/class.yith-wcwl-admin.php:236
48
  #: includes/class.yith-wcwl-install.php:348
49
  msgid "Wishlist"
50
  msgstr ""
51
 
52
- #: includes/class.yith-wcwl-admin.php:238
53
  msgid ""
54
  "Allows your customers to create and share lists of products that they want "
55
  "to purchase on your e-commerce."
@@ -78,17 +83,17 @@ msgstr ""
78
  msgid "Please, make sure to enter a valid title"
79
  msgstr ""
80
 
81
- #: includes/class.yith-wcwl-frontend.php:403
82
  msgid ""
83
  "We are sorry, but this feature is available only if cookies on your browser "
84
  "are enabled."
85
  msgstr ""
86
 
87
- #: includes/class.yith-wcwl-frontend.php:404
88
  msgid "Product added to cart successfully"
89
  msgstr ""
90
 
91
- #: includes/class.yith-wcwl-frontend.php:653
92
  #: includes/class.yith-wcwl-shortcode.php:237
93
  #: plugin-options/wishlist_page-options.php:237
94
  #: templates/wishlist-view-footer-mobile.php:44
@@ -96,11 +101,6 @@ msgstr ""
96
  msgid "Add to cart"
97
  msgstr ""
98
 
99
- #: includes/class.yith-wcwl-install.php:346
100
- msgctxt "page_slug"
101
- msgid "wishlist"
102
- msgstr ""
103
-
104
  #: includes/class.yith-wcwl-privacy.php:50
105
  msgid "While you visit our site, we’ll track:"
106
  msgstr ""
@@ -131,8 +131,8 @@ msgstr ""
131
 
132
  #: includes/class.yith-wcwl-privacy.php:60
133
  msgid ""
134
- "Wishlist details, such as products added, date of addition, name and privacy "
135
- "settings of your wishlists"
136
  msgstr ""
137
 
138
  #: includes/class.yith-wcwl-privacy.php:62
@@ -151,13 +151,13 @@ msgstr ""
151
  msgid "Wishlists"
152
  msgstr ""
153
 
154
- #. Translators: %s Order number.
155
  #: includes/class.yith-wcwl-privacy.php:193
 
156
  msgid "Removed wishlist %s."
157
  msgstr ""
158
 
159
- #. Translators: %s Order number.
160
  #: includes/class.yith-wcwl-privacy.php:197
 
161
  msgid "Wishlist %s has been retained."
162
  msgstr ""
163
 
@@ -173,11 +173,6 @@ msgstr ""
173
  msgid "Title"
174
  msgstr ""
175
 
176
- #: includes/class.yith-wcwl-privacy.php:222
177
- msgctxt "date when wishlist was created"
178
- msgid "Created on"
179
- msgstr ""
180
-
181
  #: includes/class.yith-wcwl-privacy.php:223
182
  msgid "Visibility"
183
  msgstr ""
@@ -186,16 +181,6 @@ msgstr ""
186
  msgid "Items added"
187
  msgstr ""
188
 
189
- #: includes/class.yith-wcwl-shortcode.php:52
190
- msgctxt "[gutenberg]: block name"
191
- msgid "YITH Add to wishlist"
192
- msgstr ""
193
-
194
- #: includes/class.yith-wcwl-shortcode.php:53
195
- msgctxt "[gutenberg]: block description"
196
- msgid "Shows Add to wishlist button"
197
- msgstr ""
198
-
199
  #: includes/class.yith-wcwl-shortcode.php:58
200
  msgid ""
201
  "ID of the product to add to the wishlist (leave empty to use the global "
@@ -222,7 +207,8 @@ msgstr ""
222
 
223
  #: includes/class.yith-wcwl-shortcode.php:83
224
  msgid ""
225
- "\"Product added to wishlist\" label (leave empty to use the default settings)"
 
226
  msgstr ""
227
 
228
  #: includes/class.yith-wcwl-shortcode.php:88
@@ -237,16 +223,6 @@ msgid ""
237
  "settings)"
238
  msgstr ""
239
 
240
- #: includes/class.yith-wcwl-shortcode.php:101
241
- msgctxt "[gutenberg]: block name"
242
- msgid "YITH Wishlist"
243
- msgstr ""
244
-
245
- #: includes/class.yith-wcwl-shortcode.php:102
246
- msgctxt "[gutenberg]: block description"
247
- msgid "Shows a list of products in wishlist"
248
- msgstr ""
249
-
250
  #: includes/class.yith-wcwl-shortcode.php:107
251
  msgid "Choose whether to paginate items in the wishlist or show them all"
252
  msgstr ""
@@ -310,20 +286,6 @@ msgstr ""
310
  msgid "Free!"
311
  msgstr ""
312
 
313
- #: includes/class.yith-wcwl-wishlist-item.php:415
314
- msgctxt ""
315
- "Part of the template that shows price variation since addition to list; "
316
- "placeholder will be replaced with a percentage"
317
- msgid "Price is %1$s%%"
318
- msgstr ""
319
-
320
- #: includes/class.yith-wcwl-wishlist-item.php:416
321
- msgctxt ""
322
- "Part of the template that shows price variation since addition to list; "
323
- "placeholder will be replaced with a price"
324
- msgid "(Was %2$s when added in list)"
325
- msgstr ""
326
-
327
  #: includes/class.yith-wcwl.php:164
328
  msgid "The item cannot be added to this wishlist"
329
  msgstr ""
@@ -345,8 +307,8 @@ msgstr ""
345
  msgid "Invalid wishlist item."
346
  msgstr ""
347
 
348
- #. translators: 1. Number of users.
349
  #: includes/functions.yith-wcwl.php:249
 
350
  msgid "%d user"
351
  msgid_plural "%d users"
352
  msgstr[0] ""
@@ -366,8 +328,8 @@ msgstr ""
366
  msgid "to add this item in wishlist"
367
  msgstr ""
368
 
369
- #. translators: 1. Count of users when many, or "another" when only one.
370
  #: includes/functions.yith-wcwl.php:257
 
371
  msgid "You and %s user"
372
  msgid_plural "You and %d users"
373
  msgstr[0] ""
@@ -381,146 +343,56 @@ msgstr ""
381
  msgid "have this item in wishlist"
382
  msgstr ""
383
 
384
- #: includes/functions.yith-wcwl.php:415
385
  msgid "None"
386
  msgstr ""
387
 
388
- #: includes/functions.yith-wcwl.php:416
389
  msgid "Custom"
390
  msgstr ""
391
 
392
- #: includes/functions.yith-wcwl.php:437
393
  msgid "Shared"
394
  msgstr ""
395
 
396
- #: includes/functions.yith-wcwl.php:441
397
  msgid "Only people with a link to this list can see it"
398
  msgstr ""
399
 
400
- #: includes/functions.yith-wcwl.php:447
401
  msgid "Private"
402
  msgstr ""
403
 
404
- #: includes/functions.yith-wcwl.php:451
405
  msgid "Only you can see this list"
406
  msgstr ""
407
 
408
- #: includes/functions.yith-wcwl.php:457
409
  msgid "Public"
410
  msgstr ""
411
 
412
- #: includes/functions.yith-wcwl.php:461
413
  msgid "Anyone can search for and see this list"
414
  msgstr ""
415
 
416
- #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:40
417
- msgctxt "Elementor widget name"
418
- msgid "YITH Wishlist Add button"
419
- msgstr ""
420
-
421
- #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:83
422
- msgctxt "Elementor section title"
423
- msgid "Product"
424
- msgstr ""
425
-
426
- #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:91
427
- msgctxt "Elementor control label"
428
- msgid "Product ID"
429
- msgstr ""
430
-
431
- #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:103
432
- msgctxt "Elementor section title"
433
- msgid "Labels"
434
- msgstr ""
435
-
436
- #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:111
437
- msgctxt "Elementor control label"
438
- msgid "Button label"
439
- msgstr ""
440
-
441
  #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:114
442
  #: plugin-options/add_to_wishlist-options.php:125
443
  msgid "Add to wishlist"
444
  msgstr ""
445
 
446
- #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:121
447
- msgctxt "Elementor control label"
448
- msgid "\"Browse wishlist\" label"
449
- msgstr ""
450
-
451
  #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:124
452
  #: plugin-options/add_to_wishlist-options.php:141
453
  msgid "Browse wishlist"
454
  msgstr ""
455
 
456
- #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:131
457
- msgctxt "Elementor control label"
458
- msgid "\"Product already in wishlist\" label"
459
- msgstr ""
460
-
461
  #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:134
462
  msgid "Product already in wishlist"
463
  msgstr ""
464
 
465
- #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:141
466
- msgctxt "Elementor control label"
467
- msgid "\"Product added to wishlist\" label"
468
- msgstr ""
469
-
470
  #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:144
471
  msgid "Product added to wishlist"
472
  msgstr ""
473
 
474
- #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:153
475
- msgctxt "Elementor section title"
476
- msgid "Advanced"
477
- msgstr ""
478
-
479
- #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:161
480
- msgctxt "Elementor control label"
481
- msgid "URL of the wishlist page"
482
- msgstr ""
483
-
484
- #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:171
485
- msgctxt "Elementor control label"
486
- msgid "Icon for the button"
487
- msgstr ""
488
-
489
- #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:181
490
- msgctxt "Elementor control label"
491
- msgid "Additional CSS classes for the button"
492
- msgstr ""
493
-
494
- #: includes/widgets/elementor/class.yith-wcwl-elementor-wishlist.php:40
495
- msgctxt "Elementor widget name"
496
- msgid "YITH Wishlist"
497
- msgstr ""
498
-
499
- #: includes/widgets/elementor/class.yith-wcwl-elementor-wishlist.php:82
500
- msgctxt "Elementor section title"
501
- msgid "Wishlist"
502
- msgstr ""
503
-
504
- #: includes/widgets/elementor/class.yith-wcwl-elementor-wishlist.php:90
505
- msgctxt "Elementor control label"
506
- msgid "Wishlist ID"
507
- msgstr ""
508
-
509
- #: includes/widgets/elementor/class.yith-wcwl-elementor-wishlist.php:102
510
- msgctxt "Elementor section title"
511
- msgid "Pagination"
512
- msgstr ""
513
-
514
- #: includes/widgets/elementor/class.yith-wcwl-elementor-wishlist.php:110
515
- msgctxt "Elementor control label"
516
- msgid "Paginate items"
517
- msgstr ""
518
-
519
- #: includes/widgets/elementor/class.yith-wcwl-elementor-wishlist.php:123
520
- msgctxt "yith-woocommerce-wishlist"
521
- msgid "Items per page"
522
- msgstr ""
523
-
524
  #: init.php:160
525
  msgid "is enabled but not effective. It requires WooCommerce to work."
526
  msgstr ""
@@ -567,8 +439,8 @@ msgstr ""
567
  #: plugin-options/add_to_wishlist-options.php:48
568
  msgid ""
569
  "Loop options will be visible on Shop page, category pages, product "
570
- "shortcodes, products sliders, and all the other places where the WooCommerce "
571
- "products' loop is used"
572
  msgstr ""
573
 
574
  #: plugin-options/add_to_wishlist-options.php:53
@@ -586,9 +458,9 @@ msgstr ""
586
  #: plugin-options/add_to_wishlist-options.php:63
587
  msgid ""
588
  "Choose where to show \"Add to wishlist\" button or link in WooCommerce "
589
- "products' loop. <span class=\"addon\">Copy this shortcode <span class=\"code"
590
- "\"><code>[yith_wcwl_add_to_wishlist]</code></span> and paste it where you "
591
- "want to show the \"Add to wishlist\" link or button</span>"
592
  msgstr ""
593
 
594
  #: plugin-options/add_to_wishlist-options.php:70
@@ -618,10 +490,10 @@ msgstr ""
618
 
619
  #: plugin-options/add_to_wishlist-options.php:95
620
  msgid ""
621
- "Choose where to show \"Add to wishlist\" button or link on the product page. "
622
- "<span class=\"addon\">Copy this shortcode <span class=\"code"
623
- "\"><code>[yith_wcwl_add_to_wishlist]</code></span> and paste it where you "
624
- "want to show the \"Add to wishlist\" link or button</span>"
625
  msgstr ""
626
 
627
  #: plugin-options/add_to_wishlist-options.php:102
@@ -694,8 +566,7 @@ msgid "Style of \"Add to wishlist\""
694
  msgstr ""
695
 
696
  #: plugin-options/add_to_wishlist-options.php:167
697
- msgid ""
698
- "Choose if you want to show a textual \"Add to wishlist\" link or a button"
699
  msgstr ""
700
 
701
  #: plugin-options/add_to_wishlist-options.php:170
@@ -834,8 +705,8 @@ msgstr ""
834
 
835
  #: plugin-options/settings-options.php:17
836
  msgid ""
837
- "If you want to take advantage of this feature, you could consider purchasing "
838
- "the %s."
839
  msgstr ""
840
 
841
  #: plugin-options/settings-options.php:30
@@ -876,9 +747,9 @@ msgstr ""
876
 
877
  #: plugin-options/wishlist_page-options.php:25
878
  msgid ""
879
- "Pick a page as the main Wishlist page; make sure you add the <span class="
880
- "\"code\"><code>[yith_wcwl_wishlist]</code></span> shortcode into the page "
881
- "content"
882
  msgstr ""
883
 
884
  #: plugin-options/wishlist_page-options.php:38
@@ -916,13 +787,11 @@ msgid "Add to cart option for each product"
916
  msgstr ""
917
 
918
  #: plugin-options/wishlist_page-options.php:91
919
- msgid ""
920
- "Icon to remove the product from the wishlist - to the left of the product"
921
  msgstr ""
922
 
923
  #: plugin-options/wishlist_page-options.php:100
924
- msgid ""
925
- "Button to remove the product from the wishlist - to the right of the product"
926
  msgstr ""
927
 
928
  #: plugin-options/wishlist_page-options.php:108
@@ -931,8 +800,8 @@ msgstr ""
931
 
932
  #: plugin-options/wishlist_page-options.php:109
933
  msgid ""
934
- "Redirect users to the cart page when they add a product to the cart from the "
935
- "wishlist page"
936
  msgstr ""
937
 
938
  #: plugin-options/wishlist_page-options.php:117
@@ -940,8 +809,7 @@ msgid "Remove if added to the cart"
940
  msgstr ""
941
 
942
  #: plugin-options/wishlist_page-options.php:118
943
- msgid ""
944
- "Remove the product from the wishlist after it has been added to the cart"
945
  msgstr ""
946
 
947
  #: plugin-options/wishlist_page-options.php:126
@@ -990,8 +858,8 @@ msgstr ""
990
 
991
  #: plugin-options/wishlist_page-options.php:198
992
  msgid ""
993
- "Type the message you want to publish when you share your wishlist on Twitter "
994
- "and Pinterest"
995
  msgstr ""
996
 
997
  #: plugin-options/wishlist_page-options.php:206
@@ -1084,9 +952,9 @@ msgstr ""
1084
  #: plugin-options/wishlist_page-options.php:381
1085
  msgid ""
1086
  "Choose colors for the primary button on hover state<br/><small>This style "
1087
- "will be applied to \"Edit title\" button on Wishlist view, \"Submit Changes"
1088
- "\" button on Manage view and \"Search wishlist\" button on Search view</"
1089
- "small>"
1090
  msgstr ""
1091
 
1092
  #: plugin-options/wishlist_page-options.php:406
@@ -1097,8 +965,8 @@ msgstr ""
1097
  #: plugin-options/wishlist_page-options.php:430
1098
  msgid ""
1099
  "Choose colors of the secondary button<br/><small>This style will be applied "
1100
- "to the buttons that allow showing and hiding the Edit title form on Wishlist "
1101
- "view and \"Create new Wishlist\" button on Manage view</small>"
1102
  msgstr ""
1103
 
1104
  #: plugin-options/wishlist_page-options.php:455
@@ -1107,7 +975,8 @@ msgstr ""
1107
 
1108
  #: plugin-options/wishlist_page-options.php:456
1109
  msgid ""
1110
- "Choose the colors for the wishlist table (when set to \"Traditional\" layout)"
 
1111
  msgstr ""
1112
 
1113
  #: plugin-options/wishlist_page-options.php:484
@@ -1116,9 +985,10 @@ msgstr ""
1116
 
1117
  #: plugin-options/wishlist_page-options.php:485
1118
  msgid ""
1119
- "Choose the color for all sections with background<br/><small>This color will "
1120
- "be used as background for the wishlist table heading and footer (when set to "
1121
- "\"Traditional\" layout), and for various form across wishlist views</small>"
 
1122
  msgstr ""
1123
 
1124
  #: plugin-options/wishlist_page-options.php:497
@@ -1147,8 +1017,8 @@ msgstr ""
1147
 
1148
  #: plugin-options/wishlist_page-options.php:534
1149
  msgid ""
1150
- "Upload an icon you'd like to use for Facebook share button (suggested 32px x "
1151
- "32px)"
1152
  msgstr ""
1153
 
1154
  #: plugin-options/wishlist_page-options.php:542
@@ -1259,8 +1129,8 @@ msgstr ""
1259
 
1260
  #: plugin-options/wishlist_page-options.php:694
1261
  msgid ""
1262
- "Upload an icon you'd like to use for WhatsApp share button (suggested 32px x "
1263
- "32px)"
1264
  msgstr ""
1265
 
1266
  #: plugin-options/wishlist_page-options.php:702
@@ -1274,8 +1144,8 @@ msgstr ""
1274
  #: templates/admin/wishlist-panel-premium.php:168
1275
  #: templates/admin/wishlist-panel-premium.php:309
1276
  msgid ""
1277
- "Upgrade to the %1$spremium version%2$s%3$sof %1$sYITH WooCommerce Wishlist"
1278
- "%2$s to benefit from all features!"
1279
  msgstr ""
1280
 
1281
  #: templates/admin/wishlist-panel-premium.php:170
@@ -1312,8 +1182,8 @@ msgstr ""
1312
 
1313
  #: templates/admin/wishlist-panel-premium.php:198
1314
  msgid ""
1315
- "Your customers can set a privacy option for each wishlist and choose whether "
1316
- "sharing the wishlist or making it private."
1317
  msgstr ""
1318
 
1319
  #: templates/admin/wishlist-panel-premium.php:206
@@ -1342,10 +1212,10 @@ msgstr ""
1342
 
1343
  #: templates/admin/wishlist-panel-premium.php:224
1344
  msgid ""
1345
- "Your customers can sort the products in the wishlist thanks to the drag&drop "
1346
- "option, move products from one wishlist to another, manage product quantity, "
1347
- "download the wishlist content to a .pdf file, share the wishlist on their "
1348
- "social networks, and much more!"
1349
  msgstr ""
1350
 
1351
  #: templates/admin/wishlist-panel-premium.php:232
@@ -1367,8 +1237,7 @@ msgid "'ADD TO CART'"
1367
  msgstr ""
1368
 
1369
  #: templates/admin/wishlist-panel-premium.php:248
1370
- msgid ""
1371
- "Send promotional emails for products in wishlists to push customers to buy"
1372
  msgstr ""
1373
 
1374
  #: templates/admin/wishlist-panel-premium.php:250
@@ -1401,9 +1270,9 @@ msgstr ""
1401
  msgid ""
1402
  "The wishlist is one of the most used functionalities in an ecommerce store "
1403
  "but often the page layout is not enhanced enough and looks unattractive to "
1404
- "the user. With our plugin, you can choose among some alternative layouts and "
1405
- "offer an even more interesting experience to users who creates a wishlist on "
1406
- "your website."
1407
  msgstr ""
1408
 
1409
  #: templates/admin/wishlist-panel-premium.php:276
@@ -1416,8 +1285,8 @@ msgstr ""
1416
 
1417
  #: templates/admin/wishlist-panel-premium.php:286
1418
  msgid ""
1419
- "Increase the wishlist visibility through our modern widgets that you can use "
1420
- "in the header, in the sidebars, wherever you want."
1421
  msgstr ""
1422
 
1423
  #: templates/admin/wishlist-panel-premium.php:289
@@ -1486,9 +1355,9 @@ msgstr ""
1486
  msgid "Remove from wishlist"
1487
  msgstr ""
1488
 
1489
- #. translators: 1. Wishlist formatted name.
1490
  #: templates/wishlist-view-footer-mobile.php:60
1491
  #: templates/wishlist-view-footer.php:63
 
1492
  msgid "Move to %s"
1493
  msgstr ""
1494
 
@@ -1511,93 +1380,215 @@ msgstr ""
1511
  msgid "Edit title"
1512
  msgstr ""
1513
 
1514
- #: templates/wishlist-view-mobile.php:126
1515
  msgid "Added on:"
1516
  msgstr ""
1517
 
1518
- #: templates/wishlist-view-mobile.php:137
1519
  msgid "Price:"
1520
  msgstr ""
1521
 
1522
- #: templates/wishlist-view-mobile.php:164
1523
  msgid "Quantity:"
1524
  msgstr ""
1525
 
1526
- #: templates/wishlist-view-mobile.php:179
1527
  msgid "Stock:"
1528
  msgstr ""
1529
 
1530
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1531
  msgid "Out of stock"
1532
  msgstr ""
1533
 
1534
- #: templates/wishlist-view-mobile.php:182 templates/wishlist-view.php:224
1535
  msgid "In Stock"
1536
  msgstr ""
1537
 
1538
- #: templates/wishlist-view-mobile.php:201 templates/wishlist-view.php:257
1539
  msgid "Move"
1540
  msgstr ""
1541
 
1542
- #: templates/wishlist-view-mobile.php:220 templates/wishlist-view.php:277
1543
  msgid "Move to another list &rsaquo;"
1544
  msgstr ""
1545
 
1546
- #: templates/wishlist-view-mobile.php:228 templates/wishlist-view.php:155
1547
- #: templates/wishlist-view.php:287
1548
  msgid "Remove this product"
1549
  msgstr ""
1550
 
1551
- #: templates/wishlist-view-mobile.php:238 templates/wishlist-view.php:307
1552
  msgid "No products added to the wishlist"
1553
  msgstr ""
1554
 
1555
- #: templates/wishlist-view.php:78
1556
  msgid "Product name"
1557
  msgstr ""
1558
 
1559
- #: templates/wishlist-view.php:86
1560
  msgid "Unit price"
1561
  msgstr ""
1562
 
1563
- #: templates/wishlist-view.php:95
1564
  msgid "Quantity"
1565
  msgstr ""
1566
 
1567
- #: templates/wishlist-view.php:104
1568
  msgid "Stock status"
1569
  msgstr ""
1570
 
1571
- #: templates/wishlist-view.php:122
1572
  msgid "Arrange"
1573
  msgstr ""
1574
 
 
1575
  #. translators: date added label: 1 date added.
1576
- #: templates/wishlist-view.php:238
1577
  msgid "Added on: %s"
1578
  msgstr ""
1579
 
1580
- #: templates/wishlist-view.php:287
1581
  msgid "Remove"
1582
  msgstr ""
1583
 
1584
- #. Plugin URI of the plugin/theme
1585
- msgid "https://yithemes.com/themes/plugins/yith-woocommerce-wishlist/"
1586
- msgstr ""
1587
-
1588
  #. Description of the plugin/theme
1589
  msgid ""
1590
- "<code><strong>YITH WooCommerce Wishlist</strong></code> gives your users the "
1591
- "possibility to create, fill, manage and share their wishlists allowing you "
1592
- "to analyze their interests and needs to improve your marketing strategies. "
1593
- "<a href=\"https://yithemes.com/\" target=\"_blank\">Get more plugins for "
1594
- "your e-commerce on <strong>YITH</strong></a>"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1595
  msgstr ""
1596
 
1597
- #. Author of the plugin/theme
1598
- msgid "YITH"
 
1599
  msgstr ""
1600
 
1601
- #. Author URI of the plugin/theme
1602
- msgid "https://yithemes.com/"
 
1603
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2021 YITH
2
  # This file is distributed under the same license as the YITH WooCommerce Wishlist package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: YITH WooCommerce Wishlist Premium\n"
6
+ "Report-Msgid-Bugs-To: "
7
+ "https://wordpress.org/support/plugin/yith-woocommerce-wishlist\n"
8
+ "POT-Creation-Date: 2021-02-18 10:38:31+00:00\n"
9
  "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "PO-Revision-Date: 2021-MO-DA HO:MI+ZONE\n"
13
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
  "Language-Team: YITH <plugins@yithemes.com>\n"
15
+ "Language: en\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "X-Poedit-Country: United States\n"
18
+ "X-Poedit-SourceCharset: UTF-8\n"
19
+ "X-Poedit-KeywordsList: "
20
+ "__;_e;_n:1,2;__ngettext:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_"
21
+ "x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;esc_attr__;esc_attr_e;esc_html__"
22
+ ";esc_html_e\n"
23
  "X-Poedit-Basepath: ..\n"
24
  "X-Poedit-SearchPath-0: .\n"
25
+ "X-Poedit-Bookmarks: \n"
26
+ "X-Textdomain-Support: yes\n"
27
  "X-Poedit-SearchPathExcluded-0: plugin-fw\n"
28
  "X-Poedit-SearchPathExcluded-1: plugin-upgrade\n"
29
+ "X-Poedit-SearchPathExcluded-2: node_modules\n"
30
+ "X-Generator: grunt-wp-i18n 1.0.3\n"
31
 
32
  #: includes/class.yith-wcwl-admin.php:126
33
  msgid "Wishlist Page"
34
  msgstr ""
35
 
36
+ #: includes/class.yith-wcwl-admin.php:148
37
  msgid "General settings"
38
  msgstr ""
39
 
40
+ #: includes/class.yith-wcwl-admin.php:149
41
  msgid "Add to wishlist options"
42
  msgstr ""
43
 
44
+ #: includes/class.yith-wcwl-admin.php:150
45
  msgid "Wishlist page options"
46
  msgstr ""
47
 
48
+ #: includes/class.yith-wcwl-admin.php:151
49
  msgid "Premium Version"
50
  msgstr ""
51
 
52
+ #: includes/class.yith-wcwl-admin.php:238
 
 
 
 
 
 
53
  #: includes/class.yith-wcwl-install.php:348
54
  msgid "Wishlist"
55
  msgstr ""
56
 
57
+ #: includes/class.yith-wcwl-admin.php:240
58
  msgid ""
59
  "Allows your customers to create and share lists of products that they want "
60
  "to purchase on your e-commerce."
83
  msgid "Please, make sure to enter a valid title"
84
  msgstr ""
85
 
86
+ #: includes/class.yith-wcwl-frontend.php:404
87
  msgid ""
88
  "We are sorry, but this feature is available only if cookies on your browser "
89
  "are enabled."
90
  msgstr ""
91
 
92
+ #: includes/class.yith-wcwl-frontend.php:405
93
  msgid "Product added to cart successfully"
94
  msgstr ""
95
 
96
+ #: includes/class.yith-wcwl-frontend.php:654
97
  #: includes/class.yith-wcwl-shortcode.php:237
98
  #: plugin-options/wishlist_page-options.php:237
99
  #: templates/wishlist-view-footer-mobile.php:44
101
  msgid "Add to cart"
102
  msgstr ""
103
 
 
 
 
 
 
104
  #: includes/class.yith-wcwl-privacy.php:50
105
  msgid "While you visit our site, we’ll track:"
106
  msgstr ""
131
 
132
  #: includes/class.yith-wcwl-privacy.php:60
133
  msgid ""
134
+ "Wishlist details, such as products added, date of addition, name and "
135
+ "privacy settings of your wishlists"
136
  msgstr ""
137
 
138
  #: includes/class.yith-wcwl-privacy.php:62
151
  msgid "Wishlists"
152
  msgstr ""
153
 
 
154
  #: includes/class.yith-wcwl-privacy.php:193
155
+ #. Translators: %s Order number.
156
  msgid "Removed wishlist %s."
157
  msgstr ""
158
 
 
159
  #: includes/class.yith-wcwl-privacy.php:197
160
+ #. Translators: %s Order number.
161
  msgid "Wishlist %s has been retained."
162
  msgstr ""
163
 
173
  msgid "Title"
174
  msgstr ""
175
 
 
 
 
 
 
176
  #: includes/class.yith-wcwl-privacy.php:223
177
  msgid "Visibility"
178
  msgstr ""
181
  msgid "Items added"
182
  msgstr ""
183
 
 
 
 
 
 
 
 
 
 
 
184
  #: includes/class.yith-wcwl-shortcode.php:58
185
  msgid ""
186
  "ID of the product to add to the wishlist (leave empty to use the global "
207
 
208
  #: includes/class.yith-wcwl-shortcode.php:83
209
  msgid ""
210
+ "\"Product added to wishlist\" label (leave empty to use the default "
211
+ "settings)"
212
  msgstr ""
213
 
214
  #: includes/class.yith-wcwl-shortcode.php:88
223
  "settings)"
224
  msgstr ""
225
 
 
 
 
 
 
 
 
 
 
 
226
  #: includes/class.yith-wcwl-shortcode.php:107
227
  msgid "Choose whether to paginate items in the wishlist or show them all"
228
  msgstr ""
286
  msgid "Free!"
287
  msgstr ""
288
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
289
  #: includes/class.yith-wcwl.php:164
290
  msgid "The item cannot be added to this wishlist"
291
  msgstr ""
307
  msgid "Invalid wishlist item."
308
  msgstr ""
309
 
 
310
  #: includes/functions.yith-wcwl.php:249
311
+ #. translators: 1. Number of users.
312
  msgid "%d user"
313
  msgid_plural "%d users"
314
  msgstr[0] ""
328
  msgid "to add this item in wishlist"
329
  msgstr ""
330
 
 
331
  #: includes/functions.yith-wcwl.php:257
332
+ #. translators: 1. Count of users when many, or "another" when only one.
333
  msgid "You and %s user"
334
  msgid_plural "You and %d users"
335
  msgstr[0] ""
343
  msgid "have this item in wishlist"
344
  msgstr ""
345
 
346
+ #: includes/functions.yith-wcwl.php:424
347
  msgid "None"
348
  msgstr ""
349
 
350
+ #: includes/functions.yith-wcwl.php:425
351
  msgid "Custom"
352
  msgstr ""
353
 
354
+ #: includes/functions.yith-wcwl.php:446
355
  msgid "Shared"
356
  msgstr ""
357
 
358
+ #: includes/functions.yith-wcwl.php:450
359
  msgid "Only people with a link to this list can see it"
360
  msgstr ""
361
 
362
+ #: includes/functions.yith-wcwl.php:456
363
  msgid "Private"
364
  msgstr ""
365
 
366
+ #: includes/functions.yith-wcwl.php:460
367
  msgid "Only you can see this list"
368
  msgstr ""
369
 
370
+ #: includes/functions.yith-wcwl.php:466
371
  msgid "Public"
372
  msgstr ""
373
 
374
+ #: includes/functions.yith-wcwl.php:470
375
  msgid "Anyone can search for and see this list"
376
  msgstr ""
377
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
378
  #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:114
379
  #: plugin-options/add_to_wishlist-options.php:125
380
  msgid "Add to wishlist"
381
  msgstr ""
382
 
 
 
 
 
 
383
  #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:124
384
  #: plugin-options/add_to_wishlist-options.php:141
385
  msgid "Browse wishlist"
386
  msgstr ""
387
 
 
 
 
 
 
388
  #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:134
389
  msgid "Product already in wishlist"
390
  msgstr ""
391
 
 
 
 
 
 
392
  #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:144
393
  msgid "Product added to wishlist"
394
  msgstr ""
395
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
396
  #: init.php:160
397
  msgid "is enabled but not effective. It requires WooCommerce to work."
398
  msgstr ""
439
  #: plugin-options/add_to_wishlist-options.php:48
440
  msgid ""
441
  "Loop options will be visible on Shop page, category pages, product "
442
+ "shortcodes, products sliders, and all the other places where the "
443
+ "WooCommerce products' loop is used"
444
  msgstr ""
445
 
446
  #: plugin-options/add_to_wishlist-options.php:53
458
  #: plugin-options/add_to_wishlist-options.php:63
459
  msgid ""
460
  "Choose where to show \"Add to wishlist\" button or link in WooCommerce "
461
+ "products' loop. <span class=\"addon\">Copy this shortcode <span "
462
+ "class=\"code\"><code>[yith_wcwl_add_to_wishlist]</code></span> and paste it "
463
+ "where you want to show the \"Add to wishlist\" link or button</span>"
464
  msgstr ""
465
 
466
  #: plugin-options/add_to_wishlist-options.php:70
490
 
491
  #: plugin-options/add_to_wishlist-options.php:95
492
  msgid ""
493
+ "Choose where to show \"Add to wishlist\" button or link on the product "
494
+ "page. <span class=\"addon\">Copy this shortcode <span "
495
+ "class=\"code\"><code>[yith_wcwl_add_to_wishlist]</code></span> and paste it "
496
+ "where you want to show the \"Add to wishlist\" link or button</span>"
497
  msgstr ""
498
 
499
  #: plugin-options/add_to_wishlist-options.php:102
566
  msgstr ""
567
 
568
  #: plugin-options/add_to_wishlist-options.php:167
569
+ msgid "Choose if you want to show a textual \"Add to wishlist\" link or a button"
 
570
  msgstr ""
571
 
572
  #: plugin-options/add_to_wishlist-options.php:170
705
 
706
  #: plugin-options/settings-options.php:17
707
  msgid ""
708
+ "If you want to take advantage of this feature, you could consider "
709
+ "purchasing the %s."
710
  msgstr ""
711
 
712
  #: plugin-options/settings-options.php:30
747
 
748
  #: plugin-options/wishlist_page-options.php:25
749
  msgid ""
750
+ "Pick a page as the main Wishlist page; make sure you add the <span "
751
+ "class=\"code\"><code>[yith_wcwl_wishlist]</code></span> shortcode into the "
752
+ "page content"
753
  msgstr ""
754
 
755
  #: plugin-options/wishlist_page-options.php:38
787
  msgstr ""
788
 
789
  #: plugin-options/wishlist_page-options.php:91
790
+ msgid "Icon to remove the product from the wishlist - to the left of the product"
 
791
  msgstr ""
792
 
793
  #: plugin-options/wishlist_page-options.php:100
794
+ msgid "Button to remove the product from the wishlist - to the right of the product"
 
795
  msgstr ""
796
 
797
  #: plugin-options/wishlist_page-options.php:108
800
 
801
  #: plugin-options/wishlist_page-options.php:109
802
  msgid ""
803
+ "Redirect users to the cart page when they add a product to the cart from "
804
+ "the wishlist page"
805
  msgstr ""
806
 
807
  #: plugin-options/wishlist_page-options.php:117
809
  msgstr ""
810
 
811
  #: plugin-options/wishlist_page-options.php:118
812
+ msgid "Remove the product from the wishlist after it has been added to the cart"
 
813
  msgstr ""
814
 
815
  #: plugin-options/wishlist_page-options.php:126
858
 
859
  #: plugin-options/wishlist_page-options.php:198
860
  msgid ""
861
+ "Type the message you want to publish when you share your wishlist on "
862
+ "Twitter and Pinterest"
863
  msgstr ""
864
 
865
  #: plugin-options/wishlist_page-options.php:206
952
  #: plugin-options/wishlist_page-options.php:381
953
  msgid ""
954
  "Choose colors for the primary button on hover state<br/><small>This style "
955
+ "will be applied to \"Edit title\" button on Wishlist view, \"Submit "
956
+ "Changes\" button on Manage view and \"Search wishlist\" button on Search "
957
+ "view</small>"
958
  msgstr ""
959
 
960
  #: plugin-options/wishlist_page-options.php:406
965
  #: plugin-options/wishlist_page-options.php:430
966
  msgid ""
967
  "Choose colors of the secondary button<br/><small>This style will be applied "
968
+ "to the buttons that allow showing and hiding the Edit title form on "
969
+ "Wishlist view and \"Create new Wishlist\" button on Manage view</small>"
970
  msgstr ""
971
 
972
  #: plugin-options/wishlist_page-options.php:455
975
 
976
  #: plugin-options/wishlist_page-options.php:456
977
  msgid ""
978
+ "Choose the colors for the wishlist table (when set to \"Traditional\" "
979
+ "layout)"
980
  msgstr ""
981
 
982
  #: plugin-options/wishlist_page-options.php:484
985
 
986
  #: plugin-options/wishlist_page-options.php:485
987
  msgid ""
988
+ "Choose the color for all sections with background<br/><small>This color "
989
+ "will be used as background for the wishlist table heading and footer (when "
990
+ "set to \"Traditional\" layout), and for various form across wishlist "
991
+ "views</small>"
992
  msgstr ""
993
 
994
  #: plugin-options/wishlist_page-options.php:497
1017
 
1018
  #: plugin-options/wishlist_page-options.php:534
1019
  msgid ""
1020
+ "Upload an icon you'd like to use for Facebook share button (suggested 32px "
1021
+ "x 32px)"
1022
  msgstr ""
1023
 
1024
  #: plugin-options/wishlist_page-options.php:542
1129
 
1130
  #: plugin-options/wishlist_page-options.php:694
1131
  msgid ""
1132
+ "Upload an icon you'd like to use for WhatsApp share button (suggested 32px "
1133
+ "x 32px)"
1134
  msgstr ""
1135
 
1136
  #: plugin-options/wishlist_page-options.php:702
1144
  #: templates/admin/wishlist-panel-premium.php:168
1145
  #: templates/admin/wishlist-panel-premium.php:309
1146
  msgid ""
1147
+ "Upgrade to the %1$spremium version%2$s%3$sof %1$sYITH WooCommerce "
1148
+ "Wishlist%2$s to benefit from all features!"
1149
  msgstr ""
1150
 
1151
  #: templates/admin/wishlist-panel-premium.php:170
1182
 
1183
  #: templates/admin/wishlist-panel-premium.php:198
1184
  msgid ""
1185
+ "Your customers can set a privacy option for each wishlist and choose "
1186
+ "whether sharing the wishlist or making it private."
1187
  msgstr ""
1188
 
1189
  #: templates/admin/wishlist-panel-premium.php:206
1212
 
1213
  #: templates/admin/wishlist-panel-premium.php:224
1214
  msgid ""
1215
+ "Your customers can sort the products in the wishlist thanks to the "
1216
+ "drag&drop option, move products from one wishlist to another, manage "
1217
+ "product quantity, download the wishlist content to a .pdf file, share the "
1218
+ "wishlist on their social networks, and much more!"
1219
  msgstr ""
1220
 
1221
  #: templates/admin/wishlist-panel-premium.php:232
1237
  msgstr ""
1238
 
1239
  #: templates/admin/wishlist-panel-premium.php:248
1240
+ msgid "Send promotional emails for products in wishlists to push customers to buy"
 
1241
  msgstr ""
1242
 
1243
  #: templates/admin/wishlist-panel-premium.php:250
1270
  msgid ""
1271
  "The wishlist is one of the most used functionalities in an ecommerce store "
1272
  "but often the page layout is not enhanced enough and looks unattractive to "
1273
+ "the user. With our plugin, you can choose among some alternative layouts "
1274
+ "and offer an even more interesting experience to users who creates a "
1275
+ "wishlist on your website."
1276
  msgstr ""
1277
 
1278
  #: templates/admin/wishlist-panel-premium.php:276
1285
 
1286
  #: templates/admin/wishlist-panel-premium.php:286
1287
  msgid ""
1288
+ "Increase the wishlist visibility through our modern widgets that you can "
1289
+ "use in the header, in the sidebars, wherever you want."
1290
  msgstr ""
1291
 
1292
  #: templates/admin/wishlist-panel-premium.php:289
1355
  msgid "Remove from wishlist"
1356
  msgstr ""
1357
 
 
1358
  #: templates/wishlist-view-footer-mobile.php:60
1359
  #: templates/wishlist-view-footer.php:63
1360
+ #. translators: 1. Wishlist formatted name.
1361
  msgid "Move to %s"
1362
  msgstr ""
1363
 
1380
  msgid "Edit title"
1381
  msgstr ""
1382
 
1383
+ #: templates/wishlist-view-mobile.php:136
1384
  msgid "Added on:"
1385
  msgstr ""
1386
 
1387
+ #: templates/wishlist-view-mobile.php:147
1388
  msgid "Price:"
1389
  msgstr ""
1390
 
1391
+ #: templates/wishlist-view-mobile.php:174
1392
  msgid "Quantity:"
1393
  msgstr ""
1394
 
1395
+ #: templates/wishlist-view-mobile.php:189
1396
  msgid "Stock:"
1397
  msgstr ""
1398
 
1399
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1400
  msgid "Out of stock"
1401
  msgstr ""
1402
 
1403
+ #: templates/wishlist-view-mobile.php:192 templates/wishlist-view.php:227
1404
  msgid "In Stock"
1405
  msgstr ""
1406
 
1407
+ #: templates/wishlist-view-mobile.php:211 templates/wishlist-view.php:260
1408
  msgid "Move"
1409
  msgstr ""
1410
 
1411
+ #: templates/wishlist-view-mobile.php:232 templates/wishlist-view.php:280
1412
  msgid "Move to another list &rsaquo;"
1413
  msgstr ""
1414
 
1415
+ #: templates/wishlist-view-mobile.php:240 templates/wishlist-view.php:156
1416
+ #: templates/wishlist-view.php:290
1417
  msgid "Remove this product"
1418
  msgstr ""
1419
 
1420
+ #: templates/wishlist-view-mobile.php:251 templates/wishlist-view.php:310
1421
  msgid "No products added to the wishlist"
1422
  msgstr ""
1423
 
1424
+ #: templates/wishlist-view.php:79
1425
  msgid "Product name"
1426
  msgstr ""
1427
 
1428
+ #: templates/wishlist-view.php:87
1429
  msgid "Unit price"
1430
  msgstr ""
1431
 
1432
+ #: templates/wishlist-view.php:96
1433
  msgid "Quantity"
1434
  msgstr ""
1435
 
1436
+ #: templates/wishlist-view.php:105
1437
  msgid "Stock status"
1438
  msgstr ""
1439
 
1440
+ #: templates/wishlist-view.php:123
1441
  msgid "Arrange"
1442
  msgstr ""
1443
 
1444
+ #: templates/wishlist-view.php:241
1445
  #. translators: date added label: 1 date added.
 
1446
  msgid "Added on: %s"
1447
  msgstr ""
1448
 
1449
+ #: templates/wishlist-view.php:290
1450
  msgid "Remove"
1451
  msgstr ""
1452
 
 
 
 
 
1453
  #. Description of the plugin/theme
1454
  msgid ""
1455
+ "<code><strong>YITH WooCommerce Wishlist</strong></code> gives your users "
1456
+ "the possibility to create, fill, manage and share their wishlists allowing "
1457
+ "you to analyze their interests and needs to improve your marketing "
1458
+ "strategies. <a href=\"https://yithemes.com/\" target=\"_blank\">Get more "
1459
+ "plugins for your e-commerce on <strong>YITH</strong></a>"
1460
+ msgstr ""
1461
+
1462
+ #: includes/class.yith-wcwl-install.php:346
1463
+ msgctxt "page_slug"
1464
+ msgid "wishlist"
1465
+ msgstr ""
1466
+
1467
+ #: includes/class.yith-wcwl-privacy.php:222
1468
+ msgctxt "date when wishlist was created"
1469
+ msgid "Created on"
1470
+ msgstr ""
1471
+
1472
+ #: includes/class.yith-wcwl-shortcode.php:52
1473
+ msgctxt "[gutenberg]: block name"
1474
+ msgid "YITH Add to wishlist"
1475
+ msgstr ""
1476
+
1477
+ #: includes/class.yith-wcwl-shortcode.php:101
1478
+ msgctxt "[gutenberg]: block name"
1479
+ msgid "YITH Wishlist"
1480
  msgstr ""
1481
 
1482
+ #: includes/class.yith-wcwl-shortcode.php:53
1483
+ msgctxt "[gutenberg]: block description"
1484
+ msgid "Shows Add to wishlist button"
1485
  msgstr ""
1486
 
1487
+ #: includes/class.yith-wcwl-shortcode.php:102
1488
+ msgctxt "[gutenberg]: block description"
1489
+ msgid "Shows a list of products in wishlist"
1490
  msgstr ""
1491
+
1492
+ #: includes/class.yith-wcwl-wishlist-item.php:415
1493
+ msgctxt ""
1494
+ "Part of the template that shows price variation since addition to list; "
1495
+ "placeholder will be replaced with a percentage"
1496
+ msgid "Price is %1$s%%"
1497
+ msgstr ""
1498
+
1499
+ #: includes/class.yith-wcwl-wishlist-item.php:416
1500
+ msgctxt ""
1501
+ "Part of the template that shows price variation since addition to list; "
1502
+ "placeholder will be replaced with a price"
1503
+ msgid "(Was %2$s when added in list)"
1504
+ msgstr ""
1505
+
1506
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:40
1507
+ msgctxt "Elementor widget name"
1508
+ msgid "YITH Wishlist Add button"
1509
+ msgstr ""
1510
+
1511
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-wishlist.php:40
1512
+ msgctxt "Elementor widget name"
1513
+ msgid "YITH Wishlist"
1514
+ msgstr ""
1515
+
1516
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:83
1517
+ msgctxt "Elementor section title"
1518
+ msgid "Product"
1519
+ msgstr ""
1520
+
1521
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:103
1522
+ msgctxt "Elementor section title"
1523
+ msgid "Labels"
1524
+ msgstr ""
1525
+
1526
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:153
1527
+ msgctxt "Elementor section title"
1528
+ msgid "Advanced"
1529
+ msgstr ""
1530
+
1531
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-wishlist.php:82
1532
+ msgctxt "Elementor section title"
1533
+ msgid "Wishlist"
1534
+ msgstr ""
1535
+
1536
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-wishlist.php:102
1537
+ msgctxt "Elementor section title"
1538
+ msgid "Pagination"
1539
+ msgstr ""
1540
+
1541
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:91
1542
+ msgctxt "Elementor control label"
1543
+ msgid "Product ID"
1544
+ msgstr ""
1545
+
1546
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:111
1547
+ msgctxt "Elementor control label"
1548
+ msgid "Button label"
1549
+ msgstr ""
1550
+
1551
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:121
1552
+ msgctxt "Elementor control label"
1553
+ msgid "\"Browse wishlist\" label"
1554
+ msgstr ""
1555
+
1556
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:131
1557
+ msgctxt "Elementor control label"
1558
+ msgid "\"Product already in wishlist\" label"
1559
+ msgstr ""
1560
+
1561
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:141
1562
+ msgctxt "Elementor control label"
1563
+ msgid "\"Product added to wishlist\" label"
1564
+ msgstr ""
1565
+
1566
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:161
1567
+ msgctxt "Elementor control label"
1568
+ msgid "URL of the wishlist page"
1569
+ msgstr ""
1570
+
1571
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:171
1572
+ msgctxt "Elementor control label"
1573
+ msgid "Icon for the button"
1574
+ msgstr ""
1575
+
1576
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-add-to-wishlist.php:181
1577
+ msgctxt "Elementor control label"
1578
+ msgid "Additional CSS classes for the button"
1579
+ msgstr ""
1580
+
1581
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-wishlist.php:90
1582
+ msgctxt "Elementor control label"
1583
+ msgid "Wishlist ID"
1584
+ msgstr ""
1585
+
1586
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-wishlist.php:110
1587
+ msgctxt "Elementor control label"
1588
+ msgid "Paginate items"
1589
+ msgstr ""
1590
+
1591
+ #: includes/widgets/elementor/class.yith-wcwl-elementor-wishlist.php:123
1592
+ msgctxt "yith-woocommerce-wishlist"
1593
+ msgid "Items per page"
1594
+ msgstr ""
package-lock.json DELETED
@@ -1,4731 +0,0 @@
1
- {
2
- "name": "yith-woocommerce-wishlist",
3
- "version": "3.0.0",
4
- "lockfileVersion": 1,
5
- "requires": true,
6
- "dependencies": {
7
- "ansi-colors": {
8
- "version": "1.1.0",
9
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz",
10
- "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==",
11
- "dev": true,
12
- "requires": {
13
- "ansi-wrap": "^0.1.0"
14
- }
15
- },
16
- "ansi-cyan": {
17
- "version": "0.1.1",
18
- "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz",
19
- "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=",
20
- "dev": true,
21
- "requires": {
22
- "ansi-wrap": "0.1.0"
23
- }
24
- },
25
- "ansi-gray": {
26
- "version": "0.1.1",
27
- "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
28
- "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=",
29
- "dev": true,
30
- "requires": {
31
- "ansi-wrap": "0.1.0"
32
- }
33
- },
34
- "ansi-red": {
35
- "version": "0.1.1",
36
- "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz",
37
- "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=",
38
- "dev": true,
39
- "requires": {
40
- "ansi-wrap": "0.1.0"
41
- }
42
- },
43
- "ansi-regex": {
44
- "version": "2.1.1",
45
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
46
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
47
- "dev": true
48
- },
49
- "ansi-styles": {
50
- "version": "2.2.1",
51
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
52
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
53
- "dev": true
54
- },
55
- "ansi-wrap": {
56
- "version": "0.1.0",
57
- "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
58
- "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
59
- "dev": true
60
- },
61
- "anymatch": {
62
- "version": "2.0.0",
63
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
64
- "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
65
- "dev": true,
66
- "requires": {
67
- "micromatch": "^3.1.4",
68
- "normalize-path": "^2.1.1"
69
- }
70
- },
71
- "append-buffer": {
72
- "version": "1.0.2",
73
- "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz",
74
- "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=",
75
- "dev": true,
76
- "requires": {
77
- "buffer-equal": "^1.0.0"
78
- }
79
- },
80
- "archy": {
81
- "version": "1.0.0",
82
- "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
83
- "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
84
- "dev": true
85
- },
86
- "arr-diff": {
87
- "version": "4.0.0",
88
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
89
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
90
- "dev": true
91
- },
92
- "arr-filter": {
93
- "version": "1.1.2",
94
- "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz",
95
- "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=",
96
- "dev": true,
97
- "requires": {
98
- "make-iterator": "^1.0.0"
99
- }
100
- },
101
- "arr-flatten": {
102
- "version": "1.1.0",
103
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
104
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
105
- "dev": true
106
- },
107
- "arr-map": {
108
- "version": "2.0.2",
109
- "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz",
110
- "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=",
111
- "dev": true,
112
- "requires": {
113
- "make-iterator": "^1.0.0"
114
- }
115
- },
116
- "arr-union": {
117
- "version": "3.1.0",
118
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
119
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
120
- "dev": true
121
- },
122
- "array-differ": {
123
- "version": "1.0.0",
124
- "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
125
- "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
126
- "dev": true
127
- },
128
- "array-each": {
129
- "version": "1.0.1",
130
- "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
131
- "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=",
132
- "dev": true
133
- },
134
- "array-initial": {
135
- "version": "1.1.0",
136
- "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz",
137
- "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=",
138
- "dev": true,
139
- "requires": {
140
- "array-slice": "^1.0.0",
141
- "is-number": "^4.0.0"
142
- },
143
- "dependencies": {
144
- "is-number": {
145
- "version": "4.0.0",
146
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
147
- "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
148
- "dev": true
149
- }
150
- }
151
- },
152
- "array-last": {
153
- "version": "1.3.0",
154
- "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz",
155
- "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==",
156
- "dev": true,
157
- "requires": {
158
- "is-number": "^4.0.0"
159
- },
160
- "dependencies": {
161
- "is-number": {
162
- "version": "4.0.0",
163
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
164
- "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
165
- "dev": true
166
- }
167
- }
168
- },
169
- "array-slice": {
170
- "version": "1.1.0",
171
- "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
172
- "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==",
173
- "dev": true
174
- },
175
- "array-sort": {
176
- "version": "1.0.0",
177
- "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz",
178
- "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==",
179
- "dev": true,
180
- "requires": {
181
- "default-compare": "^1.0.0",
182
- "get-value": "^2.0.6",
183
- "kind-of": "^5.0.2"
184
- },
185
- "dependencies": {
186
- "kind-of": {
187
- "version": "5.1.0",
188
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
189
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
190
- "dev": true
191
- }
192
- }
193
- },
194
- "array-uniq": {
195
- "version": "1.0.3",
196
- "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
197
- "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
198
- "dev": true
199
- },
200
- "array-unique": {
201
- "version": "0.3.2",
202
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
203
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
204
- "dev": true
205
- },
206
- "assign-symbols": {
207
- "version": "1.0.0",
208
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
209
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
210
- "dev": true
211
- },
212
- "async-done": {
213
- "version": "1.3.2",
214
- "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz",
215
- "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==",
216
- "dev": true,
217
- "requires": {
218
- "end-of-stream": "^1.1.0",
219
- "once": "^1.3.2",
220
- "process-nextick-args": "^2.0.0",
221
- "stream-exhaust": "^1.0.1"
222
- }
223
- },
224
- "async-each": {
225
- "version": "1.0.3",
226
- "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
227
- "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
228
- "dev": true
229
- },
230
- "async-settle": {
231
- "version": "1.0.0",
232
- "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz",
233
- "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=",
234
- "dev": true,
235
- "requires": {
236
- "async-done": "^1.2.2"
237
- }
238
- },
239
- "atob": {
240
- "version": "2.1.2",
241
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
242
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
243
- "dev": true
244
- },
245
- "bach": {
246
- "version": "1.2.0",
247
- "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz",
248
- "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=",
249
- "dev": true,
250
- "requires": {
251
- "arr-filter": "^1.1.1",
252
- "arr-flatten": "^1.0.1",
253
- "arr-map": "^2.0.0",
254
- "array-each": "^1.0.0",
255
- "array-initial": "^1.0.0",
256
- "array-last": "^1.1.1",
257
- "async-done": "^1.2.2",
258
- "async-settle": "^1.0.0",
259
- "now-and-later": "^2.0.0"
260
- }
261
- },
262
- "balanced-match": {
263
- "version": "1.0.0",
264
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
265
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
266
- "dev": true
267
- },
268
- "base": {
269
- "version": "0.11.2",
270
- "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
271
- "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
272
- "dev": true,
273
- "requires": {
274
- "cache-base": "^1.0.1",
275
- "class-utils": "^0.3.5",
276
- "component-emitter": "^1.2.1",
277
- "define-property": "^1.0.0",
278
- "isobject": "^3.0.1",
279
- "mixin-deep": "^1.2.0",
280
- "pascalcase": "^0.1.1"
281
- },
282
- "dependencies": {
283
- "define-property": {
284
- "version": "1.0.0",
285
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
286
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
287
- "dev": true,
288
- "requires": {
289
- "is-descriptor": "^1.0.0"
290
- }
291
- },
292
- "is-accessor-descriptor": {
293
- "version": "1.0.0",
294
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
295
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
296
- "dev": true,
297
- "requires": {
298
- "kind-of": "^6.0.0"
299
- }
300
- },
301
- "is-data-descriptor": {
302
- "version": "1.0.0",
303
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
304
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
305
- "dev": true,
306
- "requires": {
307
- "kind-of": "^6.0.0"
308
- }
309
- },
310
- "is-descriptor": {
311
- "version": "1.0.2",
312
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
313
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
314
- "dev": true,
315
- "requires": {
316
- "is-accessor-descriptor": "^1.0.0",
317
- "is-data-descriptor": "^1.0.0",
318
- "kind-of": "^6.0.2"
319
- }
320
- }
321
- }
322
- },
323
- "beeper": {
324
- "version": "1.1.1",
325
- "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
326
- "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=",
327
- "dev": true
328
- },
329
- "binary-extensions": {
330
- "version": "1.13.1",
331
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
332
- "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
333
- "dev": true
334
- },
335
- "brace-expansion": {
336
- "version": "1.1.11",
337
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
338
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
339
- "dev": true,
340
- "requires": {
341
- "balanced-match": "^1.0.0",
342
- "concat-map": "0.0.1"
343
- }
344
- },
345
- "braces": {
346
- "version": "2.3.2",
347
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
348
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
349
- "dev": true,
350
- "requires": {
351
- "arr-flatten": "^1.1.0",
352
- "array-unique": "^0.3.2",
353
- "extend-shallow": "^2.0.1",
354
- "fill-range": "^4.0.0",
355
- "isobject": "^3.0.1",
356
- "repeat-element": "^1.1.2",
357
- "snapdragon": "^0.8.1",
358
- "snapdragon-node": "^2.0.1",
359
- "split-string": "^3.0.2",
360
- "to-regex": "^3.0.1"
361
- },
362
- "dependencies": {
363
- "extend-shallow": {
364
- "version": "2.0.1",
365
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
366
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
367
- "dev": true,
368
- "requires": {
369
- "is-extendable": "^0.1.0"
370
- }
371
- }
372
- }
373
- },
374
- "buffer-equal": {
375
- "version": "1.0.0",
376
- "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz",
377
- "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=",
378
- "dev": true
379
- },
380
- "buffer-from": {
381
- "version": "1.1.1",
382
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
383
- "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
384
- "dev": true
385
- },
386
- "cache-base": {
387
- "version": "1.0.1",
388
- "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
389
- "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
390
- "dev": true,
391
- "requires": {
392
- "collection-visit": "^1.0.0",
393
- "component-emitter": "^1.2.1",
394
- "get-value": "^2.0.6",
395
- "has-value": "^1.0.0",
396
- "isobject": "^3.0.1",
397
- "set-value": "^2.0.0",
398
- "to-object-path": "^0.3.0",
399
- "union-value": "^1.0.0",
400
- "unset-value": "^1.0.0"
401
- }
402
- },
403
- "camelcase": {
404
- "version": "3.0.0",
405
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
406
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
407
- "dev": true
408
- },
409
- "chalk": {
410
- "version": "1.1.3",
411
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
412
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
413
- "dev": true,
414
- "requires": {
415
- "ansi-styles": "^2.2.1",
416
- "escape-string-regexp": "^1.0.2",
417
- "has-ansi": "^2.0.0",
418
- "strip-ansi": "^3.0.0",
419
- "supports-color": "^2.0.0"
420
- }
421
- },
422
- "chokidar": {
423
- "version": "2.1.6",
424
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz",
425
- "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==",
426
- "dev": true,
427
- "requires": {
428
- "anymatch": "^2.0.0",
429
- "async-each": "^1.0.1",
430
- "braces": "^2.3.2",
431
- "fsevents": "^1.2.7",
432
- "glob-parent": "^3.1.0",
433
- "inherits": "^2.0.3",
434
- "is-binary-path": "^1.0.0",
435
- "is-glob": "^4.0.0",
436
- "normalize-path": "^3.0.0",
437
- "path-is-absolute": "^1.0.0",
438
- "readdirp": "^2.2.1",
439
- "upath": "^1.1.1"
440
- },
441
- "dependencies": {
442
- "normalize-path": {
443
- "version": "3.0.0",
444
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
445
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
446
- "dev": true
447
- }
448
- }
449
- },
450
- "class-utils": {
451
- "version": "0.3.6",
452
- "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
453
- "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
454
- "dev": true,
455
- "requires": {
456
- "arr-union": "^3.1.0",
457
- "define-property": "^0.2.5",
458
- "isobject": "^3.0.0",
459
- "static-extend": "^0.1.1"
460
- },
461
- "dependencies": {
462
- "define-property": {
463
- "version": "0.2.5",
464
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
465
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
466
- "dev": true,
467
- "requires": {
468
- "is-descriptor": "^0.1.0"
469
- }
470
- }
471
- }
472
- },
473
- "clean-css": {
474
- "version": "4.2.1",
475
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
476
- "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
477
- "dev": true,
478
- "requires": {
479
- "source-map": "~0.6.0"
480
- },
481
- "dependencies": {
482
- "source-map": {
483
- "version": "0.6.1",
484
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
485
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
486
- "dev": true
487
- }
488
- }
489
- },
490
- "cli": {
491
- "version": "1.0.1",
492
- "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
493
- "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=",
494
- "dev": true,
495
- "requires": {
496
- "exit": "0.1.2",
497
- "glob": "^7.1.1"
498
- }
499
- },
500
- "cliui": {
501
- "version": "3.2.0",
502
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
503
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
504
- "dev": true,
505
- "requires": {
506
- "string-width": "^1.0.1",
507
- "strip-ansi": "^3.0.1",
508
- "wrap-ansi": "^2.0.0"
509
- }
510
- },
511
- "clone": {
512
- "version": "2.1.2",
513
- "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
514
- "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
515
- "dev": true
516
- },
517
- "clone-buffer": {
518
- "version": "1.0.0",
519
- "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
520
- "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=",
521
- "dev": true
522
- },
523
- "clone-stats": {
524
- "version": "1.0.0",
525
- "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
526
- "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
527
- "dev": true
528
- },
529
- "cloneable-readable": {
530
- "version": "1.1.3",
531
- "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz",
532
- "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==",
533
- "dev": true,
534
- "requires": {
535
- "inherits": "^2.0.1",
536
- "process-nextick-args": "^2.0.0",
537
- "readable-stream": "^2.3.5"
538
- }
539
- },
540
- "code-point-at": {
541
- "version": "1.1.0",
542
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
543
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
544
- "dev": true
545
- },
546
- "collection-map": {
547
- "version": "1.0.0",
548
- "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz",
549
- "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=",
550
- "dev": true,
551
- "requires": {
552
- "arr-map": "^2.0.2",
553
- "for-own": "^1.0.0",
554
- "make-iterator": "^1.0.0"
555
- }
556
- },
557
- "collection-visit": {
558
- "version": "1.0.0",
559
- "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
560
- "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
561
- "dev": true,
562
- "requires": {
563
- "map-visit": "^1.0.0",
564
- "object-visit": "^1.0.0"
565
- }
566
- },
567
- "color-support": {
568
- "version": "1.1.3",
569
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
570
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
571
- "dev": true
572
- },
573
- "commander": {
574
- "version": "2.20.0",
575
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
576
- "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
577
- "dev": true
578
- },
579
- "component-emitter": {
580
- "version": "1.3.0",
581
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
582
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
583
- "dev": true
584
- },
585
- "concat-map": {
586
- "version": "0.0.1",
587
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
588
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
589
- "dev": true
590
- },
591
- "concat-stream": {
592
- "version": "1.6.2",
593
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
594
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
595
- "dev": true,
596
- "requires": {
597
- "buffer-from": "^1.0.0",
598
- "inherits": "^2.0.3",
599
- "readable-stream": "^2.2.2",
600
- "typedarray": "^0.0.6"
601
- }
602
- },
603
- "console-browserify": {
604
- "version": "1.1.0",
605
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
606
- "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
607
- "dev": true,
608
- "requires": {
609
- "date-now": "^0.1.4"
610
- }
611
- },
612
- "content-type": {
613
- "version": "1.0.4",
614
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
615
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
616
- "dev": true
617
- },
618
- "convert-source-map": {
619
- "version": "1.6.0",
620
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
621
- "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
622
- "dev": true,
623
- "requires": {
624
- "safe-buffer": "~5.1.1"
625
- }
626
- },
627
- "copy-descriptor": {
628
- "version": "0.1.1",
629
- "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
630
- "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
631
- "dev": true
632
- },
633
- "copy-props": {
634
- "version": "2.0.4",
635
- "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz",
636
- "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==",
637
- "dev": true,
638
- "requires": {
639
- "each-props": "^1.3.0",
640
- "is-plain-object": "^2.0.1"
641
- }
642
- },
643
- "core-util-is": {
644
- "version": "1.0.2",
645
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
646
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
647
- "dev": true
648
- },
649
- "d": {
650
- "version": "1.0.1",
651
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
652
- "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
653
- "dev": true,
654
- "requires": {
655
- "es5-ext": "^0.10.50",
656
- "type": "^1.0.1"
657
- }
658
- },
659
- "date-now": {
660
- "version": "0.1.4",
661
- "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
662
- "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
663
- "dev": true
664
- },
665
- "dateformat": {
666
- "version": "2.2.0",
667
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz",
668
- "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=",
669
- "dev": true
670
- },
671
- "debug": {
672
- "version": "2.6.9",
673
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
674
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
675
- "dev": true,
676
- "requires": {
677
- "ms": "2.0.0"
678
- }
679
- },
680
- "decamelize": {
681
- "version": "1.2.0",
682
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
683
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
684
- "dev": true
685
- },
686
- "decode-uri-component": {
687
- "version": "0.2.0",
688
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
689
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
690
- "dev": true
691
- },
692
- "default-compare": {
693
- "version": "1.0.0",
694
- "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz",
695
- "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==",
696
- "dev": true,
697
- "requires": {
698
- "kind-of": "^5.0.2"
699
- },
700
- "dependencies": {
701
- "kind-of": {
702
- "version": "5.1.0",
703
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
704
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
705
- "dev": true
706
- }
707
- }
708
- },
709
- "default-resolution": {
710
- "version": "2.0.0",
711
- "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz",
712
- "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=",
713
- "dev": true
714
- },
715
- "defaults": {
716
- "version": "1.0.3",
717
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
718
- "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
719
- "dev": true,
720
- "requires": {
721
- "clone": "^1.0.2"
722
- },
723
- "dependencies": {
724
- "clone": {
725
- "version": "1.0.4",
726
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
727
- "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
728
- "dev": true
729
- }
730
- }
731
- },
732
- "define-properties": {
733
- "version": "1.1.3",
734
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
735
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
736
- "dev": true,
737
- "requires": {
738
- "object-keys": "^1.0.12"
739
- }
740
- },
741
- "define-property": {
742
- "version": "2.0.2",
743
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
744
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
745
- "dev": true,
746
- "requires": {
747
- "is-descriptor": "^1.0.2",
748
- "isobject": "^3.0.1"
749
- },
750
- "dependencies": {
751
- "is-accessor-descriptor": {
752
- "version": "1.0.0",
753
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
754
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
755
- "dev": true,
756
- "requires": {
757
- "kind-of": "^6.0.0"
758
- }
759
- },
760
- "is-data-descriptor": {
761
- "version": "1.0.0",
762
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
763
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
764
- "dev": true,
765
- "requires": {
766
- "kind-of": "^6.0.0"
767
- }
768
- },
769
- "is-descriptor": {
770
- "version": "1.0.2",
771
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
772
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
773
- "dev": true,
774
- "requires": {
775
- "is-accessor-descriptor": "^1.0.0",
776
- "is-data-descriptor": "^1.0.0",
777
- "kind-of": "^6.0.2"
778
- }
779
- }
780
- }
781
- },
782
- "deprecated": {
783
- "version": "0.0.1",
784
- "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz",
785
- "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=",
786
- "dev": true
787
- },
788
- "detect-file": {
789
- "version": "1.0.0",
790
- "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
791
- "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=",
792
- "dev": true
793
- },
794
- "dom-serializer": {
795
- "version": "0.2.2",
796
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
797
- "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
798
- "dev": true,
799
- "requires": {
800
- "domelementtype": "^2.0.1",
801
- "entities": "^2.0.0"
802
- },
803
- "dependencies": {
804
- "domelementtype": {
805
- "version": "2.0.1",
806
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz",
807
- "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==",
808
- "dev": true
809
- },
810
- "entities": {
811
- "version": "2.0.0",
812
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz",
813
- "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==",
814
- "dev": true
815
- }
816
- }
817
- },
818
- "domelementtype": {
819
- "version": "1.3.1",
820
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
821
- "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
822
- "dev": true
823
- },
824
- "domhandler": {
825
- "version": "2.3.0",
826
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
827
- "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
828
- "dev": true,
829
- "requires": {
830
- "domelementtype": "1"
831
- }
832
- },
833
- "domutils": {
834
- "version": "1.5.1",
835
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
836
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
837
- "dev": true,
838
- "requires": {
839
- "dom-serializer": "0",
840
- "domelementtype": "1"
841
- }
842
- },
843
- "duplexer2": {
844
- "version": "0.0.2",
845
- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
846
- "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
847
- "dev": true,
848
- "requires": {
849
- "readable-stream": "~1.1.9"
850
- },
851
- "dependencies": {
852
- "isarray": {
853
- "version": "0.0.1",
854
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
855
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
856
- "dev": true
857
- },
858
- "readable-stream": {
859
- "version": "1.1.14",
860
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
861
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
862
- "dev": true,
863
- "requires": {
864
- "core-util-is": "~1.0.0",
865
- "inherits": "~2.0.1",
866
- "isarray": "0.0.1",
867
- "string_decoder": "~0.10.x"
868
- }
869
- },
870
- "string_decoder": {
871
- "version": "0.10.31",
872
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
873
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
874
- "dev": true
875
- }
876
- }
877
- },
878
- "duplexify": {
879
- "version": "3.7.1",
880
- "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
881
- "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
882
- "dev": true,
883
- "requires": {
884
- "end-of-stream": "^1.0.0",
885
- "inherits": "^2.0.1",
886
- "readable-stream": "^2.0.0",
887
- "stream-shift": "^1.0.0"
888
- }
889
- },
890
- "each-props": {
891
- "version": "1.3.2",
892
- "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz",
893
- "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==",
894
- "dev": true,
895
- "requires": {
896
- "is-plain-object": "^2.0.1",
897
- "object.defaults": "^1.1.0"
898
- }
899
- },
900
- "encoding": {
901
- "version": "0.1.13",
902
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
903
- "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
904
- "dev": true,
905
- "requires": {
906
- "iconv-lite": "^0.6.2"
907
- }
908
- },
909
- "end-of-stream": {
910
- "version": "1.4.1",
911
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
912
- "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
913
- "dev": true,
914
- "requires": {
915
- "once": "^1.4.0"
916
- }
917
- },
918
- "entities": {
919
- "version": "1.0.0",
920
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
921
- "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=",
922
- "dev": true
923
- },
924
- "error-ex": {
925
- "version": "1.3.2",
926
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
927
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
928
- "dev": true,
929
- "requires": {
930
- "is-arrayish": "^0.2.1"
931
- }
932
- },
933
- "es5-ext": {
934
- "version": "0.10.50",
935
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz",
936
- "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==",
937
- "dev": true,
938
- "requires": {
939
- "es6-iterator": "~2.0.3",
940
- "es6-symbol": "~3.1.1",
941
- "next-tick": "^1.0.0"
942
- }
943
- },
944
- "es6-iterator": {
945
- "version": "2.0.3",
946
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
947
- "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
948
- "dev": true,
949
- "requires": {
950
- "d": "1",
951
- "es5-ext": "^0.10.35",
952
- "es6-symbol": "^3.1.1"
953
- }
954
- },
955
- "es6-symbol": {
956
- "version": "3.1.1",
957
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
958
- "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
959
- "dev": true,
960
- "requires": {
961
- "d": "1",
962
- "es5-ext": "~0.10.14"
963
- }
964
- },
965
- "es6-weak-map": {
966
- "version": "2.0.3",
967
- "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
968
- "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
969
- "dev": true,
970
- "requires": {
971
- "d": "1",
972
- "es5-ext": "^0.10.46",
973
- "es6-iterator": "^2.0.3",
974
- "es6-symbol": "^3.1.1"
975
- }
976
- },
977
- "escape-string-regexp": {
978
- "version": "1.0.5",
979
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
980
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
981
- "dev": true
982
- },
983
- "exit": {
984
- "version": "0.1.2",
985
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
986
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
987
- "dev": true
988
- },
989
- "expand-brackets": {
990
- "version": "2.1.4",
991
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
992
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
993
- "dev": true,
994
- "requires": {
995
- "debug": "^2.3.3",
996
- "define-property": "^0.2.5",
997
- "extend-shallow": "^2.0.1",
998
- "posix-character-classes": "^0.1.0",
999
- "regex-not": "^1.0.0",
1000
- "snapdragon": "^0.8.1",
1001
- "to-regex": "^3.0.1"
1002
- },
1003
- "dependencies": {
1004
- "define-property": {
1005
- "version": "0.2.5",
1006
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1007
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1008
- "dev": true,
1009
- "requires": {
1010
- "is-descriptor": "^0.1.0"
1011
- }
1012
- },
1013
- "extend-shallow": {
1014
- "version": "2.0.1",
1015
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1016
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1017
- "dev": true,
1018
- "requires": {
1019
- "is-extendable": "^0.1.0"
1020
- }
1021
- }
1022
- }
1023
- },
1024
- "expand-tilde": {
1025
- "version": "2.0.2",
1026
- "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
1027
- "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
1028
- "dev": true,
1029
- "requires": {
1030
- "homedir-polyfill": "^1.0.1"
1031
- }
1032
- },
1033
- "extend": {
1034
- "version": "3.0.2",
1035
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
1036
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
1037
- "dev": true
1038
- },
1039
- "extend-shallow": {
1040
- "version": "3.0.2",
1041
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
1042
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
1043
- "dev": true,
1044
- "requires": {
1045
- "assign-symbols": "^1.0.0",
1046
- "is-extendable": "^1.0.1"
1047
- },
1048
- "dependencies": {
1049
- "is-extendable": {
1050
- "version": "1.0.1",
1051
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
1052
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
1053
- "dev": true,
1054
- "requires": {
1055
- "is-plain-object": "^2.0.4"
1056
- }
1057
- }
1058
- }
1059
- },
1060
- "extglob": {
1061
- "version": "2.0.4",
1062
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
1063
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
1064
- "dev": true,
1065
- "requires": {
1066
- "array-unique": "^0.3.2",
1067
- "define-property": "^1.0.0",
1068
- "expand-brackets": "^2.1.4",
1069
- "extend-shallow": "^2.0.1",
1070
- "fragment-cache": "^0.2.1",
1071
- "regex-not": "^1.0.0",
1072
- "snapdragon": "^0.8.1",
1073
- "to-regex": "^3.0.1"
1074
- },
1075
- "dependencies": {
1076
- "define-property": {
1077
- "version": "1.0.0",
1078
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
1079
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
1080
- "dev": true,
1081
- "requires": {
1082
- "is-descriptor": "^1.0.0"
1083
- }
1084
- },
1085
- "extend-shallow": {
1086
- "version": "2.0.1",
1087
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1088
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1089
- "dev": true,
1090
- "requires": {
1091
- "is-extendable": "^0.1.0"
1092
- }
1093
- },
1094
- "is-accessor-descriptor": {
1095
- "version": "1.0.0",
1096
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1097
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1098
- "dev": true,
1099
- "requires": {
1100
- "kind-of": "^6.0.0"
1101
- }
1102
- },
1103
- "is-data-descriptor": {
1104
- "version": "1.0.0",
1105
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1106
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1107
- "dev": true,
1108
- "requires": {
1109
- "kind-of": "^6.0.0"
1110
- }
1111
- },
1112
- "is-descriptor": {
1113
- "version": "1.0.2",
1114
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1115
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1116
- "dev": true,
1117
- "requires": {
1118
- "is-accessor-descriptor": "^1.0.0",
1119
- "is-data-descriptor": "^1.0.0",
1120
- "kind-of": "^6.0.2"
1121
- }
1122
- }
1123
- }
1124
- },
1125
- "fancy-log": {
1126
- "version": "1.3.3",
1127
- "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
1128
- "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
1129
- "dev": true,
1130
- "requires": {
1131
- "ansi-gray": "^0.1.1",
1132
- "color-support": "^1.1.3",
1133
- "parse-node-version": "^1.0.0",
1134
- "time-stamp": "^1.0.0"
1135
- }
1136
- },
1137
- "fill-range": {
1138
- "version": "4.0.0",
1139
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
1140
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
1141
- "dev": true,
1142
- "requires": {
1143
- "extend-shallow": "^2.0.1",
1144
- "is-number": "^3.0.0",
1145
- "repeat-string": "^1.6.1",
1146
- "to-regex-range": "^2.1.0"
1147
- },
1148
- "dependencies": {
1149
- "extend-shallow": {
1150
- "version": "2.0.1",
1151
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1152
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1153
- "dev": true,
1154
- "requires": {
1155
- "is-extendable": "^0.1.0"
1156
- }
1157
- }
1158
- }
1159
- },
1160
- "find-index": {
1161
- "version": "0.1.1",
1162
- "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz",
1163
- "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=",
1164
- "dev": true
1165
- },
1166
- "find-up": {
1167
- "version": "1.1.2",
1168
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
1169
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
1170
- "dev": true,
1171
- "requires": {
1172
- "path-exists": "^2.0.0",
1173
- "pinkie-promise": "^2.0.0"
1174
- }
1175
- },
1176
- "findup-sync": {
1177
- "version": "3.0.0",
1178
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz",
1179
- "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==",
1180
- "dev": true,
1181
- "requires": {
1182
- "detect-file": "^1.0.0",
1183
- "is-glob": "^4.0.0",
1184
- "micromatch": "^3.0.4",
1185
- "resolve-dir": "^1.0.1"
1186
- }
1187
- },
1188
- "fined": {
1189
- "version": "1.2.0",
1190
- "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz",
1191
- "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==",
1192
- "dev": true,
1193
- "requires": {
1194
- "expand-tilde": "^2.0.2",
1195
- "is-plain-object": "^2.0.3",
1196
- "object.defaults": "^1.1.0",
1197
- "object.pick": "^1.2.0",
1198
- "parse-filepath": "^1.0.1"
1199
- }
1200
- },
1201
- "first-chunk-stream": {
1202
- "version": "1.0.0",
1203
- "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
1204
- "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
1205
- "dev": true
1206
- },
1207
- "flagged-respawn": {
1208
- "version": "1.0.1",
1209
- "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
1210
- "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==",
1211
- "dev": true
1212
- },
1213
- "flush-write-stream": {
1214
- "version": "1.1.1",
1215
- "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
1216
- "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
1217
- "dev": true,
1218
- "requires": {
1219
- "inherits": "^2.0.3",
1220
- "readable-stream": "^2.3.6"
1221
- }
1222
- },
1223
- "for-in": {
1224
- "version": "1.0.2",
1225
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
1226
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
1227
- "dev": true
1228
- },
1229
- "for-own": {
1230
- "version": "1.0.0",
1231
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
1232
- "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
1233
- "dev": true,
1234
- "requires": {
1235
- "for-in": "^1.0.1"
1236
- }
1237
- },
1238
- "fragment-cache": {
1239
- "version": "0.2.1",
1240
- "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
1241
- "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
1242
- "dev": true,
1243
- "requires": {
1244
- "map-cache": "^0.2.2"
1245
- }
1246
- },
1247
- "fs": {
1248
- "version": "0.0.1-security",
1249
- "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
1250
- "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=",
1251
- "dev": true
1252
- },
1253
- "fs-mkdirp-stream": {
1254
- "version": "1.0.0",
1255
- "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz",
1256
- "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=",
1257
- "dev": true,
1258
- "requires": {
1259
- "graceful-fs": "^4.1.11",
1260
- "through2": "^2.0.3"
1261
- }
1262
- },
1263
- "fs.realpath": {
1264
- "version": "1.0.0",
1265
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1266
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
1267
- "dev": true
1268
- },
1269
- "fsevents": {
1270
- "version": "1.2.9",
1271
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
1272
- "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
1273
- "dev": true,
1274
- "optional": true,
1275
- "requires": {
1276
- "nan": "^2.12.1",
1277
- "node-pre-gyp": "^0.12.0"
1278
- },
1279
- "dependencies": {
1280
- "abbrev": {
1281
- "version": "1.1.1",
1282
- "bundled": true,
1283
- "dev": true,
1284
- "optional": true
1285
- },
1286
- "ansi-regex": {
1287
- "version": "2.1.1",
1288
- "bundled": true,
1289
- "dev": true,
1290
- "optional": true
1291
- },
1292
- "aproba": {
1293
- "version": "1.2.0",
1294
- "bundled": true,
1295
- "dev": true,
1296
- "optional": true
1297
- },
1298
- "are-we-there-yet": {
1299
- "version": "1.1.5",
1300
- "bundled": true,
1301
- "dev": true,
1302
- "optional": true,
1303
- "requires": {
1304
- "delegates": "^1.0.0",
1305
- "readable-stream": "^2.0.6"
1306
- }
1307
- },
1308
- "balanced-match": {
1309
- "version": "1.0.0",
1310
- "bundled": true,
1311
- "dev": true,
1312
- "optional": true
1313
- },
1314
- "brace-expansion": {
1315
- "version": "1.1.11",
1316
- "bundled": true,
1317
- "dev": true,
1318
- "optional": true,
1319
- "requires": {
1320
- "balanced-match": "^1.0.0",
1321
- "concat-map": "0.0.1"
1322
- }
1323
- },
1324
- "chownr": {
1325
- "version": "1.1.1",
1326
- "bundled": true,
1327
- "dev": true,
1328
- "optional": true
1329
- },
1330
- "code-point-at": {
1331
- "version": "1.1.0",
1332
- "bundled": true,
1333
- "dev": true,
1334
- "optional": true
1335
- },
1336
- "concat-map": {
1337
- "version": "0.0.1",
1338
- "bundled": true,
1339
- "dev": true,
1340
- "optional": true
1341
- },
1342
- "console-control-strings": {
1343
- "version": "1.1.0",
1344
- "bundled": true,
1345
- "dev": true,
1346
- "optional": true
1347
- },
1348
- "core-util-is": {
1349
- "version": "1.0.2",
1350
- "bundled": true,
1351
- "dev": true,
1352
- "optional": true
1353
- },
1354
- "debug": {
1355
- "version": "4.1.1",
1356
- "bundled": true,
1357
- "dev": true,
1358
- "optional": true,
1359
- "requires": {
1360
- "ms": "^2.1.1"
1361
- }
1362
- },
1363
- "deep-extend": {
1364
- "version": "0.6.0",
1365
- "bundled": true,
1366
- "dev": true,
1367
- "optional": true
1368
- },
1369
- "delegates": {
1370
- "version": "1.0.0",
1371
- "bundled": true,
1372
- "dev": true,
1373
- "optional": true
1374
- },
1375
- "detect-libc": {
1376
- "version": "1.0.3",
1377
- "bundled": true,
1378
- "dev": true,
1379
- "optional": true
1380
- },
1381
- "fs-minipass": {
1382
- "version": "1.2.5",
1383
- "bundled": true,
1384
- "dev": true,
1385
- "optional": true,
1386
- "requires": {
1387
- "minipass": "^2.2.1"
1388
- }
1389
- },
1390
- "fs.realpath": {
1391
- "version": "1.0.0",
1392
- "bundled": true,
1393
- "dev": true,
1394
- "optional": true
1395
- },
1396
- "gauge": {
1397
- "version": "2.7.4",
1398
- "bundled": true,
1399
- "dev": true,
1400
- "optional": true,
1401
- "requires": {
1402
- "aproba": "^1.0.3",
1403
- "console-control-strings": "^1.0.0",
1404
- "has-unicode": "^2.0.0",
1405
- "object-assign": "^4.1.0",
1406
- "signal-exit": "^3.0.0",
1407
- "string-width": "^1.0.1",
1408
- "strip-ansi": "^3.0.1",
1409
- "wide-align": "^1.1.0"
1410
- }
1411
- },
1412
- "glob": {
1413
- "version": "7.1.3",
1414
- "bundled": true,
1415
- "dev": true,
1416
- "optional": true,
1417
- "requires": {
1418
- "fs.realpath": "^1.0.0",
1419
- "inflight": "^1.0.4",
1420
- "inherits": "2",
1421
- "minimatch": "^3.0.4",
1422
- "once": "^1.3.0",
1423
- "path-is-absolute": "^1.0.0"
1424
- }
1425
- },
1426
- "has-unicode": {
1427
- "version": "2.0.1",
1428
- "bundled": true,
1429
- "dev": true,
1430
- "optional": true
1431
- },
1432
- "iconv-lite": {
1433
- "version": "0.4.24",
1434
- "bundled": true,
1435
- "dev": true,
1436
- "optional": true,
1437
- "requires": {
1438
- "safer-buffer": ">= 2.1.2 < 3"
1439
- }
1440
- },
1441
- "ignore-walk": {
1442
- "version": "3.0.1",
1443
- "bundled": true,
1444
- "dev": true,
1445
- "optional": true,
1446
- "requires": {
1447
- "minimatch": "^3.0.4"
1448
- }
1449
- },
1450
- "inflight": {
1451
- "version": "1.0.6",
1452
- "bundled": true,
1453
- "dev": true,
1454
- "optional": true,
1455
- "requires": {
1456
- "once": "^1.3.0",
1457
- "wrappy": "1"
1458
- }
1459
- },
1460
- "inherits": {
1461
- "version": "2.0.3",
1462
- "bundled": true,
1463
- "dev": true,
1464
- "optional": true
1465
- },
1466
- "is-fullwidth-code-point": {
1467
- "version": "1.0.0",
1468
- "bundled": true,
1469
- "dev": true,
1470
- "optional": true,
1471
- "requires": {
1472
- "number-is-nan": "^1.0.0"
1473
- }
1474
- },
1475
- "isarray": {
1476
- "version": "1.0.0",
1477
- "bundled": true,
1478
- "dev": true,
1479
- "optional": true
1480
- },
1481
- "minimatch": {
1482
- "version": "3.0.4",
1483
- "bundled": true,
1484
- "dev": true,
1485
- "optional": true,
1486
- "requires": {
1487
- "brace-expansion": "^1.1.7"
1488
- }
1489
- },
1490
- "minimist": {
1491
- "version": "0.0.8",
1492
- "bundled": true,
1493
- "dev": true,
1494
- "optional": true
1495
- },
1496
- "minipass": {
1497
- "version": "2.3.5",
1498
- "bundled": true,
1499
- "dev": true,
1500
- "optional": true,
1501
- "requires": {
1502
- "safe-buffer": "^5.1.2",
1503
- "yallist": "^3.0.0"
1504
- }
1505
- },
1506
- "minizlib": {
1507
- "version": "1.2.1",
1508
- "bundled": true,
1509
- "dev": true,
1510
- "optional": true,
1511
- "requires": {
1512
- "minipass": "^2.2.1"
1513
- }
1514
- },
1515
- "mkdirp": {
1516
- "version": "0.5.1",
1517
- "bundled": true,
1518
- "dev": true,
1519
- "optional": true,
1520
- "requires": {
1521
- "minimist": "0.0.8"
1522
- }
1523
- },
1524
- "ms": {
1525
- "version": "2.1.1",
1526
- "bundled": true,
1527
- "dev": true,
1528
- "optional": true
1529
- },
1530
- "needle": {
1531
- "version": "2.3.0",
1532
- "bundled": true,
1533
- "dev": true,
1534
- "optional": true,
1535
- "requires": {
1536
- "debug": "^4.1.0",
1537
- "iconv-lite": "^0.4.4",
1538
- "sax": "^1.2.4"
1539
- }
1540
- },
1541
- "node-pre-gyp": {
1542
- "version": "0.12.0",
1543
- "bundled": true,
1544
- "dev": true,
1545
- "optional": true,
1546
- "requires": {
1547
- "detect-libc": "^1.0.2",
1548
- "mkdirp": "^0.5.1",
1549
- "needle": "^2.2.1",
1550
- "nopt": "^4.0.1",
1551
- "npm-packlist": "^1.1.6",
1552
- "npmlog": "^4.0.2",
1553
- "rc": "^1.2.7",
1554
- "rimraf": "^2.6.1",
1555
- "semver": "^5.3.0",
1556
- "tar": "^4"
1557
- }
1558
- },
1559
- "nopt": {
1560
- "version": "4.0.1",
1561
- "bundled": true,
1562
- "dev": true,
1563
- "optional": true,
1564
- "requires": {
1565
- "abbrev": "1",
1566
- "osenv": "^0.1.4"
1567
- }
1568
- },
1569
- "npm-bundled": {
1570
- "version": "1.0.6",
1571
- "bundled": true,
1572
- "dev": true,
1573
- "optional": true
1574
- },
1575
- "npm-packlist": {
1576
- "version": "1.4.1",
1577
- "bundled": true,
1578
- "dev": true,
1579
- "optional": true,
1580
- "requires": {
1581
- "ignore-walk": "^3.0.1",
1582
- "npm-bundled": "^1.0.1"
1583
- }
1584
- },
1585
- "npmlog": {
1586
- "version": "4.1.2",
1587
- "bundled": true,
1588
- "dev": true,
1589
- "optional": true,
1590
- "requires": {
1591
- "are-we-there-yet": "~1.1.2",
1592
- "console-control-strings": "~1.1.0",
1593
- "gauge": "~2.7.3",
1594
- "set-blocking": "~2.0.0"
1595
- }
1596
- },
1597
- "number-is-nan": {
1598
- "version": "1.0.1",
1599
- "bundled": true,
1600
- "dev": true,
1601
- "optional": true
1602
- },
1603
- "object-assign": {
1604
- "version": "4.1.1",
1605
- "bundled": true,
1606
- "dev": true,
1607
- "optional": true
1608
- },
1609
- "once": {
1610
- "version": "1.4.0",
1611
- "bundled": true,
1612
- "dev": true,
1613
- "optional": true,
1614
- "requires": {
1615
- "wrappy": "1"
1616
- }
1617
- },
1618
- "os-homedir": {
1619
- "version": "1.0.2",
1620
- "bundled": true,
1621
- "dev": true,
1622
- "optional": true
1623
- },
1624
- "os-tmpdir": {
1625
- "version": "1.0.2",
1626
- "bundled": true,
1627
- "dev": true,
1628
- "optional": true
1629
- },
1630
- "osenv": {
1631
- "version": "0.1.5",
1632
- "bundled": true,
1633
- "dev": true,
1634
- "optional": true,
1635
- "requires": {
1636
- "os-homedir": "^1.0.0",
1637
- "os-tmpdir": "^1.0.0"
1638
- }
1639
- },
1640
- "path-is-absolute": {
1641
- "version": "1.0.1",
1642
- "bundled": true,
1643
- "dev": true,
1644
- "optional": true
1645
- },
1646
- "process-nextick-args": {
1647
- "version": "2.0.0",
1648
- "bundled": true,
1649
- "dev": true,
1650
- "optional": true
1651
- },
1652
- "rc": {
1653
- "version": "1.2.8",
1654
- "bundled": true,
1655
- "dev": true,
1656
- "optional": true,
1657
- "requires": {
1658
- "deep-extend": "^0.6.0",
1659
- "ini": "~1.3.0",
1660
- "minimist": "^1.2.0",
1661
- "strip-json-comments": "~2.0.1"
1662
- },
1663
- "dependencies": {
1664
- "minimist": {
1665
- "version": "1.2.0",
1666
- "bundled": true,
1667
- "dev": true,
1668
- "optional": true
1669
- }
1670
- }
1671
- },
1672
- "readable-stream": {
1673
- "version": "2.3.6",
1674
- "bundled": true,
1675
- "dev": true,
1676
- "optional": true,
1677
- "requires": {
1678
- "core-util-is": "~1.0.0",
1679
- "inherits": "~2.0.3",
1680
- "isarray": "~1.0.0",
1681
- "process-nextick-args": "~2.0.0",
1682
- "safe-buffer": "~5.1.1",
1683
- "string_decoder": "~1.1.1",
1684
- "util-deprecate": "~1.0.1"
1685
- }
1686
- },
1687
- "rimraf": {
1688
- "version": "2.6.3",
1689
- "bundled": true,
1690
- "dev": true,
1691
- "optional": true,
1692
- "requires": {
1693
- "glob": "^7.1.3"
1694
- }
1695
- },
1696
- "safe-buffer": {
1697
- "version": "5.1.2",
1698
- "bundled": true,
1699
- "dev": true,
1700
- "optional": true
1701
- },
1702
- "safer-buffer": {
1703
- "version": "2.1.2",
1704
- "bundled": true,
1705
- "dev": true,
1706
- "optional": true
1707
- },
1708
- "sax": {
1709
- "version": "1.2.4",
1710
- "bundled": true,
1711
- "dev": true,
1712
- "optional": true
1713
- },
1714
- "semver": {
1715
- "version": "5.7.0",
1716
- "bundled": true,
1717
- "dev": true,
1718
- "optional": true
1719
- },
1720
- "set-blocking": {
1721
- "version": "2.0.0",
1722
- "bundled": true,
1723
- "dev": true,
1724
- "optional": true
1725
- },
1726
- "signal-exit": {
1727
- "version": "3.0.2",
1728
- "bundled": true,
1729
- "dev": true,
1730
- "optional": true
1731
- },
1732
- "string-width": {
1733
- "version": "1.0.2",
1734
- "bundled": true,
1735
- "dev": true,
1736
- "optional": true,
1737
- "requires": {
1738
- "code-point-at": "^1.0.0",
1739
- "is-fullwidth-code-point": "^1.0.0",
1740
- "strip-ansi": "^3.0.0"
1741
- }
1742
- },
1743
- "string_decoder": {
1744
- "version": "1.1.1",
1745
- "bundled": true,
1746
- "dev": true,
1747
- "optional": true,
1748
- "requires": {
1749
- "safe-buffer": "~5.1.0"
1750
- }
1751
- },
1752
- "strip-ansi": {
1753
- "version": "3.0.1",
1754
- "bundled": true,
1755
- "dev": true,
1756
- "optional": true,
1757
- "requires": {
1758
- "ansi-regex": "^2.0.0"
1759
- }
1760
- },
1761
- "strip-json-comments": {
1762
- "version": "2.0.1",
1763
- "bundled": true,
1764
- "dev": true,
1765
- "optional": true
1766
- },
1767
- "tar": {
1768
- "version": "4.4.8",
1769
- "bundled": true,
1770
- "dev": true,
1771
- "optional": true,
1772
- "requires": {
1773
- "chownr": "^1.1.1",
1774
- "fs-minipass": "^1.2.5",
1775
- "minipass": "^2.3.4",
1776
- "minizlib": "^1.1.1",
1777
- "mkdirp": "^0.5.0",
1778
- "safe-buffer": "^5.1.2",
1779
- "yallist": "^3.0.2"
1780
- }
1781
- },
1782
- "util-deprecate": {
1783
- "version": "1.0.2",
1784
- "bundled": true,
1785
- "dev": true,
1786
- "optional": true
1787
- },
1788
- "wide-align": {
1789
- "version": "1.1.3",
1790
- "bundled": true,
1791
- "dev": true,
1792
- "optional": true,
1793
- "requires": {
1794
- "string-width": "^1.0.2 || 2"
1795
- }
1796
- },
1797
- "wrappy": {
1798
- "version": "1.0.2",
1799
- "bundled": true,
1800
- "dev": true,
1801
- "optional": true
1802
- },
1803
- "yallist": {
1804
- "version": "3.0.3",
1805
- "bundled": true,
1806
- "dev": true,
1807
- "optional": true
1808
- }
1809
- }
1810
- },
1811
- "function-bind": {
1812
- "version": "1.1.1",
1813
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1814
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1815
- "dev": true
1816
- },
1817
- "gaze": {
1818
- "version": "0.5.2",
1819
- "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz",
1820
- "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=",
1821
- "dev": true,
1822
- "requires": {
1823
- "globule": "~0.1.0"
1824
- }
1825
- },
1826
- "get-caller-file": {
1827
- "version": "1.0.3",
1828
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
1829
- "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
1830
- "dev": true
1831
- },
1832
- "get-value": {
1833
- "version": "2.0.6",
1834
- "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
1835
- "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
1836
- "dev": true
1837
- },
1838
- "gettext-parser": {
1839
- "version": "4.0.4",
1840
- "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-4.0.4.tgz",
1841
- "integrity": "sha512-VDZEeOIYd0veZXt5iAn0SS3I0Fz14fJw+59avRNa7VIslEDriRLxcfrBd/xeQyOcm6nyS4uuufxm2iw88qirAg==",
1842
- "dev": true,
1843
- "requires": {
1844
- "content-type": "^1.0.4",
1845
- "encoding": "^0.1.13",
1846
- "readable-stream": "^3.6.0",
1847
- "safe-buffer": "^5.2.1"
1848
- },
1849
- "dependencies": {
1850
- "readable-stream": {
1851
- "version": "3.6.0",
1852
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
1853
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
1854
- "dev": true,
1855
- "requires": {
1856
- "inherits": "^2.0.3",
1857
- "string_decoder": "^1.1.1",
1858
- "util-deprecate": "^1.0.1"
1859
- }
1860
- },
1861
- "safe-buffer": {
1862
- "version": "5.2.1",
1863
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1864
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1865
- "dev": true
1866
- }
1867
- }
1868
- },
1869
- "glob": {
1870
- "version": "7.1.4",
1871
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
1872
- "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
1873
- "dev": true,
1874
- "requires": {
1875
- "fs.realpath": "^1.0.0",
1876
- "inflight": "^1.0.4",
1877
- "inherits": "2",
1878
- "minimatch": "^3.0.4",
1879
- "once": "^1.3.0",
1880
- "path-is-absolute": "^1.0.0"
1881
- }
1882
- },
1883
- "glob-parent": {
1884
- "version": "3.1.0",
1885
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
1886
- "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
1887
- "dev": true,
1888
- "requires": {
1889
- "is-glob": "^3.1.0",
1890
- "path-dirname": "^1.0.0"
1891
- },
1892
- "dependencies": {
1893
- "is-glob": {
1894
- "version": "3.1.0",
1895
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
1896
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
1897
- "dev": true,
1898
- "requires": {
1899
- "is-extglob": "^2.1.0"
1900
- }
1901
- }
1902
- }
1903
- },
1904
- "glob-stream": {
1905
- "version": "6.1.0",
1906
- "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
1907
- "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=",
1908
- "dev": true,
1909
- "requires": {
1910
- "extend": "^3.0.0",
1911
- "glob": "^7.1.1",
1912
- "glob-parent": "^3.1.0",
1913
- "is-negated-glob": "^1.0.0",
1914
- "ordered-read-streams": "^1.0.0",
1915
- "pumpify": "^1.3.5",
1916
- "readable-stream": "^2.1.5",
1917
- "remove-trailing-separator": "^1.0.1",
1918
- "to-absolute-glob": "^2.0.0",
1919
- "unique-stream": "^2.0.2"
1920
- }
1921
- },
1922
- "glob-watcher": {
1923
- "version": "5.0.3",
1924
- "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz",
1925
- "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==",
1926
- "dev": true,
1927
- "requires": {
1928
- "anymatch": "^2.0.0",
1929
- "async-done": "^1.2.0",
1930
- "chokidar": "^2.0.0",
1931
- "is-negated-glob": "^1.0.0",
1932
- "just-debounce": "^1.0.0",
1933
- "object.defaults": "^1.1.0"
1934
- }
1935
- },
1936
- "glob2base": {
1937
- "version": "0.0.12",
1938
- "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz",
1939
- "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=",
1940
- "dev": true,
1941
- "requires": {
1942
- "find-index": "^0.1.1"
1943
- }
1944
- },
1945
- "global-modules": {
1946
- "version": "1.0.0",
1947
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
1948
- "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
1949
- "dev": true,
1950
- "requires": {
1951
- "global-prefix": "^1.0.1",
1952
- "is-windows": "^1.0.1",
1953
- "resolve-dir": "^1.0.0"
1954
- }
1955
- },
1956
- "global-prefix": {
1957
- "version": "1.0.2",
1958
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
1959
- "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
1960
- "dev": true,
1961
- "requires": {
1962
- "expand-tilde": "^2.0.2",
1963
- "homedir-polyfill": "^1.0.1",
1964
- "ini": "^1.3.4",
1965
- "is-windows": "^1.0.1",
1966
- "which": "^1.2.14"
1967
- }
1968
- },
1969
- "globule": {
1970
- "version": "0.1.0",
1971
- "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz",
1972
- "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=",
1973
- "dev": true,
1974
- "requires": {
1975
- "glob": "~3.1.21",
1976
- "lodash": "~1.0.1",
1977
- "minimatch": "~0.2.11"
1978
- },
1979
- "dependencies": {
1980
- "glob": {
1981
- "version": "3.1.21",
1982
- "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
1983
- "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
1984
- "dev": true,
1985
- "requires": {
1986
- "graceful-fs": "~1.2.0",
1987
- "inherits": "1",
1988
- "minimatch": "~0.2.11"
1989
- }
1990
- },
1991
- "graceful-fs": {
1992
- "version": "1.2.3",
1993
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
1994
- "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
1995
- "dev": true
1996
- },
1997
- "inherits": {
1998
- "version": "1.0.2",
1999
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
2000
- "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
2001
- "dev": true
2002
- },
2003
- "lodash": {
2004
- "version": "1.0.2",
2005
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
2006
- "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=",
2007
- "dev": true
2008
- },
2009
- "minimatch": {
2010
- "version": "0.2.14",
2011
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
2012
- "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
2013
- "dev": true,
2014
- "requires": {
2015
- "lru-cache": "2",
2016
- "sigmund": "~1.0.0"
2017
- }
2018
- }
2019
- }
2020
- },
2021
- "glogg": {
2022
- "version": "1.0.2",
2023
- "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz",
2024
- "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==",
2025
- "dev": true,
2026
- "requires": {
2027
- "sparkles": "^1.0.0"
2028
- }
2029
- },
2030
- "graceful-fs": {
2031
- "version": "4.2.2",
2032
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
2033
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
2034
- "dev": true
2035
- },
2036
- "gulp": {
2037
- "version": "4.0.2",
2038
- "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz",
2039
- "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==",
2040
- "dev": true,
2041
- "requires": {
2042
- "glob-watcher": "^5.0.3",
2043
- "gulp-cli": "^2.2.0",
2044
- "undertaker": "^1.2.1",
2045
- "vinyl-fs": "^3.0.0"
2046
- },
2047
- "dependencies": {
2048
- "gulp-cli": {
2049
- "version": "2.2.0",
2050
- "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz",
2051
- "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==",
2052
- "dev": true,
2053
- "requires": {
2054
- "ansi-colors": "^1.0.1",
2055
- "archy": "^1.0.0",
2056
- "array-sort": "^1.0.0",
2057
- "color-support": "^1.1.3",
2058
- "concat-stream": "^1.6.0",
2059
- "copy-props": "^2.0.1",
2060
- "fancy-log": "^1.3.2",
2061
- "gulplog": "^1.0.0",
2062
- "interpret": "^1.1.0",
2063
- "isobject": "^3.0.1",
2064
- "liftoff": "^3.1.0",
2065
- "matchdep": "^2.0.0",
2066
- "mute-stdout": "^1.0.0",
2067
- "pretty-hrtime": "^1.0.0",
2068
- "replace-homedir": "^1.0.0",
2069
- "semver-greatest-satisfied-range": "^1.1.0",
2070
- "v8flags": "^3.0.1",
2071
- "yargs": "^7.1.0"
2072
- }
2073
- }
2074
- }
2075
- },
2076
- "gulp-clean-css": {
2077
- "version": "4.2.0",
2078
- "resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-4.2.0.tgz",
2079
- "integrity": "sha512-r4zQsSOAK2UYUL/ipkAVCTRg/2CLZ2A+oPVORopBximRksJ6qy3EX1KGrIWT4ZrHxz3Hlobb1yyJtqiut7DNjA==",
2080
- "dev": true,
2081
- "requires": {
2082
- "clean-css": "4.2.1",
2083
- "plugin-error": "1.0.1",
2084
- "through2": "3.0.1",
2085
- "vinyl-sourcemaps-apply": "0.2.1"
2086
- },
2087
- "dependencies": {
2088
- "through2": {
2089
- "version": "3.0.1",
2090
- "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
2091
- "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
2092
- "dev": true,
2093
- "requires": {
2094
- "readable-stream": "2 || 3"
2095
- }
2096
- }
2097
- }
2098
- },
2099
- "gulp-jshint": {
2100
- "version": "2.1.0",
2101
- "resolved": "https://registry.npmjs.org/gulp-jshint/-/gulp-jshint-2.1.0.tgz",
2102
- "integrity": "sha512-sP3NK8Y/1e58O0PH9t6s7DAr/lKDSUbIY207oWSeufM6/VclB7jJrIBcPCsyhrFTCDUl9DauePbt6VqP2vPM5w==",
2103
- "dev": true,
2104
- "requires": {
2105
- "lodash": "^4.12.0",
2106
- "minimatch": "^3.0.3",
2107
- "plugin-error": "^0.1.2",
2108
- "rcloader": "^0.2.2",
2109
- "through2": "^2.0.0"
2110
- },
2111
- "dependencies": {
2112
- "arr-diff": {
2113
- "version": "1.1.0",
2114
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz",
2115
- "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=",
2116
- "dev": true,
2117
- "requires": {
2118
- "arr-flatten": "^1.0.1",
2119
- "array-slice": "^0.2.3"
2120
- }
2121
- },
2122
- "arr-union": {
2123
- "version": "2.1.0",
2124
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz",
2125
- "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=",
2126
- "dev": true
2127
- },
2128
- "array-slice": {
2129
- "version": "0.2.3",
2130
- "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
2131
- "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=",
2132
- "dev": true
2133
- },
2134
- "extend-shallow": {
2135
- "version": "1.1.4",
2136
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz",
2137
- "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=",
2138
- "dev": true,
2139
- "requires": {
2140
- "kind-of": "^1.1.0"
2141
- }
2142
- },
2143
- "kind-of": {
2144
- "version": "1.1.0",
2145
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz",
2146
- "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=",
2147
- "dev": true
2148
- },
2149
- "plugin-error": {
2150
- "version": "0.1.2",
2151
- "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz",
2152
- "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=",
2153
- "dev": true,
2154
- "requires": {
2155
- "ansi-cyan": "^0.1.1",
2156
- "ansi-red": "^0.1.1",
2157
- "arr-diff": "^1.0.1",
2158
- "arr-union": "^2.0.1",
2159
- "extend-shallow": "^1.1.2"
2160
- }
2161
- }
2162
- }
2163
- },
2164
- "gulp-po-sync": {
2165
- "version": "0.1.0",
2166
- "resolved": "https://registry.npmjs.org/gulp-po-sync/-/gulp-po-sync-0.1.0.tgz",
2167
- "integrity": "sha512-XP+jPOmcEV7T1QeY1y6nZoKg8K4VeT3NGmCEGRqEOWbnGTMurEO+OqrXDWrTxlXEfRCjpeP8xwxbVsXfHwkRTw==",
2168
- "dev": true,
2169
- "requires": {
2170
- "fancy-log": "^1.3.3",
2171
- "fs": "0.0.1-security",
2172
- "gettext-parser": "^4.0.0",
2173
- "map-stream": "0.0.7"
2174
- }
2175
- },
2176
- "gulp-po2mo": {
2177
- "version": "1.0.3",
2178
- "resolved": "https://registry.npmjs.org/gulp-po2mo/-/gulp-po2mo-1.0.3.tgz",
2179
- "integrity": "sha1-R5Hyh7PG000TYUHRp/q/orerKdg=",
2180
- "dev": true,
2181
- "requires": {
2182
- "gettext-parser": "^1.3.0",
2183
- "gulp": "^3.9.1",
2184
- "map-stream": "0.0.7"
2185
- },
2186
- "dependencies": {
2187
- "clone": {
2188
- "version": "0.2.0",
2189
- "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
2190
- "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
2191
- "dev": true
2192
- },
2193
- "clone-stats": {
2194
- "version": "0.0.1",
2195
- "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
2196
- "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
2197
- "dev": true
2198
- },
2199
- "findup-sync": {
2200
- "version": "2.0.0",
2201
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
2202
- "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
2203
- "dev": true,
2204
- "requires": {
2205
- "detect-file": "^1.0.0",
2206
- "is-glob": "^3.1.0",
2207
- "micromatch": "^3.0.4",
2208
- "resolve-dir": "^1.0.1"
2209
- }
2210
- },
2211
- "gettext-parser": {
2212
- "version": "1.4.0",
2213
- "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz",
2214
- "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==",
2215
- "dev": true,
2216
- "requires": {
2217
- "encoding": "^0.1.12",
2218
- "safe-buffer": "^5.1.1"
2219
- }
2220
- },
2221
- "glob": {
2222
- "version": "4.5.3",
2223
- "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
2224
- "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
2225
- "dev": true,
2226
- "requires": {
2227
- "inflight": "^1.0.4",
2228
- "inherits": "2",
2229
- "minimatch": "^2.0.1",
2230
- "once": "^1.3.0"
2231
- }
2232
- },
2233
- "glob-stream": {
2234
- "version": "3.1.18",
2235
- "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz",
2236
- "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=",
2237
- "dev": true,
2238
- "requires": {
2239
- "glob": "^4.3.1",
2240
- "glob2base": "^0.0.12",
2241
- "minimatch": "^2.0.1",
2242
- "ordered-read-streams": "^0.1.0",
2243
- "through2": "^0.6.1",
2244
- "unique-stream": "^1.0.0"
2245
- }
2246
- },
2247
- "glob-watcher": {
2248
- "version": "0.0.6",
2249
- "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz",
2250
- "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=",
2251
- "dev": true,
2252
- "requires": {
2253
- "gaze": "^0.5.1"
2254
- }
2255
- },
2256
- "graceful-fs": {
2257
- "version": "3.0.12",
2258
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.12.tgz",
2259
- "integrity": "sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==",
2260
- "dev": true,
2261
- "requires": {
2262
- "natives": "^1.1.3"
2263
- }
2264
- },
2265
- "gulp": {
2266
- "version": "3.9.1",
2267
- "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz",
2268
- "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=",
2269
- "dev": true,
2270
- "requires": {
2271
- "archy": "^1.0.0",
2272
- "chalk": "^1.0.0",
2273
- "deprecated": "^0.0.1",
2274
- "gulp-util": "^3.0.0",
2275
- "interpret": "^1.0.0",
2276
- "liftoff": "^2.1.0",
2277
- "minimist": "^1.1.0",
2278
- "orchestrator": "^0.3.0",
2279
- "pretty-hrtime": "^1.0.0",
2280
- "semver": "^4.1.0",
2281
- "tildify": "^1.0.0",
2282
- "v8flags": "^2.0.2",
2283
- "vinyl-fs": "^0.3.0"
2284
- }
2285
- },
2286
- "is-glob": {
2287
- "version": "3.1.0",
2288
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
2289
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
2290
- "dev": true,
2291
- "requires": {
2292
- "is-extglob": "^2.1.0"
2293
- }
2294
- },
2295
- "isarray": {
2296
- "version": "0.0.1",
2297
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
2298
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
2299
- "dev": true
2300
- },
2301
- "liftoff": {
2302
- "version": "2.5.0",
2303
- "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz",
2304
- "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=",
2305
- "dev": true,
2306
- "requires": {
2307
- "extend": "^3.0.0",
2308
- "findup-sync": "^2.0.0",
2309
- "fined": "^1.0.1",
2310
- "flagged-respawn": "^1.0.0",
2311
- "is-plain-object": "^2.0.4",
2312
- "object.map": "^1.0.0",
2313
- "rechoir": "^0.6.2",
2314
- "resolve": "^1.1.7"
2315
- }
2316
- },
2317
- "minimatch": {
2318
- "version": "2.0.10",
2319
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
2320
- "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
2321
- "dev": true,
2322
- "requires": {
2323
- "brace-expansion": "^1.0.0"
2324
- }
2325
- },
2326
- "ordered-read-streams": {
2327
- "version": "0.1.0",
2328
- "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz",
2329
- "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=",
2330
- "dev": true
2331
- },
2332
- "readable-stream": {
2333
- "version": "1.0.34",
2334
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
2335
- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
2336
- "dev": true,
2337
- "requires": {
2338
- "core-util-is": "~1.0.0",
2339
- "inherits": "~2.0.1",
2340
- "isarray": "0.0.1",
2341
- "string_decoder": "~0.10.x"
2342
- }
2343
- },
2344
- "semver": {
2345
- "version": "4.3.6",
2346
- "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
2347
- "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
2348
- "dev": true
2349
- },
2350
- "string_decoder": {
2351
- "version": "0.10.31",
2352
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
2353
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
2354
- "dev": true
2355
- },
2356
- "strip-bom": {
2357
- "version": "1.0.0",
2358
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz",
2359
- "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=",
2360
- "dev": true,
2361
- "requires": {
2362
- "first-chunk-stream": "^1.0.0",
2363
- "is-utf8": "^0.2.0"
2364
- }
2365
- },
2366
- "through2": {
2367
- "version": "0.6.5",
2368
- "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
2369
- "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
2370
- "dev": true,
2371
- "requires": {
2372
- "readable-stream": ">=1.0.33-1 <1.1.0-0",
2373
- "xtend": ">=4.0.0 <4.1.0-0"
2374
- }
2375
- },
2376
- "unique-stream": {
2377
- "version": "1.0.0",
2378
- "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz",
2379
- "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=",
2380
- "dev": true
2381
- },
2382
- "v8flags": {
2383
- "version": "2.1.1",
2384
- "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
2385
- "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
2386
- "dev": true,
2387
- "requires": {
2388
- "user-home": "^1.1.1"
2389
- }
2390
- },
2391
- "vinyl": {
2392
- "version": "0.4.6",
2393
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
2394
- "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
2395
- "dev": true,
2396
- "requires": {
2397
- "clone": "^0.2.0",
2398
- "clone-stats": "^0.0.1"
2399
- }
2400
- },
2401
- "vinyl-fs": {
2402
- "version": "0.3.14",
2403
- "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz",
2404
- "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=",
2405
- "dev": true,
2406
- "requires": {
2407
- "defaults": "^1.0.0",
2408
- "glob-stream": "^3.1.5",
2409
- "glob-watcher": "^0.0.6",
2410
- "graceful-fs": "^3.0.0",
2411
- "mkdirp": "^0.5.0",
2412
- "strip-bom": "^1.0.0",
2413
- "through2": "^0.6.1",
2414
- "vinyl": "^0.4.0"
2415
- }
2416
- }
2417
- }
2418
- },
2419
- "gulp-uglify-es": {
2420
- "version": "2.0.0",
2421
- "resolved": "https://registry.npmjs.org/gulp-uglify-es/-/gulp-uglify-es-2.0.0.tgz",
2422
- "integrity": "sha512-00KkawzjWdjPo1YfD1FXKijVxZkyr6YSwJ2cJQgD1fNKFZCFPNjGc5sTyzyW8tZns8FmZafgHMrg7LUDNvIQ5A==",
2423
- "dev": true,
2424
- "requires": {
2425
- "o-stream": "^0.2.2",
2426
- "plugin-error": "^1.0.1",
2427
- "terser": "^4.3.9",
2428
- "vinyl": "^2.2.0",
2429
- "vinyl-sourcemaps-apply": "^0.2.1"
2430
- }
2431
- },
2432
- "gulp-util": {
2433
- "version": "3.0.8",
2434
- "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
2435
- "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
2436
- "dev": true,
2437
- "requires": {
2438
- "array-differ": "^1.0.0",
2439
- "array-uniq": "^1.0.2",
2440
- "beeper": "^1.0.0",
2441
- "chalk": "^1.0.0",
2442
- "dateformat": "^2.0.0",
2443
- "fancy-log": "^1.1.0",
2444
- "gulplog": "^1.0.0",
2445
- "has-gulplog": "^0.1.0",
2446
- "lodash._reescape": "^3.0.0",
2447
- "lodash._reevaluate": "^3.0.0",
2448
- "lodash._reinterpolate": "^3.0.0",
2449
- "lodash.template": "^3.0.0",
2450
- "minimist": "^1.1.0",
2451
- "multipipe": "^0.1.2",
2452
- "object-assign": "^3.0.0",
2453
- "replace-ext": "0.0.1",
2454
- "through2": "^2.0.0",
2455
- "vinyl": "^0.5.0"
2456
- },
2457
- "dependencies": {
2458
- "clone": {
2459
- "version": "1.0.4",
2460
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
2461
- "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
2462
- "dev": true
2463
- },
2464
- "clone-stats": {
2465
- "version": "0.0.1",
2466
- "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
2467
- "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
2468
- "dev": true
2469
- },
2470
- "replace-ext": {
2471
- "version": "0.0.1",
2472
- "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
2473
- "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
2474
- "dev": true
2475
- },
2476
- "vinyl": {
2477
- "version": "0.5.3",
2478
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
2479
- "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
2480
- "dev": true,
2481
- "requires": {
2482
- "clone": "^1.0.0",
2483
- "clone-stats": "^0.0.1",
2484
- "replace-ext": "0.0.1"
2485
- }
2486
- }
2487
- }
2488
- },
2489
- "gulp-wp-pot": {
2490
- "version": "2.3.5",
2491
- "resolved": "https://registry.npmjs.org/gulp-wp-pot/-/gulp-wp-pot-2.3.5.tgz",
2492
- "integrity": "sha512-lRZZkuEBrYTPj3j9iOWK3YdtcRH857gxMMLKoboVjtY8G5l7iOxsyza50rsA8XvmPQ8hlSuMNA0zd17oT/ybqQ==",
2493
- "dev": true,
2494
- "requires": {
2495
- "plugin-error": "^1.0.1",
2496
- "through2": "^3.0.1",
2497
- "vinyl": "^2.2.0",
2498
- "wp-pot": "^1.7.1"
2499
- },
2500
- "dependencies": {
2501
- "through2": {
2502
- "version": "3.0.1",
2503
- "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
2504
- "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
2505
- "dev": true,
2506
- "requires": {
2507
- "readable-stream": "2 || 3"
2508
- }
2509
- }
2510
- }
2511
- },
2512
- "gulplog": {
2513
- "version": "1.0.0",
2514
- "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
2515
- "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
2516
- "dev": true,
2517
- "requires": {
2518
- "glogg": "^1.0.0"
2519
- }
2520
- },
2521
- "has-ansi": {
2522
- "version": "2.0.0",
2523
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
2524
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
2525
- "dev": true,
2526
- "requires": {
2527
- "ansi-regex": "^2.0.0"
2528
- }
2529
- },
2530
- "has-gulplog": {
2531
- "version": "0.1.0",
2532
- "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
2533
- "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
2534
- "dev": true,
2535
- "requires": {
2536
- "sparkles": "^1.0.0"
2537
- }
2538
- },
2539
- "has-symbols": {
2540
- "version": "1.0.0",
2541
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
2542
- "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
2543
- "dev": true
2544
- },
2545
- "has-value": {
2546
- "version": "1.0.0",
2547
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
2548
- "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
2549
- "dev": true,
2550
- "requires": {
2551
- "get-value": "^2.0.6",
2552
- "has-values": "^1.0.0",
2553
- "isobject": "^3.0.0"
2554
- }
2555
- },
2556
- "has-values": {
2557
- "version": "1.0.0",
2558
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
2559
- "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
2560
- "dev": true,
2561
- "requires": {
2562
- "is-number": "^3.0.0",
2563
- "kind-of": "^4.0.0"
2564
- },
2565
- "dependencies": {
2566
- "kind-of": {
2567
- "version": "4.0.0",
2568
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
2569
- "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
2570
- "dev": true,
2571
- "requires": {
2572
- "is-buffer": "^1.1.5"
2573
- }
2574
- }
2575
- }
2576
- },
2577
- "homedir-polyfill": {
2578
- "version": "1.0.3",
2579
- "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
2580
- "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
2581
- "dev": true,
2582
- "requires": {
2583
- "parse-passwd": "^1.0.0"
2584
- }
2585
- },
2586
- "hosted-git-info": {
2587
- "version": "2.8.4",
2588
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz",
2589
- "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==",
2590
- "dev": true
2591
- },
2592
- "htmlparser2": {
2593
- "version": "3.8.3",
2594
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
2595
- "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
2596
- "dev": true,
2597
- "requires": {
2598
- "domelementtype": "1",
2599
- "domhandler": "2.3",
2600
- "domutils": "1.5",
2601
- "entities": "1.0",
2602
- "readable-stream": "1.1"
2603
- },
2604
- "dependencies": {
2605
- "isarray": {
2606
- "version": "0.0.1",
2607
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
2608
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
2609
- "dev": true
2610
- },
2611
- "readable-stream": {
2612
- "version": "1.1.14",
2613
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
2614
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
2615
- "dev": true,
2616
- "requires": {
2617
- "core-util-is": "~1.0.0",
2618
- "inherits": "~2.0.1",
2619
- "isarray": "0.0.1",
2620
- "string_decoder": "~0.10.x"
2621
- }
2622
- },
2623
- "string_decoder": {
2624
- "version": "0.10.31",
2625
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
2626
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
2627
- "dev": true
2628
- }
2629
- }
2630
- },
2631
- "iconv-lite": {
2632
- "version": "0.6.2",
2633
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz",
2634
- "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==",
2635
- "dev": true,
2636
- "requires": {
2637
- "safer-buffer": ">= 2.1.2 < 3.0.0"
2638
- }
2639
- },
2640
- "inflight": {
2641
- "version": "1.0.6",
2642
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2643
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2644
- "dev": true,
2645
- "requires": {
2646
- "once": "^1.3.0",
2647
- "wrappy": "1"
2648
- }
2649
- },
2650
- "inherits": {
2651
- "version": "2.0.4",
2652
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2653
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
2654
- "dev": true
2655
- },
2656
- "ini": {
2657
- "version": "1.3.7",
2658
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
2659
- "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==",
2660
- "dev": true
2661
- },
2662
- "interpret": {
2663
- "version": "1.2.0",
2664
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
2665
- "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
2666
- "dev": true
2667
- },
2668
- "invert-kv": {
2669
- "version": "1.0.0",
2670
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
2671
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
2672
- "dev": true
2673
- },
2674
- "is-absolute": {
2675
- "version": "1.0.0",
2676
- "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
2677
- "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
2678
- "dev": true,
2679
- "requires": {
2680
- "is-relative": "^1.0.0",
2681
- "is-windows": "^1.0.1"
2682
- }
2683
- },
2684
- "is-accessor-descriptor": {
2685
- "version": "0.1.6",
2686
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
2687
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
2688
- "dev": true,
2689
- "requires": {
2690
- "kind-of": "^3.0.2"
2691
- },
2692
- "dependencies": {
2693
- "kind-of": {
2694
- "version": "3.2.2",
2695
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2696
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2697
- "dev": true,
2698
- "requires": {
2699
- "is-buffer": "^1.1.5"
2700
- }
2701
- }
2702
- }
2703
- },
2704
- "is-arrayish": {
2705
- "version": "0.2.1",
2706
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
2707
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
2708
- "dev": true
2709
- },
2710
- "is-binary-path": {
2711
- "version": "1.0.1",
2712
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
2713
- "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
2714
- "dev": true,
2715
- "requires": {
2716
- "binary-extensions": "^1.0.0"
2717
- }
2718
- },
2719
- "is-buffer": {
2720
- "version": "1.1.6",
2721
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
2722
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
2723
- "dev": true
2724
- },
2725
- "is-data-descriptor": {
2726
- "version": "0.1.4",
2727
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
2728
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
2729
- "dev": true,
2730
- "requires": {
2731
- "kind-of": "^3.0.2"
2732
- },
2733
- "dependencies": {
2734
- "kind-of": {
2735
- "version": "3.2.2",
2736
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2737
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2738
- "dev": true,
2739
- "requires": {
2740
- "is-buffer": "^1.1.5"
2741
- }
2742
- }
2743
- }
2744
- },
2745
- "is-descriptor": {
2746
- "version": "0.1.6",
2747
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
2748
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
2749
- "dev": true,
2750
- "requires": {
2751
- "is-accessor-descriptor": "^0.1.6",
2752
- "is-data-descriptor": "^0.1.4",
2753
- "kind-of": "^5.0.0"
2754
- },
2755
- "dependencies": {
2756
- "kind-of": {
2757
- "version": "5.1.0",
2758
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
2759
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
2760
- "dev": true
2761
- }
2762
- }
2763
- },
2764
- "is-extendable": {
2765
- "version": "0.1.1",
2766
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
2767
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
2768
- "dev": true
2769
- },
2770
- "is-extglob": {
2771
- "version": "2.1.1",
2772
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2773
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
2774
- "dev": true
2775
- },
2776
- "is-fullwidth-code-point": {
2777
- "version": "1.0.0",
2778
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
2779
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
2780
- "dev": true,
2781
- "requires": {
2782
- "number-is-nan": "^1.0.0"
2783
- }
2784
- },
2785
- "is-glob": {
2786
- "version": "4.0.1",
2787
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
2788
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
2789
- "dev": true,
2790
- "requires": {
2791
- "is-extglob": "^2.1.1"
2792
- }
2793
- },
2794
- "is-negated-glob": {
2795
- "version": "1.0.0",
2796
- "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
2797
- "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=",
2798
- "dev": true
2799
- },
2800
- "is-number": {
2801
- "version": "3.0.0",
2802
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
2803
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
2804
- "dev": true,
2805
- "requires": {
2806
- "kind-of": "^3.0.2"
2807
- },
2808
- "dependencies": {
2809
- "kind-of": {
2810
- "version": "3.2.2",
2811
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2812
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2813
- "dev": true,
2814
- "requires": {
2815
- "is-buffer": "^1.1.5"
2816
- }
2817
- }
2818
- }
2819
- },
2820
- "is-plain-object": {
2821
- "version": "2.0.4",
2822
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
2823
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
2824
- "dev": true,
2825
- "requires": {
2826
- "isobject": "^3.0.1"
2827
- }
2828
- },
2829
- "is-relative": {
2830
- "version": "1.0.0",
2831
- "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
2832
- "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
2833
- "dev": true,
2834
- "requires": {
2835
- "is-unc-path": "^1.0.0"
2836
- }
2837
- },
2838
- "is-unc-path": {
2839
- "version": "1.0.0",
2840
- "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
2841
- "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
2842
- "dev": true,
2843
- "requires": {
2844
- "unc-path-regex": "^0.1.2"
2845
- }
2846
- },
2847
- "is-utf8": {
2848
- "version": "0.2.1",
2849
- "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
2850
- "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
2851
- "dev": true
2852
- },
2853
- "is-valid-glob": {
2854
- "version": "1.0.0",
2855
- "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz",
2856
- "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=",
2857
- "dev": true
2858
- },
2859
- "is-windows": {
2860
- "version": "1.0.2",
2861
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
2862
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
2863
- "dev": true
2864
- },
2865
- "isarray": {
2866
- "version": "1.0.0",
2867
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2868
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
2869
- "dev": true
2870
- },
2871
- "isexe": {
2872
- "version": "2.0.0",
2873
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2874
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
2875
- "dev": true
2876
- },
2877
- "isobject": {
2878
- "version": "3.0.1",
2879
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
2880
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
2881
- "dev": true
2882
- },
2883
- "jshint": {
2884
- "version": "2.11.0",
2885
- "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.11.0.tgz",
2886
- "integrity": "sha512-ooaD/hrBPhu35xXW4gn+o3SOuzht73gdBuffgJzrZBJZPGgGiiTvJEgTyxFvBO2nz0+X1G6etF8SzUODTlLY6Q==",
2887
- "dev": true,
2888
- "requires": {
2889
- "cli": "~1.0.0",
2890
- "console-browserify": "1.1.x",
2891
- "exit": "0.1.x",
2892
- "htmlparser2": "3.8.x",
2893
- "lodash": "~4.17.11",
2894
- "minimatch": "~3.0.2",
2895
- "shelljs": "0.3.x",
2896
- "strip-json-comments": "1.0.x"
2897
- }
2898
- },
2899
- "json-stable-stringify-without-jsonify": {
2900
- "version": "1.0.1",
2901
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
2902
- "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
2903
- "dev": true
2904
- },
2905
- "just-debounce": {
2906
- "version": "1.0.0",
2907
- "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz",
2908
- "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=",
2909
- "dev": true
2910
- },
2911
- "kind-of": {
2912
- "version": "6.0.2",
2913
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
2914
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
2915
- "dev": true
2916
- },
2917
- "last-run": {
2918
- "version": "1.1.1",
2919
- "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz",
2920
- "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=",
2921
- "dev": true,
2922
- "requires": {
2923
- "default-resolution": "^2.0.0",
2924
- "es6-weak-map": "^2.0.1"
2925
- }
2926
- },
2927
- "lazystream": {
2928
- "version": "1.0.0",
2929
- "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
2930
- "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
2931
- "dev": true,
2932
- "requires": {
2933
- "readable-stream": "^2.0.5"
2934
- }
2935
- },
2936
- "lcid": {
2937
- "version": "1.0.0",
2938
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
2939
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
2940
- "dev": true,
2941
- "requires": {
2942
- "invert-kv": "^1.0.0"
2943
- }
2944
- },
2945
- "lead": {
2946
- "version": "1.0.0",
2947
- "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz",
2948
- "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=",
2949
- "dev": true,
2950
- "requires": {
2951
- "flush-write-stream": "^1.0.2"
2952
- }
2953
- },
2954
- "liftoff": {
2955
- "version": "3.1.0",
2956
- "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz",
2957
- "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==",
2958
- "dev": true,
2959
- "requires": {
2960
- "extend": "^3.0.0",
2961
- "findup-sync": "^3.0.0",
2962
- "fined": "^1.0.1",
2963
- "flagged-respawn": "^1.0.0",
2964
- "is-plain-object": "^2.0.4",
2965
- "object.map": "^1.0.0",
2966
- "rechoir": "^0.6.2",
2967
- "resolve": "^1.1.7"
2968
- }
2969
- },
2970
- "load-json-file": {
2971
- "version": "1.1.0",
2972
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
2973
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
2974
- "dev": true,
2975
- "requires": {
2976
- "graceful-fs": "^4.1.2",
2977
- "parse-json": "^2.2.0",
2978
- "pify": "^2.0.0",
2979
- "pinkie-promise": "^2.0.0",
2980
- "strip-bom": "^2.0.0"
2981
- }
2982
- },
2983
- "lodash": {
2984
- "version": "4.17.15",
2985
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
2986
- "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
2987
- "dev": true
2988
- },
2989
- "lodash._basecopy": {
2990
- "version": "3.0.1",
2991
- "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
2992
- "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
2993
- "dev": true
2994
- },
2995
- "lodash._basetostring": {
2996
- "version": "3.0.1",
2997
- "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
2998
- "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=",
2999
- "dev": true
3000
- },
3001
- "lodash._basevalues": {
3002
- "version": "3.0.0",
3003
- "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
3004
- "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=",
3005
- "dev": true
3006
- },
3007
- "lodash._getnative": {
3008
- "version": "3.9.1",
3009
- "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
3010
- "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
3011
- "dev": true
3012
- },
3013
- "lodash._isiterateecall": {
3014
- "version": "3.0.9",
3015
- "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
3016
- "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
3017
- "dev": true
3018
- },
3019
- "lodash._reescape": {
3020
- "version": "3.0.0",
3021
- "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
3022
- "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=",
3023
- "dev": true
3024
- },
3025
- "lodash._reevaluate": {
3026
- "version": "3.0.0",
3027
- "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
3028
- "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=",
3029
- "dev": true
3030
- },
3031
- "lodash._reinterpolate": {
3032
- "version": "3.0.0",
3033
- "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
3034
- "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
3035
- "dev": true
3036
- },
3037
- "lodash._root": {
3038
- "version": "3.0.1",
3039
- "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
3040
- "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
3041
- "dev": true
3042
- },
3043
- "lodash.assign": {
3044
- "version": "4.2.0",
3045
- "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
3046
- "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
3047
- "dev": true
3048
- },
3049
- "lodash.clonedeep": {
3050
- "version": "4.5.0",
3051
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
3052
- "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
3053
- "dev": true
3054
- },
3055
- "lodash.escape": {
3056
- "version": "3.2.0",
3057
- "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
3058
- "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
3059
- "dev": true,
3060
- "requires": {
3061
- "lodash._root": "^3.0.0"
3062
- }
3063
- },
3064
- "lodash.isarguments": {
3065
- "version": "3.1.0",
3066
- "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
3067
- "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
3068
- "dev": true
3069
- },
3070
- "lodash.isarray": {
3071
- "version": "3.0.4",
3072
- "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
3073
- "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
3074
- "dev": true
3075
- },
3076
- "lodash.isobject": {
3077
- "version": "3.0.2",
3078
- "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz",
3079
- "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=",
3080
- "dev": true
3081
- },
3082
- "lodash.keys": {
3083
- "version": "3.1.2",
3084
- "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
3085
- "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
3086
- "dev": true,
3087
- "requires": {
3088
- "lodash._getnative": "^3.0.0",
3089
- "lodash.isarguments": "^3.0.0",
3090
- "lodash.isarray": "^3.0.0"
3091
- }
3092
- },
3093
- "lodash.merge": {
3094
- "version": "4.6.2",
3095
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
3096
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
3097
- "dev": true
3098
- },
3099
- "lodash.restparam": {
3100
- "version": "3.6.1",
3101
- "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
3102
- "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
3103
- "dev": true
3104
- },
3105
- "lodash.template": {
3106
- "version": "3.6.2",
3107
- "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
3108
- "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
3109
- "dev": true,
3110
- "requires": {
3111
- "lodash._basecopy": "^3.0.0",
3112
- "lodash._basetostring": "^3.0.0",
3113
- "lodash._basevalues": "^3.0.0",
3114
- "lodash._isiterateecall": "^3.0.0",
3115
- "lodash._reinterpolate": "^3.0.0",
3116
- "lodash.escape": "^3.0.0",
3117
- "lodash.keys": "^3.0.0",
3118
- "lodash.restparam": "^3.0.0",
3119
- "lodash.templatesettings": "^3.0.0"
3120
- }
3121
- },
3122
- "lodash.templatesettings": {
3123
- "version": "3.1.1",
3124
- "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
3125
- "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
3126
- "dev": true,
3127
- "requires": {
3128
- "lodash._reinterpolate": "^3.0.0",
3129
- "lodash.escape": "^3.0.0"
3130
- }
3131
- },
3132
- "lru-cache": {
3133
- "version": "2.7.3",
3134
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
3135
- "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
3136
- "dev": true
3137
- },
3138
- "make-iterator": {
3139
- "version": "1.0.1",
3140
- "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
3141
- "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
3142
- "dev": true,
3143
- "requires": {
3144
- "kind-of": "^6.0.2"
3145
- }
3146
- },
3147
- "map-cache": {
3148
- "version": "0.2.2",
3149
- "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
3150
- "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
3151
- "dev": true
3152
- },
3153
- "map-stream": {
3154
- "version": "0.0.7",
3155
- "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz",
3156
- "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=",
3157
- "dev": true
3158
- },
3159
- "map-visit": {
3160
- "version": "1.0.0",
3161
- "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
3162
- "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
3163
- "dev": true,
3164
- "requires": {
3165
- "object-visit": "^1.0.0"
3166
- }
3167
- },
3168
- "matchdep": {
3169
- "version": "2.0.0",
3170
- "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz",
3171
- "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=",
3172
- "dev": true,
3173
- "requires": {
3174
- "findup-sync": "^2.0.0",
3175
- "micromatch": "^3.0.4",
3176
- "resolve": "^1.4.0",
3177
- "stack-trace": "0.0.10"
3178
- },
3179
- "dependencies": {
3180
- "findup-sync": {
3181
- "version": "2.0.0",
3182
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
3183
- "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
3184
- "dev": true,
3185
- "requires": {
3186
- "detect-file": "^1.0.0",
3187
- "is-glob": "^3.1.0",
3188
- "micromatch": "^3.0.4",
3189
- "resolve-dir": "^1.0.1"
3190
- }
3191
- },
3192
- "is-glob": {
3193
- "version": "3.1.0",
3194
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
3195
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
3196
- "dev": true,
3197
- "requires": {
3198
- "is-extglob": "^2.1.0"
3199
- }
3200
- }
3201
- }
3202
- },
3203
- "matched": {
3204
- "version": "4.0.0",
3205
- "resolved": "https://registry.npmjs.org/matched/-/matched-4.0.0.tgz",
3206
- "integrity": "sha512-mD08ireECeLL/CCgum8EeLx/SZiAmhbbt4FPlCZ4GG2xKBJ/yB8qn0uvuvouQzCORknElll2jSNVdtCWNQdR2g==",
3207
- "dev": true,
3208
- "requires": {
3209
- "glob": "^7.1.3",
3210
- "picomatch": "^2.0.5"
3211
- }
3212
- },
3213
- "micromatch": {
3214
- "version": "3.1.10",
3215
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
3216
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
3217
- "dev": true,
3218
- "requires": {
3219
- "arr-diff": "^4.0.0",
3220
- "array-unique": "^0.3.2",
3221
- "braces": "^2.3.1",
3222
- "define-property": "^2.0.2",
3223
- "extend-shallow": "^3.0.2",
3224
- "extglob": "^2.0.4",
3225
- "fragment-cache": "^0.2.1",
3226
- "kind-of": "^6.0.2",
3227
- "nanomatch": "^1.2.9",
3228
- "object.pick": "^1.3.0",
3229
- "regex-not": "^1.0.0",
3230
- "snapdragon": "^0.8.1",
3231
- "to-regex": "^3.0.2"
3232
- }
3233
- },
3234
- "minimatch": {
3235
- "version": "3.0.4",
3236
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
3237
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
3238
- "dev": true,
3239
- "requires": {
3240
- "brace-expansion": "^1.1.7"
3241
- }
3242
- },
3243
- "minimist": {
3244
- "version": "1.2.5",
3245
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
3246
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
3247
- "dev": true
3248
- },
3249
- "mixin-deep": {
3250
- "version": "1.3.2",
3251
- "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
3252
- "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
3253
- "dev": true,
3254
- "requires": {
3255
- "for-in": "^1.0.2",
3256
- "is-extendable": "^1.0.1"
3257
- },
3258
- "dependencies": {
3259
- "is-extendable": {
3260
- "version": "1.0.1",
3261
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
3262
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
3263
- "dev": true,
3264
- "requires": {
3265
- "is-plain-object": "^2.0.4"
3266
- }
3267
- }
3268
- }
3269
- },
3270
- "mkdirp": {
3271
- "version": "0.5.5",
3272
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
3273
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
3274
- "dev": true,
3275
- "requires": {
3276
- "minimist": "^1.2.5"
3277
- }
3278
- },
3279
- "ms": {
3280
- "version": "2.0.0",
3281
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3282
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
3283
- "dev": true
3284
- },
3285
- "multipipe": {
3286
- "version": "0.1.2",
3287
- "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
3288
- "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
3289
- "dev": true,
3290
- "requires": {
3291
- "duplexer2": "0.0.2"
3292
- }
3293
- },
3294
- "mute-stdout": {
3295
- "version": "1.0.1",
3296
- "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz",
3297
- "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==",
3298
- "dev": true
3299
- },
3300
- "nan": {
3301
- "version": "2.14.0",
3302
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
3303
- "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
3304
- "dev": true,
3305
- "optional": true
3306
- },
3307
- "nanomatch": {
3308
- "version": "1.2.13",
3309
- "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
3310
- "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
3311
- "dev": true,
3312
- "requires": {
3313
- "arr-diff": "^4.0.0",
3314
- "array-unique": "^0.3.2",
3315
- "define-property": "^2.0.2",
3316
- "extend-shallow": "^3.0.2",
3317
- "fragment-cache": "^0.2.1",
3318
- "is-windows": "^1.0.2",
3319
- "kind-of": "^6.0.2",
3320
- "object.pick": "^1.3.0",
3321
- "regex-not": "^1.0.0",
3322
- "snapdragon": "^0.8.1",
3323
- "to-regex": "^3.0.1"
3324
- }
3325
- },
3326
- "natives": {
3327
- "version": "1.1.6",
3328
- "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz",
3329
- "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==",
3330
- "dev": true
3331
- },
3332
- "next-tick": {
3333
- "version": "1.0.0",
3334
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
3335
- "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
3336
- "dev": true
3337
- },
3338
- "normalize-package-data": {
3339
- "version": "2.5.0",
3340
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
3341
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
3342
- "dev": true,
3343
- "requires": {
3344
- "hosted-git-info": "^2.1.4",
3345
- "resolve": "^1.10.0",
3346
- "semver": "2 || 3 || 4 || 5",
3347
- "validate-npm-package-license": "^3.0.1"
3348
- }
3349
- },
3350
- "normalize-path": {
3351
- "version": "2.1.1",
3352
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
3353
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
3354
- "dev": true,
3355
- "requires": {
3356
- "remove-trailing-separator": "^1.0.1"
3357
- }
3358
- },
3359
- "now-and-later": {
3360
- "version": "2.0.1",
3361
- "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz",
3362
- "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==",
3363
- "dev": true,
3364
- "requires": {
3365
- "once": "^1.3.2"
3366
- }
3367
- },
3368
- "number-is-nan": {
3369
- "version": "1.0.1",
3370
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
3371
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
3372
- "dev": true
3373
- },
3374
- "o-stream": {
3375
- "version": "0.2.2",
3376
- "resolved": "https://registry.npmjs.org/o-stream/-/o-stream-0.2.2.tgz",
3377
- "integrity": "sha512-V3j76KU3g/Gyl8rpdi2z72rn5zguMvTCQgAXfBe3pxEefKqXmOUOD7mvx/mNjykdxGqDVfpSoo8r+WdrkWg/1Q==",
3378
- "dev": true
3379
- },
3380
- "object-assign": {
3381
- "version": "3.0.0",
3382
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
3383
- "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
3384
- "dev": true
3385
- },
3386
- "object-copy": {
3387
- "version": "0.1.0",
3388
- "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
3389
- "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
3390
- "dev": true,
3391
- "requires": {
3392
- "copy-descriptor": "^0.1.0",
3393
- "define-property": "^0.2.5",
3394
- "kind-of": "^3.0.3"
3395
- },
3396
- "dependencies": {
3397
- "define-property": {
3398
- "version": "0.2.5",
3399
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
3400
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
3401
- "dev": true,
3402
- "requires": {
3403
- "is-descriptor": "^0.1.0"
3404
- }
3405
- },
3406
- "kind-of": {
3407
- "version": "3.2.2",
3408
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
3409
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
3410
- "dev": true,
3411
- "requires": {
3412
- "is-buffer": "^1.1.5"
3413
- }
3414
- }
3415
- }
3416
- },
3417
- "object-keys": {
3418
- "version": "1.1.1",
3419
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
3420
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
3421
- "dev": true
3422
- },
3423
- "object-visit": {
3424
- "version": "1.0.1",
3425
- "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
3426
- "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
3427
- "dev": true,
3428
- "requires": {
3429
- "isobject": "^3.0.0"
3430
- }
3431
- },
3432
- "object.assign": {
3433
- "version": "4.1.0",
3434
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
3435
- "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
3436
- "dev": true,
3437
- "requires": {
3438
- "define-properties": "^1.1.2",
3439
- "function-bind": "^1.1.1",
3440
- "has-symbols": "^1.0.0",
3441
- "object-keys": "^1.0.11"
3442
- }
3443
- },
3444
- "object.defaults": {
3445
- "version": "1.1.0",
3446
- "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
3447
- "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
3448
- "dev": true,
3449
- "requires": {
3450
- "array-each": "^1.0.1",
3451
- "array-slice": "^1.0.0",
3452
- "for-own": "^1.0.0",
3453
- "isobject": "^3.0.0"
3454
- }
3455
- },
3456
- "object.map": {
3457
- "version": "1.0.1",
3458
- "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
3459
- "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
3460
- "dev": true,
3461
- "requires": {
3462
- "for-own": "^1.0.0",
3463
- "make-iterator": "^1.0.0"
3464
- }
3465
- },
3466
- "object.pick": {
3467
- "version": "1.3.0",
3468
- "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
3469
- "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
3470
- "dev": true,
3471
- "requires": {
3472
- "isobject": "^3.0.1"
3473
- }
3474
- },
3475
- "object.reduce": {
3476
- "version": "1.0.1",
3477
- "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz",
3478
- "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=",
3479
- "dev": true,
3480
- "requires": {
3481
- "for-own": "^1.0.0",
3482
- "make-iterator": "^1.0.0"
3483
- }
3484
- },
3485
- "once": {
3486
- "version": "1.4.0",
3487
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
3488
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
3489
- "dev": true,
3490
- "requires": {
3491
- "wrappy": "1"
3492
- }
3493
- },
3494
- "orchestrator": {
3495
- "version": "0.3.8",
3496
- "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz",
3497
- "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=",
3498
- "dev": true,
3499
- "requires": {
3500
- "end-of-stream": "~0.1.5",
3501
- "sequencify": "~0.0.7",
3502
- "stream-consume": "~0.1.0"
3503
- },
3504
- "dependencies": {
3505
- "end-of-stream": {
3506
- "version": "0.1.5",
3507
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz",
3508
- "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=",
3509
- "dev": true,
3510
- "requires": {
3511
- "once": "~1.3.0"
3512
- }
3513
- },
3514
- "once": {
3515
- "version": "1.3.3",
3516
- "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
3517
- "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
3518
- "dev": true,
3519
- "requires": {
3520
- "wrappy": "1"
3521
- }
3522
- }
3523
- }
3524
- },
3525
- "ordered-read-streams": {
3526
- "version": "1.0.1",
3527
- "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
3528
- "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=",
3529
- "dev": true,
3530
- "requires": {
3531
- "readable-stream": "^2.0.1"
3532
- }
3533
- },
3534
- "os-homedir": {
3535
- "version": "1.0.2",
3536
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
3537
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
3538
- "dev": true
3539
- },
3540
- "os-locale": {
3541
- "version": "1.4.0",
3542
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
3543
- "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
3544
- "dev": true,
3545
- "requires": {
3546
- "lcid": "^1.0.0"
3547
- }
3548
- },
3549
- "parse-filepath": {
3550
- "version": "1.0.2",
3551
- "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
3552
- "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
3553
- "dev": true,
3554
- "requires": {
3555
- "is-absolute": "^1.0.0",
3556
- "map-cache": "^0.2.0",
3557
- "path-root": "^0.1.1"
3558
- }
3559
- },
3560
- "parse-json": {
3561
- "version": "2.2.0",
3562
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
3563
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
3564
- "dev": true,
3565
- "requires": {
3566
- "error-ex": "^1.2.0"
3567
- }
3568
- },
3569
- "parse-node-version": {
3570
- "version": "1.0.1",
3571
- "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
3572
- "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
3573
- "dev": true
3574
- },
3575
- "parse-passwd": {
3576
- "version": "1.0.0",
3577
- "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
3578
- "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
3579
- "dev": true
3580
- },
3581
- "pascalcase": {
3582
- "version": "0.1.1",
3583
- "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
3584
- "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
3585
- "dev": true
3586
- },
3587
- "path-dirname": {
3588
- "version": "1.0.2",
3589
- "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
3590
- "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
3591
- "dev": true
3592
- },
3593
- "path-exists": {
3594
- "version": "2.1.0",
3595
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
3596
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
3597
- "dev": true,
3598
- "requires": {
3599
- "pinkie-promise": "^2.0.0"
3600
- }
3601
- },
3602
- "path-is-absolute": {
3603
- "version": "1.0.1",
3604
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
3605
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
3606
- "dev": true
3607
- },
3608
- "path-parse": {
3609
- "version": "1.0.6",
3610
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
3611
- "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
3612
- "dev": true
3613
- },
3614
- "path-root": {
3615
- "version": "0.1.1",
3616
- "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
3617
- "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
3618
- "dev": true,
3619
- "requires": {
3620
- "path-root-regex": "^0.1.0"
3621
- }
3622
- },
3623
- "path-root-regex": {
3624
- "version": "0.1.2",
3625
- "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
3626
- "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=",
3627
- "dev": true
3628
- },
3629
- "path-sort": {
3630
- "version": "0.1.0",
3631
- "resolved": "https://registry.npmjs.org/path-sort/-/path-sort-0.1.0.tgz",
3632
- "integrity": "sha1-ywF11Oy/paGP5nTMbXIL/hXguAU=",
3633
- "dev": true
3634
- },
3635
- "path-type": {
3636
- "version": "1.1.0",
3637
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
3638
- "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
3639
- "dev": true,
3640
- "requires": {
3641
- "graceful-fs": "^4.1.2",
3642
- "pify": "^2.0.0",
3643
- "pinkie-promise": "^2.0.0"
3644
- }
3645
- },
3646
- "php-parser": {
3647
- "version": "3.0.0-prerelease.9",
3648
- "resolved": "https://registry.npmjs.org/php-parser/-/php-parser-3.0.0-prerelease.9.tgz",
3649
- "integrity": "sha512-QTVGKeiGZyRq7NpXMx15Dkiq9+B2KLGStck1Wrik+Hui+vb70rDBF+dY1RD6/IC8Wy/tUAhcKiCfKWVJUjymDA==",
3650
- "dev": true
3651
- },
3652
- "picomatch": {
3653
- "version": "2.0.7",
3654
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz",
3655
- "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==",
3656
- "dev": true
3657
- },
3658
- "pify": {
3659
- "version": "2.3.0",
3660
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
3661
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
3662
- "dev": true
3663
- },
3664
- "pinkie": {
3665
- "version": "2.0.4",
3666
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
3667
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
3668
- "dev": true
3669
- },
3670
- "pinkie-promise": {
3671
- "version": "2.0.1",
3672
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
3673
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
3674
- "dev": true,
3675
- "requires": {
3676
- "pinkie": "^2.0.0"
3677
- }
3678
- },
3679
- "plugin-error": {
3680
- "version": "1.0.1",
3681
- "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz",
3682
- "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==",
3683
- "dev": true,
3684
- "requires": {
3685
- "ansi-colors": "^1.0.1",
3686
- "arr-diff": "^4.0.0",
3687
- "arr-union": "^3.1.0",
3688
- "extend-shallow": "^3.0.2"
3689
- }
3690
- },
3691
- "posix-character-classes": {
3692
- "version": "0.1.1",
3693
- "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
3694
- "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
3695
- "dev": true
3696
- },
3697
- "pretty-hrtime": {
3698
- "version": "1.0.3",
3699
- "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
3700
- "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=",
3701
- "dev": true
3702
- },
3703
- "process-nextick-args": {
3704
- "version": "2.0.1",
3705
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
3706
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
3707
- "dev": true
3708
- },
3709
- "pump": {
3710
- "version": "2.0.1",
3711
- "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
3712
- "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
3713
- "dev": true,
3714
- "requires": {
3715
- "end-of-stream": "^1.1.0",
3716
- "once": "^1.3.1"
3717
- }
3718
- },
3719
- "pumpify": {
3720
- "version": "1.5.1",
3721
- "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
3722
- "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
3723
- "dev": true,
3724
- "requires": {
3725
- "duplexify": "^3.6.0",
3726
- "inherits": "^2.0.3",
3727
- "pump": "^2.0.0"
3728
- }
3729
- },
3730
- "rcfinder": {
3731
- "version": "0.1.9",
3732
- "resolved": "https://registry.npmjs.org/rcfinder/-/rcfinder-0.1.9.tgz",
3733
- "integrity": "sha1-8+gPOH3fmugK4wpBADKWQuroERU=",
3734
- "dev": true,
3735
- "requires": {
3736
- "lodash.clonedeep": "^4.3.2"
3737
- }
3738
- },
3739
- "rcloader": {
3740
- "version": "0.2.2",
3741
- "resolved": "https://registry.npmjs.org/rcloader/-/rcloader-0.2.2.tgz",
3742
- "integrity": "sha1-WNIpi0YtC5v9ITPSoex0+9cFxxc=",
3743
- "dev": true,
3744
- "requires": {
3745
- "lodash.assign": "^4.2.0",
3746
- "lodash.isobject": "^3.0.2",
3747
- "lodash.merge": "^4.6.0",
3748
- "rcfinder": "^0.1.6"
3749
- }
3750
- },
3751
- "read-pkg": {
3752
- "version": "1.1.0",
3753
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
3754
- "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
3755
- "dev": true,
3756
- "requires": {
3757
- "load-json-file": "^1.0.0",
3758
- "normalize-package-data": "^2.3.2",
3759
- "path-type": "^1.0.0"
3760
- }
3761
- },
3762
- "read-pkg-up": {
3763
- "version": "1.0.1",
3764
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
3765
- "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
3766
- "dev": true,
3767
- "requires": {
3768
- "find-up": "^1.0.0",
3769
- "read-pkg": "^1.0.0"
3770
- }
3771
- },
3772
- "readable-stream": {
3773
- "version": "2.3.6",
3774
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
3775
- "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
3776
- "dev": true,
3777
- "requires": {
3778
- "core-util-is": "~1.0.0",
3779
- "inherits": "~2.0.3",
3780
- "isarray": "~1.0.0",
3781
- "process-nextick-args": "~2.0.0",
3782
- "safe-buffer": "~5.1.1",
3783
- "string_decoder": "~1.1.1",
3784
- "util-deprecate": "~1.0.1"
3785
- }
3786
- },
3787
- "readdirp": {
3788
- "version": "2.2.1",
3789
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
3790
- "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
3791
- "dev": true,
3792
- "requires": {
3793
- "graceful-fs": "^4.1.11",
3794
- "micromatch": "^3.1.10",
3795
- "readable-stream": "^2.0.2"
3796
- }
3797
- },
3798
- "rechoir": {
3799
- "version": "0.6.2",
3800
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
3801
- "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
3802
- "dev": true,
3803
- "requires": {
3804
- "resolve": "^1.1.6"
3805
- }
3806
- },
3807
- "regex-not": {
3808
- "version": "1.0.2",
3809
- "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
3810
- "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
3811
- "dev": true,
3812
- "requires": {
3813
- "extend-shallow": "^3.0.2",
3814
- "safe-regex": "^1.1.0"
3815
- }
3816
- },
3817
- "remove-bom-buffer": {
3818
- "version": "3.0.0",
3819
- "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz",
3820
- "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==",
3821
- "dev": true,
3822
- "requires": {
3823
- "is-buffer": "^1.1.5",
3824
- "is-utf8": "^0.2.1"
3825
- }
3826
- },
3827
- "remove-bom-stream": {
3828
- "version": "1.2.0",
3829
- "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz",
3830
- "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=",
3831
- "dev": true,
3832
- "requires": {
3833
- "remove-bom-buffer": "^3.0.0",
3834
- "safe-buffer": "^5.1.0",
3835
- "through2": "^2.0.3"
3836
- }
3837
- },
3838
- "remove-trailing-separator": {
3839
- "version": "1.1.0",
3840
- "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
3841
- "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
3842
- "dev": true
3843
- },
3844
- "repeat-element": {
3845
- "version": "1.1.3",
3846
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
3847
- "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
3848
- "dev": true
3849
- },
3850
- "repeat-string": {
3851
- "version": "1.6.1",
3852
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
3853
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
3854
- "dev": true
3855
- },
3856
- "replace-ext": {
3857
- "version": "1.0.0",
3858
- "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
3859
- "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
3860
- "dev": true
3861
- },
3862
- "replace-homedir": {
3863
- "version": "1.0.0",
3864
- "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz",
3865
- "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=",
3866
- "dev": true,
3867
- "requires": {
3868
- "homedir-polyfill": "^1.0.1",
3869
- "is-absolute": "^1.0.0",
3870
- "remove-trailing-separator": "^1.1.0"
3871
- }
3872
- },
3873
- "require-directory": {
3874
- "version": "2.1.1",
3875
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
3876
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
3877
- "dev": true
3878
- },
3879
- "require-main-filename": {
3880
- "version": "1.0.1",
3881
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
3882
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
3883
- "dev": true
3884
- },
3885
- "resolve": {
3886
- "version": "1.12.0",
3887
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
3888
- "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
3889
- "dev": true,
3890
- "requires": {
3891
- "path-parse": "^1.0.6"
3892
- }
3893
- },
3894
- "resolve-dir": {
3895
- "version": "1.0.1",
3896
- "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
3897
- "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
3898
- "dev": true,
3899
- "requires": {
3900
- "expand-tilde": "^2.0.0",
3901
- "global-modules": "^1.0.0"
3902
- }
3903
- },
3904
- "resolve-options": {
3905
- "version": "1.1.0",
3906
- "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz",
3907
- "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=",
3908
- "dev": true,
3909
- "requires": {
3910
- "value-or-function": "^3.0.0"
3911
- }
3912
- },
3913
- "resolve-url": {
3914
- "version": "0.2.1",
3915
- "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
3916
- "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
3917
- "dev": true
3918
- },
3919
- "ret": {
3920
- "version": "0.1.15",
3921
- "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
3922
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
3923
- "dev": true
3924
- },
3925
- "safe-buffer": {
3926
- "version": "5.1.2",
3927
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
3928
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
3929
- "dev": true
3930
- },
3931
- "safe-regex": {
3932
- "version": "1.1.0",
3933
- "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
3934
- "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
3935
- "dev": true,
3936
- "requires": {
3937
- "ret": "~0.1.10"
3938
- }
3939
- },
3940
- "safer-buffer": {
3941
- "version": "2.1.2",
3942
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
3943
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
3944
- "dev": true
3945
- },
3946
- "semver": {
3947
- "version": "5.7.1",
3948
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
3949
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
3950
- "dev": true
3951
- },
3952
- "semver-greatest-satisfied-range": {
3953
- "version": "1.1.0",
3954
- "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz",
3955
- "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=",
3956
- "dev": true,
3957
- "requires": {
3958
- "sver-compat": "^1.5.0"
3959
- }
3960
- },
3961
- "sequencify": {
3962
- "version": "0.0.7",
3963
- "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz",
3964
- "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=",
3965
- "dev": true
3966
- },
3967
- "set-blocking": {
3968
- "version": "2.0.0",
3969
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
3970
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
3971
- "dev": true
3972
- },
3973
- "set-value": {
3974
- "version": "2.0.1",
3975
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
3976
- "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
3977
- "dev": true,
3978
- "requires": {
3979
- "extend-shallow": "^2.0.1",
3980
- "is-extendable": "^0.1.1",
3981
- "is-plain-object": "^2.0.3",
3982
- "split-string": "^3.0.1"
3983
- },
3984
- "dependencies": {
3985
- "extend-shallow": {
3986
- "version": "2.0.1",
3987
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
3988
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
3989
- "dev": true,
3990
- "requires": {
3991
- "is-extendable": "^0.1.0"
3992
- }
3993
- }
3994
- }
3995
- },
3996
- "shelljs": {
3997
- "version": "0.3.0",
3998
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
3999
- "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=",
4000
- "dev": true
4001
- },
4002
- "sigmund": {
4003
- "version": "1.0.1",
4004
- "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
4005
- "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
4006
- "dev": true
4007
- },
4008
- "snapdragon": {
4009
- "version": "0.8.2",
4010
- "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
4011
- "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
4012
- "dev": true,
4013
- "requires": {
4014
- "base": "^0.11.1",
4015
- "debug": "^2.2.0",
4016
- "define-property": "^0.2.5",
4017
- "extend-shallow": "^2.0.1",
4018
- "map-cache": "^0.2.2",
4019
- "source-map": "^0.5.6",
4020
- "source-map-resolve": "^0.5.0",
4021
- "use": "^3.1.0"
4022
- },
4023
- "dependencies": {
4024
- "define-property": {
4025
- "version": "0.2.5",
4026
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
4027
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
4028
- "dev": true,
4029
- "requires": {
4030
- "is-descriptor": "^0.1.0"
4031
- }
4032
- },
4033
- "extend-shallow": {
4034
- "version": "2.0.1",
4035
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
4036
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
4037
- "dev": true,
4038
- "requires": {
4039
- "is-extendable": "^0.1.0"
4040
- }
4041
- }
4042
- }
4043
- },
4044
- "snapdragon-node": {
4045
- "version": "2.1.1",
4046
- "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
4047
- "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
4048
- "dev": true,
4049
- "requires": {
4050
- "define-property": "^1.0.0",
4051
- "isobject": "^3.0.0",
4052
- "snapdragon-util": "^3.0.1"
4053
- },
4054
- "dependencies": {
4055
- "define-property": {
4056
- "version": "1.0.0",
4057
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
4058
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
4059
- "dev": true,
4060
- "requires": {
4061
- "is-descriptor": "^1.0.0"
4062
- }
4063
- },
4064
- "is-accessor-descriptor": {
4065
- "version": "1.0.0",
4066
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
4067
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
4068
- "dev": true,
4069
- "requires": {
4070
- "kind-of": "^6.0.0"
4071
- }
4072
- },
4073
- "is-data-descriptor": {
4074
- "version": "1.0.0",
4075
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
4076
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
4077
- "dev": true,
4078
- "requires": {
4079
- "kind-of": "^6.0.0"
4080
- }
4081
- },
4082
- "is-descriptor": {
4083
- "version": "1.0.2",
4084
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
4085
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
4086
- "dev": true,
4087
- "requires": {
4088
- "is-accessor-descriptor": "^1.0.0",
4089
- "is-data-descriptor": "^1.0.0",
4090
- "kind-of": "^6.0.2"
4091
- }
4092
- }
4093
- }
4094
- },
4095
- "snapdragon-util": {
4096
- "version": "3.0.1",
4097
- "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
4098
- "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
4099
- "dev": true,
4100
- "requires": {
4101
- "kind-of": "^3.2.0"
4102
- },
4103
- "dependencies": {
4104
- "kind-of": {
4105
- "version": "3.2.2",
4106
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
4107
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
4108
- "dev": true,
4109
- "requires": {
4110
- "is-buffer": "^1.1.5"
4111
- }
4112
- }
4113
- }
4114
- },
4115
- "source-map": {
4116
- "version": "0.5.7",
4117
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
4118
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
4119
- "dev": true
4120
- },
4121
- "source-map-resolve": {
4122
- "version": "0.5.2",
4123
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
4124
- "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
4125
- "dev": true,
4126
- "requires": {
4127
- "atob": "^2.1.1",
4128
- "decode-uri-component": "^0.2.0",
4129
- "resolve-url": "^0.2.1",
4130
- "source-map-url": "^0.4.0",
4131
- "urix": "^0.1.0"
4132
- }
4133
- },
4134
- "source-map-support": {
4135
- "version": "0.5.19",
4136
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
4137
- "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
4138
- "dev": true,
4139
- "requires": {
4140
- "buffer-from": "^1.0.0",
4141
- "source-map": "^0.6.0"
4142
- },
4143
- "dependencies": {
4144
- "source-map": {
4145
- "version": "0.6.1",
4146
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
4147
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
4148
- "dev": true
4149
- }
4150
- }
4151
- },
4152
- "source-map-url": {
4153
- "version": "0.4.0",
4154
- "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
4155
- "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
4156
- "dev": true
4157
- },
4158
- "sparkles": {
4159
- "version": "1.0.1",
4160
- "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz",
4161
- "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==",
4162
- "dev": true
4163
- },
4164
- "spdx-correct": {
4165
- "version": "3.1.0",
4166
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
4167
- "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
4168
- "dev": true,
4169
- "requires": {
4170
- "spdx-expression-parse": "^3.0.0",
4171
- "spdx-license-ids": "^3.0.0"
4172
- }
4173
- },
4174
- "spdx-exceptions": {
4175
- "version": "2.2.0",
4176
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
4177
- "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
4178
- "dev": true
4179
- },
4180
- "spdx-expression-parse": {
4181
- "version": "3.0.0",
4182
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
4183
- "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
4184
- "dev": true,
4185
- "requires": {
4186
- "spdx-exceptions": "^2.1.0",
4187
- "spdx-license-ids": "^3.0.0"
4188
- }
4189
- },
4190
- "spdx-license-ids": {
4191
- "version": "3.0.5",
4192
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
4193
- "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
4194
- "dev": true
4195
- },
4196
- "split-string": {
4197
- "version": "3.1.0",
4198
- "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
4199
- "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
4200
- "dev": true,
4201
- "requires": {
4202
- "extend-shallow": "^3.0.0"
4203
- }
4204
- },
4205
- "stack-trace": {
4206
- "version": "0.0.10",
4207
- "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
4208
- "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
4209
- "dev": true
4210
- },
4211
- "static-extend": {
4212
- "version": "0.1.2",
4213
- "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
4214
- "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
4215
- "dev": true,
4216
- "requires": {
4217
- "define-property": "^0.2.5",
4218
- "object-copy": "^0.1.0"
4219
- },
4220
- "dependencies": {
4221
- "define-property": {
4222
- "version": "0.2.5",
4223
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
4224
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
4225
- "dev": true,
4226
- "requires": {
4227
- "is-descriptor": "^0.1.0"
4228
- }
4229
- }
4230
- }
4231
- },
4232
- "stream-consume": {
4233
- "version": "0.1.1",
4234
- "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz",
4235
- "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==",
4236
- "dev": true
4237
- },
4238
- "stream-exhaust": {
4239
- "version": "1.0.2",
4240
- "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz",
4241
- "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==",
4242
- "dev": true
4243
- },
4244
- "stream-shift": {
4245
- "version": "1.0.0",
4246
- "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
4247
- "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
4248
- "dev": true
4249
- },
4250
- "string-width": {
4251
- "version": "1.0.2",
4252
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
4253
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
4254
- "dev": true,
4255
- "requires": {
4256
- "code-point-at": "^1.0.0",
4257
- "is-fullwidth-code-point": "^1.0.0",
4258
- "strip-ansi": "^3.0.0"
4259
- }
4260
- },
4261
- "string_decoder": {
4262
- "version": "1.1.1",
4263
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
4264
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
4265
- "dev": true,
4266
- "requires": {
4267
- "safe-buffer": "~5.1.0"
4268
- }
4269
- },
4270
- "strip-ansi": {
4271
- "version": "3.0.1",
4272
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
4273
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
4274
- "dev": true,
4275
- "requires": {
4276
- "ansi-regex": "^2.0.0"
4277
- }
4278
- },
4279
- "strip-bom": {
4280
- "version": "2.0.0",
4281
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
4282
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
4283
- "dev": true,
4284
- "requires": {
4285
- "is-utf8": "^0.2.0"
4286
- }
4287
- },
4288
- "strip-json-comments": {
4289
- "version": "1.0.4",
4290
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
4291
- "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
4292
- "dev": true
4293
- },
4294
- "supports-color": {
4295
- "version": "2.0.0",
4296
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
4297
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
4298
- "dev": true
4299
- },
4300
- "sver-compat": {
4301
- "version": "1.5.0",
4302
- "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz",
4303
- "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=",
4304
- "dev": true,
4305
- "requires": {
4306
- "es6-iterator": "^2.0.1",
4307
- "es6-symbol": "^3.1.1"
4308
- }
4309
- },
4310
- "terser": {
4311
- "version": "4.8.0",
4312
- "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
4313
- "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
4314
- "dev": true,
4315
- "requires": {
4316
- "commander": "^2.20.0",
4317
- "source-map": "~0.6.1",
4318
- "source-map-support": "~0.5.12"
4319
- },
4320
- "dependencies": {
4321
- "source-map": {
4322
- "version": "0.6.1",
4323
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
4324
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
4325
- "dev": true
4326
- }
4327
- }
4328
- },
4329
- "through2": {
4330
- "version": "2.0.5",
4331
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
4332
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
4333
- "dev": true,
4334
- "requires": {
4335
- "readable-stream": "~2.3.6",
4336
- "xtend": "~4.0.1"
4337
- }
4338
- },
4339
- "through2-filter": {
4340
- "version": "3.0.0",
4341
- "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
4342
- "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
4343
- "dev": true,
4344
- "requires": {
4345
- "through2": "~2.0.0",
4346
- "xtend": "~4.0.0"
4347
- }
4348
- },
4349
- "tildify": {
4350
- "version": "1.2.0",
4351
- "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
4352
- "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=",
4353
- "dev": true,
4354
- "requires": {
4355
- "os-homedir": "^1.0.0"
4356
- }
4357
- },
4358
- "time-stamp": {
4359
- "version": "1.1.0",
4360
- "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
4361
- "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=",
4362
- "dev": true
4363
- },
4364
- "to-absolute-glob": {
4365
- "version": "2.0.2",
4366
- "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
4367
- "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=",
4368
- "dev": true,
4369
- "requires": {
4370
- "is-absolute": "^1.0.0",
4371
- "is-negated-glob": "^1.0.0"
4372
- }
4373
- },
4374
- "to-object-path": {
4375
- "version": "0.3.0",
4376
- "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
4377
- "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
4378
- "dev": true,
4379
- "requires": {
4380
- "kind-of": "^3.0.2"
4381
- },
4382
- "dependencies": {
4383
- "kind-of": {
4384
- "version": "3.2.2",
4385
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
4386
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
4387
- "dev": true,
4388
- "requires": {
4389
- "is-buffer": "^1.1.5"
4390
- }
4391
- }
4392
- }
4393
- },
4394
- "to-regex": {
4395
- "version": "3.0.2",
4396
- "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
4397
- "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
4398
- "dev": true,
4399
- "requires": {
4400
- "define-property": "^2.0.2",
4401
- "extend-shallow": "^3.0.2",
4402
- "regex-not": "^1.0.2",
4403
- "safe-regex": "^1.1.0"
4404
- }
4405
- },
4406
- "to-regex-range": {
4407
- "version": "2.1.1",
4408
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
4409
- "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
4410
- "dev": true,
4411
- "requires": {
4412
- "is-number": "^3.0.0",
4413
- "repeat-string": "^1.6.1"
4414
- }
4415
- },
4416
- "to-through": {
4417
- "version": "2.0.0",
4418
- "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz",
4419
- "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=",
4420
- "dev": true,
4421
- "requires": {
4422
- "through2": "^2.0.3"
4423
- }
4424
- },
4425
- "type": {
4426
- "version": "1.0.3",
4427
- "resolved": "https://registry.npmjs.org/type/-/type-1.0.3.tgz",
4428
- "integrity": "sha512-51IMtNfVcee8+9GJvj0spSuFcZHe9vSib6Xtgsny1Km9ugyz2mbS08I3rsUIRYgJohFRFU1160sgRodYz378Hg==",
4429
- "dev": true
4430
- },
4431
- "typedarray": {
4432
- "version": "0.0.6",
4433
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
4434
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
4435
- "dev": true
4436
- },
4437
- "unc-path-regex": {
4438
- "version": "0.1.2",
4439
- "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
4440
- "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
4441
- "dev": true
4442
- },
4443
- "undertaker": {
4444
- "version": "1.2.1",
4445
- "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz",
4446
- "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==",
4447
- "dev": true,
4448
- "requires": {
4449
- "arr-flatten": "^1.0.1",
4450
- "arr-map": "^2.0.0",
4451
- "bach": "^1.0.0",
4452
- "collection-map": "^1.0.0",
4453
- "es6-weak-map": "^2.0.1",
4454
- "last-run": "^1.1.0",
4455
- "object.defaults": "^1.0.0",
4456
- "object.reduce": "^1.0.0",
4457
- "undertaker-registry": "^1.0.0"
4458
- }
4459
- },
4460
- "undertaker-registry": {
4461
- "version": "1.0.1",
4462
- "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz",
4463
- "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=",
4464
- "dev": true
4465
- },
4466
- "union-value": {
4467
- "version": "1.0.1",
4468
- "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
4469
- "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
4470
- "dev": true,
4471
- "requires": {
4472
- "arr-union": "^3.1.0",
4473
- "get-value": "^2.0.6",
4474
- "is-extendable": "^0.1.1",
4475
- "set-value": "^2.0.1"
4476
- }
4477
- },
4478
- "unique-stream": {
4479
- "version": "2.3.1",
4480
- "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
4481
- "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
4482
- "dev": true,
4483
- "requires": {
4484
- "json-stable-stringify-without-jsonify": "^1.0.1",
4485
- "through2-filter": "^3.0.0"
4486
- }
4487
- },
4488
- "unset-value": {
4489
- "version": "1.0.0",
4490
- "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
4491
- "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
4492
- "dev": true,
4493
- "requires": {
4494
- "has-value": "^0.3.1",
4495
- "isobject": "^3.0.0"
4496
- },
4497
- "dependencies": {
4498
- "has-value": {
4499
- "version": "0.3.1",
4500
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
4501
- "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
4502
- "dev": true,
4503
- "requires": {
4504
- "get-value": "^2.0.3",
4505
- "has-values": "^0.1.4",
4506
- "isobject": "^2.0.0"
4507
- },
4508
- "dependencies": {
4509
- "isobject": {
4510
- "version": "2.1.0",
4511
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
4512
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
4513
- "dev": true,
4514
- "requires": {
4515
- "isarray": "1.0.0"
4516
- }
4517
- }
4518
- }
4519
- },
4520
- "has-values": {
4521
- "version": "0.1.4",
4522
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
4523
- "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
4524
- "dev": true
4525
- }
4526
- }
4527
- },
4528
- "upath": {
4529
- "version": "1.1.2",
4530
- "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz",
4531
- "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==",
4532
- "dev": true
4533
- },
4534
- "urix": {
4535
- "version": "0.1.0",
4536
- "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
4537
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
4538
- "dev": true
4539
- },
4540
- "use": {
4541
- "version": "3.1.1",
4542
- "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
4543
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
4544
- "dev": true
4545
- },
4546
- "user-home": {
4547
- "version": "1.1.1",
4548
- "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
4549
- "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=",
4550
- "dev": true
4551
- },
4552
- "util-deprecate": {
4553
- "version": "1.0.2",
4554
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
4555
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
4556
- "dev": true
4557
- },
4558
- "v8flags": {
4559
- "version": "3.1.3",
4560
- "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz",
4561
- "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==",
4562
- "dev": true,
4563
- "requires": {
4564
- "homedir-polyfill": "^1.0.1"
4565
- }
4566
- },
4567
- "validate-npm-package-license": {
4568
- "version": "3.0.4",
4569
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
4570
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
4571
- "dev": true,
4572
- "requires": {
4573
- "spdx-correct": "^3.0.0",
4574
- "spdx-expression-parse": "^3.0.0"
4575
- }
4576
- },
4577
- "value-or-function": {
4578
- "version": "3.0.0",
4579
- "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz",
4580
- "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=",
4581
- "dev": true
4582
- },
4583
- "vinyl": {
4584
- "version": "2.2.0",
4585
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
4586
- "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
4587
- "dev": true,
4588
- "requires": {
4589
- "clone": "^2.1.1",
4590
- "clone-buffer": "^1.0.0",
4591
- "clone-stats": "^1.0.0",
4592
- "cloneable-readable": "^1.0.0",
4593
- "remove-trailing-separator": "^1.0.1",
4594
- "replace-ext": "^1.0.0"
4595
- }
4596
- },
4597
- "vinyl-fs": {
4598
- "version": "3.0.3",
4599
- "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz",
4600
- "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==",
4601
- "dev": true,
4602
- "requires": {
4603
- "fs-mkdirp-stream": "^1.0.0",
4604
- "glob-stream": "^6.1.0",
4605
- "graceful-fs": "^4.0.0",
4606
- "is-valid-glob": "^1.0.0",
4607
- "lazystream": "^1.0.0",
4608
- "lead": "^1.0.0",
4609
- "object.assign": "^4.0.4",
4610
- "pumpify": "^1.3.5",
4611
- "readable-stream": "^2.3.3",
4612
- "remove-bom-buffer": "^3.0.0",
4613
- "remove-bom-stream": "^1.2.0",
4614
- "resolve-options": "^1.1.0",
4615
- "through2": "^2.0.0",
4616
- "to-through": "^2.0.0",
4617
- "value-or-function": "^3.0.0",
4618
- "vinyl": "^2.0.0",
4619
- "vinyl-sourcemap": "^1.1.0"
4620
- }
4621
- },
4622
- "vinyl-sourcemap": {
4623
- "version": "1.1.0",
4624
- "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz",
4625
- "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=",
4626
- "dev": true,
4627
- "requires": {
4628
- "append-buffer": "^1.0.2",
4629
- "convert-source-map": "^1.5.0",
4630
- "graceful-fs": "^4.1.6",
4631
- "normalize-path": "^2.1.1",
4632
- "now-and-later": "^2.0.0",
4633
- "remove-bom-buffer": "^3.0.0",
4634
- "vinyl": "^2.0.0"
4635
- }
4636
- },
4637
- "vinyl-sourcemaps-apply": {
4638
- "version": "0.2.1",
4639
- "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz",
4640
- "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
4641
- "dev": true,
4642
- "requires": {
4643
- "source-map": "^0.5.1"
4644
- }
4645
- },
4646
- "which": {
4647
- "version": "1.3.1",
4648
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
4649
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
4650
- "dev": true,
4651
- "requires": {
4652
- "isexe": "^2.0.0"
4653
- }
4654
- },
4655
- "which-module": {
4656
- "version": "1.0.0",
4657
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
4658
- "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
4659
- "dev": true
4660
- },
4661
- "wp-pot": {
4662
- "version": "1.8.0",
4663
- "resolved": "https://registry.npmjs.org/wp-pot/-/wp-pot-1.8.0.tgz",
4664
- "integrity": "sha512-/mAX/emTaZ8IByXLVWHILzP6Epm22kk09S5vaUD20xpirqV6EzTF4Cn5JPivcbanczo6Bb98JR6B/mL8EHHQMA==",
4665
- "dev": true,
4666
- "requires": {
4667
- "matched": "^4.0.0",
4668
- "path-sort": "^0.1.0",
4669
- "php-parser": "^3.0.0-prerelease.9"
4670
- }
4671
- },
4672
- "wrap-ansi": {
4673
- "version": "2.1.0",
4674
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
4675
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
4676
- "dev": true,
4677
- "requires": {
4678
- "string-width": "^1.0.1",
4679
- "strip-ansi": "^3.0.1"
4680
- }
4681
- },
4682
- "wrappy": {
4683
- "version": "1.0.2",
4684
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
4685
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
4686
- "dev": true
4687
- },
4688
- "xtend": {
4689
- "version": "4.0.2",
4690
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
4691
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
4692
- "dev": true
4693
- },
4694
- "y18n": {
4695
- "version": "3.2.1",
4696
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
4697
- "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
4698
- "dev": true
4699
- },
4700
- "yargs": {
4701
- "version": "7.1.0",
4702
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
4703
- "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
4704
- "dev": true,
4705
- "requires": {
4706
- "camelcase": "^3.0.0",
4707
- "cliui": "^3.2.0",
4708
- "decamelize": "^1.1.1",
4709
- "get-caller-file": "^1.0.1",
4710
- "os-locale": "^1.4.0",
4711
- "read-pkg-up": "^1.0.1",
4712
- "require-directory": "^2.1.1",
4713
- "require-main-filename": "^1.0.1",
4714
- "set-blocking": "^2.0.0",
4715
- "string-width": "^1.0.2",
4716
- "which-module": "^1.0.0",
4717
- "y18n": "^3.2.1",
4718
- "yargs-parser": "^5.0.0"
4719
- }
4720
- },
4721
- "yargs-parser": {
4722
- "version": "5.0.0",
4723
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
4724
- "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
4725
- "dev": true,
4726
- "requires": {
4727
- "camelcase": "^3.0.0"
4728
- }
4729
- }
4730
- }
4731
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
package.json DELETED
@@ -1,31 +0,0 @@
1
- {
2
- "name": "yith-woocommerce-wishlist",
3
- "version": "3.0.0",
4
- "description": "YITH WooCommerce Wishlist gives your users the possibility to create, fill, manage and share their wishlists allowing you to analyze their interests and needs to improve your marketing strategies.",
5
- "main": "gulpfile.js",
6
- "scripts": {
7
- "test": "gulp"
8
- },
9
- "keywords": [
10
- "wishlist",
11
- "woocommerce",
12
- "products",
13
- "e-commerce",
14
- "shop",
15
- "ecommerce",
16
- "yith"
17
- ],
18
- "author": "YITH <plugins@yithemes.com>",
19
- "license": "GPL-3.0",
20
- "homepage": "https://yithemes.com/themes/plugins/yith-woocommerce-wishlist/",
21
- "devDependencies": {
22
- "gulp": "^4.0.0",
23
- "gulp-clean-css": "^4.0.0",
24
- "gulp-jshint": "^2.1.0",
25
- "gulp-po-sync": "^0.1.0",
26
- "gulp-po2mo": "^1.0.3",
27
- "gulp-uglify-es": "^2.0.0",
28
- "gulp-wp-pot": "^2.3.5",
29
- "jshint": "^2.11.0"
30
- }
31
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
plugin-fw/.jshintrc DELETED
@@ -1,26 +0,0 @@
1
- {
2
- "boss": true,
3
- "curly": true,
4
- "eqeqeq": true,
5
- "eqnull": true,
6
- "es3": true,
7
- "expr": true,
8
- "immed": true,
9
- "noarg": true,
10
- "onevar": true,
11
- "trailing": true,
12
- "undef": true,
13
- "unused": true,
14
-
15
- "browser": true,
16
-
17
- "globals": {
18
- "_": false,
19
- "Backbone": false,
20
- "jQuery": true,
21
- "console": true,
22
- "alert": true,
23
- "JSON": false,
24
- "wp": false
25
- }
26
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
plugin-fw/Gruntfile.js DELETED
@@ -1,144 +0,0 @@
1
- const potInfo = {
2
- languageFolderPath: './languages/',
3
- filename : 'yith-plugin-fw.pot',
4
- headers : {
5
- poedit : true, // Includes common Poedit headers.
6
- 'x-poedit-keywordslist': true, // Include a list of all possible gettext functions.
7
- 'report-msgid-bugs-to' : 'YITH <plugins@yithemes.com>',
8
- 'language-team' : 'YITH <info@yithemes.com>'
9
- }
10
- };
11
-
12
- module.exports = function ( grunt ) {
13
- 'use strict';
14
-
15
- grunt.initConfig( {
16
- dirs: {
17
- css: 'assets/css',
18
- js : 'assets/js'
19
- },
20
-
21
- uglify: {
22
- options: {
23
- ie8 : true,
24
- parse : {
25
- strict: false
26
- },
27
- output: {
28
- comments: /@license|@preserve|^!/
29
- }
30
- },
31
- common : {
32
- files: [{
33
- expand: true,
34
- cwd : '<%= dirs.js %>/',
35
- src : ['*.js', '!*.min.js'],
36
- dest : '<%= dirs.js %>/',
37
- rename: function ( dst, src ) {
38
- // To keep the source js files and make new files as `*.min.js`:
39
- return dst + '/' + src.replace( '.js', '.min.js' );
40
- }
41
- }]
42
- }
43
- },
44
-
45
- jshint: {
46
- options: {
47
- jshintrc: '.jshintrc'
48
- },
49
- all : [
50
- '<%= dirs.js %>/*.js',
51
- '!<%= dirs.js %>/*.min.js'
52
- ]
53
- },
54
-
55
-
56
- makepot: {
57
- options: {
58
- type : 'wp-plugin',
59
- domainPath : 'languages',
60
- domain : 'yith-plugin-fw',
61
- potHeaders : potInfo.headers,
62
- updatePoFiles: false
63
- },
64
- dist : {
65
- options: {
66
- potFilename: potInfo.filename,
67
- exclude : [
68
- 'bin/.*',
69
- 'node_modules/.*',
70
- 'tests/.*',
71
- 'tmp/.*',
72
- 'vendor/.*'
73
- ]
74
- }
75
- }
76
- },
77
- update_po: {
78
- options: {
79
- template: potInfo.languageFolderPath + potInfo.filename
80
- },
81
- build : {
82
- src: potInfo.languageFolderPath + '*.po'
83
- }
84
- }
85
-
86
- } );
87
-
88
- grunt.registerMultiTask( 'update_po', 'This task update .po strings by .pot', function () {
89
- grunt.log.writeln( 'Updating .po files.' );
90
-
91
- var done = this.async(),
92
- options = this.options(),
93
- template = options.template;
94
- this.files.forEach( function ( file ) {
95
- if ( file.src.length ) {
96
- var counter = file.src.length;
97
-
98
- grunt.log.writeln( 'Processing ' + file.src.length + ' files.' );
99
-
100
- file.src.forEach( function ( fileSrc ) {
101
- grunt.util.spawn( {
102
- cmd : 'msgmerge',
103
- args: ['-U', fileSrc, template]
104
- }, function ( error, result, code ) {
105
- const output = fileSrc.replace( '.po', '.mo' );
106
- grunt.log.writeln( 'Updating: ' + fileSrc + ' ...' );
107
-
108
- if ( error ) {
109
- grunt.verbose.error();
110
- } else {
111
- grunt.verbose.ok();
112
- }
113
-
114
- // Updating also the .mo files
115
- grunt.util.spawn( {
116
- cmd : 'msgfmt',
117
- args: [fileSrc, '-o', output]
118
- }, function ( moError, moResult, moCode ) {
119
- grunt.log.writeln( 'Updating MO for: ' + fileSrc + ' ...' );
120
- counter--;
121
- if ( moError || counter === 0 ) {
122
- done( moError );
123
- }
124
- } );
125
- if ( error ) {
126
- done( error );
127
- }
128
- } );
129
- } );
130
- } else {
131
- grunt.log.writeln( 'No file to process.' );
132
- }
133
- } );
134
- } );
135
-
136
- // Load NPM tasks to be used here.
137
- grunt.loadNpmTasks( 'grunt-wp-i18n' );
138
-
139
- // Use uglify-es (instead of uglify) to uglify also JS for ES6.
140
- grunt.loadNpmTasks( 'grunt-contrib-uglify-es' );
141
-
142
- // Register tasks.
143
- grunt.registerTask( 'js', ['uglify'] );
144
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
plugin-fw/LICENSE.txt ADDED
@@ -0,0 +1,696 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ YITH Plugin Framework
2
+
3
+ Copyright 2015 Your Inspiration Themes (email : plugins@yithemes.com)
4
+
5
+ This program is free software; you can redistribute it and/or modify
6
+ it under the terms of the GNU General Public License as published by
7
+ the Free Software Foundation; either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ This program is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License
16
+ along with this program; if not, write to the Free Software
17
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18
+
19
+ YITH Plugin Framework is released under the GPL
20
+
21
+ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22
+
23
+ GNU GENERAL PUBLIC LICENSE
24
+ Version 3, 29 June 2007
25
+
26
+ Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
27
+ Everyone is permitted to copy and distribute verbatim copies
28
+ of this license document, but changing it is not allowed.
29
+
30
+ Preamble
31
+
32
+ The GNU General Public License is a free, copyleft license for
33
+ software and other kinds of works.
34
+
35
+ The licenses for most software and other practical works are designed
36
+ to take away your freedom to share and change the works. By contrast,
37
+ the GNU General Public License is intended to guarantee your freedom to
38
+ share and change all versions of a program--to make sure it remains free
39
+ software for all its users. We, the Free Software Foundation, use the
40
+ GNU General Public License for most of our software; it applies also to
41
+ any other work released this way by its authors. You can apply it to
42
+ your programs, too.
43
+
44
+ When we speak of free software, we are referring to freedom, not
45
+ price. Our General Public Licenses are designed to make sure that you
46
+ have the freedom to distribute copies of free software (and charge for
47
+ them if you wish), that you receive source code or can get it if you
48
+ want it, that you can change the software or use pieces of it in new
49
+ free programs, and that you know you can do these things.
50
+
51
+ To protect your rights, we need to prevent others from denying you
52
+ these rights or asking you to surrender the rights. Therefore, you have
53
+ certain responsibilities if you distribute copies of the software, or if
54
+ you modify it: responsibilities to respect the freedom of others.
55
+
56
+ For example, if you distribute copies of such a program, whether
57
+ gratis or for a fee, you must pass on to the recipients the same
58
+ freedoms that you received. You must make sure that they, too, receive
59
+ or can get the source code. And you must show them these terms so they
60
+ know their rights.
61
+
62
+ Developers that use the GNU GPL protect your rights with two steps:
63
+ (1) assert copyright on the software, and (2) offer you this License
64
+ giving you legal permission to copy, distribute and/or modify it.
65
+
66
+ For the developers' and authors' protection, the GPL clearly explains
67
+ that there is no warranty for this free software. For both users' and
68
+ authors' sake, the GPL requires that modified versions be marked as
69
+ changed, so that their problems will not be attributed erroneously to
70
+ authors of previous versions.
71
+
72
+ Some devices are designed to deny users access to install or run
73
+ modified versions of the software inside them, although the manufacturer
74
+ can do so. This is fundamentally incompatible with the aim of
75
+ protecting users' freedom to change the software. The systematic
76
+ pattern of such abuse occurs in the area of products for individuals to
77
+ use, which is precisely where it is most unacceptable. Therefore, we
78
+ have designed this version of the GPL to prohibit the practice for those
79
+ products. If such problems arise substantially in other domains, we
80
+ stand ready to extend this provision to those domains in future versions
81
+ of the GPL, as needed to protect the freedom of users.
82
+
83
+ Finally, every program is threatened constantly by software patents.
84
+ States should not allow patents to restrict development and use of
85
+ software on general-purpose computers, but in those that do, we wish to
86
+ avoid the special danger that patents applied to a free program could
87
+ make it effectively proprietary. To prevent this, the GPL assures that
88
+ patents cannot be used to render the program non-free.
89
+
90
+ The precise terms and conditions for copying, distribution and
91
+ modification follow.
92
+
93
+ TERMS AND CONDITIONS
94
+
95
+ 0. Definitions.
96
+
97
+ "This License" refers to version 3 of the GNU General Public License.
98
+
99
+ "Copyright" also means copyright-like laws that apply to other kinds of
100
+ works, such as semiconductor masks.
101
+
102
+ "The Program" refers to any copyrightable work licensed under this
103
+ License. Each licensee is addressed as "you". "Licensees" and
104
+ "recipients" may be individuals or organizations.
105
+
106
+ To "modify" a work means to copy from or adapt all or part of the work
107
+ in a fashion requiring copyright permission, other than the making of an
108
+ exact copy. The resulting work is called a "modified version" of the
109
+ earlier work or a work "based on" the earlier work.
110
+
111
+ A "covered work" means either the unmodified Program or a work based
112
+ on the Program.
113
+
114
+ To "propagate" a work means to do anything with it that, without
115
+ permission, would make you directly or secondarily liable for
116
+ infringement under applicable copyright law, except executing it on a
117
+ computer or modifying a private copy. Propagation includes copying,
118
+ distribution (with or without modification), making available to the
119
+ public, and in some countries other activities as well.
120
+
121
+ To "convey" a work means any kind of propagation that enables other
122
+ parties to make or receive copies. Mere interaction with a user through
123
+ a computer network, with no transfer of a copy, is not conveying.
124
+
125
+ An interactive user interface displays "Appropriate Legal Notices"
126
+ to the extent that it includes a convenient and prominently visible
127
+ feature that (1) displays an appropriate copyright notice, and (2)
128
+ tells the user that there is no warranty for the work (except to the
129
+ extent that warranties are provided), that licensees may convey the
130
+ work under this License, and how to view a copy of this License. If
131
+ the interface presents a list of user commands or options, such as a
132
+ menu, a prominent item in the list meets this criterion.
133
+
134
+ 1. Source Code.
135
+
136
+ The "source code" for a work means the preferred form of the work
137
+ for making modifications to it. "Object code" means any non-source
138
+ form of a work.
139
+
140
+ A "Standard Interface" means an interface that either is an official
141
+ standard defined by a recognized standards body, or, in the case of
142
+ interfaces specified for a particular programming language, one that
143
+ is widely used among developers working in that language.
144
+
145
+ The "System Libraries" of an executable work include anything, other
146
+ than the work as a whole, that (a) is included in the normal form of
147
+ packaging a Major Component, but which is not part of that Major
148
+ Component, and (b) serves only to enable use of the work with that
149
+ Major Component, or to implement a Standard Interface for which an
150
+ implementation is available to the public in source code form. A
151
+ "Major Component", in this context, means a major essential component
152
+ (kernel, window system, and so on) of the specific operating system
153
+ (if any) on which the executable work runs, or a compiler used to
154
+ produce the work, or an object code interpreter used to run it.
155
+
156
+ The "Corresponding Source" for a work in object code form means all
157
+ the source code needed to generate, install, and (for an executable
158
+ work) run the object code and to modify the work, including scripts to
159
+ control those activities. However, it does not include the work's
160
+ System Libraries, or general-purpose tools or generally available free
161
+ programs which are used unmodified in performing those activities but
162
+ which are not part of the work. For example, Corresponding Source
163
+ includes interface definition files associated with source files for
164
+ the work, and the source code for shared libraries and dynamically
165
+ linked subprograms that the work is specifically designed to require,
166
+ such as by intimate data communication or control flow between those
167
+ subprograms and other parts of the work.
168
+
169
+ The Corresponding Source need not include anything that users
170
+ can regenerate automatically from other parts of the Corresponding
171
+ Source.
172
+
173
+ The Corresponding Source for a work in source code form is that
174
+ same work.
175
+
176
+ 2. Basic Permissions.
177
+
178
+ All rights granted under this License are granted for the term of
179
+ copyright on the Program, and are irrevocable provided the stated
180
+ conditions are met. This License explicitly affirms your unlimited
181
+ permission to run the unmodified Program. The output from running a
182
+ covered work is covered by this License only if the output, given its
183
+ content, constitutes a covered work. This License acknowledges your
184
+ rights of fair use or other equivalent, as provided by copyright law.
185
+
186
+ You may make, run and propagate covered works that you do not
187
+ convey, without conditions so long as your license otherwise remains
188
+ in force. You may convey covered works to others for the sole purpose
189
+ of having them make modifications exclusively for you, or provide you
190
+ with facilities for running those works, provided that you comply with
191
+ the terms of this License in conveying all material for which you do
192
+ not control copyright. Those thus making or running the covered works
193
+ for you must do so exclusively on your behalf, under your direction
194
+ and control, on terms that prohibit them from making any copies of
195
+ your copyrighted material outside their relationship with you.
196
+
197
+ Conveying under any other circumstances is permitted solely under
198
+ the conditions stated below. Sublicensing is not allowed; section 10
199
+ makes it unnecessary.
200
+
201
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
202
+
203
+ No covered work shall be deemed part of an effective technological
204
+ measure under any applicable law fulfilling obligations under article
205
+ 11 of the WIPO copyright treaty adopted on 20 December 1996, or
206
+ similar laws prohibiting or restricting circumvention of such
207
+ measures.
208
+
209
+ When you convey a covered work, you waive any legal power to forbid
210
+ circumvention of technological measures to the extent such circumvention
211
+ is effected by exercising rights under this License with respect to
212
+ the covered work, and you disclaim any intention to limit operation or
213
+ modification of the work as a means of enforcing, against the work's
214
+ users, your or third parties' legal rights to forbid circumvention of
215
+ technological measures.
216
+
217
+ 4. Conveying Verbatim Copies.
218
+
219
+ You may convey verbatim copies of the Program's source code as you
220
+ receive it, in any medium, provided that you conspicuously and
221
+ appropriately publish on each copy an appropriate copyright notice;
222
+ keep intact all notices stating that this License and any
223
+ non-permissive terms added in accord with section 7 apply to the code;
224
+ keep intact all notices of the absence of any warranty; and give all
225
+ recipients a copy of this License along with the Program.
226
+
227
+ You may charge any price or no price for each copy that you convey,
228
+ and you may offer support or warranty protection for a fee.
229
+
230
+ 5. Conveying Modified Source Versions.
231
+
232
+ You may convey a work based on the Program, or the modifications to
233
+ produce it from the Program, in the form of source code under the
234
+ terms of section 4, provided that you also meet all of these conditions:
235
+
236
+ a) The work must carry prominent notices stating that you modified
237
+ it, and giving a relevant date.
238
+
239
+ b) The work must carry prominent notices stating that it is
240
+ released under this License and any conditions added under section
241
+ 7. This requirement modifies the requirement in section 4 to
242
+ "keep intact all notices".
243
+
244
+ c) You must license the entire work, as a whole, under this
245
+ License to anyone who comes into possession of a copy. This
246
+ License will therefore apply, along with any applicable section 7
247
+ additional terms, to the whole of the work, and all its parts,
248
+ regardless of how they are packaged. This License gives no
249
+ permission to license the work in any other way, but it does not
250
+ invalidate such permission if you have separately received it.
251
+
252
+ d) If the work has interactive user interfaces, each must display
253
+ Appropriate Legal Notices; however, if the Program has interactive
254
+ interfaces that do not display Appropriate Legal Notices, your
255
+ work need not make them do so.
256
+
257
+ A compilation of a covered work with other separate and independent
258
+ works, which are not by their nature extensions of the covered work,
259
+ and which are not combined with it such as to form a larger program,
260
+ in or on a volume of a storage or distribution medium, is called an
261
+ "aggregate" if the compilation and its resulting copyright are not
262
+ used to limit the access or legal rights of the compilation's users
263
+ beyond what the individual works permit. Inclusion of a covered work
264
+ in an aggregate does not cause this License to apply to the other
265
+ parts of the aggregate.
266
+
267
+ 6. Conveying Non-Source Forms.
268
+
269
+ You may convey a covered work in object code form under the terms
270
+ of sections 4 and 5, provided that you also convey the
271
+ machine-readable Corresponding Source under the terms of this License,
272
+ in one of these ways:
273
+
274
+ a) Convey the object code in, or embodied in, a physical product
275
+ (including a physical distribution medium), accompanied by the
276
+ Corresponding Source fixed on a durable physical medium
277
+ customarily used for software interchange.
278
+
279
+ b) Convey the object code in, or embodied in, a physical product
280
+ (including a physical distribution medium), accompanied by a
281
+ written offer, valid for at least three years and valid for as
282
+ long as you offer spare parts or customer support for that product
283
+ model, to give anyone who possesses the object code either (1) a
284
+ copy of the Corresponding Source for all the software in the
285
+ product that is covered by this License, on a durable physical
286
+ medium customarily used for software interchange, for a price no
287
+ more than your reasonable cost of physically performing this
288
+ conveying of source, or (2) access to copy the
289
+ Corresponding Source from a network server at no charge.
290
+
291
+ c) Convey individual copies of the object code with a copy of the
292
+ written offer to provide the Corresponding Source. This
293
+ alternative is allowed only occasionally and noncommercially, and
294
+ only if you received the object code with such an offer, in accord
295
+ with subsection 6b.
296
+
297
+ d) Convey the object code by offering access from a designated
298
+ place (gratis or for a charge), and offer equivalent access to the
299
+ Corresponding Source in the same way through the same place at no
300
+ further charge. You need not require recipients to copy the
301
+ Corresponding Source along with the object code. If the place to
302
+ copy the object code is a network server, the Corresponding Source
303
+ may be on a different server (operated by you or a third party)
304
+ that supports equivalent copying facilities, provided you maintain
305
+ clear directions next to the object code saying where to find the
306
+ Corresponding Source. Regardless of what server hosts the
307
+ Corresponding Source, you remain obligated to ensure that it is
308
+ available for as long as needed to satisfy these requirements.
309
+
310
+ e) Convey the object code using peer-to-peer transmission, provided
311
+ you inform other peers where the object code and Corresponding
312
+ Source of the work are being offered to the general public at no
313
+ charge under subsection 6d.
314
+
315
+ A separable portion of the object code, whose source code is excluded
316
+ from the Corresponding Source as a System Library, need not be
317
+ included in conveying the object code work.
318
+
319
+ A "User Product" is either (1) a "consumer product", which means any
320
+ tangible personal property which is normally used for personal, family,
321
+ or household purposes, or (2) anything designed or sold for incorporation
322
+ into a dwelling. In determining whether a product is a consumer product,
323
+ doubtful cases shall be resolved in favor of coverage. For a particular
324
+ product received by a particular user, "normally used" refers to a
325
+ typical or common use of that class of product, regardless of the status
326
+ of the particular user or of the way in which the particular user
327
+ actually uses, or expects or is expected to use, the product. A product
328
+ is a consumer product regardless of whether the product has substantial
329
+ commercial, industrial or non-consumer uses, unless such uses represent
330
+ the only significant mode of use of the product.
331
+
332
+ "Installation Information" for a User Product means any methods,
333
+ procedures, authorization keys, or other information required to install
334
+ and execute modified versions of a covered work in that User Product from
335
+ a modified version of its Corresponding Source. The information must
336
+ suffice to ensure that the continued functioning of the modified object
337
+ code is in no case prevented or interfered with solely because
338
+ modification has been made.
339
+
340
+ If you convey an object code work under this section in, or with, or
341
+ specifically for use in, a User Product, and the conveying occurs as
342
+ part of a transaction in which the right of possession and use of the
343
+ User Product is transferred to the recipient in perpetuity or for a
344
+ fixed term (regardless of how the transaction is characterized), the
345
+ Corresponding Source conveyed under this section must be accompanied
346
+ by the Installation Information. But this requirement does not apply
347
+ if neither you nor any third party retains the ability to install
348
+ modified object code on the User Product (for example, the work has
349
+ been installed in ROM).
350
+
351
+ The requirement to provide Installation Information does not include a
352
+ requirement to continue to provide support service, warranty, or updates
353
+ for a work that has been modified or installed by the recipient, or for
354
+ the User Product in which it has been modified or installed. Access to a
355
+ network may be denied when the modification itself materially and
356
+ adversely affects the operation of the network or violates the rules and
357
+ protocols for communication across the network.
358
+
359
+ Corresponding Source conveyed, and Installation Information provided,
360
+ in accord with this section must be in a format that is publicly
361
+ documented (and with an implementation available to the public in
362
+ source code form), and must require no special password or key for
363
+ unpacking, reading or copying.
364
+
365
+ 7. Additional Terms.
366
+
367
+ "Additional permissions" are terms that supplement the terms of this
368
+ License by making exceptions from one or more of its conditions.
369
+ Additional permissions that are applicable to the entire Program shall
370
+ be treated as though they were included in this License, to the extent
371
+ that they are valid under applicable law. If additional permissions
372
+ apply only to part of the Program, that part may be used separately
373
+ under those permissions, but the entire Program remains governed by
374
+ this License without regard to the additional permissions.
375
+
376
+ When you convey a copy of a covered work, you may at your option
377
+ remove any additional permissions from that copy, or from any part of
378
+ it. (Additional permissions may be written to require their own
379
+ removal in certain cases when you modify the work.) You may place
380
+ additional permissions on material, added by you to a covered work,
381
+ for which you have or can give appropriate copyright permission.
382
+
383
+ Notwithstanding any other provision of this License, for material you
384
+ add to a covered work, you may (if authorized by the copyright holders of
385
+ that material) supplement the terms of this License with terms:
386
+
387
+ a) Disclaiming warranty or limiting liability differently from the
388
+ terms of sections 15 and 16 of this License; or
389
+
390
+ b) Requiring preservation of specified reasonable legal notices or
391
+ author attributions in that material or in the Appropriate Legal
392
+ Notices displayed by works containing it; or
393
+
394
+ c) Prohibiting misrepresentation of the origin of that material, or
395
+ requiring that modified versions of such material be marked in
396
+ reasonable ways as different from the original version; or
397
+
398
+ d) Limiting the use for publicity purposes of names of licensors or
399
+ authors of the material; or
400
+
401
+ e) Declining to grant rights under trademark law for use of some
402
+ trade names, trademarks, or service marks; or
403
+
404
+ f) Requiring indemnification of licensors and authors of that
405
+ material by anyone who conveys the material (or modified versions of
406
+ it) with contractual assumptions of liability to the recipient, for
407
+ any liability that these contractual assumptions directly impose on
408
+ those licensors and authors.
409
+
410
+ All other non-permissive additional terms are considered "further
411
+ restrictions" within the meaning of section 10. If the Program as you
412
+ received it, or any part of it, contains a notice stating that it is
413
+ governed by this License along with a term that is a further
414
+ restriction, you may remove that term. If a license document contains
415
+ a further restriction but permits relicensing or conveying under this
416
+ License, you may add to a covered work material governed by the terms
417
+ of that license document, provided that the further restriction does
418
+ not survive such relicensing or conveying.
419
+
420
+ If you add terms to a covered work in accord with this section, you
421
+ must place, in the relevant source files, a statement of the
422
+ additional terms that apply to those files, or a notice indicating
423
+ where to find the applicable terms.
424
+
425
+ Additional terms, permissive or non-permissive, may be stated in the
426
+ form of a separately written license, or stated as exceptions;
427
+ the above requirements apply either way.
428
+
429
+ 8. Termination.
430
+
431
+ You may not propagate or modify a covered work except as expressly
432
+ provided under this License. Any attempt otherwise to propagate or
433
+ modify it is void, and will automatically terminate your rights under
434
+ this License (including any patent licenses granted under the third
435
+ paragraph of section 11).
436
+
437
+ However, if you cease all violation of this License, then your
438
+ license from a particular copyright holder is reinstated (a)
439
+ provisionally, unless and until the copyright holder explicitly and
440
+ finally terminates your license, and (b) permanently, if the copyright
441
+ holder fails to notify you of the violation by some reasonable means
442
+ prior to 60 days after the cessation.
443
+
444
+ Moreover, your license from a particular copyright holder is
445
+ reinstated permanently if the copyright holder notifies you of the
446
+ violation by some reasonable means, this is the first time you have
447
+ received notice of violation of this License (for any work) from that
448
+ copyright holder, and you cure the violation prior to 30 days after
449
+ your receipt of the notice.
450
+
451
+ Termination of your rights under this section does not terminate the
452
+ licenses of parties who have received copies or rights from you under
453
+ this License. If your rights have been terminated and not permanently
454
+ reinstated, you do not qualify to receive new licenses for the same
455
+ material under section 10.
456
+
457
+ 9. Acceptance Not Required for Having Copies.
458
+
459
+ You are not required to accept this License in order to receive or
460
+ run a copy of the Program. Ancillary propagation of a covered work
461
+ occurring solely as a consequence of using peer-to-peer transmission
462
+ to receive a copy likewise does not require acceptance. However,
463
+ nothing other than this License grants you permission to propagate or
464
+ modify any covered work. These actions infringe copyright if you do
465
+ not accept this License. Therefore, by modifying or propagating a
466
+ covered work, you indicate your acceptance of this License to do so.
467
+
468
+ 10. Automatic Licensing of Downstream Recipients.
469
+
470
+ Each time you convey a covered work, the recipient automatically
471
+ receives a license from the original licensors, to run, modify and
472
+ propagate that work, subject to this License. You are not responsible
473
+ for enforcing compliance by third parties with this License.
474
+
475
+ An "entity transaction" is a transaction transferring control of an
476
+ organization, or substantially all assets of one, or subdividing an
477
+ organization, or merging organizations. If propagation of a covered
478
+ work results from an entity transaction, each party to that
479
+ transaction who receives a copy of the work also receives whatever
480
+ licenses to the work the party's predecessor in interest had or could
481
+ give under the previous paragraph, plus a right to possession of the
482
+ Corresponding Source of the work from the predecessor in interest, if
483
+ the predecessor has it or can get it with reasonable efforts.
484
+
485
+ You may not impose any further restrictions on the exercise of the
486
+ rights granted or affirmed under this License. For example, you may
487
+ not impose a license fee, royalty, or other charge for exercise of
488
+ rights granted under this License, and you may not initiate litigation
489
+ (including a cross-claim or counterclaim in a lawsuit) alleging that
490
+ any patent claim is infringed by making, using, selling, offering for
491
+ sale, or importing the Program or any portion of it.
492
+
493
+ 11. Patents.
494
+
495
+ A "contributor" is a copyright holder who authorizes use under this
496
+ License of the Program or a work on which the Program is based. The
497
+ work thus licensed is called the contributor's "contributor version".
498
+
499
+ A contributor's "essential patent claims" are all patent claims
500
+ owned or controlled by the contributor, whether already acquired or
501
+ hereafter acquired, that would be infringed by some manner, permitted
502
+ by this License, of making, using, or selling its contributor version,
503
+ but do not include claims that would be infringed only as a
504
+ consequence of further modification of the contributor version. For
505
+ purposes of this definition, "control" includes the right to grant
506
+ patent sublicenses in a manner consistent with the requirements of
507
+ this License.
508
+
509
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
510
+ patent license under the contributor's essential patent claims, to
511
+ make, use, sell, offer for sale, import and otherwise run, modify and
512
+ propagate the contents of its contributor version.
513
+
514
+ In the following three paragraphs, a "patent license" is any express
515
+ agreement or commitment, however denominated, not to enforce a patent
516
+ (such as an express permission to practice a patent or covenant not to
517
+ sue for patent infringement). To "grant" such a patent license to a
518
+ party means to make such an agreement or commitment not to enforce a
519
+ patent against the party.
520
+
521
+ If you convey a covered work, knowingly relying on a patent license,
522
+ and the Corresponding Source of the work is not available for anyone
523
+ to copy, free of charge and under the terms of this License, through a
524
+ publicly available network server or other readily accessible means,
525
+ then you must either (1) cause the Corresponding Source to be so
526
+ available, or (2) arrange to deprive yourself of the benefit of the
527
+ patent license for this particular work, or (3) arrange, in a manner
528
+ consistent with the requirements of this License, to extend the patent
529
+ license to downstream recipients. "Knowingly relying" means you have
530
+ actual knowledge that, but for the patent license, your conveying the
531
+ covered work in a country, or your recipient's use of the covered work
532
+ in a country, would infringe one or more identifiable patents in that
533
+ country that you have reason to believe are valid.
534
+
535
+ If, pursuant to or in connection with a single transaction or
536
+ arrangement, you convey, or propagate by procuring conveyance of, a
537
+ covered work, and grant a patent license to some of the parties
538
+ receiving the covered work authorizing them to use, propagate, modify
539
+ or convey a specific copy of the covered work, then the patent license
540
+ you grant is automatically extended to all recipients of the covered
541
+ work and works based on it.
542
+
543
+ A patent license is "discriminatory" if it does not include within
544
+ the scope of its coverage, prohibits the exercise of, or is
545
+ conditioned on the non-exercise of one or more of the rights that are
546
+ specifically granted under this License. You may not convey a covered
547
+ work if you are a party to an arrangement with a third party that is
548
+ in the business of distributing software, under which you make payment
549
+ to the third party based on the extent of your activity of conveying
550
+ the work, and under which the third party grants, to any of the
551
+ parties who would receive the covered work from you, a discriminatory
552
+ patent license (a) in connection with copies of the covered work
553
+ conveyed by you (or copies made from those copies), or (b) primarily
554
+ for and in connection with specific products or compilations that
555
+ contain the covered work, unless you entered into that arrangement,
556
+ or that patent license was granted, prior to 28 March 2007.
557
+
558
+ Nothing in this License shall be construed as excluding or limiting
559
+ any implied license or other defenses to infringement that may
560
+ otherwise be available to you under applicable patent law.
561
+
562
+ 12. No Surrender of Others' Freedom.
563
+
564
+ If conditions are imposed on you (whether by court order, agreement or
565
+ otherwise) that contradict the conditions of this License, they do not
566
+ excuse you from the conditions of this License. If you cannot convey a
567
+ covered work so as to satisfy simultaneously your obligations under this
568
+ License and any other pertinent obligations, then as a consequence you may
569
+ not convey it at all. For example, if you agree to terms that obligate you
570
+ to collect a royalty for further conveying from those to whom you convey
571
+ the Program, the only way you could satisfy both those terms and this
572
+ License would be to refrain entirely from conveying the Program.
573
+
574
+ 13. Use with the GNU Affero General Public License.
575
+
576
+ Notwithstanding any other provision of this License, you have
577
+ permission to link or combine any covered work with a work licensed
578
+ under version 3 of the GNU Affero General Public License into a single
579
+ combined work, and to convey the resulting work. The terms of this
580
+ License will continue to apply to the part which is the covered work,
581
+ but the special requirements of the GNU Affero General Public License,
582
+ section 13, concerning interaction through a network will apply to the
583
+ combination as such.
584
+
585
+ 14. Revised Versions of this License.
586
+
587
+ The Free Software Foundation may publish revised and/or new versions of
588
+ the GNU General Public License from time to time. Such new versions will
589
+ be similar in spirit to the present version, but may differ in detail to
590
+ address new problems or concerns.
591
+
592
+ Each version is given a distinguishing version number. If the
593
+ Program specifies that a certain numbered version of the GNU General
594
+ Public License "or any later version" applies to it, you have the
595
+ option of following the terms and conditions either of that numbered
596
+ version or of any later version published by the Free Software
597
+ Foundation. If the Program does not specify a version number of the
598
+ GNU General Public License, you may choose any version ever published
599
+ by the Free Software Foundation.
600
+
601
+ If the Program specifies that a proxy can decide which future
602
+ versions of the GNU General Public License can be used, that proxy's
603
+ public statement of acceptance of a version permanently authorizes you
604
+ to choose that version for the Program.
605
+
606
+ Later license versions may give you additional or different
607
+ permissions. However, no additional obligations are imposed on any
608
+ author or copyright holder as a result of your choosing to follow a
609
+ later version.
610
+
611
+ 15. Disclaimer of Warranty.
612
+
613
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
614
+ APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
615
+ HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
616
+ OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
617
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
618
+ PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
619
+ IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
620
+ ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
621
+
622
+ 16. Limitation of Liability.
623
+
624
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
625
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
626
+ THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
627
+ GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
628
+ USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
629
+ DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
630
+ PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
631
+ EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
632
+ SUCH DAMAGES.
633
+
634
+ 17. Interpretation of Sections 15 and 16.
635
+
636
+ If the disclaimer of warranty and limitation of liability provided
637
+ above cannot be given local legal effect according to their terms,
638
+ reviewing courts shall apply local law that most closely approximates
639
+ an absolute waiver of all civil liability in connection with the
640
+ Program, unless a warranty or assumption of liability accompanies a
641
+ copy of the Program in return for a fee.
642
+
643
+ END OF TERMS AND CONDITIONS
644
+
645
+ How to Apply These Terms to Your New Programs
646
+
647
+ If you develop a new program, and you want it to be of the greatest
648
+ possible use to the public, the best way to achieve this is to make it
649
+ free software which everyone can redistribute and change under these terms.
650
+
651
+ To do so, attach the following notices to the program. It is safest
652
+ to attach them to the start of each source file to most effectively
653
+ state the exclusion of warranty; and each file should have at least
654
+ the "copyright" line and a pointer to where the full notice is found.
655
+
656
+ <one line to give the program's name and a brief idea of what it does.>
657
+ Copyright © <year> <name of author>
658
+
659
+ This program is free software: you can redistribute it and/or modify
660
+ it under the terms of the GNU General Public License as published by
661
+ the Free Software Foundation, either version 3 of the License, or
662
+ (at your option) any later version.
663
+
664
+ This program is distributed in the hope that it will be useful,
665
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
666
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
667
+ GNU General Public License for more details.
668
+
669
+ You should have received a copy of the GNU General Public License
670
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
671
+
672
+ Also add information on how to contact you by electronic and paper mail.
673
+
674
+ If the program does terminal interaction, make it output a short
675
+ notice like this when it starts in an interactive mode:
676
+
677
+ <program> Copyright © <year> <name of author>
678
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
679
+ This is free software, and you are welcome to redistribute it
680
+ under certain conditions; type `show c' for details.
681
+
682
+ The hypothetical commands `show w' and `show c' should show the appropriate
683
+ parts of the General Public License. Of course, your program's commands
684
+ might be different; for a GUI interface, you would use an "about box".
685
+
686
+ You should also get your employer (if you work as a programmer) or school,
687
+ if any, to sign a "copyright disclaimer" for the program, if necessary.
688
+ For more information on this, and how to apply and follow the GNU GPL, see
689
+ <https://www.gnu.org/licenses/>.
690
+
691
+ The GNU General Public License does not permit incorporating your program
692
+ into proprietary programs. If your program is a subroutine library, you
693
+ may consider it more useful to permit linking proprietary applications with
694
+ the library. If this is what you want to do, use the GNU Lesser General
695
+ Public License instead of this License. But first, please read
696
+ <https://www.gnu.org/philosophy/why-not-lgpl.html>.
plugin-fw/assets/css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png ADDED
Binary file
plugin-fw/assets/css/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png ADDED
Binary file
plugin-fw/assets/css/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png ADDED
Binary file
plugin-fw/assets/css/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png ADDED
Binary file
plugin-fw/assets/css/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png ADDED
Binary file
plugin-fw/assets/css/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png ADDED
Binary file
plugin-fw/assets/css/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png ADDED
Binary file
plugin-fw/assets/css/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png ADDED
Binary file
plugin-fw/assets/css/jquery-ui/images/ui-icons_222222_256x240.png ADDED
Binary file
plugin-fw/assets/css/jquery-ui/images/ui-icons_2e83ff_256x240.png ADDED
Binary file
plugin-fw/assets/css/jquery-ui/images/ui-icons_454545_256x240.png ADDED
Binary file
plugin-fw/assets/css/jquery-ui/images/ui-icons_888888_256x240.png ADDED
Binary file
plugin-fw/assets/css/jquery-ui/images/ui-icons_cd0a0a_256x240.png ADDED
Binary file
plugin-fw/assets/css/jquery-ui/jquery-ui.min.css ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.11.4 - 2015-03-11
2
+ * http://jqueryui.com
3
+ * Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
+ * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
6
+
7
+ .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{-webkit-filter:inherit;filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
plugin-fw/assets/css/metaboxes.css CHANGED
@@ -126,6 +126,7 @@
126
  width : auto !important;
127
  display : inline-block;
128
  font-weight : normal;
 
129
  }
130
 
131
  .metaboxes-tab input[type="checkbox"] {
126
  width : auto !important;
127
  display : inline-block;
128
  font-weight : normal;
129
+ float : none;
130
  }
131
 
132
  .metaboxes-tab input[type="checkbox"] {
plugin-fw/assets/css/yit-plugin-panel.css CHANGED
@@ -46,17 +46,22 @@
46
  margin-right : 15px;
47
  }
48
 
49
- .yith-plugin-fw-panel-custom-tab-container > h2 {
50
- border : none;
51
- padding : 15px 0;
52
  }
53
 
54
- .yith-plugin-ui .yith-plugin-fw-panel-custom-tab-container{
55
- border: 1px solid #ddd;
56
- border-top : 0;
 
 
 
57
  }
58
 
59
- .yith-plugin-ui .yith-plugin-fw-panel-custom-tab-container > h2 {
 
 
60
  border : none;
61
  padding : 15px 0;
62
  }
@@ -88,13 +93,14 @@
88
  .yith-plugin-fw-wp-page-wrapper .wrap {
89
  border : 1px solid #d8d8d8;
90
  border-top : 0;
91
- margin: 0px 15px 0 0;
92
  background : #fff;
93
  padding : 20px;
94
  box-sizing : border-box;
95
  }
96
- .yith-plugin-fw-wp-page-wrapper .wrap.subnav-wrap .wrap{
97
- margin-top: -20px;
 
98
  }
99
 
100
  #wpwrap .yith-plugin-fw-wp-page-wrapper .yith-plugin-ui h2.nav-tab-wrapper, #wpbody-content .yith-plugin-fw-wp-page-wrapper .yith-plugin-ui h2.nav-tab-wrapper {
@@ -107,13 +113,12 @@
107
 
108
  .yith-plugin-fw-wp-page-wrapper h1.nav-tab-wrapper, .yith-plugin-fw-wp-page-wrapper h2.nav-tab-wrapper, .yith-plugin-fw-wp-page-wrapper .nav-tab-wrapper {
109
  padding-top : 9px;
110
- padding-bottom: 0;
111
  }
112
 
113
  .yith-plugin-fw-wp-page-wrapper .wrap h1.wp-heading-inline {
114
  color : #2a8db0;
115
- font-size : 15px;
116
- text-transform : uppercase;
117
  font-weight : 600;
118
  }
119
 
@@ -511,6 +516,7 @@
511
  #wpwrap h2.nav-tab-wrapper, #wpbody-content h2.nav-tab-wrapper {
512
  border-bottom : 1px solid #ccc;
513
  margin-right : 15px;
 
514
  }
515
 
516
  /* === YIT FRAMEWORK === */
@@ -529,12 +535,13 @@
529
  .yith-plugin-ui .yit-admin-panel-container {
530
  position : relative;
531
  margin-right : 15px;
532
- margin-top: -3px;
533
- z-index: 0;
534
- border-top: 1px solid #dbdada;
535
  }
 
536
  .yit-admin-panel-content-wrap {
537
- width: auto;
538
  display : block;
539
  }
540
 
@@ -569,37 +576,39 @@
569
  */
570
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav {
571
  background : #fff;
572
- padding: 10px 14px 0px 20px;
573
  box-sizing : border-box;
574
- margin-right: 15px;
575
  border-left : 1px solid #d8d8d8;
576
  border-right : 1px solid #d8d8d8;
577
- margin-top: -2px;
578
  }
579
- .yith-plugin-ui .yith-plugin-fw-wp-page-wrapper .wrap{
580
- margin-top: -29px;
 
581
  }
 
582
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav h3.nav-tab-wrapper {
583
- text-transform : uppercase;
584
- line-height : inherit;
585
- font-weight : 600;
586
- margin-right: 21px;
587
- box-sizing: border-box;
588
- background-color: #f1f1f1;
589
- padding-top: 0;
590
- border: 1px solid #ccc;
591
- border-bottom: 0;
592
- margin-top: 20px;
593
  }
594
 
595
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab {
596
  line-height : 1.71428571;
597
  margin-left : 0;
598
  margin-right : 0;
599
- background-color: #f1f1f1;
600
  color : #336374;
601
  font-size : 13px;
602
- padding: 8px 20px 9px;
603
  border : 0;
604
  }
605
 
@@ -626,121 +635,129 @@
626
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab-active {
627
  color : #2a8db0;
628
  background : #fff;
629
- border-bottom: 2px solid #fff;
630
  }
631
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab:first-child{
632
- border:0;
 
633
  }
634
 
635
  .yith-plugin-fw-wp-page-wrapper.yith-current-subtab-opened > .wrap {
636
  /* padding-top: 0; */
637
  }
 
638
  .yith-plugin-fw-wp-page-wrapper .nav-tab-wrapper {
639
- border-bottom: 2px solid #e9e9e9;
640
- margin: 0;
641
- padding-top: 9px;
642
- padding-bottom: 0;
643
- line-height: inherit;
644
  }
645
 
646
  div.nav-subtab-wrap {
647
- position: absolute;
648
- top: 100%;
649
- left: 1px;
650
- padding-top: 10px;
651
- visibility: hidden; /* hides sub-menu */
652
  }
 
653
  ul.nav-subtab {
654
- opacity: 0;
655
- background-color: #fff;
656
- transition: max-height 0.5s ease-in;
657
- max-height: 0;
658
- z-index: 100;
659
- overflow: hidden;
660
- border: 1px solid #f2f2f2;
661
- padding: 14px 15px;
662
  }
 
663
  ul.yith-plugin-fw-tabs {
664
- display: block;
665
- margin: 0;
666
  }
667
 
668
  li.yith-plugin-fw-tab-element {
669
- position: relative;
670
- margin: 0;
671
- padding: 0;
672
- display: inline-block;
673
- height: 37px;
674
- overflow: visible;
675
- z-index:10;
676
  }
 
677
  .yith-plugin-fw-panel-custom-tab-container {
678
- margin-top: -2px;
679
  }
680
 
681
- li.yith-plugin-fw-tab-element:hover{
682
- cursor:pointer;
683
  }
684
- li.nav-subtab-item{
685
- padding: 3px 0 0;
 
686
  }
 
687
  li.nav-subtab-item a {
688
- font-size: 12px;
689
- text-decoration: none;
690
- letter-spacing: 0.05em;
691
- color: #336374;
692
  }
693
- li.nav-subtab-item a:hover{
694
- color:#228fb6;
 
695
  }
696
 
697
  li.yith-plugin-fw-tab-element a:hover .nav-subtab-wrap,
698
  li.yith-plugin-fw-tab-element:hover .nav-subtab-wrap {
699
- visibility: visible; /* shows sub-menu */
700
  }
701
 
702
  li.yith-plugin-fw-tab-element a:hover ul.nav-subtab,
703
- li.yith-plugin-fw-tab-element:hover ul.nav-subtab{
704
- max-height: 200px;
705
- -webkit-box-shadow: -2px 2px 10px rgba(0, 111, 101, 0.27);
706
- -moz-box-shadow: -2px 2px 10px rgba(0, 111, 101, 0.27);
707
- box-shadow: -2px 2px 10px rgba(0, 111, 101, 0.27);
708
- opacity: 1;
709
- transition-delay: 0s, 0s, 0.3s;
710
- min-width: 180px;
711
  }
712
 
713
  li.yith-plugin-fw-tab-element a.nav-tab i {
714
- margin-left: 10px;
715
- font-size:12px;
716
  }
717
 
718
  li.yith-plugin-fw-tab-element a.nav-tab i:before {
719
- color: #fff;
720
  }
721
 
722
- .yith-plugin-fw-panel .woocommerce-page{
723
- margin-top:-2px;
724
  }
725
 
726
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yit-admin-panel-container {
727
- margin-top: 0;
728
- padding-top: 0;
729
  }
730
 
731
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yit-admin-panel-container,
732
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .wrap.subnav-wrap {
733
- border: 1px solid #d8d8d8;
734
- border-top: 0;
735
- margin: -2px 15px 0 0;
736
- background: #fff;
737
- padding: 20px;
738
- box-sizing: border-box;
739
  }
740
 
741
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .wrap.subnav-wrap .wrap,
742
  .yith-plugin-ui .yit-admin-panel-content-wrap.has-subnav {
743
- margin: -20px 15px 0 0;
744
  }
745
 
746
  /* === Responsive === */
46
  margin-right : 15px;
47
  }
48
 
49
+ .yith-plugin-ui .yith-plugin-fw-panel-custom-tab-container {
50
+ border : 1px solid #ddd;
51
+ border-top : 0;
52
  }
53
 
54
+ .yith-plugin-ui .yith-plugin-fw-panel-custom-sub-tab-container {
55
+ padding : 20px;
56
+ box-sizing : border-box;
57
+ border : 1px solid #ccc;
58
+ border-top : 0;
59
+ margin : -20px 15px 0 0;
60
  }
61
 
62
+ .yith-plugin-fw-panel-custom-tab-container > h2,
63
+ .yith-plugin-ui .yith-plugin-fw-panel-custom-tab-container > h2,
64
+ .yith-plugin-ui .yith-plugin-fw-panel-custom-sub-tab-container > h2 {
65
  border : none;
66
  padding : 15px 0;
67
  }
93
  .yith-plugin-fw-wp-page-wrapper .wrap {
94
  border : 1px solid #d8d8d8;
95
  border-top : 0;
96
+ margin : 0px 15px 0 0;
97
  background : #fff;
98
  padding : 20px;
99
  box-sizing : border-box;
100
  }
101
+
102
+ .yith-plugin-fw-wp-page-wrapper .wrap.subnav-wrap .wrap {
103
+ margin-top : -20px;
104
  }
105
 
106
  #wpwrap .yith-plugin-fw-wp-page-wrapper .yith-plugin-ui h2.nav-tab-wrapper, #wpbody-content .yith-plugin-fw-wp-page-wrapper .yith-plugin-ui h2.nav-tab-wrapper {
113
 
114
  .yith-plugin-fw-wp-page-wrapper h1.nav-tab-wrapper, .yith-plugin-fw-wp-page-wrapper h2.nav-tab-wrapper, .yith-plugin-fw-wp-page-wrapper .nav-tab-wrapper {
115
  padding-top : 9px;
116
+ padding-bottom : 0;
117
  }
118
 
119
  .yith-plugin-fw-wp-page-wrapper .wrap h1.wp-heading-inline {
120
  color : #2a8db0;
121
+ font-size : 16px;
 
122
  font-weight : 600;
123
  }
124
 
516
  #wpwrap h2.nav-tab-wrapper, #wpbody-content h2.nav-tab-wrapper {
517
  border-bottom : 1px solid #ccc;
518
  margin-right : 15px;
519
+ text-transform: uppercase;
520
  }
521
 
522
  /* === YIT FRAMEWORK === */
535
  .yith-plugin-ui .yit-admin-panel-container {
536
  position : relative;
537
  margin-right : 15px;
538
+ margin-top : -3px;
539
+ z-index : 0;
540
+ border-top : 1px solid #dbdada;
541
  }
542
+
543
  .yit-admin-panel-content-wrap {
544
+ width : auto;
545
  display : block;
546
  }
547
 
576
  */
577
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav {
578
  background : #fff;
579
+ padding : 10px 14px 0px 20px;
580
  box-sizing : border-box;
581
+ margin-right : 15px;
582
  border-left : 1px solid #d8d8d8;
583
  border-right : 1px solid #d8d8d8;
584
+ margin-top : -2px;
585
  }
586
+
587
+ .yith-plugin-ui .yith-plugin-fw-wp-page-wrapper .wrap {
588
+ margin-top : -29px;
589
  }
590
+
591
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav h3.nav-tab-wrapper {
592
+ text-transform : uppercase;
593
+ line-height : inherit;
594
+ font-weight : 600;
595
+ margin-right : 21px;
596
+ box-sizing : border-box;
597
+ background-color : #f1f1f1;
598
+ padding-top : 0;
599
+ border : 1px solid #ccc;
600
+ border-bottom : 0;
601
+ margin-top : 20px;
602
  }
603
 
604
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab {
605
  line-height : 1.71428571;
606
  margin-left : 0;
607
  margin-right : 0;
608
+ background-color : #f1f1f1;
609
  color : #336374;
610
  font-size : 13px;
611
+ padding : 8px 20px 9px;
612
  border : 0;
613
  }
614
 
635
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab-active {
636
  color : #2a8db0;
637
  background : #fff;
638
+ border-bottom : 2px solid #fff;
639
  }
640
+
641
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab:first-child {
642
+ border : 0;
643
  }
644
 
645
  .yith-plugin-fw-wp-page-wrapper.yith-current-subtab-opened > .wrap {
646
  /* padding-top: 0; */
647
  }
648
+
649
  .yith-plugin-fw-wp-page-wrapper .nav-tab-wrapper {
650
+ border-bottom : 2px solid #e9e9e9;
651
+ margin : 0;
652
+ padding-top : 9px;
653
+ padding-bottom : 0;
654
+ line-height : inherit;
655
  }
656
 
657
  div.nav-subtab-wrap {
658
+ position : absolute;
659
+ top : 100%;
660
+ left : 1px;
661
+ padding-top : 10px;
662
+ visibility : hidden; /* hides sub-menu */
663
  }
664
+
665
  ul.nav-subtab {
666
+ opacity : 0;
667
+ background-color : #fff;
668
+ transition : max-height 0.5s ease-in;
669
+ max-height : 0;
670
+ z-index : 100;
671
+ overflow : hidden;
672
+ border : 1px solid #f2f2f2;
673
+ padding : 14px 15px;
674
  }
675
+
676
  ul.yith-plugin-fw-tabs {
677
+ display : block;
678
+ margin : 0;
679
  }
680
 
681
  li.yith-plugin-fw-tab-element {
682
+ position : relative;
683
+ margin : 0;
684
+ padding : 0;
685
+ display : inline-block;
686
+ height : 37px;
687
+ overflow : visible;
688
+ z-index : 10;
689
  }
690
+
691
  .yith-plugin-fw-panel-custom-tab-container {
692
+ margin-top : -2px;
693
  }
694
 
695
+ li.yith-plugin-fw-tab-element:hover {
696
+ cursor : pointer;
697
  }
698
+
699
+ li.nav-subtab-item {
700
+ padding : 3px 0 0;
701
  }
702
+
703
  li.nav-subtab-item a {
704
+ font-size : 12px;
705
+ text-decoration : none;
706
+ letter-spacing : 0.05em;
707
+ color : #336374;
708
  }
709
+
710
+ li.nav-subtab-item a:hover {
711
+ color : #228fb6;
712
  }
713
 
714
  li.yith-plugin-fw-tab-element a:hover .nav-subtab-wrap,
715
  li.yith-plugin-fw-tab-element:hover .nav-subtab-wrap {
716
+ visibility : visible; /* shows sub-menu */
717
  }
718
 
719
  li.yith-plugin-fw-tab-element a:hover ul.nav-subtab,
720
+ li.yith-plugin-fw-tab-element:hover ul.nav-subtab {
721
+ max-height : 200px;
722
+ -webkit-box-shadow : -2px 2px 10px rgba(0, 111, 101, 0.27);
723
+ -moz-box-shadow : -2px 2px 10px rgba(0, 111, 101, 0.27);
724
+ box-shadow : -2px 2px 10px rgba(0, 111, 101, 0.27);
725
+ opacity : 1;
726
+ transition-delay : 0s, 0s, 0.3s;
727
+ min-width : 180px;
728
  }
729
 
730
  li.yith-plugin-fw-tab-element a.nav-tab i {
731
+ margin-left : 10px;
732
+ font-size : 12px;
733
  }
734
 
735
  li.yith-plugin-fw-tab-element a.nav-tab i:before {
736
+ color : #fff;
737
  }
738
 
739
+ .yith-plugin-fw-panel .woocommerce-page {
740
+ margin-top : -2px;
741
  }
742
 
743
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yit-admin-panel-container {
744
+ margin-top : 0;
745
+ padding-top : 0;
746
  }
747
 
748
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yit-admin-panel-container,
749
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .wrap.subnav-wrap {
750
+ border : 1px solid #d8d8d8;
751
+ border-top : 0;
752
+ margin : -2px 15px 0 0;
753
+ background : #fff;
754
+ padding : 20px;
755
+ box-sizing : border-box;
756
  }
757
 
758
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .wrap.subnav-wrap .wrap,
759
  .yith-plugin-ui .yit-admin-panel-content-wrap.has-subnav {
760
+ margin : -20px 15px 0 0;
761
  }
762
 
763
  /* === Responsive === */
plugin-fw/assets/css/yit-upgrade-to-pro.css CHANGED
@@ -1,77 +1,83 @@
1
  /* === Upgrade to Premium Landing page === */
2
 
3
- #upgrade-to-premium{
4
- width: 900px;
5
  }
6
- #upgrade-to-premium h1{
7
- font-family: 'Raleway',san-serif;
8
- text-transform: uppercase;
9
- font-size: 30px;
10
- font-weight: 700;
11
- color: #808a97;
 
12
  }
13
 
14
- #upgrade-to-premium h3{
15
- font-family: 'Raleway',san-serif;
16
- font-size: 20px;
17
- line-height: 29px;
18
- font-weight: 700;
19
- color: #808a97;
20
  }
21
 
22
- #upgrade-to-premium p{
23
- font-family: 'Open Sans',san-serif;
24
- font-size: 15px;
25
- line-height: 29px;
26
- font-weight: 400;
27
- color: #6a6a6b;
28
  }
29
- #upgrade-to-premium p.highlighted{
30
- font-family: 'Raleway',san-serif;
31
- font-size: 20px;
32
- line-height: 27px;
33
- color: #808a97;
34
- font-weight: 400;
 
35
  }
36
- #upgrade-to-premium ol{
37
- counter-reset: item;
38
- list-style-type: none;
39
- margin-left: 0;
 
40
  }
41
- #upgrade-to-premium li.step{
42
- font-family: 'open sans',san-serif;
43
- font-size: 15px;
44
- color: #6a6a6b;
45
- font-weight: 400;
46
- position: relative;
47
- padding-left: 50px;
48
- line-height: 25px;
49
- margin-bottom: 25px;
 
50
  }
51
- #upgrade-to-premium li.step:before{
52
- content: counters(item, ".") " ";
53
- counter-increment: item;
54
- position: absolute;
55
- left: 0;
56
- top: 0;
57
- border: 1px solid #808a97;
58
- width: 30px;
59
- height: 30px;
60
- border-radius: 16px;
61
- background-color: #808a97;
62
- color: #ffffff;
63
- font-weight: 700;
64
- font-size: 18px;
65
- text-align: center;
66
- line-height: 27px;
 
67
  }
68
- #upgrade-to-premium li.step img{
69
- border: 1px solid #b8b8b8;
70
- width: 600px;
71
- display: block;
72
- margin: 15px 0 25px 0;
 
73
  }
74
 
75
  #cboxLoadedContent {
76
- margin-bottom: 60px!important;
77
  }
1
  /* === Upgrade to Premium Landing page === */
2
 
3
+ #upgrade-to-premium {
4
+ width : 900px;
5
  }
6
+
7
+ #upgrade-to-premium h1 {
8
+ font-family : 'Raleway', sans-serif;
9
+ text-transform : uppercase;
10
+ font-size : 30px;
11
+ font-weight : 700;
12
+ color : #808a97;
13
  }
14
 
15
+ #upgrade-to-premium h3 {
16
+ font-family : 'Raleway', sans-serif;
17
+ font-size : 20px;
18
+ line-height : 29px;
19
+ font-weight : 700;
20
+ color : #808a97;
21
  }
22
 
23
+ #upgrade-to-premium p {
24
+ font-family : 'Open Sans', sans-serif;
25
+ font-size : 15px;
26
+ line-height : 29px;
27
+ font-weight : 400;
28
+ color : #6a6a6b;
29
  }
30
+
31
+ #upgrade-to-premium p.highlighted {
32
+ font-family : 'Raleway', sans-serif;
33
+ font-size : 20px;
34
+ line-height : 27px;
35
+ color : #808a97;
36
+ font-weight : 400;
37
  }
38
+
39
+ #upgrade-to-premium ol {
40
+ counter-reset : item;
41
+ list-style-type : none;
42
+ margin-left : 0;
43
  }
44
+
45
+ #upgrade-to-premium li.step {
46
+ font-family : 'open sans', sans-serif;
47
+ font-size : 15px;
48
+ color : #6a6a6b;
49
+ font-weight : 400;
50
+ position : relative;
51
+ padding-left : 50px;
52
+ line-height : 25px;
53
+ margin-bottom : 25px;
54
  }
55
+
56
+ #upgrade-to-premium li.step:before {
57
+ content : counters(item, ".") " ";
58
+ counter-increment : item;
59
+ position : absolute;
60
+ left : 0;
61
+ top : 0;
62
+ border : 1px solid #808a97;
63
+ width : 30px;
64
+ height : 30px;
65
+ border-radius : 16px;
66
+ background-color : #808a97;
67
+ color : #ffffff;
68
+ font-weight : 700;
69
+ font-size : 18px;
70
+ text-align : center;
71
+ line-height : 27px;
72
  }
73
+
74
+ #upgrade-to-premium li.step img {
75
+ border : 1px solid #b8b8b8;
76
+ width : 600px;
77
+ display : block;
78
+ margin : 15px 0 25px 0;
79
  }
80
 
81
  #cboxLoadedContent {
82
+ margin-bottom : 60px !important;
83
  }
plugin-fw/assets/css/yith-fields.css CHANGED
@@ -102,7 +102,7 @@
102
  line-height : 27px;
103
  }
104
 
105
- .yith-plugin-fw textarea {
106
  width : 400px;
107
  max-width : 100%;
108
  padding : 5px;
@@ -191,19 +191,19 @@ ul.yit-icons-manager-list li.active {
191
  }
192
 
193
  /* ------- Image Gallery ------- */
194
- .yith-plugin-fw .image-gallery ul li {
195
  display : inline-block;
196
  width : 80px;
197
  margin-left : 10px;
198
  position : relative;
199
  }
200
 
201
- .yith-plugin-fw .image-gallery ul li img {
202
  width : 80px;
203
  border : 1px solid #ccc;
204
  }
205
 
206
- .yith-plugin-fw .image-gallery ul li ul {
207
  position : absolute;
208
  top : -6px;
209
  right : -1px;
@@ -211,7 +211,7 @@ ul.yit-icons-manager-list li.active {
211
  height : 20px;
212
  }
213
 
214
- .yith-plugin-fw .image-gallery ul a.delete {
215
  background : url(../images/x.png) no-repeat;
216
  width : 20px;
217
  height : 20px;
@@ -822,8 +822,7 @@ YITH UI
822
 
823
  .yith-plugin-ui h2 {
824
  color : #2a8db0;
825
- font-size : 15px;
826
- text-transform : uppercase;
827
  border : 1px solid #d8d8d8;
828
  border-bottom : 0;
829
  background-color : #fff;
@@ -888,7 +887,7 @@ YITH UI
888
  /*** General Input Style ***/
889
 
890
  .yith-plugin-ui .yith-plugin-fw select,
891
- .yith-plugin-ui textarea,
892
  .yith-plugin-ui input[type=number],
893
  .yith-plugin-ui.metaboxes-tab input[type=number],
894
  .yith-plugin-ui input[type=text],
@@ -899,7 +898,7 @@ YITH UI
899
  .yith-plugin-fw.yith-plugin-ui input[type=text]:not(.select2-search__field),
900
  .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text]:not(.select2-search__field),
901
  .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table select,
902
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table textarea,
903
  .woocommerce .yith-plugin-fw table.form-table input[type=password],
904
  .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=number],
905
  .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text] {
@@ -912,9 +911,10 @@ YITH UI
912
  color : #716269;
913
  }
914
 
915
- .yith-plugin-ui textarea,
916
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table textarea {
917
- height : auto;
 
918
  }
919
 
920
  .yith-plugin-ui input[type=text]:not(.select2-search__field).wp-color-picker,
@@ -938,10 +938,6 @@ YITH UI
938
  border : 1px solid #d9d9d9;
939
  }
940
 
941
- .yith-plugin-ui textarea {
942
- height : auto;
943
- padding : 8px;
944
- }
945
 
946
  .yith-plugin-ui select:focus,
947
  .yith-plugin-ui input:focus {
@@ -949,6 +945,7 @@ YITH UI
949
  }
950
 
951
  .woocommerce .yith-plugin-ui table.form-table select,
 
952
  .yith-plugin-ui select {
953
  -webkit-appearance : none;
954
  line-height : 1.2em;
@@ -956,7 +953,7 @@ YITH UI
956
  background : url("../images/arrow_down.svg") no-repeat right center;
957
  background-size : 35px 13px;
958
  border-radius : 8px;
959
- padding-left : 10px;
960
  }
961
 
962
  .yith-plugin-ui .form-table th {
@@ -1438,9 +1435,11 @@ span.select2.select2-container.select2-container--default.yith-plugin-fw-select2
1438
  .yith-plugin-ui .yith-plugin-fw-onoff-container input + span {
1439
  border : 1px solid #d8d8d8;
1440
  background-color : #fff;
1441
- width : 58px;
1442
  height : 24px;
1443
  line-height : 14px;
 
 
1444
  }
1445
 
1446
  .yith-plugin-ui .yith-plugin-fw-onoff-container input + span:before {
@@ -1448,8 +1447,8 @@ span.select2.select2-container.select2-container--default.yith-plugin-fw-select2
1448
  }
1449
 
1450
  .yith-plugin-ui .yith-plugin-fw-onoff-container input + span:before {
1451
- width : 14px;
1452
- height : 14px;
1453
  top : 5px;
1454
  left : 6px;
1455
  background-color : #d8d8d8;
@@ -1457,15 +1456,14 @@ span.select2.select2-container.select2-container--default.yith-plugin-fw-select2
1457
 
1458
  .yith-plugin-ui .yith-plugin-fw-onoff-container input + span:after {
1459
  content : attr(data-text-off);
1460
- width : 14px;
1461
  height : 14px;
1462
- font-size : 13px;
1463
  font-weight : 600;
1464
- padding-left : 27px;
1465
  color : #979797;
1466
- margin-top : 5px;
1467
- display : inline-block;
1468
  white-space : nowrap;
 
1469
  }
1470
 
1471
  .yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span,
@@ -1482,16 +1480,16 @@ span.select2.select2-container.select2-container--default.yith-plugin-fw-select2
1482
 
1483
  .yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span:after,
1484
  .yith-plugin-ui.yith-plugin-fw-onoff-container input.onoffchecked + span:after {
1485
- content : attr(data-text-on);
1486
- color : #98aa36;
1487
- width : 14px;
1488
- height : 14px;
1489
- display : inline-block;
1490
- font-size : 13px;
1491
- font-weight : 600;
1492
- padding : 0 10px;
1493
- margin-top : 5px;
1494
- white-space : nowrap;
1495
  }
1496
 
1497
  .yith-plugin-ui .yith-plugin-fw-onoff-container input + span {
@@ -1737,14 +1735,14 @@ div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
1737
  border : 1px solid #d9d9d9;
1738
  }
1739
 
1740
- .yith-plugin-ui .yith-single-colorpicker {
1741
- display : inline-block;
1742
- width : 220px;
1743
- margin-top: 20px;
1744
  }
1745
 
1746
- .yith-plugin-ui .yith-single-colorpicker:nth-child(-n+3) {
1747
- margin-top: 0;
 
 
1748
  }
1749
 
1750
  .yith-plugin-ui .yith-single-colorpicker > label {
@@ -2037,21 +2035,27 @@ div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
2037
  padding-left : 0;
2038
  }
2039
 
 
 
 
 
 
 
 
 
 
2040
  .yith-plugin-ui .yith-plugin-fw-list-table h2 {
2041
  border : 0;
2042
- padding : 35px 0 15px;
2043
  display : inline-block;
2044
  margin-right : 10px;
 
2045
  }
2046
 
2047
  .yith-plugin-ui .form-table .yith-plugin-fw-list-table table th {
2048
  vertical-align : middle;
2049
  }
2050
 
2051
- .yith-plugin-ui .yith-plugin-fw-list-table-container {
2052
- padding : 0 20px;
2053
- }
2054
-
2055
  .yith-plugin-ui #doaction, .yith-plugin-ui #doaction2,
2056
  .yith-plugin-ui #post-query-submit,
2057
  .yith-plugin-ui #search-submit,
@@ -2208,11 +2212,17 @@ div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
2208
  color : #007694;
2209
  }
2210
 
 
 
 
 
 
2211
  .yith-plugin-fw-dimensions__dimensions {
2212
  display : flex;
2213
  margin : 0;
2214
  align-items : flex-end;
2215
  max-width : 400px;
 
2216
  }
2217
 
2218
  .yith-plugin-fw-dimensions__dimension {
@@ -2222,7 +2232,8 @@ div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
2222
 
2223
  .yith-plugin-fw-dimensions__dimension > input[type=number].yith-plugin-fw-dimensions__dimension__number,
2224
  .woocommerce.yith-plugin-fw-panel .yith-plugin-ui .yith-plugin-fw-dimensions__dimension > input[type=number].yith-plugin-fw-dimensions__dimension__number,
2225
- .yith-plugin-ui .yith-plugin-fw-dimensions__dimension > input[type=number].yith-plugin-fw-dimensions__dimension__number {
 
2226
  width : 100%;
2227
  min-width : 0;
2228
  border-radius : 0;
@@ -2235,7 +2246,8 @@ div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
2235
 
2236
  .yith-plugin-fw-dimensions__dimension:first-child > input[type=number].yith-plugin-fw-dimensions__dimension__number,
2237
  .woocommerce.yith-plugin-fw-panel .yith-plugin-ui .yith-plugin-fw-dimensions__dimension:first-child > input[type=number].yith-plugin-fw-dimensions__dimension__number,
2238
- .yith-plugin-ui .yith-plugin-fw-dimensions__dimension:first-child > input[type=number].yith-plugin-fw-dimensions__dimension__number {
 
2239
  border-left : 1px solid #d8d8d8;
2240
  border-radius : 6px 0 0 6px;
2241
  }
102
  line-height : 27px;
103
  }
104
 
105
+ .yith-plugin-fw textarea:not(.wp-editor-area) {
106
  width : 400px;
107
  max-width : 100%;
108
  padding : 5px;
191
  }
192
 
193
  /* ------- Image Gallery ------- */
194
+ .yith-plugin-fw .yith-plugin-fw-image-gallery ul li {
195
  display : inline-block;
196
  width : 80px;
197
  margin-left : 10px;
198
  position : relative;
199
  }
200
 
201
+ .yith-plugin-fw .yith-plugin-fw-image-gallery ul li img {
202
  width : 80px;
203
  border : 1px solid #ccc;
204
  }
205
 
206
+ .yith-plugin-fw .yith-plugin-fw-image-gallery ul li ul {
207
  position : absolute;
208
  top : -6px;
209
  right : -1px;
211
  height : 20px;
212
  }
213
 
214
+ .yith-plugin-fw .yith-plugin-fw-image-gallery ul a.delete {
215
  background : url(../images/x.png) no-repeat;
216
  width : 20px;
217
  height : 20px;
822
 
823
  .yith-plugin-ui h2 {
824
  color : #2a8db0;
825
+ font-size : 16px;
 
826
  border : 1px solid #d8d8d8;
827
  border-bottom : 0;
828
  background-color : #fff;
887
  /*** General Input Style ***/
888
 
889
  .yith-plugin-ui .yith-plugin-fw select,
890
+ .yith-plugin-ui textarea:not(.wp-editor-area),
891
  .yith-plugin-ui input[type=number],
892
  .yith-plugin-ui.metaboxes-tab input[type=number],
893
  .yith-plugin-ui input[type=text],
898
  .yith-plugin-fw.yith-plugin-ui input[type=text]:not(.select2-search__field),
899
  .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text]:not(.select2-search__field),
900
  .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table select,
901
+ .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table textarea:not(.wp-editor-area),
902
  .woocommerce .yith-plugin-fw table.form-table input[type=password],
903
  .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=number],
904
  .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text] {
911
  color : #716269;
912
  }
913
 
914
+ .yith-plugin-ui textarea:not(.wp-editor-area),
915
+ .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table textarea:not(.wp-editor-area) {
916
+ height : auto;
917
+ padding : 8px;
918
  }
919
 
920
  .yith-plugin-ui input[type=text]:not(.select2-search__field).wp-color-picker,
938
  border : 1px solid #d9d9d9;
939
  }
940
 
 
 
 
 
941
 
942
  .yith-plugin-ui select:focus,
943
  .yith-plugin-ui input:focus {
945
  }
946
 
947
  .woocommerce .yith-plugin-ui table.form-table select,
948
+ .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table select,
949
  .yith-plugin-ui select {
950
  -webkit-appearance : none;
951
  line-height : 1.2em;
953
  background : url("../images/arrow_down.svg") no-repeat right center;
954
  background-size : 35px 13px;
955
  border-radius : 8px;
956
+ padding-right : 30px;
957
  }
958
 
959
  .yith-plugin-ui .form-table th {
1435
  .yith-plugin-ui .yith-plugin-fw-onoff-container input + span {
1436
  border : 1px solid #d8d8d8;
1437
  background-color : #fff;
1438
+ width : 60px;
1439
  height : 24px;
1440
  line-height : 14px;
1441
+ padding : 4px;
1442
+ box-sizing : border-box;
1443
  }
1444
 
1445
  .yith-plugin-ui .yith-plugin-fw-onoff-container input + span:before {
1447
  }
1448
 
1449
  .yith-plugin-ui .yith-plugin-fw-onoff-container input + span:before {
1450
+ width : 13px;
1451
+ height : 13px;
1452
  top : 5px;
1453
  left : 6px;
1454
  background-color : #d8d8d8;
1456
 
1457
  .yith-plugin-ui .yith-plugin-fw-onoff-container input + span:after {
1458
  content : attr(data-text-off);
 
1459
  height : 14px;
1460
+ font-size : 12px;
1461
  font-weight : 600;
1462
+ padding-left : 18px;
1463
  color : #979797;
1464
+ display : block;
 
1465
  white-space : nowrap;
1466
+ text-align : center;
1467
  }
1468
 
1469
  .yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span,
1480
 
1481
  .yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span:after,
1482
  .yith-plugin-ui.yith-plugin-fw-onoff-container input.onoffchecked + span:after {
1483
+ content : attr(data-text-on);
1484
+ color : #98aa36;
1485
+ height : 14px;
1486
+ font-size : 12px;
1487
+ font-weight : 600;
1488
+ padding-left : 0;
1489
+ padding-right : 18px;
1490
+ display : block;
1491
+ white-space : nowrap;
1492
+ text-align : center;
1493
  }
1494
 
1495
  .yith-plugin-ui .yith-plugin-fw-onoff-container input + span {
1735
  border : 1px solid #d9d9d9;
1736
  }
1737
 
1738
+ .yith-plugin-ui .yith-plugin-fw-multi-colorpicker {
1739
+ margin-top : -20px;
 
 
1740
  }
1741
 
1742
+ .yith-plugin-ui .yith-single-colorpicker {
1743
+ display : inline-block;
1744
+ width : 220px;
1745
+ margin-top : 20px;
1746
  }
1747
 
1748
  .yith-plugin-ui .yith-single-colorpicker > label {
2035
  padding-left : 0;
2036
  }
2037
 
2038
+ .yith-plugin-ui .yith-plugin-fw-list-table .list-table-title {
2039
+ margin-bottom : 20px;
2040
+ line-height : 1.2;
2041
+ }
2042
+
2043
+ .yith-plugin-ui .yith-plugin-fw-list-table .list-table-title > * {
2044
+ vertical-align : middle;
2045
+ }
2046
+
2047
  .yith-plugin-ui .yith-plugin-fw-list-table h2 {
2048
  border : 0;
2049
+ padding : 0;
2050
  display : inline-block;
2051
  margin-right : 10px;
2052
+ line-height : inherit;
2053
  }
2054
 
2055
  .yith-plugin-ui .form-table .yith-plugin-fw-list-table table th {
2056
  vertical-align : middle;
2057
  }
2058
 
 
 
 
 
2059
  .yith-plugin-ui #doaction, .yith-plugin-ui #doaction2,
2060
  .yith-plugin-ui #post-query-submit,
2061
  .yith-plugin-ui #search-submit,
2212
  color : #007694;
2213
  }
2214
 
2215
+ .yith-plugin-fw-dimensions__unit--unique {
2216
+ text-decoration : none;
2217
+ cursor : default;
2218
+ }
2219
+
2220
  .yith-plugin-fw-dimensions__dimensions {
2221
  display : flex;
2222
  margin : 0;
2223
  align-items : flex-end;
2224
  max-width : 400px;
2225
+ width : 400px;
2226
  }
2227
 
2228
  .yith-plugin-fw-dimensions__dimension {
2232
 
2233
  .yith-plugin-fw-dimensions__dimension > input[type=number].yith-plugin-fw-dimensions__dimension__number,
2234
  .woocommerce.yith-plugin-fw-panel .yith-plugin-ui .yith-plugin-fw-dimensions__dimension > input[type=number].yith-plugin-fw-dimensions__dimension__number,
2235
+ .yith-plugin-ui .yith-plugin-fw-dimensions__dimension > input[type=number].yith-plugin-fw-dimensions__dimension__number,
2236
+ .woocommerce .yith-plugin-fw table.form-table .yith-plugin-fw-dimensions__dimension > input[type=number].yith-plugin-fw-dimensions__dimension__number {
2237
  width : 100%;
2238
  min-width : 0;
2239
  border-radius : 0;
2246
 
2247
  .yith-plugin-fw-dimensions__dimension:first-child > input[type=number].yith-plugin-fw-dimensions__dimension__number,
2248
  .woocommerce.yith-plugin-fw-panel .yith-plugin-ui .yith-plugin-fw-dimensions__dimension:first-child > input[type=number].yith-plugin-fw-dimensions__dimension__number,
2249
+ .yith-plugin-ui .yith-plugin-fw-dimensions__dimension:first-child > input[type=number].yith-plugin-fw-dimensions__dimension__number,
2250
+ .woocommerce .yith-plugin-fw table.form-table .yith-plugin-fw-dimensions__dimension:first-child > input[type=number].yith-plugin-fw-dimensions__dimension__number {
2251
  border-left : 1px solid #d8d8d8;
2252
  border-radius : 6px 0 0 6px;
2253
  }
plugin-fw/assets/js/metabox.js CHANGED
@@ -8,59 +8,59 @@
8
  */
9
  ( function ( $ ) {
10
 
11
- $( '.metaboxes-tab' ).each( function () {
12
- $( '.tabs-panel', this ).hide();
13
-
14
- var active_tab = wpCookies.get( 'active_metabox_tab' );
15
- if ( active_tab == null ) {
16
- active_tab = $( 'ul.metaboxes-tabs li:first-child a', this ).attr( 'href' );
17
- } else {
18
- active_tab = '#' + active_tab;
19
- }
20
-
21
- $( active_tab ).show();
22
-
23
- $( '.metaboxes-tabs a', this ).click( function ( e ) {
24
- if ( $( this ).parent().hasClass( 'tabs' ) ) {
25
- e.preventDefault();
26
- return;
27
- }
28
-
29
- var t = $( this ).attr( 'href' );
30
- $( this ).parent().addClass( 'tabs' ).siblings( 'li' ).removeClass( 'tabs' );
31
- $( this ).closest( '.metaboxes-tab' ).find( '.tabs-panel' ).hide();
32
- $( t ).show();
33
-
34
- return false;
35
- } );
36
- } );
37
-
38
- var act_page_option = $( '#_active_page_options-container' ).parent().html();
39
- $( '#_active_page_options-container' ).parent().remove();
40
- $( act_page_option ).insertAfter( '#yit-post-setting .handlediv' );
41
- $( act_page_option ).insertAfter( '#yit-page-setting .handlediv' );
42
-
43
-
44
- $( '#_active_page_options-container' ).on( 'click', function () {
45
- if ( $( '#_active_page_options' ).is( ":checked" ) ) {
46
- $( '#yit-page-setting .inside .metaboxes-tab, #yit-post-setting .inside .metaboxes-tab' ).css( {
47
- 'opacity' : 1,
48
- 'pointer-events': 'auto'
49
- } );
50
- } else {
51
- $( '#yit-page-setting .inside .metaboxes-tab, #yit-post-setting .inside .metaboxes-tab' ).css( {
52
- 'opacity' : 0.5,
53
- 'pointer-events': 'none'
54
- } );
55
- }
56
- } ).click();
57
-
58
-
59
- //dependencies handler
60
- $( document.body ).on( 'yith-plugin-fw-metabox-init-deps', function () {
61
- $( document.body ).trigger( 'yith-plugin-fw-init-radio' );
62
- $( '.metaboxes-tab [data-dep-target]:not(.yith-plugin-fw-metabox-deps-initialized)' ).each( function () {
63
- var t = $( this );
64
 
65
  var field = '#' + t.data( 'dep-target' ),
66
  dep = '#' + t.data( 'dep-id' ),
@@ -68,112 +68,101 @@
68
  type = t.data( 'dep-type' );
69
 
70
 
71
- dependencies_handler( field, dep, value.toString(), type );
72
 
73
  $( dep ).on( 'change', function () {
74
  dependencies_handler( field, dep, value.toString(), type );
75
  } ).change();
76
 
77
- t.addClass( 'yith-plugin-fw-metabox-deps-initialized' );
78
- } );
79
- } ).trigger( 'yith-plugin-fw-metabox-init-deps' );
80
-
81
- //Handle dependencies.
82
- function dependencies_handler( id, deps, values, type ) {
83
- var result = true;
84
-
85
-
86
- //Single dependency
87
- if ( typeof ( deps ) == 'string' ) {
88
- if ( deps.substr( 0, 6 ) == ':radio' ) {
89
- deps = deps + ':checked';
90
- }
91
-
92
- var val = $( deps ).val();
93
-
94
- if ( $( deps ).attr( 'type' ) == 'checkbox' ) {
95
- var thisCheck = $( deps );
96
- if ( thisCheck.is( ':checked' ) ) {
97
- val = 'yes';
98
- } else {
99
- val = 'no';
100
- }
101
- }
102
-
103
- values = values.split( ',' );
104
-
105
- for ( var i = 0; i < values.length; i++ ) {
106
- if ( val != values[ i ] ) {
107
- result = false;
108
- } else {
109
- result = true;
110
- break;
111
- }
112
- }
113
- }
114
-
115
- var $current_field = $( id ),
116
- $current_container = $( id + '-container' ).parent();
117
-
118
- var types = type.split( '-' ), j;
119
- for ( j in types ) {
120
- var current_type = types[ j ];
121
-
122
- if ( !result ) {
123
- switch ( current_type ) {
124
- case 'disable':
125
- $current_container.addClass( 'yith-disabled' );
126
- $current_field.attr( 'disabled', true );
127
- break;
128
- case 'hideNow':
129
- $current_container.hide();
130
- break;
131
- case 'hideme':
132
- $current_field.hide();
133
- break;
134
- case 'fadeInOut':
135
- case 'fadeOut':
136
- $current_container.hide( 500 );
137
- break;
138
- case 'fadeIn':
139
- $current_container.hide();
140
- break;
141
- default:
142
- if( ! $current_container.hasClass('fade-in')){
143
- $current_container.hide();
144
- $current_container.css({'opacity':'0'});
145
- }else{
146
- $current_container.fadeTo("slow" , 0, function(){
147
- $(this).hide().removeClass('fade-in');
148
- });
149
- }
150
- }
151
-
152
- } else {
153
- switch ( current_type ) {
154
- case 'disable':
155
- $current_container.removeClass( 'yith-disabled' );
156
- $current_field.attr( 'disabled', false );
157
- break;
158
- case 'hideNow':
159
- $current_container.show();
160
- break;
161
- case 'hideme':
162
- $current_field.show();
163
- break;
164
- case 'fadeInOut':
165
- case 'fadeIn':
166
- $current_container.show( 500 );
167
- break;
168
- case 'fadeOut':
169
- $current_container.show();
170
- break;
171
- default:
172
- $current_container.show();
173
- $current_container.fadeTo("slow" , 1).addClass('fade-in');
174
- }
175
- }
176
- }
177
- }
178
 
179
  } )( jQuery );
8
  */
9
  ( function ( $ ) {
10
 
11
+ $( '.metaboxes-tab' ).each( function () {
12
+ $( '.tabs-panel', this ).hide();
13
+
14
+ var active_tab = wpCookies.get( 'active_metabox_tab' );
15
+ if ( active_tab == null ) {
16
+ active_tab = $( 'ul.metaboxes-tabs li:first-child a', this ).attr( 'href' );
17
+ } else {
18
+ active_tab = '#' + active_tab;
19
+ }
20
+
21
+ $( active_tab ).show();
22
+
23
+ $( '.metaboxes-tabs a', this ).click( function ( e ) {
24
+ if ( $( this ).parent().hasClass( 'tabs' ) ) {
25
+ e.preventDefault();
26
+ return;
27
+ }
28
+
29
+ var t = $( this ).attr( 'href' );
30
+ $( this ).parent().addClass( 'tabs' ).siblings( 'li' ).removeClass( 'tabs' );
31
+ $( this ).closest( '.metaboxes-tab' ).find( '.tabs-panel' ).hide();
32
+ $( t ).show();
33
+
34
+ return false;
35
+ } );
36
+ } );
37
+
38
+ var act_page_option = $( '#_active_page_options-container' ).parent().html();
39
+ $( '#_active_page_options-container' ).parent().remove();
40
+ $( act_page_option ).insertAfter( '#yit-post-setting .handlediv' );
41
+ $( act_page_option ).insertAfter( '#yit-page-setting .handlediv' );
42
+
43
+
44
+ $( '#_active_page_options-container' ).on( 'click', function () {
45
+ if ( $( '#_active_page_options' ).is( ":checked" ) ) {
46
+ $( '#yit-page-setting .inside .metaboxes-tab, #yit-post-setting .inside .metaboxes-tab' ).css( {
47
+ 'opacity' : 1,
48
+ 'pointer-events': 'auto'
49
+ } );
50
+ } else {
51
+ $( '#yit-page-setting .inside .metaboxes-tab, #yit-post-setting .inside .metaboxes-tab' ).css( {
52
+ 'opacity' : 0.5,
53
+ 'pointer-events': 'none'
54
+ } );
55
+ }
56
+ } ).click();
57
+
58
+
59
+ //dependencies handler
60
+ $( document.body ).on( 'yith-plugin-fw-metabox-init-deps', function () {
61
+ $( document.body ).trigger( 'yith-plugin-fw-init-radio' );
62
+ $( '.metaboxes-tab [data-dep-target]:not(.yith-plugin-fw-metabox-deps-initialized)' ).each( function () {
63
+ var t = $( this );
64
 
65
  var field = '#' + t.data( 'dep-target' ),
66
  dep = '#' + t.data( 'dep-id' ),
68
  type = t.data( 'dep-type' );
69
 
70
 
71
+ dependencies_handler( field, dep, value.toString(), type );
72
 
73
  $( dep ).on( 'change', function () {
74
  dependencies_handler( field, dep, value.toString(), type );
75
  } ).change();
76
 
77
+ t.addClass( 'yith-plugin-fw-metabox-deps-initialized' );
78
+ } );
79
+ } ).trigger( 'yith-plugin-fw-metabox-init-deps' );
80
+
81
+ //Handle dependencies.
82
+ function dependencies_handler( id, deps, values, type ) {
83
+ var result = true;
84
+
85
+
86
+ //Single dependency
87
+ if ( typeof ( deps ) == 'string' ) {
88
+ if ( deps.substr( 0, 6 ) == ':radio' ) {
89
+ deps = deps + ':checked';
90
+ }
91
+
92
+ var val = $( deps ).val();
93
+
94
+ if ( $( deps ).attr( 'type' ) == 'checkbox' ) {
95
+ var thisCheck = $( deps );
96
+ if ( thisCheck.is( ':checked' ) ) {
97
+ val = 'yes';
98
+ } else {
99
+ val = 'no';
100
+ }
101
+ }
102
+
103
+ values = values.split( ',' );
104
+
105
+ for ( var i = 0; i < values.length; i++ ) {
106
+ if ( val != values[ i ] ) {
107
+ result = false;
108
+ } else {
109
+ result = true;
110
+ break;
111
+ }
112
+ }
113
+ }
114
+
115
+ var $current_field = $( id ),
116
+ $current_container = $( id + '-container' ).parent();
117
+
118
+ var types = type.split( '-' ), j;
119
+ for ( j in types ) {
120
+ var current_type = types[ j ];
121
+
122
+ if ( !result ) {
123
+ switch ( current_type ) {
124
+ case 'disable':
125
+ $current_container.addClass( 'yith-disabled' );
126
+ $current_field.attr( 'disabled', true );
127
+ break;
128
+ case 'hide':
129
+ case 'hideNow':
130
+ $current_container.hide();
131
+ break;
132
+ case 'hideme':
133
+ $current_field.hide();
134
+ break;
135
+ case 'fadeInOut':
136
+ case 'fadeOut':
137
+ $current_container.hide( 500 );
138
+ break;
139
+ case 'fadeIn':
140
+ default:
141
+ $current_container.hide();
142
+ }
143
+ } else {
144
+ switch ( current_type ) {
145
+ case 'disable':
146
+ $current_container.removeClass( 'yith-disabled' );
147
+ $current_field.attr( 'disabled', false );
148
+ break;
149
+ case 'hide':
150
+ case 'hideNow':
151
+ $current_container.show();
152
+ break;
153
+ case 'hideme':
154
+ $current_field.show();
155
+ break;
156
+ case 'fadeOut':
157
+ $current_container.show();
158
+ break;
159
+ case 'fadeInOut':
160
+ case 'fadeIn':
161
+ default:
162
+ $current_container.show( 500 );
163
+ }
164
+ }
165
+ }
166
+ }
 
 
 
 
 
 
 
 
 
 
 
167
 
168
  } )( jQuery );
plugin-fw/assets/js/metabox.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){e(".metaboxes-tab").each(function(){e(".tabs-panel",this).hide();var t=wpCookies.get("active_metabox_tab");t=null==t?e("ul.metaboxes-tabs li:first-child a",this).attr("href"):"#"+t,e(t).show(),e(".metaboxes-tabs a",this).click(function(t){if(!e(this).parent().hasClass("tabs")){var a=e(this).attr("href");return e(this).parent().addClass("tabs").siblings("li").removeClass("tabs"),e(this).closest(".metaboxes-tab").find(".tabs-panel").hide(),e(a).show(),!1}t.preventDefault()})});var t=e("#_active_page_options-container").parent().html();function a(t,a,i,s){var n=!0;if("string"==typeof a){":radio"==a.substr(0,6)&&(a+=":checked");var o=e(a).val();if("checkbox"==e(a).attr("type"))o=e(a).is(":checked")?"yes":"no";i=i.split(",");for(var d=0;d<i.length;d++){if(o==i[d]){n=!0;break}n=!1}}var r,c=e(t),h=e(t+"-container").parent(),b=s.split("-");for(r in b){var l=b[r];if(n)switch(l){case"disable":h.removeClass("yith-disabled"),c.attr("disabled",!1);break;case"hideNow":h.show();break;case"hideme":c.show();break;case"fadeInOut":case"fadeIn":h.show(500);break;case"fadeOut":h.show();break;default:h.show(),h.fadeTo("slow",1).addClass("fade-in")}else switch(l){case"disable":h.addClass("yith-disabled"),c.attr("disabled",!0);break;case"hideNow":h.hide();break;case"hideme":c.hide();break;case"fadeInOut":case"fadeOut":h.hide(500);break;case"fadeIn":h.hide();break;default:h.hasClass("fade-in")?h.fadeTo("slow",0,function(){e(this).hide().removeClass("fade-in")}):(h.hide(),h.css({opacity:"0"}))}}}e("#_active_page_options-container").parent().remove(),e(t).insertAfter("#yit-post-setting .handlediv"),e(t).insertAfter("#yit-page-setting .handlediv"),e("#_active_page_options-container").on("click",function(){e("#_active_page_options").is(":checked")?e("#yit-page-setting .inside .metaboxes-tab, #yit-post-setting .inside .metaboxes-tab").css({opacity:1,"pointer-events":"auto"}):e("#yit-page-setting .inside .metaboxes-tab, #yit-post-setting .inside .metaboxes-tab").css({opacity:.5,"pointer-events":"none"})}).click(),e(document.body).on("yith-plugin-fw-metabox-init-deps",function(){e(document.body).trigger("yith-plugin-fw-init-radio"),e(".metaboxes-tab [data-dep-target]:not(.yith-plugin-fw-metabox-deps-initialized)").each(function(){var t=e(this),i="#"+t.data("dep-target"),s="#"+t.data("dep-id"),n=t.data("dep-value"),o=t.data("dep-type");a(i,s,n.toString(),o),e(s).on("change",function(){a(i,s,n.toString(),o)}).change(),t.addClass("yith-plugin-fw-metabox-deps-initialized")})}).trigger("yith-plugin-fw-metabox-init-deps")}(jQuery);
1
+ !function(e){e(".metaboxes-tab").each(function(){e(".tabs-panel",this).hide();var t=wpCookies.get("active_metabox_tab");t=null==t?e("ul.metaboxes-tabs li:first-child a",this).attr("href"):"#"+t,e(t).show(),e(".metaboxes-tabs a",this).click(function(t){if(!e(this).parent().hasClass("tabs")){var a=e(this).attr("href");return e(this).parent().addClass("tabs").siblings("li").removeClass("tabs"),e(this).closest(".metaboxes-tab").find(".tabs-panel").hide(),e(a).show(),!1}t.preventDefault()})});var t=e("#_active_page_options-container").parent().html();function a(t,a,i,s){var n=!0;if("string"==typeof a){":radio"==a.substr(0,6)&&(a+=":checked");var o=e(a).val();if("checkbox"==e(a).attr("type"))o=e(a).is(":checked")?"yes":"no";i=i.split(",");for(var d=0;d<i.length;d++){if(o==i[d]){n=!0;break}n=!1}}var r,c=e(t),h=e(t+"-container").parent(),b=s.split("-");for(r in b){var p=b[r];if(n)switch(p){case"disable":h.removeClass("yith-disabled"),c.attr("disabled",!1);break;case"hide":case"hideNow":h.show();break;case"hideme":c.show();break;case"fadeOut":h.show();break;case"fadeInOut":case"fadeIn":default:h.show(500)}else switch(p){case"disable":h.addClass("yith-disabled"),c.attr("disabled",!0);break;case"hide":case"hideNow":h.hide();break;case"hideme":c.hide();break;case"fadeInOut":case"fadeOut":h.hide(500);break;case"fadeIn":default:h.hide()}}}e("#_active_page_options-container").parent().remove(),e(t).insertAfter("#yit-post-setting .handlediv"),e(t).insertAfter("#yit-page-setting .handlediv"),e("#_active_page_options-container").on("click",function(){e("#_active_page_options").is(":checked")?e("#yit-page-setting .inside .metaboxes-tab, #yit-post-setting .inside .metaboxes-tab").css({opacity:1,"pointer-events":"auto"}):e("#yit-page-setting .inside .metaboxes-tab, #yit-post-setting .inside .metaboxes-tab").css({opacity:.5,"pointer-events":"none"})}).click(),e(document.body).on("yith-plugin-fw-metabox-init-deps",function(){e(document.body).trigger("yith-plugin-fw-init-radio"),e(".metaboxes-tab [data-dep-target]:not(.yith-plugin-fw-metabox-deps-initialized)").each(function(){var t=e(this),i="#"+t.data("dep-target"),s="#"+t.data("dep-id"),n=t.data("dep-value"),o=t.data("dep-type");a(i,s,n.toString(),o),e(s).on("change",function(){a(i,s,n.toString(),o)}).change(),t.addClass("yith-plugin-fw-metabox-deps-initialized")})}).trigger("yith-plugin-fw-metabox-init-deps")}(jQuery);
plugin-fw/assets/js/select2/select2.min.js ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Select2 4.0.3
3
+ * https://select2.github.io
4
+ *
5
+ * Released under the MIT license
6
+ * https://github.com/select2/select2/blob/master/LICENSE.md
7
+ */
8
+ !function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof exports?require("jquery"):jQuery)}(function(e){var t=function(){if(e&&e.fn&&e.fn.select2&&e.fn.select2.amd)t=e.fn.select2.amd;var t;return function(){if(!t||!t.requirejs){t?n=t:t={};/**
9
+ * @license almond 0.3.1 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.
10
+ * Available via the MIT or new BSD license.
11
+ * see: http://github.com/jrburke/almond for details
12
+ */
13
+ var e,n,i;!function(t){function r(e,t){return $.call(e,t)}function s(e,t){var n,i,r,s,o,a,l,c,u,d,p,h=t&&t.split("/"),f=y.map,g=f&&f["*"]||{};if(e&&"."===e.charAt(0))if(t){for(o=(e=e.split("/")).length-1,y.nodeIdCompat&&b.test(e[o])&&(e[o]=e[o].replace(b,"")),e=h.slice(0,h.length-1).concat(e),u=0;u<e.length;u+=1)if("."===(p=e[u]))e.splice(u,1),u-=1;else if(".."===p){if(1===u&&(".."===e[2]||".."===e[0]))break;u>0&&(e.splice(u-1,2),u-=2)}e=e.join("/")}else 0===e.indexOf("./")&&(e=e.substring(2));if((h||g)&&f){for(u=(n=e.split("/")).length;u>0;u-=1){if(i=n.slice(0,u).join("/"),h)for(d=h.length;d>0;d-=1)if((r=f[h.slice(0,d).join("/")])&&(r=r[i])){s=r,a=u;break}if(s)break;!l&&g&&g[i]&&(l=g[i],c=u)}!s&&l&&(s=l,a=c),s&&(n.splice(0,a,s),e=n.join("/"))}return e}function o(e,n){return function(){var i=w.call(arguments,0);return"string"!=typeof i[0]&&1===i.length&&i.push(null),h.apply(t,i.concat([e,n]))}}function a(e){return function(t){return s(t,e)}}function l(e){return function(t){m[e]=t}}function c(e){if(r(v,e)){var n=v[e];delete v[e],_[e]=!0,p.apply(t,n)}if(!r(m,e)&&!r(_,e))throw new Error("No "+e);return m[e]}function u(e){var t,n=e?e.indexOf("!"):-1;return n>-1&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function d(e){return function(){return y&&y.config&&y.config[e]||{}}}var p,h,f,g,m={},v={},y={},_={},$=Object.prototype.hasOwnProperty,w=[].slice,b=/\.js$/;f=function(e,t){var n,i=u(e),r=i[0];return e=i[1],r&&(n=c(r=s(r,t))),r?e=n&&n.normalize?n.normalize(e,a(t)):s(e,t):(r=(i=u(e=s(e,t)))[0],e=i[1],r&&(n=c(r))),{f:r?r+"!"+e:e,n:e,pr:r,p:n}},g={require:function(e){return o(e)},exports:function(e){var t=m[e];return void 0!==t?t:m[e]={}},module:function(e){return{id:e,uri:"",exports:m[e],config:d(e)}}},p=function(e,n,i,s){var a,u,d,p,h,y,$=[],w=typeof i;if(s=s||e,"undefined"===w||"function"===w){for(n=!n.length&&i.length?["require","exports","module"]:n,h=0;h<n.length;h+=1)if(p=f(n[h],s),"require"===(u=p.f))$[h]=g.require(e);else if("exports"===u)$[h]=g.exports(e),y=!0;else if("module"===u)a=$[h]=g.module(e);else if(r(m,u)||r(v,u)||r(_,u))$[h]=c(u);else{if(!p.p)throw new Error(e+" missing "+u);p.p.load(p.n,o(s,!0),l(u),{}),$[h]=m[u]}d=i?i.apply(m[e],$):undefined,e&&(a&&a.exports!==t&&a.exports!==m[e]?m[e]=a.exports:d===t&&y||(m[e]=d))}else e&&(m[e]=i)},e=n=h=function(e,n,i,r,s){if("string"==typeof e)return g[e]?g[e](n):c(f(e,n).f);if(!e.splice){if((y=e).deps&&h(y.deps,y.callback),!n)return;n.splice?(e=n,n=i,i=null):e=t}return n=n||function(){},"function"==typeof i&&(i=r,r=s),r?p(t,e,n,i):setTimeout(function(){p(t,e,n,i)},4),h},h.config=function(e){return h(e)},e._defined=m,(i=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),r(m,e)||r(v,e)||(v[e]=[e,t,n])}).amd={jQuery:!0}}(),t.requirejs=e,t.require=n,t.define=i}}(),t.define("almond",function(){}),t.define("jquery",[],function(){var t=e||$;return null==t&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),t}),t.define("select2/utils",["jquery"],function(e){function t(e){var t=e.prototype,n=[];for(var i in t)"function"==typeof t[i]&&"constructor"!==i&&n.push(i);return n}var n={};n.Extend=function(e,t){function n(){this.constructor=e}var i={}.hasOwnProperty;for(var r in t)i.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},n.Decorate=function(e,n){function i(){var t=Array.prototype.unshift,i=n.prototype.constructor.length,r=e.prototype.constructor;i>0&&(t.call(arguments,e.prototype.constructor),r=n.prototype.constructor),r.apply(this,arguments)}var r=t(n),s=t(e);n.displayName=e.displayName,i.prototype=new function(){this.constructor=i};for(var o=0;o<s.length;o++){var a=s[o];i.prototype[a]=e.prototype[a]}for(var l=0;l<r.length;l++){var c=r[l];i.prototype[c]=function(e){var t=function(){};e in i.prototype&&(t=i.prototype[e]);var r=n.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),r.apply(this,arguments)}}(c)}return i};var i=function(){this.listeners={}};return i.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},i.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},null==n&&(n=[]),0===n.length&&n.push({}),n[0]._type=e,e in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},i.prototype.invoke=function(e,t){for(var n=0,i=e.length;n<i;n++)e[n].apply(this,t)},n.Observable=i,n.generateChars=function(e){for(var t="",n=0;n<e;n++)t+=Math.floor(36*Math.random()).toString(36);return t},n.bind=function(e,t){return function(){e.apply(t,arguments)}},n._convertData=function(e){for(var t in e){var n=t.split("-"),i=e;if(1!==n.length){for(var r=0;r<n.length;r++){var s=n[r];(s=s.substring(0,1).toLowerCase()+s.substring(1))in i||(i[s]={}),r==n.length-1&&(i[s]=e[t]),i=i[s]}delete e[t]}}return e},n.hasScroll=function(t,n){var i=e(n),r=n.style.overflowX,s=n.style.overflowY;return(r!==s||"hidden"!==s&&"visible"!==s)&&("scroll"===r||"scroll"===s||(i.innerHeight()<n.scrollHeight||i.innerWidth()<n.scrollWidth))},n.escapeMarkup=function(e){var t={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},n.appendMany=function(t,n){if("1.7"===e.fn.jquery.substr(0,3)){var i=e();e.map(n,function(e){i=i.add(e)}),n=i}t.append(n)},n}),t.define("select2/results",["jquery","./utils"],function(e,t){function n(e,t,i){this.$element=e,this.data=i,this.options=t,n.__super__.constructor.call(this)}return t.Extend(n,t.Observable),n.prototype.render=function(){var t=e('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&t.attr("aria-multiselectable","true"),this.$results=t,t},n.prototype.clear=function(){this.$results.empty()},n.prototype.displayMessage=function(t){var n=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var i=e('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),r=this.options.get("translations").get(t.message);i.append(n(r(t.args))),i[0].className+=" select2-results__message",this.$results.append(i)},n.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},n.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var i=e.results[n],r=this.option(i);t.push(r)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"})},n.prototype.position=function(e,t){t.find(".select2-results").append(e)},n.prototype.sort=function(e){return this.options.get("sorter")(e)},n.prototype.highlightFirstItem=function(){var e=this.$results.find(".select2-results__option[aria-selected]"),t=e.filter("[aria-selected=true]");t.length>0?t.first().trigger("mouseenter"):e.first().trigger("mouseenter"),this.ensureHighlightVisible()},n.prototype.setClasses=function(){var t=this;this.data.current(function(n){var i=e.map(n,function(e){return e.id.toString()});t.$results.find(".select2-results__option[aria-selected]").each(function(){var t=e(this),n=e.data(this,"data"),r=""+n.id;null!=n.element&&n.element.selected||null==n.element&&e.inArray(r,i)>-1?t.attr("aria-selected","true"):t.attr("aria-selected","false")})})},n.prototype.showLoading=function(e){this.hideLoading();var t={disabled:!0,loading:!0,text:this.options.get("translations").get("searching")(e)},n=this.option(t);n.className+=" loading-results",this.$results.prepend(n)},n.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},n.prototype.option=function(t){var n=document.createElement("li");n.className="select2-results__option";var i={role:"treeitem","aria-selected":"false"};t.disabled&&(delete i["aria-selected"],i["aria-disabled"]="true"),null==t.id&&delete i["aria-selected"],null!=t._resultId&&(n.id=t._resultId),t.title&&(n.title=t.title),t.children&&(i.role="group",i["aria-label"]=t.text,delete i["aria-selected"]);for(var r in i){var s=i[r];n.setAttribute(r,s)}if(t.children){var o=e(n),a=document.createElement("strong");a.className="select2-results__group";e(a);this.template(t,a);for(var l=[],c=0;c<t.children.length;c++){var u=t.children[c],d=this.option(u);l.push(d)}var p=e("<ul></ul>",{"class":"select2-results__options select2-results__options--nested"});p.append(l),o.append(a),o.append(p)}else this.template(t,n);return e.data(n,"data",t),n},n.prototype.bind=function(t,n){var i=this,r=t.id+"-results";this.$results.attr("id",r),t.on("results:all",function(e){i.clear(),i.append(e.data),t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("results:append",function(e){i.append(e.data),t.isOpen()&&i.setClasses()}),t.on("query",function(e){i.hideMessages(),i.showLoading(e)}),t.on("select",function(){t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("open",function(){i.$results.attr("aria-expanded","true"),i.$results.attr("aria-hidden","false"),i.setClasses(),i.ensureHighlightVisible()}),t.on("close",function(){i.$results.attr("aria-expanded","false"),i.$results.attr("aria-hidden","true"),i.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=i.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e=i.getHighlightedResults();if(0!==e.length){var t=e.data("data");"true"==e.attr("aria-selected")?i.trigger("close",{}):i.trigger("select",{data:t})}}),t.on("results:previous",function(){var e=i.getHighlightedResults(),t=i.$results.find("[aria-selected]"),n=t.index(e);if(0!==n){var r=n-1;0===e.length&&(r=0);var s=t.eq(r);s.trigger("mouseenter");var o=i.$results.offset().top,a=s.offset().top,l=i.$results.scrollTop()+(a-o);0===r?i.$results.scrollTop(0):a-o<0&&i.$results.scrollTop(l)}}),t.on("results:next",function(){var e=i.getHighlightedResults(),t=i.$results.find("[aria-selected]"),n=t.index(e)+1;if(!(n>=t.length)){var r=t.eq(n);r.trigger("mouseenter");var s=i.$results.offset().top+i.$results.outerHeight(!1),o=r.offset().top+r.outerHeight(!1),a=i.$results.scrollTop()+o-s;0===n?i.$results.scrollTop(0):o>s&&i.$results.scrollTop(a)}}),t.on("results:focus",function(e){e.element.addClass("select2-results__option--highlighted")}),t.on("results:message",function(e){i.displayMessage(e)}),e.fn.mousewheel&&this.$results.on("mousewheel",function(e){var t=i.$results.scrollTop(),n=i.$results.get(0).scrollHeight-t+e.deltaY,r=e.deltaY>0&&t-e.deltaY<=0,s=e.deltaY<0&&n<=i.$results.height();r?(i.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):s&&(i.$results.scrollTop(i.$results.get(0).scrollHeight-i.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(t){var n=e(this),r=n.data("data");"true"!==n.attr("aria-selected")?i.trigger("select",{originalEvent:t,data:r}):i.options.get("multiple")?i.trigger("unselect",{originalEvent:t,data:r}):i.trigger("close",{})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(t){var n=e(this).data("data");i.getHighlightedResults().removeClass("select2-results__option--highlighted"),i.trigger("results:focus",{data:n,element:e(this)})})},n.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},n.prototype.destroy=function(){this.$results.remove()},n.prototype.ensureHighlightVisible=function(){var e=this.getHighlightedResults();if(0!==e.length){var t=this.$results.find("[aria-selected]").index(e),n=this.$results.offset().top,i=e.offset().top,r=this.$results.scrollTop()+(i-n),s=i-n;r-=2*e.outerHeight(!1),t<=2?this.$results.scrollTop(0):(s>this.$results.outerHeight()||s<0)&&this.$results.scrollTop(r)}},n.prototype.template=function(t,n){var i=this.options.get("templateResult"),r=this.options.get("escapeMarkup"),s=i(t,n);null==s?n.style.display="none":"string"==typeof s?n.innerHTML=r(s):e(n).append(s)},n}),t.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),t.define("select2/selection/base",["jquery","../utils","../keys"],function(e,t,n){function i(e,t){this.$element=e,this.options=t,i.__super__.constructor.call(this)}return t.Extend(i,t.Observable),i.prototype.render=function(){var t=e('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),t.attr("title",this.$element.attr("title")),t.attr("tabindex",this._tabindex),this.$selection=t,t},i.prototype.bind=function(e,t){var i=this,r=(e.id,e.id+"-results");this.container=e,this.$selection.on("focus",function(e){i.trigger("focus",e)}),this.$selection.on("blur",function(e){i._handleBlur(e)}),this.$selection.on("keydown",function(e){i.trigger("keypress",e),e.which===n.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){i.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){i.update(e.data)}),e.on("open",function(){i.$selection.attr("aria-expanded","true"),i.$selection.attr("aria-owns",r),i._attachCloseHandler(e)}),e.on("close",function(){i.$selection.attr("aria-expanded","false"),i.$selection.removeAttr("aria-activedescendant"),i.$selection.removeAttr("aria-owns"),i.$selection.focus(),i._detachCloseHandler(e)}),e.on("enable",function(){i.$selection.attr("tabindex",i._tabindex)}),e.on("disable",function(){i.$selection.attr("tabindex","-1")})},i.prototype._handleBlur=function(t){var n=this;window.setTimeout(function(){document.activeElement==n.$selection[0]||e.contains(n.$selection[0],document.activeElement)||n.trigger("blur",t)},1)},i.prototype._attachCloseHandler=function(t){e(document.body).on("mousedown.select2."+t.id,function(t){var n=e(t.target).closest(".select2");e(".select2.select2-container--open").each(function(){var t=e(this);this!=n[0]&&t.data("element").select2("close")})})},i.prototype._detachCloseHandler=function(t){e(document.body).off("mousedown.select2."+t.id)},i.prototype.position=function(e,t){t.find(".selection").append(e)},i.prototype.destroy=function(){this._detachCloseHandler(this.container)},i.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},i}),t.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,i){function r(){r.__super__.constructor.apply(this,arguments)}return n.Extend(r,t),r.prototype.render=function(){var e=r.__super__.render.call(this);return e.addClass("select2-selection--single"),e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),e},r.prototype.bind=function(e,t){var n=this;r.__super__.bind.apply(this,arguments);var i=e.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",i),this.$selection.attr("aria-labelledby",i),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("blur",function(e){}),e.on("focus",function(t){e.isOpen()||n.$selection.focus()}),e.on("selection:update",function(e){n.update(e.data)})},r.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},r.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},r.prototype.selectionContainer=function(){return e("<span></span>")},r.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(".select2-selection__rendered"),i=this.display(t,n);n.empty().append(i),n.prop("title",t.title||t.text)}else this.clear()},r}),t.define("select2/selection/multiple",["jquery","./base","../utils"],function(e,t,n){function i(e,t){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e.addClass("select2-selection--multiple"),e.html('<ul class="select2-selection__rendered"></ul>'),e},i.prototype.bind=function(t,n){var r=this;i.__super__.bind.apply(this,arguments),this.$selection.on("click",function(e){r.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(t){if(!r.options.get("disabled")){var n=e(this).parent().data("data");r.trigger("unselect",{originalEvent:t,data:n})}})},i.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return e('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>')},i.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],i=0;i<e.length;i++){var r=e[i],s=this.selectionContainer(),o=this.display(r,s);s.append(o),s.prop("title",r.title||r.text),s.data("data",r),t.push(s)}var a=this.$selection.find(".select2-selection__rendered");n.appendMany(a,t)}},i}),t.define("select2/selection/placeholder",["../utils"],function(e){function t(e,t,n){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n)}return t.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},t.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.html(this.display(t)),n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),n},t.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(t.length>1||n)return e.call(this,t);this.clear();var i=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(i)},t}),t.define("select2/selection/allowClear",["jquery","../keys"],function(e,t){function n(){}return n.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(e){i._handleClear(e)}),t.on("keypress",function(e){i._handleKeyboardClear(e,t)})},n.prototype._handleClear=function(e,t){if(!this.options.get("disabled")){var n=this.$selection.find(".select2-selection__clear");if(0!==n.length){t.stopPropagation();for(var i=n.data("data"),r=0;r<i.length;r++){var s={data:i[r]};if(this.trigger("unselect",s),s.prevented)return}this.$element.val(this.placeholder.id).trigger("change"),this.trigger("toggle",{})}}},n.prototype._handleKeyboardClear=function(e,n,i){i.isOpen()||n.which!=t.DELETE&&n.which!=t.BACKSPACE||this._handleClear(n)},n.prototype.update=function(t,n){if(t.call(this,n),!(this.$selection.find(".select2-selection__placeholder").length>0||0===n.length)){var i=e('<span class="select2-selection__clear">&times;</span>');i.data("data",n),this.$selection.find(".select2-selection__rendered").prepend(i)}},n}),t.define("select2/selection/search",["jquery","../utils","../keys"],function(e,t,n){function i(e,t,n){e.call(this,t,n)}return i.prototype.render=function(t){var n=e('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=n,this.$search=n.find("input");var i=t.call(this);return this._transferTabIndex(),i},i.prototype.bind=function(e,t,i){var r=this;e.call(this,t,i),t.on("open",function(){r.$search.trigger("focus")}),t.on("close",function(){r.$search.val(""),r.$search.removeAttr("aria-activedescendant"),r.$search.trigger("focus")}),t.on("enable",function(){r.$search.prop("disabled",!1),r._transferTabIndex()}),t.on("disable",function(){r.$search.prop("disabled",!0)}),t.on("focus",function(e){r.$search.trigger("focus")}),t.on("results:focus",function(e){r.$search.attr("aria-activedescendant",e.id)}),this.$selection.on("focusin",".select2-search--inline",function(e){r.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){r._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){if(e.stopPropagation(),r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented(),e.which===n.BACKSPACE&&""===r.$search.val()){var t=r.$searchContainer.prev(".select2-selection__choice");if(t.length>0){var i=t.data("data");r.searchRemoveChoice(i),e.preventDefault()}}});var s=document.documentMode,o=s&&s<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){o?r.$selection.off("input.search input.searchcheck"):r.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){if(o&&"input"===e.type)r.$selection.off("input.search input.searchcheck");else{var t=e.which;t!=n.SHIFT&&t!=n.CTRL&&t!=n.ALT&&t!=n.TAB&&r.handleSearch(e)}})},i.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},i.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},i.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.focus()},i.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var e=this.$search.val();this.trigger("query",{term:e})}this._keyUpPrevented=!1},i.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},i.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="";e=""!==this.$search.attr("placeholder")?this.$selection.find(".select2-selection__rendered").innerWidth():.75*(this.$search.val().length+1)+"em",this.$search.css("width",e)},i}),t.define("select2/selection/eventRelay",["jquery"],function(e){function t(){}return t.prototype.bind=function(t,n,i){var r=this,s=["open","opening","close","closing","select","selecting","unselect","unselecting"],o=["opening","closing","selecting","unselecting"];t.call(this,n,i),n.on("*",function(t,n){if(-1!==e.inArray(t,s)){n=n||{};var i=e.Event("select2:"+t,{params:n});r.$element.trigger(i),-1!==e.inArray(t,o)&&(n.prevented=i.isDefaultPrevented())}})},t}),t.define("select2/translation",["jquery","require"],function(e,t){function n(e){this.dict=e||{}}return n.prototype.all=function(){return this.dict},n.prototype.get=function(e){return this.dict[e]},n.prototype.extend=function(t){this.dict=e.extend({},t.all(),this.dict)},n._cache={},n.loadPath=function(e){if(!(e in n._cache)){var i=t(e);n._cache[e]=i}return new n(n._cache[e])},n}),t.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),t.define("select2/data/base",["../utils"],function(e){function t(e,n){t.__super__.constructor.call(this)}return e.Extend(t,e.Observable),t.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},t.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},t.prototype.bind=function(e,t){},t.prototype.destroy=function(){},t.prototype.generateResultId=function(t,n){var i=t.id+"-result-";return i+=e.generateChars(4),null!=n.id?i+="-"+n.id.toString():i+="-"+e.generateChars(4),i},t}),t.define("select2/data/select",["./base","../utils","jquery"],function(e,t,n){function i(e,t){this.$element=e,this.options=t,i.__super__.constructor.call(this)}return t.Extend(i,e),i.prototype.current=function(e){var t=[],i=this;this.$element.find(":selected").each(function(){var e=n(this),r=i.item(e);t.push(r)}),e(t)},i.prototype.select=function(e){var t=this;if(e.selected=!0,n(e.element).is("option"))return e.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(i){var r=[];(e=[e]).push.apply(e,i);for(var s=0;s<e.length;s++){var o=e[s].id;-1===n.inArray(o,r)&&r.push(o)}t.$element.val(r),t.$element.trigger("change")});else{var i=e.id;this.$element.val(i),this.$element.trigger("change")}},i.prototype.unselect=function(e){var t=this;if(this.$element.prop("multiple")){if(e.selected=!1,n(e.element).is("option"))return e.element.selected=!1,void this.$element.trigger("change");this.current(function(i){for(var r=[],s=0;s<i.length;s++){var o=i[s].id;o!==e.id&&-1===n.inArray(o,r)&&r.push(o)}t.$element.val(r),t.$element.trigger("change")})}},i.prototype.bind=function(e,t){var n=this;this.container=e,e.on("select",function(e){n.select(e.data)}),e.on("unselect",function(e){n.unselect(e.data)})},i.prototype.destroy=function(){this.$element.find("*").each(function(){n.removeData(this,"data")})},i.prototype.query=function(e,t){var i=[],r=this;this.$element.children().each(function(){var t=n(this);if(t.is("option")||t.is("optgroup")){var s=r.item(t),o=r.matches(e,s);null!==o&&i.push(o)}}),t({results:i})},i.prototype.addOptions=function(e){t.appendMany(this.$element,e)},i.prototype.option=function(e){var t;e.children?(t=document.createElement("optgroup")).label=e.text:(t=document.createElement("option")).textContent!==undefined?t.textContent=e.text:t.innerText=e.text,e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var i=n(t),r=this._normalizeItem(e);return r.element=t,n.data(t,"data",r),i},i.prototype.item=function(e){var t={};if(null!=(t=n.data(e[0],"data")))return t;if(e.is("option"))t={id:e.val(),text:e.text(),disabled:e.prop("disabled"),selected:e.prop("selected"),title:e.prop("title")};else if(e.is("optgroup")){t={text:e.prop("label"),children:[],title:e.prop("title")};for(var i=e.children("option"),r=[],s=0;s<i.length;s++){var o=n(i[s]),a=this.item(o);r.push(a)}t.children=r}return t=this._normalizeItem(t),t.element=e[0],n.data(e[0],"data",t),t},i.prototype._normalizeItem=function(e){n.isPlainObject(e)||(e={id:e,text:e});var t={selected:!1,disabled:!1};return null!=(e=n.extend({},{text:""},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&null!=this.container&&(e._resultId=this.generateResultId(this.container,e)),n.extend({},t,e)},i.prototype.matches=function(e,t){return this.options.get("matcher")(e,t)},i}),t.define("select2/data/array",["./select","../utils","jquery"],function(e,t,n){function i(e,t){var n=t.get("data")||[];i.__super__.constructor.call(this,e,t),this.addOptions(this.convertToOptions(n))}return t.Extend(i,e),i.prototype.select=function(e){var t=this.$element.find("option").filter(function(t,n){return n.value==e.id.toString()});0===t.length&&(t=this.option(e),this.addOptions(t)),i.__super__.select.call(this,e)},i.prototype.convertToOptions=function(e){for(var i=this,r=this.$element.find("option"),s=r.map(function(){return i.item(n(this)).id}).get(),o=[],a=0;a<e.length;a++){var l=this._normalizeItem(e[a]);if(n.inArray(l.id,s)>=0){var c=r.filter(function(e){return function(){return n(this).val()==e.id}}(l)),u=this.item(c),d=n.extend(!0,{},l,u),p=this.option(d);c.replaceWith(p)}else{var h=this.option(l);if(l.children){var f=this.convertToOptions(l.children);t.appendMany(h,f)}o.push(h)}}return o},i}),t.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,n){function i(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),i.__super__.constructor.call(this,e,t)}return t.Extend(i,e),i.prototype._applyDefaults=function(e){var t={data:function(e){return n.extend({},e,{q:e.term})},transport:function(e,t,i){var r=n.ajax(e);return r.then(t),r.fail(i),r}};return n.extend({},t,e,!0)},i.prototype.processResults=function(e){return e},i.prototype.query=function(e,t){function i(){var i=s.transport(s,function(i){var s=r.processResults(i,e);r.options.get("debug")&&window.console&&console.error&&(s&&s.results&&n.isArray(s.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),t(s)},function(){i.status&&"0"===i.status||r.trigger("results:message",{message:"errorLoading"})});r._request=i}var r=this;null!=this._request&&(n.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var s=n.extend({type:"GET"},this.ajaxOptions);"function"==typeof s.url&&(s.url=s.url.call(this.$element,e)),"function"==typeof s.data&&(s.data=s.data.call(this.$element,e)),this.ajaxOptions.delay&&null!=e.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(i,this.ajaxOptions.delay)):i()},i}),t.define("select2/data/tags",["jquery"],function(e){function t(t,n,i){var r=i.get("tags"),s=i.get("createTag");s!==undefined&&(this.createTag=s);var o=i.get("insertTag");if(o!==undefined&&(this.insertTag=o),t.call(this,n,i),e.isArray(r))for(var a=0;a<r.length;a++){var l=r[a],c=this._normalizeItem(l),u=this.option(c);this.$element.append(u)}}return t.prototype.query=function(e,t,n){function i(e,s){for(var o=e.results,a=0;a<o.length;a++){var l=o[a],c=null!=l.children&&!i({results:l.children},!0);if(l.text===t.term||c)return!s&&(e.data=o,void n(e))}if(s)return!0;var u=r.createTag(t);if(null!=u){var d=r.option(u);d.attr("data-select2-tag",!0),r.addOptions([d]),r.insertTag(o,u)}e.results=o,n(e)}var r=this;this._removeOldTags(),null!=t.term&&null==t.page?e.call(this,t,i):e.call(this,t,n)},t.prototype.createTag=function(t,n){var i=e.trim(n.term);return""===i?null:{id:i,text:i}},t.prototype.insertTag=function(e,t,n){t.unshift(n)},t.prototype._removeOldTags=function(t){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||e(this).remove()})},t}),t.define("select2/data/tokenizer",["jquery"],function(e){function t(e,t,n){var i=n.get("tokenizer");i!==undefined&&(this.tokenizer=i),e.call(this,t,n)}return t.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(".select2-search__field")},t.prototype.query=function(t,n,i){function r(e){s.trigger("select",{data:e})}var s=this;n.term=n.term||"";var o=this.tokenizer(n,this.options,function(t){var n=s._normalizeItem(t);if(!s.$element.find("option").filter(function(){return e(this).val()===n.id}).length){var i=s.option(n);i.attr("data-select2-tag",!0),s._removeOldTags(),s.addOptions([i])}r(n)});o.term!==n.term&&(this.$search.length&&(this.$search.val(o.term),this.$search.focus()),n.term=o.term),t.call(this,n,i)},t.prototype.tokenizer=function(t,n,i,r){for(var s=i.get("tokenSeparators")||[],o=n.term,a=0,l=this.createTag||function(e){return{id:e.term,text:e.term}};a<o.length;){var c=o[a];if(-1!==e.inArray(c,s)){var u=o.substr(0,a),d=l(e.extend({},n,{term:u}));null!=d?(r(d),o=o.substr(a+1)||"",a=0):a++}else a++}return{term:o}},t}),t.define("select2/data/minimumInputLength",[],function(){function e(e,t,n){this.minimumInputLength=n.get("minimumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",t.term.length<this.minimumInputLength?this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),t.define("select2/data/maximumInputLength",[],function(){function e(e,t,n){this.maximumInputLength=n.get("maximumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",this.maximumInputLength>0&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),t.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){var i=this;this.current(function(r){var s=null!=r?r.length:0;i.maximumSelectionLength>0&&s>=i.maximumSelectionLength?i.trigger("results:message",{message:"maximumSelected",args:{maximum:i.maximumSelectionLength}}):e.call(i,t,n)})},e}),t.define("select2/dropdown",["jquery","./utils"],function(e,t){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return t.Extend(n,t.Observable),n.prototype.render=function(){var t=e('<span class="select2-dropdown"><span class="select2-results"></span></span>');return t.attr("dir",this.options.get("dir")),this.$dropdown=t,t},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),t.define("select2/dropdown/search",["jquery","../utils"],function(e,t){function n(){}return n.prototype.render=function(t){var n=t.call(this),i=e('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=i,this.$search=i.find("input"),n.prepend(i),n},n.prototype.bind=function(t,n,i){var r=this;t.call(this,n,i),this.$search.on("keydown",function(e){r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(t){e(this).off("keyup")}),this.$search.on("keyup input",function(e){r.handleSearch(e)}),n.on("open",function(){r.$search.attr("tabindex",0),r.$search.focus(),window.setTimeout(function(){r.$search.focus()},0)}),n.on("close",function(){r.$search.attr("tabindex",-1),r.$search.val("")}),n.on("focus",function(){n.isOpen()&&r.$search.focus()}),n.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(r.showSearch(e)?r.$searchContainer.removeClass("select2-search--hide"):r.$searchContainer.addClass("select2-search--hide"))})},n.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},n.prototype.showSearch=function(e,t){return!0},n}),t.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,i){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,i)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),i=t.length-1;i>=0;i--){var r=t[i];this.placeholder.id===r.id&&n.splice(i,1)}return n},e}),t.define("select2/dropdown/infiniteScroll",["jquery"],function(e){function t(e,t,n,i){this.lastParams={},e.call(this,t,n,i),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return t.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&this.$results.append(this.$loadingMore)},t.prototype.bind=function(t,n,i){var r=this;t.call(this,n,i),n.on("query",function(e){r.lastParams=e,r.loading=!0}),n.on("query:append",function(e){r.lastParams=e,r.loading=!0}),this.$results.on("scroll",function(){var t=e.contains(document.documentElement,r.$loadingMore[0]);!r.loading&&t&&r.$results.offset().top+r.$results.outerHeight(!1)+50>=r.$loadingMore.offset().top+r.$loadingMore.outerHeight(!1)&&r.loadMore()})},t.prototype.loadMore=function(){this.loading=!0;var t=e.extend({},{page:1},this.lastParams);t.page++,this.trigger("query:append",t)},t.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},t.prototype.createLoadingMore=function(){var t=e('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),n=this.options.get("translations").get("loadingMore");return t.html(n(this.lastParams)),t},t}),t.define("select2/dropdown/attachBody",["jquery","../utils"],function(e,t){function n(t,n,i){this.$dropdownParent=i.get("dropdownParent")||e(document.body),t.call(this,n,i)}return n.prototype.bind=function(e,t,n){var i=this,r=!1;e.call(this,t,n),t.on("open",function(){i._showDropdown(),i._attachPositioningHandler(t),r||(r=!0,t.on("results:all",function(){i._positionDropdown(),i._resizeDropdown()}),t.on("results:append",function(){i._positionDropdown(),i._resizeDropdown()}))}),t.on("close",function(){i._hideDropdown(),i._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},n.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},n.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},n.prototype.render=function(t){var n=e("<span></span>"),i=t.call(this);return n.append(i),this.$dropdownContainer=n,n},n.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},n.prototype._attachPositioningHandler=function(n,i){var r=this,s="scroll.select2."+i.id,o="resize.select2."+i.id,a="orientationchange.select2."+i.id,l=this.$container.parents().filter(t.hasScroll);l.each(function(){e(this).data("select2-scroll-position",{x:e(this).scrollLeft(),y:e(this).scrollTop()})}),l.on(s,function(t){var n=e(this).data("select2-scroll-position");e(this).scrollTop(n.y)}),e(window).on(s+" "+o+" "+a,function(e){r._positionDropdown(),r._resizeDropdown()})},n.prototype._detachPositioningHandler=function(n,i){var r="scroll.select2."+i.id,s="resize.select2."+i.id,o="orientationchange.select2."+i.id;this.$container.parents().filter(t.hasScroll).off(r),e(window).off(r+" "+s+" "+o)},n.prototype._positionDropdown=function(){var t=e(window),n=this.$dropdown.hasClass("select2-dropdown--above"),i=this.$dropdown.hasClass("select2-dropdown--below"),r=null,s=this.$container.offset();s.bottom=s.top+this.$container.outerHeight(!1);var o={height:this.$container.outerHeight(!1)};o.top=s.top,o.bottom=s.top+o.height;var a={height:this.$dropdown.outerHeight(!1)},l={top:t.scrollTop(),bottom:t.scrollTop()+t.height()},c=l.top<s.top-a.height,u=l.bottom>s.bottom+a.height,d={left:s.left,top:o.bottom},p=this.$dropdownParent;"static"===p.css("position")&&(p=p.offsetParent());var h=p.offset();d.top-=h.top,d.left-=h.left,n||i||(r="below"),u||!c||n?!c&&u&&n&&(r="below"):r="above",("above"==r||n&&"below"!==r)&&(d.top=o.top-h.top-a.height),null!=r&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+r),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+r)),this.$dropdownContainer.css(d)},n.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},n.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},n}),t.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(t){for(var n=0,i=0;i<t.length;i++){var r=t[i];r.children?n+=e(r.children):n++}return n}function t(e,t,n,i){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=Infinity),e.call(this,t,n,i)}return t.prototype.showSearch=function(t,n){return!(e(n.data.results)<this.minimumResultsForSearch)&&t.call(this,n)},t}),t.define("select2/dropdown/selectOnClose",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("close",function(e){i._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if("select"===n._type||"unselect"===n._type)return}var i=this.getHighlightedResults();if(!(i.length<1)){var r=i.data("data");null!=r.element&&r.element.selected||null==r.element&&r.selected||this.trigger("select",{data:r})}},e}),t.define("select2/dropdown/closeOnSelect",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("select",function(e){i._selectTriggered(e)}),t.on("unselect",function(e){i._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&n.ctrlKey||this.trigger("close",{originalEvent:n,originalSelect2Event:t})},e}),t.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return 1!=t&&(n+="s"),n},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return 1!=e.maximum&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),t.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(e,t,n,i,r,s,o,a,l,c,u,d,p,h,f,g,m,v,y,_,$,w,b,A,x,E,C,O,S){function T(){this.reset()}return T.prototype.apply=function(d){if(null==(d=e.extend(!0,{},this.defaults,d)).dataAdapter){if(null!=d.ajax?d.dataAdapter=f:null!=d.data?d.dataAdapter=h:d.dataAdapter=p,d.minimumInputLength>0&&(d.dataAdapter=c.Decorate(d.dataAdapter,v)),d.maximumInputLength>0&&(d.dataAdapter=c.Decorate(d.dataAdapter,y)),d.maximumSelectionLength>0&&(d.dataAdapter=c.Decorate(d.dataAdapter,_)),d.tags&&(d.dataAdapter=c.Decorate(d.dataAdapter,g)),null==d.tokenSeparators&&null==d.tokenizer||(d.dataAdapter=c.Decorate(d.dataAdapter,m)),null!=d.query){var S=t(d.amdBase+"compat/query");d.dataAdapter=c.Decorate(d.dataAdapter,S)}if(null!=d.initSelection){var T=t(d.amdBase+"compat/initSelection");d.dataAdapter=c.Decorate(d.dataAdapter,T)}}if(null==d.resultsAdapter&&(d.resultsAdapter=n,null!=d.ajax&&(d.resultsAdapter=c.Decorate(d.resultsAdapter,A)),null!=d.placeholder&&(d.resultsAdapter=c.Decorate(d.resultsAdapter,b)),d.selectOnClose&&(d.resultsAdapter=c.Decorate(d.resultsAdapter,C))),null==d.dropdownAdapter){if(d.multiple)d.dropdownAdapter=$;else{var D=c.Decorate($,w);d.dropdownAdapter=D}if(0!==d.minimumResultsForSearch&&(d.dropdownAdapter=c.Decorate(d.dropdownAdapter,E)),d.closeOnSelect&&(d.dropdownAdapter=c.Decorate(d.dropdownAdapter,O)),null!=d.dropdownCssClass||null!=d.dropdownCss||null!=d.adaptDropdownCssClass){var q=t(d.amdBase+"compat/dropdownCss");d.dropdownAdapter=c.Decorate(d.dropdownAdapter,q)}d.dropdownAdapter=c.Decorate(d.dropdownAdapter,x)}if(null==d.selectionAdapter){if(d.multiple?d.selectionAdapter=r:d.selectionAdapter=i,null!=d.placeholder&&(d.selectionAdapter=c.Decorate(d.selectionAdapter,s)),d.allowClear&&(d.selectionAdapter=c.Decorate(d.selectionAdapter,o)),d.multiple&&(d.selectionAdapter=c.Decorate(d.selectionAdapter,a)),null!=d.containerCssClass||null!=d.containerCss||null!=d.adaptContainerCssClass){var L=t(d.amdBase+"compat/containerCss");d.selectionAdapter=c.Decorate(d.selectionAdapter,L)}d.selectionAdapter=c.Decorate(d.selectionAdapter,l)}if("string"==typeof d.language)if(d.language.indexOf("-")>0){var j=d.language.split("-")[0];d.language=[d.language,j]}else d.language=[d.language];if(e.isArray(d.language)){var P=new u;d.language.push("en");for(var k=d.language,I=0;I<k.length;I++){var R=k[I],M={};try{M=u.loadPath(R)}catch(z){try{R=this.defaults.amdLanguageBase+R,M=u.loadPath(R)}catch(N){d.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+R+'" could not be automatically loaded. A fallback will be used instead.');continue}}P.extend(M)}d.translations=P}else{var U=u.loadPath(this.defaults.amdLanguageBase+"en"),H=new u(d.language);H.extend(U),d.translations=H}return d},T.prototype.reset=function(){function t(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return d[e]||e})}function n(i,r){if(""===e.trim(i.term))return r;if(r.children&&r.children.length>0){for(var s=e.extend(!0,{},r),o=r.children.length-1;o>=0;o--)null==n(i,r.children[o])&&s.children.splice(o,1);return s.children.length>0?s:n(i,s)}var a=t(r.text).toUpperCase(),l=t(i.term).toUpperCase();return a.indexOf(l)>-1?r:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:c.escapeMarkup,language:S,matcher:n,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},T.prototype.set=function(t,n){var i={};i[e.camelCase(t)]=n;var r=c._convertData(i);e.extend(this.defaults,r)},new T}),t.define("select2/options",["require","jquery","./defaults","./utils"],function(e,t,n,i){function r(t,r){if(this.options=t,null!=r&&this.fromElement(r),this.options=n.apply(this.options),r&&r.is("input")){var s=e(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=i.Decorate(this.options.dataAdapter,s)}}return r.prototype.fromElement=function(e){var n=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.language&&(e.prop("lang")?this.options.language=e.prop("lang").toLowerCase():e.closest("[lang]").prop("lang")&&(this.options.language=e.closest("[lang]").prop("lang"))),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),e.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),e.data("data",e.data("select2Tags")),e.data("tags",!0)),e.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",e.data("ajaxUrl")),e.data("ajax--url",e.data("ajaxUrl")));var r={};r=t.fn.jquery&&"1."==t.fn.jquery.substr(0,2)&&e[0].dataset?t.extend(!0,{},e[0].dataset,e.data()):e.data();var s=t.extend(!0,{},r);s=i._convertData(s);for(var o in s)t.inArray(o,n)>-1||(t.isPlainObject(this.options[o])?t.extend(this.options[o],s[o]):this.options[o]=s[o]);return this},r.prototype.get=function(e){return this.options[e]},r.prototype.set=function(e,t){this.options[e]=t},r}),t.define("select2/core",["jquery","./options","./utils","./keys"],function(e,t,n,i){var r=function(e,n){null!=e.data("select2")&&e.data("select2").destroy(),this.$element=e,this.id=this._generateId(e),n=n||{},this.options=new t(n,e),r.__super__.constructor.call(this);var i=e.attr("tabindex")||0;e.data("old-tabindex",i),e.attr("tabindex","-1");var s=this.options.get("dataAdapter");this.dataAdapter=new s(e,this.options);var o=this.render();this._placeContainer(o);var a=this.options.get("selectionAdapter");this.selection=new a(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,o);var l=this.options.get("dropdownAdapter");this.dropdown=new l(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,o);var c=this.options.get("resultsAdapter");this.results=new c(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var u=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){u.trigger("selection:update",{data:e})}),e.addClass("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),e.data("select2",this)};return n.Extend(r,n.Observable),r.prototype._generateId=function(e){var t="";return t=null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+n.generateChars(2):n.generateChars(4),t=t.replace(/(:|\.|\[|\]|,)/g,""),t="select2-"+t},r.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},r.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var i=this._resolveWidth(e,"style");return null!=i?i:this._resolveWidth(e,"element")}if("element"==t){var r=e.outerWidth(!1);return r<=0?"auto":r+"px"}if("style"==t){var s=e.attr("style");if("string"!=typeof s)return null;for(var o=s.split(";"),a=0,l=o.length;a<l;a+=1){var c=o[a].replace(/\s/g,"").match(n);if(null!==c&&c.length>=1)return c[1]}return null}return t},r.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},r.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=n.bind(this._syncAttributes,this),this._syncS=n.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var i=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=i?(this._observer=new i(function(n){e.each(n,t._syncA),e.each(n,t._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",t._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",t._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",t._syncS,!1))},r.prototype._registerDataEvents=function(){var e=this;this.dataAdapter.on("*",function(t,n){e.trigger(t,n)})},r.prototype._registerSelectionEvents=function(){var t=this,n=["toggle","focus"];this.selection.on("toggle",function(){t.toggleDropdown()}),this.selection.on("focus",function(e){t.focus(e)}),this.selection.on("*",function(i,r){-1===e.inArray(i,n)&&t.trigger(i,r)})},r.prototype._registerDropdownEvents=function(){var e=this;this.dropdown.on("*",function(t,n){e.trigger(t,n)})},r.prototype._registerResultsEvents=function(){var e=this;this.results.on("*",function(t,n){e.trigger(t,n)})},r.prototype._registerEvents=function(){var e=this;this.on("open",function(){e.$container.addClass("select2-container--open")}),this.on("close",function(){e.$container.removeClass("select2-container--open")}),this.on("enable",function(){e.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){e.$container.addClass("select2-container--disabled")}),this.on("blur",function(){e.$container.removeClass("select2-container--focus")}),this.on("query",function(t){e.isOpen()||e.trigger("open",{}),this.dataAdapter.query(t,function(n){e.trigger("results:all",{data:n,query:t})})}),this.on("query:append",function(t){this.dataAdapter.query(t,function(n){e.trigger("results:append",{data:n,query:t})})}),this.on("keypress",function(t){var n=t.which;e.isOpen()?n===i.ESC||n===i.TAB||n===i.UP&&t.altKey?(e.close(),t.preventDefault()):n===i.ENTER?(e.trigger("results:select",{}),t.preventDefault()):n===i.SPACE&&t.ctrlKey?(e.trigger("results:toggle",{}),t.preventDefault()):n===i.UP?(e.trigger("results:previous",{}),t.preventDefault()):n===i.DOWN&&(e.trigger("results:next",{}),t.preventDefault()):(n===i.ENTER||n===i.SPACE||n===i.DOWN&&t.altKey)&&(e.open(),t.preventDefault())})},r.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},r.prototype._syncSubtree=function(e,t){var n=!1,i=this;if(!e||!e.target||"OPTION"===e.target.nodeName||"OPTGROUP"===e.target.nodeName){if(t)if(t.addedNodes&&t.addedNodes.length>0)for(var r=0;r<t.addedNodes.length;r++)t.addedNodes[r].selected&&(n=!0);else t.removedNodes&&t.removedNodes.length>0&&(n=!0);else n=!0;n&&this.dataAdapter.current(function(e){i.trigger("selection:update",{data:e})})}},r.prototype.trigger=function(e,t){var n=r.__super__.trigger,i={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(t===undefined&&(t={}),e in i){var s=i[e],o={prevented:!1,name:e,args:t};if(n.call(this,s,o),o.prevented)return void(t.prevented=!0)}n.call(this,e,t)},r.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},r.prototype.open=function(){this.isOpen()||this.trigger("query",{})},r.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},r.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},r.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},r.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},r.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=e&&0!==e.length||(e=[!0]);var t=!e[0];this.$element.prop("disabled",t)},r.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var e=[];return this.dataAdapter.current(function(t){e=t}),e},r.prototype.val=function(t){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==t||0===t.length)return this.$element.val();var n=t[0];e.isArray(n)&&(n=e.map(n,function(e){return e.toString()})),this.$element.val(n).trigger("change")},r.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},r.prototype.render=function(){var t=e('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return t.attr("dir",this.options.get("dir")),this.$container=t,this.$container.addClass("select2-container--"+this.options.get("theme")),t.data("element",this.$element),t},r}),t.define("jquery-mousewheel",["jquery"],function(e){return e}),t.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(e,t,n,i){if(null==e.fn.select2){var r=["open","close","destroy"];e.fn.select2=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var i=e.extend(!0,{},t);new n(e(this),i)}),this;if("string"==typeof t){var i,s=Array.prototype.slice.call(arguments,1);return this.each(function(){var n=e(this).data("select2");null==n&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),i=n[t].apply(n,s)}),e.inArray(t,r)>-1?this:i}throw new Error("Invalid arguments for Select2: "+t)}}return null==e.fn.select2.defaults&&(e.fn.select2.defaults=i),n}),{define:t.define,require:t.require}}(),n=t.require("jquery.select2");return e.fn.select2.amd=t,n});
plugin-fw/assets/js/yit-plugin-panel.js CHANGED
@@ -8,129 +8,122 @@
8
  */
9
 
10
  jQuery( function ( $ ) {
11
- // Handle dependencies.
12
- function dependencies_handler( id, deps, values, type ) {
13
- var result = true;
14
- //Single dependency
15
- if ( typeof ( deps ) == 'string' ) {
16
- // ??
17
- if ( deps.substr( 0, 6 ) == ':radio' ) {
18
- deps = deps + ':checked';
19
- }
20
-
21
- var input_type = $( deps ).data( 'type' ),
22
- val = $( deps ).val();
23
-
24
- if ( 'checkbox' === input_type ) {
25
- val = $( deps ).is( ':checked' ) ? 'yes' : 'no';
26
- }
27
- else if ( 'radio' === input_type ) {
28
- val = $( deps ).find('input[type="radio"]').filter(':checked').val();
29
- }
30
-
31
- if( $( deps + '-wrapper' ).data( 'type' ) === 'select-images' ){
32
- val = $( deps + '-wrapper' ).find( 'select' ).first().val();
33
- }
34
-
35
- values = values.split( ',' );
36
-
37
- for ( var i = 0; i < values.length; i++ ) {
38
- if ( val != values[ i ] ) {
39
- result = false;
40
- } else {
41
- result = true;
42
- break;
43
- }
44
- }
45
- }
46
-
47
- var $current_field = $( id ),
48
- $current_container = $( id + '-container' ).closest( 'tr' ); // container for YIT Plugin Panel
49
-
50
- if ( $current_container.length < 1 ) {
51
- // container for YIT Plugin Panel WooCommerce
52
- $current_container = $current_field.closest( '.yith-plugin-fw-panel-wc-row, .yith-toggle-content-row' );
53
- }
54
-
55
- var types = type.split( '-' ), j;
56
- for ( j in types ) {
57
- var current_type = types[ j ];
58
-
59
- if ( !result ) {
60
- switch ( current_type ) {
61
- case 'disable':
62
- $current_container.addClass( 'yith-disabled' );
63
- $current_field.attr( 'disabled', true );
64
- break;
65
- case 'hideNow':
66
- $current_container.hide();
67
- break;
68
- case 'hideme':
69
- $current_field.hide();
70
- break;
71
- case 'fadeInOut':
72
- case 'fadeOut':
73
- $current_container.hide( 500 );
74
- break;
75
- case 'fadeIn':
76
- $current_container.hide();
77
- break;
78
- default:
79
- if ( ! $current_container.hasClass( 'fade-in' ) ) {
80
- $current_container.hide();
81
- $current_container.css( { 'opacity': '0' } );
82
- } else {
83
- $current_container.fadeTo( "slow", 0, function () {
84
- $( this ).hide().removeClass( 'fade-in' );
85
- } );
86
- }
87
-
88
- }
89
-
90
- } else {
91
- switch ( current_type ) {
92
- case 'disable':
93
- $current_container.removeClass( 'yith-disabled' );
94
- $current_field.attr( 'disabled', false );
95
- break;
96
- case 'hideNow':
97
- $current_container.hide();
98
- break;
99
- case 'hideme':
100
- $current_field.show();
101
- break;
102
- case 'fadeInOut':
103
- case 'fadeIn':
104
- $current_container.show( 500 );
105
- break;
106
- case 'fadeOut':
107
- $current_container.show();
108
- break;
109
- default:
110
- $current_container.show();
111
- $current_container.fadeTo( "slow", 1 ).addClass( 'fade-in' );
112
- }
113
- }
114
- }
115
- }
116
- function init_dependencies() {
117
- $( '[data-dep-target]:not( .deps-initialized )' ).each( function () {
118
- var t = $( this );
119
-
120
- // init field deps
121
- t.addClass( 'deps-initialized' );
122
-
123
- var field = '#' + t.data( 'dep-target' ),
124
- dep = '#' + t.data( 'dep-id' ),
125
- value = t.data( 'dep-value' ),
126
- type = t.data( 'dep-type' ),
127
- event = 'change',
128
- wrapper = $( dep + '-wrapper' ),
129
- field_type = wrapper.data( 'type' );
130
-
131
- if( field_type === 'select-images' ){
132
- event = 'yith_select_images_value_changed';
133
- }
134
 
135
  $( dep ).on( event, function () {
136
  dependencies_handler( field, dep, value.toString(), type );
@@ -138,89 +131,88 @@ jQuery( function ( $ ) {
138
  } );
139
  }
140
 
141
- init_dependencies();
142
- // re-init deps after an add toggle action
143
- $( document ).on( 'yith-add-box-button-toggle', init_dependencies );
144
-
145
- //connected list
146
- $( '.rm_connectedlist' ).each( function () {
147
- var ul = $( this ).find( 'ul' );
148
- var input = $( this ).find( ':hidden' );
149
- var sortable = ul.sortable( {
150
- connectWith: ul,
151
- update : function ( event, ui ) {
152
- var value = {};
153
-
154
- ul.each( function () {
155
- var options = {};
156
-
157
- $( this ).children().each( function () {
158
- options[ $( this ).data( 'option' ) ] = $( this ).text();
159
- } );
160
-
161
- value[ $( this ).data( 'list' ) ] = options;
162
- } );
163
-
164
- input.val( ( JSON.stringify( value ) ).replace( /[\\"']/g, '\\$&' ).replace( /\u0000/g, '\\0' ) );
165
- }
166
- } ).disableSelection();
167
- } );
168
-
169
- //google analytics generation
170
- $( function () {
171
- $( '.google-analytic-generate' ).click( function () {
172
- var editor = $( '#' + $( this ).data( 'textarea' ) ).data( 'codemirrorInstance' );
173
- var gatc = $( '#' + $( this ).data( 'input' ) ).val();
174
- var basename = $( this ).data( 'basename' );
175
-
176
- var text = "(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n";
177
- text += "(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement( o ),\n";
178
- text += "m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n";
179
- text += "})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n";
180
- text += "ga('create', '" + gatc + "', '" + basename + "');\n";
181
- text += "ga('send', 'pageview');\n";
182
- editor.replaceRange(
183
- text,
184
- editor.getCursor( 'start' ),
185
- editor.getCursor( 'end' )
186
- );
187
- } );
188
- } );
189
-
190
-
191
- // prevents the WC message for changes when leaving the panel page
192
- $( '.yith-plugin-fw-panel .woo-nav-tab-wrapper' ).removeClass( 'woo-nav-tab-wrapper' ).addClass( 'yith-nav-tab-wrapper' );
193
-
194
- var wrap = $( '.wrap.yith-plugin-ui' ).first(),
195
- notices = $( 'div.updated, div.error, div.notice' );
196
-
197
- // prevent moving notices into the wrapper
198
- notices.addClass( 'inline' );
199
- if ( wrap.length ) {
200
- wrap.prepend( notices );
201
- }
202
-
203
-
204
- // TAB MENU AND SUB TABS
205
- var active_subnav = $(document).find( '.yith-nav-sub-tab.nav-tab-active' );
206
-
207
- if( active_subnav.length ){
208
- // WP page
209
- var mainWrapper = $(document).find( '.yith-plugin-fw-wp-page-wrapper' );
210
- if( ! mainWrapper.length ){
211
- mainWrapper = $(document).find( '#wpbody-content > .yith-plugin-ui' );
212
- }
213
-
214
- if( mainWrapper ){
215
- // serach first for deafult wrap
216
- var wrap = mainWrapper.find( '.yit-admin-panel-content-wrap' );
217
- if( wrap.length ) {
218
- wrap.addClass( 'has-subnav' );
219
- }
220
- else {
221
- // try to wrap a generic wrap div in main wrapper
222
- mainWrapper.find('.wrap').wrap('<div class="wrap subnav-wrap"></div>');
223
- }
224
- }
225
- }
226
  } );
8
  */
9
 
10
  jQuery( function ( $ ) {
11
+ // Handle dependencies.
12
+ function dependencies_handler( id, deps, values, type ) {
13
+ var result = true;
14
+ //Single dependency
15
+ if ( typeof ( deps ) == 'string' ) {
16
+ // ??
17
+ if ( deps.substr( 0, 6 ) == ':radio' ) {
18
+ deps = deps + ':checked';
19
+ }
20
+
21
+ var input_type = $( deps ).data( 'type' ),
22
+ val = $( deps ).val();
23
+
24
+ if ( 'checkbox' === input_type ) {
25
+ val = $( deps ).is( ':checked' ) ? 'yes' : 'no';
26
+ } else if ( 'radio' === input_type ) {
27
+ val = $( deps ).find( 'input[type="radio"]' ).filter( ':checked' ).val();
28
+ }
29
+
30
+ if ( $( deps + '-wrapper' ).data( 'type' ) === 'select-images' ) {
31
+ val = $( deps + '-wrapper' ).find( 'select' ).first().val();
32
+ }
33
+
34
+ values = values.split( ',' );
35
+
36
+ for ( var i = 0; i < values.length; i++ ) {
37
+ if ( val != values[ i ] ) {
38
+ result = false;
39
+ } else {
40
+ result = true;
41
+ break;
42
+ }
43
+ }
44
+ }
45
+
46
+ var $current_field = $( id ),
47
+ $current_container = $( id + '-container' ).closest( 'tr' ); // container for YIT Plugin Panel
48
+
49
+ if ( $current_container.length < 1 ) {
50
+ // container for YIT Plugin Panel WooCommerce
51
+ $current_container = $current_field.closest( '.yith-plugin-fw-panel-wc-row, .yith-toggle-content-row' );
52
+ }
53
+
54
+ var types = type.split( '-' ), j;
55
+ for ( j in types ) {
56
+ var current_type = types[ j ];
57
+
58
+ if ( !result ) {
59
+ switch ( current_type ) {
60
+ case 'disable':
61
+ $current_container.addClass( 'yith-disabled' );
62
+ $current_field.attr( 'disabled', true );
63
+ break;
64
+ case 'hide':
65
+ case 'hideNow':
66
+ $current_container.hide();
67
+ break;
68
+ case 'hideme':
69
+ $current_field.hide();
70
+ break;
71
+ case 'fadeInOut':
72
+ case 'fadeOut':
73
+ $current_container.hide( 500 );
74
+ break;
75
+ case 'fadeIn':
76
+ default:
77
+ $current_container.hide();
78
+ }
79
+ } else {
80
+ switch ( current_type ) {
81
+ case 'disable':
82
+ $current_container.removeClass( 'yith-disabled' );
83
+ $current_field.attr( 'disabled', false );
84
+ break;
85
+ case 'hide':
86
+ case 'hideNow':
87
+ $current_container.show();
88
+ break;
89
+ case 'hideme':
90
+ $current_field.show();
91
+ break;
92
+ case 'fadeOut':
93
+ $current_container.show();
94
+ break;
95
+ case 'fadeInOut':
96
+ case 'fadeIn':
97
+ default:
98
+ $current_container.show( 500 );
99
+ }
100
+ }
101
+ }
102
+ }
103
+
104
+ function init_dependencies() {
105
+ $( '[data-dep-target]:not( .deps-initialized )' ).each( function () {
106
+ var t = $( this );
107
+
108
+ if ( t.closest( '.metaboxes-tab' ).length ) {
109
+ // Let meta-boxes handle their own deps.
110
+ return;
111
+ }
112
+
113
+ // init field deps
114
+ t.addClass( 'deps-initialized' );
115
+
116
+ var field = '#' + t.data( 'dep-target' ),
117
+ dep = '#' + t.data( 'dep-id' ),
118
+ value = t.data( 'dep-value' ),
119
+ type = t.data( 'dep-type' ),
120
+ event = 'change',
121
+ wrapper = $( dep + '-wrapper' ),
122
+ field_type = wrapper.data( 'type' );
123
+
124
+ if ( field_type === 'select-images' ) {
125
+ event = 'yith_select_images_value_changed';
126
+ }
 
 
 
 
 
 
 
127
 
128
  $( dep ).on( event, function () {
129
  dependencies_handler( field, dep, value.toString(), type );
131
  } );
132
  }
133
 
134
+ init_dependencies();
135
+ // re-init deps after an add toggle action
136
+ $( document ).on( 'yith-add-box-button-toggle', init_dependencies );
137
+
138
+ //connected list
139
+ $( '.rm_connectedlist' ).each( function () {
140
+ var ul = $( this ).find( 'ul' );
141
+ var input = $( this ).find( ':hidden' );
142
+ var sortable = ul.sortable( {
143
+ connectWith: ul,
144
+ update : function ( event, ui ) {
145
+ var value = {};
146
+
147
+ ul.each( function () {
148
+ var options = {};
149
+
150
+ $( this ).children().each( function () {
151
+ options[ $( this ).data( 'option' ) ] = $( this ).text();
152
+ } );
153
+
154
+ value[ $( this ).data( 'list' ) ] = options;
155
+ } );
156
+
157
+ input.val( ( JSON.stringify( value ) ).replace( /[\\"']/g, '\\$&' ).replace( /\u0000/g, '\\0' ) );
158
+ }
159
+ } ).disableSelection();
160
+ } );
161
+
162
+ //google analytics generation
163
+ $( function () {
164
+ $( '.google-analytic-generate' ).click( function () {
165
+ var editor = $( '#' + $( this ).data( 'textarea' ) ).data( 'codemirrorInstance' );
166
+ var gatc = $( '#' + $( this ).data( 'input' ) ).val();
167
+ var basename = $( this ).data( 'basename' );
168
+
169
+ var text = "(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n";
170
+ text += "(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement( o ),\n";
171
+ text += "m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n";
172
+ text += "})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n";
173
+ text += "ga('create', '" + gatc + "', '" + basename + "');\n";
174
+ text += "ga('send', 'pageview');\n";
175
+ editor.replaceRange(
176
+ text,
177
+ editor.getCursor( 'start' ),
178
+ editor.getCursor( 'end' )
179
+ );
180
+ } );
181
+ } );
182
+
183
+
184
+ // prevents the WC message for changes when leaving the panel page
185
+ $( '.yith-plugin-fw-panel .woo-nav-tab-wrapper' ).removeClass( 'woo-nav-tab-wrapper' ).addClass( 'yith-nav-tab-wrapper' );
186
+
187
+ var wrap = $( '.wrap.yith-plugin-ui' ).first(),
188
+ notices = $( 'div.updated, div.error, div.notice' );
189
+
190
+ // prevent moving notices into the wrapper
191
+ notices.addClass( 'inline' );
192
+ if ( wrap.length ) {
193
+ wrap.prepend( notices );
194
+ }
195
+
196
+
197
+ // TAB MENU AND SUB TABS
198
+ var active_subnav = $( document ).find( '.yith-nav-sub-tab.nav-tab-active' );
199
+
200
+ if ( active_subnav.length ) {
201
+ // WP page
202
+ var mainWrapper = $( document ).find( '.yith-plugin-fw-wp-page-wrapper' );
203
+ if ( !mainWrapper.length ) {
204
+ mainWrapper = $( document ).find( '#wpbody-content > .yith-plugin-ui' );
205
+ }
206
+
207
+ if ( mainWrapper ) {
208
+ // serach first for deafult wrap
209
+ var wrap = mainWrapper.find( '.yit-admin-panel-content-wrap' );
210
+ if ( wrap.length ) {
211
+ wrap.addClass( 'has-subnav' );
212
+ } else {
213
+ // try to wrap a generic wrap div in main wrapper
214
+ mainWrapper.find( '.wrap' ).wrap( '<div class="wrap subnav-wrap"></div>' );
215
+ }
216
+ }
217
+ }
 
218
  } );
plugin-fw/assets/js/yit-plugin-panel.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(function(e){function a(){e("[data-dep-target]:not( .deps-initialized )").each(function(){var a=e(this);a.addClass("deps-initialized");var t="#"+a.data("dep-target"),i="#"+a.data("dep-id"),n=a.data("dep-value"),d=a.data("dep-type"),s="change";"select-images"===e(i+"-wrapper").data("type")&&(s="yith_select_images_value_changed"),e(i).on(s,function(){!function(a,t,i,n){var d=!0;if("string"==typeof t){":radio"==t.substr(0,6)&&(t+=":checked");var s=e(t).data("type"),r=e(t).val();"checkbox"===s?r=e(t).is(":checked")?"yes":"no":"radio"===s&&(r=e(t).find('input[type="radio"]').filter(":checked").val()),"select-images"===e(t+"-wrapper").data("type")&&(r=e(t+"-wrapper").find("select").first().val()),i=i.split(",");for(var c=0;c<i.length;c++){if(r==i[c]){d=!0;break}d=!1}}var o=e(a),l=e(a+"-container").closest("tr");l.length<1&&(l=o.closest(".yith-plugin-fw-panel-wc-row, .yith-toggle-content-row"));var h,p=n.split("-");for(h in p){var f=p[h];if(d)switch(f){case"disable":l.removeClass("yith-disabled"),o.attr("disabled",!1);break;case"hideNow":l.hide();break;case"hideme":o.show();break;case"fadeInOut":case"fadeIn":l.show(500);break;case"fadeOut":l.show();break;default:l.show(),l.fadeTo("slow",1).addClass("fade-in")}else switch(f){case"disable":l.addClass("yith-disabled"),o.attr("disabled",!0);break;case"hideNow":l.hide();break;case"hideme":o.hide();break;case"fadeInOut":case"fadeOut":l.hide(500);break;case"fadeIn":l.hide();break;default:l.hasClass("fade-in")?l.fadeTo("slow",0,function(){e(this).hide().removeClass("fade-in")}):(l.hide(),l.css({opacity:"0"}))}}}(t,i,n.toString(),d)}).trigger(s)})}a(),e(document).on("yith-add-box-button-toggle",a),e(".rm_connectedlist").each(function(){var a=e(this).find("ul"),t=e(this).find(":hidden");a.sortable({connectWith:a,update:function(i,n){var d={};a.each(function(){var a={};e(this).children().each(function(){a[e(this).data("option")]=e(this).text()}),d[e(this).data("list")]=a}),t.val(JSON.stringify(d).replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0"))}}).disableSelection()}),e(function(){e(".google-analytic-generate").click(function(){var a=e("#"+e(this).data("textarea")).data("codemirrorInstance"),t="(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n";t+="(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement( o ),\n",t+="m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n",t+="})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n",t+="ga('create', '"+e("#"+e(this).data("input")).val()+"', '"+e(this).data("basename")+"');\n",t+="ga('send', 'pageview');\n",a.replaceRange(t,a.getCursor("start"),a.getCursor("end"))})}),e(".yith-plugin-fw-panel .woo-nav-tab-wrapper").removeClass("woo-nav-tab-wrapper").addClass("yith-nav-tab-wrapper");var t=e(".wrap.yith-plugin-ui").first(),i=e("div.updated, div.error, div.notice");if(i.addClass("inline"),t.length&&t.prepend(i),e(document).find(".yith-nav-sub-tab.nav-tab-active").length){var n=e(document).find(".yith-plugin-fw-wp-page-wrapper");if(n.length||(n=e(document).find("#wpbody-content > .yith-plugin-ui")),n)(t=n.find(".yit-admin-panel-content-wrap")).length?t.addClass("has-subnav"):n.find(".wrap").wrap('<div class="wrap subnav-wrap"></div>')}});
1
+ jQuery(function(e){function a(){e("[data-dep-target]:not( .deps-initialized )").each(function(){var a=e(this);if(!a.closest(".metaboxes-tab").length){a.addClass("deps-initialized");var t="#"+a.data("dep-target"),i="#"+a.data("dep-id"),n=a.data("dep-value"),s=a.data("dep-type"),d="change";"select-images"===e(i+"-wrapper").data("type")&&(d="yith_select_images_value_changed"),e(i).on(d,function(){!function(a,t,i,n){var s=!0;if("string"==typeof t){":radio"==t.substr(0,6)&&(t+=":checked");var d=e(t).data("type"),r=e(t).val();"checkbox"===d?r=e(t).is(":checked")?"yes":"no":"radio"===d&&(r=e(t).find('input[type="radio"]').filter(":checked").val()),"select-images"===e(t+"-wrapper").data("type")&&(r=e(t+"-wrapper").find("select").first().val()),i=i.split(",");for(var c=0;c<i.length;c++){if(r==i[c]){s=!0;break}s=!1}}var o=e(a),l=e(a+"-container").closest("tr");l.length<1&&(l=o.closest(".yith-plugin-fw-panel-wc-row, .yith-toggle-content-row"));var h,p=n.split("-");for(h in p){var g=p[h];if(s)switch(g){case"disable":l.removeClass("yith-disabled"),o.attr("disabled",!1);break;case"hide":case"hideNow":l.show();break;case"hideme":o.show();break;case"fadeOut":l.show();break;case"fadeInOut":case"fadeIn":default:l.show(500)}else switch(g){case"disable":l.addClass("yith-disabled"),o.attr("disabled",!0);break;case"hide":case"hideNow":l.hide();break;case"hideme":o.hide();break;case"fadeInOut":case"fadeOut":l.hide(500);break;case"fadeIn":default:l.hide()}}}(t,i,n.toString(),s)}).trigger(d)}})}a(),e(document).on("yith-add-box-button-toggle",a),e(".rm_connectedlist").each(function(){var a=e(this).find("ul"),t=e(this).find(":hidden");a.sortable({connectWith:a,update:function(i,n){var s={};a.each(function(){var a={};e(this).children().each(function(){a[e(this).data("option")]=e(this).text()}),s[e(this).data("list")]=a}),t.val(JSON.stringify(s).replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0"))}}).disableSelection()}),e(function(){e(".google-analytic-generate").click(function(){var a=e("#"+e(this).data("textarea")).data("codemirrorInstance"),t="(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n";t+="(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement( o ),\n",t+="m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n",t+="})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n",t+="ga('create', '"+e("#"+e(this).data("input")).val()+"', '"+e(this).data("basename")+"');\n",t+="ga('send', 'pageview');\n",a.replaceRange(t,a.getCursor("start"),a.getCursor("end"))})}),e(".yith-plugin-fw-panel .woo-nav-tab-wrapper").removeClass("woo-nav-tab-wrapper").addClass("yith-nav-tab-wrapper");var t=e(".wrap.yith-plugin-ui").first(),i=e("div.updated, div.error, div.notice");if(i.addClass("inline"),t.length&&t.prepend(i),e(document).find(".yith-nav-sub-tab.nav-tab-active").length){var n=e(document).find(".yith-plugin-fw-wp-page-wrapper");if(n.length||(n=e(document).find("#wpbody-content > .yith-plugin-ui")),n)(t=n.find(".yit-admin-panel-content-wrap")).length?t.addClass("has-subnav"):n.find(".wrap").wrap('<div class="wrap subnav-wrap"></div>')}});
plugin-fw/assets/js/yith-date-format.js ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* globals ajaxurl */
2
+ jQuery( function ( $ ) {
3
+
4
+ $( document ).on( 'click', '.yith-plugin-fw-date-format__option', function () {
5
+ var $t = $( this ),
6
+ $wrapper = $t.closest( '.yith-plugin-fw-date-format' ),
7
+ $example = $wrapper.find( '.example' );
8
+
9
+ $example.text( $t.data( 'preview' ) );
10
+ $wrapper.find( '.yith-date-format-custom' ).val( $t.val() );
11
+ } );
12
+
13
+ $( document ).on( 'click input', '.yith-date-format-custom', function () {
14
+ var $t = $( this ),
15
+ $wrapper = $t.closest( '.yith-plugin-fw-radio__row' );
16
+
17
+ $wrapper.find( 'input[type=radio]' ).prop( 'checked', true );
18
+ } );
19
+
20
+ $( document ).on( 'input yith-date-format-change', '.yith-date-format-custom', function () {
21
+ var $t = $( this ),
22
+ $wrapper = $t.closest( '.yith-plugin-fw-date-format' ),
23
+ dataType = $wrapper.data( 'format' ),
24
+ js = $wrapper.data( 'js' ),
25
+ now = $wrapper.data( 'current' ),
26
+ example = $wrapper.find( '.example' ),
27
+ spinner = $wrapper.find( '.spinner' );
28
+
29
+ if ( 'yes' === js ) {
30
+ var newDate = new Date( now );
31
+ newDate = $.datepicker.formatDate( $t.val(), newDate );
32
+ example.text( newDate );
33
+ } else {
34
+ clearTimeout( $.data( this, 'timer' ) );
35
+ $t.data( 'timer', setTimeout(
36
+ function () {
37
+ if ( $t.val() ) {
38
+ spinner.addClass( 'is-active' );
39
+ // Call WP ajax action.
40
+ var data = {
41
+ action: dataType + '_format',
42
+ date : $t.val()
43
+ };
44
+
45
+ $.post( ajaxurl, data, function ( response ) {
46
+ spinner.removeClass( 'is-active' );
47
+ example.text( response );
48
+ } );
49
+ }
50
+ },
51
+ 500 )
52
+ );
53
+ }
54
+ } );
55
+
56
+ $( document ).on( 'yith-plugin-fw-date-format-init', function () {
57
+ $( '.yith-date-format-custom' ).trigger( 'yith-date-format-change' );
58
+ } ).trigger( 'yith-plugin-fw-date-format-init' );
59
+
60
+ } );
plugin-fw/assets/js/yith-date-format.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(function(t){t(document).on("click",".yith-plugin-fw-date-format__option",function(){var a=t(this),i=a.closest(".yith-plugin-fw-date-format");i.find(".example").text(a.data("preview")),i.find(".yith-date-format-custom").val(a.val())}),t(document).on("click input",".yith-date-format-custom",function(){t(this).closest(".yith-plugin-fw-radio__row").find("input[type=radio]").prop("checked",!0)}),t(document).on("input yith-date-format-change",".yith-date-format-custom",function(){var a=t(this),i=a.closest(".yith-plugin-fw-date-format"),e=i.data("format"),o=i.data("js"),n=i.data("current"),r=i.find(".example"),f=i.find(".spinner");if("yes"===o){var d=new Date(n);d=t.datepicker.formatDate(a.val(),d),r.text(d)}else clearTimeout(t.data(this,"timer")),a.data("timer",setTimeout(function(){if(a.val()){f.addClass("is-active");var i={action:e+"_format",date:a.val()};t.post(ajaxurl,i,function(t){f.removeClass("is-active"),r.text(t)})}},500))}),t(document).on("yith-plugin-fw-date-format-init",function(){t(".yith-date-format-custom").trigger("yith-date-format-change")}).trigger("yith-plugin-fw-date-format-init")});
plugin-fw/assets/js/yith-fields.js CHANGED
@@ -1,801 +1,812 @@
 
1
  ( function ( $ ) {
2
-
3
- /* global yith_framework_fw_fields*/
4
-
5
- var yith_fields_init = function () {
6
- var $datepicker = $( '.yith-plugin-fw-datepicker' ),
7
- $colorpicker = $( '.yith-plugin-fw-colorpicker' ),
8
- $upload = {
9
- imgPreviewHandler : '.yith-plugin-fw-upload-img-preview',
10
- uploadButtonHandler: '.yith-plugin-fw-upload-button',
11
- imgUrlHandler : '.yith-plugin-fw-upload-img-url',
12
- resetButtonHandler : '.yith-plugin-fw-upload-button-reset',
13
- imgUrl : $( '.yith-plugin-fw-upload-img-url' )
14
- },
15
- $wpAddMedia = $( '.add_media' ),
16
- $imageGallery = {
17
- sliderWrapper: $( '.yith-plugin-fw .image-gallery ul.slides-wrapper' ),
18
- buttonHandler: '.yith-plugin-fw .image-gallery-button'
19
- },
20
- $sidebars = $( '.yith-plugin-fw-sidebar-layout' ),
21
- $slider = $( '.yith-plugin-fw .yith-plugin-fw-slider-container .ui-slider-horizontal' ),
22
- $codemirror = $( '.codemirror' ),
23
- $icons = $( '.yit-icons-manager-wrapper' ),
24
- $checkgroup = $( ".yith-plugin-ui td.forminp-checkbox" );
25
-
26
- /* Datepicker */
27
- $datepicker.each( function () {
28
- var args = $( this ).data();
29
-
30
- // set animation to false to prevent style 'glitches' when removing class on closing
31
- args.showAnim = false;
32
- args.beforeShow = function ( input, instance ) {
33
- instance.dpDiv.addClass( 'yith-plugin-fw-datepicker-div' );
34
- };
35
- args.onClose = function ( selectedDate, instance ) {
36
- instance.dpDiv.removeClass( 'yith-plugin-fw-datepicker-div' );
37
- };
38
-
39
- $( this ).datepicker( args );
40
- } );
41
-
42
- /* Colorpicker */
43
- $colorpicker.wpColorPicker( {
44
- palettes: false,
45
- width : 200,
46
- mode : 'hsl',
47
- clear : function () {
48
- var input = $( this );
49
- input.val( input.data( 'default-color' ) );
50
- input.change();
51
- }
52
- } );
53
-
54
-
55
- $colorpicker.each( function () {
56
- var select_label = $( this ).data( 'variations-label' ),
57
- wrap_main1 = $( this ).closest( '.yith-plugin-fw-colorpicker-field-wrapper' ),
58
- wrap_main2 = $( this ).closest( '.yith-single-colorpicker' ),
59
- wrap1 = wrap_main1.find( '.wp-picker-input-wrap' ),
60
- wrap2 = wrap_main2.find( '.wp-picker-input-wrap' );
61
-
62
- wrap1.length && wrap_main1.find( 'a.wp-color-result' ).attr( 'title', select_label );
63
- wrap_main2.length && wrap_main2.find( 'a.wp-color-result' ).attr( 'title', select_label );
64
-
65
- if ( ! wrap1.find( '.wp-picker-default-custom' ).length ) {
66
- var button = $( '<span/>' ).attr( {
67
- class: "wp-picker-default-custom"
68
- } );
69
- wrap1.find( '.wp-picker-default' ).wrap( button );
70
- }
71
-
72
- if ( ! wrap2.find( '.wp-picker-default-custom' ).length ) {
73
- var button = $( '<span/>' ).attr( {
74
- class: "wp-picker-default-custom"
75
- } );
76
- wrap2.find( '.wp-picker-default' ).wrap( button );
77
- }
78
- } );
79
-
80
-
81
- /* Upload */
82
- if ( typeof wp !== 'undefined' && typeof wp.media !== 'undefined' ) {
83
- var _custom_media = true;
84
- // preview
85
- $upload.imgUrl.change( function () {
86
- var url = $( this ).val(),
87
- re = new RegExp( "(http|ftp|https)://[a-zA-Z0-9@?^=%&amp;:/~+#-_.]*.(gif|jpg|jpeg|png|ico|svg)" ),
88
- preview = $( this ).parent().find( $upload.imgPreviewHandler ).first();
89
-
90
- if ( preview.length < 1 ) {
91
- preview = $( this ).parent().parent().find( $upload.imgPreviewHandler ).first();
92
- }
93
-
94
- if ( re.test( url ) ) {
95
- preview.html( '<img src="' + url + '" style="max-width:100px; max-height:100px;" />' );
96
- } else {
97
- preview.html( '' );
98
- }
99
- } ).trigger( 'change' );
100
-
101
- $( document ).on( 'click', $upload.uploadButtonHandler, function ( e ) {
102
- e.preventDefault();
103
-
104
- var t = $( this ),
105
- custom_uploader,
106
- id = t.attr( 'id' ).replace( /-button$/, '' ).replace(/(\[|\])/g, '\\$1');
107
-
108
- //If the uploader object has already been created, reopen the dialog
109
- if ( custom_uploader ) {
110
- custom_uploader.open();
111
- return;
112
- }
113
-
114
- var custom_uploader_states = [
115
- // Main states.
116
- new wp.media.controller.Library( {
117
- library : wp.media.query(),
118
- multiple : false,
119
- title : 'Choose Image',
120
- priority : 20,
121
- filterable: 'uploaded'
122
- } )
123
- ];
124
-
125
- // Create the media frame.
126
- custom_uploader = wp.media.frames.downloadable_file = wp.media( {
127
- // Set the title of the modal.
128
- title : 'Choose Image',
129
- library : {
130
- type: ''
131
- },
132
- button : {
133
- text: 'Choose Image'
134
- },
135
- multiple: false,
136
- states : custom_uploader_states
137
- } );
138
-
139
- //When a file is selected, grab the URL and set it as the text field's value
140
- custom_uploader.on( 'select', function () {
141
- var attachment = custom_uploader.state().get( 'selection' ).first().toJSON();
142
-
143
- $( "#" + id ).val( attachment.url );
144
- // Save the id of the selected element to an element which name is the same with a suffix "-yith-attachment-id"
145
- if ( $( "#" + id + "-yith-attachment-id" ) ) {
146
- $( "#" + id + "-yith-attachment-id" ).val( attachment.id );
147
- }
148
- $upload.imgUrl.trigger( 'change' );
149
- } );
150
-
151
- //Open the uploader dialog
152
- custom_uploader.open();
153
- } );
154
-
155
- $( document ).on( 'click', $upload.resetButtonHandler, function ( e ) {
156
- var t = $( this ),
157
- id = t.attr( 'id' ).replace(/(\[|\])/g, '\\$1'),
158
- input_id = t.attr( 'id' ).replace( /-button-reset$/, '' ).replace(/(\[|\])/g, '\\$1'),
159
- default_value = $( '#' + id ).data( 'default' );
160
-
161
- $( "#" + input_id ).val( default_value );
162
- $upload.imgUrl.trigger( 'change' );
163
- } );
164
- }
165
-
166
- $wpAddMedia.on( 'click', function () {
167
- _custom_media = false;
168
- } );
169
-
170
- /* Image Gallery */
171
- if ( typeof wp !== 'undefined' && typeof wp.media !== 'undefined' ) {
172
- $( document ).on( 'click', $imageGallery.buttonHandler, function ( e ) {
173
- var $t = $( this ),
174
- $container = $t.closest( '.image-gallery' ),
175
- $image_gallery_ids = $container.find( '.image_gallery_ids' ),
176
- attachment_ids = $image_gallery_ids.val(),
177
- $gallery_images_wrapper = $container.find( 'ul.slides-wrapper' );
178
-
179
- // Create the media frame.
180
- var image_gallery_frame = wp.media.frames.image_gallery = wp.media( {
181
- // Set the title of the modal.
182
- title : $t.data( 'choose' ),
183
- button: {
184
- text: $t.data( 'update' )
185
- },
186
- states: [
187
- new wp.media.controller.Library( {
188
- title : $t.data( 'choose' ),
189
- filterable: 'all',
190
- multiple : true
191
- } )
192
- ]
193
- } );
194
-
195
- // When an image is selected, run a callback.
196
- image_gallery_frame.on( 'select', function () {
197
- var selection = image_gallery_frame.state().get( 'selection' );
198
- selection.map( function ( attachment ) {
199
- attachment = attachment.toJSON();
200
-
201
- if ( attachment.id ) {
202
- attachment_ids = attachment_ids ? attachment_ids + "," + attachment.id : attachment.id;
203
- $gallery_images_wrapper.append( '<li class="image" data-attachment_id="' + attachment.id + '"><img src="' + attachment.sizes.thumbnail.url + '"/><ul class="actions"><li><a href="#" class="delete" title="' + $t.data( 'delete' ) + '">x</a></li></ul></li>' );
204
- }
205
- } );
206
-
207
- $image_gallery_ids.val( attachment_ids );
208
- } );
209
-
210
- image_gallery_frame.open();
211
-
212
- } );
213
-
214
- // Image ordering
215
- $imageGallery.sliderWrapper.each( function () {
216
- var $t = $( this );
217
- $t.sortable( {
218
- items : 'li.image',
219
- cursor : 'move',
220
- scrollSensitivity : 40,
221
- forcePlaceholderSize: true,
222
- forceHelperSize : false,
223
- helper : 'clone',
224
- opacity : 0.65,
225
- start : function ( event, ui ) {
226
- ui.item.css( 'background-color', '#f6f6f6' );
227
- },
228
- stop : function ( event, ui ) {
229
- ui.item.removeAttr( 'style' );
230
- },
231
- update : function ( event, ui ) {
232
- var attachment_ids = '';
233
-
234
- $t.find( 'li.image' ).css( 'cursor', 'default' ).each( function () {
235
- var attachment_id = $( this ).attr( 'data-attachment_id' );
236
- attachment_ids = attachment_ids + attachment_id + ',';
237
- } );
238
-
239
- $t.closest( '.image-gallery' ).find( '.image_gallery_ids' ).val( attachment_ids );
240
- }
241
- } );
242
- } );
243
-
244
- // Remove images
245
- $imageGallery.sliderWrapper.on( 'click', 'a.delete', function () {
246
- var $wrapper = $( this ).closest( '.image-gallery' ),
247
- $gallery = $( this ).closest( '.image-gallery ul.slides-wrapper' ),
248
- $image_gallery_ids = $wrapper.find( '.image_gallery_ids' ),
249
- attachment_ids = '';
250
-
251
- $( this ).closest( 'li.image' ).remove();
252
-
253
- $gallery.find( 'li.image' ).css( 'cursor', 'default' ).each( function () {
254
- var attachment_id = $( this ).attr( 'data-attachment_id' );
255
- attachment_ids = attachment_ids + attachment_id + ',';
256
- } );
257
-
258
- $image_gallery_ids.val( attachment_ids );
259
- } );
260
- }
261
-
262
-
263
- /* Sidebars */
264
- $sidebars.each( function () {
265
- var $images = $( this ).find( 'img' );
266
- $images.on( 'click', function () {
267
- var $container = $( this ).closest( '.yith-plugin-fw-sidebar-layout' ),
268
- $left = $container.find( '.yith-plugin-fw-sidebar-layout-sidebar-left-container' ),
269
- $right = $container.find( '.yith-plugin-fw-sidebar-layout-sidebar-right-container' ),
270
- type = $( this ).data( 'type' );
271
-
272
- $( this ).parent().children( ':radio' ).attr( 'checked', false );
273
- $( this ).prev( ':radio' ).attr( 'checked', true );
274
-
275
- if ( typeof type != 'undefined' ) {
276
- switch ( type ) {
277
- case 'left':
278
- $left.show();
279
- $right.hide();
280
- break;
281
- case 'right':
282
- $right.show();
283
- $left.hide();
284
- break;
285
- case 'double':
286
- $left.show();
287
- $right.show();
288
- break;
289
- default:
290
- $left.hide();
291
- $right.hide();
292
- break;
293
- }
294
- }
295
- } );
296
  } );
297
 
298
- /* Slider */
299
- $slider.each( function () {
300
- var val = $( this ).data( 'val' ),
301
- minValue = $( this ).data( 'min' ),
302
- maxValue = $( this ).data( 'max' ),
303
- step = $( this ).data( 'step' ),
304
- labels = $( this ).data( 'labels' );
305
-
306
- $( this ).slider( {
307
- value: val,
308
- min : minValue,
309
- max : maxValue,
310
- range: 'min',
311
- step : step,
312
-
313
- create: function () {
314
- $( this ).find( '.ui-slider-handle' ).text( $( this ).slider( "value" ) );
315
- },
316
-
317
-
318
- slide: function ( event, ui ) {
319
- $( this ).find( 'input' ).val( ui.value );
320
- $( this ).find( '.ui-slider-handle' ).text( ui.value );
321
- $( this ).siblings( '.feedback' ).find( 'strong' ).text( ui.value + labels );
322
- }
323
- } );
324
- } );
325
-
326
- /* codemirror */
327
- $codemirror.each( function ( i, v ) {
328
- var editor = CodeMirror.fromTextArea( v, {
329
- lineNumbers : 1,
330
- mode : 'javascript',
331
- showCursorWhenSelecting: true
332
- } );
333
-
334
- $( v ).data( 'codemirrorInstance', editor );
335
- } );
336
-
337
- /* Select All - Deselect All */
338
- $( document ).on( 'click', '.yith-plugin-fw-select-all', function () {
339
- var $targetSelect = $( '#' + $( this ).data( 'select-id' ) );
340
- $targetSelect.find( 'option' ).prop( 'selected', true ).trigger( 'change' );
341
- } );
342
-
343
- $( document ).on( 'click', '.yith-plugin-fw-deselect-all', function () {
344
- var $targetSelect = $( '#' + $( this ).data( 'select-id' ) );
345
- $targetSelect.find( 'option' ).prop( 'selected', false ).trigger( 'change' );
346
- } );
347
-
348
-
349
- $icons.each( function () {
350
- var $container = $( this ),
351
- $preview = $container.find( '.yit-icons-manager-icon-preview' ).first(),
352
- $text = $container.find( '.yit-icons-manager-icon-text' );
353
-
354
- $container.on( 'click', '.yit-icons-manager-list li', function ( event ) {
355
- var $target = $( event.target ).closest( 'li' ),
356
- font = $target.data( 'font' ),
357
- icon = $target.data( 'icon' ),
358
- key = $target.data( 'key' ),
359
- name = $target.data( 'name' );
360
-
361
- $preview.attr( 'data-font', font );
362
- $preview.attr( 'data-icon', icon );
363
- $preview.attr( 'data-key', key );
364
- $preview.attr( 'data-name', name );
365
-
366
- $text.val( font + ':' + name );
367
-
368
- $container.find( '.yit-icons-manager-list li' ).removeClass( 'active' );
369
- $target.addClass( 'active' );
370
- } );
371
-
372
- $container.on( 'click', '.yit-icons-manager-action-set-default', function () {
373
- $container.find( '.yit-icons-manager-list li.default' ).trigger( 'click' );
374
- } );
375
- } );
376
-
377
- /** Select Images */
378
- $( document ).on( 'click', '.yith-plugin-fw-select-images__item', function () {
379
- var item = $( this ),
380
- key = item.data( 'key' ),
381
- wrapper = item.closest( '.yith-plugin-fw-select-images__wrapper' ),
382
- items = wrapper.find( '.yith-plugin-fw-select-images__item' ),
383
- select = wrapper.find( 'select' ).first();
384
-
385
- if ( select.length ) {
386
- select.val( key ).trigger('yith_select_images_value_changed');
387
- items.removeClass( 'yith-plugin-fw-select-images__item--selected' );
388
- item.addClass( 'yith-plugin-fw-select-images__item--selected' );
389
- }
390
- } );
391
-
392
- $( document.body ).trigger( 'wc-enhanced-select-init' );
393
-
394
- $( document ).find( '.ui-sortable .yith-toggle-elements' ).sortable(
395
- {
396
- cursor : 'move',
397
- axis : 'y',
398
- scrollSensitivity : 40,
399
- forcePlaceholderSize: true,
400
- helper : 'clone',
401
-
402
- stop: function ( event, ui ) {
403
- var keys = jQuery( '.ui-sortable-handle' ),
404
- i = 0,
405
- array_keys = new Array();
406
- for ( i = 0; i < keys.length; i++ ) {
407
- array_keys[ i ] = $( keys[ i ] ).data( 'item_key' );
408
- }
409
- if ( array_keys.length > 0 ) {
410
- var toggle = $( this ).closest( '.toggle-element' );
411
- toggle.saveToggleElement( null, array_keys );
412
- }
413
- }
414
- }
415
- );
416
-
417
- $( document.body ).trigger( 'yith-framework-enhanced-select-init' );
418
- };
419
-
420
- $( document ).on( 'yith_fields_init', yith_fields_init ).trigger( 'yith_fields_init' );
421
-
422
- /* on-off */
423
- $( document ).on( 'click', '.yith-plugin-fw-onoff-container span', function () {
424
- var input = $( this ).prev( 'input' ),
425
- checked = input.prop( 'checked' );
426
-
427
- if ( checked ) {
428
- input.prop( 'checked', false ).attr( 'value', 'no' ).removeClass( 'onoffchecked' );
429
- } else {
430
- input.prop( 'checked', true ).attr( 'value', 'yes' ).addClass( 'onoffchecked' );
431
- }
432
-
433
- input.change();
434
- } );
435
-
436
-
437
- /** Toggle **/
438
-
439
-
440
-
441
- //TOGGLE ELEMENT
442
- $.fn.saveToggleElement = function ( spinner, array_keys ) {
443
- var toggle = $( this ),
444
- action = 'yith_plugin_fw_save_toggle_element',
445
- formdata = toggle.serializeToggleElement(),
446
- wrapper = toggle.find( '.yith-toggle_wrapper' ),
447
- id = wrapper.attr( 'id' ),
448
- current_tab = $.urlParam( 'tab' );
449
-
450
- formdata.append( 'security', wrapper.data( 'nonce' ) );
451
-
452
- if ( typeof array_keys != 'undefined' && array_keys.length > 0 ) {
453
- formdata.append( 'yith_toggle_elements_order_keys', array_keys );
454
- }
455
-
456
- if ( toggle.closest( '.metaboxes-tab.yith-plugin-ui' ).length ) {
457
- action = 'yith_plugin_fw_save_toggle_element_metabox';
458
- post_id = $( this ).closest( 'form#post' ).find( '#post_ID' ).val();
459
- yit_metaboxes_nonce = $( this ).closest( 'form#post' ).find( '#yit_metaboxes_nonce' ).val();
460
- metabox_tab = $( this ).closest( '.tabs-panel' ).attr( 'id' );
461
- url = yith_framework_fw_fields.ajax_url +
462
- '?action=' + action +
463
- "&post_ID=" + post_id +
464
- '&yit_metaboxes_nonce=' + yit_metaboxes_nonce +
465
- "&toggle_id=" + id +
466
- "&metabox_tab=" + metabox_tab;
467
- } else {
468
- url = yith_framework_fw_fields.admin_url + '?action=' + action + '&tab=' + current_tab + "&toggle_id=" + id;
469
- }
470
-
471
- $.ajax( {
472
- type : "POST",
473
- url : url,
474
- data : formdata,
475
- contentType: false,
476
- processData: false,
477
- success : function ( result ) {
478
- if ( spinner ) {
479
- spinner.removeClass( 'show' );
480
- }
481
-
482
- $( document ).trigger( 'yith_save_toggle_element_done', [result, toggle] );
483
- }
484
- } );
485
- };
486
-
487
- $.fn.serializeToggleElement = function () {
488
- var obj = $( this );
489
- /* ADD FILE TO PARAM AJAX */
490
- var formData = new FormData();
491
- var params = $( obj ).find( ":input" ).serializeArray();
492
-
493
- $.each( params, function ( i, val ) {
494
- el_name = val.name;
495
- formData.append( val.name, val.value );
496
- } );
497
-
498
- return formData;
499
- };
500
-
501
- $.fn.formatToggleTitle = function () {
502
- var toggle_el = $( this ),
503
- fields = toggle_el.find( ':input' ),
504
- title = toggle_el.find( 'span.title' ).data( 'title_format' ),
505
- subtitle = toggle_el.find( '.subtitle' ).data( 'subtitle_format' ),
506
- regExp = new RegExp( "[^%%]+(?=[%%])", 'g' );
507
-
508
- if ( typeof title != 'undefined' ) {
509
- var res = title.match( regExp );
510
- }
511
-
512
- if ( typeof subtitle != 'undefined' ) {
513
- var ressub = subtitle.match( regExp );
514
- }
515
-
516
- $.each( fields, function ( i, field ) {
517
- if ( typeof $( field ).attr( 'id' ) != 'undefined' ) {
518
- $field_id = $( field ).attr( 'id' );
519
- $field_array = $field_id.split( '_' );
520
- $field_array.pop();
521
- $field_id = $field_array.join( '_' );
522
- $field_val = $( field ).val();
523
-
524
- if ( res != null && typeof res != 'undefined' && res.indexOf( $field_id ) !== -1 ) {
525
- title = title.replace( '%%' + $field_id + '%%', $field_val );
526
- }
527
- if ( ressub != null && typeof ressub != 'undefined' && ressub.indexOf( $field_id ) !== -1 ) {
528
- subtitle = subtitle.replace( '%%' + $field_id + '%%', $field_val );
529
- }
530
- }
531
- } );
532
-
533
- if ( '' !== title ) {
534
- toggle_el.find( 'span.title' ).html( title );
535
- }
536
-
537
- if ( '' !== subtitle ) {
538
- toggle_el.find( '.subtitle' ).html( subtitle );
539
- }
540
-
541
- $( document ).trigger( 'yith-toggle-element-item-title', [toggle_el] );
542
- };
543
-
544
- $.urlParam = function ( name ) {
545
- var results = new RegExp( '[\?&]' + name + '=([^&#]*)' )
546
- .exec( window.location.search );
547
-
548
- return ( results !== null ) ? results[ 1 ] || 0 : false;
549
- };
550
-
551
- $( document ).on( 'click', '.yith-toggle-title', function ( event ) {
552
- var _toggle = $( event.target ),
553
- _section = _toggle.closest( '.yith-toggle-row' ),
554
- _content = _section.find( '.yith-toggle-content' );
555
-
556
- if ( _toggle.hasClass( 'yith-plugin-fw-onoff' ) || _toggle.hasClass( 'yith-icon-drag' ) ) {
557
- return false;
558
- }
559
-
560
- if ( _section.is( '.yith-toggle-row-opened' ) ) {
561
- _content.slideUp( 400 );
562
- } else {
563
- _content.slideDown( 400 );
564
- }
565
- _section.toggleClass( 'yith-toggle-row-opened' );
566
- } );
567
-
568
- /**Add new box toggle**/
569
- $( document ).on( 'click', '.yith-add-box-button', function ( event ) {
570
- event.preventDefault();
571
- var $this = $( this ),
572
- target_id = $this.data( 'box_id' ),
573
- closed_label = $this.data( 'closed_label' ),
574
- label = $this.data( 'opened_label' ),
575
- id = $this.closest( '.yith-toggle_wrapper' ).attr( 'id' ),
576
- template = wp.template( 'yith-toggle-element-add-box-content-' + id );
577
-
578
- if ( '' !== target_id ) {
579
- $( '#' + target_id ).html( template( { index: 'box_id' } ) ).slideToggle();
580
- if ( closed_label !== '' ) {
581
- if ( $this.html() === closed_label ) {
582
- $this.html( label ).removeClass( 'closed' );
583
- } else {
584
- $this.html( closed_label ).addClass( 'closed' );
585
- }
586
- }
587
-
588
- $( document ).trigger( 'yith_fields_init' );
589
- $( document ).trigger( 'yith-add-box-button-toggle', [$this] );
590
- }
591
- } );
592
-
593
- $( document ).on( 'click', '.yith-add-box-buttons .yith-save-button', function ( event ) {
594
-
595
- event.preventDefault();
596
- var add_box = $( this ).parents( '.yith-add-box' ),
597
- id = $( this ).closest( '.yith-toggle_wrapper' ).attr( 'id' ),
598
- spinner = add_box.find( '.spinner' ),
599
- toggle_element = $( this ).parents( '.toggle-element' ),
600
- fields = add_box.find( ':input' ),
601
- counter = toggle_element.find( '.yith-toggle-row' ).length,
602
- hidden_obj = $( '<input type="hidden">' );
603
-
604
- hidden_obj.val( counter );
605
-
606
- $( document ).trigger( 'yith-toggle-change-counter', [hidden_obj, add_box] );
607
-
608
- counter = hidden_obj.val();
609
- var template = wp.template( 'yith-toggle-element-item-' + id ),
610
- toggle_el = $( template( { index: counter } ) );
611
-
612
- spinner.addClass( 'show' );
613
-
614
- $.each( fields, function ( i, field ) {
615
- if ( typeof $( field ).attr( 'id' ) != 'undefined' ) {
616
-
617
- $field_id = $( field ).attr( 'id' );
618
- $field_val = $( field ).val();
619
-
620
- if ( 'radio' == $( field ).attr( 'type' ) ) {
621
- $field_id = $field_id.replace( 'new_', '' );
622
- $field_id = $field_id.replace( '-' + $field_val, '' );
623
- $field_id = $field_id + '_dataindex-' + $field_val;
624
- } else {
625
- $field_id = $field_id.replace( 'new_', '' ) + '_' + counter;
626
- }
627
-
628
- if ( $( field ).is( ':checked' ) ) {
629
- $( toggle_el ).find( '#' + $field_id ).prop( 'checked', true );
630
- }
631
-
632
- if ( $( field ).hasClass( 'yith-post-search' ) || $( field ).hasClass( 'yith-term-search' ) ) {
633
- $( toggle_el ).find( '#' + $field_id ).html( $( '#' + $( field ).attr( 'id' ) ).html() );
634
- }
635
-
636
- $( toggle_el ).find( '#' + $field_id ).val( $field_val );
637
-
638
- }
639
-
640
- } );
641
-
642
- $( toggle_el ).formatToggleTitle();
643
- var form_is_valid = $( '<input type="hidden">' ).val( 'yes' );
644
- $( document ).trigger( 'yith-toggle-element-item-before-add', [add_box, toggle_el, form_is_valid] );
645
-
646
- var delayInMilliseconds = 1000; //1 second
647
- setTimeout( function () {
648
- if ( form_is_valid.val() === 'yes' ) {
649
- $( toggle_element ).find( '.yith-toggle-elements' ).append( toggle_el );
650
- $( add_box ).find( '.yith-plugin-fw-datepicker' ).datepicker( 'destroy' );
651
- $( add_box ).html( '' );
652
- $( add_box ).prev( '.yith-add-box-button' ).trigger( 'click' );
653
- toggle_element.saveToggleElement();
654
-
655
- var delayInMilliseconds = 2000; //1 second
656
- setTimeout( function () {
657
- $( toggle_element ).find( '.highlight' ).removeClass( 'highlight' );
658
- }, delayInMilliseconds );
659
-
660
-
661
- $( document ).trigger( 'yith_fields_init' );
662
- }
663
- }, delayInMilliseconds );
664
-
665
-
666
- } );
667
-
668
- $( document ).on( 'click', '.yith-toggle-row .yith-save-button', function ( event ) {
669
- event.preventDefault();
670
- var toggle = $( this ).closest( '.toggle-element' ),
671
- toggle_row = $( this ).closest( '.yith-toggle-row' ),
672
- spinner = toggle_row.find( '.spinner' );
673
- toggle_row.formatToggleTitle();
674
-
675
- var form_is_valid = $( '<input type="hidden">' ).val( 'yes' );
676
- $( document ).trigger( 'yith-toggle-element-item-before-update', [toggle, toggle_row, form_is_valid] );
677
- if ( form_is_valid.val() === 'yes' ) {
678
- spinner.addClass( 'show' );
679
- toggle.saveToggleElement( spinner );
680
- }
681
- } );
682
-
683
- //register remove the dome and save the toggle
684
- $( document ).on( 'click', '.yith-toggle-row .yith-delete-button', function ( event ) {
685
- event.preventDefault();
686
- var toggle = $( this ).closest( '.toggle-element' ),
687
- toggle_row = $( this ).closest( '.yith-toggle-row' );
688
- toggle_row.remove();
689
- toggle.saveToggleElement();
690
- } );
691
-
692
- //register onoff status
693
- $( document ).on( 'click', '.yith-toggle-onoff', function ( event ) {
694
- event.preventDefault();
695
- var toggle = $( this ).closest( '.toggle-element' );
696
- toggle.saveToggleElement();
697
- } );
698
-
699
- // Radio
700
- $( document ).on( 'click', '.yith-plugin-fw-radio input[type=radio]', function () {
701
- var _radioContainer = $( this ).closest( '.yith-plugin-fw-radio' ),
702
- _value = $( this ).val();
703
-
704
- _radioContainer.val( _value ).data( 'value', _value ).trigger( 'change' );
705
- } );
706
-
707
- $( document.body ).on( 'yith-plugin-fw-init-radio', function () {
708
- $( '.yith-plugin-fw-radio:not(.yith-plugin-fw-radio--initialized)' ).each( function () {
709
- $( this ).val( $( this ).data( 'value' ) );
710
- $( this ).addClass( 'yith-plugin-fw-radio--initialized' );
711
- } );
712
- } ).trigger( 'yith-plugin-fw-init-radio' );
713
-
714
- // Password Eye field
715
- $( document ).on( 'click', '.yith-password-eye', function () {
716
- var $this = $( this ),
717
- inp = $( this ).closest( '.yith-password-wrapper' ).find( 'input' );
718
- if ( inp.attr( 'type' ) === "password" ) {
719
- inp.attr( 'type', 'text' );
720
- $this.addClass( 'yith-password-eye-closed' );
721
- } else {
722
- inp.attr( 'type', 'password' );
723
- $this.removeClass( 'yith-password-eye-closed' );
724
- }
725
- } );
726
-
727
- /**
728
- * Select2 - add class to stylize it with the new plugin-fw style
729
- */
730
- $( document ).on( 'select2:open', function ( e ) {
731
- if ( $( e.target ).closest( '.yith-plugin-ui' ).length ) {
732
- $( '.select2-results' ).closest( '.select2-container' ).addClass( 'yith-plugin-fw-select2-container' );
733
- }
734
- } );
735
- /**
736
- * Dimensions
737
- */
738
- var fw_dimensions = {
739
- selectors : {
740
- wrapper : '.yith-plugin-fw-dimensions',
741
- units : {
742
- wrapper : '.yith-plugin-fw-dimensions__units',
743
- single : '.yith-plugin-fw-dimensions__unit',
744
- value : '.yith-plugin-fw-dimensions__unit__value',
745
- selectedClass: 'yith-plugin-fw-dimensions__unit--selected'
746
- },
747
- linked : {
748
- button : '.yith-plugin-fw-dimensions__linked',
749
- value : '.yith-plugin-fw-dimensions__linked__value',
750
- wrapperActiveClass: 'yith-plugin-fw-dimensions--linked-active'
751
- },
752
- dimensions: {
753
- number: '.yith-plugin-fw-dimensions__dimension__number'
754
- }
755
- },
756
- init : function () {
757
- var self = fw_dimensions;
758
- $( document ).on( 'click', self.selectors.units.single, self.unitChange );
759
- $( document ).on( 'click', self.selectors.linked.button, self.linkedChange );
760
- $( document ).on( 'change keyup', self.selectors.dimensions.number, self.numberChange );
761
- },
762
- unitChange : function ( e ) {
763
- var unit = $( this ).closest( fw_dimensions.selectors.units.single ),
764
- wrapper = unit.closest( fw_dimensions.selectors.units.wrapper ),
765
- units = wrapper.find( fw_dimensions.selectors.units.single ),
766
- valueField = wrapper.find( fw_dimensions.selectors.units.value ).first(),
767
- value = unit.data( 'value' );
768
-
769
- units.removeClass( fw_dimensions.selectors.units.selectedClass );
770
- unit.addClass( fw_dimensions.selectors.units.selectedClass );
771
- valueField.val( value );
772
- },
773
- linkedChange: function () {
774
- var button = $( this ).closest( fw_dimensions.selectors.linked.button ),
775
- mainWrapper = button.closest( fw_dimensions.selectors.wrapper ),
776
- valueField = button.find( fw_dimensions.selectors.linked.value ),
777
- value = valueField.val();
778
-
779
- if ( 'yes' === value ) {
780
- mainWrapper.removeClass( fw_dimensions.selectors.linked.wrapperActiveClass );
781
- valueField.val( 'no' );
782
- } else {
783
- mainWrapper.addClass( fw_dimensions.selectors.linked.wrapperActiveClass );
784
- valueField.val( 'yes' );
785
-
786
- mainWrapper.find( fw_dimensions.selectors.dimensions.number ).first().trigger( 'change' );
787
- }
788
- },
789
- numberChange: function ( e ) {
790
- var number = $( this ).closest( fw_dimensions.selectors.dimensions.number ),
791
- mainWrapper = number.closest( fw_dimensions.selectors.wrapper );
792
- if ( mainWrapper.hasClass( fw_dimensions.selectors.linked.wrapperActiveClass ) ) {
793
- var numbers = mainWrapper.find( fw_dimensions.selectors.dimensions.number );
794
-
795
- numbers.val( number.val() );
796
- }
797
- }
798
- };
799
- fw_dimensions.init();
800
-
801
- } )( jQuery );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* globals yith_framework_fw_fields, wp */
2
  ( function ( $ ) {
3
+ var yith_fields_init = function () {
4
+ var $datepicker = $( '.yith-plugin-fw-datepicker' ),
5
+ $colorpicker = $( '.yith-plugin-fw-colorpicker' ),
6
+ $upload = {
7
+ imgPreviewHandler : '.yith-plugin-fw-upload-img-preview',
8
+ uploadButtonHandler: '.yith-plugin-fw-upload-button',
9
+ imgUrlHandler : '.yith-plugin-fw-upload-img-url',
10
+ resetButtonHandler : '.yith-plugin-fw-upload-button-reset',
11
+ imgUrl : $( '.yith-plugin-fw-upload-img-url' )
12
+ },
13
+ $wpAddMedia = $( '.add_media' ),
14
+ $imageGallery = {
15
+ rootSelector : '.yith-plugin-fw-image-gallery',
16
+ buttonSelector: '.yith-plugin-fw-image-gallery .image-gallery-button',
17
+ sliderWrapper : $( '.yith-plugin-fw-image-gallery ul.slides-wrapper' )
18
+ },
19
+ $sidebars = $( '.yith-plugin-fw-sidebar-layout' ),
20
+ $slider = $( '.yith-plugin-fw .yith-plugin-fw-slider-container .ui-slider-horizontal' ),
21
+ $icons = $( '.yit-icons-manager-wrapper' ),
22
+ $checkgroup = $( ".yith-plugin-ui td.forminp-checkbox" );
23
+
24
+ /* Datepicker */
25
+ $datepicker.each( function () {
26
+ var args = $( this ).data();
27
+
28
+ // set animation to false to prevent style 'glitches' when removing class on closing
29
+ args.showAnim = false;
30
+ args.beforeShow = function ( input, instance ) {
31
+ instance.dpDiv.addClass( 'yith-plugin-fw-datepicker-div' );
32
+ };
33
+ args.onClose = function ( selectedDate, instance ) {
34
+ instance.dpDiv.removeClass( 'yith-plugin-fw-datepicker-div' );
35
+ };
36
+
37
+ $( this ).datepicker( args );
38
+ } );
39
+
40
+ /* Colorpicker */
41
+ $colorpicker.wpColorPicker( {
42
+ palettes: false,
43
+ width : 200,
44
+ mode : 'hsl',
45
+ clear : function () {
46
+ var input = $( this );
47
+ input.val( input.data( 'default-color' ) );
48
+ input.change();
49
+ }
50
+ } );
51
+
52
+
53
+ $colorpicker.each( function () {
54
+ var select_label = $( this ).data( 'variations-label' ),
55
+ wrap_main1 = $( this ).closest( '.yith-plugin-fw-colorpicker-field-wrapper' ),
56
+ wrap_main2 = $( this ).closest( '.yith-single-colorpicker' ),
57
+ wrap1 = wrap_main1.find( '.wp-picker-input-wrap' ),
58
+ wrap2 = wrap_main2.find( '.wp-picker-input-wrap' );
59
+
60
+ wrap1.length && wrap_main1.find( 'a.wp-color-result' ).attr( 'title', select_label );
61
+ wrap_main2.length && wrap_main2.find( 'a.wp-color-result' ).attr( 'title', select_label );
62
+
63
+ if ( !wrap1.find( '.wp-picker-default-custom' ).length ) {
64
+ var button = $( '<span/>' ).attr( {
65
+ class: "wp-picker-default-custom"
66
+ } );
67
+ wrap1.find( '.wp-picker-default' ).wrap( button );
68
+ }
69
+
70
+ if ( !wrap2.find( '.wp-picker-default-custom' ).length ) {
71
+ var button = $( '<span/>' ).attr( {
72
+ class: "wp-picker-default-custom"
73
+ } );
74
+ wrap2.find( '.wp-picker-default' ).wrap( button );
75
+ }
76
+ } );
77
+
78
+
79
+ /* Upload */
80
+ if ( typeof wp !== 'undefined' && typeof wp.media !== 'undefined' ) {
81
+ var _custom_media = true;
82
+ // preview
83
+ $upload.imgUrl.change( function () {
84
+ var url = $( this ).val(),
85
+ re = new RegExp( "(http|ftp|https)://[a-zA-Z0-9@?^=%&amp;:/~+#-_.]*.(gif|jpg|jpeg|png|ico|svg)" ),
86
+ preview = $( this ).parent().find( $upload.imgPreviewHandler ).first();
87
+
88
+ if ( preview.length < 1 ) {
89
+ preview = $( this ).parent().parent().find( $upload.imgPreviewHandler ).first();
90
+ }
91
+
92
+ if ( re.test( url ) ) {
93
+ preview.html( '<img src="' + url + '" style="max-width:100px; max-height:100px;" />' );
94
+ } else {
95
+ preview.html( '' );
96
+ }
97
+ } ).trigger( 'change' );
98
+
99
+ $( document ).on( 'click', $upload.uploadButtonHandler, function ( e ) {
100
+ e.preventDefault();
101
+
102
+ var t = $( this ),
103
+ custom_uploader,
104
+ id = t.attr( 'id' ).replace( /-button$/, '' ).replace( /(\[|\])/g, '\\$1' );
105
+
106
+ //If the uploader object has already been created, reopen the dialog
107
+ if ( custom_uploader ) {
108
+ custom_uploader.open();
109
+ return;
110
+ }
111
+
112
+ var custom_uploader_states = [
113
+ // Main states.
114
+ new wp.media.controller.Library( {
115
+ library : wp.media.query(),
116
+ multiple : false,
117
+ title : 'Choose Image',
118
+ priority : 20,
119
+ filterable: 'uploaded'
120
+ } )
121
+ ];
122
+
123
+ // Create the media frame.
124
+ custom_uploader = wp.media.frames.downloadable_file = wp.media( {
125
+ // Set the title of the modal.
126
+ title : 'Choose Image',
127
+ library : {
128
+ type: ''
129
+ },
130
+ button : {
131
+ text: 'Choose Image'
132
+ },
133
+ multiple: false,
134
+ states : custom_uploader_states
135
+ } );
136
+
137
+ //When a file is selected, grab the URL and set it as the text field's value
138
+ custom_uploader.on( 'select', function () {
139
+ var attachment = custom_uploader.state().get( 'selection' ).first().toJSON();
140
+
141
+ $( "#" + id ).val( attachment.url );
142
+ // Save the id of the selected element to an element which name is the same with a suffix "-yith-attachment-id"
143
+ if ( $( "#" + id + "-yith-attachment-id" ) ) {
144
+ $( "#" + id + "-yith-attachment-id" ).val( attachment.id );
145
+ }
146
+ $upload.imgUrl.trigger( 'change' );
147
+ } );
148
+
149
+ //Open the uploader dialog
150
+ custom_uploader.open();
151
+ } );
152
+
153
+ $( document ).on( 'click', $upload.resetButtonHandler, function ( e ) {
154
+ var t = $( this ),
155
+ id = t.attr( 'id' ).replace( /(\[|\])/g, '\\$1' ),
156
+ input_id = t.attr( 'id' ).replace( /-button-reset$/, '' ).replace( /(\[|\])/g, '\\$1' ),
157
+ default_value = $( '#' + id ).data( 'default' );
158
+
159
+ $( "#" + input_id ).val( default_value );
160
+ $upload.imgUrl.trigger( 'change' );
161
+ } );
162
+ }
163
+
164
+ $wpAddMedia.on( 'click', function () {
165
+ _custom_media = false;
166
+ } );
167
+
168
+ /* Image Gallery */
169
+ if ( typeof wp !== 'undefined' && typeof wp.media !== 'undefined' ) {
170
+ $( document ).on( 'click', $imageGallery.buttonSelector, function ( e ) {
171
+ var $t = $( this ),
172
+ $container = $t.closest( $imageGallery.rootSelector ),
173
+ $image_gallery_ids = $container.find( '.image_gallery_ids' ),
174
+ attachment_ids = $image_gallery_ids.val(),
175
+ $gallery_images_wrapper = $container.find( 'ul.slides-wrapper' );
176
+
177
+ // Create the media frame.
178
+ var image_gallery_frame = wp.media.frames.image_gallery = wp.media( {
179
+ // Set the title of the modal.
180
+ title : $t.data( 'choose' ),
181
+ button: {
182
+ text: $t.data( 'update' )
183
+ },
184
+ states: [
185
+ new wp.media.controller.Library( {
186
+ title : $t.data( 'choose' ),
187
+ filterable: 'all',
188
+ multiple : true
189
+ } )
190
+ ]
191
+ } );
192
+
193
+ // When an image is selected, run a callback.
194
+ image_gallery_frame.on( 'select', function () {
195
+ var selection = image_gallery_frame.state().get( 'selection' );
196
+ selection.map( function ( attachment ) {
197
+ attachment = attachment.toJSON();
198
+
199
+ if ( attachment.id ) {
200
+ attachment_ids = attachment_ids ? attachment_ids + "," + attachment.id : attachment.id;
201
+ $gallery_images_wrapper.append( '<li class="image" data-attachment_id="' + attachment.id + '"><img src="' + attachment.sizes.thumbnail.url + '"/><ul class="actions"><li><a href="#" class="delete" title="' + $t.data( 'delete' ) + '">x</a></li></ul></li>' );
202
+ }
203
+ } );
204
+
205
+ $image_gallery_ids.val( attachment_ids );
206
+ $image_gallery_ids.trigger( 'change' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
  } );
208
 
209
+ image_gallery_frame.open();
210
+
211
+ } );
212
+
213
+ // Image ordering
214
+ $imageGallery.sliderWrapper.each( function () {
215
+ var $t = $( this );
216
+ $t.sortable( {
217
+ items : 'li.image',
218
+ cursor : 'move',
219
+ scrollSensitivity : 40,
220
+ forcePlaceholderSize: true,
221
+ forceHelperSize : false,
222
+ helper : 'clone',
223
+ opacity : 0.65,
224
+ start : function ( event, ui ) {
225
+ ui.item.css( 'background-color', '#f6f6f6' );
226
+ },
227
+ stop : function ( event, ui ) {
228
+ ui.item.removeAttr( 'style' );
229
+ },
230
+ update : function ( event, ui ) {
231
+ var attachment_ids = '';
232
+
233
+ $t.find( 'li.image' ).css( 'cursor', 'default' ).each( function () {
234
+ var attachment_id = $( this ).attr( 'data-attachment_id' );
235
+ attachment_ids = attachment_ids + attachment_id + ',';
236
+ } );
237
+
238
+ $t.closest( $imageGallery.rootSelector ).find( '.image_gallery_ids' ).val( attachment_ids );
239
+ }
240
+ } );
241
+ } );
242
+
243
+ // Remove images
244
+ $imageGallery.sliderWrapper.on( 'click', 'a.delete', function ( e ) {
245
+ e.preventDefault();
246
+ var $wrapper = $( this ).closest( $imageGallery.rootSelector ),
247
+ $gallery = $wrapper.find( 'ul.slides-wrapper' ),
248
+ $image_gallery_ids = $wrapper.find( '.image_gallery_ids' ),
249
+ attachment_ids = '';
250
+
251
+ $( this ).closest( 'li.image' ).remove();
252
+
253
+ $gallery.find( 'li.image' ).css( 'cursor', 'default' ).each( function () {
254
+ var attachment_id = $( this ).attr( 'data-attachment_id' );
255
+ attachment_ids = attachment_ids + attachment_id + ',';
256
+ } );
257
+
258
+ $image_gallery_ids.val( attachment_ids );
259
+ } );
260
+ }
261
+
262
+
263
+ /* Sidebars */
264
+ $sidebars.each( function () {
265
+ var $images = $( this ).find( 'img' );
266
+ $images.on( 'click', function () {
267
+ var $container = $( this ).closest( '.yith-plugin-fw-sidebar-layout' ),
268
+ $left = $container.find( '.yith-plugin-fw-sidebar-layout-sidebar-left-container' ),
269
+ $right = $container.find( '.yith-plugin-fw-sidebar-layout-sidebar-right-container' ),
270
+ type = $( this ).data( 'type' );
271
+
272
+ $( this ).parent().children( ':radio' ).attr( 'checked', false );
273
+ $( this ).prev( ':radio' ).attr( 'checked', true );
274
+
275
+ if ( typeof type != 'undefined' ) {
276
+ switch ( type ) {
277
+ case 'left':
278
+ $left.show();
279
+ $right.hide();
280
+ break;
281
+ case 'right':
282
+ $right.show();
283
+ $left.hide();
284
+ break;
285
+ case 'double':
286
+ $left.show();
287
+ $right.show();
288
+ break;
289
+ default:
290
+ $left.hide();
291
+ $right.hide();
292
+ break;
293
+ }
294
+ }
295
+ } );
296
+ } );
297
+
298
+ /* Slider */
299
+ $slider.each( function () {
300
+ var val = $( this ).data( 'val' ),
301
+ minValue = $( this ).data( 'min' ),
302
+ maxValue = $( this ).data( 'max' ),
303
+ step = $( this ).data( 'step' ),
304
+ labels = $( this ).data( 'labels' );
305
+
306
+ $( this ).slider( {
307
+ value: val,
308
+ min : minValue,
309
+ max : maxValue,
310
+ range: 'min',
311
+ step : step,
312
+
313
+ create: function () {
314
+ $( this ).find( '.ui-slider-handle' ).text( $( this ).slider( "value" ) );
315
+ },
316
+
317
+
318
+ slide: function ( event, ui ) {
319
+ $( this ).find( 'input' ).val( ui.value );
320
+ $( this ).find( '.ui-slider-handle' ).text( ui.value );
321
+ $( this ).siblings( '.feedback' ).find( 'strong' ).text( ui.value + labels );
322
+ }
323
+ } );
324
+ } );
325
+
326
+ // Codemirror.
327
+ $( function () {
328
+ var codemirrorInit = function () {
329
+ if ( typeof wp !== 'undefined' && typeof wp.codeEditor !== 'undefined' ) {
330
+ $( '.codemirror:not(.codemirror--initialized)' ).each( function () {
331
+ var settings = $( this ).data( 'settings' ),
332
+ editor = wp.codeEditor.initialize( $( this ), settings );
333
+
334
+ $( this ).addClass( 'codemirror--initialized' );
335
+ $( this ).data( 'codemirrorInstance', editor );
336
+ } );
337
+ }
338
+ };
339
+ $( document ).on( 'yith-plugin-fw-codemirror-init', codemirrorInit ).trigger( 'yith-plugin-fw-codemirror-init' );
340
+ } );
341
+
342
+ /* Select All - Deselect All */
343
+ $( document ).on( 'click', '.yith-plugin-fw-select-all', function () {
344
+ var $targetSelect = $( '#' + $( this ).data( 'select-id' ) );
345
+ $targetSelect.find( 'option' ).prop( 'selected', true ).trigger( 'change' );
346
+ } );
347
+
348
+ $( document ).on( 'click', '.yith-plugin-fw-deselect-all', function () {
349
+ var $targetSelect = $( '#' + $( this ).data( 'select-id' ) );
350
+ $targetSelect.find( 'option' ).prop( 'selected', false ).trigger( 'change' );
351
+ } );
352
+
353
+
354
+ $icons.each( function () {
355
+ var $container = $( this ),
356
+ $preview = $container.find( '.yit-icons-manager-icon-preview' ).first(),
357
+ $text = $container.find( '.yit-icons-manager-icon-text' );
358
+
359
+ $container.on( 'click', '.yit-icons-manager-list li', function ( event ) {
360
+ var $target = $( event.target ).closest( 'li' ),
361
+ font = $target.data( 'font' ),
362
+ icon = $target.data( 'icon' ),
363
+ key = $target.data( 'key' ),
364
+ name = $target.data( 'name' );
365
+
366
+ $preview.attr( 'data-font', font );
367
+ $preview.attr( 'data-icon', icon );
368
+ $preview.attr( 'data-key', key );
369
+ $preview.attr( 'data-name', name );
370
+
371
+ $text.val( font + ':' + name );
372
+
373
+ $container.find( '.yit-icons-manager-list li' ).removeClass( 'active' );
374
+ $target.addClass( 'active' );
375
+ } );
376
+
377
+ $container.on( 'click', '.yit-icons-manager-action-set-default', function () {
378
+ $container.find( '.yit-icons-manager-list li.default' ).trigger( 'click' );
379
+ } );
380
+ } );
381
+
382
+ /** Select Images */
383
+ $( document ).on( 'click', '.yith-plugin-fw-select-images__item', function () {
384
+ var item = $( this ),
385
+ key = item.data( 'key' ),
386
+ wrapper = item.closest( '.yith-plugin-fw-select-images__wrapper' ),
387
+ items = wrapper.find( '.yith-plugin-fw-select-images__item' ),
388
+ select = wrapper.find( 'select' ).first();
389
+
390
+ if ( select.length ) {
391
+ select.val( key ).trigger( 'yith_select_images_value_changed' );
392
+ items.removeClass( 'yith-plugin-fw-select-images__item--selected' );
393
+ item.addClass( 'yith-plugin-fw-select-images__item--selected' );
394
+ }
395
+ } );
396
+
397
+ $( document.body ).trigger( 'wc-enhanced-select-init' );
398
+
399
+ $( document ).find( '.ui-sortable .yith-toggle-elements' ).sortable(
400
+ {
401
+ cursor : 'move',
402
+ axis : 'y',
403
+ scrollSensitivity : 40,
404
+ forcePlaceholderSize: true,
405
+ helper : 'clone',
406
+
407
+ stop: function ( event, ui ) {
408
+ var keys = jQuery( '.ui-sortable-handle' ),
409
+ i = 0,
410
+ array_keys = new Array();
411
+ for ( i = 0; i < keys.length; i++ ) {
412
+ array_keys[ i ] = $( keys[ i ] ).data( 'item_key' );
413
+ }
414
+ if ( array_keys.length > 0 ) {
415
+ var toggle = $( this ).closest( '.toggle-element' );
416
+ toggle.saveToggleElement( null, array_keys );
417
+ }
418
+ }
419
+ }
420
+ );
421
+
422
+ $( document.body ).trigger( 'yith-framework-enhanced-select-init' );
423
+ };
424
+
425
+ $( document ).on( 'yith_fields_init', yith_fields_init ).trigger( 'yith_fields_init' );
426
+
427
+ /* on-off */
428
+ $( document ).on( 'click', '.yith-plugin-fw-onoff-container span', function () {
429
+ var input = $( this ).prev( 'input' ),
430
+ checked = input.prop( 'checked' );
431
+
432
+ if ( checked ) {
433
+ input.prop( 'checked', false ).attr( 'value', 'no' ).removeClass( 'onoffchecked' );
434
+ } else {
435
+ input.prop( 'checked', true ).attr( 'value', 'yes' ).addClass( 'onoffchecked' );
436
+ }
437
+
438
+ input.change();
439
+ } );
440
+
441
+
442
+ /** Toggle **/
443
+
444
+
445
+ //TOGGLE ELEMENT
446
+ $.fn.saveToggleElement = function ( spinner, array_keys ) {
447
+ var toggle = $( this ),
448
+ action = 'yith_plugin_fw_save_toggle_element',
449
+ formdata = toggle.serializeToggleElement(),
450
+ wrapper = toggle.find( '.yith-toggle_wrapper' ),
451
+ id = wrapper.attr( 'id' ),
452
+ current_tab = $.urlParam( 'tab' );
453
+
454
+ formdata.append( 'security', wrapper.data( 'nonce' ) );
455
+
456
+ if ( typeof array_keys != 'undefined' && array_keys.length > 0 ) {
457
+ formdata.append( 'yith_toggle_elements_order_keys', array_keys );
458
+ }
459
+
460
+ if ( toggle.closest( '.metaboxes-tab.yith-plugin-ui' ).length ) {
461
+ action = 'yith_plugin_fw_save_toggle_element_metabox';
462
+ post_id = $( this ).closest( 'form#post' ).find( '#post_ID' ).val();
463
+ yit_metaboxes_nonce = $( this ).closest( 'form#post' ).find( '#yit_metaboxes_nonce' ).val();
464
+ metabox_tab = $( this ).closest( '.tabs-panel' ).attr( 'id' );
465
+ url = yith_framework_fw_fields.ajax_url +
466
+ '?action=' + action +
467
+ "&post_ID=" + post_id +
468
+ '&yit_metaboxes_nonce=' + yit_metaboxes_nonce +
469
+ "&toggle_id=" + id +
470
+ "&metabox_tab=" + metabox_tab;
471
+ } else {
472
+ url = yith_framework_fw_fields.admin_url + '?action=' + action + '&tab=' + current_tab + "&toggle_id=" + id;
473
+ }
474
+
475
+ $.ajax( {
476
+ type : "POST",
477
+ url : url,
478
+ data : formdata,
479
+ contentType: false,
480
+ processData: false,
481
+ success : function ( result ) {
482
+ if ( spinner ) {
483
+ spinner.removeClass( 'show' );
484
+ }
485
+
486
+ $( document ).trigger( 'yith_save_toggle_element_done', [result, toggle] );
487
+ }
488
+ } );
489
+ };
490
+
491
+ $.fn.serializeToggleElement = function () {
492
+ var obj = $( this );
493
+ /* ADD FILE TO PARAM AJAX */
494
+ var formData = new FormData();
495
+ var params = $( obj ).find( ":input" ).serializeArray();
496
+
497
+ $.each( params, function ( i, val ) {
498
+ el_name = val.name;
499
+ formData.append( val.name, val.value );
500
+ } );
501
+
502
+ return formData;
503
+ };
504
+
505
+ $.fn.formatToggleTitle = function () {
506
+ var toggle_el = $( this ),
507
+ fields = toggle_el.find( ':input' ),
508
+ title = toggle_el.find( 'span.title' ).data( 'title_format' ),
509
+ subtitle = toggle_el.find( '.subtitle' ).data( 'subtitle_format' ),
510
+ regExp = new RegExp( "[^%%]+(?=[%%])", 'g' );
511
+
512
+ if ( typeof title != 'undefined' ) {
513
+ var res = title.match( regExp );
514
+ }
515
+
516
+ if ( typeof subtitle != 'undefined' ) {
517
+ var ressub = subtitle.match( regExp );
518
+ }
519
+
520
+ $.each( fields, function ( i, field ) {
521
+ if ( typeof $( field ).attr( 'id' ) != 'undefined' ) {
522
+ $field_id = $( field ).attr( 'id' );
523
+ $field_array = $field_id.split( '_' );
524
+ $field_array.pop();
525
+ $field_id = $field_array.join( '_' );
526
+ $field_val = $( field ).val();
527
+
528
+ if ( res != null && typeof res != 'undefined' && res.indexOf( $field_id ) !== -1 ) {
529
+ title = title.replace( '%%' + $field_id + '%%', $field_val );
530
+ }
531
+ if ( ressub != null && typeof ressub != 'undefined' && ressub.indexOf( $field_id ) !== -1 ) {
532
+ subtitle = subtitle.replace( '%%' + $field_id + '%%', $field_val );
533
+ }
534
+ }
535
+ } );
536
+
537
+ if ( '' !== title ) {
538
+ toggle_el.find( 'span.title' ).html( title );
539
+ }
540
+
541
+ if ( '' !== subtitle ) {
542
+ toggle_el.find( '.subtitle' ).html( subtitle );
543
+ }
544
+
545
+ $( document ).trigger( 'yith-toggle-element-item-title', [toggle_el] );
546
+ };
547
+
548
+ $.urlParam = function ( name ) {
549
+ var results = new RegExp( '[\?&]' + name + '=([^&#]*)' )
550
+ .exec( window.location.search );
551
+
552
+ return ( results !== null ) ? results[ 1 ] || 0 : false;
553
+ };
554
+
555
+ $( document ).on( 'click', '.yith-toggle-title', function ( event ) {
556
+ var _toggle = $( event.target ),
557
+ _section = _toggle.closest( '.yith-toggle-row' ),
558
+ _content = _section.find( '.yith-toggle-content' );
559
+
560
+ if ( _toggle.hasClass( 'yith-plugin-fw-onoff' ) || _toggle.hasClass( 'yith-icon-drag' ) ) {
561
+ return false;
562
+ }
563
+
564
+ if ( _section.is( '.yith-toggle-row-opened' ) ) {
565
+ _content.slideUp( 400 );
566
+ } else {
567
+ _content.slideDown( 400 );
568
+ }
569
+ _section.toggleClass( 'yith-toggle-row-opened' );
570
+ } );
571
+
572
+ /**Add new box toggle**/
573
+ $( document ).on( 'click', '.yith-add-box-button', function ( event ) {
574
+ event.preventDefault();
575
+ var $this = $( this ),
576
+ target_id = $this.data( 'box_id' ),
577
+ closed_label = $this.data( 'closed_label' ),
578
+ label = $this.data( 'opened_label' ),
579
+ id = $this.closest( '.yith-toggle_wrapper' ).attr( 'id' ),
580
+ template = wp.template( 'yith-toggle-element-add-box-content-' + id );
581
+
582
+ if ( '' !== target_id ) {
583
+ $( '#' + target_id ).html( template( { index: 'box_id' } ) ).slideToggle();
584
+ if ( closed_label !== '' ) {
585
+ if ( $this.html() === closed_label ) {
586
+ $this.html( label ).removeClass( 'closed' );
587
+ } else {
588
+ $this.html( closed_label ).addClass( 'closed' );
589
+ }
590
+ }
591
+
592
+ $( document ).trigger( 'yith_fields_init' );
593
+ $( document ).trigger( 'yith-add-box-button-toggle', [$this] );
594
+ }
595
+ } );
596
+
597
+ $( document ).on( 'click', '.yith-add-box-buttons .yith-save-button', function ( event ) {
598
+
599
+ event.preventDefault();
600
+ var add_box = $( this ).parents( '.yith-add-box' ),
601
+ id = $( this ).closest( '.yith-toggle_wrapper' ).attr( 'id' ),
602
+ spinner = add_box.find( '.spinner' ),
603
+ toggle_element = $( this ).parents( '.toggle-element' ),
604
+ fields = add_box.find( ':input' ),
605
+ counter = 0,
606
+ hidden_obj = $( '<input type="hidden">' );
607
+
608
+ toggle_element.find( '.yith-toggle-row' ).each( function() {
609
+ var key = parseInt( $( this ).data( 'item_key' ) );
610
+ if( counter <= key ) {
611
+ counter = key + 1;
612
+ }
613
+ });
614
+
615
+ hidden_obj.val( counter );
616
+
617
+ $( document ).trigger( 'yith-toggle-change-counter', [hidden_obj, add_box] );
618
+
619
+ counter = hidden_obj.val();
620
+ var template = wp.template( 'yith-toggle-element-item-' + id ),
621
+ toggle_el = $( template( { index: counter } ) );
622
+
623
+ spinner.addClass( 'show' );
624
+
625
+ $.each( fields, function ( i, field ) {
626
+ if ( typeof $( field ).attr( 'id' ) !== 'undefined' ) {
627
+
628
+ var _field_id = $( field ).attr( 'id' ),
629
+ _field_val = $( field ).val();
630
+
631
+ if ( 'radio' === $( field ).attr( 'type' ) ) {
632
+ _field_id = $( field ).closest( '.yith-plugin-fw-radio' ).attr( 'id' );
633
+ _field_id = _field_id.replace( 'new_', '' ) + '_' + counter;
634
+ _field_id = _field_id + '-' + _field_val;
635
+ } else {
636
+ _field_id = _field_id.replace( 'new_', '' ) + '_' + counter;
637
+ }
638
+
639
+ if ( $( field ).is( ':checked' ) ) {
640
+ $( toggle_el ).find( '#' + _field_id ).prop( 'checked', true );
641
+ }
642
+
643
+ if ( $( field ).hasClass( 'yith-post-search' ) || $( field ).hasClass( 'yith-term-search' ) ) {
644
+ $( toggle_el ).find( '#' + _field_id ).html( $( '#' + $( field ).attr( 'id' ) ).html() );
645
+ }
646
+
647
+ $( toggle_el ).find( '#' + _field_id ).val( _field_val );
648
+
649
+ }
650
+
651
+ } );
652
+
653
+ $( toggle_el ).formatToggleTitle();
654
+ var form_is_valid = $( '<input type="hidden">' ).val( 'yes' );
655
+ $( document ).trigger( 'yith-toggle-element-item-before-add', [add_box, toggle_el, form_is_valid] );
656
+
657
+ var delayInMilliseconds = 1000; //1 second
658
+ setTimeout( function () {
659
+ if ( form_is_valid.val() === 'yes' ) {
660
+ $( toggle_element ).find( '.yith-toggle-elements' ).append( toggle_el );
661
+ $( add_box ).find( '.yith-plugin-fw-datepicker' ).datepicker( 'destroy' );
662
+ $( add_box ).html( '' );
663
+ $( add_box ).prev( '.yith-add-box-button' ).trigger( 'click' );
664
+ toggle_element.saveToggleElement();
665
+
666
+ var delayInMilliseconds = 2000; //1 second
667
+ setTimeout( function () {
668
+ $( toggle_element ).find( '.highlight' ).removeClass( 'highlight' );
669
+ }, delayInMilliseconds );
670
+
671
+
672
+ $( document ).trigger( 'yith_fields_init' );
673
+ }
674
+ }, delayInMilliseconds );
675
+
676
+
677
+ } );
678
+
679
+ $( document ).on( 'click', '.yith-toggle-row .yith-save-button', function ( event ) {
680
+ event.preventDefault();
681
+ var toggle = $( this ).closest( '.toggle-element' ),
682
+ toggle_row = $( this ).closest( '.yith-toggle-row' ),
683
+ spinner = toggle_row.find( '.spinner' );
684
+ toggle_row.formatToggleTitle();
685
+
686
+ var form_is_valid = $( '<input type="hidden">' ).val( 'yes' );
687
+ $( document ).trigger( 'yith-toggle-element-item-before-update', [toggle, toggle_row, form_is_valid] );
688
+ if ( form_is_valid.val() === 'yes' ) {
689
+ spinner.addClass( 'show' );
690
+ toggle.saveToggleElement( spinner );
691
+ }
692
+ } );
693
+
694
+ //register remove the dome and save the toggle
695
+ $( document ).on( 'click', '.yith-toggle-row .yith-delete-button', function ( event ) {
696
+ event.preventDefault();
697
+ var toggle = $( this ).closest( '.toggle-element' ),
698
+ toggle_row = $( this ).closest( '.yith-toggle-row' );
699
+ toggle_row.remove();
700
+ toggle.saveToggleElement();
701
+ } );
702
+
703
+ //register onoff status
704
+ $( document ).on( 'click', '.yith-toggle-onoff', function ( event ) {
705
+ event.preventDefault();
706
+ var toggle = $( this ).closest( '.toggle-element' );
707
+ toggle.saveToggleElement();
708
+ } );
709
+
710
+ // Radio
711
+ $( document ).on( 'click', '.yith-plugin-fw-radio input[type=radio]', function () {
712
+ var _radioContainer = $( this ).closest( '.yith-plugin-fw-radio' ),
713
+ _value = $( this ).val();
714
+
715
+ _radioContainer.val( _value ).data( 'value', _value ).trigger( 'change' );
716
+ } );
717
+
718
+ $( document.body ).on( 'yith-plugin-fw-init-radio', function () {
719
+ $( '.yith-plugin-fw-radio:not(.yith-plugin-fw-radio--initialized)' ).each( function () {
720
+ $( this ).val( $( this ).data( 'value' ) );
721
+ $( this ).addClass( 'yith-plugin-fw-radio--initialized' );
722
+ } );
723
+ } ).trigger( 'yith-plugin-fw-init-radio' );
724
+
725
+ // Password Eye field
726
+ $( document ).on( 'click', '.yith-password-eye', function () {
727
+ var $this = $( this ),
728
+ inp = $( this ).closest( '.yith-password-wrapper' ).find( 'input' );
729
+ if ( inp.attr( 'type' ) === "password" ) {
730
+ inp.attr( 'type', 'text' );
731
+ $this.addClass( 'yith-password-eye-closed' );
732
+ } else {
733
+ inp.attr( 'type', 'password' );
734
+ $this.removeClass( 'yith-password-eye-closed' );
735
+ }
736
+ } );
737
+
738
+ /**
739
+ * Select2 - add class to stylize it with the new plugin-fw style
740
+ */
741
+ $( document ).on( 'select2:open', function ( e ) {
742
+ if ( $( e.target ).closest( '.yith-plugin-ui' ).length ) {
743
+ $( '.select2-results' ).closest( '.select2-container' ).addClass( 'yith-plugin-fw-select2-container' );
744
+ }
745
+ } );
746
+ /**
747
+ * Dimensions
748
+ */
749
+ var fw_dimensions = {
750
+ selectors : {
751
+ wrapper : '.yith-plugin-fw-dimensions',
752
+ units : {
753
+ wrapper : '.yith-plugin-fw-dimensions__units',
754
+ single : '.yith-plugin-fw-dimensions__unit',
755
+ value : '.yith-plugin-fw-dimensions__unit__value',
756
+ selectedClass: 'yith-plugin-fw-dimensions__unit--selected'
757
+ },
758
+ linked : {
759
+ button : '.yith-plugin-fw-dimensions__linked',
760
+ value : '.yith-plugin-fw-dimensions__linked__value',
761
+ wrapperActiveClass: 'yith-plugin-fw-dimensions--linked-active'
762
+ },
763
+ dimensions: {
764
+ number: '.yith-plugin-fw-dimensions__dimension__number'
765
+ }
766
+ },
767
+ init : function () {
768
+ var self = fw_dimensions;
769
+ $( document ).on( 'click', self.selectors.units.single, self.unitChange );
770
+ $( document ).on( 'click', self.selectors.linked.button, self.linkedChange );
771
+ $( document ).on( 'change keyup', self.selectors.dimensions.number, self.numberChange );
772
+ },
773
+ unitChange : function ( e ) {
774
+ var unit = $( this ).closest( fw_dimensions.selectors.units.single ),
775
+ wrapper = unit.closest( fw_dimensions.selectors.units.wrapper ),
776
+ units = wrapper.find( fw_dimensions.selectors.units.single ),
777
+ valueField = wrapper.find( fw_dimensions.selectors.units.value ).first(),
778
+ value = unit.data( 'value' );
779
+
780
+ units.removeClass( fw_dimensions.selectors.units.selectedClass );
781
+ unit.addClass( fw_dimensions.selectors.units.selectedClass );
782
+ valueField.val( value );
783
+ },
784
+ linkedChange: function () {
785
+ var button = $( this ).closest( fw_dimensions.selectors.linked.button ),
786
+ mainWrapper = button.closest( fw_dimensions.selectors.wrapper ),
787
+ valueField = button.find( fw_dimensions.selectors.linked.value ),
788
+ value = valueField.val();
789
+
790
+ if ( 'yes' === value ) {
791
+ mainWrapper.removeClass( fw_dimensions.selectors.linked.wrapperActiveClass );
792
+ valueField.val( 'no' );
793
+ } else {
794
+ mainWrapper.addClass( fw_dimensions.selectors.linked.wrapperActiveClass );
795
+ valueField.val( 'yes' );
796
+
797
+ mainWrapper.find( fw_dimensions.selectors.dimensions.number ).first().trigger( 'change' );
798
+ }
799
+ },
800
+ numberChange: function ( e ) {
801
+ var number = $( this ).closest( fw_dimensions.selectors.dimensions.number ),
802
+ mainWrapper = number.closest( fw_dimensions.selectors.wrapper );
803
+ if ( mainWrapper.hasClass( fw_dimensions.selectors.linked.wrapperActiveClass ) ) {
804
+ var numbers = mainWrapper.find( fw_dimensions.selectors.dimensions.number );
805
+
806
+ numbers.val( number.val() );
807
+ }
808
+ }
809
+ };
810
+ fw_dimensions.init();
811
+
812
+ } )( jQuery );
plugin-fw/assets/js/yith-fields.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){e(document).on("yith_fields_init",function(){var t=e(".yith-plugin-fw-datepicker"),i=e(".yith-plugin-fw-colorpicker"),a={imgPreviewHandler:".yith-plugin-fw-upload-img-preview",uploadButtonHandler:".yith-plugin-fw-upload-button",imgUrlHandler:".yith-plugin-fw-upload-img-url",resetButtonHandler:".yith-plugin-fw-upload-button-reset",imgUrl:e(".yith-plugin-fw-upload-img-url")},n=e(".add_media"),l={sliderWrapper:e(".yith-plugin-fw .image-gallery ul.slides-wrapper"),buttonHandler:".yith-plugin-fw .image-gallery-button"},s=e(".yith-plugin-fw-sidebar-layout"),o=e(".yith-plugin-fw .yith-plugin-fw-slider-container .ui-slider-horizontal"),r=e(".codemirror"),d=e(".yit-icons-manager-wrapper");e(".yith-plugin-ui td.forminp-checkbox");t.each(function(){var t=e(this).data();t.showAnim=!1,t.beforeShow=function(e,t){t.dpDiv.addClass("yith-plugin-fw-datepicker-div")},t.onClose=function(e,t){t.dpDiv.removeClass("yith-plugin-fw-datepicker-div")},e(this).datepicker(t)}),i.wpColorPicker({palettes:!1,width:200,mode:"hsl",clear:function(){var t=e(this);t.val(t.data("default-color")),t.change()}}),i.each(function(){var t=e(this).data("variations-label"),i=e(this).closest(".yith-plugin-fw-colorpicker-field-wrapper"),a=e(this).closest(".yith-single-colorpicker"),n=i.find(".wp-picker-input-wrap"),l=a.find(".wp-picker-input-wrap");if(n.length&&i.find("a.wp-color-result").attr("title",t),a.length&&a.find("a.wp-color-result").attr("title",t),!n.find(".wp-picker-default-custom").length){var s=e("<span/>").attr({"class":"wp-picker-default-custom"});n.find(".wp-picker-default").wrap(s)}l.find(".wp-picker-default-custom").length||(s=e("<span/>").attr({"class":"wp-picker-default-custom"}),l.find(".wp-picker-default").wrap(s))}),"undefined"!=typeof wp&&"undefined"!=typeof wp.media&&(a.imgUrl.change(function(){var t=e(this).val(),i=new RegExp("(http|ftp|https)://[a-zA-Z0-9@?^=%&amp;:/~+#-_.]*.(gif|jpg|jpeg|png|ico|svg)"),n=e(this).parent().find(a.imgPreviewHandler).first();n.length<1&&(n=e(this).parent().parent().find(a.imgPreviewHandler).first()),i.test(t)?n.html('<img src="'+t+'" style="max-width:100px; max-height:100px;" />'):n.html("")}).trigger("change"),e(document).on("click",a.uploadButtonHandler,function(t){t.preventDefault();var i,n=e(this).attr("id").replace(/-button$/,"").replace(/(\[|\])/g,"\\$1");if(i)i.open();else{var l=[new wp.media.controller.Library({library:wp.media.query(),multiple:!1,title:"Choose Image",priority:20,filterable:"uploaded"})];(i=wp.media.frames.downloadable_file=wp.media({title:"Choose Image",library:{type:""},button:{text:"Choose Image"},multiple:!1,states:l})).on("select",function(){var t=i.state().get("selection").first().toJSON();e("#"+n).val(t.url),e("#"+n+"-yith-attachment-id")&&e("#"+n+"-yith-attachment-id").val(t.id),a.imgUrl.trigger("change")}),i.open()}}),e(document).on("click",a.resetButtonHandler,function(t){var i=e(this),n=i.attr("id").replace(/(\[|\])/g,"\\$1"),l=i.attr("id").replace(/-button-reset$/,"").replace(/(\[|\])/g,"\\$1"),s=e("#"+n).data("default");e("#"+l).val(s),a.imgUrl.trigger("change")}));n.on("click",function(){}),"undefined"!=typeof wp&&"undefined"!=typeof wp.media&&(e(document).on("click",l.buttonHandler,function(t){var i=e(this),a=i.closest(".image-gallery"),n=a.find(".image_gallery_ids"),l=n.val(),s=a.find("ul.slides-wrapper"),o=wp.media.frames.image_gallery=wp.media({title:i.data("choose"),button:{text:i.data("update")},states:[new wp.media.controller.Library({title:i.data("choose"),filterable:"all",multiple:!0})]});o.on("select",function(){o.state().get("selection").map(function(e){(e=e.toJSON()).id&&(l=l?l+","+e.id:e.id,s.append('<li class="image" data-attachment_id="'+e.id+'"><img src="'+e.sizes.thumbnail.url+'"/><ul class="actions"><li><a href="#" class="delete" title="'+i.data("delete")+'">x</a></li></ul></li>'))}),n.val(l)}),o.open()}),l.sliderWrapper.each(function(){var t=e(this);t.sortable({items:"li.image",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(i,a){var n="";t.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");n=n+t+","}),t.closest(".image-gallery").find(".image_gallery_ids").val(n)}})}),l.sliderWrapper.on("click","a.delete",function(){var t=e(this).closest(".image-gallery"),i=e(this).closest(".image-gallery ul.slides-wrapper"),a=t.find(".image_gallery_ids"),n="";e(this).closest("li.image").remove(),i.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");n=n+t+","}),a.val(n)})),s.each(function(){e(this).find("img").on("click",function(){var t=e(this).closest(".yith-plugin-fw-sidebar-layout"),i=t.find(".yith-plugin-fw-sidebar-layout-sidebar-left-container"),a=t.find(".yith-plugin-fw-sidebar-layout-sidebar-right-container"),n=e(this).data("type");if(e(this).parent().children(":radio").attr("checked",!1),e(this).prev(":radio").attr("checked",!0),void 0!==n)switch(n){case"left":i.show(),a.hide();break;case"right":a.show(),i.hide();break;case"double":i.show(),a.show();break;default:i.hide(),a.hide()}})}),o.each(function(){var t=e(this).data("val"),i=e(this).data("min"),a=e(this).data("max"),n=e(this).data("step"),l=e(this).data("labels");e(this).slider({value:t,min:i,max:a,range:"min",step:n,create:function(){e(this).find(".ui-slider-handle").text(e(this).slider("value"))},slide:function(t,i){e(this).find("input").val(i.value),e(this).find(".ui-slider-handle").text(i.value),e(this).siblings(".feedback").find("strong").text(i.value+l)}})}),r.each(function(t,i){var a=CodeMirror.fromTextArea(i,{lineNumbers:1,mode:"javascript",showCursorWhenSelecting:!0});e(i).data("codemirrorInstance",a)}),e(document).on("click",".yith-plugin-fw-select-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!0).trigger("change")}),e(document).on("click",".yith-plugin-fw-deselect-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!1).trigger("change")}),d.each(function(){var t=e(this),i=t.find(".yit-icons-manager-icon-preview").first(),a=t.find(".yit-icons-manager-icon-text");t.on("click",".yit-icons-manager-list li",function(n){var l=e(n.target).closest("li"),s=l.data("font"),o=l.data("icon"),r=l.data("key"),d=l.data("name");i.attr("data-font",s),i.attr("data-icon",o),i.attr("data-key",r),i.attr("data-name",d),a.val(s+":"+d),t.find(".yit-icons-manager-list li").removeClass("active"),l.addClass("active")}),t.on("click",".yit-icons-manager-action-set-default",function(){t.find(".yit-icons-manager-list li.default").trigger("click")})}),e(document).on("click",".yith-plugin-fw-select-images__item",function(){var t=e(this),i=t.data("key"),a=t.closest(".yith-plugin-fw-select-images__wrapper"),n=a.find(".yith-plugin-fw-select-images__item"),l=a.find("select").first();l.length&&(l.val(i).trigger("yith_select_images_value_changed"),n.removeClass("yith-plugin-fw-select-images__item--selected"),t.addClass("yith-plugin-fw-select-images__item--selected"))}),e(document.body).trigger("wc-enhanced-select-init"),e(document).find(".ui-sortable .yith-toggle-elements").sortable({cursor:"move",axis:"y",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",stop:function(t,i){var a=jQuery(".ui-sortable-handle"),n=0,l=new Array;for(n=0;n<a.length;n++)l[n]=e(a[n]).data("item_key");l.length>0&&e(this).closest(".toggle-element").saveToggleElement(null,l)}}),e(document.body).trigger("yith-framework-enhanced-select-init")}).trigger("yith_fields_init"),e(document).on("click",".yith-plugin-fw-onoff-container span",function(){var t=e(this).prev("input");t.prop("checked")?t.prop("checked",!1).attr("value","no").removeClass("onoffchecked"):t.prop("checked",!0).attr("value","yes").addClass("onoffchecked"),t.change()}),e.fn.saveToggleElement=function(t,i){var a=e(this),n="yith_plugin_fw_save_toggle_element",l=a.serializeToggleElement(),s=a.find(".yith-toggle_wrapper"),o=s.attr("id"),r=e.urlParam("tab");l.append("security",s.data("nonce")),void 0!==i&&i.length>0&&l.append("yith_toggle_elements_order_keys",i),a.closest(".metaboxes-tab.yith-plugin-ui").length?(n="yith_plugin_fw_save_toggle_element_metabox",post_id=e(this).closest("form#post").find("#post_ID").val(),yit_metaboxes_nonce=e(this).closest("form#post").find("#yit_metaboxes_nonce").val(),metabox_tab=e(this).closest(".tabs-panel").attr("id"),url=yith_framework_fw_fields.ajax_url+"?action="+n+"&post_ID="+post_id+"&yit_metaboxes_nonce="+yit_metaboxes_nonce+"&toggle_id="+o+"&metabox_tab="+metabox_tab):url=yith_framework_fw_fields.admin_url+"?action="+n+"&tab="+r+"&toggle_id="+o,e.ajax({type:"POST",url:url,data:l,contentType:!1,processData:!1,success:function(i){t&&t.removeClass("show"),e(document).trigger("yith_save_toggle_element_done",[i,a])}})},e.fn.serializeToggleElement=function(){var t=e(this),i=new FormData,a=e(t).find(":input").serializeArray();return e.each(a,function(e,t){el_name=t.name,i.append(t.name,t.value)}),i},e.fn.formatToggleTitle=function(){var t=e(this),i=t.find(":input"),a=t.find("span.title").data("title_format"),n=t.find(".subtitle").data("subtitle_format"),l=new RegExp("[^%%]+(?=[%%])","g");if(void 0!==a)var s=a.match(l);if(void 0!==n)var o=n.match(l);e.each(i,function(t,i){void 0!==e(i).attr("id")&&($field_id=e(i).attr("id"),$field_array=$field_id.split("_"),$field_array.pop(),$field_id=$field_array.join("_"),$field_val=e(i).val(),null!=s&&void 0!==s&&-1!==s.indexOf($field_id)&&(a=a.replace("%%"+$field_id+"%%",$field_val)),null!=o&&void 0!==o&&-1!==o.indexOf($field_id)&&(n=n.replace("%%"+$field_id+"%%",$field_val)))}),""!==a&&t.find("span.title").html(a),""!==n&&t.find(".subtitle").html(n),e(document).trigger("yith-toggle-element-item-title",[t])},e.urlParam=function(e){var t=new RegExp("[?&]"+e+"=([^&#]*)").exec(window.location.search);return null!==t&&(t[1]||0)},e(document).on("click",".yith-toggle-title",function(t){var i=e(t.target),a=i.closest(".yith-toggle-row"),n=a.find(".yith-toggle-content");if(i.hasClass("yith-plugin-fw-onoff")||i.hasClass("yith-icon-drag"))return!1;a.is(".yith-toggle-row-opened")?n.slideUp(400):n.slideDown(400),a.toggleClass("yith-toggle-row-opened")}),e(document).on("click",".yith-add-box-button",function(t){t.preventDefault();var i=e(this),a=i.data("box_id"),n=i.data("closed_label"),l=i.data("opened_label"),s=i.closest(".yith-toggle_wrapper").attr("id"),o=wp.template("yith-toggle-element-add-box-content-"+s);""!==a&&(e("#"+a).html(o({index:"box_id"})).slideToggle(),""!==n&&(i.html()===n?i.html(l).removeClass("closed"):i.html(n).addClass("closed")),e(document).trigger("yith_fields_init"),e(document).trigger("yith-add-box-button-toggle",[i]))}),e(document).on("click",".yith-add-box-buttons .yith-save-button",function(t){t.preventDefault();var i=e(this).parents(".yith-add-box"),a=e(this).closest(".yith-toggle_wrapper").attr("id"),n=i.find(".spinner"),l=e(this).parents(".toggle-element"),s=i.find(":input"),o=l.find(".yith-toggle-row").length,r=e('<input type="hidden">');r.val(o),e(document).trigger("yith-toggle-change-counter",[r,i]),o=r.val();var d=wp.template("yith-toggle-element-item-"+a),c=e(d({index:o}));n.addClass("show"),e.each(s,function(t,i){void 0!==e(i).attr("id")&&($field_id=e(i).attr("id"),$field_val=e(i).val(),"radio"==e(i).attr("type")?($field_id=$field_id.replace("new_",""),$field_id=$field_id.replace("-"+$field_val,""),$field_id=$field_id+"_dataindex-"+$field_val):$field_id=$field_id.replace("new_","")+"_"+o,e(i).is(":checked")&&e(c).find("#"+$field_id).prop("checked",!0),(e(i).hasClass("yith-post-search")||e(i).hasClass("yith-term-search"))&&e(c).find("#"+$field_id).html(e("#"+e(i).attr("id")).html()),e(c).find("#"+$field_id).val($field_val))}),e(c).formatToggleTitle();var u=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-add",[i,c,u]);setTimeout(function(){if("yes"===u.val()){e(l).find(".yith-toggle-elements").append(c),e(i).find(".yith-plugin-fw-datepicker").datepicker("destroy"),e(i).html(""),e(i).prev(".yith-add-box-button").trigger("click"),l.saveToggleElement();setTimeout(function(){e(l).find(".highlight").removeClass("highlight")},2e3),e(document).trigger("yith_fields_init")}},1e3)}),e(document).on("click",".yith-toggle-row .yith-save-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element"),a=e(this).closest(".yith-toggle-row"),n=a.find(".spinner");a.formatToggleTitle();var l=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-update",[i,a,l]),"yes"===l.val()&&(n.addClass("show"),i.saveToggleElement(n))}),e(document).on("click",".yith-toggle-row .yith-delete-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element");e(this).closest(".yith-toggle-row").remove(),i.saveToggleElement()}),e(document).on("click",".yith-toggle-onoff",function(t){t.preventDefault(),e(this).closest(".toggle-element").saveToggleElement()}),e(document).on("click",".yith-plugin-fw-radio input[type=radio]",function(){var t=e(this).closest(".yith-plugin-fw-radio"),i=e(this).val();t.val(i).data("value",i).trigger("change")}),e(document.body).on("yith-plugin-fw-init-radio",function(){e(".yith-plugin-fw-radio:not(.yith-plugin-fw-radio--initialized)").each(function(){e(this).val(e(this).data("value")),e(this).addClass("yith-plugin-fw-radio--initialized")})}).trigger("yith-plugin-fw-init-radio"),e(document).on("click",".yith-password-eye",function(){var t=e(this),i=e(this).closest(".yith-password-wrapper").find("input");"password"===i.attr("type")?(i.attr("type","text"),t.addClass("yith-password-eye-closed")):(i.attr("type","password"),t.removeClass("yith-password-eye-closed"))}),e(document).on("select2:open",function(t){e(t.target).closest(".yith-plugin-ui").length&&e(".select2-results").closest(".select2-container").addClass("yith-plugin-fw-select2-container")});var t={selectors:{wrapper:".yith-plugin-fw-dimensions",units:{wrapper:".yith-plugin-fw-dimensions__units",single:".yith-plugin-fw-dimensions__unit",value:".yith-plugin-fw-dimensions__unit__value",selectedClass:"yith-plugin-fw-dimensions__unit--selected"},linked:{button:".yith-plugin-fw-dimensions__linked",value:".yith-plugin-fw-dimensions__linked__value",wrapperActiveClass:"yith-plugin-fw-dimensions--linked-active"},dimensions:{number:".yith-plugin-fw-dimensions__dimension__number"}},init:function(){var i=t;e(document).on("click",i.selectors.units.single,i.unitChange),e(document).on("click",i.selectors.linked.button,i.linkedChange),e(document).on("change keyup",i.selectors.dimensions.number,i.numberChange)},unitChange:function(i){var a=e(this).closest(t.selectors.units.single),n=a.closest(t.selectors.units.wrapper),l=n.find(t.selectors.units.single),s=n.find(t.selectors.units.value).first(),o=a.data("value");l.removeClass(t.selectors.units.selectedClass),a.addClass(t.selectors.units.selectedClass),s.val(o)},linkedChange:function(){var i=e(this).closest(t.selectors.linked.button),a=i.closest(t.selectors.wrapper),n=i.find(t.selectors.linked.value);"yes"===n.val()?(a.removeClass(t.selectors.linked.wrapperActiveClass),n.val("no")):(a.addClass(t.selectors.linked.wrapperActiveClass),n.val("yes"),a.find(t.selectors.dimensions.number).first().trigger("change"))},numberChange:function(i){var a=e(this).closest(t.selectors.dimensions.number),n=a.closest(t.selectors.wrapper);n.hasClass(t.selectors.linked.wrapperActiveClass)&&n.find(t.selectors.dimensions.number).val(a.val())}};t.init()}(jQuery);
1
+ !function(e){e(document).on("yith_fields_init",function(){var t=e(".yith-plugin-fw-datepicker"),i=e(".yith-plugin-fw-colorpicker"),n={imgPreviewHandler:".yith-plugin-fw-upload-img-preview",uploadButtonHandler:".yith-plugin-fw-upload-button",imgUrlHandler:".yith-plugin-fw-upload-img-url",resetButtonHandler:".yith-plugin-fw-upload-button-reset",imgUrl:e(".yith-plugin-fw-upload-img-url")},a=e(".add_media"),l={rootSelector:".yith-plugin-fw-image-gallery",buttonSelector:".yith-plugin-fw-image-gallery .image-gallery-button",sliderWrapper:e(".yith-plugin-fw-image-gallery ul.slides-wrapper")},o=e(".yith-plugin-fw-sidebar-layout"),s=e(".yith-plugin-fw .yith-plugin-fw-slider-container .ui-slider-horizontal"),r=e(".yit-icons-manager-wrapper");e(".yith-plugin-ui td.forminp-checkbox");t.each(function(){var t=e(this).data();t.showAnim=!1,t.beforeShow=function(e,t){t.dpDiv.addClass("yith-plugin-fw-datepicker-div")},t.onClose=function(e,t){t.dpDiv.removeClass("yith-plugin-fw-datepicker-div")},e(this).datepicker(t)}),i.wpColorPicker({palettes:!1,width:200,mode:"hsl",clear:function(){var t=e(this);t.val(t.data("default-color")),t.change()}}),i.each(function(){var t=e(this).data("variations-label"),i=e(this).closest(".yith-plugin-fw-colorpicker-field-wrapper"),n=e(this).closest(".yith-single-colorpicker"),a=i.find(".wp-picker-input-wrap"),l=n.find(".wp-picker-input-wrap");if(a.length&&i.find("a.wp-color-result").attr("title",t),n.length&&n.find("a.wp-color-result").attr("title",t),!a.find(".wp-picker-default-custom").length){var o=e("<span/>").attr({"class":"wp-picker-default-custom"});a.find(".wp-picker-default").wrap(o)}l.find(".wp-picker-default-custom").length||(o=e("<span/>").attr({"class":"wp-picker-default-custom"}),l.find(".wp-picker-default").wrap(o))}),"undefined"!=typeof wp&&"undefined"!=typeof wp.media&&(n.imgUrl.change(function(){var t=e(this).val(),i=new RegExp("(http|ftp|https)://[a-zA-Z0-9@?^=%&amp;:/~+#-_.]*.(gif|jpg|jpeg|png|ico|svg)"),a=e(this).parent().find(n.imgPreviewHandler).first();a.length<1&&(a=e(this).parent().parent().find(n.imgPreviewHandler).first()),i.test(t)?a.html('<img src="'+t+'" style="max-width:100px; max-height:100px;" />'):a.html("")}).trigger("change"),e(document).on("click",n.uploadButtonHandler,function(t){t.preventDefault();var i,a=e(this).attr("id").replace(/-button$/,"").replace(/(\[|\])/g,"\\$1");if(i)i.open();else{var l=[new wp.media.controller.Library({library:wp.media.query(),multiple:!1,title:"Choose Image",priority:20,filterable:"uploaded"})];(i=wp.media.frames.downloadable_file=wp.media({title:"Choose Image",library:{type:""},button:{text:"Choose Image"},multiple:!1,states:l})).on("select",function(){var t=i.state().get("selection").first().toJSON();e("#"+a).val(t.url),e("#"+a+"-yith-attachment-id")&&e("#"+a+"-yith-attachment-id").val(t.id),n.imgUrl.trigger("change")}),i.open()}}),e(document).on("click",n.resetButtonHandler,function(t){var i=e(this),a=i.attr("id").replace(/(\[|\])/g,"\\$1"),l=i.attr("id").replace(/-button-reset$/,"").replace(/(\[|\])/g,"\\$1"),o=e("#"+a).data("default");e("#"+l).val(o),n.imgUrl.trigger("change")}));a.on("click",function(){}),"undefined"!=typeof wp&&"undefined"!=typeof wp.media&&(e(document).on("click",l.buttonSelector,function(t){var i=e(this),n=i.closest(l.rootSelector),a=n.find(".image_gallery_ids"),o=a.val(),s=n.find("ul.slides-wrapper"),r=wp.media.frames.image_gallery=wp.media({title:i.data("choose"),button:{text:i.data("update")},states:[new wp.media.controller.Library({title:i.data("choose"),filterable:"all",multiple:!0})]});r.on("select",function(){r.state().get("selection").map(function(e){(e=e.toJSON()).id&&(o=o?o+","+e.id:e.id,s.append('<li class="image" data-attachment_id="'+e.id+'"><img src="'+e.sizes.thumbnail.url+'"/><ul class="actions"><li><a href="#" class="delete" title="'+i.data("delete")+'">x</a></li></ul></li>'))}),a.val(o),a.trigger("change")}),r.open()}),l.sliderWrapper.each(function(){var t=e(this);t.sortable({items:"li.image",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(i,n){var a="";t.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");a=a+t+","}),t.closest(l.rootSelector).find(".image_gallery_ids").val(a)}})}),l.sliderWrapper.on("click","a.delete",function(t){t.preventDefault();var i=e(this).closest(l.rootSelector),n=i.find("ul.slides-wrapper"),a=i.find(".image_gallery_ids"),o="";e(this).closest("li.image").remove(),n.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");o=o+t+","}),a.val(o)})),o.each(function(){e(this).find("img").on("click",function(){var t=e(this).closest(".yith-plugin-fw-sidebar-layout"),i=t.find(".yith-plugin-fw-sidebar-layout-sidebar-left-container"),n=t.find(".yith-plugin-fw-sidebar-layout-sidebar-right-container"),a=e(this).data("type");if(e(this).parent().children(":radio").attr("checked",!1),e(this).prev(":radio").attr("checked",!0),void 0!==a)switch(a){case"left":i.show(),n.hide();break;case"right":n.show(),i.hide();break;case"double":i.show(),n.show();break;default:i.hide(),n.hide()}})}),s.each(function(){var t=e(this).data("val"),i=e(this).data("min"),n=e(this).data("max"),a=e(this).data("step"),l=e(this).data("labels");e(this).slider({value:t,min:i,max:n,range:"min",step:a,create:function(){e(this).find(".ui-slider-handle").text(e(this).slider("value"))},slide:function(t,i){e(this).find("input").val(i.value),e(this).find(".ui-slider-handle").text(i.value),e(this).siblings(".feedback").find("strong").text(i.value+l)}})}),e(function(){e(document).on("yith-plugin-fw-codemirror-init",function(){"undefined"!=typeof wp&&"undefined"!=typeof wp.codeEditor&&e(".codemirror:not(.codemirror--initialized)").each(function(){var t=e(this).data("settings"),i=wp.codeEditor.initialize(e(this),t);e(this).addClass("codemirror--initialized"),e(this).data("codemirrorInstance",i)})}).trigger("yith-plugin-fw-codemirror-init")}),e(document).on("click",".yith-plugin-fw-select-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!0).trigger("change")}),e(document).on("click",".yith-plugin-fw-deselect-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!1).trigger("change")}),r.each(function(){var t=e(this),i=t.find(".yit-icons-manager-icon-preview").first(),n=t.find(".yit-icons-manager-icon-text");t.on("click",".yit-icons-manager-list li",function(a){var l=e(a.target).closest("li"),o=l.data("font"),s=l.data("icon"),r=l.data("key"),d=l.data("name");i.attr("data-font",o),i.attr("data-icon",s),i.attr("data-key",r),i.attr("data-name",d),n.val(o+":"+d),t.find(".yit-icons-manager-list li").removeClass("active"),l.addClass("active")}),t.on("click",".yit-icons-manager-action-set-default",function(){t.find(".yit-icons-manager-list li.default").trigger("click")})}),e(document).on("click",".yith-plugin-fw-select-images__item",function(){var t=e(this),i=t.data("key"),n=t.closest(".yith-plugin-fw-select-images__wrapper"),a=n.find(".yith-plugin-fw-select-images__item"),l=n.find("select").first();l.length&&(l.val(i).trigger("yith_select_images_value_changed"),a.removeClass("yith-plugin-fw-select-images__item--selected"),t.addClass("yith-plugin-fw-select-images__item--selected"))}),e(document.body).trigger("wc-enhanced-select-init"),e(document).find(".ui-sortable .yith-toggle-elements").sortable({cursor:"move",axis:"y",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",stop:function(t,i){var n=jQuery(".ui-sortable-handle"),a=0,l=new Array;for(a=0;a<n.length;a++)l[a]=e(n[a]).data("item_key");l.length>0&&e(this).closest(".toggle-element").saveToggleElement(null,l)}}),e(document.body).trigger("yith-framework-enhanced-select-init")}).trigger("yith_fields_init"),e(document).on("click",".yith-plugin-fw-onoff-container span",function(){var t=e(this).prev("input");t.prop("checked")?t.prop("checked",!1).attr("value","no").removeClass("onoffchecked"):t.prop("checked",!0).attr("value","yes").addClass("onoffchecked"),t.change()}),e.fn.saveToggleElement=function(t,i){var n=e(this),a="yith_plugin_fw_save_toggle_element",l=n.serializeToggleElement(),o=n.find(".yith-toggle_wrapper"),s=o.attr("id"),r=e.urlParam("tab");l.append("security",o.data("nonce")),void 0!==i&&i.length>0&&l.append("yith_toggle_elements_order_keys",i),n.closest(".metaboxes-tab.yith-plugin-ui").length?(a="yith_plugin_fw_save_toggle_element_metabox",post_id=e(this).closest("form#post").find("#post_ID").val(),yit_metaboxes_nonce=e(this).closest("form#post").find("#yit_metaboxes_nonce").val(),metabox_tab=e(this).closest(".tabs-panel").attr("id"),url=yith_framework_fw_fields.ajax_url+"?action="+a+"&post_ID="+post_id+"&yit_metaboxes_nonce="+yit_metaboxes_nonce+"&toggle_id="+s+"&metabox_tab="+metabox_tab):url=yith_framework_fw_fields.admin_url+"?action="+a+"&tab="+r+"&toggle_id="+s,e.ajax({type:"POST",url:url,data:l,contentType:!1,processData:!1,success:function(i){t&&t.removeClass("show"),e(document).trigger("yith_save_toggle_element_done",[i,n])}})},e.fn.serializeToggleElement=function(){var t=e(this),i=new FormData,n=e(t).find(":input").serializeArray();return e.each(n,function(e,t){el_name=t.name,i.append(t.name,t.value)}),i},e.fn.formatToggleTitle=function(){var t=e(this),i=t.find(":input"),n=t.find("span.title").data("title_format"),a=t.find(".subtitle").data("subtitle_format"),l=new RegExp("[^%%]+(?=[%%])","g");if(void 0!==n)var o=n.match(l);if(void 0!==a)var s=a.match(l);e.each(i,function(t,i){void 0!==e(i).attr("id")&&($field_id=e(i).attr("id"),$field_array=$field_id.split("_"),$field_array.pop(),$field_id=$field_array.join("_"),$field_val=e(i).val(),null!=o&&void 0!==o&&-1!==o.indexOf($field_id)&&(n=n.replace("%%"+$field_id+"%%",$field_val)),null!=s&&void 0!==s&&-1!==s.indexOf($field_id)&&(a=a.replace("%%"+$field_id+"%%",$field_val)))}),""!==n&&t.find("span.title").html(n),""!==a&&t.find(".subtitle").html(a),e(document).trigger("yith-toggle-element-item-title",[t])},e.urlParam=function(e){var t=new RegExp("[?&]"+e+"=([^&#]*)").exec(window.location.search);return null!==t&&(t[1]||0)},e(document).on("click",".yith-toggle-title",function(t){var i=e(t.target),n=i.closest(".yith-toggle-row"),a=n.find(".yith-toggle-content");if(i.hasClass("yith-plugin-fw-onoff")||i.hasClass("yith-icon-drag"))return!1;n.is(".yith-toggle-row-opened")?a.slideUp(400):a.slideDown(400),n.toggleClass("yith-toggle-row-opened")}),e(document).on("click",".yith-add-box-button",function(t){t.preventDefault();var i=e(this),n=i.data("box_id"),a=i.data("closed_label"),l=i.data("opened_label"),o=i.closest(".yith-toggle_wrapper").attr("id"),s=wp.template("yith-toggle-element-add-box-content-"+o);""!==n&&(e("#"+n).html(s({index:"box_id"})).slideToggle(),""!==a&&(i.html()===a?i.html(l).removeClass("closed"):i.html(a).addClass("closed")),e(document).trigger("yith_fields_init"),e(document).trigger("yith-add-box-button-toggle",[i]))}),e(document).on("click",".yith-add-box-buttons .yith-save-button",function(t){t.preventDefault();var i=e(this).parents(".yith-add-box"),n=e(this).closest(".yith-toggle_wrapper").attr("id"),a=i.find(".spinner"),l=e(this).parents(".toggle-element"),o=i.find(":input"),s=0,r=e('<input type="hidden">');l.find(".yith-toggle-row").each(function(){var t=parseInt(e(this).data("item_key"));s<=t&&(s=t+1)}),r.val(s),e(document).trigger("yith-toggle-change-counter",[r,i]),s=r.val();var d=wp.template("yith-toggle-element-item-"+n),c=e(d({index:s}));a.addClass("show"),e.each(o,function(t,i){if(void 0!==e(i).attr("id")){var n=e(i).attr("id"),a=e(i).val();n="radio"===e(i).attr("type")?(n=(n=e(i).closest(".yith-plugin-fw-radio").attr("id")).replace("new_","")+"_"+s)+"-"+a:n.replace("new_","")+"_"+s,e(i).is(":checked")&&e(c).find("#"+n).prop("checked",!0),(e(i).hasClass("yith-post-search")||e(i).hasClass("yith-term-search"))&&e(c).find("#"+n).html(e("#"+e(i).attr("id")).html()),e(c).find("#"+n).val(a)}}),e(c).formatToggleTitle();var u=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-add",[i,c,u]);setTimeout(function(){if("yes"===u.val()){e(l).find(".yith-toggle-elements").append(c),e(i).find(".yith-plugin-fw-datepicker").datepicker("destroy"),e(i).html(""),e(i).prev(".yith-add-box-button").trigger("click"),l.saveToggleElement();setTimeout(function(){e(l).find(".highlight").removeClass("highlight")},2e3),e(document).trigger("yith_fields_init")}},1e3)}),e(document).on("click",".yith-toggle-row .yith-save-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element"),n=e(this).closest(".yith-toggle-row"),a=n.find(".spinner");n.formatToggleTitle();var l=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-update",[i,n,l]),"yes"===l.val()&&(a.addClass("show"),i.saveToggleElement(a))}),e(document).on("click",".yith-toggle-row .yith-delete-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element");e(this).closest(".yith-toggle-row").remove(),i.saveToggleElement()}),e(document).on("click",".yith-toggle-onoff",function(t){t.preventDefault(),e(this).closest(".toggle-element").saveToggleElement()}),e(document).on("click",".yith-plugin-fw-radio input[type=radio]",function(){var t=e(this).closest(".yith-plugin-fw-radio"),i=e(this).val();t.val(i).data("value",i).trigger("change")}),e(document.body).on("yith-plugin-fw-init-radio",function(){e(".yith-plugin-fw-radio:not(.yith-plugin-fw-radio--initialized)").each(function(){e(this).val(e(this).data("value")),e(this).addClass("yith-plugin-fw-radio--initialized")})}).trigger("yith-plugin-fw-init-radio"),e(document).on("click",".yith-password-eye",function(){var t=e(this),i=e(this).closest(".yith-password-wrapper").find("input");"password"===i.attr("type")?(i.attr("type","text"),t.addClass("yith-password-eye-closed")):(i.attr("type","password"),t.removeClass("yith-password-eye-closed"))}),e(document).on("select2:open",function(t){e(t.target).closest(".yith-plugin-ui").length&&e(".select2-results").closest(".select2-container").addClass("yith-plugin-fw-select2-container")});var t={selectors:{wrapper:".yith-plugin-fw-dimensions",units:{wrapper:".yith-plugin-fw-dimensions__units",single:".yith-plugin-fw-dimensions__unit",value:".yith-plugin-fw-dimensions__unit__value",selectedClass:"yith-plugin-fw-dimensions__unit--selected"},linked:{button:".yith-plugin-fw-dimensions__linked",value:".yith-plugin-fw-dimensions__linked__value",wrapperActiveClass:"yith-plugin-fw-dimensions--linked-active"},dimensions:{number:".yith-plugin-fw-dimensions__dimension__number"}},init:function(){var i=t;e(document).on("click",i.selectors.units.single,i.unitChange),e(document).on("click",i.selectors.linked.button,i.linkedChange),e(document).on("change keyup",i.selectors.dimensions.number,i.numberChange)},unitChange:function(i){var n=e(this).closest(t.selectors.units.single),a=n.closest(t.selectors.units.wrapper),l=a.find(t.selectors.units.single),o=a.find(t.selectors.units.value).first(),s=n.data("value");l.removeClass(t.selectors.units.selectedClass),n.addClass(t.selectors.units.selectedClass),o.val(s)},linkedChange:function(){var i=e(this).closest(t.selectors.linked.button),n=i.closest(t.selectors.wrapper),a=i.find(t.selectors.linked.value);"yes"===a.val()?(n.removeClass(t.selectors.linked.wrapperActiveClass),a.val("no")):(n.addClass(t.selectors.linked.wrapperActiveClass),a.val("yes"),n.find(t.selectors.dimensions.number).first().trigger("change"))},numberChange:function(i){var n=e(this).closest(t.selectors.dimensions.number),a=n.closest(t.selectors.wrapper);a.hasClass(t.selectors.linked.wrapperActiveClass)&&a.find(t.selectors.dimensions.number).val(n.val())}};t.init()}(jQuery);
plugin-fw/assets/js/yith-gutenberg.js CHANGED
@@ -113,7 +113,8 @@
113
 
114
  $.each($props.attributes, function ($attribute_name, $attribute_args) {
115
  var ComponentControl = null,
116
- block_type = $attribute_args.blocktype;
 
117
  if (typeof block_type != 'undefined') {
118
  switch (block_type) {
119
  case 'select':
@@ -176,11 +177,11 @@
176
  min: $attribute_args.min,
177
  max: $attribute_args.max,
178
  multiple: $attribute_args.multiple,
179
- onChange: function (new_value, attribute_name = $attribute_name) {
180
- args = onChangeEvent(new_value, attribute_name, args, block_type);
181
  },
182
- onChangeComplete: function (new_value, attribute_name = $attribute_name) {
183
- args = onChangeEvent(new_value, attribute_name, args, block_type);
184
  },
185
  },
186
  )
113
 
114
  $.each($props.attributes, function ($attribute_name, $attribute_args) {
115
  var ComponentControl = null,
116
+ block_type = $attribute_args.blocktype,
117
+ name = $attribute_name;
118
  if (typeof block_type != 'undefined') {
119
  switch (block_type) {
120
  case 'select':
177
  min: $attribute_args.min,
178
  max: $attribute_args.max,
179
  multiple: $attribute_args.multiple,
180
+ onChange: function (new_value) {
181
+ args = onChangeEvent(new_value, name, args, block_type);
182
  },
183
+ onChangeComplete: function (new_value) {
184
+ args = onChangeEvent(new_value, name, args, block_type);
185
  },
186
  },
187
  )
plugin-fw/assets/js/yith-gutenberg.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){wp.i18n.__;var t=wp.element.createElement,o=wp.element.Fragment,n=(wp.components.PanelBody,wp.blocks.registerBlockType),c=(wp.editor.RichText,wp.editor.BlockControls,wp.editor.InspectorControls),r=(wp.editor.AlignmentToolbar,wp.components,wp.element.RawHTML),a=wp.components.SelectControl,i=wp.components.ToggleControl,s=wp.components.CheckboxControl,l=wp.components.RangeControl,p=wp.components.ColorPicker,u=wp.components.RadioControl,d=wp.components.TextControl,h=wp.components.TextareaControl;const C=t("svg",{width:22,height:22},t("path",{d:"M 18.24 7.628 C 17.291 8.284 16.076 8.971 14.587 9.688 C 15.344 7.186 15.765 4.851 15.849 2.684 C 15.912 0.939 15.133 0.045 13.514 0.003 C 11.558 -0.06 10.275 1.033 9.665 3.284 C 10.007 3.137 10.359 3.063 10.723 3.063 C 11.021 3.063 11.267 3.184 11.459 3.426 C 11.651 3.668 11.736 3.947 11.715 4.262 C 11.695 5.082 11.276 5.961 10.46 6.896 C 9.644 7.833 8.918 8.3 8.282 8.3 C 7.837 8.3 7.625 7.922 7.646 7.165 C 7.667 6.765 7.804 5.955 8.056 4.735 C 8.287 3.579 8.403 2.801 8.403 2.401 C 8.403 1.707 8.224 1.144 7.867 0.713 C 7.509 0.282 6.994 0.098 6.321 0.161 C 5.858 0.203 5.175 0.624 4.27 1.422 C 3.596 2.035 2.923 2.644 2.25 3.254 L 2.976 4.106 C 3.564 3.664 3.922 3.443 4.048 3.443 C 4.448 3.443 4.637 3.717 4.617 4.263 C 4.617 4.306 4.427 4.968 4.049 6.251 C 3.671 7.534 3.471 8.491 3.449 9.122 C 3.407 9.985 3.565 10.647 3.924 11.109 C 4.367 11.677 5.106 11.919 6.142 11.835 C 7.366 11.751 8.591 11.298 9.816 10.479 C 10.323 10.142 10.808 9.753 11.273 9.311 C 11.105 10.153 10.905 10.868 10.673 11.457 C 8.402 12.487 6.762 13.37 5.752 14.107 C 4.321 15.137 3.554 16.241 3.449 17.419 C 3.259 19.459 4.29 20.479 6.541 20.479 C 8.055 20.479 9.517 19.554 10.926 17.703 C 12.125 16.126 13.166 14.022 14.049 11.394 C 15.578 10.635 16.87 9.892 17.928 9.164 C 17.894 9.409 18.319 7.308 18.24 7.628 Z M 7.393 16.095 C 7.056 16.095 6.898 15.947 6.919 15.653 C 6.961 15.106 7.908 14.38 9.759 13.476 C 8.791 15.221 8.002 16.095 7.393 16.095 Z"}));function b(o,n,c){var a="",i="";if("undefined"!=typeof n.callback&&"function"==typeof e[n.callback])a=e[n.callback](o,n);else{var s="["+n.shortcode_name;e.each(o.attributes,function(e,t){if("undefined"!=typeof n.attributes&&"undefined"!=typeof n.attributes[e]){s+=" "+e+"=";var o=n.attributes[e].remove_quotes;s+=1==o?t:'"'+t+'"'}}),s+="]";var l=md5(s);i='<span class="yith_block_'+l+'">'+s+"</span>","edit"==c&&0!=n.do_shortcode&&function(t){var o=null;return e(document).trigger("yith_plugin_fw_gutenberg_before_do_shortcode",[s,t]),e.ajax({async:!0,url:yith_gutenberg_ajax.ajaxurl,method:"post",data:{action:"yith_plugin_fw_gutenberg_do_shortcode",shortcode:s},success:function(n){""!=(o=n)&&(e(".yith_block_"+t).html(o),e(document).trigger("yith_plugin_fw_gutenberg_success_do_shortcode",[s,t,o]))}}),e(document).trigger("yith_plugin_fw_gutenberg_after_do_shortcode",[s,t,o]),o}(l),a=t(r,null,i)}return a}function g(e,t,o,n){var c={};return"colorpicker"!=n&&"color"!=n||(e=e.hex),c[t]=e,o.setAttributes(c),o}e.each(yith_gutenberg,function(r,f){n("yith/"+r,{title:f.title,description:f.description,category:f.category,attributes:f.attributes,icon:"undefined"!=typeof f.icon?f.icon:C,keywords:f.keywords,edit:function(n){var r=new Array;return e.each(f.attributes,function(e,o){var c=null,C=o.blocktype;if(void 0!==C){switch(C){case"select":c=a;break;case"text":c=d;break;case"textarea":c=h;break;case"toggle":c=i;break;case"checkbox":c=s;break;case"number":case"range":c=l;break;case"color":case"colorpicker":c=p;break;case"radio":c=u}if(null!=c){var b=helpMessageUncheked="";"undefined"!=typeof o.helps&&"undefined"!=typeof o.helps.checked&&"undefined"!=typeof o.helps.unchecked?(b=o.helps.checked,helpMessageUncheked=o.helps.unchecked):"undefined"!=typeof o.help&&(b=helpMessageUncheked=o.help),r.push(t(c,{value:n.attributes[e],options:o.options,label:o.label,checked:n.attributes[e],selected:n.attributes[e],help:n.attributes[e]?b:helpMessageUncheked,disableAlpha:o.disableAlpha,min:o.min,max:o.max,multiple:o.multiple,onChange:function(t,o=e){n=g(t,o,n,C)},onChangeComplete:function(t,o=e){n=g(t,o,n,C)}}))}}}),sc=b(n,f,"edit"),[t(o,null,t(c,null,r),sc)]},save:function(e){return b(e,f,"save")}})})}(jQuery);
1
+ !function(e){wp.i18n.__;var t=wp.element.createElement,o=wp.element.Fragment,n=(wp.components.PanelBody,wp.blocks.registerBlockType),c=(wp.editor.RichText,wp.editor.BlockControls,wp.editor.InspectorControls),r=(wp.editor.AlignmentToolbar,wp.components,wp.element.RawHTML),a=wp.components.SelectControl,i=wp.components.ToggleControl,s=wp.components.CheckboxControl,l=wp.components.RangeControl,p=wp.components.ColorPicker,u=wp.components.RadioControl,d=wp.components.TextControl,h=wp.components.TextareaControl;const C=t("svg",{width:22,height:22},t("path",{d:"M 18.24 7.628 C 17.291 8.284 16.076 8.971 14.587 9.688 C 15.344 7.186 15.765 4.851 15.849 2.684 C 15.912 0.939 15.133 0.045 13.514 0.003 C 11.558 -0.06 10.275 1.033 9.665 3.284 C 10.007 3.137 10.359 3.063 10.723 3.063 C 11.021 3.063 11.267 3.184 11.459 3.426 C 11.651 3.668 11.736 3.947 11.715 4.262 C 11.695 5.082 11.276 5.961 10.46 6.896 C 9.644 7.833 8.918 8.3 8.282 8.3 C 7.837 8.3 7.625 7.922 7.646 7.165 C 7.667 6.765 7.804 5.955 8.056 4.735 C 8.287 3.579 8.403 2.801 8.403 2.401 C 8.403 1.707 8.224 1.144 7.867 0.713 C 7.509 0.282 6.994 0.098 6.321 0.161 C 5.858 0.203 5.175 0.624 4.27 1.422 C 3.596 2.035 2.923 2.644 2.25 3.254 L 2.976 4.106 C 3.564 3.664 3.922 3.443 4.048 3.443 C 4.448 3.443 4.637 3.717 4.617 4.263 C 4.617 4.306 4.427 4.968 4.049 6.251 C 3.671 7.534 3.471 8.491 3.449 9.122 C 3.407 9.985 3.565 10.647 3.924 11.109 C 4.367 11.677 5.106 11.919 6.142 11.835 C 7.366 11.751 8.591 11.298 9.816 10.479 C 10.323 10.142 10.808 9.753 11.273 9.311 C 11.105 10.153 10.905 10.868 10.673 11.457 C 8.402 12.487 6.762 13.37 5.752 14.107 C 4.321 15.137 3.554 16.241 3.449 17.419 C 3.259 19.459 4.29 20.479 6.541 20.479 C 8.055 20.479 9.517 19.554 10.926 17.703 C 12.125 16.126 13.166 14.022 14.049 11.394 C 15.578 10.635 16.87 9.892 17.928 9.164 C 17.894 9.409 18.319 7.308 18.24 7.628 Z M 7.393 16.095 C 7.056 16.095 6.898 15.947 6.919 15.653 C 6.961 15.106 7.908 14.38 9.759 13.476 C 8.791 15.221 8.002 16.095 7.393 16.095 Z"}));function b(o,n,c){var a="",i="";if("undefined"!=typeof n.callback&&"function"==typeof e[n.callback])a=e[n.callback](o,n);else{var s="["+n.shortcode_name;e.each(o.attributes,function(e,t){if("undefined"!=typeof n.attributes&&"undefined"!=typeof n.attributes[e]){s+=" "+e+"=";var o=n.attributes[e].remove_quotes;s+=1==o?t:'"'+t+'"'}}),s+="]";var l=md5(s);i='<span class="yith_block_'+l+'">'+s+"</span>","edit"==c&&0!=n.do_shortcode&&function(t){var o=null;return e(document).trigger("yith_plugin_fw_gutenberg_before_do_shortcode",[s,t]),e.ajax({async:!0,url:yith_gutenberg_ajax.ajaxurl,method:"post",data:{action:"yith_plugin_fw_gutenberg_do_shortcode",shortcode:s},success:function(n){""!=(o=n)&&(e(".yith_block_"+t).html(o),e(document).trigger("yith_plugin_fw_gutenberg_success_do_shortcode",[s,t,o]))}}),e(document).trigger("yith_plugin_fw_gutenberg_after_do_shortcode",[s,t,o]),o}(l),a=t(r,null,i)}return a}function g(e,t,o,n){var c={};return"colorpicker"!=n&&"color"!=n||(e=e.hex),c[t]=e,o.setAttributes(c),o}e.each(yith_gutenberg,function(r,f){n("yith/"+r,{title:f.title,description:f.description,category:f.category,attributes:f.attributes,icon:"undefined"!=typeof f.icon?f.icon:C,keywords:f.keywords,edit:function(n){var r=new Array;return e.each(f.attributes,function(e,o){var c=null,C=o.blocktype,b=e;if(void 0!==C){switch(C){case"select":c=a;break;case"text":c=d;break;case"textarea":c=h;break;case"toggle":c=i;break;case"checkbox":c=s;break;case"number":case"range":c=l;break;case"color":case"colorpicker":c=p;break;case"radio":c=u}if(null!=c){var f=helpMessageUncheked="";"undefined"!=typeof o.helps&&"undefined"!=typeof o.helps.checked&&"undefined"!=typeof o.helps.unchecked?(f=o.helps.checked,helpMessageUncheked=o.helps.unchecked):"undefined"!=typeof o.help&&(f=helpMessageUncheked=o.help),r.push(t(c,{value:n.attributes[e],options:o.options,label:o.label,checked:n.attributes[e],selected:n.attributes[e],help:n.attributes[e]?f:helpMessageUncheked,disableAlpha:o.disableAlpha,min:o.min,max:o.max,multiple:o.multiple,onChange:function(e){n=g(e,b,n,C)},onChangeComplete:function(e){n=g(e,b,n,C)}}))}}}),sc=b(n,f,"edit"),[t(o,null,t(c,null,r),sc)]},save:function(e){return b(e,f,"save")}})})}(jQuery);
plugin-fw/bin/clean-language-files.js DELETED
@@ -1,36 +0,0 @@
1
- /* jshint ignore: start */
2
-
3
- /**
4
- *
5
- *
6
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
7
- */
8
-
9
- const fs = require( 'fs' );
10
- const glob = require( 'glob' );
11
- const chalk = require( 'chalk' );
12
-
13
- const DELETED = chalk.reset.inverse.bold.green( ' DELETED ' );
14
- const ERROR = chalk.reset.inverse.bold.red( ' ERROR ' );
15
-
16
- console.log( chalk.green( '\nCleaning language files...' ) );
17
- glob( "languages/*.po~", function ( er, files ) {
18
-
19
- if ( files.length ) {
20
- console.log( `Processing ${files.length} files:` );
21
-
22
- files.forEach( ( file ) => {
23
- fs.unlink( file, ( err ) => {
24
- if ( err ) {
25
- console.log( chalk.bold( ` - ${file} ` ) + ERROR );
26
- console.error( err );
27
- return;
28
- }
29
- console.log( chalk.bold( ` - ${file} ` ) + DELETED );
30
- } );
31
- } );
32
- } else {
33
- console.log( `No file to clean.\n` );
34
- }
35
-
36
- } );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
plugin-fw/bin/download-translations-config.json DELETED
@@ -1,27 +0,0 @@
1
- {
2
- "projectPath": "https://translate.yithemes.com/gp/projects/yith-framework/",
3
- "textDomain": "yith-plugin-fw",
4
- "destFolder": "languages/",
5
- "languages": [
6
- {
7
- "id": "es",
8
- "name": "Spanish",
9
- "slug": "es_ES"
10
- },
11
- {
12
- "id": "it",
13
- "name": "Italian",
14
- "slug": "it_IT"
15
- },
16
- {
17
- "id": "nl",
18
- "name": "Dutch",
19
- "slug": "nl_NL"
20
- },
21
- {
22
- "id": "el",
23
- "name": "Greek",
24
- "slug": "el"
25
- }
26
- ]
27
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
plugin-fw/bin/download-translations.js DELETED
@@ -1,57 +0,0 @@
1
- /* jshint ignore: start */
2
-
3
- /**
4
- * This script download translations from https://translate.yithemes.com/
5
- *
6
- * @version 1.1.0
7
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
8
- */
9
-
10
- const fs = require( 'fs' );
11
- const path = require( 'path' );
12
- const axios = require( 'axios' );
13
- const chalk = require( 'chalk' );
14
- const options = require( './download-translations-config' );
15
-
16
- const SPACE = '\t';
17
- const DONE = chalk.reset.inverse.bold.green( ' DONE ' );
18
- const ERROR = chalk.reset.inverse.bold.red( ' ERROR ' );
19
-
20
- async function download( url, dest ) {
21
- const destPath = path.resolve( dest );
22
- const writer = fs.createWriteStream( destPath );
23
-
24
- const response = await axios( {
25
- url,
26
- method : 'GET',
27
- responseType: 'stream'
28
- } );
29
-
30
- response.data.pipe( writer );
31
-
32
- return new Promise( ( resolve, reject ) => {
33
- writer.on( 'finish', resolve );
34
- writer.on( 'error', reject );
35
- } )
36
- }
37
-
38
- const downloadLanguage = function ( language ) {
39
- const languageName = language.name || language.id;
40
- const source = options.projectPath + language.id + "/default/export-translations/";
41
- const fileName = options.textDomain + '-' + language.slug + '.po';
42
- const dest = options.destFolder + fileName;
43
- const message = ' - ' + chalk.bold( languageName ) + SPACE;
44
-
45
- download( source, dest ).then( () => {
46
- console.log( message + DONE );
47
- } ).catch( ( err ) => {
48
- console.log( message + ERROR );
49
- throw err;
50
- } );
51
- };
52
-
53
- console.log( chalk.green( '\nDownloading Transations from translate.yithemes.com...' ) );
54
-
55
- options.languages.forEach( ( language ) => {
56
- downloadLanguage( language );
57
- } );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
plugin-fw/includes/class-yit-ajax.php ADDED
@@ -0,0 +1,252 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * AJAX Class. AJAX Event Handler.
4
+ *
5
+ * @class YIT_Ajax
6
+ * @package YITH\PluginFramework\Classes
7
+ */
8
+
9
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
10
+
11
+ if ( ! class_exists( 'YIT_Ajax' ) ) {
12
+ /**
13
+ * YIT_Ajax class.
14
+ *
15
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
16
+ */
17
+ class YIT_Ajax {
18
+
19
+ /**
20
+ * The single instance of the class.
21
+ *
22
+ * @var YIT_Ajax
23
+ */
24
+ private static $instance;
25
+
26
+ /**
27
+ * Singleton implementation.
28
+ *
29
+ * @return YIT_Ajax
30
+ */
31
+ public static function instance() {
32
+ return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
33
+ }
34
+
35
+ /**
36
+ * YIT_Ajax constructor.
37
+ */
38
+ private function __construct() {
39
+ $ajax_actions = array(
40
+ 'json_search_posts',
41
+ 'json_search_products',
42
+ 'json_search_orders',
43
+ 'json_search_terms',
44
+ );
45
+
46
+ foreach ( $ajax_actions as $ajax_action ) {
47
+ add_action( 'wp_ajax_yith_plugin_fw_' . $ajax_action, array( $this, $ajax_action ) );
48
+ add_action( 'wp_ajax_nopriv_yith_plugin_fw_' . $ajax_action, array( $this, $ajax_action ) );
49
+ }
50
+ }
51
+
52
+ /**
53
+ * Post Search
54
+ *
55
+ * @param array $request The request.
56
+ */
57
+ public function json_search_posts( $request = array() ) {
58
+ ob_start();
59
+
60
+ // Make sure request is an array.
61
+ $request = is_array( $request ) ? $request : array();
62
+
63
+ if ( empty( $request ) ) {
64
+ check_ajax_referer( 'search-posts', 'security' );
65
+ }
66
+
67
+ $term = isset( $request['term'] ) ? $request['term'] : ( isset( $_REQUEST['term'] ) ? (string) sanitize_text_field( wp_unslash( $_REQUEST['term'] ) ) : '' );
68
+ if ( empty( $term ) ) {
69
+ die();
70
+ }
71
+
72
+ $found_posts = array();
73
+ $args = array(
74
+ 'post_type' => 'post',
75
+ 'post_status' => 'publish',
76
+ 'numberposts' => 20,
77
+ 'orderby' => 'title',
78
+ 'order' => 'asc',
79
+ 'suppress_filters' => 0,
80
+ 'include' => '',
81
+ 'exclude' => '',
82
+ );
83
+
84
+ foreach ( $args as $key => $default_value ) {
85
+ if ( ! empty( $_REQUEST[ $key ] ) ) {
86
+ $args[ $key ] = sanitize_text_field( wp_unslash( $_REQUEST[ $key ] ) );
87
+ }
88
+ }
89
+
90
+ if ( isset( $_REQUEST['post_parent'] ) ) {
91
+ $args['post_parent'] = intval( $_REQUEST['post_parent'] );
92
+ }
93
+
94
+ // Merge with passed request data.
95
+ $args = array_merge( $args, $request );
96
+ $show_id = ! empty( $_REQUEST['show_id'] );
97
+
98
+ $args['s'] = $term;
99
+ $args['fields'] = 'ids';
100
+
101
+ $posts = get_posts( $args );
102
+
103
+ if ( ! empty( $posts ) ) {
104
+ foreach ( $posts as $post_id ) {
105
+ if ( ! current_user_can( 'read_post', $post_id ) ) {
106
+ continue;
107
+ }
108
+ $title = get_the_title( $post_id ) . ( $show_id ? " (#{$post_id})" : '' );
109
+ $found_posts[ $post_id ] = apply_filters( 'yith_plugin_fw_json_search_found_post_title', rawurldecode( $title ), $post_id, $request );
110
+ }
111
+ }
112
+
113
+ $found_posts = apply_filters( 'yith_plugin_fw_json_search_found_posts', $found_posts, $request );
114
+ wp_send_json( $found_posts );
115
+ }
116
+
117
+ /**
118
+ * Product Search
119
+ */
120
+ public function json_search_products() {
121
+ check_ajax_referer( 'search-posts', 'security' );
122
+
123
+ $term = isset( $_REQUEST['term'] ) ? (string) wc_clean( wp_unslash( $_REQUEST['term'] ) ) : false;
124
+ if ( empty( $term ) ) {
125
+ die();
126
+ }
127
+
128
+ $request = array( 'post_type' => 'product' );
129
+ $request_include = isset( $_REQUEST['include'] ) && ! is_array( $_REQUEST['include'] ) ? explode( ',', sanitize_text_field( wp_unslash( $_REQUEST['include'] ) ) ) : array();
130
+
131
+ if ( ! empty( $_REQUEST['product_type'] ) ) {
132
+ $product_type = sanitize_text_field( wp_unslash( $_REQUEST['product_type'] ) );
133
+ $product_type_term = get_term_by( 'slug', $product_type, 'product_type' );
134
+
135
+ if ( $product_type_term ) {
136
+ $posts_in = array_unique( (array) get_objects_in_term( $product_type_term->term_id, 'product_type' ) );
137
+ if ( ! ! $request_include ) {
138
+ $posts_in = array_intersect( $posts_in, $request_include );
139
+ }
140
+
141
+ if ( ! ! $posts_in ) {
142
+ $request['include'] = implode( ',', $posts_in );
143
+ } else {
144
+ $request['include'] = '-1';
145
+ }
146
+ }
147
+ }
148
+
149
+ $request = apply_filters( 'yith_plugin_fw_json_search_products_request', $request );
150
+ $this->json_search_posts( $request );
151
+ }
152
+
153
+ /**
154
+ * Order Search
155
+ */
156
+ public function json_search_orders() {
157
+ global $wpdb;
158
+ ob_start();
159
+
160
+ check_ajax_referer( 'search-posts', 'security' );
161
+
162
+ $term = isset( $_REQUEST['term'] ) ? intval( $_REQUEST['term'] ) : false;
163
+
164
+ if ( empty( $term ) ) {
165
+ die();
166
+ }
167
+
168
+ $found_orders = array();
169
+ $term = apply_filters( 'yith_plugin_fw_json_search_order_number', $term );
170
+ $search = '%' . intval( $term ) . '%';
171
+
172
+ $query_orders = $wpdb->get_results(
173
+ $wpdb->prepare(
174
+ "SELECT ID, post_title FROM {$wpdb->posts} AS posts WHERE posts.post_type = 'shop_order' AND posts.ID LIKE %s",
175
+ $search
176
+ )
177
+ );
178
+
179
+ if ( $query_orders ) {
180
+ foreach ( $query_orders as $item ) {
181
+ $order_number = apply_filters( 'yith_plugin_fw_order_number', '#' . $item->ID, $item->ID );
182
+ $found_orders[ $item->ID ] = esc_html( $order_number ) . ' &ndash; ' . esc_html( $item->post_title );
183
+ }
184
+ }
185
+
186
+ wp_send_json( $found_orders );
187
+ }
188
+
189
+ /**
190
+ * Order Search
191
+ */
192
+ public function json_search_terms() {
193
+ ob_start();
194
+
195
+ check_ajax_referer( 'search-terms', 'security' );
196
+
197
+ $term = isset( $_REQUEST['term'] ) ? (string) sanitize_text_field( wp_unslash( $_REQUEST['term'] ) ) : false;
198
+
199
+ if ( empty( $term ) ) {
200
+ die();
201
+ }
202
+
203
+ $args = apply_filters(
204
+ 'yith_plugin_fw_json_search_terms_default_args',
205
+ array(
206
+ 'taxonomy' => 'category',
207
+ 'hide_empty' => false,
208
+ 'order' => 'ASC',
209
+ 'orderby' => 'name',
210
+ 'include' => '',
211
+ 'exclude' => '',
212
+ 'exclude_tree' => '',
213
+ 'number' => '',
214
+ 'hierarchical' => true,
215
+ 'child_of' => 0,
216
+ 'parent' => '',
217
+ 'term_field' => 'id',
218
+ )
219
+ );
220
+
221
+ foreach ( $args as $key => $default_value ) {
222
+ if ( ! empty( $_REQUEST[ $key ] ) ) {
223
+ $args[ $key ] = sanitize_text_field( wp_unslash( $_REQUEST[ $key ] ) );
224
+ }
225
+ }
226
+
227
+ $args = apply_filters( 'yith_plugin_fw_json_search_terms_args', $args );
228
+
229
+ $args['name__like'] = $term;
230
+ $args['fields'] = 'id=>name';
231
+
232
+ if ( ! taxonomy_exists( $args['taxonomy'] ) ) {
233
+ die();
234
+ }
235
+
236
+ $terms = yith_get_terms( $args );
237
+
238
+ if ( 'id' !== $args['term_field'] ) {
239
+ $temp_terms = $terms;
240
+ $terms = array();
241
+ foreach ( $temp_terms as $term_id => $term_name ) {
242
+ $current_term_field = get_term_field( $args['term_field'], $term_id, $args['taxonomy'] );
243
+ $terms[ $current_term_field ] = $term_name;
244
+ }
245
+ }
246
+
247
+ wp_send_json( $terms );
248
+ }
249
+ }
250
+ }
251
+
252
+ YIT_Ajax::instance();
plugin-fw/includes/class-yit-assets.php ADDED
@@ -0,0 +1,132 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Assets Class. Assets Handler.
4
+ *
5
+ * @class YIT_Assets
6
+ * @package YITH\PluginFramework\Classes
7
+ * @since 3.0.0
8
+ */
9
+
10
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
11
+
12
+ if ( ! class_exists( 'YIT_Assets' ) ) {
13
+ /**
14
+ * YIT_Assets class.
15
+ *
16
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
17
+ */
18
+ class YIT_Assets {
19
+ /**
20
+ * The framework version
21
+ *
22
+ * @var string
23
+ */
24
+ public $version = '1.0.0';
25
+
26
+ /**
27
+ * The single instance of the class.
28
+ *
29
+ * @var YIT_Assets
30
+ */
31
+ private static $instance;
32
+
33
+ /**
34
+ * Singleton implementation.
35
+ *
36
+ * @return YIT_Assets
37
+ */
38
+ public static function instance() {
39
+ return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
40
+ }
41
+
42
+ /**
43
+ * YIT_Assets constructor.
44
+ */
45
+ private function __construct() {
46
+ $this->version = yith_plugin_fw_get_version();
47
+ add_action( 'admin_enqueue_scripts', array( $this, 'register_styles_and_scripts' ) );
48
+ }
49
+
50
+ /**
51
+ * Register styles and scripts
52
+ */
53
+ public function register_styles_and_scripts() {
54
+ global $wp_scripts, $woocommerce, $wp_version;
55
+
56
+ $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
57
+
58
+ // Register scripts.
59
+ wp_register_script( 'yith-colorpicker', YIT_CORE_PLUGIN_URL . '/assets/js/yith-colorpicker.min.js', array( 'jquery', 'wp-color-picker' ), '3.0.0', true );
60
+ wp_register_script( 'yith-plugin-fw-fields', YIT_CORE_PLUGIN_URL . '/assets/js/yith-fields' . $suffix . '.js', array( 'jquery', 'jquery-ui-datepicker', 'yith-colorpicker', 'jquery-ui-slider', 'jquery-ui-sortable' ), $this->version, true );
61
+ wp_register_script( 'yith-date-format', YIT_CORE_PLUGIN_URL . '/assets/js/yith-date-format' . $suffix . '.js', array( 'jquery', 'jquery-ui-datepicker' ), $this->version, true );
62
+
63
+ wp_register_script( 'yit-metabox', YIT_CORE_PLUGIN_URL . '/assets/js/metabox' . $suffix . '.js', array( 'jquery', 'wp-color-picker', 'yith-plugin-fw-fields' ), $this->version, true );
64
+ wp_register_script( 'yit-plugin-panel', YIT_CORE_PLUGIN_URL . '/assets/js/yit-plugin-panel' . $suffix . '.js', array( 'jquery', 'wp-color-picker', 'jquery-ui-sortable', 'yith-plugin-fw-fields' ), $this->version, true );
65
+ wp_register_script( 'colorbox', YIT_CORE_PLUGIN_URL . '/assets/js/jquery.colorbox' . $suffix . '.js', array( 'jquery' ), '1.6.3', true );
66
+ wp_register_script( 'yith_how_to', YIT_CORE_PLUGIN_URL . '/assets/js/how-to' . $suffix . '.js', array( 'jquery' ), $this->version, true );
67
+ wp_register_script( 'yith-plugin-fw-wp-pages', YIT_CORE_PLUGIN_URL . '/assets/js/wp-pages' . $suffix . '.js', array( 'jquery' ), $this->version, false );
68
+
69
+ // Register styles.
70
+ wp_register_style( 'yit-plugin-style', YIT_CORE_PLUGIN_URL . '/assets/css/yit-plugin-panel.css', array(), $this->version );
71
+ wp_register_style( 'jquery-ui-style', YIT_CORE_PLUGIN_URL . '/assets/css/jquery-ui/jquery-ui.min.css', array(), '1.11.4' );
72
+ wp_register_style( 'colorbox', YIT_CORE_PLUGIN_URL . '/assets/css/colorbox.css', array(), $this->version );
73
+ wp_register_style( 'yit-upgrade-to-pro', YIT_CORE_PLUGIN_URL . '/assets/css/yit-upgrade-to-pro.css', array( 'colorbox' ), $this->version );
74
+ wp_register_style( 'yit-plugin-metaboxes', YIT_CORE_PLUGIN_URL . '/assets/css/metaboxes.css', array(), $this->version );
75
+ wp_register_style( 'yith-plugin-fw-fields', YIT_CORE_PLUGIN_URL . '/assets/css/yith-fields.css', false, $this->version );
76
+
77
+ wp_register_style( 'raleway-font', '//fonts.googleapis.com/css?family=Raleway:100,200,300,400,500,600,700,800,900', array(), $this->version );
78
+
79
+ $wc_version_suffix = '';
80
+ if ( function_exists( 'WC' ) || ! empty( $woocommerce ) ) {
81
+ $woocommerce_version = function_exists( 'WC' ) ? WC()->version : $woocommerce->version;
82
+ $wc_version_suffix = version_compare( $woocommerce_version, '3.0.0', '>=' ) ? '' : '-wc-2.6';
83
+
84
+ wp_register_style( 'woocommerce_admin_styles', $woocommerce->plugin_url() . '/assets/css/admin.css', array(), $woocommerce_version );
85
+ } else {
86
+ wp_register_script( 'select2', YIT_CORE_PLUGIN_URL . '/assets/js/select2/select2.min.js', array( 'jquery' ), '4.0.3', true );
87
+ wp_register_style( 'yith-select2-no-wc', YIT_CORE_PLUGIN_URL . '/assets/css/yith-select2-no-wc.css', false, $this->version );
88
+ }
89
+
90
+ wp_register_script( 'yith-enhanced-select', YIT_CORE_PLUGIN_URL . '/assets/js/yith-enhanced-select' . $wc_version_suffix . $suffix . '.js', array( 'jquery', 'select2' ), $this->version, true );
91
+ wp_localize_script(
92
+ 'yith-enhanced-select',
93
+ 'yith_framework_enhanced_select_params',
94
+ array(
95
+ 'ajax_url' => admin_url( 'admin-ajax.php' ),
96
+ 'search_posts_nonce' => wp_create_nonce( 'search-posts' ),
97
+ 'search_terms_nonce' => wp_create_nonce( 'search-terms' ),
98
+ 'search_customers_nonce' => wp_create_nonce( 'search-customers' ),
99
+ )
100
+ );
101
+
102
+ wp_localize_script(
103
+ 'yith-plugin-fw-fields',
104
+ 'yith_framework_fw_fields',
105
+ array(
106
+ 'admin_url' => admin_url( 'admin.php' ),
107
+ 'ajax_url' => admin_url( 'admin-ajax.php' ),
108
+ )
109
+ );
110
+
111
+ // Localize color-picker to avoid issues with WordPress 5.5.
112
+ if ( version_compare( $wp_version, '5.5-RC', '>=' ) ) {
113
+ wp_localize_script(
114
+ 'yith-colorpicker',
115
+ 'wpColorPickerL10n',
116
+ array(
117
+ 'clear' => __( 'Clear' ),
118
+ 'clearAriaLabel' => __( 'Clear color' ),
119
+ 'defaultString' => __( 'Default' ),
120
+ 'defaultAriaLabel' => __( 'Select default color' ),
121
+ 'pick' => __( 'Select Color' ),
122
+ 'defaultLabel' => __( 'Color value' ),
123
+ )
124
+ );
125
+ }
126
+
127
+ wp_enqueue_style( 'yith-plugin-fw-admin', YIT_CORE_PLUGIN_URL . '/assets/css/admin.css', array(), $this->version );
128
+ }
129
+ }
130
+ }
131
+
132
+ YIT_Assets::instance();
plugin-fw/includes/class-yit-cpt-unlimited.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Custom-Post-Type Unlimited Class.
4
+ * Deprecated! Kept only to prevent fatal errors if someone is using it.
5
+ *
6
+ * @class YIT_CPT_Unlimited
7
+ * @package YITH\PluginFramework\Classes
8
+ * @deprecated 3.5 | This will be removed, so please don't use it
9
+ */
10
+
11
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
12
+
13
+ if ( ! class_exists( 'YIT_CPT_Unlimited' ) ) {
14
+
15
+ /**
16
+ * Class YIT_CPT_Unlimited
17
+ *
18
+ * @deprecated 3.5 | This will be removed, so please don't use it
19
+ */
20
+ class YIT_CPT_Unlimited {
21
+
22
+ /**
23
+ * YIT_CPT_Unlimited constructor.
24
+ *
25
+ * @param array $args Configuration arguments of post type.
26
+ */
27
+ public function __construct( $args = array() ) {
28
+
29
+ }
30
+
31
+ /**
32
+ * Avoid issues when calling a non-defined method
33
+ *
34
+ * @param string $name Name of the missing method.
35
+ * @param array $arguments Arguments.
36
+ *
37
+ * @return bool
38
+ */
39
+ public function __call( $name, $arguments ) {
40
+ return false;
41
+ }
42
+
43
+ /**
44
+ * Avoid issues when calling a non-defined attribute
45
+ *
46
+ * @param string $key Name of the missing attribute.
47
+ *
48
+ * @return bool
49
+ */
50
+ public function __get( $key ) {
51
+ return false;
52
+ }
53
+ }
54
+ }
plugin-fw/includes/class-yit-gradients.php ADDED
@@ -0,0 +1,505 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Plugin Gradients Class.
4
+ *
5
+ * @class YIT_Gradients
6
+ * @package YITH\PluginFramework\Classes
7
+ */
8
+
9
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
10
+
11
+ if ( ! class_exists( 'YIT_Gradients' ) ) {
12
+
13
+ /**
14
+ * YIT_Gradients class.
15
+ *
16
+ * @deprecated 3.5
17
+ */
18
+ class YIT_Gradients {
19
+ /**
20
+ * An array of colors to use for a gradient.
21
+ *
22
+ * @var array
23
+ */
24
+ public $colors_gradient = array();
25
+
26
+ /**
27
+ * Set property
28
+ *
29
+ * @param string $key The key.
30
+ * @param mixed $value The value.
31
+ *
32
+ * @internal param array $colors_gradient
33
+ */
34
+ public function set( $key, $value ) {
35
+ if ( property_exists( $this, $key ) ) {
36
+ $this->{$key} = $value;
37
+ }
38
+ }
39
+
40
+ /**
41
+ * Get property
42
+ *
43
+ * @param string $key The key.
44
+ *
45
+ * @return mixed
46
+ */
47
+ public function get( $key ) {
48
+ if ( property_exists( $this, $key ) ) {
49
+ return $this->{$key};
50
+ }
51
+
52
+ return false;
53
+ }
54
+
55
+ /**
56
+ * Add a color to use in a gradient.
57
+ *
58
+ * @param string $color The color.
59
+ * @param int $position The position.
60
+ */
61
+ public function add_color_gradient( $color, $position ) {
62
+ $the_color['color'] = $color;
63
+ $the_color['position'] = $position;
64
+
65
+ array_push( $this->colors_gradient, $the_color );
66
+ }
67
+
68
+ /**
69
+ * Generate the CSS code for a gradient.
70
+ *
71
+ * @param string $role The role.
72
+ * @param string $direction The direction.
73
+ *
74
+ * @return string|bool
75
+ */
76
+ public function gradient( $role, $direction ) {
77
+ if ( ! empty( $this->colors_gradient ) ) {
78
+
79
+ $css = array(
80
+ 'old' => $this->make_old_gradient( $this->colors_gradient[0]['color'] ), // Old browsers support.
81
+ 'ff3' => $this->make_modern_gradient( $this->colors_gradient, $direction, 'moz' ), // Firefox 3.6+ support.
82
+ 'chr_saf4' => $this->make_chr_saf4_gradient( $this->colors_gradient, $direction ), // Chrome and safari4+ support.
83
+ 'chr10_saf5' => $this->make_modern_gradient( $this->colors_gradient, $direction, 'webkit' ), // Chrome10+ and safari5+ support.
84
+ 'opera' => $this->make_modern_gradient( $this->colors_gradient, $direction, 'o' ), // Opera11.10+ support.
85
+ 'ie10' => $this->make_modern_gradient( $this->colors_gradient, $direction, 'ms' ), // Internet explorer 10+ support.
86
+ 'w3c' => $this->make_modern_gradient( $this->colors_gradient, $direction, 'w3c' ), // W3c support.
87
+ 'ie6_9' => $this->make_ie6_gradient( $this->colors_gradient, $direction ), // Ie6-9 support.
88
+ );
89
+
90
+ $css = $role . '{' . implode( ';', $css ) . '}';
91
+
92
+ $this->colors_gradient = array();
93
+
94
+ return $css;
95
+ }
96
+
97
+ return '';
98
+ }
99
+
100
+ /**
101
+ * Reverse a gradient. This method should be used only before calling ::make_gradient(). Otherwise it will not works.
102
+ */
103
+ public function reverse_gradient() {
104
+ $colors_gradient = array_reverse( $this->get( 'colors_gradient' ) );
105
+ $colors_gradient_count = count( $colors_gradient );
106
+ for ( $i = 0; $i < $colors_gradient_count; $i ++ ) {
107
+ $colors_gradient[ $i ]['position'] = 100 - $colors_gradient[ $i ]['position'];
108
+ }
109
+
110
+ $this->set( 'colors_gradient', $colors_gradient );
111
+ }
112
+
113
+ /**
114
+ * Generate the CSS code for a gradient.
115
+ *
116
+ * @param string $role The role.
117
+ * @param string $direction The direction.
118
+ *
119
+ * @return string|bool
120
+ */
121
+ public function get_gradient( $role, $direction ) {
122
+ return $this->gradient( $role, $direction );
123
+ }
124
+
125
+ /**
126
+ * Generate the CSS code for a gradient.
127
+ *
128
+ * @param string $role The role.
129
+ * @param string $direction The direction.
130
+ */
131
+ public function the_gradient( $role, $direction ) {
132
+ echo esc_html( $this->get_gradient( $role, $direction ) );
133
+ }
134
+
135
+ /**
136
+ * Generate the CSS code for a gradient.
137
+ *
138
+ * @param string $role The role.
139
+ * @param string $from From color.
140
+ * @param string $to To color.
141
+ * @param string $direction The direction.
142
+ *
143
+ * @return string|bool
144
+ */
145
+ public function gradient_from_to( $role, $from, $to, $direction ) {
146
+
147
+ $colors = array(
148
+ array(
149
+ 'color' => $from,
150
+ 'position' => 0,
151
+ ),
152
+ array(
153
+ 'color' => $to,
154
+ 'position' => 100,
155
+ ),
156
+ );
157
+
158
+ $this->set( 'colors_gradient', $colors );
159
+
160
+ return $this->get_gradient( $role, $direction );
161
+ }
162
+
163
+ /**
164
+ * Generate the CSS code for a gradient.
165
+ *
166
+ * @param string $role The role.
167
+ * @param string $color The color.
168
+ * @param string $direction The direction.
169
+ * @param int|string $factor The factor.
170
+ *
171
+ * @return string|bool
172
+ */
173
+ public function gradient_darker( $role, $color, $direction, $factor = 30 ) {
174
+
175
+ $colors = array(
176
+ array(
177
+ 'color' => $color,
178
+ 'position' => 0,
179
+ ),
180
+ array(
181
+ 'color' => $this->hex_darker( $color, $factor ),
182
+ 'position' => 100,
183
+ ),
184
+ );
185
+
186
+ $this->set( 'colors_gradient', $colors );
187
+
188
+ return $this->get_gradient( $role, $direction );
189
+ }
190
+
191
+ /**
192
+ * Generate the CSS code for a gradient.
193
+ *
194
+ * @param string $role The role.
195
+ * @param string $color The color.
196
+ * @param string $direction The direction.
197
+ * @param int|string $factor The factor.
198
+ *
199
+ * @return string|bool
200
+ * @since 1.0
201
+ */
202
+ public function gradient_lighter( $role, $color, $direction, $factor = 30 ) {
203
+
204
+ $colors = array(
205
+ array(
206
+ 'color' => $color,
207
+ 'position' => 0,
208
+ ),
209
+ array(
210
+ 'color' => $this->hex_lighter( $color, $factor ),
211
+ 'position' => 100,
212
+ ),
213
+ );
214
+
215
+ $this->set( 'colors_gradient', $colors );
216
+
217
+ return $this->get_gradient( $role, $direction );
218
+ }
219
+
220
+ /**
221
+ * Generate the CSS code for a gradient that not supports gradients (add only a background color).
222
+ *
223
+ * @param string $color The color.
224
+ *
225
+ * @return string|bool
226
+ */
227
+ private function make_old_gradient( $color ) {
228
+ return 'background:' . $color;
229
+ }
230
+
231
+ /**
232
+ * Generate the CSS code for a gradient in IE6-9.
233
+ *
234
+ * @param array $colors The colors.
235
+ * @param string $direction The direction.
236
+ *
237
+ * @return string|bool
238
+ */
239
+ private function make_ie6_gradient( $colors, $direction ) {
240
+ $start = $colors[0]['color'];
241
+ $end = $colors[ count( $colors ) - 1 ]['color'];
242
+ $type = 'horizontal' === $direction ? 1 : 0;
243
+ $params = implode(
244
+ ',',
245
+ array(
246
+ "startColorstr='{$start}'",
247
+ "endColorstr='{$end}'",
248
+ "GradientType={$type}",
249
+ )
250
+ );
251
+
252
+ return "filter:progid:DXImageTransform.Microsoft.gradient({$params})";
253
+ }
254
+
255
+ /**
256
+ * Make the CSS 3 for a gradient in modern browsers( FF3.6+, Chrome, Safari5+, Opera11.10+, IE10+ )
257
+ *
258
+ * @param array $colors The colors.
259
+ * @param string $direction The direction.
260
+ * @param string $browser The browser.
261
+ *
262
+ * @return string
263
+ */
264
+ private function make_modern_gradient( $colors, $direction, $browser ) {
265
+ $css = 'background:';
266
+
267
+ // Add the browser suffix.
268
+ if ( 'w3c' !== $browser ) {
269
+ $browser = '-' . $browser . '-';
270
+ } else {
271
+ $browser = '';
272
+ }
273
+
274
+ switch ( $direction ) {
275
+ case 'vertical':
276
+ $css .= $browser . 'linear-gradient(top,';
277
+ break;
278
+ case 'horizontal':
279
+ $css .= $browser . 'linear-gradient(left,';
280
+ break;
281
+ case 'diagonal-bottom':
282
+ $css .= $browser . 'linear-gradient(-45deg,';
283
+ break;
284
+ case 'diagonal-top':
285
+ $css .= $browser . 'linear-gradient(45deg,';
286
+ break;
287
+ case 'radial':
288
+ $css .= $browser . 'radial-gradient(center, ellipse cover,';
289
+ break;
290
+ }
291
+
292
+ foreach ( $colors as $stop ) {
293
+ $css .= $stop['color'] . ' ' . $stop['position'] . '%, ';
294
+ }
295
+
296
+ $css = rtrim( $css );
297
+ $css = rtrim( $css, ',' );
298
+
299
+ $css .= ')';
300
+
301
+ return $css;
302
+ }
303
+
304
+ /**
305
+ * Make the CSS 3 for a gradient in Chrome and Safari 4+
306
+ *
307
+ * @param array $colors The colors.
308
+ * @param string $direction The direction.
309
+ *
310
+ * @return string
311
+ */
312
+ private function make_chr_saf4_gradient( $colors, $direction ) {
313
+ $css = 'background:';
314
+
315
+ switch ( $direction ) {
316
+ case 'vertical':
317
+ $css .= '-webkit-gradient(linear,left top,left bottom,';
318
+ break;
319
+ case 'horizontal':
320
+ $css .= '-webkit-gradient(linear,left top,right top,';
321
+ break;
322
+ case 'diagonal-bottom':
323
+ $css .= '-webkit-gradient(linear,left top,right bottom,';
324
+ break;
325
+ case 'diagonal-top':
326
+ $css .= '-webkit-gradient(linear,left bottom,right top,';
327
+ break;
328
+ case 'radial':
329
+ $css .= '-webkit-gradient(radial,center center, 0px, center center, 100%,';
330
+ break;
331
+ }
332
+
333
+ foreach ( $colors as $stop ) {
334
+ $css .= 'color-stop(' . $stop['position'] . '%, ' . $stop['color'] . '), ';
335
+ }
336
+
337
+ $css = rtrim( $css );
338
+ $css = rtrim( $css, ',' );
339
+
340
+ $css .= ')';
341
+
342
+ return $css;
343
+ }
344
+
345
+ /**
346
+ * Return an instance of the model called
347
+ *
348
+ * @param string $class The name of class that I want the instance.
349
+ *
350
+ * @return mixed
351
+ * @deprecated 3.5 | use YIT_Gradients::get_model instead
352
+ */
353
+ public function getModel( $class ) {
354
+ return $this->get_model( $class );
355
+ }
356
+
357
+
358
+ /**
359
+ * Return an instance of the model called
360
+ *
361
+ * @param string $class The name of class that I want the instance.
362
+ *
363
+ * @return mixed
364
+ * @since 3.5
365
+ */
366
+ public function get_model( $class ) {
367
+ return class_exists( 'YIT_Registry' ) ? YIT_Registry::get_instance()->$class : false;
368
+ }
369
+
370
+
371
+ /**
372
+ * Return a color darker then $color.
373
+ *
374
+ * @param string $color The color.
375
+ * @param int $factor The factor.
376
+ *
377
+ * @return string
378
+ */
379
+ public function hex_darker( $color, $factor = 30 ) {
380
+ $color = str_replace( '#', '', $color );
381
+
382
+ $base['R'] = hexdec( substr( $color, 0, 2 ) );
383
+ $base['G'] = hexdec( substr( $color, 2, 2 ) );
384
+ $base['B'] = hexdec( substr( $color, 4, 2 ) );
385
+
386
+ $color = '#';
387
+
388
+ foreach ( $base as $k => $v ) {
389
+ $amount = $v / 100;
390
+ $amount = round( $amount * $factor );
391
+ $new_decimal = $v - $amount;
392
+
393
+ $new_hex_component = dechex( $new_decimal );
394
+
395
+ if ( strlen( $new_hex_component ) < 2 ) {
396
+ $new_hex_component = '0' . $new_hex_component;
397
+ }
398
+
399
+ $color .= $new_hex_component;
400
+ }
401
+
402
+ return $color;
403
+ }
404
+
405
+ /**
406
+ * Return a color lighter then $color.
407
+ *
408
+ * @param string $color The color.
409
+ * @param int $factor The factor.
410
+ *
411
+ * @return string
412
+ */
413
+ public function hex_lighter( $color, $factor = 30 ) {
414
+ $color = str_replace( '#', '', $color );
415
+
416
+ $base['R'] = hexdec( $color[0] . $color[1] );
417
+ $base['G'] = hexdec( $color[2] . $color[3] );
418
+ $base['B'] = hexdec( $color[4] . $color[5] );
419
+
420
+ $color = '#';
421
+
422
+ foreach ( $base as $k => $v ) {
423
+ $amount = 255 - $v;
424
+ $amount = $amount / 100;
425
+ $amount = round( $amount * $factor );
426
+ $new_decimal = $v + $amount;
427
+
428
+ $new_hex_component = dechex( $new_decimal );
429
+
430
+ if ( strlen( $new_hex_component ) < 2 ) {
431
+ $new_hex_component = '0' . $new_hex_component;
432
+ }
433
+
434
+ $color .= $new_hex_component;
435
+ }
436
+
437
+ return $color;
438
+ }
439
+
440
+ /**
441
+ * Detect if we must use a color darker or lighter then the background.
442
+ *
443
+ * @param string $color The color.
444
+ * @param string $dark The dark color.
445
+ * @param string $light The light color.
446
+ *
447
+ * @return string
448
+ * @since 1.0
449
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
450
+ */
451
+ public function light_or_dark( $color, $dark = '#000000', $light = '#FFFFFF' ) {
452
+ $hex = str_replace( '#', '', $color );
453
+
454
+ $c_r = hexdec( substr( $hex, 0, 2 ) );
455
+ $c_g = hexdec( substr( $hex, 2, 2 ) );
456
+ $c_b = hexdec( substr( $hex, 4, 2 ) );
457
+ $brightness = ( ( $c_r * 299 ) + ( $c_g * 587 ) + ( $c_b * 114 ) ) / 1000;
458
+
459
+ return ( $brightness > 155 ) ? $dark : $light;
460
+ }
461
+
462
+ /**
463
+ * Detect if we must use a color darker or lighter then the background.
464
+ *
465
+ * @param string $hex the Color.
466
+ *
467
+ * @return array Array with the rgb values.
468
+ */
469
+ public function hex2rgb( $hex ) {
470
+ $hex = str_replace( '#', '', $hex );
471
+
472
+ if ( 3 === strlen( $hex ) ) {
473
+ $r = hexdec( substr( $hex, 0, 1 ) . substr( $hex, 0, 1 ) );
474
+ $g = hexdec( substr( $hex, 1, 1 ) . substr( $hex, 1, 1 ) );
475
+ $b = hexdec( substr( $hex, 2, 1 ) . substr( $hex, 2, 1 ) );
476
+ } else {
477
+ $r = hexdec( substr( $hex, 0, 2 ) );
478
+ $g = hexdec( substr( $hex, 2, 2 ) );
479
+ $b = hexdec( substr( $hex, 4, 2 ) );
480
+ }
481
+ $rgb = array( $r, $g, $b );
482
+
483
+ return $rgb;
484
+ }
485
+
486
+ /**
487
+ * Magic getter method
488
+ *
489
+ * @param string $prop The property.
490
+ *
491
+ * @return mixed
492
+ */
493
+ public function __get( $prop ) {
494
+ $value = null;
495
+ if ( 'request' === $prop ) {
496
+ if ( class_exists( 'YIT_Request' ) && ( ! isset( $this->request ) || ! $this->request instanceof YIT_Request ) ) {
497
+ $value = YIT_Registry::get_instance()->request;
498
+ $this->request = $value;
499
+ }
500
+ }
501
+
502
+ return $value;
503
+ }
504
+ }
505
+ }
plugin-fw/includes/class-yit-icons.php ADDED
@@ -0,0 +1,1180 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Icons Class.
4
+ *
5
+ * @class YIT_Icons
6
+ * @package YITH\PluginFramework\Classes
7
+ */
8
+
9
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
10
+
11
+ if ( ! class_exists( 'YIT_Icons' ) ) {
12
+ /**
13
+ * YIT_Icons class.
14
+ *
15
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
16
+ */
17
+ class YIT_Icons {
18
+
19
+ /**
20
+ * The single instance of the class.
21
+ *
22
+ * @var YIT_Icons
23
+ */
24
+ private static $instance;
25
+
26
+ /**
27
+ * Array of data
28
+ *
29
+ * @var array
30
+ */
31
+ private $data
32
+ = array(
33
+ 'font_awesome_version' => '4.6.3',
34
+ 'icons' => array(
35
+ 'FontAwesome' => array(
36
+ '\f000' => 'glass',
37
+ '\f001' => 'music',
38
+ '\f002' => 'search',
39
+ '\f003' => 'envelope-o',
40
+ '\f004' => 'heart',
41
+ '\f005' => 'star',
42
+ '\f006' => 'star-o',
43
+ '\f007' => 'user',
44
+ '\f008' => 'film',
45
+ '\f009' => 'th-large',
46
+ '\f00a' => 'th',
47
+ '\f00b' => 'th-list',
48
+ '\f00c' => 'check',
49
+ '\f00d' => 'times',
50
+ '\f00e' => 'search-plus',
51
+ '\f010' => 'search-minus',
52
+ '\f011' => 'power-off',
53
+ '\f012' => 'signal',
54
+ '\f013' => 'cog',
55
+ '\f014' => 'trash-o',
56
+ '\f015' => 'home',
57
+ '\f016' => 'file-o',
58
+ '\f017' => 'clock-o',
59
+ '\f018' => 'road',
60
+ '\f019' => 'download',
61
+ '\f01a' => 'arrow-circle-o-down',
62
+ '\f01b' => 'arrow-circle-o-up',
63
+ '\f01c' => 'inbox',
64
+ '\f01d' => 'play-circle-o',
65
+ '\f01e' => 'repeat',
66
+ '\f021' => 'refresh',
67
+ '\f022' => 'list-alt',
68
+ '\f023' => 'lock',
69
+ '\f024' => 'flag',
70
+ '\f025' => 'headphones',
71
+ '\f026' => 'volume-off',
72
+ '\f027' => 'volume-down',
73
+ '\f028' => 'volume-up',
74
+ '\f029' => 'qrcode',
75
+ '\f02a' => 'barcode',
76
+ '\f02b' => 'tag',
77
+ '\f02c' => 'tags',
78
+ '\f02d' => 'book',
79
+ '\f02e' => 'bookmark',
80
+ '\f02f' => 'print',
81
+ '\f030' => 'camera',
82
+ '\f031' => 'font',
83
+ '\f032' => 'bold',
84
+ '\f033' => 'italic',
85
+ '\f034' => 'text-height',
86
+ '\f035' => 'text-width',
87
+ '\f036' => 'align-left',
88
+ '\f037' => 'align-center',
89
+ '\f038' => 'align-right',
90
+ '\f039' => 'align-justify',
91
+ '\f03a' => 'list',
92
+ '\f03b' => 'outdent',
93
+ '\f03c' => 'indent',
94
+ '\f03d' => 'video-camera',
95
+ '\f03e' => 'picture-o',
96
+ '\f040' => 'pencil',
97
+ '\f041' => 'map-marker',
98
+ '\f042' => 'adjust',
99
+ '\f043' => 'tint',
100
+ '\f044' => 'pencil-square-o',
101
+ '\f045' => 'share-square-o',
102
+ '\f046' => 'check-square-o',
103
+ '\f047' => 'arrows',
104
+ '\f048' => 'step-backward',
105
+ '\f049' => 'fast-backward',
106
+ '\f04a' => 'backward',
107
+ '\f04b' => 'play',
108
+ '\f04c' => 'pause',
109
+ '\f04d' => 'stop',
110
+ '\f04e' => 'forward',
111
+ '\f050' => 'fast-forward',
112
+ '\f051' => 'step-forward',
113
+ '\f052' => 'eject',
114
+ '\f053' => 'chevron-left',
115
+ '\f054' => 'chevron-right',
116
+ '\f055' => 'plus-circle',
117
+ '\f056' => 'minus-circle',
118
+ '\f057' => 'times-circle',
119
+ '\f058' => 'check-circle',
120
+ '\f059' => 'question-circle',
121
+ '\f05a' => 'info-circle',
122
+ '\f05b' => 'crosshairs',
123
+ '\f05c' => 'times-circle-o',
124
+ '\f05d' => 'check-circle-o',
125
+ '\f05e' => 'ban',
126
+ '\f060' => 'arrow-left',
127
+ '\f061' => 'arrow-right',
128
+ '\f062' => 'arrow-up',
129
+ '\f063' => 'arrow-down',
130
+ '\f064' => 'share',
131
+ '\f065' => 'expand',
132
+ '\f066' => 'compress',
133
+ '\f067' => 'plus',
134
+ '\f068' => 'minus',
135
+ '\f069' => 'asterisk',
136
+ '\f06a' => 'exclamation-circle',
137
+ '\f06b' => 'gift',
138
+ '\f06c' => 'leaf',
139
+ '\f06d' => 'fire',
140
+ '\f06e' => 'eye',
141
+ '\f070' => 'eye-slash',
142
+ '\f071' => 'exclamation-triangle',
143
+ '\f072' => 'plane',
144
+ '\f073' => 'calendar',
145
+ '\f074' => 'random',
146
+ '\f075' => 'comment',
147
+ '\f076' => 'magnet',
148
+ '\f077' => 'chevron-up',
149
+ '\f078' => 'chevron-down',
150
+ '\f079' => 'retweet',
151
+ '\f07a' => 'shopping-cart',
152
+ '\f07b' => 'folder',
153
+ '\f07c' => 'folder-open',
154
+ '\f07d' => 'arrows-v',
155
+ '\f07e' => 'arrows-h',
156
+ '\f080' => 'bar-chart',
157
+ '\f081' => 'twitter-square',
158
+ '\f082' => 'facebook-square',
159
+ '\f083' => 'camera-retro',
160
+ '\f084' => 'key',
161
+ '\f085' => 'cogs',
162
+ '\f086' => 'comments',
163
+ '\f087' => 'thumbs-o-up',
164
+ '\f088' => 'thumbs-o-down',
165
+ '\f089' => 'star-half',
166
+ '\f08a' => 'heart-o',
167
+ '\f08b' => 'sign-out',
168
+ '\f08c' => 'linkedin-square',
169
+ '\f08d' => 'thumb-tack',
170
+ '\f08e' => 'external-link',
171
+ '\f090' => 'sign-in',
172
+ '\f091' => 'trophy',
173
+ '\f092' => 'github-square',
174
+ '\f093' => 'upload',
175
+ '\f094' => 'lemon-o',
176
+ '\f095' => 'phone',
177
+ '\f096' => 'square-o',
178
+ '\f097' => 'bookmark-o',
179
+ '\f098' => 'phone-square',
180
+ '\f099' => 'twitter',
181
+ '\f09a' => 'facebook',
182
+ '\f09b' => 'github',
183
+ '\f09c' => 'unlock',
184
+ '\f09d' => 'credit-card',
185
+ '\f09e' => 'rss',
186
+ '\f0a0' => 'hdd-o',
187
+ '\f0a1' => 'bullhorn',
188
+ '\f0a2' => 'bell-o',
189
+ '\f0a3' => 'certificate',
190
+ '\f0a4' => 'hand-o-right',
191
+ '\f0a5' => 'hand-o-left',
192
+ '\f0a6' => 'hand-o-up',
193
+ '\f0a7' => 'hand-o-down',
194
+ '\f0a8' => 'arrow-circle-left',
195
+ '\f0a9' => 'arrow-circle-right',
196
+ '\f0aa' => 'arrow-circle-up',
197
+ '\f0ab' => 'arrow-circle-down',
198
+ '\f0ac' => 'globe',
199
+ '\f0ad' => 'wrench',
200
+ '\f0ae' => 'tasks',
201
+ '\f0b0' => 'filter',
202
+ '\f0b1' => 'briefcase',
203
+ '\f0b2' => 'arrows-alt',
204
+ '\f0c0' => 'users',
205
+ '\f0c1' => 'link',
206
+ '\f0c2' => 'cloud',
207
+ '\f0c3' => 'flask',
208
+ '\f0c4' => 'scissors',
209
+ '\f0c5' => 'files-o',
210
+ '\f0c6' => 'paperclip',
211
+ '\f0c7' => 'floppy-o',
212
+ '\f0c8' => 'square',
213
+ '\f0c9' => 'bars',
214
+ '\f0ca' => 'list-ul',
215
+ '\f0cb' => 'list-ol',
216
+ '\f0cc' => 'strikethrough',
217
+ '\f0cd' => 'underline',
218
+ '\f0ce' => 'table',
219
+ '\f0d0' => 'magic',
220
+ '\f0d1' => 'truck',
221
+ '\f0d2' => 'pinterest',
222
+ '\f0d3' => 'pinterest-square',
223
+ '\f0d4' => 'google-plus-square',
224
+ '\f0d5' => 'google-plus',
225
+ '\f0d6' => 'money',
226
+ '\f0d7' => 'caret-down',
227
+ '\f0d8' => 'caret-up',
228
+ '\f0d9' => 'caret-left',
229
+ '\f0da' => 'caret-right',
230
+ '\f0db' => 'columns',
231
+ '\f0dc' => 'sort',
232
+ '\f0dd' => 'sort-desc',
233
+ '\f0de' => 'sort-asc',
234
+ '\f0e0' => 'envelope',
235
+ '\f0e1' => 'linkedin',
236
+ '\f0e2' => 'undo',
237
+ '\f0e3' => 'gavel',
238
+ '\f0e4' => 'tachometer',
239
+ '\f0e5' => 'comment-o',
240
+ '\f0e6' => 'comments-o',
241
+ '\f0e7' => 'bolt',
242
+ '\f0e8' => 'sitemap',
243
+ '\f0e9' => 'umbrella',
244
+ '\f0ea' => 'clipboard',
245
+ '\f0eb' => 'lightbulb-o',
246
+ '\f0ec' => 'exchange',
247
+ '\f0ed' => 'cloud-download',
248
+ '\f0ee' => 'cloud-upload',
249
+ '\f0f0' => 'user-md',
250
+ '\f0f1' => 'stethoscope',
251
+ '\f0f2' => 'suitcase',
252
+ '\f0f3' => 'bell',
253
+ '\f0f4' => 'coffee',
254
+ '\f0f5' => 'cutlery',
255
+ '\f0f6' => 'file-text-o',
256
+ '\f0f7' => 'building-o',
257
+ '\f0f8' => 'hospital-o',
258
+ '\f0f9' => 'ambulance',
259
+ '\f0fa' => 'medkit',
260
+ '\f0fb' => 'fighter-jet',
261
+ '\f0fc' => 'beer',
262
+ '\f0fd' => 'h-square',
263
+ '\f0fe' => 'plus-square',
264
+ '\f100' => 'angle-double-left',
265
+ '\f101' => 'angle-double-right',
266
+ '\f102' => 'angle-double-up',
267
+ '\f103' => 'angle-double-down',
268
+ '\f104' => 'angle-left',
269
+ '\f105' => 'angle-right',
270
+ '\f106' => 'angle-up',
271
+ '\f107' => 'angle-down',
272
+ '\f108' => 'desktop',
273
+ '\f109' => 'laptop',
274
+ '\f10a' => 'tablet',
275
+ '\f10b' => 'mobile',
276
+ '\f10c' => 'circle-o',
277
+ '\f10d' => 'quote-left',
278
+ '\f10e' => 'quote-right',
279
+ '\f110' => 'spinner',
280
+ '\f111' => 'circle',
281
+ '\f112' => 'reply',
282
+ '\f113' => 'github-alt',
283
+ '\f114' => 'folder-o',
284
+ '\f115' => 'folder-open-o',
285
+ '\f118' => 'smile-o',
286
+ '\f119' => 'frown-o',
287
+ '\f11a' => 'meh-o',
288
+ '\f11b' => 'gamepad',
289
+ '\f11c' => 'keyboard-o',
290
+ '\f11d' => 'flag-o',
291
+ '\f11e' => 'flag-checkered',
292
+ '\f120' => 'terminal',
293
+ '\f121' => 'code',
294
+ '\f122' => 'reply-all',
295
+ '\f123' => 'star-half-o',
296
+ '\f124' => 'location-arrow',
297
+ '\f125' => 'crop',
298
+ '\f126' => 'code-fork',
299
+ '\f127' => 'chain-broken',
300
+ '\f128' => 'question',
301
+ '\f129' => 'info',
302
+ '\f12a' => 'exclamation',
303
+ '\f12b' => 'superscript',
304
+ '\f12c' => 'subscript',
305
+ '\f12d' => 'eraser',
306
+ '\f12e' => 'puzzle-piece',
307
+ '\f130' => 'microphone',
308
+ '\f131' => 'microphone-slash',
309
+ '\f132' => 'shield',
310
+ '\f133' => 'calendar-o',
311
+ '\f134' => 'fire-extinguisher',
312
+ '\f135' => 'rocket',
313
+ '\f136' => 'maxcdn',
314
+ '\f137' => 'chevron-circle-left',
315
+ '\f138' => 'chevron-circle-right',
316
+ '\f139' => 'chevron-circle-up',
317
+ '\f13a' => 'chevron-circle-down',
318
+ '\f13b' => 'html5',
319
+ '\f13c' => 'css3',
320
+ '\f13d' => 'anchor',
321
+ '\f13e' => 'unlock-alt',
322
+ '\f140' => 'bullseye',
323
+ '\f141' => 'ellipsis-h',
324
+ '\f142' => 'ellipsis-v',
325
+ '\f143' => 'rss-square',
326
+ '\f144' => 'play-circle',
327
+ '\f145' => 'ticket',
328
+ '\f146' => 'minus-square',
329
+ '\f147' => 'minus-square-o',
330
+ '\f148' => 'level-up',
331
+ '\f149' => 'level-down',
332
+ '\f14a' => 'check-square',
333
+ '\f14b' => 'pencil-square',
334
+ '\f14c' => 'external-link-square',
335
+ '\f14d' => 'share-square',
336
+ '\f14e' => 'compass',
337
+ '\f150' => 'caret-square-o-down',
338
+ '\f151' => 'caret-square-o-up',
339
+ '\f152' => 'caret-square-o-right',
340
+ '\f153' => 'eur',
341
+ '\f154' => 'gbp',
342
+ '\f155' => 'usd',
343
+ '\f156' => 'inr',
344
+ '\f157' => 'jpy',
345
+ '\f158' => 'rub',
346
+ '\f159' => 'krw',
347
+ '\f15a' => 'btc',
348
+ '\f15b' => 'file',
349
+ '\f15c' => 'file-text',
350
+ '\f15d' => 'sort-alpha-asc',
351
+ '\f15e' => 'sort-alpha-desc',
352
+ '\f160' => 'sort-amount-asc',
353
+ '\f161' => 'sort-amount-desc',
354
+ '\f162' => 'sort-numeric-asc',
355
+ '\f163' => 'sort-numeric-desc',
356
+ '\f164' => 'thumbs-up',
357
+ '\f165' => 'thumbs-down',
358
+ '\f166' => 'youtube-square',
359
+ '\f167' => 'youtube',
360
+ '\f168' => 'xing',
361
+ '\f169' => 'xing-square',
362
+ '\f16a' => 'youtube-play',
363
+ '\f16b' => 'dropbox',
364
+ '\f16c' => 'stack-overflow',
365
+ '\f16d' => 'instagram',
366
+ '\f16e' => 'flickr',
367
+ '\f170' => 'adn',
368
+ '\f171' => 'bitbucket',
369
+ '\f172' => 'bitbucket-square',
370
+ '\f173' => 'tumblr',
371
+ '\f174' => 'tumblr-square',
372
+ '\f175' => 'long-arrow-down',
373
+ '\f176' => 'long-arrow-up',
374
+ '\f177' => 'long-arrow-left',
375
+ '\f178' => 'long-arrow-right',
376
+ '\f179' => 'apple',
377
+ '\f17a' => 'windows',
378
+ '\f17b' => 'android',
379
+ '\f17c' => 'linux',
380
+ '\f17d' => 'dribbble',
381
+ '\f17e' => 'skype',
382
+ '\f180' => 'foursquare',
383
+ '\f181' => 'trello',
384
+ '\f182' => 'female',
385
+ '\f183' => 'male',
386
+ '\f184' => 'gratipay',
387
+ '\f185' => 'sun-o',
388
+ '\f186' => 'moon-o',
389
+ '\f187' => 'archive',
390
+ '\f188' => 'bug',
391
+ '\f189' => 'vk',
392
+ '\f18a' => 'weibo',
393
+ '\f18b' => 'renren',
394
+ '\f18c' => 'pagelines',
395
+ '\f18d' => 'stack-exchange',
396
+ '\f18e' => 'arrow-circle-o-right',
397
+ '\f190' => 'arrow-circle-o-left',
398
+ '\f191' => 'caret-square-o-left',
399
+ '\f192' => 'dot-circle-o',
400
+ '\f193' => 'wheelchair',
401
+ '\f194' => 'vimeo-square',
402
+ '\f195' => 'try',
403
+ '\f196' => 'plus-square-o',
404
+ '\f197' => 'space-shuttle',
405
+ '\f198' => 'slack',
406
+ '\f199' => 'envelope-square',
407
+ '\f19a' => 'wordpress',
408
+ '\f19b' => 'openid',
409
+ '\f19c' => 'university',
410
+ '\f19d' => 'graduation-cap',
411
+ '\f19e' => 'yahoo',
412
+ '\f1a0' => 'google',
413
+ '\f1a1' => 'reddit',
414
+ '\f1a2' => 'reddit-square',
415
+ '\f1a3' => 'stumbleupon-circle',
416
+ '\f1a4' => 'stumbleupon',
417
+ '\f1a5' => 'delicious',
418
+ '\f1a6' => 'digg',
419
+ '\f1a7' => 'pied-piper-pp',
420
+ '\f1a8' => 'pied-piper-alt',
421
+ '\f1a9' => 'drupal',
422
+ '\f1aa' => 'joomla',
423
+ '\f1ab' => 'language',
424
+ '\f1ac' => 'fax',
425
+ '\f1ad' => 'building',
426
+ '\f1ae' => 'child',
427
+ '\f1b0' => 'paw',
428
+ '\f1b1' => 'spoon',
429
+ '\f1b2' => 'cube',
430
+ '\f1b3' => 'cubes',
431
+ '\f1b4' => 'behance',
432
+ '\f1b5' => 'behance-square',
433
+ '\f1b6' => 'steam',
434
+ '\f1b7' => 'steam-square',
435
+ '\f1b8' => 'recycle',
436
+ '\f1b9' => 'car',
437
+ '\f1ba' => 'taxi',
438
+ '\f1bb' => 'tree',
439
+ '\f1bc' => 'spotify',
440
+ '\f1bd' => 'deviantart',
441
+ '\f1be' => 'soundcloud',
442
+ '\f1c0' => 'database',
443
+ '\f1c1' => 'file-pdf-o',
444
+ '\f1c2' => 'file-word-o',
445
+ '\f1c3' => 'file-excel-o',
446
+ '\f1c4' => 'file-powerpoint-o',
447
+ '\f1c5' => 'file-image-o',
448
+ '\f1c6' => 'file-archive-o',
449
+ '\f1c7' => 'file-audio-o',
450
+ '\f1c8' => 'file-video-o',
451
+ '\f1c9' => 'file-code-o',
452
+ '\f1ca' => 'vine',
453
+ '\f1cb' => 'codepen',
454
+ '\f1cc' => 'jsfiddle',
455
+ '\f1cd' => 'life-ring',
456
+ '\f1ce' => 'circle-o-notch',
457
+ '\f1d0' => 'rebel',
458
+ '\f1d1' => 'empire',
459
+ '\f1d2' => 'git-square',
460
+ '\f1d3' => 'git',
461
+ '\f1d4' => 'hacker-news',
462
+ '\f1d5' => 'tencent-weibo',
463
+ '\f1d6' => 'qq',
464
+ '\f1d7' => 'weixin',
465
+ '\f1d8' => 'paper-plane',
466
+ '\f1d9' => 'paper-plane-o',
467
+ '\f1da' => 'history',
468
+ '\f1db' => 'circle-thin',
469
+ '\f1dc' => 'header',
470
+ '\f1dd' => 'paragraph',
471
+ '\f1de' => 'sliders',
472
+ '\f1e0' => 'share-alt',
473
+ '\f1e1' => 'share-alt-square',
474
+ '\f1e2' => 'bomb',
475
+ '\f1e3' => 'futbol-o',
476
+ '\f1e4' => 'tty',
477
+ '\f1e5' => 'binoculars',
478
+ '\f1e6' => 'plug',
479
+ '\f1e7' => 'slideshare',
480
+ '\f1e8' => 'twitch',
481
+ '\f1e9' => 'yelp',
482
+ '\f1ea' => 'newspaper-o',
483
+ '\f1eb' => 'wifi',
484
+ '\f1ec' => 'calculator',
485
+ '\f1ed' => 'paypal',
486
+ '\f1ee' => 'google-wallet',
487
+ '\f1f0' => 'cc-visa',
488
+ '\f1f1' => 'cc-mastercard',
489
+ '\f1f2' => 'cc-discover',
490
+ '\f1f3' => 'cc-amex',
491
+ '\f1f4' => 'cc-paypal',
492
+ '\f1f5' => 'cc-stripe',
493
+ '\f1f6' => 'bell-slash',
494
+ '\f1f7' => 'bell-slash-o',
495
+ '\f1f8' => 'trash',
496
+ '\f1f9' => 'copyright',
497
+ '\f1fa' => 'at',
498
+ '\f1fb' => 'eyedropper',
499
+ '\f1fc' => 'paint-brush',
500
+ '\f1fd' => 'birthday-cake',
501
+ '\f1fe' => 'area-chart',
502
+ '\f200' => 'pie-chart',
503
+ '\f201' => 'line-chart',
504
+ '\f202' => 'lastfm',
505
+ '\f203' => 'lastfm-square',
506
+ '\f204' => 'toggle-off',
507
+ '\f205' => 'toggle-on',
508
+ '\f206' => 'bicycle',
509
+ '\f207' => 'bus',
510
+ '\f208' => 'ioxhost',
511
+ '\f209' => 'angellist',
512
+ '\f20a' => 'cc',
513
+ '\f20b' => 'ils',
514
+ '\f20c' => 'meanpath',
515
+ '\f20d' => 'buysellads',
516
+ '\f20e' => 'connectdevelop',
517
+ '\f210' => 'dashcube',
518
+ '\f211' => 'forumbee',
519
+ '\f212' => 'leanpub',
520
+ '\f213' => 'sellsy',
521
+ '\f214' => 'shirtsinbulk',
522
+ '\f215' => 'simplybuilt',
523
+ '\f216' => 'skyatlas',
524
+ '\f217' => 'cart-plus',
525
+ '\f218' => 'cart-arrow-down',
526
+ '\f219' => 'diamond',
527
+ '\f21a' => 'ship',
528
+ '\f21b' => 'user-secret',
529
+ '\f21c' => 'motorcycle',
530
+ '\f21d' => 'street-view',
531
+ '\f21e' => 'heartbeat',
532
+ '\f221' => 'venus',
533
+ '\f222' => 'mars',
534
+ '\f223' => 'mercury',
535
+ '\f224' => 'transgender',
536
+ '\f225' => 'transgender-alt',
537
+ '\f226' => 'venus-double',
538
+ '\f227' => 'mars-double',
539
+ '\f228' => 'venus-mars',
540
+ '\f229' => 'mars-stroke',
541
+ '\f22a' => 'mars-stroke-v',
542
+ '\f22b' => 'mars-stroke-h',
543
+ '\f22c' => 'neuter',
544
+ '\f22d' => 'genderless',
545
+ '\f230' => 'facebook-official',
546
+ '\f231' => 'pinterest-p',
547
+ '\f232' => 'whatsapp',
548
+ '\f233' => 'server',
549
+ '\f234' => 'user-plus',
550
+ '\f235' => 'user-times',
551
+ '\f236' => 'bed',
552
+ '\f237' => 'viacoin',
553
+ '\f238' => 'train',
554
+ '\f239' => 'subway',
555
+ '\f23a' => 'medium',
556
+ '\f23b' => 'y-combinator',
557
+ '\f23c' => 'optin-monster',
558
+ '\f23d' => 'opencart',
559
+ '\f23e' => 'expeditedssl',
560
+ '\f240' => 'battery-full',
561
+ '\f241' => 'battery-three-quarters',
562
+ '\f242' => 'battery-half',
563
+ '\f243' => 'battery-quarter',
564
+ '\f244' => 'battery-empty',
565
+ '\f245' => 'mouse-pointer',
566
+ '\f246' => 'i-cursor',
567
+ '\f247' => 'object-group',
568
+ '\f248' => 'object-ungroup',
569
+ '\f249' => 'sticky-note',
570
+ '\f24a' => 'sticky-note-o',
571
+ '\f24b' => 'cc-jcb',
572
+ '\f24c' => 'cc-diners-club',
573
+ '\f24d' => 'clone',
574
+ '\f24e' => 'balance-scale',
575
+ '\f250' => 'hourglass-o',
576
+ '\f251' => 'hourglass-start',
577
+ '\f252' => 'hourglass-half',
578
+ '\f253' => 'hourglass-end',
579
+ '\f254' => 'hourglass',
580
+ '\f255' => 'hand-rock-o',
581
+ '\f256' => 'hand-paper-o',
582
+ '\f257' => 'hand-scissors-o',
583
+ '\f258' => 'hand-lizard-o',
584
+ '\f259' => 'hand-spock-o',
585
+ '\f25a' => 'hand-pointer-o',
586
+ '\f25b' => 'hand-peace-o',
587
+ '\f25c' => 'trademark',
588
+ '\f25d' => 'registered',
589
+ '\f25e' => 'creative-commons',
590
+ '\f260' => 'gg',
591
+ '\f261' => 'gg-circle',
592
+ '\f262' => 'tripadvisor',
593
+ '\f263' => 'odnoklassniki',
594
+ '\f264' => 'odnoklassniki-square',
595
+ '\f265' => 'get-pocket',
596
+ '\f266' => 'wikipedia-w',
597
+ '\f267' => 'safari',
598
+ '\f268' => 'chrome',
599
+ '\f269' => 'firefox',
600
+ '\f26a' => 'opera',
601
+ '\f26b' => 'internet-explorer',
602
+ '\f26c' => 'television',
603
+ '\f26d' => 'contao',
604
+ '\f26e' => '500px',
605
+ '\f270' => 'amazon',
606
+ '\f271' => 'calendar-plus-o',
607
+ '\f272' => 'calendar-minus-o',
608
+ '\f273' => 'calendar-times-o',
609
+ '\f274' => 'calendar-check-o',
610
+ '\f275' => 'industry',
611
+ '\f276' => 'map-pin',
612
+ '\f277' => 'map-signs',
613
+ '\f278' => 'map-o',
614
+ '\f279' => 'map',
615
+ '\f27a' => 'commenting',
616
+ '\f27b' => 'commenting-o',
617
+ '\f27c' => 'houzz',
618
+ '\f27d' => 'vimeo',
619
+ '\f27e' => 'black-tie',
620
+ '\f280' => 'fonticons',
621
+ '\f281' => 'reddit-alien',
622
+ '\f282' => 'edge',
623
+ '\f283' => 'credit-card-alt',
624
+ '\f284' => 'codiepie',
625
+ '\f285' => 'modx',
626
+ '\f286' => 'fort-awesome',
627
+ '\f287' => 'usb',
628
+ '\f288' => 'product-hunt',
629
+ '\f289' => 'mixcloud',
630
+ '\f28a' => 'scribd',
631
+ '\f28b' => 'pause-circle',
632
+ '\f28c' => 'pause-circle-o',
633
+ '\f28d' => 'stop-circle',
634
+ '\f28e' => 'stop-circle-o',
635
+ '\f290' => 'shopping-bag',
636
+ '\f291' => 'shopping-basket',
637
+ '\f292' => 'hashtag',
638
+ '\f293' => 'bluetooth',
639
+ '\f294' => 'bluetooth-b',
640
+ '\f295' => 'percent',
641
+ '\f296' => 'gitlab',
642
+ '\f297' => 'wpbeginner',
643
+ '\f298' => 'wpforms',
644
+ '\f299' => 'envira',
645
+ '\f29a' => 'universal-access',
646
+ '\f29b' => 'wheelchair-alt',
647
+ '\f29c' => 'question-circle-o',
648
+ '\f29d' => 'blind',
649
+ '\f29e' => 'audio-description',
650
+ '\f2a0' => 'volume-control-phone',
651
+ '\f2a1' => 'braille',
652
+ '\f2a2' => 'assistive-listening-systems',
653
+ '\f2a3' => 'american-sign-language-interpreting',
654
+ '\f2a4' => 'deaf',
655
+ '\f2a5' => 'glide',
656
+ '\f2a6' => 'glide-g',
657
+ '\f2a7' => 'sign-language',
658
+ '\f2a8' => 'low-vision',
659
+ '\f2a9' => 'viadeo',
660
+ '\f2aa' => 'viadeo-square',
661
+ '\f2ab' => 'snapchat',
662
+ '\f2ac' => 'snapchat-ghost',
663
+ '\f2ad' => 'snapchat-square',
664
+ '\f2ae' => 'pied-piper',
665
+ '\f2b0' => 'first-order',
666
+ '\f2b1' => 'yoast',
667
+ '\f2b2' => 'themeisle',
668
+ '\f2b3' => 'google-plus-official',
669
+ '\f2b4' => 'font-awesome',
670
+ ),
671
+ 'Dashicons' => array(
672
+ '\f100' => 'admin-appearance',
673
+ '\f101' => 'admin-comments',
674
+ '\f102' => 'admin-home',
675
+ '\f104' => 'admin-media',
676
+ '\f105' => 'admin-page',
677
+ '\f106' => 'admin-plugins',
678
+ '\f107' => 'admin-tools',
679
+ '\f108' => 'admin-settings',
680
+ '\f110' => 'admin-users',
681
+ '\f111' => 'admin-generic',
682
+ '\f112' => 'admin-network',
683
+ '\f115' => 'welcome-view-site',
684
+ '\f116' => 'welcome-widgets-menus',
685
+ '\f117' => 'welcome-comments',
686
+ '\f118' => 'welcome-learn-more',
687
+ '\f120' => 'wordpress',
688
+ '\f122' => 'format-quote',
689
+ '\f123' => 'format-aside',
690
+ '\f125' => 'format-chat',
691
+ '\f126' => 'format-video',
692
+ '\f127' => 'format-audio',
693
+ '\f128' => 'format-image',
694
+ '\f130' => 'format-status',
695
+ '\f132' => 'plus',
696
+ '\f133' => 'welcome-add-page',
697
+ '\f134' => 'align-center',
698
+ '\f135' => 'align-left',
699
+ '\f136' => 'align-right',
700
+ '\f138' => 'align-none',
701
+ '\f139' => 'arrow-right',
702
+ '\f140' => 'arrow-down',
703
+ '\f141' => 'arrow-left',
704
+ '\f142' => 'arrow-up',
705
+ '\f145' => 'calendar',
706
+ '\f147' => 'yes',
707
+ '\f148' => 'admin-collapse',
708
+ '\f153' => 'dismiss',
709
+ '\f154' => 'star-empty',
710
+ '\f155' => 'star-filled',
711
+ '\f156' => 'sort',
712
+ '\f157' => 'pressthis',
713
+ '\f158' => 'no',
714
+ '\f159' => 'marker',
715
+ '\f160' => 'lock',
716
+ '\f161' => 'format-gallery',
717
+ '\f163' => 'list-view',
718
+ '\f165' => 'image-crop',
719
+ '\f166' => 'image-rotate-left',
720
+ '\f167' => 'image-rotate-right',
721
+ '\f168' => 'image-flip-vertical',
722
+ '\f169' => 'image-flip-horizontal',
723
+ '\f171' => 'undo',
724
+ '\f172' => 'redo',
725
+ '\f173' => 'post-status',
726
+ '\f174' => 'cart',
727
+ '\f175' => 'feedback',
728
+ '\f176' => 'cloud',
729
+ '\f177' => 'visibility',
730
+ '\f178' => 'vault',
731
+ '\f179' => 'search',
732
+ '\f180' => 'screenoptions',
733
+ '\f181' => 'slides',
734
+ '\f183' => 'analytics',
735
+ '\f184' => 'chart-pie',
736
+ '\f185' => 'chart-bar',
737
+ '\f200' => 'editor-bold',
738
+ '\f201' => 'editor-italic',
739
+ '\f203' => 'editor-ul',
740
+ '\f204' => 'editor-ol',
741
+ '\f205' => 'editor-quote',
742
+ '\f206' => 'editor-alignleft',
743
+ '\f207' => 'editor-aligncenter',
744
+ '\f208' => 'editor-alignright',
745
+ '\f209' => 'editor-insertmore',
746
+ '\f210' => 'editor-spellcheck',
747
+ '\f212' => 'editor-kitchensink',
748
+ '\f213' => 'editor-underline',
749
+ '\f214' => 'editor-justify',
750
+ '\f215' => 'editor-textcolor',
751
+ '\f216' => 'editor-paste-word',
752
+ '\f217' => 'editor-paste-text',
753
+ '\f218' => 'editor-removeformatting',
754
+ '\f219' => 'editor-video',
755
+ '\f220' => 'editor-customchar',
756
+ '\f221' => 'editor-outdent',
757
+ '\f222' => 'editor-indent',
758
+ '\f223' => 'editor-help',
759
+ '\f224' => 'editor-strikethrough',
760
+ '\f225' => 'editor-unlink',
761
+ '\f226' => 'dashboard',
762
+ '\f227' => 'flag',
763
+ '\f229' => 'leftright',
764
+ '\f230' => 'location',
765
+ '\f231' => 'location-alt',
766
+ '\f232' => 'images-alt',
767
+ '\f233' => 'images-alt2',
768
+ '\f234' => 'video-alt',
769
+ '\f235' => 'video-alt2',
770
+ '\f236' => 'video-alt3',
771
+ '\f237' => 'share1',
772
+ '\f238' => 'chart-line',
773
+ '\f239' => 'chart-area',
774
+ '\f240' => 'share-alt',
775
+ '\f242' => 'share-alt2',
776
+ '\f301' => 'twitter',
777
+ '\f303' => 'rss',
778
+ '\f304' => 'facebook',
779
+ '\f305' => 'facebook-alt',
780
+ '\f306' => 'camera',
781
+ '\f307' => 'groups',
782
+ '\f308' => 'hammer',
783
+ '\f309' => 'art',
784
+ '\f310' => 'migrate',
785
+ '\f311' => 'performance',
786
+ '\f312' => 'products',
787
+ '\f313' => 'awards',
788
+ '\f314' => 'forms',
789
+ '\f316' => 'download',
790
+ '\f317' => 'upload',
791
+ '\f318' => 'category',
792
+ '\f319' => 'admin-site',
793
+ '\f320' => 'editor-rtl',
794
+ '\f321' => 'backup',
795
+ '\f322' => 'portfolio',
796
+ '\f323' => 'tag',
797
+ '\f324' => 'wordpress-alt',
798
+ '\f325' => 'networking',
799
+ '\f326' => 'translation',
800
+ '\f328' => 'smiley',
801
+ '\f330' => 'book',
802
+ '\f331' => 'book-alt',
803
+ '\f332' => 'shield',
804
+ '\f333' => 'menu',
805
+ '\f334' => 'shield-alt',
806
+ '\f335' => 'no-alt',
807
+ '\f336' => 'id',
808
+ '\f337' => 'id-alt',
809
+ '\f338' => 'businessman',
810
+ '\f339' => 'lightbulb',
811
+ '\f340' => 'arrow-left-alt',
812
+ '\f341' => 'arrow-left-alt2',
813
+ '\f342' => 'arrow-up-alt',
814
+ '\f343' => 'arrow-up-alt2',
815
+ '\f344' => 'arrow-right-alt',
816
+ '\f345' => 'arrow-right-alt2',
817
+ '\f346' => 'arrow-down-alt',
818
+ '\f347' => 'arrow-down-alt2',
819
+ '\f348' => 'info',
820
+ '\f459' => 'star-half',
821
+ '\f460' => 'minus',
822
+ '\f462' => 'googleplus',
823
+ '\f463' => 'update',
824
+ '\f464' => 'edit',
825
+ '\f465' => 'email',
826
+ '\f466' => 'email-alt',
827
+ '\f468' => 'sos',
828
+ '\f469' => 'clock',
829
+ '\f470' => 'smartphone',
830
+ '\f471' => 'tablet',
831
+ '\f472' => 'desktop',
832
+ '\f473' => 'testimonial',
833
+ '\f474' => 'editor-break',
834
+ '\f475' => 'editor-code',
835
+ '\f476' => 'editor-paragraph',
836
+ '\f478' => 'text',
837
+ '\f479' => 'tagcloud',
838
+ '\f480' => 'archive',
839
+ '\f481' => 'clipboard',
840
+ '\f482' => 'microphone',
841
+ '\f483' => 'universal-access',
842
+ '\f484' => 'nametag',
843
+ '\f486' => 'tickets',
844
+ '\f487' => 'heart',
845
+ '\f488' => 'megaphone',
846
+ '\f489' => 'schedule',
847
+ '\f490' => 'media-video',
848
+ '\f491' => 'media-text',
849
+ '\f492' => 'playlist-audio',
850
+ '\f493' => 'playlist-video',
851
+ '\f495' => 'media-spreadsheet',
852
+ '\f496' => 'media-interactive',
853
+ '\f497' => 'media-document',
854
+ '\f498' => 'media-default',
855
+ '\f499' => 'media-code',
856
+ '\f500' => 'media-audio',
857
+ '\f501' => 'media-archive',
858
+ '\f502' => 'plus-alt',
859
+ '\f503' => 'randomize',
860
+ '\f504' => 'external',
861
+ '\f506' => 'editor-contract',
862
+ '\f507' => 'universal-access-alt',
863
+ '\f508' => 'calendar-alt',
864
+ '\f509' => 'grid-view',
865
+ '\f510' => 'index-card',
866
+ '\f511' => 'carrot',
867
+ '\f512' => 'building',
868
+ '\f513' => 'store',
869
+ '\f514' => 'album',
870
+ '\f515' => 'controls-repeat',
871
+ '\f516' => 'controls-skipback',
872
+ '\f517' => 'controls-skipforward',
873
+ '\f518' => 'controls-back',
874
+ '\f519' => 'controls-forward',
875
+ '\f520' => 'controls-volumeoff',
876
+ '\f521' => 'controls-volumeon',
877
+ '\f522' => 'controls-play',
878
+ '\f523' => 'controls-pause',
879
+ '\f524' => 'tickets-alt',
880
+ '\f525' => 'phone',
881
+ '\f526' => 'money',
882
+ '\f527' => 'palmtree',
883
+ '\f528' => 'unlock',
884
+ '\f529' => 'thumbs-up',
885
+ '\f530' => 'hidden',
886
+ '\f531' => 'image-rotate',
887
+ '\f533' => 'image-filter',
888
+ '\f534' => 'warning',
889
+ '\f535' => 'editor-table',
890
+ '\f536' => 'filter',
891
+ '\f537' => 'sticky',
892
+ '\f538' => 'layout',
893
+ '\f540' => 'admin-customizer',
894
+ '\f541' => 'admin-multisite',
895
+ '\f542' => 'thumbs-down',
896
+ '\f543' => 'plus-alt2',
897
+ '\f545' => 'move',
898
+ '\f546' => 'paperclip',
899
+ '\f547' => 'laptop',
900
+ ),
901
+ ),
902
+ );
903
+
904
+
905
+ /**
906
+ * Singleton implementation.
907
+ *
908
+ * @return YIT_Icons
909
+ */
910
+ public static function instance() {
911
+ return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
912
+ }
913
+
914
+ /**
915
+ * Deprecated singleton implementation.
916
+ * Kept for backward compatibility.
917
+ *
918
+ * @return YIT_Icons
919
+ * @deprecated 3.5 | use YIT_Icons::get_instance() instead.
920
+ */
921
+ public static function get_instance() {
922
+ return self::instance();
923
+ }
924
+
925
+ /**
926
+ * YIT_Icons constructor.
927
+ */
928
+ private function __construct() {
929
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 99 );
930
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 99 );
931
+ }
932
+
933
+ /**
934
+ * __get function.
935
+ *
936
+ * @param string $key The key.
937
+ *
938
+ * @return mixed
939
+ */
940
+ public function __get( $key ) {
941
+ $value = isset( $this->data[ $key ] ) ? $this->data[ $key ] : false;
942
+
943
+ return $value;
944
+ }
945
+
946
+ /**
947
+ * __isset function.
948
+ *
949
+ * @param string $key The key.
950
+ *
951
+ * @return bool
952
+ */
953
+ public function __isset( $key ) {
954
+ return isset( $this->data[ $key ] );
955
+ }
956
+
957
+ /**
958
+ * Get the icons.
959
+ *
960
+ * @param string $filter_suffix The filter suffix.
961
+ *
962
+ * @return false|mixed|void
963
+ */
964
+ public function get_icons( $filter_suffix = '' ) {
965
+ $icons = $this->icons;
966
+ if ( ! empty( $filter_suffix ) ) {
967
+ $icons = apply_filters( 'yith_plugin_fw_icons_field_icons_' . sanitize_key( $filter_suffix ), $icons );
968
+ }
969
+
970
+ return $icons;
971
+ }
972
+
973
+ /**
974
+ * Get the icon data
975
+ *
976
+ * @param string $icon_string The icon string.
977
+ * @param string $filter_suffix The filter suffix.
978
+ *
979
+ * @return string
980
+ */
981
+ public function get_icon_data( $icon_string, $filter_suffix = '' ) {
982
+ $icon_data = '';
983
+ if ( $icon_string ) {
984
+ $icon_array = explode( ':', $icon_string );
985
+
986
+ if ( count( $icon_array ) < 2 ) {
987
+ return $icon_data;
988
+ }
989
+
990
+ $font_name = $icon_array[0];
991
+ $icon_name = $icon_array[1];
992
+
993
+ $icons = $this->get_icons( $filter_suffix );
994
+ if ( array_key_exists( $font_name, $icons ) ) {
995
+ $icon_key = array_search( $icon_name, $icons[ $font_name ], true );
996
+ $icon_code = '&#x' . str_replace( '\\', '', $icon_key );
997
+
998
+ $icon_data = 'data-font="' . esc_attr( $font_name ) . '" data-name="' . esc_attr( $icon_name ) . '" data-key="' . esc_attr( $icon_key ) . '" data-icon="' . $icon_code . '"';
999
+ }
1000
+ }
1001
+
1002
+ return $icon_data;
1003
+ }
1004
+
1005
+ /**
1006
+ * Retrieves the font awesome array
1007
+ * the first time retrieves the array by the Font Awesome CSS
1008
+ * [utility method]
1009
+ *
1010
+ * @return array
1011
+ */
1012
+ private function get_font_awesome_array() {
1013
+ $font_awesome_list = get_option( 'yit_font_awesome_list', array() );
1014
+ $font_awesome_version = $this->font_awesome_version;
1015
+
1016
+ $font_awesome_array = array();
1017
+
1018
+ if ( ! empty( $font_awesome_list[ $font_awesome_version ] ) ) {
1019
+ $font_awesome_array = $font_awesome_list[ $font_awesome_version ];
1020
+ } else {
1021
+ // Retrieve the array by the CSS file.
1022
+ $font_awesome_uri = "https://maxcdn.bootstrapcdn.com/font-awesome/{$font_awesome_version}/css/font-awesome.min.css";
1023
+ $pattern = '/\.(fa-(?:\w+(?:-)?)+):before{content:"\\\\(....)"}/';
1024
+
1025
+ $response = wp_remote_get( $font_awesome_uri );
1026
+
1027
+ if ( ! is_wp_error( $response ) && 200 === absint( $response['response']['code'] ) && 'OK' === $response['response']['message'] ) {
1028
+ $body = $response['body'];
1029
+
1030
+ preg_match_all( $pattern, $body, $matches, PREG_SET_ORDER );
1031
+ foreach ( $matches as $match ) {
1032
+ $font_awesome_array[ $match[2] ] = $match[1];
1033
+ }
1034
+ ksort( $font_awesome_array );
1035
+
1036
+ $font_awesome_list[ $font_awesome_version ] = $font_awesome_array;
1037
+ update_option( 'yit_font_awesome_list', $font_awesome_list );
1038
+ }
1039
+ }
1040
+
1041
+ return $font_awesome_array;
1042
+ }
1043
+
1044
+ /**
1045
+ * Retrieves the Dashicons array
1046
+ * the first time retrieves the array by the Dashicons CSS
1047
+ * [utility method]
1048
+ *
1049
+ * @return array
1050
+ */
1051
+ private function get_dashicons_array() {
1052
+ $dashicons_list = get_option( 'yit_dashicons_list', array() );
1053
+
1054
+ $dashicons_array = array();
1055
+ if ( ! empty( $dashicons_list ) ) {
1056
+ $dashicons_array = $dashicons_list;
1057
+ } else {
1058
+ // Retrieve the array by the CSS file.
1059
+ $uri = 'https://s.w.org/wp-includes/css/dashicons.min.css';
1060
+ $pattern = '/\.dashicons-((?:\w+(?:-)?)+):before{content:"\\\\(....)"/';
1061
+ $pattern = '/\.dashicons-((?:\w+(?:-)?)+):before.............../';
1062
+
1063
+ $response = wp_remote_get( $uri );
1064
+
1065
+ if ( ! is_wp_error( $response ) && 200 === absint( $response['response']['code'] ) && 'OK' === $response['response']['message'] ) {
1066
+ $body = $response['body'];
1067
+
1068
+ preg_match_all( $pattern, $body, $matches, PREG_SET_ORDER );
1069
+
1070
+ foreach ( $matches as $match ) {
1071
+ $code = str_replace( '.dashicons-' . $match[1] . ':before{content:"\\', '', $match[0] );
1072
+ if ( 4 === strlen( $code ) ) {
1073
+ $dashicons_array[ $code ] = $match[1];
1074
+ }
1075
+ }
1076
+ ksort( $dashicons_array );
1077
+ }
1078
+ }
1079
+
1080
+ return $dashicons_array;
1081
+ }
1082
+
1083
+ /**
1084
+ * Enqueue Scripts
1085
+ */
1086
+ public function enqueue_scripts() {
1087
+ wp_register_style( 'font-awesome', "https://maxcdn.bootstrapcdn.com/font-awesome/{$this->font_awesome_version}/css/font-awesome.min.css", array(), $this->font_awesome_version );
1088
+
1089
+ wp_add_inline_style( 'font-awesome', $this->get_inline_style( 'font-awesome' ) );
1090
+
1091
+ wp_add_inline_style( 'dashicons', $this->get_inline_style( 'dashicons' ) );
1092
+ }
1093
+
1094
+ /**
1095
+ * Return the icon HTML from icon_string passed
1096
+ *
1097
+ * @param string|array $icon The icon.
1098
+ * @param array $args Array of arguments (such as html_tag, class, style, filter_suffix).
1099
+ *
1100
+ * @return string
1101
+ */
1102
+ public function get_icon( $icon = '', $args = array() ) {
1103
+ $icon = is_array( $icon ) && isset( $icon['icon'] ) ? $icon['icon'] : $icon;
1104
+ $icon_html = '';
1105
+ if ( $icon ) {
1106
+ $default_args = array(
1107
+ 'html_tag' => 'span',
1108
+ 'class' => '',
1109
+ 'style' => '',
1110
+ 'filter_suffix' => '',
1111
+ );
1112
+ $args = wp_parse_args( $args, $default_args );
1113
+
1114
+ // back-ward compatibility: 'filter_icons' argument is deprecated; use 'filter_suffix' instead!
1115
+ if ( ! empty( $args['filter_icons'] ) && ! $args['filter_suffix'] ) {
1116
+ $args['filter_suffix'] = $args['filter_icons'];
1117
+ }
1118
+
1119
+ $html_tag = $args['html_tag'];
1120
+ $class = $args['class'];
1121
+ $style = $args['style'];
1122
+ $filter_suffix = $args['filter_suffix'];
1123
+
1124
+ $icon_data = $this->get_icon_data( $icon, $filter_suffix );
1125
+
1126
+ if ( $icon_data ) {
1127
+ $icon_html = "<$html_tag class=\"$class\" style=\"$style\" $icon_data></$html_tag>";
1128
+ }
1129
+ }
1130
+
1131
+ return $icon_html;
1132
+ }
1133
+
1134
+ /**
1135
+ * Get inline style.
1136
+ *
1137
+ * @param string $handle The handle.
1138
+ *
1139
+ * @return string
1140
+ */
1141
+ public function get_inline_style( $handle ) {
1142
+ $css = '';
1143
+ switch ( $handle ) {
1144
+ case 'font-awesome':
1145
+ $css = '[data-font="FontAwesome"]:before {font-family: \'FontAwesome\' !important;content: attr(data-icon) !important;speak: none !important;font-weight: normal !important;font-variant: normal !important;text-transform: none !important;line-height: 1 !important;font-style: normal !important;-webkit-font-smoothing: antialiased !important;-moz-osx-font-smoothing: grayscale !important;}';
1146
+ break;
1147
+ case 'dashicons':
1148
+ $css = '[data-font="Dashicons"]:before {font-family: \'Dashicons\' !important;content: attr(data-icon) !important;speak: none !important;font-weight: normal !important;font-variant: normal !important;text-transform: none !important;line-height: 1 !important;font-style: normal !important;-webkit-font-smoothing: antialiased !important;-moz-osx-font-smoothing: grayscale !important;}';
1149
+ }
1150
+
1151
+ return $css;
1152
+ }
1153
+
1154
+ /**
1155
+ * Get inline style
1156
+ * Deprecated for typo
1157
+ *
1158
+ * @param string $handle The handle.
1159
+ *
1160
+ * @return string
1161
+ * @deprecated 3.5 | use YIT_Icons::get_inline_style()
1162
+ */
1163
+ public function get_inline_scripts( $handle ) {
1164
+ return $this->get_inline_style( $handle );
1165
+ }
1166
+
1167
+ }
1168
+ }
1169
+ if ( ! function_exists( 'yit_icons' ) ) {
1170
+ /**
1171
+ * Return instance of YIT_Icons class.
1172
+ *
1173
+ * @return YIT_Icons
1174
+ */
1175
+ function yit_icons() {
1176
+ return YIT_Icons::instance();
1177
+ }
1178
+ }
1179
+
1180
+ yit_icons();
plugin-fw/includes/class-yit-metabox.php ADDED
@@ -0,0 +1,540 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Meta-box Class.
4
+ *
5
+ * @class YIT_Metabox
6
+ * @package YITH\PluginFramework\Classes
7
+ */
8
+
9
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
10
+
11
+ if ( ! class_exists( 'YIT_Metabox' ) ) {
12
+ /**
13
+ * YIT_Metabox class.
14
+ *
15
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.com>
16
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
17
+ */
18
+ class YIT_Metabox {
19
+
20
+ /**
21
+ * The ID of meta-box.
22
+ *
23
+ * @var string
24
+ */
25
+ public $id;
26
+
27
+ /**
28
+ * Meta-box options.
29
+ *
30
+ * @var array
31
+ */
32
+ private $options = array();
33
+
34
+ /**
35
+ * Meta-box tabs.
36
+ *
37
+ * @var array
38
+ */
39
+ private $tabs = array();
40
+
41
+ /**
42
+ * Array of instances of the class.
43
+ *
44
+ * @var array
45
+ */
46
+ private static $instance = array();
47
+
48
+ /**
49
+ * Retrieve a specific instance of the class
50
+ *
51
+ * @param string $id The ID of the instance.
52
+ *
53
+ * @return YIT_Metabox
54
+ * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
55
+ */
56
+ public static function instance( $id ) {
57
+ if ( ! isset( self::$instance[ $id ] ) ) {
58
+ self::$instance[ $id ] = new self( $id );
59
+ }
60
+
61
+ return self::$instance[ $id ];
62
+ }
63
+
64
+ /**
65
+ * YIT_Metabox constructor.
66
+ *
67
+ * @param string $id the ID of the meta-box.
68
+ */
69
+ public function __construct( $id = '' ) {
70
+ $this->id = $id;
71
+ }
72
+
73
+ /**
74
+ * Set options and tabs, add actions to register metabox, scripts and save data.
75
+ *
76
+ * @param array $options The meta-box options.
77
+ */
78
+ public function init( $options = array() ) {
79
+ $this->set_options( $options );
80
+ $this->set_tabs();
81
+
82
+ add_action( 'add_meta_boxes', array( $this, 'register_metabox' ), 99 );
83
+ add_action( 'save_post', array( $this, 'save_postdata' ), 10, 1 );
84
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ), 15 );
85
+
86
+ add_filter( 'yit_icons_screen_ids', array( $this, 'add_screen_ids_for_icons' ) );
87
+
88
+ add_action( 'wp_ajax_yith_plugin_fw_save_toggle_element_metabox', array( $this, 'save_toggle_element' ) );
89
+ }
90
+
91
+ /**
92
+ * Add Screen ids to include icons
93
+ *
94
+ * @param array $screen_ids The screen IDs array.
95
+ *
96
+ * @return array
97
+ */
98
+ public function add_screen_ids_for_icons( $screen_ids ) {
99
+ return array_unique( array_merge( $screen_ids, (array) $this->options['pages'] ) );
100
+ }
101
+
102
+ /**
103
+ * Enqueue script and styles in admin side.
104
+ */
105
+ public function enqueue() {
106
+ $enqueue = function_exists( 'get_current_screen' ) && get_current_screen() && in_array( get_current_screen()->id, (array) $this->options['pages'], true );
107
+ $enqueue = apply_filters( 'yith_plugin_fw_metabox_enqueue_styles_and_scripts', $enqueue, $this );
108
+
109
+ if ( $enqueue ) {
110
+ wp_enqueue_media();
111
+
112
+ wp_enqueue_style( 'woocommerce_admin_styles' );
113
+
114
+ wp_enqueue_style( 'yith-plugin-fw-fields' );
115
+ wp_enqueue_style( 'wp-color-picker' );
116
+ wp_enqueue_style( 'yit-plugin-metaboxes' );
117
+ wp_enqueue_style( 'jquery-ui-style' );
118
+
119
+ wp_enqueue_script( 'yit-metabox' );
120
+ wp_enqueue_script( 'yith-plugin-fw-fields' );
121
+ }
122
+ }
123
+
124
+ /**
125
+ * Set the meta-box options.
126
+ *
127
+ * @param array $options The options.
128
+ */
129
+ public function set_options( $options = array() ) {
130
+ $this->options = $options;
131
+ }
132
+
133
+ /**
134
+ * Set the tabs.
135
+ */
136
+ public function set_tabs() {
137
+ if ( ! isset( $this->options['tabs'] ) ) {
138
+ return;
139
+ }
140
+ $this->tabs = $this->options['tabs'];
141
+ if ( isset( $this->tabs['settings']['fields'] ) ) {
142
+ $this->tabs['settings']['fields'] = array_filter( $this->tabs['settings']['fields'] );
143
+ }
144
+ }
145
+
146
+
147
+ /**
148
+ * Add tab to the meta-box
149
+ *
150
+ * @param array $tab The new tab to be added add to the meta-box.
151
+ * @param string $where Where to insert the tab: after or before the $refer.
152
+ * @param null $refer An existent tab of the meta-box.
153
+ */
154
+ public function add_tab( $tab, $where = 'after', $refer = null ) {
155
+ if ( ! is_null( $refer ) ) {
156
+ $ref_pos = array_search( $refer, array_keys( $this->tabs ), true );
157
+ if ( false !== $ref_pos ) {
158
+ if ( 'after' === $where ) {
159
+ $this->tabs = array_slice( $this->tabs, 0, $ref_pos + 1, true ) + $tab + array_slice( $this->tabs, $ref_pos + 1, count( $this->tabs ) - 1, true );
160
+ } else {
161
+ $this->tabs = array_slice( $this->tabs, 0, $ref_pos, true ) + $tab + array_slice( $this->tabs, $ref_pos, count( $this->tabs ), true );
162
+ }
163
+ }
164
+ } else {
165
+ $this->tabs = array_merge( $tab, $this->tabs );
166
+ }
167
+
168
+ }
169
+
170
+ /**
171
+ * Remove a tab from the tabs of meta-box.
172
+ *
173
+ * @param string $tab_id The tab ID.
174
+ */
175
+ public function remove_tab( $tab_id ) {
176
+ if ( isset( $this->tabs[ $tab_id ] ) ) {
177
+ unset( $this->tabs[ $tab_id ] );
178
+ }
179
+ }
180
+
181
+ /**
182
+ * Add a field inside a tab of meta-box
183
+ *
184
+ * @param string $tab_id The id of the tabs where add the field.
185
+ * @param array $args The field to add.
186
+ * @param string $where Where to insert the field: after or before the $refer.
187
+ * @param null $refer An existent field inside tab.
188
+ */
189
+ public function add_field( $tab_id, $args, $where = 'after', $refer = null ) {
190
+ if ( isset( $this->tabs[ $tab_id ] ) ) {
191
+
192
+ $cf = $this->tabs[ $tab_id ]['fields'];
193
+ if ( ! is_null( $refer ) ) {
194
+ $ref_pos = array_search( $refer, array_keys( $cf ), true );
195
+ if ( false !== $ref_pos ) {
196
+ if ( 'after' === $where ) {
197
+ $this->tabs[ $tab_id ]['fields'] = array_slice( $cf, 0, $ref_pos + 1, true ) + $args + array_slice( $cf, $ref_pos, count( $cf ) - 1, true );
198
+
199
+ } elseif ( 'before' === $where ) {
200
+ $this->tabs[ $tab_id ]['fields'] = array_slice( $cf, 0, $ref_pos, true ) + $args + array_slice( $cf, $ref_pos, count( $cf ), true );
201
+ }
202
+ }
203
+ } else {
204
+ if ( 'first' === $where ) {
205
+ $this->tabs[ $tab_id ]['fields'] = $args + $cf;
206
+ } else {
207
+ $this->tabs[ $tab_id ]['fields'] = array_merge( $this->tabs[ $tab_id ]['fields'], $args );
208
+ }
209
+ }
210
+ }
211
+ }
212
+
213
+ /**
214
+ * Remove a field from the meta-box, search inside the tabs and remove it if exists.
215
+ *
216
+ * @param string $field_id The field ID.
217
+ */
218
+ public function remove_field( $field_id ) {
219
+ foreach ( $this->tabs as $tab_name => $tab ) {
220
+ if ( isset( $tab['fields'][ $field_id ] ) ) {
221
+ unset( $this->tabs[ $tab_name ]['fields'][ $field_id ] );
222
+ }
223
+ }
224
+ }
225
+
226
+ /**
227
+ * Order tabs and fields and set id and name for each field.
228
+ */
229
+ public function reorder_tabs() {
230
+ foreach ( $this->tabs as $tab_name => $tab ) {
231
+ foreach ( $tab['fields'] as $id_field => $field ) {
232
+ $this->tabs[ $tab_name ]['fields'][ $id_field ]['private'] = ( isset( $field['private'] ) ) ? $field['private'] : true;
233
+ if ( empty( $this->tabs[ $tab_name ]['fields'][ $id_field ]['id'] ) ) {
234
+ $this->tabs[ $tab_name ]['fields'][ $id_field ]['id'] = $this->get_option_metabox_id( $id_field, $this->tabs[ $tab_name ]['fields'][ $id_field ]['private'] );
235
+ }
236
+ if ( empty( $this->tabs[ $tab_name ]['fields'][ $id_field ]['name'] ) ) {
237
+ $this->tabs[ $tab_name ]['fields'][ $id_field ]['name'] = $this->get_option_metabox_name( $this->tabs[ $tab_name ]['fields'][ $id_field ]['id'] );
238
+ }
239
+ }
240
+ }
241
+
242
+ }
243
+
244
+ /**
245
+ * Get the option key for a specific field
246
+ *
247
+ * @param string $field_id The field ID.
248
+ * @param bool $private If true, add an underscore before the ID.
249
+ *
250
+ * @return string
251
+ */
252
+ public function get_option_metabox_id( $field_id, $private = true ) {
253
+ if ( $private ) {
254
+ return '_' . $field_id;
255
+ } else {
256
+ return $field_id;
257
+ }
258
+ }
259
+
260
+ /**
261
+ * Get meta-box field name
262
+ * Return the name of the field, this name will be used as attribute name of the input field
263
+ *
264
+ * @param string $field_id The field ID.
265
+ * @param bool $private If true, add an underscore before the ID.
266
+ *
267
+ * @return string
268
+ */
269
+ public function get_option_metabox_name( $field_id, $private = true ) {
270
+ $db_name = apply_filters( 'yit_metaboxes_option_main_name', 'yit_metaboxes' );
271
+ $return = $db_name . '[';
272
+
273
+ if ( ! strpos( $field_id, '[' ) ) {
274
+ return $return . $field_id . ']';
275
+ }
276
+ $return .= substr( $field_id, 0, strpos( $field_id, '[' ) );
277
+ $return .= ']';
278
+ $return .= substr( $field_id, strpos( $field_id, '[' ) );
279
+
280
+ return $return;
281
+ }
282
+
283
+ /**
284
+ * Register the meta-box
285
+ *
286
+ * @param string $post_type The post-type.
287
+ */
288
+ public function register_metabox( $post_type ) {
289
+ if ( in_array( $post_type, (array) $this->options['pages'], true ) ) {
290
+ add_meta_box( $this->id, $this->options['label'], array( $this, 'show' ), $post_type, $this->options['context'], $this->options['priority'] );
291
+ }
292
+ }
293
+
294
+ /**
295
+ * Show the meta-box
296
+ */
297
+ public function show() {
298
+ $this->reorder_tabs();
299
+
300
+ $args = array(
301
+ 'tabs' => $this->tabs,
302
+ 'class' => isset( $this->options['class'] ) ? $this->options['class'] : '',
303
+ );
304
+
305
+ yit_plugin_get_template( YIT_CORE_PLUGIN_PATH, 'metaboxes/tab.php', $args );
306
+ }
307
+
308
+ /**
309
+ * Save the post data in the database when saving the post
310
+ *
311
+ * @param int $post_id The post ID.
312
+ *
313
+ * @return int
314
+ */
315
+ public function save_postdata( $post_id ) {
316
+ if ( ! isset( $_POST['yit_metaboxes_nonce'] ) || ! wp_verify_nonce( wp_unslash( $_POST['yit_metaboxes_nonce'] ), 'metaboxes-fields-nonce' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
317
+ return $post_id;
318
+ }
319
+
320
+ $allow_ajax = isset( $_REQUEST['yith_metabox_allow_ajax_saving'] ) && sanitize_key( wp_unslash( $_REQUEST['yith_metabox_allow_ajax_saving'] ) ) === $this->id;
321
+ if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX && ! $allow_ajax ) ) {
322
+ return $post_id;
323
+ }
324
+
325
+ if ( isset( $_POST['post_type'] ) ) {
326
+ $post_type = sanitize_key( wp_unslash( $_POST['post_type'] ) );
327
+ } else {
328
+ return $post_id;
329
+ }
330
+
331
+ if ( 'page' === $post_type ) {
332
+ if ( ! current_user_can( 'edit_page', $post_id ) ) {
333
+ return $post_id;
334
+ }
335
+ } else {
336
+ if ( ! current_user_can( 'edit_post', $post_id ) ) {
337
+ return $post_id;
338
+ }
339
+ }
340
+
341
+ if ( ! in_array( $post_type, (array) $this->options['pages'], true ) ) {
342
+ return $post_id;
343
+ }
344
+
345
+ if ( isset( $_POST['yit_metaboxes'] ) ) {
346
+ $yit_metabox_data = wp_unslash( $_POST['yit_metaboxes'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
347
+
348
+ if ( is_array( $yit_metabox_data ) ) {
349
+ foreach ( $yit_metabox_data as $field_name => $field_value ) {
350
+ if ( ! add_post_meta( $post_id, $field_name, $field_value, true ) ) {
351
+ update_post_meta( $post_id, $field_name, $field_value );
352
+ }
353
+ }
354
+ }
355
+ }
356
+
357
+ $this->sanitize_and_save_fields( $post_id );
358
+
359
+ return $post_id;
360
+ }
361
+
362
+ /**
363
+ * Sanitize fields
364
+ *
365
+ * @param int $post_id The post ID.
366
+ *
367
+ * @since 3.2.1
368
+ * @deprecated since 3.4.8
369
+ */
370
+ public function sanitize_fields( $post_id ) {
371
+ $this->sanitize_and_save_fields( $post_id );
372
+ }
373
+
374
+ /**
375
+ * Sanitize and save fields of the Meta-box.
376
+ *
377
+ * @param int $post_id The post ID.
378
+ *
379
+ * @since 3.4.8
380
+ */
381
+ public function sanitize_and_save_fields( $post_id ) {
382
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
383
+ $this->reorder_tabs();
384
+ $tabs_to_sanitize = $this->tabs;
385
+ $allow_ajax = isset( $_REQUEST['yith_metabox_allow_ajax_saving'] ) && sanitize_key( wp_unslash( $_REQUEST['yith_metabox_allow_ajax_saving'] ) ) === $this->id;
386
+ $ajax_partial_saving_tab = isset( $_REQUEST['yith_metabox_allow_ajax_partial_saving_tab'] ) ? sanitize_key( wp_unslash( $_REQUEST['yith_metabox_allow_ajax_partial_saving_tab'] ) ) : false;
387
+
388
+ if ( defined( 'DOING_AJAX' ) && DOING_AJAX && ! $allow_ajax ) {
389
+ return;
390
+ } elseif ( $ajax_partial_saving_tab ) {
391
+ if ( array_key_exists( $ajax_partial_saving_tab, $tabs_to_sanitize ) ) {
392
+ $tabs_to_sanitize = array( $ajax_partial_saving_tab => $tabs_to_sanitize[ $ajax_partial_saving_tab ] );
393
+ } else {
394
+ return;
395
+ }
396
+ }
397
+
398
+ foreach ( $tabs_to_sanitize as $tab ) {
399
+ foreach ( $tab['fields'] as $field ) {
400
+ $this->sanitize_and_save_field( $field, $post_id );
401
+ }
402
+ }
403
+ // phpcs:enable
404
+ }
405
+
406
+ /**
407
+ * Sanitize and save a single field
408
+ *
409
+ * @param array $field The field.
410
+ * @param int $post_id The post ID.
411
+ *
412
+ * @since 3.4.8
413
+ */
414
+ public function sanitize_and_save_field( $field, $post_id ) {
415
+ // phpcs:disable WordPress.Security.NonceVerification.Missing
416
+ if ( in_array( $field['type'], array( 'title' ), true ) ) {
417
+ return;
418
+ }
419
+
420
+ $meta_box_data = isset( $_POST['yit_metaboxes'] ) ? wp_unslash( $_POST['yit_metaboxes'] ) : array(); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
421
+
422
+ if ( isset( $meta_box_data[ $field['id'] ] ) ) {
423
+ if ( in_array( $field['type'], array( 'onoff', 'checkbox' ), true ) ) {
424
+ update_post_meta( $post_id, $field['id'], '1' );
425
+ } elseif ( in_array( $field['type'], array( 'toggle-element' ), true ) ) {
426
+ if ( isset( $field['elements'] ) && $field['elements'] ) {
427
+ $elements_value = $meta_box_data[ $field['id'] ];
428
+ if ( $elements_value ) {
429
+ if ( isset( $elements_value['box_id'] ) ) {
430
+ unset( $elements_value['box_id'] );
431
+ }
432
+
433
+ foreach ( $field['elements'] as $element ) {
434
+ foreach ( $elements_value as $key => $element_value ) {
435
+ if ( isset( $field['onoff_field'] ) ) {
436
+ $elements_value[ $key ][ $field['onoff_field']['id'] ] = ! isset( $element_value[ $field['onoff_field']['id'] ] ) ? 0 : $element_value[ $field['onoff_field']['id'] ];
437
+ }
438
+ if ( in_array( $element['type'], array( 'onoff', 'checkbox' ), true ) ) {
439
+ $elements_value[ $key ][ $element['id'] ] = ! isset( $element_value[ $element['id'] ] ) ? 0 : 1;
440
+ }
441
+
442
+ if ( ! empty( $element['yith-sanitize-callback'] ) && is_callable( $element['yith-sanitize-callback'] ) ) {
443
+ $elements_value[ $key ][ $element['id'] ] = call_user_func( $element['yith-sanitize-callback'], $elements_value[ $key ][ $element['id'] ] );
444
+ }
445
+ }
446
+ }
447
+ }
448
+
449
+ update_post_meta( $post_id, $field['id'], maybe_serialize( $elements_value ) );
450
+ }
451
+ } else {
452
+ $value = $meta_box_data[ $field['id'] ];
453
+ if ( ! empty( $field['yith-sanitize-callback'] ) && is_callable( $field['yith-sanitize-callback'] ) ) {
454
+ $value = call_user_func( $field['yith-sanitize-callback'], $value );
455
+ }
456
+ add_post_meta( $post_id, $field['id'], $value, true ) || update_post_meta( $post_id, $field['id'], $value );
457
+ }
458
+ } elseif ( in_array( $field['type'], array( 'onoff', 'checkbox' ), true ) ) {
459
+ update_post_meta( $post_id, $field['id'], '0' );
460
+ } elseif ( in_array( $field['type'], array( 'checkbox-array' ), true ) ) {
461
+ update_post_meta( $post_id, $field['id'], array() );
462
+ } else {
463
+ delete_post_meta( $post_id, $field['id'] );
464
+ }
465
+ // phpcs:enable
466
+ }
467
+
468
+ /**
469
+ * Remove a list of fields from the meta-box, search inside the tabs and remove it if exists
470
+ *
471
+ * @param array $fields Fields.
472
+ *
473
+ * @since 2.0.0
474
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
475
+ */
476
+ public function remove_fields( $fields ) {
477
+ foreach ( $fields as $k => $field ) {
478
+ $this->remove_field( $field );
479
+ }
480
+ }
481
+
482
+ /**
483
+ * Save the element toggle via AJAX.
484
+ *
485
+ * @since 3.2.1
486
+ * @author Emanuela Castorina
487
+ */
488
+ public function save_toggle_element() {
489
+ if ( ! isset( $_REQUEST['post_ID'] ) ) {
490
+ return;
491
+ }
492
+
493
+ if ( ! isset( $_REQUEST['yit_metaboxes_nonce'] ) || ! wp_verify_nonce( wp_unslash( $_REQUEST['yit_metaboxes_nonce'] ), 'metaboxes-fields-nonce' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
494
+ return;
495
+ }
496
+
497
+ $post_id = isset( $_REQUEST['post_ID'] ) ? absint( $_REQUEST['post_ID'] ) : false;
498
+ if ( ! $post_id ) {
499
+ return;
500
+ }
501
+
502
+ if ( isset( $_REQUEST['yit_metaboxes'], $_REQUEST['toggle_id'], $_REQUEST['metabox_tab'], $_REQUEST['yit_metaboxes'][ $_REQUEST['toggle_id'] ] ) ) {
503
+ $meta_box_data = isset( $_REQUEST['yit_metaboxes'] ) ? wp_unslash( $_REQUEST['yit_metaboxes'] ) : array(); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
504
+ $metabox_tab = sanitize_key( wp_unslash( $_REQUEST['metabox_tab'] ) );
505
+ $field_id = sanitize_key( wp_unslash( $_REQUEST['toggle_id'] ) );
506
+ if ( strpos( $field_id, '_' ) === 0 ) {
507
+ $field_id = substr( $field_id, 1 );
508
+ }
509
+
510
+ if ( is_array( $meta_box_data ) ) {
511
+ $this->reorder_tabs();
512
+ $tabs = $this->tabs;
513
+
514
+ if ( isset( $tabs[ $metabox_tab ], $tabs[ $metabox_tab ]['fields'] ) && isset( $tabs[ $metabox_tab ]['fields'][ $field_id ] ) ) {
515
+ $field = $tabs[ $metabox_tab ]['fields'][ $field_id ];
516
+ if ( $field ) {
517
+ $this->sanitize_and_save_field( $field, $post_id );
518
+ }
519
+ }
520
+ }
521
+ } elseif ( isset( $_REQUEST['toggle_id'] ) ) {
522
+ $field_id = sanitize_key( wp_unslash( $_REQUEST['toggle_id'] ) );
523
+ delete_post_meta( $post_id, $field_id );
524
+ }
525
+ }
526
+ }
527
+ }
528
+
529
+ if ( ! function_exists( 'yit_metabox' ) ) {
530
+ /**
531
+ * Return the meta-box instance.
532
+ *
533
+ * @param string $id The meta-box id.
534
+ *
535
+ * @return YIT_Metabox
536
+ */
537
+ function yit_metabox( $id ) {
538
+ return YIT_Metabox::instance( $id );
539
+ }
540
+ }
plugin-fw/includes/class-yit-plugin-common.php ADDED
@@ -0,0 +1,1181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Plugin Common Class.
4
+ *
5
+ * @class YIT_Plugin_Common
6
+ * @package YITH\PluginFramework\Classes
7
+ */
8
+
9
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
10
+
11
+ if ( ! class_exists( 'YIT_Plugin_Common' ) ) {
12
+ /**
13
+ * YIT_Plugin_Common class.
14
+ *
15
+ * @deprecated 3.5
16
+ */
17
+ class YIT_Plugin_Common {
18
+
19
+ /**
20
+ * Config array
21
+ *
22
+ * @var array
23
+ */
24
+ public static $config = array(
25
+ 'slider' => array( 'nivo', 'elegant' ),
26
+ 'awesome_icons' => array(
27
+ '' => 'no-icon',
28
+ 'f042' => 'adjust',
29
+ 'f170' => 'adn',
30
+ 'f037' => 'align-center',
31
+ 'f039' => 'align-justify',
32
+ 'f036' => 'align-left',
33
+ 'f038' => 'align-right',
34
+ 'f0f9' => 'ambulance',
35
+ 'f13d' => 'anchor',
36
+ 'f17b' => 'android',
37
+ 'f103' => 'angle-double-down',
38
+ 'f100' => 'angle-double-left',
39
+ 'f101' => 'angle-double-right',
40
+ 'f102' => 'angle-double-up',
41
+ 'f107' => 'angle-down',
42
+ 'f104' => 'angle-left',
43
+ 'f105' => 'angle-right',
44
+ 'f106' => 'angle-up',
45
+ 'f179' => 'apple',
46
+ 'f187' => 'archive',
47
+ 'f0ab' => 'arrow-circle-down',
48
+ 'f0a8' => 'arrow-circle-left',
49
+ 'f01a' => 'arrow-circle-o-down',
50
+ 'f190' => 'arrow-circle-o-left',
51
+ 'f18e' => 'arrow-circle-o-right',
52
+ 'f01b' => 'arrow-circle-o-up',
53
+ 'f0a9' => 'arrow-circle-right',
54
+ 'f0aa' => 'arrow-circle-up',
55
+ 'f063' => 'arrow-down',
56
+ 'f060' => 'arrow-left',
57
+ 'f061' => 'arrow-right',
58
+ 'f062' => 'arrow-up',
59
+ 'f047' => 'arrows',
60
+ 'f0b2' => 'arrows-alt',
61
+ 'f07e' => 'arrows-h',
62
+ 'f07d' => 'arrows-v',
63
+ 'f069' => 'asterisk',
64
+ 'f04a' => 'backward',
65
+ 'f05e' => 'ban',
66
+ 'f080' => 'bar-chart-o',
67
+ 'f02a' => 'barcode',
68
+ 'f0c9' => 'bars',
69
+ 'f0fc' => 'beer',
70
+ 'f0f3' => 'bell',
71
+ 'f0a2' => 'bell-o',
72
+ 'f171' => 'bitbucket',
73
+ 'f172' => 'bitbucket-square',
74
+ 'f032' => 'bold',
75
+ 'f0e7' => 'bolt',
76
+ 'f02d' => 'book',
77
+ 'f02e' => 'bookmark',
78
+ 'f097' => 'bookmark-o',
79
+ 'f0b1' => 'briefcase',
80
+ 'f15a' => 'btc',
81
+ 'f188' => 'bug',
82
+ 'f0f7' => 'building-o',
83
+ 'f0a1' => 'bullhorn',
84
+ 'f140' => 'bullseye',
85
+ 'f073' => 'calendar',
86
+ 'f133' => 'calendar-o',
87
+ 'f030' => 'camera',
88
+ 'f083' => 'camera-retro',
89
+ 'f0d7' => 'caret-down',
90
+ 'f0d9' => 'caret-left',
91
+ 'f0da' => 'caret-right',
92
+ 'f150' => 'caret-square-o-down',
93
+ 'f191' => 'caret-square-o-left',
94
+ 'f152' => 'caret-square-o-right',
95
+ 'f151' => 'caret-square-o-up',
96
+ 'f0d8' => 'caret-up',
97
+ 'f0a3' => 'certificate',
98
+ 'f127' => 'chain-broken',
99
+ 'f00c' => 'check',
100
+ 'f058' => 'check-circle',
101
+ 'f05d' => 'check-circle-o',
102
+ 'f14a' => 'check-square',
103
+ 'f046' => 'check-square-o',
104
+ 'f13a' => 'chevron-circle-down',
105
+ 'f137' => 'chevron-circle-left',
106
+ 'f138' => 'chevron-circle-right',
107
+ 'f139' => 'chevron-circle-up',
108
+ 'f078' => 'chevron-down',
109
+ 'f053' => 'chevron-left',
110
+ 'f054' => 'chevron-right',
111
+ 'f077' => 'chevron-up',
112
+ 'f10c' => 'circle-o',
113
+ 'f0ea' => 'clipboard',
114
+ 'f017' => 'clock-o',
115
+ 'f0c2' => 'cloud',
116
+ 'f0ed' => 'cloud-download',
117
+ 'f0ee' => 'cloud-upload',
118
+ 'f121' => 'code',
119
+ 'f126' => 'code-fork',
120
+ 'f0f4' => 'coffee',
121
+ 'f013' => 'cog',
122
+ 'f085' => 'cogs',
123
+ 'f0db' => 'columns',
124
+ 'f075' => 'comment',
125
+ 'f0e5' => 'comment-o',
126
+ 'f086' => 'comments',
127
+ 'f0e6' => 'comments-o',
128
+ 'f14e' => 'compass',
129
+ 'f066' => 'compress',
130
+ 'f09d' => 'credit-card',
131
+ 'f125' => 'crop',
132
+ 'f05b' => 'crosshairs',
133
+ 'f13c' => 'css3',
134
+ 'f0f5' => 'cutlery',
135
+ 'f108' => 'desktop',
136
+ 'f192' => 'dot-circle-o',
137
+ 'f019' => 'download',
138
+ 'f17d' => 'dribbble',
139
+ 'f16b' => 'dropbox',
140
+ 'f052' => 'eject',
141
+ 'f141' => 'ellipsis-h',
142
+ 'f142' => 'ellipsis-v',
143
+ 'f0e0' => 'envelope',
144
+ 'f003' => 'envelope-o',
145
+ 'f12d' => 'eraser',
146
+ 'f153' => 'eur',
147
+ 'f0ec' => 'exchange',
148
+ 'f12a' => 'exclamation',
149
+ 'f06a' => 'exclamation-circle',
150
+ 'f071' => 'exclamation-triangle',
151
+ 'f065' => 'expand',
152
+ 'f08e' => 'external-link',
153
+ 'f14c' => 'external-link-square',
154
+ 'f06e' => 'eye',
155
+ 'f070' => 'eye-slash',
156
+ 'f09a' => 'facebook',
157
+ 'f082' => 'facebook-square',
158
+ 'f049' => 'fast-backward',
159
+ 'f050' => 'fast-forward',
160
+ 'f182' => 'female',
161
+ 'f0fb' => 'fighter-jet',
162
+ 'f15b' => 'file',
163
+ 'f016' => 'file-o',
164
+ 'f15c' => 'file-text',
165
+ 'f0f6' => 'file-text-o',
166
+ 'f0c5' => 'files-o',
167
+ 'f008' => 'film',
168
+ 'f0b0' => 'filter',
169
+ 'f06d' => 'fire',
170
+ 'f134' => 'fire-extinguisher',
171
+ 'f024' => 'flag',
172
+ 'f11e' => 'flag-checkered',
173
+ 'f11d' => 'flag-o',
174
+ 'f0c3' => 'flask',
175
+ 'f16e' => 'flickr',
176
+ 'f0c7' => 'floppy-o',
177
+ 'f07b' => 'folder',
178
+ 'f114' => 'folder-o',
179
+ 'f07c' => 'folder-open',
180
+ 'f115' => 'folder-open-o',
181
+ 'f031' => 'font',
182
+ 'f04e' => 'forward',
183
+ 'f180' => 'foursquare',
184
+ 'f119' => 'frown-o',
185
+ 'f11b' => 'gamepad',
186
+ 'f0e3' => 'gavel',
187
+ 'f154' => 'gbp',
188
+ 'f06b' => 'gift',
189
+ 'f09b' => 'github',
190
+ 'f113' => 'github-alt',
191
+ 'f092' => 'github-square',
192
+ 'f184' => 'gittip',
193
+ 'f000' => 'glass',
194
+ 'f0ac' => 'globe',
195
+ 'f0d5' => 'google-plus',
196
+ 'f0d4' => 'google-plus-square',
197
+ 'f0fd' => 'h-square',
198
+ 'f0a7' => 'hand-o-down',
199
+ 'f0a5' => 'hand-o-left',
200
+ 'f0a4' => 'hand-o-right',
201
+ 'f0a6' => 'hand-o-up',
202
+ 'f0a0' => 'hdd-o',
203
+ 'f025' => 'headphones',
204
+ 'f004' => 'heart',
205
+ 'f08a' => 'heart-o',
206
+ 'f015' => 'home',
207
+ 'f0f8' => 'hospital-o',
208
+ 'f13b' => 'html5',
209
+ 'f01c' => 'inbox',
210
+ 'f03c' => 'indent',
211
+ 'f129' => 'info',
212
+ 'f05a' => 'info-circle',
213
+ 'f156' => 'inr',
214
+ 'f16d' => 'instagram',
215
+ 'f033' => 'italic',
216
+ 'f157' => 'jpy',
217
+ 'f084' => 'key',
218
+ 'f11c' => 'keyboard-o',
219
+ 'f159' => 'krw',
220
+ 'f109' => 'laptop',
221
+ 'f06c' => 'leaf',
222
+ 'f094' => 'lemon-o',
223
+ 'f149' => 'level-down',
224
+ 'f148' => 'level-up',
225
+ 'f0eb' => 'lightbulb-o',
226
+ 'f0c1' => 'link',
227
+ 'f0e1' => 'linkedin',
228
+ 'f08c' => 'linkedin-square',
229
+ 'f17c' => 'linux',
230
+ 'f03a' => 'list',
231
+ 'f022' => 'list-alt',
232
+ 'f0cb' => 'list-ol',
233
+ 'f0ca' => 'list-ul',
234
+ 'f124' => 'location-arrow',
235
+ 'f023' => 'lock',
236
+ 'f175' => 'long-arrow-down',
237
+ 'f177' => 'long-arrow-left',
238
+ 'f178' => 'long-arrow-right',
239
+ 'f176' => 'long-arrow-up',
240
+ 'f0d0' => 'magic',
241
+ 'f076' => 'magnet',
242
+ 'f183' => 'male',
243
+ 'f041' => 'map-marker',
244
+ 'f136' => 'maxcdn',
245
+ 'f0fa' => 'medkit',
246
+ 'f11a' => 'meh-o',
247
+ 'f130' => 'microphone',
248
+ 'f131' => 'microphone-slash',
249
+ 'f068' => 'minus',
250
+ 'f056' => 'minus-circle',
251
+ 'f146' => 'minus-square',
252
+ 'f147' => 'minus-square-o',
253
+ 'f10b' => 'mobile',
254
+ 'f0d6' => 'money',
255
+ 'f186' => 'moon-o',
256
+ 'f001' => 'music',
257
+ 'f03b' => 'outdent',
258
+ 'f18c' => 'pagelines',
259
+ 'f0c6' => 'paperclip',
260
+ 'f04c' => 'pause',
261
+ 'f040' => 'pencil',
262
+ 'f14b' => 'pencil-square',
263
+ 'f044' => 'pencil-square-o',
264
+ 'f095' => 'phone',
265
+ 'f098' => 'phone-square',
266
+ 'f03e' => 'picture-o',
267
+ 'f0d2' => 'pinterest',
268
+ 'f0d3' => 'pinterest-square',
269
+ 'f072' => 'plane',
270
+ 'f04b' => 'play',
271
+ 'f144' => 'play-circle',
272
+ 'f01d' => 'play-circle-o',
273
+ 'f067' => 'plus',
274
+ 'f055' => 'plus-circle',
275
+ 'f0fe' => 'plus-square',
276
+ 'f196' => 'plus-square-o',
277
+ 'f011' => 'power-off',
278
+ 'f02f' => 'print',
279
+ 'f12e' => 'puzzle-piece',
280
+ 'f029' => 'qrcode',
281
+ 'f128' => 'question',
282
+ 'f059' => 'question-circle',
283
+ 'f10d' => 'quote-left',
284
+ 'f10e' => 'quote-right',
285
+ 'f074' => 'random',
286
+ 'f021' => 'refresh',
287
+ 'f18b' => 'renren',
288
+ 'f01e' => 'repeat',
289
+ 'f112' => 'reply',
290
+ 'f122' => 'reply-all',
291
+ 'f079' => 'retweet',
292
+ 'f018' => 'road',
293
+ 'f135' => 'rocket',
294
+ 'f09e' => 'rss',
295
+ 'f143' => 'rss-square',
296
+ 'f158' => 'rub',
297
+ 'f0c4' => 'scissors',
298
+ 'f002' => 'search',
299
+ 'f010' => 'search-minus',
300
+ 'f00e' => 'search-plus',
301
+ 'f064' => 'share',
302
+ 'f14d' => 'share-square',
303
+ 'f045' => 'share-square-o',
304
+ 'f132' => 'shield',
305
+ 'f07a' => 'shopping-cart',
306
+ 'f090' => 'sign-in',
307
+ 'f08b' => 'sign-out',
308
+ 'f012' => 'signal',
309
+ 'f0e8' => 'sitemap',
310
+ 'f17e' => 'skype',
311
+ 'f118' => 'smile-o',
312
+ 'f0dc' => 'sort',
313
+ 'f15d' => 'sort-alpha-asc',
314
+ 'f15e' => 'sort-alpha-desc',
315
+ 'f160' => 'sort-amount-asc',
316
+ 'f161' => 'sort-amount-desc',
317
+ 'f0dd' => 'sort-asc',
318
+ 'f0de' => 'sort-desc',
319
+ 'f162' => 'sort-numeric-asc',
320
+ 'f163' => 'sort-numeric-desc',
321
+ 'f110' => 'spinner',
322
+ 'f0c8' => 'square',
323
+ 'f096' => 'square-o',
324
+ 'f18d' => 'stack-exchange',
325
+ 'f16c' => 'stack-overflow',
326
+ 'f005' => 'star',
327
+ 'f089' => 'star-half',
328
+ 'f123' => 'star-half-o',
329
+ 'f006' => 'star-o',
330
+ 'f048' => 'step-backward',
331
+ 'f051' => 'step-forward',
332
+ 'f0f1' => 'stethoscope',
333
+ 'f04d' => 'stop',
334
+ 'f0cc' => 'strikethrough',
335
+ 'f12c' => 'subscript',
336
+ 'f0f2' => 'suitcase',
337
+ 'f185' => 'sun-o',
338
+ 'f12b' => 'superscript',
339
+ 'f0ce' => 'table',
340
+ 'f10a' => 'tablet',
341
+ 'f0e4' => 'tachometer',
342
+ 'f02b' => 'tag',
343
+ 'f02c' => 'tags',
344
+ 'f0ae' => 'tasks',
345
+ 'f120' => 'terminal',
346
+ 'f034' => 'text-height',
347
+ 'f035' => 'text-width',
348
+ 'f00a' => 'th',
349
+ 'f009' => 'th-large',
350
+ 'f00b' => 'th-list',
351
+ 'f08d' => 'thumb-tack',
352
+ 'f165' => 'thumbs-down',
353
+ 'f088' => 'thumbs-o-down',
354
+ 'f087' => 'thumbs-o-up',
355
+ 'f164' => 'thumbs-up',
356
+ 'f145' => 'ticket',
357
+ 'f00d' => 'times',
358
+ 'f057' => 'times-circle',
359
+ 'f05c' => 'times-circle-o',
360
+ 'f043' => 'tint',
361
+ 'f014' => 'trash-o',
362
+ 'f181' => 'trello',
363
+ 'f091' => 'trophy',
364
+ 'f0d1' => 'truck',
365
+ 'f195' => 'try',
366
+ 'f173' => 'tumblr',
367
+ 'f174' => 'tumblr-square',
368
+ 'f099' => 'twitter',
369
+ 'f081' => 'twitter-square',
370
+ 'f0e9' => 'umbrella',
371
+ 'f0cd' => 'underline',
372
+ 'f0e2' => 'undo',
373
+ 'f09c' => 'unlock',
374
+ 'f13e' => 'unlock-alt',
375
+ 'f093' => 'upload',
376
+ 'f155' => 'usd',
377
+ 'f007' => 'user',
378
+ 'f0f0' => 'user-md',
379
+ 'f0c0' => 'users',
380
+ 'f03d' => 'video-camera',
381
+ 'f194' => 'vimeo-square',
382
+ 'f189' => 'vk',
383
+ 'f027' => 'volume-down',
384
+ 'f026' => 'volume-off',
385
+ 'f028' => 'volume-up',
386
+ 'f18a' => 'weibo',
387
+ 'f193' => 'wheelchair',
388
+ 'f17a' => 'windows',
389
+ 'f0ad' => 'wrench',
390
+ 'f168' => 'xing',
391
+ 'f169' => 'xing-square',
392
+ 'f167' => 'youtube',
393
+ 'f16a' => 'youtube-play',
394
+ 'f166' => 'youtube-square',
395
+ ),
396
+ 'awesome_icons2' => array(
397
+ '\f042' => 'adjust',
398
+ '\f170' => 'adn',
399
+ '\f037' => 'align-center',
400
+ '\f039' => 'align-justify',
401
+ '\f036' => 'align-left',
402
+ '\f038' => 'align-right',
403
+ '\f0f9' => 'ambulance',
404
+ '\f13d' => 'anchor',
405
+ '\f17b' => 'android',
406
+ '\f209' => 'angellist',
407
+ '\f103' => 'angle-double-down',
408
+ '\f100' => 'angle-double-left',
409
+ '\f101' => 'angle-double-right',
410
+ '\f102' => 'angle-double-up',
411
+ '\f107' => 'angle-down',
412
+ '\f104' => 'angle-left',
413
+ '\f105' => 'angle-right',
414
+ '\f106' => 'angle-up',
415
+ '\f179' => 'apple',
416
+ '\f187' => 'archive',
417
+ '\f1fe' => 'area-chart',
418
+ '\f0ab' => 'arrow-circle-down',
419
+ '\f0a8' => 'arrow-circle-left',
420
+ '\f01a' => 'arrow-circle-o-down',
421
+ '\f190' => 'arrow-circle-o-left',
422
+ '\f18e' => 'arrow-circle-o-right',
423
+ '\f01b' => 'arrow-circle-o-up',
424
+ '\f0a9' => 'arrow-circle-right',
425
+ '\f0aa' => 'arrow-circle-up',
426
+ '\f063' => 'arrow-down',
427
+ '\f060' => 'arrow-left',
428
+ '\f061' => 'arrow-right',
429
+ '\f062' => 'arrow-up',
430
+ '\f047' => 'arrows',
431
+ '\f0b2' => 'arrows-alt',
432
+ '\f07e' => 'arrows-h',
433
+ '\f07d' => 'arrows-v',
434
+ '\f069' => 'asterisk',
435
+ '\f1fa' => 'at',
436
+ '\f04a' => 'backward',
437
+ '\f05e' => 'ban',
438
+ '\f02a' => 'barcode',
439
+ '\f0fc' => 'beer',
440
+ '\f1b4' => 'behance',
441
+ '\f1b5' => 'behance-square',
442
+ '\f0f3' => 'bell',
443
+ '\f0a2' => 'bell-o',
444
+ '\f1f6' => 'bell-slash',
445
+ '\f1f7' => 'bell-slash-o',
446
+ '\f206' => 'bicycle',
447
+ '\f1e5' => 'binoculars',
448
+ '\f1fd' => 'birthday-cake',
449
+ '\f171' => 'bitbucket',
450
+ '\f172' => 'bitbucket-square',
451
+ '\f032' => 'bold',
452
+ '\f1e2' => 'bomb',
453
+ '\f02d' => 'book',
454
+ '\f02e' => 'bookmark',
455
+ '\f097' => 'bookmark-o',
456
+ '\f0b1' => 'briefcase',
457
+ '\f188' => 'bug',
458
+ '\f1ad' => 'building',
459
+ '\f0f7' => 'building-o',
460
+ '\f0a1' => 'bullhorn',
461
+ '\f140' => 'bullseye',
462
+ '\f207' => 'bus',
463
+ '\f20d' => 'buysellads',
464
+ '\f1ec' => 'calculator',
465
+ '\f073' => 'calendar',
466
+ '\f133' => 'calendar-o',
467
+ '\f030' => 'camera',
468
+ '\f083' => 'camera-retro',
469
+ '\f1b9' => 'car',
470
+ '\f0d7' => 'caret-down',
471
+ '\f0d9' => 'caret-left',
472
+ '\f0da' => 'caret-right',
473
+ '\f0d8' => 'caret-up',
474
+ '\f218' => 'cart-arrow-down',
475
+ '\f217' => 'cart-plus',
476
+ '\f20a' => 'cc',
477
+ '\f1f3' => 'cc-amex',
478
+ '\f1f2' => 'cc-discover',
479
+ '\f1f1' => 'cc-mastercard',
480
+ '\f1f4' => 'cc-paypal',
481
+ '\f1f5' => 'cc-stripe',
482
+ '\f1f0' => 'cc-visa',
483
+ '\f0a3' => 'certificate',
484
+ '\f00c' => 'check',
485
+ '\f058' => 'check-circle',
486
+ '\f05d' => 'check-circle-o',
487
+ '\f14a' => 'check-square',
488
+ '\f046' => 'check-square-o',
489
+ '\f13a' => 'chevron-circle-down',
490
+ '\f137' => 'chevron-circle-left',
491
+ '\f138' => 'chevron-circle-right',
492
+ '\f139' => 'chevron-circle-up',
493
+ '\f078' => 'chevron-down',
494
+ '\f053' => 'chevron-left',
495
+ '\f054' => 'chevron-right',
496
+ '\f077' => 'chevron-up',
497
+ '\f1ae' => 'child',
498
+ '\f111' => 'circle',
499
+ '\f10c' => 'circle-o',
500
+ '\f1ce' => 'circle-o-notch',
501
+ '\f017' => 'clock-o',
502
+ '\f0c2' => 'cloud',
503
+ '\f0ed' => 'cloud-download',
504
+ '\f0ee' => 'cloud-upload',
505
+ '\f121' => 'code',
506
+ '\f126' => 'code-fork',
507
+ '\f1cb' => 'codepen',
508
+ '\f0f4' => 'coffee',
509
+ '\f0db' => 'columns',
510
+ '\f075' => 'comment',
511
+ '\f0e5' => 'comment-o',
512
+ '\f086' => 'comments',
513
+ '\f0e6' => 'comments-o',
514
+ '\f14e' => 'compass',
515
+ '\f066' => 'compress',
516
+ '\f20e' => 'connectdevelop',
517
+ '\f1f9' => 'copyright',
518
+ '\f09d' => 'credit-card',
519
+ '\f125' => 'crop',
520
+ '\f05b' => 'crosshairs',
521
+ '\f13c' => 'css3',
522
+ '\f1b2' => 'cube',
523
+ '\f1b3' => 'cubes',
524
+ '\f0f5' => 'cutlery',
525
+ '\f210' => 'dashcube',
526
+ '\f1c0' => 'database',
527
+ '\f1a5' => 'delicious',
528
+ '\f108' => 'desktop',
529
+ '\f1bd' => 'deviantart',
530
+ '\f219' => 'diamond',
531
+ '\f1a6' => 'digg',
532
+ '\f192' => 'dot-circle-o',
533
+ '\f019' => 'download',
534
+ '\f17d' => 'dribbble',
535
+ '\f16b' => 'dropbox',
536
+ '\f1a9' => 'drupal',
537
+ '\f052' => 'eject',
538
+ '\f141' => 'ellipsis-h',
539
+ '\f142' => 'ellipsis-v',
540
+ '\f0e0' => 'envelope',
541
+ '\f003' => 'envelope-o',
542
+ '\f199' => 'envelope-square',
543
+ '\f12d' => 'eraser',
544
+ '\f153' => 'euro',
545
+ '\f0ec' => 'exchange',
546
+ '\f12a' => 'exclamation',
547
+ '\f06a' => 'exclamation-circle',
548
+ '\f065' => 'expand',
549
+ '\f08e' => 'external-link',
550
+ '\f14c' => 'external-link-square',
551
+ '\f06e' => 'eye',
552
+ '\f070' => 'eye-slash',
553
+ '\f1fb' => 'eyedropper',
554
+ '\f09a' => 'facebook-f',
555
+ '\f230' => 'facebook-official',
556
+ '\f082' => 'facebook-square',
557
+ '\f049' => 'fast-backward',
558
+ '\f050' => 'fast-forward',
559
+ '\f1ac' => 'fax',
560
+ '\f182' => 'female',
561
+ '\f0fb' => 'fighter-jet',
562
+ '\f15b' => 'file',
563
+ '\f1c9' => 'file-code-o',
564
+ '\f1c3' => 'file-excel-o',
565
+ '\f016' => 'file-o',
566
+ '\f1c1' => 'file-pdf-o',
567
+ '\f1c5' => 'file-picture-o',
568
+ '\f1c4' => 'file-powerpoint-o',
569
+ '\f1c7' => 'file-sound-o',
570
+ '\f15c' => 'file-text',
571
+ '\f0f6' => 'file-text-o',
572
+ '\f1c8' => 'file-video-o',
573
+ '\f1c2' => 'file-word-o',
574
+ '\f1c6' => 'file-zip-o',
575
+ '\f0c5' => 'files-o',
576
+ '\f008' => 'film',
577
+ '\f0b0' => 'filter',
578
+ '\f06d' => 'fire',
579
+ '\f134' => 'fire-extinguisher',
580
+ '\f024' => 'flag',
581
+ '\f11e' => 'flag-checkered',
582
+ '\f11d' => 'flag-o',
583
+ '\f0e7' => 'flash',
584
+ '\f0c3' => 'flask',
585
+ '\f16e' => 'flickr',
586
+ '\f07b' => 'folder',
587
+ '\f114' => 'folder-o',
588
+ '\f07c' => 'folder-open',
589
+ '\f115' => 'folder-open-o',
590
+ '\f031' => 'font',
591
+ '\f211' => 'forumbee',
592
+ '\f04e' => 'forward',
593
+ '\f180' => 'foursquare',
594
+ '\f119' => 'frown-o',
595
+ '\f11b' => 'gamepad',
596
+ '\f154' => 'gbp',
597
+ '\f1d1' => 'ge',
598
+ '\f013' => 'gear',
599
+ '\f085' => 'gears',
600
+ '\f1db' => 'genderless',
601
+ '\f06b' => 'gift',
602
+ '\f1d3' => 'git',
603
+ '\f1d2' => 'git-square',
604
+ '\f09b' => 'github',
605
+ '\f113' => 'github-alt',
606
+ '\f092' => 'github-square',
607
+ '\f000' => 'glass',
608
+ '\f0ac' => 'globe',
609
+ '\f1a0' => 'google',
610
+ '\f0d5' => 'google-plus',
611
+ '\f0d4' => 'google-plus-square',
612
+ '\f1ee' => 'google-wallet',
613
+ '\f184' => 'gratipay',
614
+ '\f0fd' => 'h-square',
615
+ '\f1d4' => 'hacker-news',
616
+ '\f0a7' => 'hand-o-down',
617
+ '\f0a5' => 'hand-o-left',
618
+ '\f0a4' => 'hand-o-right',
619
+ '\f0a6' => 'hand-o-up',
620
+ '\f0a0' => 'hdd-o',
621
+ '\f1dc' => 'header',
622
+ '\f025' => 'headphones',
623
+ '\f004' => 'heart',
624
+ '\f08a' => 'heart-o',
625
+ '\f21e' => 'heartbeat',
626
+ '\f1da' => 'history',
627
+ '\f015' => 'home',
628
+ '\f0f8' => 'hospital-o',
629
+ '\f236' => 'hotel',
630
+ '\f13b' => 'html5',
631
+ '\f01c' => 'inbox',
632
+ '\f03c' => 'indent',
633
+ '\f129' => 'info',
634
+ '\f05a' => 'info-circle',
635
+ '\f16d' => 'instagram',
636
+ '\f208' => 'ioxhost',
637
+ '\f033' => 'italic',
638
+ '\f1aa' => 'joomla',
639
+ '\f1cc' => 'jsfiddle',
640
+ '\f084' => 'key',
641
+ '\f11c' => 'keyboard-o',
642
+ '\f1ab' => 'language',
643
+ '\f109' => 'laptop',
644
+ '\f202' => 'lastfm',
645
+ '\f203' => 'lastfm-square',
646
+ '\f06c' => 'leaf',
647
+ '\f212' => 'leanpub',
648
+ '\f0e3' => 'legal',
649
+ '\f094' => 'lemon-o',
650
+ '\f149' => 'level-down',
651
+ '\f148' => 'level-up',
652
+ '\f0eb' => 'lightbulb-o',
653
+ '\f201' => 'line-chart',
654
+ '\f0c1' => 'link',
655
+ '\f0e1' => 'linkedin',
656
+ '\f08c' => 'linkedin-square',
657
+ '\f17c' => 'linux',
658
+ '\f03a' => 'list',
659
+ '\f022' => 'list-alt',
660
+ '\f0cb' => 'list-ol',
661
+ '\f0ca' => 'list-ul',
662
+ '\f124' => 'location-arrow',
663
+ '\f023' => 'lock',
664
+ '\f175' => 'long-arrow-down',
665
+ '\f177' => 'long-arrow-left',
666
+ '\f178' => 'long-arrow-right',
667
+ '\f176' => 'long-arrow-up',
668
+ '\f0d0' => 'magic',
669
+ '\f076' => 'magnet',
670
+ '\f183' => 'male',
671
+ '\f041' => 'map-marker',
672
+ '\f222' => 'mars',
673
+ '\f227' => 'mars-double',
674
+ '\f229' => 'mars-stroke',
675
+ '\f22b' => 'mars-stroke-h',
676
+ '\f22a' => 'mars-stroke-v',
677
+ '\f136' => 'maxcdn',
678
+ '\f20c' => 'meanpath',
679
+ '\f23a' => 'medium',
680
+ '\f0fa' => 'medkit',
681
+ '\f11a' => 'meh-o',
682
+ '\f223' => 'mercury',
683
+ '\f130' => 'microphone',
684
+ '\f131' => 'microphone-slash',
685
+ '\f068' => 'minus',
686
+ '\f056' => 'minus-circle',
687
+ '\f146' => 'minus-square',
688
+ '\f147' => 'minus-square-o',
689
+ '\f10b' => 'mobile-phone',
690
+ '\f0d6' => 'money',
691
+ '\f186' => 'moon-o',
692
+ '\f19d' => 'mortar-board',
693
+ '\f21c' => 'motorcycle',
694
+ '\f001' => 'music',
695
+ '\f22c' => 'neuter',
696
+ '\f1ea' => 'newspaper-o',
697
+ '\f19b' => 'openid',
698
+ '\f03b' => 'outdent',
699
+ '\f18c' => 'pagelines',
700
+ '\f1fc' => 'paint-brush',
701
+ '\f0c6' => 'paperclip',
702
+ '\f1dd' => 'paragraph',
703
+ '\f0ea' => 'paste',
704
+ '\f04c' => 'pause',
705
+ '\f1b0' => 'paw',
706
+ '\f1ed' => 'paypal',
707
+ '\f040' => 'pencil',
708
+ '\f14b' => 'pencil-square',
709
+ '\f044' => 'pencil-square-o',
710
+ '\f095' => 'phone',
711
+ '\f098' => 'phone-square',
712
+ '\f03e' => 'picture-o',
713
+ '\f200' => 'pie-chart',
714
+ '\f1a7' => 'pied-piper',
715
+ '\f1a8' => 'pied-piper-alt',
716
+ '\f0d2' => 'pinterest',
717
+ '\f231' => 'pinterest-p',
718
+ '\f0d3' => 'pinterest-square',
719
+ '\f072' => 'plane',
720
+ '\f04b' => 'play',
721
+ '\f144' => 'play-circle',
722
+ '\f01d' => 'play-circle-o',
723
+ '\f1e6' => 'plug',
724
+ '\f067' => 'plus',
725
+ '\f055' => 'plus-circle',
726
+ '\f0fe' => 'plus-square',
727
+ '\f196' => 'plus-square-o',
728
+ '\f011' => 'power-off',
729
+ '\f02f' => 'print',
730
+ '\f12e' => 'puzzle-piece',
731
+ '\f1d6' => 'qq',
732
+ '\f029' => 'qrcode',
733
+ '\f128' => 'question',
734
+ '\f059' => 'question-circle',
735
+ '\f10d' => 'quote-left',
736
+ '\f10e' => 'quote-right',
737
+ '\f074' => 'random',
738
+ '\f1d0' => 'rebel',
739
+ '\f1b8' => 'recycle',
740
+ '\f1a1' => 'reddit',
741
+ '\f1a2' => 'reddit-square',
742
+ '\f021' => 'refresh',
743
+ '\f18b' => 'renren',
744
+ '\f0c9' => 'reorder',
745
+ '\f112' => 'reply',
746
+ '\f122' => 'reply-all',
747
+ '\f079' => 'retweet',
748
+ '\f018' => 'road',
749
+ '\f135' => 'rocket',
750
+ '\f01e' => 'rotate-right',
751
+ '\f09e' => 'rss',
752
+ '\f143' => 'rss-square',
753
+ '\f158' => 'ruble',
754
+ '\f156' => 'rupee',
755
+ '\f0c7' => 'save',
756
+ '\f0c4' => 'scissors',
757
+ '\f002' => 'search',
758
+ '\f010' => 'search-minus',
759
+ '\f00e' => 'search-plus',
760
+ '\f213' => 'sellsy',
761
+ '\f1d8' => 'send',
762
+ '\f1d9' => 'send-o',
763
+ '\f233' => 'server',
764
+ '\f064' => 'share',
765
+ '\f1e0' => 'share-alt',
766
+ '\f1e1' => 'share-alt-square',
767
+ '\f14d' => 'share-square',
768
+ '\f045' => 'share-square-o',
769
+ '\f20b' => 'sheqel',
770
+ '\f132' => 'shield',
771
+ '\f21a' => 'ship',
772
+ '\f214' => 'shirtsinbulk',
773
+ '\f07a' => 'shopping-cart',
774
+ '\f090' => 'sign-in',
775
+ '\f08b' => 'sign-out',
776
+ '\f012' => 'signal',
777
+ '\f215' => 'simplybuilt',
778
+ '\f0e8' => 'sitemap',
779
+ '\f216' => 'skyatlas',
780
+ '\f17e' => 'skype',
781
+ '\f198' => 'slack',
782
+ '\f1de' => 'sliders',
783
+ '\f1e7' => 'slideshare',
784
+ '\f118' => 'smile-o',
785
+ '\f1e3' => 'soccer-ball-o',
786
+ '\f15d' => 'sort-alpha-asc',
787
+ '\f15e' => 'sort-alpha-desc',
788
+ '\f160' => 'sort-amount-asc',
789
+ '\f161' => 'sort-amount-desc',
790
+ '\f0dd' => 'sort-down',
791
+ '\f162' => 'sort-numeric-asc',
792
+ '\f163' => 'sort-numeric-desc',
793
+ '\f0de' => 'sort-up',
794
+ '\f1be' => 'soundcloud',
795
+ '\f197' => 'space-shuttle',
796
+ '\f110' => 'spinner',
797
+ '\f1b1' => 'spoon',
798
+ '\f1bc' => 'spotify',
799
+ '\f0c8' => 'square',
800
+ '\f096' => 'square-o',
801
+ '\f18d' => 'stack-exchange',
802
+ '\f16c' => 'stack-overflow',
803
+ '\f005' => 'star',
804
+ '\f089' => 'star-half',
805
+ '\f123' => 'star-half-o',
806
+ '\f006' => 'star-o',
807
+ '\f1b6' => 'steam',
808
+ '\f1b7' => 'steam-square',
809
+ '\f048' => 'step-backward',
810
+ '\f051' => 'step-forward',
811
+ '\f0f1' => 'stethoscope',
812
+ '\f04d' => 'stop',
813
+ '\f21d' => 'street-view',
814
+ '\f0cc' => 'strikethrough',
815
+ '\f1a4' => 'stumbleupon',
816
+ '\f1a3' => 'stumbleupon-circle',
817
+ '\f12c' => 'subscript',
818
+ '\f239' => 'subway',
819
+ '\f0f2' => 'suitcase',
820
+ '\f185' => 'sun-o',
821
+ '\f12b' => 'superscript',
822
+ '\f1cd' => 'support',
823
+ '\f0ce' => 'table',
824
+ '\f10a' => 'tablet',
825
+ '\f0e4' => 'tachometer',
826
+ '\f02b' => 'tag',
827
+ '\f02c' => 'tags',
828
+ '\f0ae' => 'tasks',
829
+ '\f1ba' => 'taxi',
830
+ '\f1d5' => 'tencent-weibo',
831
+ '\f120' => 'terminal',
832
+ '\f034' => 'text-height',
833
+ '\f035' => 'text-width',
834
+ '\f00a' => 'th',
835
+ '\f009' => 'th-large',
836
+ '\f00b' => 'th-list',
837
+ '\f08d' => 'thumb-tack',
838
+ '\f165' => 'thumbs-down',
839
+ '\f088' => 'thumbs-o-down',
840
+ '\f087' => 'thumbs-o-up',
841
+ '\f164' => 'thumbs-up',
842
+ '\f145' => 'ticket',
843
+ '\f00d' => 'times',
844
+ '\f057' => 'times-circle',
845
+ '\f05c' => 'times-circle-o',
846
+ '\f043' => 'tint',
847
+ '\f150' => 'toggle-down',
848
+ '\f191' => 'toggle-left',
849
+ '\f204' => 'toggle-off',
850
+ '\f205' => 'toggle-on',
851
+ '\f152' => 'toggle-right',
852
+ '\f151' => 'toggle-up',
853
+ '\f238' => 'train',
854
+ '\f224' => 'transgender',
855
+ '\f225' => 'transgender-alt',
856
+ '\f1f8' => 'trash',
857
+ '\f014' => 'trash-o',
858
+ '\f1bb' => 'tree',
859
+ '\f181' => 'trello',
860
+ '\f091' => 'trophy',
861
+ '\f0d1' => 'truck',
862
+ '\f1e4' => 'tty',
863
+ '\f173' => 'tumblr',
864
+ '\f174' => 'tumblr-square',
865
+ '\f195' => 'turkish-lira',
866
+ '\f1e8' => 'twitch',
867
+ '\f099' => 'twitter',
868
+ '\f081' => 'twitter-square',
869
+ '\f0e9' => 'umbrella',
870
+ '\f0cd' => 'underline',
871
+ '\f0e2' => 'undo',
872
+ '\f19c' => 'university',
873
+ '\f127' => 'unlink',
874
+ '\f09c' => 'unlock',
875
+ '\f13e' => 'unlock-alt',
876
+ '\f0dc' => 'unsorted',
877
+ '\f093' => 'upload',
878
+ '\f155' => 'usd',
879
+ '\f007' => 'user',
880
+ '\f0f0' => 'user-md',
881
+ '\f234' => 'user-plus',
882
+ '\f21b' => 'user-secret',
883
+ '\f235' => 'user-times',
884
+ '\f0c0' => 'users',
885
+ '\f221' => 'venus',
886
+ '\f226' => 'venus-double',
887
+ '\f228' => 'venus-mars',
888
+ '\f237' => 'viacoin',
889
+ '\f03d' => 'video-camera',
890
+ '\f194' => 'vimeo-square',
891
+ '\f1ca' => 'vine',
892
+ '\f189' => 'vk',
893
+ '\f027' => 'volume-down',
894
+ '\f026' => 'volume-off',
895
+ '\f028' => 'volume-up',
896
+ '\f071' => 'warning',
897
+ '\f18a' => 'weibo',
898
+ '\f1d7' => 'weixin',
899
+ '\f232' => 'whatsapp',
900
+ '\f193' => 'wheelchair',
901
+ '\f1eb' => 'wifi',
902
+ '\f17a' => 'windows',
903
+ '\f159' => 'won',
904
+ '\f19a' => 'wordpress',
905
+ '\f0ad' => 'wrench',
906
+ '\f168' => 'xing',
907
+ '\f169' => 'xing-square',
908
+ '\f19e' => 'yahoo',
909
+ '\f1e9' => 'yelp',
910
+ '\f157' => 'yen',
911
+ '\f167' => 'youtube',
912
+ '\f16a' => 'youtube-play',
913
+ '\f166' => 'youtube-square',
914
+ ),
915
+ 'awesome_icons_socials' => array(
916
+ 'f170' => 'adn',
917
+ 'f17b' => 'android',
918
+ 'f179' => 'apple',
919
+ 'f171' => 'bitbucket-square',
920
+ 'f02e' => 'bookmark',
921
+ 'f097' => 'bookmark-o',
922
+ 'f15a' => 'btc',
923
+ 'f13c' => 'css3',
924
+ 'f17d' => 'dribble',
925
+ 'f16b' => 'dropbox',
926
+ 'f09a' => 'facebook',
927
+ 'f082' => 'facebook-square',
928
+ 'f16e' => 'flickr',
929
+ 'f180' => 'foursquare',
930
+ 'f09b' => 'github',
931
+ 'f113' => 'github-alt',
932
+ 'f092' => 'github-square',
933
+ 'f184' => 'gittip',
934
+ 'f0d5' => 'google-plus',
935
+ 'f0d4' => 'google-plus-square',
936
+ 'f13b' => 'html5',
937
+ 'f16d' => 'instagram',
938
+ 'f0e1' => 'linkedin',
939
+ 'f08c' => 'linkedin-square',
940
+ 'f17c' => 'Linux',
941
+ 'f136' => 'maxcdn',
942
+ 'f18c' => 'pagelines',
943
+ 'f0d2' => 'pinterest',
944
+ 'f0d3' => 'pinterest-square',
945
+ 'f18b' => 'renren',
946
+ 'f09e' => 'rss',
947
+ 'f17e' => 'skype',
948
+ 'f18d' => 'stack-exchange',
949
+ 'f16c' => 'stack-overflow',
950
+ 'f181' => 'trello',
951
+ 'f173' => 'tumblr',
952
+ 'f174' => 'Tumblr Square',
953
+ 'f099' => 'twitter',
954
+ 'f081' => 'twitter-square',
955
+ 'f194' => 'vimeo-square',
956
+ 'f189' => 'vk',
957
+ 'f18a' => 'weibo',
958
+ 'f17a' => 'windows',
959
+ 'f168' => 'xing',
960
+ 'f169' => 'xing-square',
961
+ 'f167' => 'youtube',
962
+ ),
963
+ 'header_backgrounds' => array(),
964
+ 'body_backgrounds' => array(),
965
+ // Tags used in theme options (e.g. %tag%) to have some common information.
966
+ 'tag' => array(), // Example: 'themeurl' => get_template_directory_uri().
967
+ 'cycle_fx' => array(
968
+ 'blindX' => 'blindX',
969
+ 'blindY' => 'blindY',
970
+ 'blindZ' => 'blindZ',
971
+ 'cover' => 'cover',
972
+ 'curtainX' => 'curtainX',
973
+ 'curtainY' => 'curtainY',
974
+ 'fade' => 'fade',
975
+ 'fadeZoom' => 'fadeZoom',
976
+ 'growX' => 'growX',
977
+ 'growY' => 'growY',
978
+ 'scrollUp' => 'scrollUp',
979
+ 'scrollDown' => 'scrollDown',
980
+ 'scrollLeft' => 'scrollLeft',
981
+ 'scrollRight' => 'scrollRight',
982
+ 'scrollHorz' => 'scrollHorz',
983
+ 'shuffle' => 'shuffle',
984
+ 'slideX' => 'slideX',
985
+ 'slideY' => 'slideY',
986
+ 'toss' => 'toss',
987
+ 'turnUp' => 'turnUp',
988
+ 'turnLeft' => 'turnLeft',
989
+ 'turnRight' => 'turnRight',
990
+ 'uncover' => 'uncover',
991
+ 'wipe' => 'wipe',
992
+ 'zoom' => 'zoom',
993
+ 'none' => 'none',
994
+ 'turnDown' => 'turnDown',
995
+ 'scrollVert' => 'scrollVert',
996
+ ),
997
+ 'animate' => array(
998
+ '' => 'none',
999
+ 'bounce' => 'bounce',
1000
+ 'flash' => 'flash',
1001
+ 'pulse' => 'pulse',
1002
+ 'shake' => 'shake',
1003
+ 'swing' => 'swing',
1004
+ 'tada' => 'tada',
1005
+ 'wobble' => 'wobble',
1006
+ 'bounceIn' => 'bounceIn',
1007
+ 'bounceInDown' => 'bounceInDown',
1008
+ 'bounceInLeft' => 'bounceInLeft',
1009
+ 'bounceInRight' => 'bounceInRight',
1010
+ 'bounceInUp' => 'bounceInUp',
1011
+ 'fadeIn' => 'fadeIn',
1012
+ 'fadeInDown' => 'fadeInDown',
1013
+ 'fadeInDownBig' => 'fadeInDownBig',
1014
+ 'fadeInLeft' => 'fadeInLeft',
1015
+ 'fadeInLeftBig' => 'fadeInLeftBig',
1016
+ 'fadeInRight' => 'fadeInRight',
1017
+ 'fadeInRightBig' => 'fadeInRightBig',
1018
+ 'fadeInUp' => 'fadeInUp',
1019
+ 'fadeInUpBig' => 'fadeInUpBig',
1020
+ 'flip' => 'flip',
1021
+ 'flipInX' => 'flipInX',
1022
+ 'flipInY' => 'flipInY',
1023
+ 'lightSpeedIn' => 'lightSpeedIn',
1024
+ 'rotateIn' => 'rotateIn',
1025
+ 'rotateInDownLeft' => 'rotateInDownLeft',
1026
+ 'rotateInDownRight' => 'rotateInDownRight',
1027
+ 'rotateInUpLeft' => 'rotateInUpLeft',
1028
+ 'rotateInUpRight' => 'rotateInUpRight',
1029
+ 'rollIn' => 'rollIn',
1030
+ ),
1031
+ 'easings' => array(
1032
+ false => 'none',
1033
+ 'easeInQuad' => 'easeInQuad',
1034
+ 'easeOutQuad' => 'easeOutQuad',
1035
+ 'easeInOutQuad' => 'easeInOutQuad',
1036
+ 'easeInCubic' => 'easeInCubic',
1037
+ 'easeOutCubic' => 'easeOutCubic',
1038
+ 'easeInOutCubic' => 'easeInOutCubic',
1039
+ 'easeInQuart' => 'easeInQuart',
1040
+ 'easeOutQuart' => 'easeOutQuart',
1041
+ 'easeInOutQuart' => 'easeInOutQuart',
1042
+ 'easeInQuint' => 'easeInQuint',
1043
+ 'easeOutQuint' => 'easeOutQuint',
1044
+ 'easeInOutQuint' => 'easeInOutQuint',
1045
+ 'easeInSine' => 'easeInSine',
1046
+ 'easeOutSine' => 'easeOutSine',
1047
+ 'easeInOutSine' => 'easeInOutSine',
1048
+ 'easeInExpo' => 'easeInExpo',
1049
+ 'easeOutExpo' => 'easeOutExpo',
1050
+ 'easeInOutExpo' => 'easeInOutExpo',
1051
+ 'easeInCirc' => 'easeInCirc',
1052
+ 'easeOutCirc' => 'easeOutCirc',
1053
+ 'easeInOutCirc' => 'easeInOutCirc',
1054
+ 'easeInElastic' => 'easeInElastic',
1055
+ 'easeOutElastic' => 'easeOutElastic',
1056
+ 'easeInOutElastic' => 'easeInOutElastic',
1057
+ 'easeInBack' => 'easeInBack',
1058
+ 'easeOutBack' => 'easeOutBack',
1059
+ 'easeInOutBack' => 'easeInOutBack',
1060
+ 'easeInBounce' => 'easeInBounce',
1061
+ 'easeOutBounce' => 'easeOutBounce',
1062
+ 'easeInOutBounce' => 'easeInOutBounce',
1063
+ ),
1064
+ );
1065
+
1066
+ /**
1067
+ * Get configuration array
1068
+ *
1069
+ * @return array
1070
+ */
1071
+ public static function load() {
1072
+ self::load_theme_info();
1073
+
1074
+ return self::$config;
1075
+ }
1076
+
1077
+ /**
1078
+ * Return theme data
1079
+ * First the method checks if the wp_get_theme() function exists (WP 3.4.0 at least).
1080
+ * If not, the method calls the deprecated function get_template_directory()
1081
+ */
1082
+ protected static function load_theme_info() {
1083
+ $theme = wp_get_theme();
1084
+
1085
+ self::$config['theme'] = array(
1086
+ 'name' => $theme['Name'],
1087
+ 'description' => $theme['Description'],
1088
+ 'author' => $theme['Author'],
1089
+ 'authoruri' => $theme['Author URI'],
1090
+ 'version' => $theme['Version'],
1091
+ 'template' => $theme['Template'],
1092
+ 'status' => $theme['Status'],
1093
+ 'tags' => $theme['Tags'],
1094
+ );
1095
+ }
1096
+
1097
+ /**
1098
+ * Init.
1099
+ */
1100
+ public function init() {
1101
+ self::$config['header_backgrounds'] = apply_filters( 'yit_header_backgrounds', self::$config['header_backgrounds'] );
1102
+ self::$config['body_backgrounds'] = apply_filters( 'yit_body_backgrounds', self::$config['body_backgrounds'] );
1103
+ }
1104
+
1105
+ /**
1106
+ * Return the font awesome array icon
1107
+ *
1108
+ * @return array
1109
+ */
1110
+ public static function get_awesome_icons() {
1111
+ return self::$config['awesome_icons'];
1112
+ }
1113
+
1114
+ /**
1115
+ * Return the font awesome array socials icon
1116
+ *
1117
+ * @return array
1118
+ */
1119
+ public static function get_awesome_icons_socials() {
1120
+ return self::$config['awesome_icons_socials'];
1121
+ }
1122
+
1123
+
1124
+ /**
1125
+ * Return the list of icons
1126
+ *
1127
+ * @return array
1128
+ */
1129
+ public static function get_icon_list() {
1130
+
1131
+ $standard_icon_list = array(
1132
+ 'FontAwesome' => self::$config['awesome_icons2'],
1133
+ );
1134
+
1135
+ return apply_filters( 'yit_icon_list', $standard_icon_list );
1136
+ }
1137
+
1138
+ /**
1139
+ * Return the data of icon
1140
+ *
1141
+ * @param string $icon The icon.
1142
+ *
1143
+ * @return string
1144
+ */
1145
+ public static function get_icon( $icon ) {
1146
+
1147
+ $icon_list = self::get_icon_list();
1148
+ $icon_data = '';
1149
+ if ( ! ! $icon ) {
1150
+ $ic = explode( ':', $icon );
1151
+ $icon_code = array_search( $ic[1], $icon_list[ $ic[0] ], true );
1152
+
1153
+ if ( $icon_code ) {
1154
+ $icon_code = ( strpos( $icon_code, '\\' ) === 0 ) ? '&#x' . substr( $icon_code, 1 ) . ';' : $icon_code;
1155
+ }
1156
+
1157
+ $icon_data = 'data-font="' . $ic[0] . '" data-key="' . $ic[1] . '" data-icon="' . $icon_code . '"';
1158
+ }
1159
+
1160
+ return $icon_data;
1161
+ }
1162
+
1163
+ /**
1164
+ * Return the code of the relative awesome class name
1165
+ *
1166
+ * @param string $icon_key The icon key.
1167
+ *
1168
+ * @return string
1169
+ */
1170
+ public static function get_awesome_icons_code_by_value( $icon_key ) {
1171
+ $awesome_icons = self::$config['awesome_icons'];
1172
+ foreach ( $awesome_icons as $code => $key ) {
1173
+ if ( $icon_key === $key ) {
1174
+ return $code;
1175
+ }
1176
+ }
1177
+
1178
+ return '';
1179
+ }
1180
+ }
1181
+ }
plugin-fw/includes/class-yit-plugin-licence.php ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Plugin License Class.
4
+ *
5
+ * @class YIT_Plugin_Licence
6
+ * @package YITH\PluginFramework\Classes
7
+ */
8
+
9
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
10
+
11
+ if ( ! class_exists( 'YIT_Plugin_Licence' ) ) {
12
+ /**
13
+ * YIT_Plugin_Licence class.
14
+ * Set page to manage products.
15
+ *
16
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
17
+ */
18
+ class YIT_Plugin_Licence {
19
+ /**
20
+ * The single instance of the class.
21
+ *
22
+ * @var YIT_Plugin_Licence
23
+ */
24
+ private static $instance;
25
+
26
+ /**
27
+ * Singleton implementation.
28
+ *
29
+ * @return YIT_Plugin_Licence
30
+ */
31
+ public static function instance() {
32
+ return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
33
+ }
34
+
35
+ /**
36
+ * YIT_Plugin_Licence constructor.
37
+ */
38
+ private function __construct() {
39
+ // Silence is golden.
40
+ }
41
+
42
+ /**
43
+ * Premium products registration
44
+ *
45
+ * @param string $init The product identifier.
46
+ * @param string $secret_key The secret key.
47
+ * @param string $product_id The product id.
48
+ *
49
+ * @return void
50
+ */
51
+ public function register( $init, $secret_key, $product_id ) {
52
+ if ( ! function_exists( 'YITH_Plugin_Licence' ) ) {
53
+ // Try to load YITH_Plugin_Licence class.
54
+ yith_plugin_fw_load_update_and_licence_files();
55
+ }
56
+
57
+ if ( function_exists( 'YITH_Plugin_Licence' ) && is_callable( array( YITH_Plugin_Licence(), 'register' ) ) ) {
58
+ YITH_Plugin_Licence()->register( $init, $secret_key, $product_id );
59
+ }
60
+ }
61
+
62
+ /**
63
+ * Get license activation URL
64
+ *
65
+ * @param string $plugin_slug The plugin slug.
66
+ *
67
+ * @return string|false
68
+ * @since 3.0.17
69
+ */
70
+ public static function get_license_activation_url( $plugin_slug = '' ) {
71
+ return function_exists( 'YITH_Plugin_Licence' ) ? YITH_Plugin_Licence()->get_license_activation_url( $plugin_slug ) : false;
72
+ }
73
+
74
+ /**
75
+ * Retrieve the products
76
+ *
77
+ * @return array
78
+ */
79
+ public function get_products() {
80
+ return function_exists( 'YITH_Plugin_Licence' ) ? YITH_Plugin_Licence()->get_products() : array();
81
+ }
82
+ }
83
+ }
84
+
85
+ if ( ! function_exists( 'YIT_Plugin_Licence' ) ) {
86
+ /**
87
+ * Single instance of YIT_Plugin_Licence
88
+ *
89
+ * @return YIT_Plugin_Licence
90
+ */
91
+ function YIT_Plugin_Licence() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
92
+ return YIT_Plugin_Licence::instance();
93
+ }
94
+ }
plugin-fw/includes/class-yit-plugin-panel-woocommerce.php ADDED
@@ -0,0 +1,759 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Plugin Panel WooCommerce Class.
4
+ *
5
+ * @class YIT_Plugin_Panel_WooCommerce
6
+ * @package YITH\PluginFramework\Classes
7
+ */
8
+
9
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
10
+
11
+ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
12
+ /**
13
+ * YIT_Plugin_Panel_WooCommerce class.
14
+ *
15
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
16
+ * @author Antonio La Rocca <antonio.larocca@yithemes.com>
17
+ */
18
+ class YIT_Plugin_Panel_WooCommerce extends YIT_Plugin_Panel {
19
+ /**
20
+ * Version of the class.
21
+ *
22
+ * @var string
23
+ */
24
+ public $version = '1.0.0';
25
+
26
+ /**
27
+ * List of settings parameters.
28
+ *
29
+ * @var array
30
+ */
31
+ public $settings = array();
32
+
33
+ /**
34
+ * WooCommerce types.
35
+ *
36
+ * @var array
37
+ */
38
+ public static $wc_type = array( 'checkbox', 'textarea', 'multiselect', 'multi_select_countries', 'image_width' );
39
+
40
+ /**
41
+ * Body class.
42
+ *
43
+ * @var string
44
+ */
45
+ public static $body_class = ' yith-plugin-fw-panel ';
46
+
47
+
48
+ /**
49
+ * Tab Path Files.
50
+ *
51
+ * @var array
52
+ */
53
+ protected $tabs_path_files;
54
+
55
+ /**
56
+ * Are the actions initialized?
57
+ *
58
+ * @var bool
59
+ */
60
+ protected static $actions_initialized = false;
61
+
62
+ /**
63
+ * YIT_Plugin_Panel_WooCommerce constructor.
64
+ *
65
+ * @param array $args The panel arguments.
66
+ */
67
+ public function __construct( $args = array() ) {
68
+ $args = apply_filters( 'yit_plugin_fw_wc_panel_option_args', $args );
69
+ if ( ! empty( $args ) ) {
70
+ if ( isset( $args['parent_page'] ) && 'yit_plugin_panel' === $args['parent_page'] ) {
71
+ $args['parent_page'] = 'yith_plugin_panel';
72
+ }
73
+
74
+ $this->settings = $args;
75
+ $this->tabs_path_files = $this->get_tabs_path_files();
76
+
77
+ if ( isset( $this->settings['create_menu_page'] ) && $this->settings['create_menu_page'] ) {
78
+ $this->add_menu_page();
79
+ }
80
+
81
+ if ( ! empty( $this->settings['links'] ) ) {
82
+ $this->links = $this->settings['links'];
83
+ }
84
+
85
+ add_action( 'admin_init', array( $this, 'set_default_options' ) );
86
+ add_action( 'admin_menu', array( $this, 'add_setting_page' ) );
87
+ add_action( 'admin_menu', array( $this, 'add_premium_version_upgrade_to_menu' ), 100 );
88
+ add_action( 'admin_bar_menu', array( $this, 'add_admin_bar_menu' ), 100 );
89
+ add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
90
+ add_action( 'admin_init', array( $this, 'woocommerce_update_options' ) );
91
+ add_filter( 'woocommerce_screen_ids', array( $this, 'add_allowed_screen_id' ) );
92
+
93
+ add_filter( 'woocommerce_admin_settings_sanitize_option', array( $this, 'maybe_unserialize_panel_data' ), 10, 3 );
94
+
95
+ add_action( 'yith_plugin_fw_get_field_after', array( $this, 'add_yith_ui' ) );
96
+ add_action( 'yith_plugin_fw_before_woocommerce_panel', array( $this, 'add_plugin_banner' ), 10, 1 );
97
+ add_action( 'admin_action_yith_plugin_fw_save_toggle_element', array( $this, 'save_toggle_element_options' ) );
98
+ add_filter( 'woocommerce_admin_settings_sanitize_option', array( $this, 'sanitize_onoff_value' ), 20, 3 );
99
+
100
+ add_action( 'admin_enqueue_scripts', array( $this, 'init_wp_with_tabs' ), 11 );
101
+ add_action( 'admin_init', array( $this, 'maybe_redirect_to_proper_wp_page' ) );
102
+
103
+ // Init actions once to prevent multiple initialization.
104
+ static::init_actions();
105
+ }
106
+ }
107
+
108
+ /**
109
+ * Init actions.
110
+ *
111
+ * @since 3.0.0
112
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
113
+ */
114
+ protected static function init_actions() {
115
+ if ( ! static::$actions_initialized ) {
116
+ add_action( 'woocommerce_admin_field_boxinfo', array( __CLASS__, 'add_infobox' ), 10, 1 );
117
+ add_action( 'woocommerce_admin_field_yith-field', array( __CLASS__, 'add_yith_field' ), 10, 1 );
118
+ add_filter( 'admin_body_class', array( __CLASS__, 'admin_body_class' ) );
119
+
120
+ add_filter( 'woocommerce_admin_settings_sanitize_option', array( __CLASS__, 'sanitize_option' ), 10, 3 );
121
+
122
+ // Sort plugins by name in YITH Plugins menu.
123
+ add_action( 'admin_menu', array( __CLASS__, 'sort_plugins' ), 90 );
124
+
125
+ add_filter( 'add_menu_classes', array( __CLASS__, 'add_menu_class_in_yith_plugin' ) );
126
+
127
+ static::$actions_initialized = true;
128
+ }
129
+ }
130
+
131
+ /**
132
+ * Show a tabbed panel to setting page
133
+ * a callback function called by add_setting_page => add_submenu_page
134
+ *
135
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
136
+ * @author Antonio La Rocca <antonio.larocca@yithemes.com>
137
+ */
138
+ public function yit_panel() {
139
+ $additional_info = array(
140
+ 'current_tab' => $this->get_current_tab(),
141
+ 'current_sub_tab' => $this->get_current_sub_tab(),
142
+ 'available_tabs' => $this->settings['admin-tabs'],
143
+ 'default_tab' => $this->get_available_tabs( true ),
144
+ 'page' => $this->settings['page'],
145
+ 'wrap_class' => isset( $this->settings['class'] ) ? $this->settings['class'] : '',
146
+ );
147
+
148
+ $additional_info = apply_filters( 'yith_admin_tab_params', $additional_info );
149
+ $additional_info['additional_info'] = $additional_info;
150
+
151
+ extract( $additional_info ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
152
+ require YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/woocommerce/woocommerce-panel.php';
153
+ }
154
+
155
+ /**
156
+ * Show a input fields to upload images
157
+ *
158
+ * @param string $option_value The option value.
159
+ *
160
+ * @return string
161
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.com>
162
+ */
163
+ public function yit_upload_update( $option_value ) {
164
+ return $option_value;
165
+ }
166
+
167
+ /**
168
+ * Show a input fields to upload images
169
+ *
170
+ * @param array $args The arguments.
171
+ *
172
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.com>
173
+ */
174
+ public function yit_upload( $args = array() ) {
175
+ if ( ! empty( $args ) ) {
176
+ $args['value'] = ( get_option( $args['id'] ) ) ? get_option( $args['id'] ) : $args['default'];
177
+ extract( $args ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
178
+
179
+ include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/woocommerce/woocommerce-upload.php';
180
+ }
181
+ }
182
+
183
+ /**
184
+ * Add the plugin woocommerce page settings in the screen ids of woocommerce
185
+ *
186
+ * @param array $screen_ids Screen IDs.
187
+ *
188
+ * @return array
189
+ * @author Antonino Scarfì <antonino.scarfi@yithemes.com>
190
+ */
191
+ public function add_allowed_screen_id( $screen_ids ) {
192
+ global $admin_page_hooks;
193
+
194
+ if ( ! isset( $admin_page_hooks[ $this->settings['parent_page'] ] ) ) {
195
+ return $screen_ids;
196
+ }
197
+
198
+ $screen_ids[] = $admin_page_hooks[ $this->settings['parent_page'] ] . '_page_' . $this->settings['page'];
199
+
200
+ return $screen_ids;
201
+ }
202
+
203
+ /**
204
+ * Returns current active tab slug
205
+ *
206
+ * @return string
207
+ * @since 2.0.0
208
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
209
+ * @author Antonio La Rocca <antonio.larocca@yithemes.com>
210
+ */
211
+ public function get_current_tab() {
212
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
213
+ global $pagenow;
214
+ $tabs = $this->get_available_tabs();
215
+ $tab = $tabs[0];
216
+
217
+ if ( 'admin.php' === $pagenow && isset( $_REQUEST['tab'] ) && in_array( $_REQUEST['tab'], $tabs, true ) ) {
218
+ $tab = sanitize_key( wp_unslash( $_REQUEST['tab'] ) );
219
+ }
220
+
221
+ return apply_filters( 'yith_wc_plugin_panel_current_tab', $tab );
222
+ // phpcs:enable
223
+ }
224
+
225
+ /**
226
+ * Return available tabs
227
+ * read all options and show sections and fields
228
+ *
229
+ * @param bool $default false for all tabs slug, true for current tab.
230
+ *
231
+ * @return mixed Array tabs | String current tab
232
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
233
+ * @author Antonio La Rocca <antonio.larocca@yithemes.com>
234
+ */
235
+ public function get_available_tabs( $default = false ) {
236
+ $tabs = array_keys( $this->settings['admin-tabs'] );
237
+
238
+ return $default ? $tabs[0] : $tabs;
239
+ }
240
+
241
+
242
+ /**
243
+ * Add sections and fields to setting panel
244
+ * read all options and show sections and fields
245
+ *
246
+ * @return void
247
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
248
+ * @author Antonio La Rocca <antonio.larocca@yithemes.com>
249
+ */
250
+ public function add_fields() {
251
+ $yit_options = $this->get_main_array_options();
252
+ $option_key = $this->get_current_option_key();
253
+
254
+ if ( ! $option_key ) {
255
+ return;
256
+ }
257
+
258
+ woocommerce_admin_fields( $yit_options[ $option_key ] );
259
+ }
260
+
261
+ /**
262
+ * Print the panel content
263
+ * check if the tab is a wc options tab or custom tab and print the content
264
+ *
265
+ * @return void
266
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
267
+ * @author Antonio La Rocca <antonio.larocca@yithemes.com>
268
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
269
+ */
270
+ public function print_panel_content() {
271
+ $yit_options = $this->get_main_array_options();
272
+ $page = $this->settings['page'];
273
+ $option_key = $this->get_current_option_key();
274
+ $custom_tab_options = $this->get_custom_tab_options( $yit_options, $option_key );
275
+
276
+ $this->print_tabs_nav();
277
+
278
+ if ( $custom_tab_options ) {
279
+ $this->print_custom_tab( $custom_tab_options );
280
+ } else {
281
+ include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/woocommerce/woocommerce-form.php';
282
+ }
283
+ }
284
+
285
+ /**
286
+ * Update options
287
+ *
288
+ * @return void
289
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
290
+ * @author Antonio La Rocca <antonio.larocca@yithemes.com>
291
+ * @see woocommerce_update_options function
292
+ * @internal fire two action (before and after update): yit_panel_wc_before_update and yit_panel_wc_after_update
293
+ */
294
+ public function woocommerce_update_options() {
295
+
296
+ if ( isset( $_POST['yit_panel_wc_options_nonce'] ) && wp_verify_nonce( sanitize_key( wp_unslash( $_POST['yit_panel_wc_options_nonce'] ) ), 'yit_panel_wc_options_' . $this->settings['page'] ) ) {
297
+
298
+ do_action( 'yit_panel_wc_before_update' );
299
+
300
+ $yit_options = $this->get_main_array_options();
301
+ $option_key = $this->get_current_option_key();
302
+ $yit_options = $this->check_for_save_single_option( $yit_options );
303
+
304
+ if ( version_compare( WC()->version, '2.4.0', '>=' ) ) {
305
+ if ( ! empty( $yit_options[ $option_key ] ) ) {
306
+ foreach ( $yit_options[ $option_key ] as $option ) {
307
+ if ( isset( $option['id'] ) && isset( $_POST[ $option['id'] ], $option['type'] ) && ! in_array( $option['type'], self::$wc_type, true ) && 'yith-field' !== $option['type'] ) {
308
+ $_POST[ $option['id'] ] = maybe_serialize( $_POST[ $option['id'] ] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
309
+ }
310
+ }
311
+ }
312
+ }
313
+
314
+ foreach ( $_POST as $name => $value ) {
315
+ // Check if current POST var name ends with a specific needle and make some stuff here.
316
+ $attachment_id_needle = '-yith-attachment-id';
317
+ $pos = strlen( $name ) - strlen( $attachment_id_needle );
318
+ $is_hidden_input = $pos >= 0 && strpos( $name, $attachment_id_needle, $pos ) !== false;
319
+ if ( $is_hidden_input ) {
320
+ // Is an input element of type "hidden" coupled with an input element for selecting an element from the media gallery.
321
+ $yit_options[ $option_key ][ $name ] = array(
322
+ 'type' => 'text',
323
+ 'id' => $name,
324
+ );
325
+ }
326
+ }
327
+
328
+ woocommerce_update_options( $yit_options[ $option_key ] );
329
+
330
+ do_action( 'yit_panel_wc_after_update' );
331
+
332
+ } elseif (
333
+ isset( $_REQUEST['yit-action'] ) && 'wc-options-reset' === sanitize_key( wp_unslash( $_REQUEST['yit-action'] ) )
334
+ &&
335
+ isset( $_POST['yith_wc_reset_options_nonce'] ) && wp_verify_nonce( sanitize_key( wp_unslash( $_POST['yith_wc_reset_options_nonce'] ) ), 'yith_wc_reset_options_' . $this->settings['page'] )
336
+ ) {
337
+
338
+ do_action( 'yit_panel_wc_before_reset' );
339
+
340
+ $yit_options = $this->get_main_array_options();
341
+ $option_key = $this->get_current_option_key();
342
+ $yit_options = $this->check_for_save_single_option( $yit_options );
343
+
344
+ // Collect an array of options to be saved as array and not as single option.
345
+ $array_options = array();
346
+
347
+ foreach ( $yit_options[ $option_key ] as $id => $option ) {
348
+ // Make sure option id is not an array.
349
+ $matches = array();
350
+ isset( $option['id'] ) && preg_match( '/(.*)\[(.*)\]/', $option['id'], $matches );
351
+
352
+ if ( ! empty( $matches ) && isset( $option['default'] ) ) {
353
+ if ( ! empty( $matches[2] ) ) {
354
+ $array_options[ $matches[1] ][ $matches[2] ] = $option['default'];
355
+ } else {
356
+ $array_options[ $matches[1] ][] = $option['default'];
357
+ }
358
+ } else {
359
+ if ( isset( $option['yith-type'] ) && 'multi-colorpicker' === $option['yith-type'] && ! empty( $option['colorpickers'] ) ) {
360
+ $default = array();
361
+ foreach ( $option['colorpickers'] as $colorpicker ) {
362
+ $default[ $colorpicker['id'] ] = isset( $colorpicker['default'] ) ? $colorpicker['default'] : '';
363
+ }
364
+ update_option( $option['id'], $default );
365
+ } elseif ( isset( $option['default'] ) ) {
366
+ update_option( $option['id'], $option['default'] );
367
+ }
368
+ }
369
+ }
370
+
371
+ // Save array options if any.
372
+ foreach ( $array_options as $key => $value ) {
373
+ update_option( $key, $value );
374
+ }
375
+
376
+ do_action( 'yit_panel_wc_after_reset' );
377
+ }
378
+ }
379
+
380
+ /**
381
+ * Add Admin WC Style and Scripts
382
+ *
383
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
384
+ * @author Antonio La Rocca <antonio.larocca@yithemes.com>
385
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
386
+ */
387
+ public function admin_enqueue_scripts() {
388
+ global $woocommerce, $pagenow;
389
+
390
+ if ( 'customize.php' !== $pagenow ) {
391
+ wp_enqueue_style( 'wp-jquery-ui-dialog' );
392
+ }
393
+
394
+ $screen = function_exists( 'get_current_screen' ) ? get_current_screen() : false;
395
+ $assets_screen_ids = (array) apply_filters( 'yith_plugin_fw_wc_panel_screen_ids_for_assets', array() );
396
+
397
+ if ( $screen && ( 'admin.php' === $pagenow && strpos( $screen->id, $this->settings['page'] ) !== false ) || in_array( $screen->id, $assets_screen_ids, true ) ) {
398
+ $woocommerce_version = function_exists( 'WC' ) ? WC()->version : $woocommerce->version;
399
+ $woocommerce_settings_deps = array( 'jquery', 'jquery-ui-datepicker', 'jquery-ui-sortable', 'iris' );
400
+
401
+ if ( version_compare( '2.5', $woocommerce_version, '<=' ) ) {
402
+ $woocommerce_settings_deps[] = 'select2';
403
+ } else {
404
+ $woocommerce_settings_deps[] = 'jquery-ui-dialog';
405
+ $woocommerce_settings_deps[] = 'chosen';
406
+ }
407
+
408
+ wp_enqueue_media();
409
+
410
+ wp_enqueue_style( 'yith-plugin-fw-fields' );
411
+ wp_enqueue_style( 'woocommerce_admin_styles' );
412
+ wp_enqueue_style( 'raleway-font' );
413
+
414
+ wp_enqueue_script( 'woocommerce_settings', $woocommerce->plugin_url() . '/assets/js/admin/settings.min.js', $woocommerce_settings_deps, $woocommerce_version, true );
415
+ wp_localize_script(
416
+ 'woocommerce_settings',
417
+ 'woocommerce_settings_params',
418
+ array(
419
+ 'i18n_nav_warning' => __( 'The changes you have made will be lost if you leave this page.', 'yith-plugin-fw' ),
420
+ )
421
+ );
422
+ wp_enqueue_script( 'yith-plugin-fw-fields' );
423
+ }
424
+
425
+ if ( $screen && ( 'admin.php' === $pagenow && yith_plugin_fw_is_panel() ) || in_array( $screen->id, $assets_screen_ids, true ) ) {
426
+ wp_enqueue_media();
427
+ wp_enqueue_style( 'yit-plugin-style' );
428
+ wp_enqueue_script( 'yit-plugin-panel' );
429
+ }
430
+
431
+ if ( $screen && 'admin.php' === $pagenow && strpos( $screen->id, 'yith_upgrade_premium_version' ) !== false ) {
432
+ wp_enqueue_style( 'yit-upgrade-to-pro' );
433
+ wp_enqueue_script( 'colorbox' );
434
+ }
435
+ }
436
+
437
+ /**
438
+ * Default options
439
+ * Sets up the default options used on the settings page
440
+ */
441
+ public function set_default_options() {
442
+ // Check if the default options for this panel are already set.
443
+ $page = $this->settings['page'];
444
+ $default_options_set = get_option( 'yit_plugin_fw_panel_wc_default_options_set', array() );
445
+ if ( isset( $default_options_set[ $page ] ) && $default_options_set[ $page ] ) {
446
+ return;
447
+ }
448
+
449
+ $default_options = $this->get_main_array_options();
450
+
451
+ foreach ( $default_options as $section ) {
452
+ foreach ( $section as $value ) {
453
+ if ( ( isset( $value['std'] ) || isset( $value['default'] ) ) && isset( $value['id'] ) ) {
454
+ $default_value = ( isset( $value['default'] ) ) ? $value['default'] : $value['std'];
455
+
456
+ if ( 'image_width' === $value['type'] ) {
457
+ add_option( $value['id'] . '_width', $default_value );
458
+ add_option( $value['id'] . '_height', $default_value );
459
+ } else {
460
+ add_option( $value['id'], $default_value );
461
+ }
462
+ }
463
+ }
464
+ }
465
+
466
+ // Set the flag for the default options of this panel.
467
+ $default_options_set[ $page ] = true;
468
+ update_option( 'yit_plugin_fw_panel_wc_default_options_set', $default_options_set );
469
+ }
470
+
471
+ /**
472
+ * Delete the "default options added" option
473
+ *
474
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
475
+ */
476
+ public static function delete_default_options_set_option() {
477
+ delete_option( 'yit_plugin_fw_panel_wc_default_options_set' );
478
+ }
479
+
480
+ /**
481
+ * Add the WooCommerce body class in plugin panel page
482
+ *
483
+ * @param string $admin_body_classes The body classes.
484
+ *
485
+ * @return string Filtered body classes
486
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
487
+ * @since 2.0
488
+ */
489
+ public static function admin_body_class( $admin_body_classes ) {
490
+ global $pagenow;
491
+
492
+ $assets_screen_ids = (array) apply_filters( 'yith_plugin_fw_wc_panel_screen_ids_for_assets', array() );
493
+
494
+ if ( ( 'admin.php' === $pagenow && ( strpos( get_current_screen()->id, 'yith-plugins_page' ) !== false || in_array( get_current_screen()->id, $assets_screen_ids, true ) ) ) ) {
495
+ $admin_body_classes = ! substr_count( $admin_body_classes, self::$body_class ) ? $admin_body_classes . self::$body_class : $admin_body_classes;
496
+ $admin_body_classes = ! substr_count( $admin_body_classes, 'woocommerce' ) ? $admin_body_classes . ' woocommerce ' : $admin_body_classes;
497
+ }
498
+
499
+ return $admin_body_classes;
500
+ }
501
+
502
+ /**
503
+ * Maybe unserialize panel data
504
+ *
505
+ * @param mixed $value Option value.
506
+ * @param mixed $option Option settings array.
507
+ * @param string $raw_value Raw option value.
508
+ *
509
+ * @return mixed Filtered return value
510
+ * @author Antonio La Rocca <antonio.larocca@yithemes.com>
511
+ * @since 2.0
512
+ */
513
+ public function maybe_unserialize_panel_data( $value, $option, $raw_value ) {
514
+ if ( ! version_compare( WC()->version, '2.4.0', '>=' ) || ! isset( $option['type'] ) || in_array( $option['type'], self::$wc_type, true ) || 'yith-field' === $option['type'] ) {
515
+ return $value;
516
+ }
517
+
518
+ $yit_options = $this->get_main_array_options();
519
+ $option_key = $this->get_current_option_key();
520
+
521
+ if ( ! empty( $yit_options[ $option_key ] ) ) {
522
+ foreach ( $yit_options[ $option_key ] as $option_array ) {
523
+ if ( isset( $option_array['id'] ) && isset( $option['id'] ) && $option_array['id'] === $option['id'] ) {
524
+ return maybe_unserialize( $value );
525
+ }
526
+ }
527
+ }
528
+
529
+ return $value;
530
+ }
531
+
532
+ /**
533
+ * Sanitize Option
534
+ *
535
+ * @param mixed $value Option value.
536
+ * @param mixed $option Option settings array.
537
+ * @param mixed $raw_value Raw option value.
538
+ *
539
+ * @return mixed Filtered return value
540
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
541
+ * @since 3.0.0
542
+ */
543
+ public static function sanitize_option( $value, $option, $raw_value ) {
544
+ if ( isset( $option['type'] ) && 'yith-field' === $option['type'] ) {
545
+ $value = $raw_value; // We need the raw value to avoid the wc_clean. Note: the raw_value is already un-slashed.
546
+ $type = isset( $option['yith-type'] ) ? $option['yith-type'] : false;
547
+ $multiple = ! empty( $option['multiple'] );
548
+
549
+ switch ( $type ) {
550
+ case 'checkbox':
551
+ case 'onoff':
552
+ $value = yith_plugin_fw_is_true( $value ) ? 'yes' : 'no';
553
+ break;
554
+ case 'checkbox-array':
555
+ $value = ! ! $value && is_array( $value ) ? $value : array();
556
+ break;
557
+ case 'select-buttons':
558
+ $value = ! empty( $value ) ? $value : array();
559
+ break;
560
+ case 'date-format':
561
+ if ( '\c\u\s\t\o\m' === $value ) {
562
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
563
+ $custom = isset( $_REQUEST[ $option['id'] . '_text' ] ) ? sanitize_text_field( wp_unslash( $_REQUEST[ $option['id'] . '_text' ] ) ) : $option['default'];
564
+ $value = $custom;
565
+ }
566
+ break;
567
+ case 'toggle-element':
568
+ if ( $value && isset( $option['elements'] ) && ! empty( $option['elements'] ) ) {
569
+
570
+ if ( isset( $value['box_id'] ) ) {
571
+ unset( $value['box_id'] );
572
+ }
573
+
574
+ foreach ( $value as $index => $single_toggle ) {
575
+
576
+ if ( $value && isset( $option['onoff_field'] ) && ! empty( $option['onoff_field'] ) ) {
577
+ $on_off = $option['onoff_field'];
578
+ $on_off['type'] = 'yith-field';
579
+ $on_off['yith-type'] = 'onoff';
580
+ $on_off_id = $on_off['id'];
581
+
582
+ $value[ $index ][ $on_off_id ] = isset( $single_toggle[ $on_off_id ] ) ? self::sanitize_option( $single_toggle[ $on_off_id ], $on_off, $single_toggle[ $on_off_id ] ) : 'no';
583
+ }
584
+
585
+ foreach ( $option['elements'] as $element ) {
586
+ $element_value = isset( $value[ $index ][ $element['id'] ] ) ? $value[ $index ][ $element['id'] ] : false;
587
+ // We don't need to un-slash the value, since it's already un-slashed.
588
+ $value[ $index ][ $element['id'] ] = self::sanitize_option( $element_value, $element, $element_value );
589
+ }
590
+ }
591
+ }
592
+ break;
593
+ }
594
+
595
+ if ( $multiple && empty( $value ) ) {
596
+ $value = array();
597
+ }
598
+
599
+ if ( ! empty( $option['yith-sanitize-callback'] ) && is_callable( $option['yith-sanitize-callback'] ) ) {
600
+ $value = call_user_func( $option['yith-sanitize-callback'], $value );
601
+ }
602
+ }
603
+
604
+ return apply_filters( 'yith_plugin_fw_wc_panel_sanitize_option', $value, $option, $raw_value );
605
+ }
606
+
607
+ /**
608
+ * Add YITH Fields.
609
+ *
610
+ * @param array $field The field.
611
+ *
612
+ * @return void
613
+ * @since 3.0.0
614
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
615
+ */
616
+ public static function add_yith_field( $field = array() ) {
617
+ if ( ! empty( $field ) && isset( $field['yith-type'] ) ) {
618
+ $field['type'] = $field['yith-type'];
619
+ unset( $field['yith-type'] );
620
+
621
+ $field['id'] = isset( $field['id'] ) ? $field['id'] : '';
622
+ $field['name'] = $field['id'];
623
+ $field['default'] = isset( $field['default'] ) ? $field['default'] : '';
624
+
625
+ $value = apply_filters( 'yith_plugin_fw_wc_panel_pre_field_value', null, $field );
626
+ if ( is_null( $value ) ) {
627
+ if ( 'toggle-element' === $field['type'] || 'toggle-element-fixed' === $field['type'] ) {
628
+ $value = get_option( $field['id'], $field['default'] );
629
+ } else {
630
+ $value = WC_Admin_Settings::get_option( $field['id'], $field['default'] );
631
+ }
632
+ }
633
+ $field['value'] = $value;
634
+
635
+ // Let's filter field data just before print.
636
+ $field = apply_filters( 'yith_plugin_fw_wc_panel_field_data', $field );
637
+
638
+ require YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/woocommerce/woocommerce-option-row.php';
639
+ }
640
+ }
641
+
642
+ /**
643
+ * Save the content of the toggle element present inside the panel.
644
+ * Called by the action 'admin_action_yith_plugin_fw_save_toggle_element'
645
+ * via Ajax
646
+ *
647
+ * @author Emanuela Castorina
648
+ */
649
+ public function save_toggle_element_options() {
650
+
651
+ check_ajax_referer( 'save-toggle-element', 'security' );
652
+
653
+ if ( ! current_user_can( $this->settings['capability'] ) ) {
654
+ wp_die( - 1 );
655
+ }
656
+
657
+ $posted = $_POST;
658
+ $tabs = $this->get_available_tabs();
659
+ $yit_options = $this->get_main_array_options();
660
+ $current_tab = isset( $_REQUEST['tab'] ) ? sanitize_key( wp_unslash( $_REQUEST['tab'] ) ) : false;
661
+ $current_tab = ! ! $current_tab && in_array( $current_tab, $tabs, true ) ? $current_tab : $tabs[0];
662
+ $option_id = isset( $_REQUEST['toggle_id'] ) ? sanitize_key( wp_unslash( $_REQUEST['toggle_id'] ) ) : '';
663
+ $updated = false;
664
+
665
+ if ( ! empty( $yit_options[ $current_tab ] ) && ! empty( $option_id ) ) {
666
+ $tab_options = $yit_options[ $current_tab ];
667
+ foreach ( $tab_options as $key => $item ) {
668
+ if ( ! isset( $item['id'] ) ) {
669
+ unset( $tab_options[ $key ] );
670
+ }
671
+ }
672
+
673
+ $option_array = array_combine( wp_list_pluck( $tab_options, 'id' ), $tab_options );
674
+ if ( isset( $option_array[ $option_id ] ) ) {
675
+ $value = isset( $posted[ $option_id ] ) ? $posted[ $option_id ] : '';
676
+
677
+ // Drag and drop.
678
+ $order_elements = isset( $posted['yith_toggle_elements_order_keys'] ) ? explode( ',', $posted['yith_toggle_elements_order_keys'] ) : false;
679
+ if ( $order_elements ) {
680
+ $i = 0;
681
+ $new_value = array();
682
+ foreach ( $order_elements as $key ) {
683
+ $index = apply_filters( 'yith_toggle_elements_index', $i ++, $key );
684
+ $new_value[ $index ] = $value[ $key ];
685
+ }
686
+
687
+ $value = $new_value;
688
+ }
689
+
690
+ $value = wp_unslash( $value ); // The value must be un-slashed before using it in self::sanitize_option.
691
+ $value = self::sanitize_option( $value, $option_array[ $option_id ], $value );
692
+ $updated = update_option( $option_id, $value );
693
+ }
694
+ }
695
+
696
+ return $updated;
697
+ }
698
+
699
+ /**
700
+ * Print tabs navigation.
701
+ *
702
+ * @param array $args The arguments.
703
+ */
704
+ public function print_tabs_nav( $args = array() ) {
705
+ $defaults = array(
706
+ 'premium_class' => 'yith-premium',
707
+ 'parent_page' => '',
708
+ 'wrapper_class' => 'nav-tab-wrapper woo-nav-tab-wrapper',
709
+ );
710
+ $args = wp_parse_args( $args, $defaults );
711
+
712
+ parent::print_tabs_nav( $args );
713
+ }
714
+
715
+ /**
716
+ * Sanitize OnOff Option
717
+ *
718
+ * @param mixed $value Option value.
719
+ * @param mixed $option Option settings array.
720
+ * @param string $raw_value Raw option value.
721
+ *
722
+ * @return mixed Filtered return value
723
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
724
+ * @since 3.0.0
725
+ */
726
+ public static function sanitize_onoff_value( $value, $option, $raw_value ) {
727
+ if ( isset( $option['type'] ) && in_array( $option['type'], array( 'checkbox', 'onoff' ), true ) ) {
728
+ $value = yith_plugin_fw_is_true( $raw_value ) ? 'yes' : 'no';
729
+
730
+ if ( ! empty( $option['yith-sanitize-callback'] ) && is_callable( $option['yith-sanitize-callback'] ) ) {
731
+ $value = call_user_func( $option['yith-sanitize-callback'], $value );
732
+ }
733
+ }
734
+
735
+ return $value;
736
+ }
737
+
738
+ /**
739
+ * Check if need to save the toggle element to a single options instead of an array
740
+ *
741
+ * @param array $yit_options Original options array.
742
+ *
743
+ * @return mixed|array New options array
744
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
745
+ * @since 3.0.0
746
+ */
747
+ public function check_for_save_single_option( $yit_options ) {
748
+ foreach ( $yit_options as $key => $options_list ) {
749
+ foreach ( $options_list as $value ) {
750
+ if ( ! empty( $value['yith-type'] ) && 'toggle-element-fixed' === $value['yith-type'] && isset( $value['save_single_options'] ) && true === $value['save_single_options'] ) {
751
+ $yit_options[ $key ] = array_merge( $yit_options[ $key ], $value['elements'] );
752
+ }
753
+ }
754
+ }
755
+
756
+ return $yit_options;
757
+ }
758
+ }
759
+ }
plugin-fw/includes/class-yit-plugin-panel.php ADDED
@@ -0,0 +1,1547 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Plugin Panel Class.
4
+ *
5
+ * @class YIT_Plugin_Panel
6
+ * @package YITH\PluginFramework\Classes
7
+ */
8
+
9
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
10
+
11
+ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
12
+ /**
13
+ * Class YIT_Plugin_Panel
14
+ */
15
+ class YIT_Plugin_Panel {
16
+ /**
17
+ * Version of the class.
18
+ *
19
+ * @var string
20
+ */
21
+ public $version = '1.0.0';
22
+
23
+ /**
24
+ * List of settings parameters.
25
+ *
26
+ * @var array
27
+ */
28
+ public $settings = array();
29
+
30
+ /**
31
+ * Tab Path Files.
32
+ *
33
+ * @var array
34
+ */
35
+ protected $tabs_path_files;
36
+
37
+ /**
38
+ * Main array of options.
39
+ *
40
+ * @var array
41
+ */
42
+ protected $main_array_options;
43
+
44
+ /**
45
+ * Tabs hierarchy.
46
+ *
47
+ * @var array
48
+ */
49
+ protected $tabs_hierarchy;
50
+
51
+ /**
52
+ * Tabs in WP Pages.
53
+ *
54
+ * @var array
55
+ */
56
+ protected static $panel_tabs_in_wp_pages = array();
57
+
58
+ /**
59
+ * Array of links.
60
+ *
61
+ * @var array
62
+ */
63
+ public $links;
64
+
65
+ /**
66
+ * Are the actions initialized?
67
+ *
68
+ * @var bool
69
+ */
70
+ protected static $actions_initialized = false;
71
+
72
+ /**
73
+ * YIT_Plugin_Panel constructor.
74
+ *
75
+ * @param array $args The panel arguments.
76
+ *
77
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
78
+ */
79
+ public function __construct( $args = array() ) {
80
+ if ( ! empty( $args ) ) {
81
+ $default_args = array(
82
+ 'parent_slug' => 'edit.php?',
83
+ 'page_title' => __( 'Plugin Settings', 'yith-plugin-fw' ),
84
+ 'menu_title' => __( 'Settings', 'yith-plugin-fw' ),
85
+ 'capability' => 'manage_options',
86
+ 'icon_url' => '',
87
+ 'position' => null,
88
+ );
89
+
90
+ $args = apply_filters( 'yit_plugin_fw_panel_option_args', wp_parse_args( $args, $default_args ) );
91
+ if ( isset( $args['parent_page'] ) && 'yit_plugin_panel' === $args['parent_page'] ) {
92
+ $args['parent_page'] = 'yith_plugin_panel';
93
+ }
94
+
95
+ $this->settings = $args;
96
+ $this->tabs_path_files = $this->get_tabs_path_files();
97
+
98
+ if ( isset( $this->settings['create_menu_page'] ) && $this->settings['create_menu_page'] ) {
99
+ $this->add_menu_page();
100
+ }
101
+
102
+ if ( ! empty( $this->settings['links'] ) ) {
103
+ $this->links = $this->settings['links'];
104
+ }
105
+
106
+ add_action( 'admin_init', array( $this, 'register_settings' ) );
107
+ add_action( 'admin_menu', array( $this, 'add_setting_page' ), 20 );
108
+ add_action( 'admin_menu', array( $this, 'add_premium_version_upgrade_to_menu' ), 100 );
109
+ add_action( 'admin_bar_menu', array( $this, 'add_admin_bar_menu' ), 100 );
110
+ add_action( 'admin_init', array( $this, 'add_fields' ) );
111
+
112
+ add_action( 'admin_enqueue_scripts', array( $this, 'init_wp_with_tabs' ), 11 );
113
+ add_action( 'admin_init', array( $this, 'maybe_redirect_to_proper_wp_page' ) );
114
+
115
+ // Init actions once to prevent multiple initialization.
116
+ static::init_actions();
117
+ }
118
+
119
+ add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
120
+
121
+ add_action( 'yith_plugin_fw_before_yith_panel', array( $this, 'add_plugin_banner' ), 10, 1 );
122
+ add_action( 'wp_ajax_yith_plugin_fw_save_toggle_element', array( $this, 'save_toggle_element_options' ) );
123
+ }
124
+
125
+ /**
126
+ * Is this a custom post type page?
127
+ *
128
+ * @return bool
129
+ * @see YIT_Plugin_Panel::init_wp_with_tabs
130
+ * @since 3.4.17
131
+ */
132
+ protected function is_custom_post_type_page() {
133
+ global $pagenow, $post_type;
134
+ $excluded_post_types = array( 'product', 'page', 'post' );
135
+
136
+ return in_array( $pagenow, array( 'post.php', 'post-new.php', 'edit.php' ), true ) && ! in_array( $post_type, $excluded_post_types, true );
137
+ }
138
+
139
+ /**
140
+ * Is this a custom taxonomy page?
141
+ *
142
+ * @return bool
143
+ * @see YIT_Plugin_Panel::init_wp_with_tabs
144
+ * @since 3.4.17
145
+ */
146
+ protected function is_custom_taxonomy_page() {
147
+ global $pagenow, $taxonomy;
148
+ $excluded_taxonomies = array( 'category', 'post_tag', 'product_cat', 'product_tag' );
149
+
150
+ return in_array( $pagenow, array( 'edit-tags.php', 'term.php' ), true ) && ! in_array( $taxonomy, $excluded_taxonomies, true );
151
+ }
152
+
153
+ /**
154
+ * Init actions to show YITH Panel tabs in WP Pages
155
+ *
156
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
157
+ * @since 3.4.0
158
+ */
159
+ public function init_wp_with_tabs() {
160
+ if ( ! current_user_can( $this->settings['capability'] ) ) {
161
+ return;
162
+ }
163
+
164
+ global $post_type, $taxonomy;
165
+ $tabs = false;
166
+
167
+ if ( $this->is_custom_post_type_page() ) {
168
+ $tabs = $this->get_post_type_tabs( $post_type );
169
+ } elseif ( $this->is_custom_taxonomy_page() ) {
170
+ $tabs = $this->get_taxonomy_tabs( $taxonomy );
171
+ }
172
+
173
+ $screen = function_exists( 'get_current_screen' ) ? get_current_screen() : false;
174
+ $is_block_editor = ! ! $screen && is_callable( array( $screen, 'is_block_editor' ) ) && $screen->is_block_editor();
175
+
176
+ if ( $tabs ) {
177
+ $current_tab_args = array(
178
+ 'page' => $this->settings['page'],
179
+ 'current_tab' => isset( $tabs['tab'] ) ? $tabs['tab'] : '',
180
+ 'current_sub_tab' => isset( $tabs['sub_tab'] ) ? $tabs['sub_tab'] : '',
181
+ );
182
+
183
+ if ( ! $is_block_editor ) {
184
+ wp_enqueue_style( 'yit-plugin-style' );
185
+ wp_enqueue_style( 'yith-plugin-fw-fields' );
186
+ wp_enqueue_script( 'yith-plugin-fw-wp-pages' );
187
+ }
188
+
189
+ if ( ! self::$panel_tabs_in_wp_pages ) {
190
+ self::$panel_tabs_in_wp_pages = $current_tab_args;
191
+ if ( ! $is_block_editor ) {
192
+ add_action( 'all_admin_notices', array( $this, 'print_panel_tabs_in_wp_pages' ) );
193
+ add_action( 'admin_footer', array( $this, 'print_panel_tabs_in_wp_pages_end' ) );
194
+ }
195
+ add_filter( 'parent_file', array( $this, 'set_parent_file_to_handle_menu_for_wp_pages' ) );
196
+ add_filter( 'submenu_file', array( $this, 'set_submenu_file_to_handle_menu_for_wp_pages' ), 10, 2 );
197
+ }
198
+ }
199
+ }
200
+
201
+ /**
202
+ * Init actions.
203
+ *
204
+ * @since 3.0.0
205
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
206
+ */
207
+ protected static function init_actions() {
208
+ if ( ! static::$actions_initialized ) {
209
+ add_filter( 'admin_body_class', array( __CLASS__, 'add_body_class' ) );
210
+
211
+ // Sort plugins by name in YITH Plugins menu.
212
+ add_action( 'admin_menu', array( __CLASS__, 'sort_plugins' ), 90 );
213
+ add_filter( 'add_menu_classes', array( __CLASS__, 'add_menu_class_in_yith_plugin' ) );
214
+
215
+ static::$actions_initialized = true;
216
+ }
217
+ }
218
+
219
+ /**
220
+ * Maybe init vars
221
+ */
222
+ protected function maybe_init_vars() {
223
+ if ( ! isset( $this->main_array_options ) && ! isset( $this->tabs_hierarchy ) ) {
224
+ $options_path = $this->settings['options-path'];
225
+ $this->main_array_options = array();
226
+ $this->tabs_hierarchy = array();
227
+
228
+ foreach ( $this->settings['admin-tabs'] as $item => $v ) {
229
+ $path = trailingslashit( $options_path ) . $item . '-options.php';
230
+ $path = apply_filters( 'yith_plugin_panel_item_options_path', $path, $options_path, $item, $this );
231
+ if ( file_exists( $path ) ) {
232
+ $_tab = include $path;
233
+ $this->main_array_options = array_merge( $this->main_array_options, $_tab );
234
+ $sub_tabs = $this->get_sub_tabs( $_tab );
235
+ $current_tab_key = array_keys( $_tab )[0];
236
+
237
+ $this->tabs_hierarchy[ $current_tab_key ] = array_merge(
238
+ array(
239
+ 'parent' => '',
240
+ 'has_sub_tabs' => ! ! $sub_tabs,
241
+ ),
242
+ $this->get_tab_info_by_options( $_tab[ $current_tab_key ] )
243
+ );
244
+
245
+ foreach ( $sub_tabs as $sub_item => $sub_options ) {
246
+ if ( strpos( $sub_item, $item . '-' ) === 0 ) {
247
+ $sub_item = substr( $sub_item, strlen( $item ) + 1 );
248
+ }
249
+ $sub_tab_path = $options_path . '/' . $item . '/' . $sub_item . '-options.php';
250
+ $sub_tab_path = apply_filters( 'yith_plugin_panel_sub_tab_item_options_path', $sub_tab_path, $sub_tabs, $sub_item, $this );
251
+
252
+ if ( file_exists( $sub_tab_path ) ) {
253
+ $_sub_tab = include $sub_tab_path;
254
+ $this->main_array_options = array_merge( $this->main_array_options, $_sub_tab );
255
+
256
+ $current_sub_tab_key = array_keys( $_sub_tab )[0];
257
+ $this->tabs_hierarchy[ $current_sub_tab_key ] = array_merge( array( 'parent' => $current_tab_key ), $this->get_tab_info_by_options( $_sub_tab[ $current_sub_tab_key ] ) );
258
+ }
259
+ }
260
+ }
261
+ }
262
+ }
263
+ }
264
+
265
+ /**
266
+ * Add yith-plugin-fw-panel in body classes in Panel pages
267
+ *
268
+ * @param string $admin_body_classes Body classes.
269
+ *
270
+ * @return string
271
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
272
+ * @since 3.0.0
273
+ */
274
+ public static function add_body_class( $admin_body_classes ) {
275
+ global $pagenow;
276
+ if ( ( 'admin.php' === $pagenow && strpos( get_current_screen()->id, 'yith-plugins_page' ) !== false ) ) {
277
+ $admin_body_classes = ! substr_count( $admin_body_classes, ' yith-plugin-fw-panel ' ) ? $admin_body_classes . ' yith-plugin-fw-panel ' : $admin_body_classes;
278
+ }
279
+
280
+ return $admin_body_classes;
281
+ }
282
+
283
+ /**
284
+ * Add Menu page link
285
+ *
286
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
287
+ */
288
+ public function add_menu_page() {
289
+ global $admin_page_hooks;
290
+
291
+ if ( ! isset( $admin_page_hooks['yith_plugin_panel'] ) ) {
292
+ $position = apply_filters( 'yit_plugins_menu_item_position', '62.32' );
293
+ $capability = apply_filters( 'yit_plugin_panel_menu_page_capability', 'manage_options' );
294
+ $show = apply_filters( 'yit_plugin_panel_menu_page_show', true );
295
+
296
+ // YITH text must NOT be translated.
297
+ if ( ! ! $show ) {
298
+ add_menu_page( 'yith_plugin_panel', 'YITH', $capability, 'yith_plugin_panel', null, yith_plugin_fw_get_default_logo(), $position );
299
+ // Prevent issues for backward compatibility.
300
+ $admin_page_hooks['yith_plugin_panel'] = 'yith-plugins'; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
301
+ }
302
+ }
303
+ }
304
+
305
+ /**
306
+ * Remove duplicate submenu
307
+ * Submenu page hack: Remove the duplicate YIT Plugin link on subpages
308
+ *
309
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
310
+ */
311
+ public function remove_duplicate_submenu_page() {
312
+ remove_submenu_page( 'yith_plugin_panel', 'yith_plugin_panel' );
313
+ }
314
+
315
+ /**
316
+ * Enqueue script and styles in admin side
317
+ * Add style and scripts to administrator
318
+ *
319
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
320
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
321
+ */
322
+ public function admin_enqueue_scripts() {
323
+ global $pagenow;
324
+
325
+ if ( 'admin.php' === $pagenow && strpos( get_current_screen()->id, $this->settings['page'] ) !== false || apply_filters( 'yit_plugin_panel_asset_loading', false ) ) {
326
+ wp_enqueue_media();
327
+
328
+ wp_enqueue_style( 'yith-plugin-fw-fields' );
329
+ wp_enqueue_style( 'jquery-ui-style' );
330
+ wp_enqueue_style( 'raleway-font' );
331
+
332
+ wp_enqueue_script( 'jquery-ui' );
333
+ wp_enqueue_script( 'jquery-ui-core' );
334
+ wp_enqueue_script( 'jquery-ui-dialog' );
335
+ wp_enqueue_script( 'yith_how_to' );
336
+ wp_enqueue_script( 'yith-plugin-fw-fields' );
337
+ }
338
+
339
+ if ( ( 'admin.php' === $pagenow && yith_plugin_fw_is_panel() ) || apply_filters( 'yit_plugin_panel_asset_loading', false ) ) {
340
+ wp_enqueue_media();
341
+ wp_enqueue_style( 'yit-plugin-style' );
342
+ wp_enqueue_script( 'yit-plugin-panel' );
343
+ }
344
+
345
+ if ( 'admin.php' === $pagenow && strpos( get_current_screen()->id, 'yith_upgrade_premium_version' ) !== false ) {
346
+ wp_enqueue_style( 'yit-upgrade-to-pro' );
347
+ wp_enqueue_script( 'colorbox' );
348
+ }
349
+ }
350
+
351
+ /**
352
+ * Register Settings
353
+ * Generate wp-admin settings pages by registering your settings and using a few callbacks to control the output
354
+ *
355
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
356
+ */
357
+ public function register_settings() {
358
+ register_setting( 'yit_' . $this->settings['parent'] . '_options', 'yit_' . $this->settings['parent'] . '_options', array( $this, 'options_validate' ) );
359
+ }
360
+
361
+ /**
362
+ * Add Setting SubPage
363
+ * add Setting SubPage to WordPress administrator
364
+ *
365
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
366
+ */
367
+ public function add_setting_page() {
368
+ $this->settings['icon_url'] = isset( $this->settings['icon_url'] ) ? $this->settings['icon_url'] : '';
369
+ $this->settings['position'] = isset( $this->settings['position'] ) ? $this->settings['position'] : null;
370
+ $parent = $this->settings['parent_slug'] . $this->settings['parent_page'];
371
+
372
+ if ( ! empty( $parent ) ) {
373
+ add_submenu_page( $parent, $this->settings['page_title'], $this->settings['menu_title'], $this->settings['capability'], $this->settings['page'], array( $this, 'yit_panel' ) );
374
+ } else {
375
+ add_menu_page( $this->settings['page_title'], $this->settings['menu_title'], $this->settings['capability'], $this->settings['page'], array( $this, 'yit_panel' ), $this->settings['icon_url'], $this->settings['position'] );
376
+ }
377
+ // Duplicate Items Hack.
378
+ $this->remove_duplicate_submenu_page();
379
+ do_action( 'yit_after_add_settings_page' );
380
+
381
+ }
382
+
383
+ /**
384
+ * Options Validate
385
+ * a callback function called by Register Settings function
386
+ *
387
+ * @param array $field The field to validate.
388
+ *
389
+ * @return array validated fields
390
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
391
+ */
392
+ public function options_validate( $field ) {
393
+ $option_key = ! empty( $field['option_key'] ) ? $field['option_key'] : 'general';
394
+ $yit_options = $this->get_main_array_options();
395
+ $validated_fields = $this->get_options();
396
+
397
+ foreach ( $yit_options[ $option_key ] as $section => $data ) {
398
+ foreach ( $data as $option ) {
399
+ if ( isset( $option['sanitize_call'] ) && isset( $option['id'] ) ) {
400
+ if ( is_array( $option['sanitize_call'] ) ) {
401
+ foreach ( $option['sanitize_call'] as $callback ) {
402
+ if ( is_array( $field[ $option['id'] ] ) ) {
403
+ $validated_fields[ $option['id'] ] = array_map( $callback, $field[ $option['id'] ] );
404
+ } else {
405
+ $validated_fields[ $option['id'] ] = call_user_func( $callback, $field[ $option['id'] ] );
406
+ }
407
+ }
408
+ } else {
409
+ if ( is_array( $field[ $option['id'] ] ) ) {
410
+ $validated_fields[ $option['id'] ] = array_map( $option['sanitize_call'], $field[ $option['id'] ] );
411
+ } else {
412
+ $validated_fields[ $option['id'] ] = call_user_func( $option['sanitize_call'], $field[ $option['id'] ] );
413
+ }
414
+ }
415
+ } else {
416
+ if ( isset( $option['id'] ) ) {
417
+ $value = isset( $field[ $option['id'] ] ) ? $field[ $option['id'] ] : false;
418
+ if ( isset( $option['type'] ) && in_array( $option['type'], array( 'checkbox', 'onoff' ), true ) ) {
419
+ $value = yith_plugin_fw_is_true( $value ) ? 'yes' : 'no';
420
+ }
421
+
422
+ if ( ! empty( $option['yith-sanitize-callback'] ) && is_callable( $option['yith-sanitize-callback'] ) ) {
423
+ $value = call_user_func( $option['yith-sanitize-callback'], $value );
424
+ }
425
+
426
+ $validated_fields[ $option['id'] ] = $value;
427
+ }
428
+ }
429
+ }
430
+ }
431
+
432
+ return $validated_fields;
433
+ }
434
+
435
+ /**
436
+ * Add Premium Version upgrade menu item
437
+ *
438
+ * @since 2.9.13
439
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
440
+ */
441
+ public function add_premium_version_upgrade_to_menu() {
442
+ // Add the How To menu item only if the customer haven't a premium version enabled.
443
+ if ( function_exists( 'YIT_Plugin_Licence' ) && ! ! YIT_Plugin_Licence()->get_products() ) {
444
+ return;
445
+ }
446
+
447
+ global $submenu;
448
+ if ( apply_filters( 'yit_show_upgrade_to_premium_version', isset( $submenu['yith_plugin_panel'] ) ) ) {
449
+ $how_to_menu = array(
450
+ sprintf( '%s%s%s', '<span id="yith-how-to-premium">', __( 'How to install premium version', 'yith-plugin-fw' ), '</span>' ),
451
+ 'install_plugins',
452
+ '//support.yithemes.com/hc/en-us/articles/217840988',
453
+ __( 'How to install premium version', 'yith-plugin-fw' ),
454
+ );
455
+ $submenu['yith_plugin_panel']['how_to'] = $how_to_menu; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
456
+ }
457
+ }
458
+
459
+ /**
460
+ * Print the tabs navigation
461
+ *
462
+ * @param array $args Nav Arguments.
463
+ *
464
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
465
+ * @since 3.4.0
466
+ */
467
+ public function print_tabs_nav( $args = array() ) {
468
+ $defaults = array(
469
+ 'current_tab' => $this->get_current_tab(),
470
+ 'premium_class' => isset( $this->settings['class'] ) ? 'yith-premium' : 'premium',
471
+ 'page' => $this->settings['page'],
472
+ 'parent_page' => $this->settings['parent_page'],
473
+ 'wrapper_class' => 'nav-tab-wrapper',
474
+ );
475
+ $args = wp_parse_args( $args, $defaults );
476
+
477
+ list ( $current_tab, $premium_class, $page, $parent_page, $wrapper_class ) = yith_plugin_fw_extract( $args, 'current_tab', 'premium_class', 'page', 'parent_page', 'wrapper_class' );
478
+
479
+ $tabs = '<ul class="yith-plugin-fw-tabs">';
480
+
481
+ foreach ( $this->settings['admin-tabs'] as $tab => $tab_value ) {
482
+ $active_class = $current_tab === $tab ? ' nav-tab-active' : '';
483
+ if ( 'premium' === $tab ) {
484
+ $active_class .= ' ' . $premium_class;
485
+ }
486
+ $active_class = apply_filters( 'yith_plugin_fw_panel_active_tab_class', $active_class, $current_tab, $tab );
487
+
488
+ $first_sub_tab = $this->get_first_sub_tab_key( $tab );
489
+ $sub_tab = ! ! $first_sub_tab ? $first_sub_tab : '';
490
+ $sub_tabs = $this->get_sub_tabs( $tab );
491
+ $url = $this->get_nav_url( $page, $tab, $sub_tab, $parent_page );
492
+ $icon = ( $current_tab !== $tab && $sub_tabs ) ? '<i class="yith-icon yith-icon-arrow_down"></i>' : '';
493
+
494
+ $tabs .= '<li class="yith-plugin-fw-tab-element">';
495
+ $tabs .= '<a class="nav-tab' . esc_attr( $active_class ) . '" href="' . esc_url( $url ) . '">' . wp_kses_post( $tab_value ) . $icon . '</a>';
496
+
497
+ if ( $current_tab !== $tab && $sub_tabs ) {
498
+ $tabs .= '<div class="nav-subtab-wrap"><ul class="nav-subtab">';
499
+ foreach ( $sub_tabs as $_key => $_tab ) {
500
+ $url = $this->get_nav_url( $page, $tab, $_key );
501
+
502
+ $tabs .= '<li class="nav-subtab-item"><a href="' . esc_url( $url ) . '">' . wp_kses_post( $_tab['title'] ) . '</a></li>';
503
+ }
504
+ $tabs .= '</ul></div>';
505
+ }
506
+ $tabs .= '</li>';
507
+ }
508
+ $tabs .= '</ul>';
509
+ ?>
510
+ <h2 class="<?php echo esc_attr( $wrapper_class ); ?>">
511
+ <?php echo $tabs; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
512
+ </h2>
513
+ <?php
514
+ $this->print_sub_tabs_nav( $args );
515
+ }
516
+
517
+ /**
518
+ * Retrieve the Nav URL.
519
+ *
520
+ * @param string $page The page.
521
+ * @param string $tab The tab.
522
+ * @param string $sub_tab The sub-tab.
523
+ * @param string $parent_page The parent page.
524
+ *
525
+ * @return string
526
+ */
527
+ public function get_nav_url( $page, $tab, $sub_tab = '', $parent_page = '' ) {
528
+ $tab_hierarchy = $this->get_tabs_hierarchy();
529
+ $key = ! ! $sub_tab ? $sub_tab : $tab;
530
+
531
+ if ( isset( $tab_hierarchy[ $key ], $tab_hierarchy[ $key ]['type'], $tab_hierarchy[ $key ]['post_type'] ) && 'post_type' === $tab_hierarchy[ $key ]['type'] ) {
532
+ $url = admin_url( "edit.php?post_type={$tab_hierarchy[$key]['post_type']}" );
533
+ } elseif ( isset( $tab_hierarchy[ $key ], $tab_hierarchy[ $key ]['type'], $tab_hierarchy[ $key ]['taxonomy'] ) && 'taxonomy' === $tab_hierarchy[ $key ]['type'] ) {
534
+ $url = admin_url( "edit-tags.php?taxonomy={$tab_hierarchy[$key]['taxonomy']}" );
535
+ } else {
536
+ $url = ! ! $parent_page ? "?{$parent_page}&" : '?';
537
+
538
+ $url .= "page={$page}&tab={$tab}";
539
+ $url .= ! ! $sub_tab ? "&sub_tab={$sub_tab}" : '';
540
+
541
+ $url = admin_url( "admin.php{$url}" );
542
+ }
543
+
544
+ return apply_filters( 'yith_plugin_fw_panel_url', $url, $page, $tab, $sub_tab, $parent_page );
545
+ }
546
+
547
+ /**
548
+ * Print the Sub-tabs navigation if the current tab has sub-tabs
549
+ *
550
+ * @param array $args Sub-tab arguments.
551
+ *
552
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
553
+ * @since 3.4.0
554
+ */
555
+ public function print_sub_tabs_nav( $args = array() ) {
556
+ $defaults = array(
557
+ 'current_tab' => $this->get_current_tab(),
558
+ 'page' => $this->settings['page'],
559
+ 'current_sub_tab' => $this->get_current_sub_tab(),
560
+ );
561
+ $args = wp_parse_args( $args, $defaults );
562
+
563
+ /**
564
+ * The arguments.
565
+ *
566
+ * @var string $current_tab The current tab.
567
+ * @var string $page The page.
568
+ * @var string $current_sub_tab The current sub-tab.
569
+ */
570
+ extract( $args ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
571
+
572
+ $sub_tabs = $this->get_sub_tabs( $current_tab );
573
+
574
+ if ( $sub_tabs && $current_sub_tab ) {
575
+ include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/sub-tabs-nav.php';
576
+ }
577
+ }
578
+
579
+ /**
580
+ * Show a tabbed panel to setting page
581
+ * a callback function called by add_setting_page => add_submenu_page
582
+ *
583
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
584
+ */
585
+ public function yit_panel() {
586
+ $yit_options = $this->get_main_array_options();
587
+ $wrap_class = isset( $this->settings['class'] ) ? $this->settings['class'] : '';
588
+
589
+ $option_key = $this->get_current_option_key();
590
+ $custom_tab_options = $this->get_custom_tab_options( $yit_options, $option_key );
591
+ ?>
592
+ <div class="wrap <?php echo esc_attr( $wrap_class ); ?>">
593
+ <div id="icon-themes" class="icon32"><br/></div>
594
+ <?php
595
+ do_action( 'yith_plugin_fw_before_yith_panel', $this->settings['page'] );
596
+
597
+ $this->print_tabs_nav();
598
+
599
+ if ( $custom_tab_options ) {
600
+ $this->print_custom_tab( $custom_tab_options );
601
+
602
+ return;
603
+ }
604
+
605
+ $panel_content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admin-panel-content-wrap' );
606
+ ?>
607
+ <div id="wrap" class="yith-plugin-fw plugin-option yit-admin-panel-container">
608
+ <?php $this->message(); ?>
609
+ <div class="<?php echo esc_attr( $panel_content_class ); ?>">
610
+ <h2><?php echo wp_kses_post( $this->get_tab_title() ); ?></h2>
611
+ <?php if ( $this->is_show_form() ) : ?>
612
+ <form id="yith-plugin-fw-panel" method="post" action="options.php">
613
+ <?php do_settings_sections( 'yit' ); ?>
614
+ <p>&nbsp;</p>
615
+ <?php settings_fields( 'yit_' . $this->settings['parent'] . '_options' ); ?>
616
+ <input type="hidden" name="<?php echo esc_attr( $this->get_name_field( 'option_key' ) ); ?>"
617
+ value="<?php echo esc_attr( $option_key ); ?>"/>
618
+ <input type="submit" class="button-primary"
619
+ value="<?php esc_attr_e( 'Save Changes', 'yith-plugin-fw' ); ?>"
620
+ style="float:left;margin-right:10px;"/>
621
+ </form>
622
+ <form method="post">
623
+ <?php
624
+ $reset_warning = __( 'If you continue with this action, you will reset all options in this page.', 'yith-plugin-fw' ) . '\n' . __( 'Are you sure?', 'yith-plugin-fw' );
625
+ ?>
626
+ <input type="hidden" name="yit-action" value="reset"/>
627
+ <input type="submit" name="yit-reset" class="button-secondary"
628
+ value="<?php esc_attr_e( 'Reset to default', 'yith-plugin-fw' ); ?>"
629
+ onclick="return confirm('<?php echo esc_attr( $reset_warning ); ?>');"/>
630
+ </form>
631
+ <p>&nbsp;</p>
632
+ <?php endif ?>
633
+ </div>
634
+ </div>
635
+ </div>
636
+ <?php
637
+ }
638
+
639
+ /**
640
+ * Check if is a custom tab.
641
+ *
642
+ * @param array $options The tab options.
643
+ * @param string $option_key The option key.
644
+ *
645
+ * @return string|false The action to be fired of false if it's not a custom tab.
646
+ */
647
+ public function is_custom_tab( $options, $option_key ) {
648
+ $option = $this->get_custom_tab_options( $options, $option_key );
649
+
650
+ return ! ! $option && isset( $option['action'] ) ? $option['action'] : false;
651
+ }
652
+
653
+ /**
654
+ * Retrieve the custom tab options.
655
+ *
656
+ * @param array $options The tab options.
657
+ * @param string $option_key The option key.
658
+ *
659
+ * @return array|false The options of the custom tab; false if it's not a custom tab.
660
+ */
661
+ public function get_custom_tab_options( $options, $option_key ) {
662
+ $option = ! empty( $options[ $option_key ] ) ? current( $options[ $option_key ] ) : false;
663
+
664
+ if ( $option && isset( $option['type'], $option['action'] ) && 'custom_tab' === $option['type'] && ! empty( $option['action'] ) ) {
665
+ return $option;
666
+ } else {
667
+ return false;
668
+ }
669
+ }
670
+
671
+ /**
672
+ * Retrieve the tab type by its options.
673
+ *
674
+ * @param array $tab_options The tab options.
675
+ *
676
+ * @return string
677
+ */
678
+ public function get_tab_type_by_options( $tab_options ) {
679
+ $first = ! ! $tab_options && is_array( $tab_options ) ? current( $tab_options ) : array();
680
+ $type = isset( $first['type'] ) ? $first['type'] : 'options';
681
+ $special_types = array( 'post_type', 'taxonomy', 'custom_tab', 'multi_tab' );
682
+
683
+ return in_array( $type, $special_types, true ) ? $type : 'options';
684
+ }
685
+
686
+ /**
687
+ * Retrieve the tab info by its options.
688
+ *
689
+ * @param array $tab_options The tab options.
690
+ *
691
+ * @return string[]
692
+ */
693
+ public function get_tab_info_by_options( $tab_options ) {
694
+ $type = $this->get_tab_type_by_options( $tab_options );
695
+ $info = array( 'type' => $type );
696
+ $first = ! ! $tab_options && is_array( $tab_options ) ? current( $tab_options ) : array();
697
+ if ( 'post_type' === $type ) {
698
+ $info['post_type'] = isset( $first['post_type'] ) ? $first['post_type'] : '';
699
+ } elseif ( 'taxonomy' === $type ) {
700
+ $info['taxonomy'] = isset( $first['taxonomy'] ) ? $first['taxonomy'] : '';
701
+ }
702
+
703
+ return $info;
704
+ }
705
+
706
+ /**
707
+ * Fire the action to print the custom tab.
708
+ *
709
+ * @param array $options The options of the custom tab.
710
+ *
711
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
712
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
713
+ */
714
+ public function print_custom_tab( $options ) {
715
+ if ( is_string( $options ) ) {
716
+ // Backward compatibility.
717
+ $options = array( 'action' => $options );
718
+ }
719
+ $current_tab = $this->get_current_tab();
720
+ $current_sub_tab = $this->get_current_sub_tab();
721
+
722
+ include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/custom-tab.php';
723
+ }
724
+
725
+ /**
726
+ * Add sections and fields to setting panel.
727
+ * Read all options and show sections and fields.
728
+ *
729
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
730
+ */
731
+ public function add_fields() {
732
+ $yit_options = $this->get_main_array_options();
733
+ $option_key = $this->get_current_option_key();
734
+
735
+ if ( ! $option_key ) {
736
+ return;
737
+ }
738
+ foreach ( $yit_options[ $option_key ] as $section => $data ) {
739
+ add_settings_section( "yit_settings_{$option_key}_{$section}", $this->get_section_title( $section ), $this->get_section_description( $section ), 'yit' );
740
+ foreach ( $data as $option ) {
741
+ if ( isset( $option['id'] ) && isset( $option['type'] ) && isset( $option['name'] ) ) {
742
+ add_settings_field(
743
+ 'yit_setting_' . $option['id'],
744
+ $option['name'],
745
+ array( $this, 'render_field' ),
746
+ 'yit',
747
+ "yit_settings_{$option_key}_{$section}",
748
+ array(
749
+ 'option' => $option,
750
+ 'label_for' => $this->get_id_field( $option['id'] ),
751
+ )
752
+ );
753
+ }
754
+ }
755
+ }
756
+ }
757
+
758
+ /**
759
+ * Add the tabs to admin bar menu.
760
+ * Set all tabs of settings page on wp admin bar.
761
+ *
762
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
763
+ */
764
+ public function add_admin_bar_menu() {
765
+ global $wp_admin_bar;
766
+
767
+ if ( ! current_user_can( 'manage_options' ) ) {
768
+ return;
769
+ }
770
+
771
+ if ( ! empty( $this->settings['admin_tabs'] ) ) {
772
+ foreach ( $this->settings['admin-tabs'] as $item => $title ) {
773
+ $wp_admin_bar->add_menu(
774
+ array(
775
+ 'parent' => $this->settings['parent'],
776
+ 'title' => $title,
777
+ 'id' => $this->settings['parent'] . '-' . $item,
778
+ 'href' => admin_url( 'themes.php' ) . '?page=' . $this->settings['parent_page'] . '&tab=' . $item,
779
+ )
780
+ );
781
+ }
782
+ }
783
+ }
784
+
785
+ /**
786
+ * Get current tab.
787
+ * Retrieve the id of tab shown, return general is the current tab is not defined.
788
+ *
789
+ * @return string|false
790
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
791
+ */
792
+ public function get_current_tab() {
793
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
794
+ $admin_tabs = array_keys( $this->settings['admin-tabs'] );
795
+
796
+ if ( ! isset( $_GET['page'] ) || $_GET['page'] !== $this->settings['page'] ) {
797
+ return false;
798
+ }
799
+ if ( isset( $_REQUEST['yit_tab_options'] ) ) {
800
+ return sanitize_key( wp_unslash( $_REQUEST['yit_tab_options'] ) );
801
+ } elseif ( isset( $_GET['tab'] ) ) {
802
+ return sanitize_key( wp_unslash( $_GET['tab'] ) );
803
+ } elseif ( isset( $admin_tabs[0] ) ) {
804
+ return $admin_tabs[0];
805
+ } else {
806
+ return 'general';
807
+ }
808
+ // phpcs:enable
809
+ }
810
+
811
+ /**
812
+ * Get the current sub-tab.
813
+ *
814
+ * @return string The key of the sub-tab if exists, empty string otherwise.
815
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
816
+ * @since 3.4.0
817
+ */
818
+ public function get_current_sub_tab() {
819
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
820
+ $sub_tabs = $this->get_sub_tabs();
821
+ $sub_tab = isset( $_REQUEST['sub_tab'] ) ? sanitize_key( wp_unslash( $_REQUEST['sub_tab'] ) ) : '';
822
+
823
+ if ( $sub_tabs ) {
824
+ if ( $sub_tab && ! isset( $sub_tabs[ $sub_tab ] ) || ! $sub_tab ) {
825
+ $sub_tab = current( array_keys( $sub_tabs ) );
826
+ }
827
+ } else {
828
+ $sub_tab = '';
829
+ }
830
+
831
+ return $sub_tab;
832
+ // phpcs:enable
833
+ }
834
+
835
+ /**
836
+ * Return the option key related to the current page.
837
+ * for sub-tabbed tabs, it will return the current sub-tab.
838
+ * fot normal tabs, it will return the current tab.
839
+ *
840
+ * @return string the current sub-tab, if exists; the current tab otherwise.
841
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
842
+ * @since 3.4.0
843
+ */
844
+ public function get_current_option_key() {
845
+ $current_tab = $this->get_current_tab();
846
+ $current_sub_tab = $this->get_current_sub_tab();
847
+
848
+ if ( ! $current_tab ) {
849
+ return false;
850
+ }
851
+
852
+ return $current_sub_tab ? $current_sub_tab : $current_tab;
853
+ }
854
+
855
+ /**
856
+ * Message
857
+ * define an array of message and show the content od message if
858
+ * is find in the query string
859
+ *
860
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
861
+ */
862
+ public function message() {
863
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
864
+ $message = array(
865
+ 'element_exists' => $this->get_message( '<strong>' . __( 'The element you have entered already exists. Please, enter another name.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
866
+ 'saved' => $this->get_message( '<strong>' . __( 'Settings saved', 'yith-plugin-fw' ) . '.</strong>', 'updated', false ),
867
+ 'reset' => $this->get_message( '<strong>' . __( 'Settings reset', 'yith-plugin-fw' ) . '.</strong>', 'updated', false ),
868
+ 'delete' => $this->get_message( '<strong>' . __( 'Element deleted correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
869
+ 'updated' => $this->get_message( '<strong>' . __( 'Element updated correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
870
+ 'settings-updated' => $this->get_message( '<strong>' . __( 'Element updated correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
871
+ 'imported' => $this->get_message( '<strong>' . __( 'Database imported correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
872
+ 'no-imported' => $this->get_message( '<strong>' . __( 'An error has occurred during import. Please try again.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
873
+ 'file-not-valid' => $this->get_message( '<strong>' . __( 'The added file is not valid.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
874
+ 'cant-import' => $this->get_message( '<strong>' . __( 'Sorry, import is disabled.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
875
+ 'ord' => $this->get_message( '<strong>' . __( 'Sorting successful.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
876
+ );
877
+
878
+ foreach ( $message as $key => $value ) {
879
+ if ( isset( $_GET[ $key ] ) ) {
880
+ echo wp_kses_post( $message[ $key ] );
881
+ }
882
+ }
883
+ // phpcs:enable
884
+ }
885
+
886
+ /**
887
+ * Get Message
888
+ * return html code of message
889
+ *
890
+ * @param string $message The message.
891
+ * @param string $type The type of message (can be 'error' or 'updated').
892
+ * @param bool $echo Set to true if you want to print the message.
893
+ *
894
+ * @return string
895
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
896
+ */
897
+ public function get_message( $message, $type = 'error', $echo = true ) {
898
+ $message = '<div id="message" class="' . esc_attr( $type ) . ' fade"><p>' . wp_kses_post( $message ) . '</p></div>';
899
+ if ( $echo ) {
900
+ echo wp_kses_post( $message );
901
+ }
902
+
903
+ return $message;
904
+ }
905
+
906
+ /**
907
+ * Get Tab Path Files
908
+ * return an array with file names of tabs
909
+ *
910
+ * @return array
911
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
912
+ */
913
+ public function get_tabs_path_files() {
914
+ $option_files_path = $this->settings['options-path'] . '/';
915
+ $tabs = array();
916
+
917
+ foreach ( (array) glob( $option_files_path . '*.php' ) as $filename ) {
918
+ preg_match( '/(.*)-options\.(.*)/', basename( $filename ), $filename_parts );
919
+
920
+ if ( ! isset( $filename_parts[1] ) ) {
921
+ continue;
922
+ }
923
+
924
+ $tab = $filename_parts[1];
925
+ $tabs[ $tab ] = $filename;
926
+ }
927
+
928
+ return $tabs;
929
+ }
930
+
931
+ /**
932
+ * Get main array options
933
+ * return an array with all options defined on options-files
934
+ *
935
+ * @return array
936
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
937
+ */
938
+ public function get_main_array_options() {
939
+ $this->maybe_init_vars();
940
+
941
+ return $this->main_array_options;
942
+ }
943
+
944
+ /**
945
+ * Get tab hierarchy.
946
+ *
947
+ * @return array
948
+ */
949
+ public function get_tabs_hierarchy() {
950
+ $this->maybe_init_vars();
951
+
952
+ return $this->tabs_hierarchy;
953
+ }
954
+
955
+ /**
956
+ * Return the sub-tabs array of a specific tab
957
+ *
958
+ * @param array|bool $_tab the tab; if not set it'll be the current tab.
959
+ *
960
+ * @since 3.4.0
961
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
962
+ * @return array Sub-tabs array.
963
+ */
964
+ public function get_sub_tabs( $_tab = false ) {
965
+ if ( false === $_tab ) {
966
+ $_tab = $this->get_current_tab();
967
+ }
968
+
969
+ if ( is_string( $_tab ) ) {
970
+ $main_array_options = $this->get_main_array_options();
971
+ $current_tab_options = isset( $main_array_options[ $_tab ] ) ? $main_array_options[ $_tab ] : array();
972
+ if ( $current_tab_options ) {
973
+ $_tab = array( $_tab => $current_tab_options );
974
+ }
975
+ }
976
+
977
+ $_tab_options = ! ! $_tab && is_array( $_tab ) ? current( $_tab ) : false;
978
+ $_first = ! ! $_tab_options && is_array( $_tab_options ) ? current( $_tab_options ) : false;
979
+ if ( $_first && is_array( $_first ) && isset( $_first['type'] ) && 'multi_tab' === $_first['type'] && ! empty( $_first['sub-tabs'] ) ) {
980
+ return $_first['sub-tabs'];
981
+ }
982
+
983
+ return array();
984
+ }
985
+
986
+ /**
987
+ * Retrieve the first sub-tab key.
988
+ *
989
+ * @param string|false $_tab The tab; if not set it'll be the current tab.
990
+ *
991
+ * @return false|mixed
992
+ */
993
+ public function get_first_sub_tab_key( $_tab = false ) {
994
+ $key = false;
995
+ if ( is_string( $_tab ) ) {
996
+ $main_array_options = $this->get_main_array_options();
997
+ $current_tab_options = isset( $main_array_options[ $_tab ] ) ? $main_array_options[ $_tab ] : array();
998
+ if ( $current_tab_options ) {
999
+ $_tab = array( $_tab => $current_tab_options );
1000
+ }
1001
+ }
1002
+ $sub_tabs = $this->get_sub_tabs( $_tab );
1003
+ if ( $sub_tabs ) {
1004
+ $key = current( array_keys( $sub_tabs ) );
1005
+ }
1006
+
1007
+ return $key;
1008
+ }
1009
+
1010
+
1011
+ /**
1012
+ * Set an array with all default options
1013
+ * put default options in an array
1014
+ *
1015
+ * @return array
1016
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1017
+ */
1018
+ public function get_default_options() {
1019
+ $yit_options = $this->get_main_array_options();
1020
+ $default_options = array();
1021
+
1022
+ foreach ( $yit_options as $tab => $sections ) {
1023
+ foreach ( $sections as $section ) {
1024
+ foreach ( $section as $id => $value ) {
1025
+ if ( isset( $value['std'] ) && isset( $value['id'] ) ) {
1026
+ $default_options[ $value['id'] ] = $value['std'];
1027
+ }
1028
+ }
1029
+ }
1030
+ }
1031
+
1032
+ unset( $yit_options );
1033
+
1034
+ return $default_options;
1035
+ }
1036
+
1037
+
1038
+ /**
1039
+ * Get the title of the tab
1040
+ * return the title of tab
1041
+ *
1042
+ * @return string
1043
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1044
+ */
1045
+ public function get_tab_title() {
1046
+ $yit_options = $this->get_main_array_options();
1047
+ $option_key = $this->get_current_option_key();
1048
+
1049
+ foreach ( $yit_options[ $option_key ] as $sections => $data ) {
1050
+ foreach ( $data as $option ) {
1051
+ if ( isset( $option['type'] ) && 'title' === $option['type'] ) {
1052
+ return $option['name'];
1053
+ }
1054
+ }
1055
+ }
1056
+
1057
+ return '';
1058
+ }
1059
+
1060
+ /**
1061
+ * Get the title of the section
1062
+ * return the title of section
1063
+ *
1064
+ * @param string $section The section.
1065
+ *
1066
+ * @return string
1067
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1068
+ */
1069
+ public function get_section_title( $section ) {
1070
+ $yit_options = $this->get_main_array_options();
1071
+ $option_key = $this->get_current_option_key();
1072
+
1073
+ foreach ( $yit_options[ $option_key ][ $section ] as $option ) {
1074
+ if ( isset( $option['type'] ) && 'section' === $option['type'] ) {
1075
+ return $option['name'];
1076
+ }
1077
+ }
1078
+
1079
+ return '';
1080
+ }
1081
+
1082
+ /**
1083
+ * Get the description of the section
1084
+ * return the description of section if is set
1085
+ *
1086
+ * @param string $section The section.
1087
+ *
1088
+ * @return string
1089
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1090
+ */
1091
+ public function get_section_description( $section ) {
1092
+ $yit_options = $this->get_main_array_options();
1093
+ $option_key = $this->get_current_option_key();
1094
+
1095
+ foreach ( $yit_options[ $option_key ][ $section ] as $option ) {
1096
+ if ( isset( $option['type'] ) && 'section' === $option['type'] && isset( $option['desc'] ) ) {
1097
+ return '<p>' . $option['desc'] . '</p>';
1098
+ }
1099
+ }
1100
+
1101
+ return '';
1102
+ }
1103
+
1104
+
1105
+ /**
1106
+ * Show form when necessary
1107
+ * return true if 'showform' is not defined
1108
+ *
1109
+ * @return bool
1110
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1111
+ */
1112
+ public function is_show_form() {
1113
+ $yit_options = $this->get_main_array_options();
1114
+ $option_key = $this->get_current_option_key();
1115
+
1116
+ foreach ( $yit_options[ $option_key ] as $sections => $data ) {
1117
+ foreach ( $data as $option ) {
1118
+ if ( ! isset( $option['type'] ) || 'title' !== $option['type'] ) {
1119
+ continue;
1120
+ }
1121
+ if ( isset( $option['showform'] ) ) {
1122
+ return $option['showform'];
1123
+ } else {
1124
+ return true;
1125
+ }
1126
+ }
1127
+ }
1128
+ }
1129
+
1130
+ /**
1131
+ * Get name field
1132
+ * return a string with the name of the input field
1133
+ *
1134
+ * @param string $name The name.
1135
+ *
1136
+ * @return string
1137
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1138
+ */
1139
+ public function get_name_field( $name = '' ) {
1140
+ return 'yit_' . $this->settings['parent'] . '_options[' . $name . ']';
1141
+ }
1142
+
1143
+ /**
1144
+ * Get id field
1145
+ * return a string with the id of the input field
1146
+ *
1147
+ * @param string $id The ID.
1148
+ *
1149
+ * @return string
1150
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1151
+ */
1152
+ public function get_id_field( $id ) {
1153
+ return 'yit_' . $this->settings['parent'] . '_options_' . $id;
1154
+ }
1155
+
1156
+
1157
+ /**
1158
+ * Render the field showed in the setting page
1159
+ * include the file of the option type, if file do not exists
1160
+ * return a text area
1161
+ *
1162
+ * @param array $param The parameters.
1163
+ *
1164
+ * @return void
1165
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1166
+ */
1167
+ public function render_field( $param ) {
1168
+ if ( ! empty( $param ) && isset( $param ['option'] ) ) {
1169
+ $option = $param['option'];
1170
+ $db_options = $this->get_options();
1171
+
1172
+ $custom_attributes = array();
1173
+
1174
+ if ( ! empty( $option['custom_attributes'] ) && is_array( $option['custom_attributes'] ) ) {
1175
+ foreach ( $option['custom_attributes'] as $attribute => $attribute_value ) {
1176
+ $custom_attributes[] = esc_attr( $attribute ) . '="' . esc_attr( $attribute_value ) . '"';
1177
+ }
1178
+ }
1179
+
1180
+ $custom_attributes = implode( ' ', $custom_attributes );
1181
+ $std = isset( $option['std'] ) ? $option['std'] : '';
1182
+ $db_value = ( isset( $db_options[ $option['id'] ] ) ) ? $db_options[ $option['id'] ] : $std;
1183
+
1184
+ if ( isset( $option['deps'] ) ) {
1185
+ $deps = $option['deps'];
1186
+ }
1187
+
1188
+ if ( 'on-off' === $option['type'] ) {
1189
+ $option['type'] = 'onoff';
1190
+ }
1191
+
1192
+ $field_template_path = yith_plugin_fw_get_field_template_path( $option );
1193
+ if ( $field_template_path ) {
1194
+ $field_container_path = apply_filters( 'yith_plugin_fw_panel_field_container_template_path', YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/panel-field-container.php', $option );
1195
+ file_exists( $field_container_path ) && include $field_container_path;
1196
+ } else {
1197
+ do_action( "yit_panel_{$option['type']}", $option, $db_value, $custom_attributes );
1198
+ }
1199
+ }
1200
+ }
1201
+
1202
+ /**
1203
+ * Get options from db
1204
+ * return the options from db, if the options aren't defined in the db,
1205
+ * get the default options ad add the options in the db
1206
+ *
1207
+ * @return array
1208
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1209
+ */
1210
+ public function get_options() {
1211
+ $options = get_option( 'yit_' . $this->settings['parent'] . '_options' );
1212
+ if ( false === $options || ( isset( $_REQUEST['yit-action'] ) && 'reset' === sanitize_key( wp_unslash( $_REQUEST['yit-action'] ) ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
1213
+ $options = $this->get_default_options();
1214
+ }
1215
+
1216
+ return $options;
1217
+ }
1218
+
1219
+ /**
1220
+ * Show a box panel with specific content in two columns as a new woocommerce type
1221
+ *
1222
+ * @param array $args The arguments.
1223
+ *
1224
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.com>
1225
+ */
1226
+ public static function add_infobox( $args = array() ) {
1227
+ if ( ! empty( $args ) ) {
1228
+ extract( $args ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
1229
+ require YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/boxinfo.php';
1230
+ }
1231
+ }
1232
+
1233
+ /**
1234
+ * Show a box panel with specific content in two columns as a new woocommerce type
1235
+ *
1236
+ * @param array $args Arguments.
1237
+ *
1238
+ * @return void
1239
+ * @deprecated 3.0.12 Do nothing! Method left to prevent Fatal Error if called directly
1240
+ */
1241
+ public static function add_videobox( $args = array() ) {
1242
+
1243
+ }
1244
+
1245
+ /**
1246
+ * Fire the action to print the custom tab
1247
+ *
1248
+ * @return void
1249
+ * @deprecated 3.0.12 Do nothing! Method left to prevent Fatal Error if called directly
1250
+ */
1251
+ public function print_video_box() {
1252
+
1253
+ }
1254
+
1255
+ /**
1256
+ * Sort plugins by name in YITH Plugins menu.
1257
+ *
1258
+ * @since 3.0.0
1259
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
1260
+ */
1261
+ public static function sort_plugins() {
1262
+ global $submenu;
1263
+ if ( ! empty( $submenu['yith_plugin_panel'] ) ) {
1264
+ $sorted_plugins = $submenu['yith_plugin_panel'];
1265
+
1266
+ usort(
1267
+ $sorted_plugins,
1268
+ function ( $a, $b ) {
1269
+ return strcmp( current( $a ), current( $b ) );
1270
+ }
1271
+ );
1272
+
1273
+ $submenu['yith_plugin_panel'] = $sorted_plugins; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
1274
+ }
1275
+ }
1276
+
1277
+ /**
1278
+ * Add menu class in YITH Plugins menu.
1279
+ *
1280
+ * @param array $menu The menu.
1281
+ *
1282
+ * @return array
1283
+ * @since 3.0.0
1284
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
1285
+ */
1286
+ public static function add_menu_class_in_yith_plugin( $menu ) {
1287
+ global $submenu;
1288
+
1289
+ if ( ! empty( $submenu['yith_plugin_panel'] ) ) {
1290
+ $item_count = count( $submenu['yith_plugin_panel'] );
1291
+ $columns = absint( $item_count / 20 ) + 1;
1292
+ $columns = max( 1, min( $columns, 3 ) );
1293
+ $columns = apply_filters( 'yith_plugin_fw_yith_plugins_menu_columns', $columns, $item_count );
1294
+
1295
+ if ( $columns > 1 ) {
1296
+ $class = "yith-plugin-fw-menu-$columns-columns";
1297
+ foreach ( $menu as $order => $top ) {
1298
+ if ( 'yith_plugin_panel' === $top[2] ) {
1299
+ $c = $menu[ $order ][4];
1300
+ $menu[ $order ][4] = add_cssclass( $class, $c );
1301
+ break;
1302
+ }
1303
+ }
1304
+ }
1305
+ }
1306
+
1307
+ return $menu;
1308
+ }
1309
+
1310
+ /**
1311
+ * Check if inside the admin tab there's the premium tab to
1312
+ * check if the plugin is a free or not
1313
+ *
1314
+ * @author Emanuela Castorina
1315
+ */
1316
+ public function is_free() {
1317
+ return ( ! empty( $this->settings['admin-tabs'] ) && isset( $this->settings['admin-tabs']['premium'] ) );
1318
+ }
1319
+
1320
+ /**
1321
+ * Add plugin banner.
1322
+ *
1323
+ * @param string $page The page.
1324
+ */
1325
+ public function add_plugin_banner( $page ) {
1326
+ if ( $page !== $this->settings['page'] || ! isset( $this->settings['class'] ) ) {
1327
+ return;
1328
+ }
1329
+
1330
+ ?>
1331
+ <?php if ( $this->is_free() && isset( $this->settings['plugin_slug'] ) ) : ?>
1332
+ <?php
1333
+ $rate_link = apply_filters( 'yith_plugin_fw_rate_url', 'https://wordpress.org/support/plugin/' . $this->settings['plugin_slug'] . '/reviews/?rate=5#new-post' );
1334
+ ?>
1335
+ <h1 class="notice-container"></h1>
1336
+ <div class="yith-plugin-fw-banner">
1337
+ <h1><?php echo esc_html( $this->settings['page_title'] ); ?></h1>
1338
+ </div>
1339
+ <div class="yith-plugin-fw-rate">
1340
+ <?php
1341
+ printf(
1342
+ '<strong>%s</strong> %s <a href="%s" target="_blank"><u>%s</u> <span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span></a> %s',
1343
+ esc_html__( 'We need your support', 'yith-plugin-fw' ),
1344
+ esc_html__( 'to keep updating and improving the plugin. Please,', 'yith-plugin-fw' ),
1345
+ esc_url( $rate_link ),
1346
+ esc_html__( 'help us by leaving a five-star rating', 'yith-plugin-fw' ),
1347
+ esc_html__( ':) Thanks!', 'yith-plugin-fw' )
1348
+ );
1349
+ ?>
1350
+ </div>
1351
+ <?php else : ?>
1352
+ <h1 class="notice-container"></h1>
1353
+ <div class="yith-plugin-fw-banner">
1354
+ <h1><?php echo esc_html( $this->settings['page_title'] ); ?></h1>
1355
+ </div>
1356
+ <?php endif ?>
1357
+ <?php
1358
+ }
1359
+
1360
+ /**
1361
+ * Add additional element after print the field.
1362
+ *
1363
+ * @param array $field The field.
1364
+ *
1365
+ * @author Emanuela Castorina
1366
+ * @since 3.2
1367
+ */
1368
+ public function add_yith_ui( $field ) {
1369
+ global $pagenow;
1370
+
1371
+ $screen = function_exists( 'get_current_screen' ) ? get_current_screen() : false;
1372
+
1373
+ if ( empty( $this->settings['class'] ) || ! isset( $field['type'] ) ) {
1374
+ return;
1375
+ }
1376
+ if ( 'admin.php' === $pagenow && $screen && strpos( $screen->id, $this->settings['page'] ) !== false ) {
1377
+ switch ( $field['type'] ) {
1378
+ case 'datepicker':
1379
+ echo '<span class="yith-icon yith-icon-calendar"></span>';
1380
+ break;
1381
+ default:
1382
+ break;
1383
+ }
1384
+ }
1385
+ }
1386
+
1387
+ /**
1388
+ * Get post type tabs.
1389
+ *
1390
+ * @param string $post_type The post type.
1391
+ *
1392
+ * @return array
1393
+ */
1394
+ public function get_post_type_tabs( $post_type ) {
1395
+ $tabs = array();
1396
+
1397
+ foreach ( $this->get_tabs_hierarchy() as $key => $info ) {
1398
+ if ( isset( $info['type'], $info['post_type'] ) && 'post_type' === $info['type'] && $post_type === $info['post_type'] ) {
1399
+ if ( ! empty( $info['parent'] ) ) {
1400
+ $tabs = array(
1401
+ 'tab' => $info['parent'],
1402
+ 'sub_tab' => $key,
1403
+ );
1404
+ } else {
1405
+ $tabs = array( 'tab' => $key );
1406
+ }
1407
+ break;
1408
+ }
1409
+ }
1410
+
1411
+ $panel_page = isset( $this->settings['page'] ) ? $this->settings['page'] : 'general';
1412
+
1413
+ return apply_filters( "yith_plugin_fw_panel_{$panel_page}_get_post_type_tabs", $tabs, $post_type );
1414
+ }
1415
+
1416
+ /**
1417
+ * Get the taxonomy tabs.
1418
+ *
1419
+ * @param string $taxonomy The taxonomy.
1420
+ *
1421
+ * @return array
1422
+ */
1423
+ public function get_taxonomy_tabs( $taxonomy ) {
1424
+ $tabs = array();
1425
+
1426
+ foreach ( $this->get_tabs_hierarchy() as $key => $info ) {
1427
+ if ( isset( $info['type'], $info['taxonomy'] ) && 'taxonomy' === $info['type'] && $taxonomy === $info['taxonomy'] ) {
1428
+ if ( ! empty( $info['parent'] ) ) {
1429
+ $tabs = array(
1430
+ 'tab' => $info['parent'],
1431
+ 'sub_tab' => $key,
1432
+ );
1433
+ } else {
1434
+ $tabs = array( 'tab' => $key );
1435
+ }
1436
+ break;
1437
+ }
1438
+ }
1439
+
1440
+ $panel_page = isset( $this->settings['page'] ) ? $this->settings['page'] : 'general';
1441
+
1442
+ return apply_filters( "yith_plugin_fw_panel_{$panel_page}_get_taxonomy_tabs", $tabs, $taxonomy );
1443
+ }
1444
+
1445
+
1446
+ /**
1447
+ * If the panel page is a WP Page, this will redirect you to the correct page
1448
+ * 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
1449
+ *
1450
+ * @since 3.4.0
1451
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
1452
+ */
1453
+ public function maybe_redirect_to_proper_wp_page() {
1454
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
1455
+ global $pagenow;
1456
+ if (
1457
+ 'admin.php' === $pagenow && isset( $_GET['page'] ) && $this->settings['page'] === $_GET['page']
1458
+ &&
1459
+ ! $this->is_custom_taxonomy_page() && ! $this->is_custom_post_type_page()
1460
+ &&
1461
+ ! isset( $_REQUEST['yith-plugin-fw-panel-skip-redirect'] )
1462
+ ) {
1463
+ $url = $this->get_nav_url( $this->settings['page'], $this->get_current_tab(), $this->get_current_sub_tab() );
1464
+ if ( strpos( $url, 'edit.php' ) !== false || strpos( $url, 'edit-tags.php' ) !== false ) {
1465
+ wp_safe_redirect( add_query_arg( array( 'yith-plugin-fw-panel-skip-redirect' => 1 ), $url ) );
1466
+ exit;
1467
+ }
1468
+ }
1469
+ // phpcs:enable
1470
+ }
1471
+
1472
+ /**
1473
+ * Print the Panel tabs and sub-tabs navigation in WP pages
1474
+ * Important: this opens a wrapper <div> that will be closed through YIT_Plugin_Panel::print_panel_tabs_in_post_edit_page_end()
1475
+ *
1476
+ * @since 3.4.0
1477
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
1478
+ */
1479
+ public function print_panel_tabs_in_wp_pages() {
1480
+ if ( self::$panel_tabs_in_wp_pages ) {
1481
+ wp_enqueue_style( 'yit-plugin-style' );
1482
+ wp_enqueue_script( 'yit-plugin-panel' );
1483
+
1484
+ $wrap_class = isset( $this->settings['class'] ) ? $this->settings['class'] : '';
1485
+ ?>
1486
+ <div class="yith-plugin-fw-wp-page-wrapper">
1487
+ <?php
1488
+ echo '<div class="' . esc_attr( $wrap_class ) . '">';
1489
+ $this->add_plugin_banner( $this->settings['page'] );
1490
+ $this->print_tabs_nav( self::$panel_tabs_in_wp_pages );
1491
+ echo '</div>';
1492
+ }
1493
+ }
1494
+
1495
+ /**
1496
+ * Close the wrapper opened in YIT_Plugin_Panel::print_panel_tabs_in_wp_pages()
1497
+ *
1498
+ * @since 3.4.0
1499
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
1500
+ */
1501
+ public function print_panel_tabs_in_wp_pages_end() {
1502
+ if ( self::$panel_tabs_in_wp_pages ) {
1503
+ echo '</div><!-- /yith-plugin-fw-wp-page-wrapper -->';
1504
+ }
1505
+ }
1506
+
1507
+ /**
1508
+ * Set the parent page to handle menu for WP Pages.
1509
+ *
1510
+ * @param string $parent_file The parent file.
1511
+ *
1512
+ * @return string
1513
+ */
1514
+ public function set_parent_file_to_handle_menu_for_wp_pages( $parent_file ) {
1515
+ if ( self::$panel_tabs_in_wp_pages ) {
1516
+ return 'yith_plugin_panel';
1517
+ }
1518
+
1519
+ return $parent_file;
1520
+ }
1521
+
1522
+ /**
1523
+ * Set the submenu page to handle menu for WP Pages.
1524
+ *
1525
+ * @param string $submenu_file The submenu file.
1526
+ * @param string $parent_file The parent file.
1527
+ *
1528
+ * @return mixed
1529
+ */
1530
+ public function set_submenu_file_to_handle_menu_for_wp_pages( $submenu_file, $parent_file ) {
1531
+ if ( self::$panel_tabs_in_wp_pages ) {
1532
+ return $this->settings['page'];
1533
+ }
1534
+
1535
+ return $submenu_file;
1536
+ }
1537
+
1538
+ /**
1539
+ * Save the toggle element options.
1540
+ *
1541
+ * @return bool
1542
+ */
1543
+ public function save_toggle_element_options() {
1544
+ return true;
1545
+ }
1546
+ }
1547
+ }
plugin-fw/includes/class-yit-plugin-subpanel.php ADDED
@@ -0,0 +1,149 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Plugin Sub-panel Class.
4
+ *
5
+ * @class YIT_Plugin_SubPanel
6
+ * @package YITH\PluginFramework\Classes
7
+ */
8
+
9
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
10
+
11
+ if ( ! class_exists( 'YIT_Plugin_SubPanel' ) ) {
12
+ /**
13
+ * YIT_Plugin_SubPanel class.
14
+ *
15
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
16
+ */
17
+ class YIT_Plugin_SubPanel extends YIT_Plugin_Panel {
18
+
19
+ /**
20
+ * Version of the class.
21
+ *
22
+ * @var string
23
+ */
24
+ public $version = '1.0.0';
25
+
26
+ /**
27
+ * List of settings parameters.
28
+ *
29
+ * @var array
30
+ */
31
+ public $settings = array();
32
+
33
+ /**
34
+ * YIT_Plugin_SubPanel constructor.
35
+ *
36
+ * @param array $args The panel arguments.
37
+ */
38
+ public function __construct( $args = array() ) {
39
+ if ( ! empty( $args ) ) {
40
+ $this->settings = $args;
41
+ $this->settings['parent'] = $this->settings['page'];
42
+ $this->tabs_path_files = $this->get_tabs_path_files();
43
+
44
+ add_action( 'admin_init', array( $this, 'register_settings' ) );
45
+ add_action( 'admin_menu', array( &$this, 'add_setting_page' ) );
46
+ add_action( 'admin_bar_menu', array( &$this, 'add_admin_bar_menu' ), 100 );
47
+ add_action( 'admin_init', array( &$this, 'add_fields' ) );
48
+ add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
49
+ }
50
+ }
51
+
52
+ /**
53
+ * Register Settings
54
+ * Generate wp-admin settings pages by registering your settings and using a few callbacks to control the output
55
+ *
56
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
57
+ */
58
+ public function register_settings() {
59
+ register_setting( 'yit_' . $this->settings['page'] . '_options', 'yit_' . $this->settings['page'] . '_options', array( &$this, 'options_validate' ) );
60
+ }
61
+
62
+
63
+ /**
64
+ * Add Setting SubPage
65
+ * add Setting SubPage to WordPress administrator
66
+ *
67
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
68
+ */
69
+ public function add_setting_page() {
70
+ global $admin_page_hooks;
71
+ $logo = yith_plugin_fw_get_default_logo();
72
+
73
+ $admin_logo = function_exists( 'yit_get_option' ) ? yit_get_option( 'admin-logo-menu' ) : '';
74
+
75
+ if ( ! empty( $admin_logo ) ) {
76
+ $logo = $admin_logo;
77
+ }
78
+
79
+ if ( ! isset( $admin_page_hooks['yith_plugin_panel'] ) ) {
80
+ $position = apply_filters( 'yit_plugins_menu_item_position', '62.32' );
81
+ add_menu_page( 'yith_plugin_panel', 'YITH', 'nosuchcapability', 'yith_plugin_panel', null, $logo, $position );
82
+ // Prevent issues for backward compatibility.
83
+ $admin_page_hooks['yith_plugin_panel'] = 'yith-plugins'; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
84
+ }
85
+
86
+ add_submenu_page( 'yith_plugin_panel', $this->settings['label'], $this->settings['label'], 'manage_options', $this->settings['page'], array( $this, 'yit_panel' ) );
87
+ remove_submenu_page( 'yith_plugin_panel', 'yith_plugin_panel' );
88
+ }
89
+
90
+ /**
91
+ * Show a tabbed panel to setting page
92
+ * a callback function called by add_setting_page => add_submenu_page
93
+ *
94
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
95
+ */
96
+ public function yit_panel() {
97
+ $tabs = '';
98
+ $current_tab = $this->get_current_tab();
99
+ $yit_options = $this->get_main_array_options();
100
+
101
+ foreach ( $this->settings['admin-tabs'] as $tab => $tab_value ) {
102
+ $active_class = $current_tab === $tab ? ' nav-tab-active' : '';
103
+ $url = '?page=' . $this->settings['page'] . '&tab=' . $tab;
104
+
105
+ $tabs .= '<a class="nav-tab' . esc_attr( $active_class ) . '" href="' . esc_url( $url ) . '">' . wp_kses_post( $tab_value ) . '</a>';
106
+ }
107
+ ?>
108
+ <div id="icon-themes" class="icon32"><br/></div>
109
+ <h2 class="nav-tab-wrapper">
110
+ <?php echo $tabs; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
111
+ </h2>
112
+ <?php
113
+ $custom_tab_options = $this->get_custom_tab_options( $yit_options, $current_tab );
114
+ if ( $custom_tab_options ) {
115
+ $this->print_custom_tab( $custom_tab_options );
116
+
117
+ return;
118
+ }
119
+
120
+ $panel_content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admin-panel-content-wrap' );
121
+ ?>
122
+ <div id="wrap" class="yith-plugin-fw plugin-option yit-admin-panel-container">
123
+ <?php $this->message(); ?>
124
+ <div class="<?php echo esc_attr( $panel_content_class ); ?>">
125
+ <h2><?php echo wp_kses_post( $this->get_tab_title() ); ?></h2>
126
+ <?php if ( $this->is_show_form() ) : ?>
127
+ <form id="yith-plugin-fw-panel" method="post" action="options.php">
128
+ <?php do_settings_sections( 'yit' ); ?>
129
+ <p>&nbsp;</p>
130
+ <?php settings_fields( 'yit_' . $this->settings['parent'] . '_options' ); ?>
131
+ <input type="hidden" name="<?php echo esc_attr( $this->get_name_field( 'current_tab' ) ); ?>" value="<?php echo esc_attr( $current_tab ); ?>"/>
132
+ <input type="submit" class="button-primary" value="<?php esc_attr_e( 'Save Changes', 'yith-plugin-fw' ); ?>" style="float:left;margin-right:10px;"/>
133
+ </form>
134
+ <form method="post">
135
+ <?php
136
+ $reset_warning = __( 'If you continue with this action, you will reset all options in this page.', 'yith-plugin-fw' ) . '\n' . __( 'Are you sure?', 'yith-plugin-fw' );
137
+ ?>
138
+ <input type="hidden" name="yit-action" value="reset"/>
139
+ <input type="submit" name="yit-reset" class="button-secondary" value="<?php esc_attr_e( 'Reset to default', 'yith-plugin-fw' ); ?>"
140
+ onclick="return confirm('<?php echo esc_attr( $reset_warning ); ?>');"/>
141
+ </form>
142
+ <p>&nbsp;</p>
143
+ <?php endif ?>
144
+ </div>
145
+ </div>
146
+ <?php
147
+ }
148
+ }
149
+ }
plugin-fw/includes/class-yit-pointers.php ADDED
@@ -0,0 +1,380 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Pointers Class.
4
+ *
5
+ * @class YIT_Pointers
6
+ * @package YITH\PluginFramework\Classes
7
+ */
8
+
9
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
10
+
11
+ if ( ! class_exists( 'YIT_Pointers' ) ) {
12
+ /**
13
+ * YIT_Pointers class.
14
+ * Initializes the pointers.
15
+ */
16
+ class YIT_Pointers {
17
+
18
+ /**
19
+ * The single instance of the class.
20
+ *
21
+ * @var YIT_Pointers
22
+ */
23
+ private static $instance;
24
+
25
+ /**
26
+ * The screen IDs.
27
+ *
28
+ * @var array
29
+ */
30
+ public $screen_ids = array();
31
+
32
+ /**
33
+ * The pointers.
34
+ *
35
+ * @var array
36
+ */
37
+ public $pointers = array();
38
+
39
+ /**
40
+ * Special Screen Ids that require a particular action
41
+ *
42
+ * @var array|mixed|void
43
+ */
44
+ public $special_screen = array();
45
+
46
+ /**
47
+ * Default pointers.
48
+ *
49
+ * @var array|mixed
50
+ */
51
+ protected $default_pointer = array();
52
+
53
+ /**
54
+ * The default position
55
+ *
56
+ * @var string[]
57
+ */
58
+ protected $default_position = array(
59
+ 'edge' => 'left',
60
+ 'align' => 'center',
61
+ );
62
+
63
+ /**
64
+ * Singleton implementation.
65
+ *
66
+ * @return YIT_Pointers
67
+ */
68
+ public static function instance() {
69
+ return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
70
+ }
71
+
72
+ /**
73
+ * Construct
74
+ *
75
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
76
+ * @since 1.0
77
+ */
78
+ private function __construct() {
79
+
80
+ $title = __( 'Plugins Activated', 'yith-plugin-fw' );
81
+ $message = __( 'From now on, you can find all plugin options in YITH menu. Plugin customization settings will be available as a new entry in YITH menu.', 'yith-plugin-fw' );
82
+ $discover_message = sprintf(
83
+ // translators: 1. YITH site link; 2. WordPress site link.
84
+ __( 'Discover all our plugins available on: %1$s and %2$s', 'yith-plugin-fw' ),
85
+ '<a href="https://yithemes.com/product-category/plugins/" target="_blank">yithemes.com</a>',
86
+ '<a href="https://profiles.wordpress.org/yithemes/" target="_blank">Wordpress.org</a>'
87
+ );
88
+
89
+ $this->default_pointer['plugins'] = array(
90
+ 'screen_id' => 'plugins',
91
+ 'options' => array(
92
+ 'content' => "<h3>{$title}</h3><p>{$message}</p><p>{$discover_message}</p>",
93
+ ),
94
+ );
95
+
96
+ $title = __( 'Plugins Upgraded', 'yith-plugin-fw' );
97
+ $message = __( 'From now on, you can find the option panel of YITH plugins in YITH menu. Every time one of our plugins is added, a new entry will be added to this menu. For example, after the update, plugin options (such as for YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search, etc.) will be moved from previous location to YITH menu.', 'yith-plugin-fw' );
98
+ $discover_message = sprintf(
99
+ // translators: 1. YITH site link; 2. WordPress site link.
100
+ __( 'Discover all our plugins available on: %1$s and %2$s', 'yith-plugin-fw' ),
101
+ '<a href="https://yithemes.com/product-category/plugins/" target="_blank">yithemes.com</a>',
102
+ '<a href="https://profiles.wordpress.org/yithemes/" target="_blank">Wordpress.org</a>'
103
+ );
104
+
105
+ $this->default_pointer['update'] = array(
106
+ 'screen_id' => 'update',
107
+ 'options' => array(
108
+ 'content' => "<h3>{$title}</h3><p>{$message}</p><p>{$discover_message}</p>",
109
+ ),
110
+ );
111
+
112
+ $this->default_pointer = $this->parse_args( $this->default_pointer );
113
+
114
+ // DEPRECATED 'yit-pointer-special-screen' filter since 3.5 | use yith_plugin_fw_pointers_special_screens instead.
115
+ $this->special_screen = apply_filters( 'yit-pointer-special-screen', array( 'plugins', 'update' ) ); //phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
116
+ $this->special_screen = apply_filters( 'yith_plugin_fw_pointers_special_screens', array( 'plugins', 'update' ) );
117
+
118
+ add_action( 'admin_enqueue_scripts', array( $this, 'pointer_load' ) );
119
+ add_action( 'admin_init', array( $this, 'add_pointers' ), 100 );
120
+ }
121
+
122
+ /**
123
+ * Parse args for the default pointer.
124
+ *
125
+ * @param array $args The arguments to be parse.
126
+ *
127
+ * @return array
128
+ */
129
+ public function parse_args( $args ) {
130
+ $default = array(
131
+ 'pointer_id' => 'yith_default_pointer',
132
+ 'target' => '#toplevel_page_yit_plugin_panel',
133
+ 'init' => null,
134
+ );
135
+
136
+ foreach ( $args as $id => $pointer ) {
137
+ $args[ $id ] = wp_parse_args( $pointer, $default );
138
+ $args[ $id ]['options']['position'] = $this->default_position;
139
+ }
140
+
141
+ return $args;
142
+ }
143
+
144
+ /**
145
+ * Add pointers
146
+ */
147
+ public function add_pointers() {
148
+ if ( ! empty( $this->screen_ids ) ) {
149
+ foreach ( $this->screen_ids as $screen_id ) {
150
+ add_filter( "yit_pointers-{$screen_id}", array( $this, 'pointers' ) );
151
+ }
152
+ }
153
+ }
154
+
155
+ /**
156
+ * Register pointers.
157
+ *
158
+ * @param array $pointers The pointers.
159
+ */
160
+ public function register( $pointers ) {
161
+ foreach ( $pointers as $id => $pointer ) {
162
+ $pointer_id = isset( $pointer['pointer_id'] ) ? $pointer['pointer_id'] : false;
163
+ $target = isset( $pointer['target'] ) ? $pointer['target'] : false;
164
+ $content = isset( $pointer['content'] ) ? $pointer['content'] : false;
165
+ $position = isset( $pointer['position'] ) ? $pointer['position'] : false;
166
+ $screen_id = isset( $pointer['screen_id'] ) ? $pointer['screen_id'] : false;
167
+ $init = isset( $pointer['init'] ) ? $pointer['init'] : false;
168
+
169
+ if ( ! $pointer_id || ! $target || ! $content || ! $position || ! $screen_id ) {
170
+ continue;
171
+ }
172
+
173
+ if ( ! in_array( $screen_id, $this->screen_ids, true ) ) {
174
+ $this->screen_ids[] = $screen_id;
175
+ }
176
+
177
+ $this->pointers[ $screen_id ][ $pointer_id ] = array(
178
+ 'target' => $target,
179
+ 'options' => array(
180
+ 'content' => $content,
181
+ 'position' => $position,
182
+ ),
183
+ 'init' => $init,
184
+ );
185
+ }
186
+ }
187
+
188
+ /**
189
+ * Retrieve the registered pointers array where the keys will be the plugin init(s).
190
+ *
191
+ * @param string $screen_id The screen ID.
192
+ *
193
+ * @return array
194
+ */
195
+ public function get_plugins_init( $screen_id ) {
196
+
197
+ $registered = array();
198
+
199
+ foreach ( $this->pointers[ $screen_id ] as $pointer_id => $pointer ) {
200
+ $registered[ $pointer['init'] ] = $pointer_id;
201
+ }
202
+
203
+ return $registered;
204
+ }
205
+
206
+ /**
207
+ * Load the pointer.
208
+ *
209
+ * @param bool $deprecated Deprecated param.
210
+ */
211
+ public function pointer_load( $deprecated = false ) {
212
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
213
+ // phpcs:disable WordPress.Security.NonceVerification.Missing
214
+
215
+ // Retrieve the pointers for the current screen.
216
+ $screen = get_current_screen();
217
+ $pointers = apply_filters( "yit_pointers-{$screen->id}", array() ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
218
+
219
+ if ( ! $pointers || ! is_array( $pointers ) ) {
220
+ return;
221
+ }
222
+
223
+ // Get dismissed pointers.
224
+ $dismissed = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
225
+ $valid_pointers = array();
226
+
227
+ // Show pointers only on plugin activate action.
228
+ if ( in_array( $screen->id, $this->special_screen, true ) ) {
229
+ $show = false;
230
+ $registered = $this->get_plugins_init( $screen->id );
231
+ $recently_activate = get_option( 'yit_recently_activated', array() );
232
+
233
+ // For "plugins" screen.
234
+ $is_single_activate = isset( $_GET['activate'] ) && 'true' === $_GET['activate'];
235
+ $is_multi_activate = isset( $_GET['activate-multi'] ) && 'true' === $_GET['activate-multi'];
236
+
237
+ /**
238
+ * For "update" screen
239
+ * Single plugin update use GET method
240
+ * Multi update plugins with bulk action send two post args called "action" and "action2"
241
+ * action refer to first bulk action button (at the top of plugins table)
242
+ * action2 refer to last bulk action button (at the bottom of plugins table)
243
+ */
244
+ $is_single_upgrade = isset( $_GET['action'] ) && 'upgrade-plugin' === $_GET['action'];
245
+ $is_multi_upgrade = ( isset( $_POST['action'] ) && 'update-selected' === $_POST['action'] ) || ( isset( $_POST['action2'] ) && 'update-selected' === $_POST['action2'] );
246
+
247
+ if ( $is_single_activate || $is_single_upgrade ) {
248
+ foreach ( $registered as $init => $p_id ) {
249
+ if ( in_array( $init, $recently_activate, true ) ) {
250
+ $point_id = $p_id;
251
+ $pointer = $pointers[ $point_id ];
252
+
253
+ if ( ! ( in_array( $point_id, $dismissed, true ) || empty( $pointer ) || empty( $point_id ) || empty( $pointer['target'] ) || empty( $pointer['options'] ) ) ) {
254
+ $pointer['pointer_id'] = $point_id;
255
+ $valid_pointers['pointers'][] = $pointer;
256
+ $show = true;
257
+ }
258
+ break;
259
+ }
260
+ }
261
+ } elseif ( $is_multi_activate || $is_multi_upgrade ) {
262
+ $point_id = array();
263
+ $screen_id = $screen->id;
264
+
265
+ if ( $is_multi_upgrade && isset( $_POST['checked'] ) && ( count( $_POST['checked'] ) > 0 ) ) {
266
+ $recently_activate = sanitize_file_name( wp_unslash( $_POST['checked'] ) );
267
+ $screen_id = 'update';
268
+ $pointers = apply_filters( "yit_pointers-{$screen_id}", array() ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
269
+ }
270
+
271
+ foreach ( $registered as $init => $p_id ) {
272
+ if ( in_array( $init, $recently_activate, true ) ) {
273
+ $point_id[] = $p_id;
274
+ }
275
+ }
276
+
277
+ /**
278
+ * Bulk Action: Activate Plugins
279
+ * count( $point_id ) is the number of YITH plugins that have registered specific pointers
280
+ * case 0 -> No pointers -> Exit
281
+ * case 1 -> Only one pointers to show -> Use the specific plugin pointer
282
+ * default -> Two or more plugins need to show a pointer -> use a generic pointers
283
+ */
284
+ switch ( count( $point_id ) ) {
285
+ case 0:
286
+ $show = false;
287
+ break;
288
+
289
+ case 1:
290
+ $point_id = array_pop( $point_id );
291
+ $pointer = $pointers[ $point_id ];
292
+ if ( ! ( in_array( $point_id, $dismissed, true ) || empty( $pointer ) || empty( $point_id ) || empty( $pointer['target'] ) || empty( $pointer['options'] ) ) ) {
293
+ $pointer['pointer_id'] = $point_id;
294
+ $valid_pointers['pointers'][] = $pointer;
295
+ $show = true;
296
+ }
297
+ break;
298
+
299
+ default:
300
+ $valid_pointers['pointers'][] = $this->default_pointer[ $screen_id ];
301
+ $show = true;
302
+ break;
303
+ }
304
+ }
305
+
306
+ update_option( 'yit_recently_activated', array() );
307
+
308
+ if ( ! $show ) {
309
+ return;
310
+ }
311
+ } else {
312
+ // Check pointers and remove dismissed ones.
313
+ foreach ( $pointers as $pointer_id => $pointer ) {
314
+
315
+ if ( in_array( $pointer_id, $dismissed, true ) || empty( $pointer ) || empty( $pointer_id ) || empty( $pointer['target'] ) || empty( $pointer['options'] ) ) {
316
+ continue;
317
+ }
318
+
319
+ $pointer['pointer_id'] = $pointer_id;
320
+
321
+ $valid_pointers['pointers'][] = $pointer;
322
+ }
323
+ }
324
+
325
+ if ( empty( $valid_pointers ) ) {
326
+ return;
327
+ }
328
+
329
+ $script_file = function_exists( 'yit_load_js_file' ) ? yit_load_js_file( 'yit-wp-pointer.js' ) : 'yit-wp-pointer.min.js';
330
+
331
+ // Enqueue pointer scripts and styles.
332
+ wp_enqueue_style( 'wp-pointer' );
333
+ wp_enqueue_script( 'wp-pointer' );
334
+
335
+ wp_enqueue_script( 'yit-wp-pointer', YIT_CORE_PLUGIN_URL . '/assets/js/' . $script_file, array( 'wp-pointer' ), yith_plugin_fw_get_version(), true );
336
+ wp_localize_script( 'yit-wp-pointer', 'custom_pointer', $valid_pointers );
337
+
338
+ // phpcs:enable
339
+ }
340
+
341
+ /**
342
+ * Filter pointers.
343
+ *
344
+ * @param array $pointers The pointers.
345
+ *
346
+ * @return array
347
+ */
348
+ public function pointers( $pointers ) {
349
+ $screen_id = str_replace( 'yit_pointers-', '', current_filter() );
350
+ $pointers_to_add = $this->get_pointers( $screen_id );
351
+
352
+ return ! empty( $pointers_to_add ) ? array_merge( $pointers, $pointers_to_add ) : $pointers;
353
+ }
354
+
355
+ /**
356
+ * Retrieve pointers for the specified screen ID.
357
+ *
358
+ * @param string $screen_id The Screen ID.
359
+ *
360
+ * @return array|mixed
361
+ */
362
+ public function get_pointers( $screen_id ) {
363
+ return isset( $this->pointers[ $screen_id ] ) ? $this->pointers[ $screen_id ] : array();
364
+ }
365
+ }
366
+ }
367
+
368
+ if ( ! function_exists( 'YIT_Pointers' ) ) {
369
+
370
+ /**
371
+ * Single instance of YIT_Pointers
372
+ *
373
+ * @return YIT_Pointers
374
+ */
375
+ function YIT_Pointers() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
376
+ return YIT_Pointers::instance();
377
+ }
378
+ }
379
+
380
+ YIT_Pointers();
plugin-fw/includes/class-yit-theme-licence.php ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Theme License Class.
4
+ *
5
+ * @class YIT_Theme_Licence
6
+ * @package YITH\PluginFramework\Classes
7
+ */
8
+
9
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
10
+
11
+ if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
12
+ /**
13
+ * YIT_Theme_Licence class.
14
+ *
15
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
16
+ */
17
+ class YIT_Theme_Licence {
18
+ /**
19
+ * The single instance of the class.
20
+ *
21
+ * @var YIT_Theme_Licence
22
+ */
23
+ private static $instance;
24
+
25
+ /**
26
+ * Singleton implementation.
27
+ *
28
+ * @return YIT_Theme_Licence
29
+ */
30
+ public static function instance() {
31
+ return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
32
+ }
33
+
34
+ /**
35
+ * YIT_Theme_Licence constructor.
36
+ */
37
+ private function __construct() {
38
+ // Silence is golden.
39
+ }
40
+
41
+ /**
42
+ * Premium products registration.
43
+ *
44
+ * @param string $init The product init identifier.
45
+ * @param string $secret_key The secret key.
46
+ * @param string $product_id The product ID.
47
+ *
48
+ * @return void
49
+ * @since 1.0
50
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
51
+ */
52
+ public function register( $init, $secret_key, $product_id ) {
53
+ if ( ! function_exists( 'YITH_Theme_Licence' ) ) {
54
+ // Try to load YITH_Theme_Licence class.
55
+ yith_plugin_fw_load_update_and_licence_files();
56
+ }
57
+
58
+ if ( function_exists( 'YITH_Theme_Licence' ) && is_callable( array( YITH_Theme_Licence(), 'register' ) ) ) {
59
+ YITH_Theme_Licence()->register( $init, $secret_key, $product_id );
60
+ }
61
+ }
62
+ }
63
+ }
64
+
65
+ if ( ! function_exists( 'YIT_Theme_Licence' ) ) {
66
+ /**
67
+ * Single instance of YIT_Theme_Licence
68
+ *
69
+ * @return YIT_Theme_Licence
70
+ */
71
+ function YIT_Theme_Licence() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
72
+ return YIT_Theme_Licence::instance();
73
+ }
74
+ }
plugin-fw/includes/class-yit-upgrade.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Upgrade Class
4
+ * handle notifications and plugin updates.
5
+ *
6
+ * @class YIT_Upgrade
7
+ * @package YITH\PluginFramework\Classes
8
+ */
9
+
10
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
11
+
12
+ if ( ! class_exists( 'YIT_Upgrade' ) ) {
13
+ /**
14
+ * YIT_Upgrade class.
15
+ */
16
+ class YIT_Upgrade {
17
+ /**
18
+ * The single instance of the class.
19
+ *
20
+ * @var YIT_Upgrade
21
+ */
22
+ private static $instance;
23
+
24
+ /**
25
+ * Singleton implementation.
26
+ *
27
+ * @return YIT_Upgrade
28
+ */
29
+ public static function instance() {
30
+ return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
31
+ }
32
+
33
+ /**
34
+ * YIT_Upgrade constructor.
35
+ */
36
+ private function __construct() {
37
+ // Silence is golden.
38
+ }
39
+
40
+ /**
41
+ * Premium products registration.
42
+ *
43
+ * @param string $plugin_slug The plugin slug.
44
+ * @param string $plugin_init The plugin init file.
45
+ */
46
+ public function register( $plugin_slug, $plugin_init ) {
47
+ if ( ! function_exists( 'YITH_Plugin_Upgrade' ) ) {
48
+ // Try to load YITH_Plugin_Upgrade class.
49
+ yith_plugin_fw_load_update_and_licence_files();
50
+ }
51
+
52
+ if ( function_exists( 'YITH_Plugin_Upgrade' ) && is_callable( array( YITH_Plugin_Upgrade(), 'register' ) ) ) {
53
+ YITH_Plugin_Upgrade()->register( $plugin_slug, $plugin_init );
54
+ }
55
+ }
56
+ }
57
+ }
58
+
59
+ if ( ! function_exists( 'YIT_Upgrade' ) ) {
60
+ /**
61
+ * Single instance of YIT_Upgrade
62
+ *
63
+ * @return YIT_Upgrade
64
+ */
65
+ function YIT_Upgrade() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
66
+ return YIT_Upgrade::instance();
67
+ }
68
+ }
69
+
70
+ YIT_Upgrade();
plugin-fw/includes/class-yit-video.php ADDED
@@ -0,0 +1,192 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Video Class
4
+ * manage videos from youtube, vimeo and other services.
5
+ *
6
+ * @class YIT_Video
7
+ * @package YITH\PluginFramework\Classes
8
+ */
9
+
10
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
11
+
12
+ if ( ! class_exists( 'YIT_Video' ) ) {
13
+ /**
14
+ * YIT_Video class.
15
+ *
16
+ * @deprecated 3.5
17
+ */
18
+ class YIT_Video {
19
+
20
+ /**
21
+ * Generate the HTML for a youtube video
22
+ *
23
+ * @param array $args Array of arguments to configure the video to generate.
24
+ *
25
+ * @return string
26
+ */
27
+ public static function youtube( $args = array() ) {
28
+ $defaults = array(
29
+ 'id' => '',
30
+ 'url' => '',
31
+ 'width' => 425,
32
+ 'height' => 356,
33
+ 'echo' => false,
34
+ );
35
+ $args = wp_parse_args( $args, $defaults );
36
+
37
+ $id = $args['id'];
38
+ $url = $args['url'];
39
+ $width = $args['width'];
40
+ $height = $args['height'];
41
+ $echo = $args['echo'];
42
+ $html = '';
43
+
44
+ // Retrieve the video ID if we have only the URL.
45
+ if ( ! $id && ! ! $url ) {
46
+ $id = self::video_id_by_url( $url );
47
+ }
48
+
49
+ if ( $id ) {
50
+ $id = preg_replace( '/[&|&amp;]feature=([\w\-]*)/', '', $id );
51
+ $id = preg_replace( '/(youtube|vimeo):/', '', $id );
52
+ $url = "https://www.youtube.com/embed/{$id}?wmode=transparent";
53
+
54
+ $html = '<div class="post_video youtube">' .
55
+ '<iframe wmode="transparent" width="' . esc_attr( $width ) . '" height="' . esc_attr( $height ) . '" src="' . esc_url( $url ) . '" frameborder="0" allowfullscreen></iframe>' .
56
+ '</div>';
57
+ $html = apply_filters( 'yit_video_youtube', $html );
58
+ }
59
+
60
+ if ( $echo ) {
61
+ echo wp_kses_post( $html );
62
+ }
63
+
64
+ return $html;
65
+ }
66
+
67
+ /**
68
+ * Generate the HTML for a vimeo video
69
+ *
70
+ * @param array $args Array of arguments to configure the video to generate.
71
+ *
72
+ * @return string
73
+ */
74
+ public static function vimeo( $args = array() ) {
75
+ $defaults = array(
76
+ 'id' => '',
77
+ 'url' => '',
78
+ 'width' => 425,
79
+ 'height' => 356,
80
+ 'echo' => false,
81
+ );
82
+ $args = wp_parse_args( $args, $defaults );
83
+
84
+ $id = $args['id'];
85
+ $url = $args['url'];
86
+ $width = $args['width'];
87
+ $height = $args['height'];
88
+ $echo = $args['echo'];
89
+ $html = '';
90
+
91
+ // Retrieve the video ID if we have only the URL.
92
+ if ( ! $id && ! ! $url ) {
93
+ $id = self::video_id_by_url( $url );
94
+ }
95
+
96
+ if ( $id ) {
97
+ $id = preg_replace( '/[&|&amp;]feature=([\w\-]*)/', '', $id );
98
+ $id = preg_replace( '/(youtube|vimeo):/', '', $id );
99
+ $protocol = is_ssl() ? 'https' : 'http';
100
+ $url = "{$protocol}://player.vimeo.com/video/{$id}?title=0&amp;byline=0&amp;portrait=0";
101
+
102
+ $html = '<div class="post_video youtube">' .
103
+ '<iframe wmode="transparent" width="' . esc_attr( $width ) . '" height="' . esc_attr( $height ) . '" src="' . esc_url( $url ) . '" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>' .
104
+ '</div>';
105
+ $html = apply_filters( 'yit_video_vimeo', $html );
106
+ }
107
+
108
+ if ( $echo ) {
109
+ echo wp_kses_post( $html );
110
+ }
111
+
112
+ return $html;
113
+ }
114
+
115
+ /**
116
+ * Retrieve video ID from URL
117
+ *
118
+ * @param string $url URL of the video.
119
+ *
120
+ * @return bool|string
121
+ */
122
+ public static function video_id_by_url( $url ) {
123
+ $parsed = wp_parse_url( esc_url( $url ) );
124
+ $host = isset( $parsed['host'] ) ? $parsed['host'] : false;
125
+
126
+ switch ( $host ) {
127
+ case 'youtube.com':
128
+ case 'www.youtube.com':
129
+ case 'youtu.be':
130
+ case 'www.youtu.be':
131
+ $id = self::youtube_id_by_url( $url );
132
+ $video_id = "youtube:$id";
133
+ break;
134
+
135
+ case 'www.vimeo.com':
136
+ case 'vimeo.com':
137
+ preg_match( '/http(s)?:\/\/(\w+.)?vimeo\.com\/(.*\/)?([0-9]+)/', $url, $matches );
138
+
139
+ $id = trim( $matches[4], '/' );
140
+ $video_id = "vimeo:$id";
141
+ break;
142
+
143
+ default:
144
+ $video_id = false;
145
+
146
+ }
147
+
148
+ return $video_id;
149
+ }
150
+
151
+ /**
152
+ * Retrieve video ID from URL
153
+ *
154
+ * @param string $url URL of the video.
155
+ *
156
+ * @return bool|string
157
+ */
158
+ protected static function youtube_id_by_url( $url ) {
159
+ if ( preg_match( '/http(s)?:\/\/youtu.be/', $url, $matches ) ) {
160
+ $url = wp_parse_url( $url, PHP_URL_PATH );
161
+ $url = str_replace( '/', '', $url );
162
+
163
+ return $url;
164
+
165
+ } elseif ( preg_match( '/watch/', $url, $matches ) ) {
166
+ $arr = wp_parse_url( $url );
167
+ $url = str_replace( 'v=', '', $arr['query'] );
168
+
169
+ return $url;
170
+
171
+ } elseif ( preg_match( '/http(s)?:\/\/(\w+.)?youtube.com\/v/', $url, $matches ) ) {
172
+ $arr = wp_parse_url( $url );
173
+ $url = str_replace( '/v/', '', $arr['path'] );
174
+
175
+ return $url;
176
+
177
+ } elseif ( preg_match( '/http(s)?:\/\/(\w+.)?youtube.com\/embed/', $url, $matches ) ) {
178
+ $arr = wp_parse_url( $url );
179
+ $url = str_replace( '/embed/', '', $arr['path'] );
180
+
181
+ return $url;
182
+
183
+ } elseif ( preg_match( "#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+#", $url, $matches ) ) {
184
+ return $matches[0];
185
+
186
+ } else {
187
+ return false;
188
+ }
189
+ }
190
+
191
+ }
192
+ }
plugin-fw/includes/class-yith-dashboard.php ADDED
@@ -0,0 +1,149 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Dashboard Class
4
+ * handle WordPress Admin Dashboard
5
+ *
6
+ * @class YITH_Dashboard
7
+ * @package YITH\PluginFramework\Classes
8
+ */
9
+
10
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
11
+
12
+ if ( ! class_exists( 'YITH_Dashboard' ) ) {
13
+ /**
14
+ * YITH_Dashboard class.
15
+ */
16
+ class YITH_Dashboard {
17
+ /**
18
+ * Products Feed URL
19
+ *
20
+ * @var string
21
+ */
22
+ private static $products_feed = 'https://yithemes.com/latest-updates/feeds/';
23
+
24
+ /**
25
+ * Blog Feed URL
26
+ *
27
+ * @var string
28
+ */
29
+ private static $blog_feed = 'https://yithemes.com/feed/';
30
+
31
+ /**
32
+ * Dashboard widget setup.
33
+ */
34
+ public static function dashboard_widget_setup() {
35
+ wp_add_dashboard_widget( 'yith_dashboard_products_news', __( 'YITH Latest Updates', 'yith-plugin-fw' ), 'YITH_Dashboard::dashboard_products_news' );
36
+ wp_add_dashboard_widget( 'yith_dashboard_blog_news', __( 'Latest news from YITH Blog', 'yith-plugin-fw' ), 'YITH_Dashboard::dashboard_blog_news' );
37
+ }
38
+
39
+
40
+ /**
41
+ * Product news Widget
42
+ */
43
+ public static function dashboard_products_news() {
44
+ $items = 10;
45
+ $rss = static::$products_feed;
46
+ if ( is_string( $rss ) ) {
47
+ $rss = fetch_feed( $rss );
48
+ } elseif ( is_array( $rss ) && isset( $rss['url'] ) ) {
49
+ $rss = fetch_feed( $rss['url'] );
50
+ } elseif ( ! is_object( $rss ) ) {
51
+ return;
52
+ }
53
+
54
+ if ( is_wp_error( $rss ) ) {
55
+ if ( is_admin() || current_user_can( 'manage_options' ) ) {
56
+ echo '<p><strong>' . esc_html__( 'RSS Error:', 'yith-plugin-fw' ) . '</strong> ' . wp_kses_post( $rss->get_error_message() ) . '</p>';
57
+ }
58
+
59
+ return;
60
+ }
61
+
62
+ if ( ! $rss->get_item_quantity() ) {
63
+ echo '<ul><li>' . esc_html__( 'An error has occurred, which probably means the feed is down. Try again later.', 'yith-plugin-fw' ) . '</li></ul>';
64
+ $rss->__destruct();
65
+ unset( $rss );
66
+
67
+ return;
68
+ }
69
+
70
+ /**
71
+ * The feed items.
72
+ *
73
+ * @var SimplePie_Item[] $last_updates
74
+ */
75
+ $last_updates = $rss->get_items( 0, $items );
76
+ $html_classes = 'rsswidget yith-update-feeds';
77
+ $output = '';
78
+
79
+ if ( count( $last_updates ) > 0 ) {
80
+ $output = '<ul class="yith-update-feeds">';
81
+ }
82
+
83
+ foreach ( $last_updates as $last_update ) {
84
+ $output .= '<li class="yith-update-feed">';
85
+
86
+ $date = $last_update->get_date( 'U' );
87
+ $date_i18n = ! empty( $date ) ? date_i18n( get_option( 'date_format' ), $date ) : '';
88
+ $html_date = ! empty( $date_i18n ) ? ' <span class="rss-date">' . date_i18n( get_option( 'date_format' ), $date ) . '</span>' : '';
89
+
90
+ $output .= sprintf( '<a target="_blank" href="%s" class="%s">%s</a> %s', $last_update->get_permalink(), $html_classes, $last_update->get_title(), $html_date );
91
+
92
+ $changelog = $last_update->get_description();
93
+
94
+ if ( ! empty( $changelog ) ) {
95
+ $output .= ' - ';
96
+ $output .= sprintf( '<a class="yith-last-changelog" href="#" data-changelogid="%s" data-plugininfo="%s">%s</a>', $last_update->get_id( true ), $last_update->get_title(), _x( 'View Changelog', 'Plugin FW', 'yith-plugin-fw' ) );
97
+ $output .= sprintf( '<div style="display: none;" id="%s"><div style="display: table;"><img class="yith-feeds-logo" src="%s" /><h3 class="yith-feeds-plugin-name"><span style="font-weight: normal;">%s</span> %s</h3></div><p>%s</p></div>', $last_update->get_id( true ), yith_plugin_fw_get_default_logo(), _x( 'Latest update released on', 'Plugin FW', 'yith-plugin-fw' ), $date_i18n, $changelog );
98
+ }
99
+
100
+ $output .= '</li>';
101
+ }
102
+
103
+ if ( ! empty( $output ) ) {
104
+ $output .= '</ul>';
105
+ }
106
+
107
+ echo wp_kses_post( $output );
108
+ $rss->__destruct();
109
+ unset( $rss );
110
+ }
111
+
112
+ /**
113
+ * Blog news Widget
114
+ */
115
+ public static function dashboard_blog_news() {
116
+ $args = array(
117
+ 'show_author' => 0,
118
+ 'show_date' => 1,
119
+ 'show_summary' => 1,
120
+ 'items' => 3,
121
+ );
122
+ $feed = static::$blog_feed;
123
+ wp_widget_rss_output( $feed, $args );
124
+ }
125
+
126
+ /**
127
+ * Enqueue Styles and Scripts for View Last Changelog widget
128
+ */
129
+ public static function enqueue_scripts() {
130
+ if ( function_exists( 'get_current_screen' ) && get_current_screen() && 'dashboard' === get_current_screen()->id ) {
131
+ $script_path = defined( 'YIT_CORE_PLUGIN_URL' ) ? YIT_CORE_PLUGIN_URL : get_template_directory_uri() . '/core/plugin-fw';
132
+ $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
133
+ wp_enqueue_script( 'yith-dashboard', $script_path . '/assets/js/yith-dashboard' . $suffix . '.js', array( 'jquery-ui-dialog' ), yith_plugin_fw_get_version(), true );
134
+ wp_enqueue_style( 'wp-jquery-ui-dialog' );
135
+ $l10n = array(
136
+ 'buttons' => array(
137
+ 'close' => _x( 'Close', 'Button label', 'yith-plugin-fw' ),
138
+ ),
139
+ );
140
+ wp_localize_script( 'yith-dashboard', 'yith_dashboard', $l10n );
141
+ }
142
+ }
143
+ }
144
+
145
+ if ( apply_filters( 'yith_plugin_fw_show_dashboard_widgets', true ) ) {
146
+ add_action( 'wp_dashboard_setup', 'YITH_Dashboard::dashboard_widget_setup' );
147
+ add_action( 'admin_enqueue_scripts', 'YITH_Dashboard::enqueue_scripts', 20 );
148
+ }
149
+ }
plugin-fw/includes/class-yith-debug.php ADDED
@@ -0,0 +1,290 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Debug Class.
4
+ *
5
+ * @class YITH_Debug
6
+ * @package YITH\PluginFramework\Classes
7
+ */
8
+
9
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
10
+
11
+ if ( ! class_exists( 'YITH_Debug' ) ) {
12
+ /**
13
+ * YITH_Debug class.
14
+ *
15
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
16
+ */
17
+ class YITH_Debug {
18
+
19
+ /**
20
+ * The single instance of the class.
21
+ *
22
+ * @var YITH_Debug
23
+ */
24
+ private static $instance;
25
+
26
+ /**
27
+ * Singleton implementation.
28
+ *
29
+ * @return YITH_Debug
30
+ */
31
+ public static function instance() {
32
+ return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
33
+ }
34
+
35
+ /**
36
+ * Deprecated singleton implementation.
37
+ * Kept for backward compatibility.
38
+ *
39
+ * @return YITH_Debug
40
+ * @deprecated 3.5 | use YITH_Debug::get_instance() instead.
41
+ */
42
+ public static function get_instance() {
43
+ return self::instance();
44
+ }
45
+
46
+ /**
47
+ * YITH_Debug constructor.
48
+ */
49
+ private function __construct() {
50
+ add_action( 'init', array( $this, 'init' ) );
51
+ }
52
+
53
+ /**
54
+ * Init
55
+ */
56
+ public function init() {
57
+ if ( ! is_admin() || defined( 'DOING_AJAX' ) ) {
58
+ return;
59
+ }
60
+
61
+ $is_debug = apply_filters( 'yith_plugin_fw_is_debug', isset( $_GET['yith-debug'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
62
+
63
+ if ( $is_debug ) {
64
+ add_action( 'admin_bar_menu', array( $this, 'add_debug_in_admin_bar' ), 99 );
65
+ }
66
+ }
67
+
68
+ /**
69
+ * Add debug node in admin bar.
70
+ *
71
+ * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance.
72
+ */
73
+ public function add_debug_in_admin_bar( $wp_admin_bar ) {
74
+ $args = array(
75
+ 'id' => 'yith-debug-admin-bar',
76
+ 'title' => 'YITH Debug',
77
+ 'href' => '',
78
+ 'meta' => array(
79
+ 'class' => 'yith-debug-admin-bar',
80
+ ),
81
+ );
82
+ $wp_admin_bar->add_node( $args );
83
+
84
+ $subnodes = array();
85
+
86
+ foreach ( $this->get_debug_information() as $key => $information ) {
87
+ $label = $information['label'];
88
+ $value = $information['value'];
89
+ $url = ! empty( $information['url'] ) ? $information['url'] : '';
90
+
91
+ if ( ! ! $value ) {
92
+ $title = "<strong>$label:</strong> $value";
93
+ } else {
94
+ $title = "<strong>$label</strong>";
95
+ }
96
+
97
+ $subnodes[] = array(
98
+ 'id' => 'yith-debug-admin-bar-' . $key,
99
+ 'parent' => 'yith-debug-admin-bar',
100
+ 'title' => $title,
101
+ 'href' => $url,
102
+ 'meta' => array(
103
+ 'class' => 'yith-debug-admin-bar-' . $key,
104
+ ),
105
+ );
106
+
107
+ if ( isset( $information['subsub'] ) ) {
108
+ foreach ( $information['subsub'] as $sub_key => $sub_value ) {
109
+ $title = isset( $sub_value['title'] ) ? $sub_value['title'] : '';
110
+ $html = isset( $sub_value['html'] ) ? $sub_value['html'] : '';
111
+ $subnodes[] = array(
112
+ 'id' => 'yith-debug-admin-bar-' . $key . '-' . $sub_key,
113
+ 'parent' => 'yith-debug-admin-bar-' . $key,
114
+ 'title' => $title,
115
+ 'href' => '',
116
+ 'meta' => array(
117
+ 'class' => 'yith-debug-admin-bar-' . $key . '-' . $sub_key,
118
+ 'html' => $html,
119
+ ),
120
+ );
121
+ }
122
+ }
123
+ }
124
+
125
+ foreach ( $subnodes as $subnode ) {
126
+ $wp_admin_bar->add_node( $subnode );
127
+ }
128
+ }
129
+
130
+
131
+ /**
132
+ * Return an array of debug information.
133
+ *
134
+ * @return array
135
+ */
136
+ public function get_debug_information() {
137
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
138
+ // phpcs:disable WordPress.PHP.DevelopmentFunctions.error_log_var_dump
139
+
140
+ $debug = array(
141
+ 'plugin-fw-info' => array(
142
+ 'label' => 'Framework',
143
+ 'value' => $this->get_plugin_framework_info(),
144
+ ),
145
+ 'yith-premium-plugins' => array(
146
+ 'label' => 'YITH Premium Plugins',
147
+ 'value' => '',
148
+ 'subsub' => $this->get_premium_plugins_info(),
149
+ ),
150
+ 'wc-version' => array(
151
+ 'label' => 'WooCommerce',
152
+ 'value' => $this->get_woocommerce_version_info(),
153
+ ),
154
+ 'theme' => array(
155
+ 'label' => 'Theme',
156
+ 'value' => $this->get_theme_info(),
157
+ ),
158
+ 'screen-id' => array(
159
+ 'label' => 'Screen ID',
160
+ 'value' => $this->get_current_screen_info(),
161
+ ),
162
+ 'post-meta' => array(
163
+ 'label' => 'Post Meta',
164
+ 'value' => '',
165
+ 'url' => add_query_arg( array( 'yith-debug-post-meta' => 'all' ) ),
166
+ ),
167
+ 'option' => array(
168
+ 'label' => 'Option',
169
+ 'value' => '',
170
+ 'url' => add_query_arg( array( 'yith-debug-option' => '' ) ),
171
+ ),
172
+ );
173
+
174
+ // Post Meta debug.
175
+ global $post;
176
+ if ( ! empty( $_GET['yith-debug-post-meta'] ) && $post ) {
177
+ $meta_key = sanitize_key( wp_unslash( $_GET['yith-debug-post-meta'] ) );
178
+ $meta_value = 'all' !== $meta_key ? get_post_meta( $post->ID, $meta_key, true ) : get_post_meta( $post->ID );
179
+
180
+ ob_start();
181
+ echo '<pre>';
182
+ var_dump( $meta_value );
183
+ echo '</pre>';
184
+ $meta_value_html = ob_get_clean();
185
+
186
+ $debug['post-meta']['value'] = $meta_key;
187
+ $debug['post-meta']['subsub'] = array( array( 'html' => $meta_value_html ) );
188
+ }
189
+
190
+ // Option debug.
191
+ if ( ! empty( $_GET['yith-debug-option'] ) ) {
192
+ $option_key = sanitize_key( wp_unslash( $_GET['yith-debug-option'] ) );
193
+ $option_value = get_option( $option_key );
194
+
195
+ ob_start();
196
+ echo '<pre>';
197
+ var_dump( $option_value );
198
+ echo '</pre>';
199
+ $option_value_html = ob_get_clean();
200
+
201
+ $debug['option']['value'] = $option_key;
202
+ $debug['option']['subsub'] = array( array( 'html' => $option_value_html ) );
203
+ }
204
+
205
+ // phpcs:enable
206
+
207
+ return $debug;
208
+ }
209
+
210
+ /** -----------------------------------------------------------
211
+ * GETTER INFO
212
+ * -----------------------------------------------------------
213
+ */
214
+
215
+ /**
216
+ * Return the current screen ID.
217
+ *
218
+ * @return string
219
+ */
220
+ public function get_current_screen_info() {
221
+ $screen = function_exists( 'get_current_screen' ) ? get_current_screen() : false;
222
+
223
+ return ! ! $screen ? $screen->id : 'null';
224
+ }
225
+
226
+ /**
227
+ * Return the current theme name and version.
228
+ *
229
+ * @return string
230
+ */
231
+ public function get_theme_info() {
232
+ $theme = function_exists( 'wp_get_theme' ) ? wp_get_theme() : false;
233
+
234
+ return ! ! $theme ? $theme->get( 'Name' ) . ' (' . $theme->get( 'Version' ) . ')' : 'null';
235
+ }
236
+
237
+ /**
238
+ * Return the WooCommerce version if active.
239
+ *
240
+ * @return string
241
+ */
242
+ public function get_woocommerce_version_info() {
243
+ return function_exists( 'WC' ) ? WC()->version : 'not active';
244
+ }
245
+
246
+ /**
247
+ * Return plugin framework information (version and loaded_by).
248
+ *
249
+ * @return string
250
+ */
251
+ public function get_plugin_framework_info() {
252
+ $plugin_fw_version = yith_plugin_fw_get_version();
253
+ $plugin_fw_loaded_by = basename( dirname( YIT_CORE_PLUGIN_PATH ) );
254
+
255
+ return "$plugin_fw_version (by $plugin_fw_loaded_by)";
256
+ }
257
+
258
+ /**
259
+ * Return premium plugins list with versions.
260
+ *
261
+ * @return array
262
+ */
263
+ public function get_premium_plugins_info() {
264
+ $plugins = YIT_Plugin_Licence()->get_products();
265
+ $plugins_info = array();
266
+
267
+ if ( ! ! $plugins ) {
268
+ foreach ( $plugins as $plugin ) {
269
+ $plugins_info[ $plugin['product_id'] ] = array( 'title' => $plugin['Name'] . ' (' . $plugin['Version'] . ')' );
270
+ }
271
+
272
+ sort( $plugins_info );
273
+ }
274
+
275
+ return $plugins_info;
276
+ }
277
+ }
278
+ }
279
+ if ( ! function_exists( 'yith_debug' ) ) {
280
+ /**
281
+ * Single instance of YITH_Debug
282
+ *
283
+ * @return YITH_Debug
284
+ */
285
+ function yith_debug() {
286
+ return YITH_Debug::instance();
287
+ }
288
+
289
+ yith_debug();
290
+ }
plugin-fw/includes/class-yith-gutenberg.php ADDED
@@ -0,0 +1,328 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Gutenberg Class
4
+ * handle Gutenberg blocks and shortcodes.
5
+ *
6
+ * @class YITH_Gutenberg
7
+ * @package YITH\PluginFramework\Classes
8
+ */
9
+
10
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
11
+
12
+ if ( ! class_exists( 'YITH_Gutenberg' ) ) {
13
+ /**
14
+ * YITH_Gutenberg class.
15
+ *
16
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
17
+ */
18
+ class YITH_Gutenberg {
19
+ /**
20
+ * The single instance of the class.
21
+ *
22
+ * @var YITH_Gutenberg
23
+ */
24
+ private static $instance;
25
+
26
+ /**
27
+ * Registered blocks
28
+ *
29
+ * @var array
30
+ */
31
+ private $registered_blocks = array();
32
+
33
+ /**
34
+ * Blocks to register
35
+ *
36
+ * @var array
37
+ */
38
+ private $to_register_blocks = array();
39
+
40
+ /**
41
+ * Blocks args
42
+ *
43
+ * @var array
44
+ */
45
+ private $blocks_args = array();
46
+
47
+ /**
48
+ * Block category slug
49
+ *
50
+ * @var string
51
+ */
52
+ private $category_slug = 'yith-blocks';
53
+
54
+ /**
55
+ * Singleton implementation.
56
+ *
57
+ * @return YITH_Gutenberg
58
+ */
59
+ public static function instance() {
60
+ return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
61
+ }
62
+
63
+ /**
64
+ * YITH_Gutenberg constructor.
65
+ */
66
+ private function __construct() {
67
+ add_action( 'init', array( $this, 'register_blocks' ), 30 );
68
+ add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_block_editor_assets' ) );
69
+ add_action( 'wp_ajax_yith_plugin_fw_gutenberg_do_shortcode', array( $this, 'do_shortcode' ) );
70
+ add_action( 'wc_ajax_yith_plugin_fw_gutenberg_do_shortcode', array( $this, 'do_shortcode' ) );
71
+ }
72
+
73
+ /**
74
+ * Enqueue scripts for gutenberg
75
+ */
76
+ public function enqueue_block_editor_assets() {
77
+ $ajax_url = function_exists( 'WC' ) ? add_query_arg( 'wc-ajax', 'yith_plugin_fw_gutenberg_do_shortcode', trailingslashit( site_url() ) ) : admin_url( 'admin-ajax.php' );
78
+ $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
79
+ $deps = apply_filters(
80
+ 'yith_plugin_fw_gutenberg_script_deps',
81
+ array(
82
+ 'wp-blocks',
83
+ 'wp-element',
84
+ 'yith-js-md5',
85
+ )
86
+ );
87
+ wp_register_script( 'yith-js-md5', YIT_CORE_PLUGIN_URL . '/assets/js/javascript-md5/md5.min.js', array(), '2.10.0', true );
88
+ wp_enqueue_script( 'yith-gutenberg', YIT_CORE_PLUGIN_URL . '/assets/js/yith-gutenberg' . $suffix . '.js', $deps, yith_plugin_fw_get_version(), true );
89
+ wp_localize_script( 'yith-gutenberg', 'yith_gutenberg', $this->blocks_args );
90
+ wp_localize_script( 'yith-gutenberg', 'yith_gutenberg_ajax', array( 'ajaxurl' => $ajax_url ) );
91
+ }
92
+
93
+ /**
94
+ * Add blocks to gutenberg editor.
95
+ */
96
+ public function register_blocks() {
97
+ $block_args = array();
98
+ foreach ( $this->to_register_blocks as $block => $args ) {
99
+ if ( isset( $args['style'] ) ) {
100
+ $block_args['style'] = $args['style'];
101
+ }
102
+
103
+ if ( isset( $args['script'] ) ) {
104
+ $block_args['script'] = $args['script'];
105
+ }
106
+
107
+ if ( register_block_type( "yith/{$block}", $block_args ) ) {
108
+ $this->registered_blocks[] = $block;
109
+ }
110
+ }
111
+
112
+ if ( ! empty( $this->registered_blocks ) ) {
113
+ add_filter( 'block_categories', array( $this, 'block_category' ), 10, 2 );
114
+ }
115
+ }
116
+
117
+ /**
118
+ * Add block category
119
+ *
120
+ * @param array $categories The block categories.
121
+ * @param WP_Post $post The current post.
122
+ *
123
+ * @return array The block categories.
124
+ */
125
+ public function block_category( $categories, $post ) {
126
+ return array_merge(
127
+ $categories,
128
+ array(
129
+ array(
130
+ 'slug' => 'yith-blocks',
131
+ 'title' => _x( 'YITH', '[gutenberg]: Category Name', 'yith-plugin-fw' ),
132
+ ),
133
+ )
134
+ );
135
+ }
136
+
137
+ /**
138
+ * Add new blocks to Gutenberg
139
+ *
140
+ * @param string|array $blocks The blocks to be added.
141
+ *
142
+ * @return bool True if the blocks was successfully added, false otherwise.
143
+ */
144
+ public function add_blocks( $blocks ) {
145
+ $added = false;
146
+ if ( ! empty( $blocks ) ) {
147
+ $added = true;
148
+ if ( is_array( $blocks ) ) {
149
+ $this->to_register_blocks = array_merge( $this->to_register_blocks, $blocks );
150
+ } else {
151
+ $this->to_register_blocks[] = $blocks;
152
+ }
153
+ }
154
+
155
+ return $added;
156
+ }
157
+
158
+ /**
159
+ * Return an array with the registered blocks
160
+ *
161
+ * @return array
162
+ */
163
+ public function get_registered_blocks() {
164
+ return $this->registered_blocks;
165
+ }
166
+
167
+ /**
168
+ * Return an array with the blocks to register
169
+ *
170
+ * @return array
171
+ */
172
+ public function get_to_register_blocks() {
173
+ return $this->to_register_blocks;
174
+ }
175
+
176
+ /**
177
+ * Return an array with the block(s) arguments
178
+ *
179
+ * @param string $block_key The block key.
180
+ *
181
+ * @return array|false
182
+ */
183
+ public function get_block_args( $block_key = 'all' ) {
184
+ if ( 'all' === $block_key ) {
185
+ return $this->blocks_args;
186
+ } elseif ( isset( $this->blocks_args[ $block_key ] ) ) {
187
+ return $this->blocks_args[ $block_key ];
188
+ }
189
+
190
+ return false;
191
+ }
192
+
193
+ /**
194
+ * Retrieve the default category slug
195
+ *
196
+ * @return string
197
+ */
198
+ public function get_default_blocks_category_slug() {
199
+ return $this->category_slug;
200
+ }
201
+
202
+ /**
203
+ * Set the block arguments
204
+ *
205
+ * @param array $args The block arguments.
206
+ */
207
+ public function set_block_args( $args ) {
208
+ foreach ( $args as $block => $block_args ) {
209
+
210
+ // Add Default Keywords.
211
+ $default_keywords = array( 'yith' );
212
+ if ( ! empty( $block_args['shortcode_name'] ) ) {
213
+ $default_keywords[] = $block_args['shortcode_name'];
214
+ }
215
+
216
+ $args[ $block ]['keywords'] = ! empty( $args[ $block ]['keywords'] ) ? array_merge( $args[ $block ]['keywords'], $default_keywords ) : $default_keywords;
217
+
218
+ if ( count( $args[ $block ]['keywords'] ) > 3 ) {
219
+ $args[ $block ]['keywords'] = array_slice( $args[ $block ]['keywords'], 0, 3 );
220
+ }
221
+
222
+ if ( empty( $block_args['category'] ) ) {
223
+ // Add the YITH block category.
224
+ $args[ $block ]['category'] = $this->get_default_blocks_category_slug();
225
+ }
226
+
227
+ if ( isset( $block_args['attributes'] ) ) {
228
+ foreach ( $block_args['attributes'] as $attr_name => $attributes ) {
229
+ // Set the do_shortcode args.
230
+ if ( ! empty( $attributes['do_shortcode'] ) ) {
231
+ $args[ $block ]['attributes'][ $attr_name ] = true;
232
+ }
233
+
234
+ if ( ! empty( $attributes['options'] ) && is_array( $attributes['options'] ) ) {
235
+ $options = array();
236
+ foreach ( $attributes['options'] as $v => $l ) {
237
+ // Prepare options array for react component.
238
+ $options[] = array(
239
+ 'label' => $l,
240
+ 'value' => $v,
241
+ );
242
+ }
243
+ $args[ $block ]['attributes'][ $attr_name ]['options'] = $options;
244
+ }
245
+
246
+ if ( empty( $attributes['remove_quotes'] ) ) {
247
+ $args[ $block ]['attributes'][ $attr_name ]['remove_quotes'] = false;
248
+ }
249
+
250
+ // Special Requirements for Block Type.
251
+ if ( ! empty( $attributes['type'] ) ) {
252
+ $args[ $block ]['attributes'][ $attr_name ]['blocktype'] = $attributes['type'];
253
+ $args[ $block ]['attributes'][ $attr_name ]['type'] = 'string';
254
+
255
+ switch ( $attributes['type'] ) {
256
+ case 'select':
257
+ // Add default value for multiple.
258
+ if ( ! isset( $attributes['multiple'] ) ) {
259
+ $args[ $block ]['attributes'][ $attr_name ]['multiple'] = false;
260
+ }
261
+
262
+ if ( ! empty( $attributes['multiple'] ) ) {
263
+ $args[ $block ]['attributes'][ $attr_name ]['type'] = 'array';
264
+ }
265
+ break;
266
+
267
+ case 'color':
268
+ case 'colorpicker':
269
+ if ( ! isset( $attributes['disableAlpha'] ) ) {
270
+ // Disable alpha gradient for color picker.
271
+ $args[ $block ]['attributes'][ $attr_name ]['disableAlpha'] = true;
272
+ }
273
+ break;
274
+
275
+ case 'number':
276
+ $args[ $block ]['attributes'][ $attr_name ]['type'] = 'integer';
277
+ break;
278
+
279
+ case 'toggle':
280
+ case 'checkbox':
281
+ $args[ $block ]['attributes'][ $attr_name ]['type'] = 'boolean';
282
+ break;
283
+ }
284
+ }
285
+ }
286
+ }
287
+ }
288
+
289
+ $this->blocks_args = array_merge( $this->blocks_args, $args );
290
+ }
291
+
292
+ /**
293
+ * Get a do_shortcode in ajax call to show block preview
294
+ **/
295
+ public function do_shortcode() {
296
+ // phpcs:disable WordPress.Security.NonceVerification.Missing
297
+ $current_action = current_action();
298
+ $shortcode = ! empty( $_POST['shortcode'] ) ? wp_unslash( $_POST['shortcode'] ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
299
+
300
+ if ( ! apply_filters( 'yith_plugin_fw_gutenberg_skip_shortcode_sanitize', false ) ) {
301
+ $shortcode = sanitize_text_field( stripslashes( $shortcode ) );
302
+ }
303
+
304
+ do_action( 'yith_plugin_fw_gutenberg_before_do_shortcode', $shortcode, $current_action );
305
+ echo do_shortcode( apply_filters( 'yith_plugin_fw_gutenberg_shortcode', $shortcode, $current_action ) );
306
+ do_action( 'yith_plugin_fw_gutenberg_after_do_shortcode', $shortcode, $current_action );
307
+
308
+ if ( is_ajax() ) {
309
+ die();
310
+ }
311
+
312
+ // phpcs:enable
313
+ }
314
+ }
315
+ }
316
+
317
+ if ( ! function_exists( 'YITH_Gutenberg' ) ) {
318
+ /**
319
+ * Single instance of YITH_Gutenberg
320
+ *
321
+ * @return YITH_Gutenberg
322
+ */
323
+ function YITH_Gutenberg() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
324
+ return YITH_Gutenberg::instance();
325
+ }
326
+ }
327
+
328
+ YITH_Gutenberg();
plugin-fw/includes/class-yith-system-status.php ADDED
@@ -0,0 +1,721 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH System Status Class
4
+ * handle System Status panel
5
+ *
6
+ * @class YITH_System_Status
7
+ * @package YITH\PluginFramework\Classes
8
+ */
9
+
10
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
11
+
12
+ if ( ! class_exists( 'YITH_System_Status' ) ) {
13
+ /**
14
+ * YITH_System_Status class.
15
+ *
16
+ * @author Alberto Ruggiero
17
+ */
18
+ class YITH_System_Status {
19
+ /**
20
+ * The page slug
21
+ *
22
+ * @var string
23
+ */
24
+ protected $page = 'yith_system_info';
25
+
26
+ /**
27
+ * Plugins requirements list
28
+ *
29
+ * @var array
30
+ */
31
+ protected $plugins_requirements = array();
32
+
33
+ /**
34
+ * Requirements labels
35
+ *
36
+ * @var array
37
+ */
38
+ public $requirement_labels = array();
39
+
40
+ /**
41
+ * Recommended memory amount 134217728 = 128M
42
+ *
43
+ * @var integer
44
+ */
45
+ private $recommended_memory = 134217728;
46
+
47
+ /**
48
+ * Single instance of the class
49
+ *
50
+ * @since 1.0.0
51
+ * @var YITH_System_Status
52
+ */
53
+ protected static $instance = null;
54
+
55
+ /**
56
+ * Main plugin Instance
57
+ *
58
+ * @return YITH_System_Status
59
+ * @since 1.0.0
60
+ * @author Alberto Ruggiero
61
+ */
62
+ public static function instance() {
63
+ if ( is_null( self::$instance ) ) {
64
+ self::$instance = new self();
65
+ }
66
+
67
+ return self::$instance;
68
+ }
69
+
70
+ /**
71
+ * Constructor
72
+ *
73
+ * @return void
74
+ * @since 1.0.0
75
+ * @author Alberto Ruggiero
76
+ */
77
+ public function __construct() {
78
+
79
+ if ( ! is_admin() ) {
80
+ return;
81
+ }
82
+
83
+ /**
84
+ * Add to prevent trigger admin_init called directly
85
+ * wp-admin/admin-post.php?page=yith_system_info
86
+ */
87
+ if ( ! is_user_logged_in() ) {
88
+ return;
89
+ }
90
+
91
+ add_action( 'admin_menu', array( $this, 'add_submenu_page' ), 99 );
92
+ add_action( 'admin_init', array( $this, 'check_system_status' ) );
93
+ add_action( 'admin_notices', array( $this, 'activate_system_notice' ), 15 );
94
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 20 );
95
+ add_action( 'init', array( $this, 'set_requirements_labels' ) );
96
+ add_action( 'wp_ajax_yith_create_log_file', array( $this, 'create_log_file' ) );
97
+
98
+ }
99
+
100
+ /**
101
+ * Set requirements labels
102
+ *
103
+ * @return void
104
+ * @since 1.0.0
105
+ * @author Alberto Ruggiero
106
+ */
107
+ public function set_requirements_labels() {
108
+
109
+ $this->requirement_labels = array(
110
+ 'min_wp_version' => esc_html__( 'WordPress Version', 'yith-plugin-fw' ),
111
+ 'min_wc_version' => esc_html__( 'WooCommerce Version', 'yith-plugin-fw' ),
112
+ 'wp_memory_limit' => esc_html__( 'Available Memory', 'yith-plugin-fw' ),
113
+ 'min_php_version' => esc_html__( 'PHP Version', 'yith-plugin-fw' ),
114
+ 'min_tls_version' => esc_html__( 'TLS Version', 'yith-plugin-fw' ),
115
+ 'wp_cron_enabled' => esc_html__( 'WordPress Cron', 'yith-plugin-fw' ),
116
+ 'simplexml_enabled' => esc_html__( 'SimpleXML', 'yith-plugin-fw' ),
117
+ 'mbstring_enabled' => esc_html__( 'MultiByte String', 'yith-plugin-fw' ),
118
+ 'imagick_version' => esc_html__( 'ImageMagick Version', 'yith-plugin-fw' ),
119
+ 'gd_enabled' => esc_html__( 'GD Library', 'yith-plugin-fw' ),
120
+ 'iconv_enabled' => esc_html__( 'Iconv Module', 'yith-plugin-fw' ),
121
+ 'opcache_enabled' => esc_html__( 'OPCache Save Comments', 'yith-plugin-fw' ),
122
+ 'url_fopen_enabled' => esc_html__( 'URL FOpen', 'yith-plugin-fw' ),
123
+ );
124
+
125
+ }
126
+
127
+ /**
128
+ * Add "System Information" submenu page under YITH Plugins
129
+ *
130
+ * @return void
131
+ * @since 1.0.0
132
+ * @author Alberto Ruggiero
133
+ */
134
+ public function add_submenu_page() {
135
+
136
+ $system_info = get_option( 'yith_system_info', array() );
137
+ $error_notice = ( isset( $system_info['errors'] ) && true === $system_info['errors'] ? ' <span class="yith-system-info-menu update-plugins">!</span>' : '' );
138
+ $settings = array(
139
+ 'parent_page' => 'yith_plugin_panel',
140
+ 'page_title' => esc_html__( 'System Status', 'yith-plugin-fw' ),
141
+ 'menu_title' => esc_html__( 'System Status', 'yith-plugin-fw' ) . $error_notice,
142
+ 'capability' => 'manage_options',
143
+ 'page' => $this->page,
144
+ );
145
+
146
+ add_submenu_page(
147
+ $settings['parent_page'],
148
+ $settings['page_title'],
149
+ $settings['menu_title'],
150
+ $settings['capability'],
151
+ $settings['page'],
152
+ array( $this, 'show_information_panel' )
153
+ );
154
+ }
155
+
156
+ /**
157
+ * Add "System Information" page template under YITH Plugins
158
+ *
159
+ * @return void
160
+ * @since 1.0.0
161
+ * @author Alberto Ruggiero
162
+ */
163
+ public function show_information_panel() {
164
+
165
+ $path = defined( 'YIT_CORE_PLUGIN_PATH' ) ? YIT_CORE_PLUGIN_PATH : get_template_directory() . '/core/plugin-fw/';
166
+
167
+ require_once $path . '/templates/sysinfo/system-information-panel.php';
168
+
169
+ }
170
+
171
+ /**
172
+ * Perform system status check
173
+ *
174
+ * @return void
175
+ * @since 1.0.0
176
+ * @author Alberto Ruggiero
177
+ */
178
+ public function check_system_status() {
179
+
180
+ if ( '' === get_option( 'yith_system_info' ) || ( isset( $_GET['page'] ) && $_GET['page'] === $this->page ) ) { //phpcs:ignore
181
+
182
+ $this->add_requirements(
183
+ esc_html__( 'YITH Plugins', 'yith-plugin-fw' ),
184
+ array(
185
+ 'min_wp_version' => '5.3',
186
+ 'min_wc_version' => '4.2',
187
+ 'min_php_version' => '5.6.20',
188
+ )
189
+ );
190
+ $this->add_requirements(
191
+ esc_html__( 'WooCommerce', 'yith-plugin-fw' ),
192
+ array(
193
+ 'wp_memory_limit' => '64M',
194
+ )
195
+ );
196
+
197
+ $system_info = $this->get_system_info();
198
+ $check_results = array();
199
+ $errors = 0;
200
+
201
+ foreach ( $system_info as $key => $value ) {
202
+ $check_results[ $key ] = array( 'value' => $value );
203
+
204
+ if ( isset( $this->plugins_requirements[ $key ] ) ) {
205
+
206
+ foreach ( $this->plugins_requirements[ $key ] as $plugin_name => $required_value ) {
207
+
208
+ switch ( $key ) {
209
+ case 'wp_cron_enabled':
210
+ case 'mbstring_enabled':
211
+ case 'simplexml_enabled':
212
+ case 'gd_enabled':
213
+ case 'iconv_enabled':
214
+ case 'url_fopen_enabled':
215
+ case 'opcache_enabled':
216
+ if ( ! $value ) {
217
+ $check_results[ $key ]['errors'][ $plugin_name ] = $required_value;
218
+ $errors ++;
219
+ }
220
+ break;
221
+
222
+ case 'wp_memory_limit':
223
+ $required_memory = $this->memory_size_to_num( $required_value );
224
+
225
+ if ( $required_memory > $value ) {
226
+ $check_results[ $key ]['errors'][ $plugin_name ] = $required_value;
227
+ $errors ++;
228
+
229
+ } elseif ( $this->recommended_memory > $value && $value > $required_value ) {
230
+ $check_results[ $key ]['warnings'] = 'yes';
231
+ }
232
+ break;
233
+
234
+ default:
235
+ if ( 'imagick_version' === $key ) {
236
+ if ( ! version_compare( $value, $required_value, '>=' ) ) {
237
+ $check_results[ $key ]['errors'][ $plugin_name ] = $required_value;
238
+ $errors ++;
239
+ }
240
+ } else {
241
+ if ( 'n/a' !== $value ) {
242
+ if ( ! version_compare( $value, $required_value, '>=' ) ) {
243
+ $check_results[ $key ]['errors'][ $plugin_name ] = $required_value;
244
+ $errors ++;
245
+ }
246
+ } else {
247
+ if ( 'min_wc_version' !== $key ) {
248
+ $check_results[ $key ]['warnings'][ $plugin_name ] = $required_value;
249
+ }
250
+ }
251
+ }
252
+ }
253
+ }
254
+ }
255
+ }
256
+
257
+ update_option(
258
+ 'yith_system_info',
259
+ array(
260
+ 'system_info' => $check_results,
261
+ 'errors' => $errors > 0,
262
+ )
263
+ );
264
+
265
+ }
266
+
267
+ }
268
+
269
+ /**
270
+ * Handle plugin requirements
271
+ *
272
+ * @param string $plugin_name The name of the plugin.
273
+ * @param array $requirements Array of plugin requirements.
274
+ *
275
+ * @return void
276
+ * @since 1.0.0
277
+ * @author Alberto Ruggiero
278
+ */
279
+ public function add_requirements( $plugin_name, $requirements ) {
280
+
281
+ $allowed_requirements = array_keys( $this->requirement_labels );
282
+
283
+ foreach ( $requirements as $requirement => $value ) {
284
+
285
+ if ( in_array( $requirement, $allowed_requirements, true ) ) {
286
+ $this->plugins_requirements[ $requirement ][ $plugin_name ] = $value;
287
+ }
288
+ }
289
+
290
+ }
291
+
292
+ /**
293
+ * Manages notice dismissing
294
+ *
295
+ * @return void
296
+ * @since 1.0.0
297
+ * @author Alberto Ruggiero
298
+ */
299
+ public function enqueue_scripts() {
300
+ $script_path = defined( 'YIT_CORE_PLUGIN_URL' ) ? YIT_CORE_PLUGIN_URL : get_template_directory_uri() . '/core/plugin-fw';
301
+ wp_register_script( 'yith-system-info', yit_load_js_file( $script_path . '/assets/js/yith-system-info.js' ), array( 'jquery' ), '1.0.0', true );
302
+
303
+ if ( isset( $_GET['page'] ) && 'yith_system_info' === $_GET['page'] ) { //phpcs:ignore
304
+ wp_enqueue_style( 'yit-plugin-style' );
305
+ wp_enqueue_style( 'yith-plugin-fw-fields' );
306
+ wp_enqueue_script( 'yith-system-info' );
307
+
308
+ $params = array(
309
+ 'ajax_url' => admin_url( 'admin-ajax.php' ),
310
+ );
311
+
312
+ wp_localize_script( 'yith-system-info', 'yith_sysinfo', $params );
313
+
314
+ }
315
+
316
+ }
317
+
318
+ /**
319
+ * Show system notice
320
+ *
321
+ * @return void
322
+ * @since 1.0.0
323
+ * @author Alberto Ruggiero
324
+ */
325
+ public function activate_system_notice() {
326
+
327
+ $system_info = get_option( 'yith_system_info', '' );
328
+
329
+ if ( ( isset( $_GET['page'] ) && $_GET['page'] === $this->page ) || ( ! empty( $_COOKIE['hide_yith_system_alert'] ) && 'yes' === $_COOKIE['hide_yith_system_alert'] ) || ( '' === $system_info ) || ( '' !== $system_info && false === $system_info['errors'] ) ) { //phpcs:ignore
330
+ return;
331
+ }
332
+
333
+ $show_notice = true;
334
+
335
+ if ( true === $show_notice ) {
336
+ wp_enqueue_script( 'yith-system-info' );
337
+ ?>
338
+ <div id="yith-system-alert" class="notice notice-error is-dismissible" style="position: relative;">
339
+ <p>
340
+ <span class="yith-logo"><img src="<?php echo esc_attr( yith_plugin_fw_get_default_logo() ); ?>"/></span>
341
+ <b>
342
+ <?php esc_html_e( 'Warning!', 'yith-plugin-fw' ); ?>
343
+ </b><br/>
344
+ <?php
345
+ /* translators: %1$s open link tag, %2$s open link tag*/
346
+ echo sprintf( esc_html__( 'The system check has detected some compatibility issues on your installation.%1$sClick here%2$s to know more', 'yith-plugin-fw' ), '<a href="' . esc_url( add_query_arg( array( 'page' => $this->page ), admin_url( 'admin.php' ) ) ) . '">', '</a>' );
347
+ ?>
348
+ </p>
349
+ <span class="notice-dismiss"></span>
350
+
351
+ </div>
352
+ <?php
353
+ }
354
+ }
355
+
356
+ /**
357
+ * Get system information
358
+ *
359
+ * @return array
360
+ * @since 1.0.0
361
+ * @author Alberto Ruggiero
362
+ */
363
+ public function get_system_info() {
364
+ $tls = $this->get_tls_version();
365
+ $imagick_version = 'n/a';
366
+
367
+ // Get PHP version.
368
+ preg_match( '#^\d+(\.\d+)*#', PHP_VERSION, $match );
369
+ $php_version = $match[0];
370
+
371
+ // WP memory limit.
372
+ $wp_memory_limit = $this->memory_size_to_num( WP_MEMORY_LIMIT );
373
+ if ( function_exists( 'memory_get_usage' ) ) {
374
+ $wp_memory_limit = max( $wp_memory_limit, $this->memory_size_to_num( @ini_get( 'memory_limit' ) ) ); //phpcs:ignore
375
+ }
376
+
377
+ if ( class_exists( 'Imagick' ) && is_callable( array( 'Imagick', 'getVersion' ) ) ) {
378
+ preg_match( '/([0-9]+\.[0-9]+\.[0-9]+)/', Imagick::getVersion()['versionString'], $imatch );
379
+ $imagick_version = $imatch[0];
380
+ }
381
+
382
+ return apply_filters(
383
+ 'yith_system_additional_check',
384
+ array(
385
+ 'min_wp_version' => get_bloginfo( 'version' ),
386
+ 'min_wc_version' => function_exists( 'WC' ) ? WC()->version : 'n/a',
387
+ 'wp_memory_limit' => $wp_memory_limit,
388
+ 'min_php_version' => $php_version,
389
+ 'min_tls_version' => $tls,
390
+ 'imagick_version' => $imagick_version,
391
+ 'wp_cron_enabled' => ( ! ( defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON ) || apply_filters( 'yith_system_status_server_cron', false ) ),
392
+ 'mbstring_enabled' => extension_loaded( 'mbstring' ),
393
+ 'simplexml_enabled' => extension_loaded( 'simplexml' ),
394
+ 'gd_enabled' => extension_loaded( 'gd' ) && function_exists( 'gd_info' ),
395
+ 'iconv_enabled' => extension_loaded( 'iconv' ),
396
+ 'opcache_enabled' => ini_get( 'opcache.save_comments' ),
397
+ 'url_fopen_enabled' => ini_get( 'allow_url_fopen' ),
398
+ )
399
+ );
400
+
401
+ }
402
+
403
+ /**
404
+ * Get log file
405
+ *
406
+ * @return void
407
+ * @since 1.0.0
408
+ * @author Alberto Ruggiero
409
+ */
410
+ public function create_log_file() {
411
+ try {
412
+
413
+ global $wp_filesystem;
414
+
415
+ if ( empty( $wp_filesystem ) ) {
416
+ require_once ABSPATH . '/wp-admin/includes/file.php';
417
+ WP_Filesystem();
418
+ }
419
+
420
+ $download_file = false;
421
+ $file_content = '';
422
+ $requested_file = $_POST['file']; //phpcs:ignore
423
+
424
+ switch ( $requested_file ) {
425
+ case 'error_log':
426
+ $file_content = $wp_filesystem->get_contents( ABSPATH . 'error_log' );
427
+ break;
428
+ case 'debug.log':
429
+ $file_content = $wp_filesystem->get_contents( WP_CONTENT_DIR . '/debug.log' );
430
+ break;
431
+ }
432
+
433
+ if ( '' !== $file_content ) {
434
+ $file = wp_upload_dir()['basedir'] . '/' . $requested_file . '.txt';
435
+ $download_file = wp_upload_dir()['baseurl'] . '/' . $requested_file . '.txt';
436
+ $wp_filesystem->put_contents( $file, $file_content );
437
+ }
438
+
439
+ wp_send_json( array( 'file' => $download_file ) );
440
+ } catch ( Exception $e ) {
441
+ wp_send_json( array( 'file' => false ) );
442
+ }
443
+ }
444
+
445
+ /**
446
+ * Convert size into number
447
+ *
448
+ * @param string $memory_size Memory size to convert.
449
+ *
450
+ * @return integer
451
+ * @since 1.0.0
452
+ * @author Alberto Ruggiero
453
+ */
454
+ public function memory_size_to_num( $memory_size ) {
455
+ $unit = strtoupper( substr( $memory_size, - 1 ) );
456
+ $size = substr( $memory_size, 0, - 1 );
457
+
458
+ $multiplier = array(
459
+ 'P' => 5,
460
+ 'T' => 4,
461
+ 'G' => 3,
462
+ 'M' => 2,
463
+ 'K' => 1,
464
+ );
465
+
466
+ if ( isset( $multiplier[ $unit ] ) ) {
467
+ for ( $i = 1; $i <= $multiplier[ $unit ]; $i ++ ) {
468
+ $size *= 1024;
469
+ }
470
+ }
471
+
472
+ return $size;
473
+ }
474
+
475
+ /**
476
+ * Format requirement value
477
+ *
478
+ * @param string $key Requirement Key.
479
+ * @param mixed $value Requirement value.
480
+ *
481
+ * @return void
482
+ * @since 1.0.0
483
+ * @author Alberto Ruggiero
484
+ */
485
+ public function format_requirement_value( $key, $value ) {
486
+
487
+ if ( strpos( $key, '_enabled' ) !== false ) {
488
+ echo esc_attr( $value ) ? esc_html__( 'Enabled', 'yith-plugin-fw' ) : esc_html__( 'Disabled', 'yith-plugin-fw' );
489
+ } elseif ( 'wp_memory_limit' === $key ) {
490
+ echo esc_html( size_format( $value ) );
491
+ } else {
492
+ if ( 'n/a' === $value ) {
493
+ echo esc_html__( 'N/A', 'yith-plugin-fw' );
494
+ } else {
495
+ echo esc_attr( $value );
496
+ }
497
+ }
498
+
499
+ }
500
+
501
+ /**
502
+ * Print error messages
503
+ *
504
+ * @param string $key Requirement key.
505
+ * @param array $item Requirement item.
506
+ * @param string $label Requirement label.
507
+ *
508
+ * @return void
509
+ * @since 1.0.0
510
+ * @author Alberto Ruggiero
511
+ */
512
+ public function print_error_messages( $key, $item, $label ) {
513
+ ?>
514
+ <ul>
515
+ <?php foreach ( $item['errors'] as $plugin => $requirement ) : ?>
516
+ <li>
517
+ <?php
518
+ if ( strpos( $key, '_enabled' ) !== false ) {
519
+ /* translators: %1$s plugin name, %2$s requirement name */
520
+ echo sprintf( esc_html__( '%1$s needs %2$s enabled', 'yith-plugin-fw' ), '<b>' . esc_attr( $plugin ) . '</b>', '<b>' . esc_attr( $label ) . '</b>' );
521
+ } elseif ( 'wp_memory_limit' === $key ) {
522
+ /* translators: %1$s plugin name, %2$s required memory amount */
523
+ echo sprintf( esc_html__( '%1$s needs at least %2$s of available memory', 'yith-plugin-fw' ), '<b>' . esc_attr( $plugin ) . '</b>', '<span class="error">' . esc_html( size_format( $this->memory_size_to_num( $requirement ) ) ) . '</span>' );
524
+ } else {
525
+ /* translators: %1$s plugin name, %2$s version number */
526
+ echo sprintf( esc_html__( '%1$s needs at least %2$s version', 'yith-plugin-fw' ), '<b>' . esc_attr( $plugin ) . '</b>', '<span class="error">' . esc_attr( $requirement ) . '</span>' );
527
+ }
528
+ ?>
529
+ </li>
530
+ <?php endforeach; ?>
531
+ </ul>
532
+ <?php
533
+ }
534
+
535
+ /**
536
+ * Print solution suggestions
537
+ *
538
+ * @param string $key Requirement key.
539
+ * @param array $item Requirement item.
540
+ * @param string $label Requirement label.
541
+ *
542
+ * @return void
543
+ * @since 1.0.0
544
+ * @author Alberto Ruggiero
545
+ */
546
+ public function print_solution_suggestion( $key, $item, $label ) {
547
+ switch ( $key ) {
548
+ case 'min_wp_version':
549
+ case 'min_wc_version':
550
+ esc_html_e( 'Update it to the latest version in order to benefit of all new features and security updates.', 'yith-plugin-fw' );
551
+ break;
552
+ case 'min_php_version':
553
+ case 'min_tls_version':
554
+ esc_html_e( 'Contact your hosting company in order to update it.', 'yith-plugin-fw' );
555
+ break;
556
+ case 'imagick_version':
557
+ if ( 'n/a' === $item['value'] ) {
558
+ esc_html_e( 'Contact your hosting company in order to install it.', 'yith-plugin-fw' );
559
+ } else {
560
+ esc_html_e( 'Contact your hosting company in order to update it.', 'yith-plugin-fw' );
561
+ }
562
+ break;
563
+ case 'wp_cron_enabled':
564
+ /* translators: %1$s code, %2$s file name */
565
+ echo sprintf( esc_html__( 'Remove %1$s from %2$s file', 'yith-plugin-fw' ), '<code>define( \'DISABLE_WP_CRON\', true );</code>', '<b>wp-config.php</b>' );
566
+ break;
567
+ case 'mbstring_enabled':
568
+ case 'simplexml_enabled':
569
+ case 'gd_enabled':
570
+ case 'iconv_enabled':
571
+ case 'opcache_enabled':
572
+ case 'url_fopen_enabled':
573
+ esc_html_e( 'Contact your hosting company in order to enable it.', 'yith-plugin-fw' );
574
+ break;
575
+ case 'wp_memory_limit':
576
+ /* translators: %1$s opening link tag, %2$s closing link tag */
577
+ echo sprintf( esc_html__( 'Read more %1$shere%2$s or contact your hosting company in order to increase it.', 'yith-plugin-fw' ), '<a href="https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP" target="_blank">', '</a>' );
578
+ break;
579
+ default:
580
+ echo esc_attr( apply_filters( 'yith_system_generic_message', '', $key, $item, $label ) );
581
+ }
582
+ }
583
+
584
+ /**
585
+ * Print warning messages
586
+ *
587
+ * @param string $key Requirement Key.
588
+ *
589
+ * @return void
590
+ * @since 1.0.0
591
+ * @author Alberto Ruggiero
592
+ */
593
+ public function print_warning_messages( $key ) {
594
+ switch ( $key ) {
595
+ case 'wp_memory_limit':
596
+ /* translators: %s recommended memory amount */
597
+ echo sprintf( esc_html__( 'For optimal functioning of our plugins, we suggest setting at least %s of available memory', 'yith-plugin-fw' ), '<span class="warning">' . esc_html( size_format( $this->recommended_memory ) ) . '</span>' );
598
+ echo '<br/>';
599
+ /* translators: %1$s opening link tag, %2$s closing link tag */
600
+ echo sprintf( esc_html__( 'Read more %1$shere%2$s or contact your hosting company in order to increase it.', 'yith-plugin-fw' ), '<a href="https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP" target="_blank">', '</a>' );
601
+ break;
602
+ case 'min_tls_version':
603
+ if ( ! function_exists( 'curl_init' ) ) {
604
+ /* translators: %1$s TLS label, %2$s cURL label */
605
+ echo sprintf( esc_html__( 'The system check cannot determine which %1$s version is installed because %2$s module is disabled. Ask your hosting company to enable it.', 'yith-plugin-fw' ), '<b>TLS</b>', '<b>cURL</b>' );
606
+ } else {
607
+ /* translators: %1$s TLS label */
608
+ echo sprintf( esc_html__( 'The system check cannot determine which %1$s version is installed due to a connection issue between your site and our server.', 'yith-plugin-fw' ), '<b>TLS</b>' );
609
+ }
610
+ break;
611
+ }
612
+ }
613
+
614
+ /**
615
+ * Retrieve the TLS Version
616
+ *
617
+ * @return string
618
+ * @since 3.5
619
+ */
620
+ public function get_tls_version() {
621
+ $tls = get_transient( 'yith-plugin-fw-system-status-tls-version' );
622
+
623
+ if ( ! $tls && apply_filters( 'yith_system_status_check_ssl', true ) ) {
624
+ $services = array(
625
+ array(
626
+ 'url' => 'https://www.howsmyssl.com/a/check',
627
+ 'string_to_remove' => 'TLS ',
628
+ 'prop' => 'tls_version',
629
+ ),
630
+ array(
631
+ 'url' => 'https://ttl-version.yithemes.workers.dev/',
632
+ 'string_to_remove' => 'TLSv',
633
+ 'prop' => 'tlsVersion',
634
+ ),
635
+ );
636
+ $params = array(
637
+ 'sslverify' => false,
638
+ 'timeout' => 60,
639
+ 'headers' => array( 'Content-Type' => 'application/json' ),
640
+ );
641
+
642
+ foreach ( $services as $service ) {
643
+ $url = $service['url'];
644
+ $string_to_remove = $service['string_to_remove'];
645
+ $prop = $service['prop'];
646
+
647
+ $response = wp_remote_get( $url, $params );
648
+
649
+ if ( ! is_wp_error( $response ) && 200 === absint( $response['response']['code'] ) && 'OK' === $response['response']['message'] ) {
650
+ $body = json_decode( $response['body'] );
651
+ $version = $body && is_object( $body ) && property_exists( $body, $prop ) ? $body->{$prop} : false;
652
+ if ( $version ) {
653
+ $tls = str_replace( $string_to_remove, '', $version );
654
+ break;
655
+ }
656
+ }
657
+ }
658
+ $tls = ! ! $tls ? $tls : 'n/a';
659
+
660
+ set_transient( 'yith-plugin-fw-system-status-tls-version', $tls, 300 );
661
+ }
662
+
663
+ return ! ! $tls ? $tls : 'n/a';
664
+ }
665
+
666
+ /**
667
+ * Retrieve the output IP Address.
668
+ *
669
+ * @return string
670
+ * @since 3.5
671
+ */
672
+ public function get_output_ip() {
673
+ $ip = get_transient( 'yith-plugin-fw-system-status-output-ip' );
674
+
675
+ if ( ! $ip && apply_filters( 'yith_system_status_check_ip', true ) ) {
676
+ $url = 'https://ifconfig.co/ip';
677
+ $params = array(
678
+ 'sslverify' => false,
679
+ 'timeout' => 60,
680
+ );
681
+
682
+ $response = wp_remote_get( $url, $params );
683
+
684
+ if ( ! is_wp_error( $response ) && 200 === absint( $response['response']['code'] ) && 'OK' === $response['response']['message'] ) {
685
+ $body = $response['body'];
686
+
687
+ // Check for IPv4.
688
+ preg_match( '/((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])/', $body, $matches );
689
+ // Check for IPv6.
690
+ if ( empty( $matches ) ) {
691
+ preg_match( '/(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/', $body, $matches );
692
+ }
693
+
694
+ $ip = ! empty( $matches ) ? $matches[0] : 'n/a';
695
+ }
696
+
697
+ $ip = ! ! $ip ? $ip : 'n/a';
698
+
699
+ set_transient( 'yith-plugin-fw-system-status-output-ip', $ip, 300 );
700
+ }
701
+
702
+ return ! ! $ip ? $ip : 'n/a';
703
+ }
704
+
705
+ }
706
+ }
707
+
708
+ if ( ! function_exists( 'YITH_System_Status' ) ) {
709
+ /**
710
+ * Single instance of YITH_System_Status
711
+ *
712
+ * @return YITH_System_Status
713
+ * @since 1.0
714
+ * @author Alberto Ruggiero
715
+ */
716
+ function YITH_System_Status() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
717
+ return YITH_System_Status::instance();
718
+ }
719
+ }
720
+
721
+ YITH_System_Status();
plugin-fw/includes/privacy/class-yith-privacy-plugin-abstract.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Privacy Abstract Class
4
+ * abstract class to handle privacy in plugins
5
+ *
6
+ * @class YITH_Privacy_Plugin_Abstract
7
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
8
+ * @package YITH\PluginFramework\Classes
9
+ */
10
+
11
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
12
+
13
+ if ( ! class_exists( 'YITH_Privacy_Plugin_Abstract' ) ) {
14
+ /**
15
+ * Class YITH_Privacy_Plugin_Abstract
16
+ */
17
+ class YITH_Privacy_Plugin_Abstract {
18
+ /**
19
+ * The plugin name.
20
+ *
21
+ * @var string
22
+ */
23
+ private $plugin_name;
24
+
25
+ /**
26
+ * YITH_Privacy_Plugin_Abstract constructor.
27
+ *
28
+ * @param string $plugin_name The plugin name.
29
+ */
30
+ public function __construct( $plugin_name ) {
31
+ $this->plugin_name = $plugin_name;
32
+ $this->init();
33
+ }
34
+
35
+ /**
36
+ * Let's initialize the privacy.
37
+ */
38
+ protected function init() {
39
+ add_filter( 'yith_plugin_fw_privacy_guide_content', array( $this, 'add_message_in_section' ), 10, 2 );
40
+ }
41
+
42
+ /**
43
+ * Add message in a specific section.
44
+ *
45
+ * @param string $html The HTML of the section.
46
+ * @param string $section The section.
47
+ *
48
+ * @return string
49
+ */
50
+ public function add_message_in_section( $html, $section ) {
51
+ $message = $this->get_privacy_message( $section );
52
+ if ( $message ) {
53
+ $html .= "<p class='privacy-policy-tutorial'><strong>{$this->plugin_name}</strong></p>";
54
+ $html .= $message;
55
+ }
56
+
57
+ return $html;
58
+ }
59
+
60
+ /**
61
+ * Retrieve the privacy message.
62
+ * Override me to customize the messages for each section.
63
+ *
64
+ * @param string $section The section.
65
+ *
66
+ * @return string
67
+ */
68
+ public function get_privacy_message( $section ) {
69
+ return '';
70
+ }
71
+ }
72
+ }
plugin-fw/includes/privacy/class-yith-privacy.php ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH Privacy Class
4
+ * handle privacy for GDPR
5
+ *
6
+ * @class YITH_Privacy
7
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
8
+ * @package YITH\PluginFramework\Classes
9
+ */
10
+
11
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
12
+
13
+ if ( ! class_exists( 'YITH_Privacy' ) ) {
14
+ /**
15
+ * Class YITH_Privacy
16
+ */
17
+ class YITH_Privacy {
18
+
19
+ /**
20
+ * The single instance of the class.
21
+ *
22
+ * @var YITH_Privacy
23
+ */
24
+ private static $instance;
25
+
26
+ /**
27
+ * Singleton implementation.
28
+ *
29
+ * @return YITH_Privacy
30
+ */
31
+ public static function instance() {
32
+ return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
33
+ }
34
+
35
+ /**
36
+ * Deprecated singleton implementation.
37
+ * Kept for backward compatibility.
38
+ *
39
+ * @return YITH_Privacy
40
+ * @deprecated 3.5 | use YITH_Privacy::get_instance() instead.
41
+ */
42
+ public static function get_instance() {
43
+ return self::instance();
44
+ }
45
+
46
+ /**
47
+ * YITH_Privacy constructor.
48
+ */
49
+ private function __construct() {
50
+ add_action( 'admin_init', array( $this, 'add_privacy_message' ) );
51
+ }
52
+
53
+ /**
54
+ * Adds the privacy message on YITH privacy page.
55
+ */
56
+ public function add_privacy_message() {
57
+ if ( function_exists( 'wp_add_privacy_policy_content' ) ) {
58
+ $content = $this->get_privacy_message();
59
+
60
+ if ( $content ) {
61
+ $title = apply_filters( 'yith_plugin_fw_privacy_policy_guide_title', _x( 'YITH Plugins', 'Privacy Policy Guide Title', 'yith-plugin-fw' ) );
62
+ wp_add_privacy_policy_content( $title, $content );
63
+ }
64
+ }
65
+ }
66
+
67
+ /**
68
+ * Get the privacy message.
69
+ *
70
+ * @return string
71
+ */
72
+ public function get_privacy_message() {
73
+ $privacy_content_path = YIT_CORE_PLUGIN_TEMPLATE_PATH . '/privacy/html-policy-content.php';
74
+ ob_start();
75
+ $sections = $this->get_sections();
76
+ if ( file_exists( $privacy_content_path ) ) {
77
+ include $privacy_content_path;
78
+ }
79
+
80
+ return apply_filters( 'yith_plugin_fw_privacy_policy_content', ob_get_clean() );
81
+ }
82
+
83
+ /**
84
+ * Get the sections.
85
+ *
86
+ * @return array
87
+ */
88
+ public function get_sections() {
89
+ return apply_filters(
90
+ 'yith_plugin_fw_privacy_policy_content_sections',
91
+ array(
92
+ 'general' => array(
93
+ 'tutorial' => _x( 'This sample language includes the basics around what personal data your store may be collecting, storing and sharing, as well as who may have access to that data. Depending on what settings are enabled and which additional plugins are used, the specific information shared by your store will vary. We recommend consulting with a lawyer when deciding what information to disclose on your privacy policy.', 'Privacy Policy Content', 'yith-plugin-fw' ),
94
+ 'description' => '',
95
+ ),
96
+ 'collect_and_store' => array(
97
+ 'title' => _x( 'What we collect and store', 'Privacy Policy Content', 'yith-plugin-fw' ),
98
+ ),
99
+ 'has_access' => array(
100
+ 'title' => _x( 'Who on our team has access', 'Privacy Policy Content', 'yith-plugin-fw' ),
101
+ ),
102
+ 'share' => array(
103
+ 'title' => _x( 'What we share with others', 'Privacy Policy Content', 'yith-plugin-fw' ),
104
+ ),
105
+ 'payments' => array(
106
+ 'title' => _x( 'Payments', 'Privacy Policy Content', 'yith-plugin-fw' ),
107
+ ),
108
+ )
109
+ );
110
+ }
111
+ }
112
+ }
113
+
114
+ YITH_Privacy::instance();
plugin-fw/{lib/promo/black.jpg → includes/pro} RENAMED
File without changes