Version Description
- NEW: Ensure chatbox header is allways visible on mobile with better height control
- NEW: WooCommerce, use custom Join.chat settings on shop page for all shop catalog pages
Download this release
Release Info
Developer | creapuntome |
Plugin | WhatsApp me |
Version | 4.1.3 |
Comparing to | |
See all releases |
Code changes from version 4.1.2 to 4.1.3
- README.txt +9 -2
- includes/class-joinchat-loader.php +4 -4
- joinchat.php +2 -3
- public/class-joinchat-public.php +3 -9
- public/class-joinchat-woopublic.php +16 -3
- public/css/joinchat.css +5 -4
- public/css/joinchat.min.css +1 -1
- public/js/joinchat.js +9 -3
- public/js/joinchat.min.js +1 -1
README.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: whatsapp business, whatsapp, click to chat, button, whatsapp support chat,
|
|
5 |
Requires at least: 3.0.1
|
6 |
Tested up to: 5.5
|
7 |
Requires PHP: 5.3
|
8 |
-
Stable tag: 4.1.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -175,11 +175,14 @@ Join.chat send a custom event if Facebook Pixel is detected when user click to l
|
|
175 |
|
176 |
There is a Javascript event that Join.chat triggers automatically before launch WhatsApp, which can be used to add your custom tracking code (or other needs).
|
177 |
|
178 |
-
`jQuery(
|
179 |
$(document).on('joinchat:open', function (event, args, settings) {
|
180 |
// Your staff
|
181 |
// Note: args.link is the link to open, you can change it
|
182 |
// but only wa.me, whastapp.com or current domain are allowed.
|
|
|
|
|
|
|
183 |
});
|
184 |
});`
|
185 |
|
@@ -194,6 +197,10 @@ There is a Javascript event that Join.chat triggers automatically before launch
|
|
194 |
|
195 |
== Changelog ==
|
196 |
|
|
|
|
|
|
|
|
|
197 |
= 4.1.2 =
|
198 |
* SECURE window.open with 'noopener'
|
199 |
* FIX PHP error undefined get_col_charset() on old WordPress versions
|
5 |
Requires at least: 3.0.1
|
6 |
Tested up to: 5.5
|
7 |
Requires PHP: 5.3
|
8 |
+
Stable tag: 4.1.3
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
175 |
|
176 |
There is a Javascript event that Join.chat triggers automatically before launch WhatsApp, which can be used to add your custom tracking code (or other needs).
|
177 |
|
178 |
+
`jQuery(function($){
|
179 |
$(document).on('joinchat:open', function (event, args, settings) {
|
180 |
// Your staff
|
181 |
// Note: args.link is the link to open, you can change it
|
182 |
// but only wa.me, whastapp.com or current domain are allowed.
|
183 |
+
|
184 |
+
// e.g.: Google Ads conversion
|
185 |
+
gtag_report_conversion();
|
186 |
});
|
187 |
});`
|
188 |
|
197 |
|
198 |
== Changelog ==
|
199 |
|
200 |
+
= 4.1.3 =
|
201 |
+
* **NEW:** Ensure chatbox header is allways visible on mobile with better height control
|
202 |
+
* **NEW:** WooCommerce, use custom Join.chat settings on shop page for all shop catalog pages
|
203 |
+
|
204 |
= 4.1.2 =
|
205 |
* SECURE window.open with 'noopener'
|
206 |
* FIX PHP error undefined get_col_charset() on old WordPress versions
|
includes/class-joinchat-loader.php
CHANGED
@@ -108,9 +108,9 @@ class JoinChatLoader {
|
|
108 |
* @param string $hook Optional. The name of the WordPress action that is being removed.
|
109 |
* @param object $component Optional. A reference to the instance or name of the object on which the action is defined.
|
110 |
* @param string $callback Optional. The name of the function definition on the $component.
|
111 |
-
* @param int $priority Optional. The priority at which the function should be fired.
|
112 |
*/
|
113 |
-
public function remove_action( $hook = null, $component = null, $callback = null, $priority =
|
114 |
$this->actions = $this->remove( $this->actions, $hook, $component, $callback, $priority );
|
115 |
}
|
116 |
|
@@ -122,9 +122,9 @@ class JoinChatLoader {
|
|
122 |
* @param string $hook Optional. The name of the WordPress filter that is being removed.
|
123 |
* @param object $component Optional. A reference to the instance or name of the object on which the filter is defined.
|
124 |
* @param string $callback Optional. The name of the function definition on the $component.
|
125 |
-
* @param int $priority Optional. The priority at which the function should be fired.
|
126 |
*/
|
127 |
-
public function remove_filter( $hook = null, $component = null, $callback = null, $priority =
|
128 |
$this->filters = $this->remove( $this->filters, $hook, $component, $callback, $priority );
|
129 |
}
|
130 |
|
108 |
* @param string $hook Optional. The name of the WordPress action that is being removed.
|
109 |
* @param object $component Optional. A reference to the instance or name of the object on which the action is defined.
|
110 |
* @param string $callback Optional. The name of the function definition on the $component.
|
111 |
+
* @param int $priority Optional. The priority at which the function should be fired.
|
112 |
*/
|
113 |
+
public function remove_action( $hook = null, $component = null, $callback = null, $priority = null ) {
|
114 |
$this->actions = $this->remove( $this->actions, $hook, $component, $callback, $priority );
|
115 |
}
|
116 |
|
122 |
* @param string $hook Optional. The name of the WordPress filter that is being removed.
|
123 |
* @param object $component Optional. A reference to the instance or name of the object on which the filter is defined.
|
124 |
* @param string $callback Optional. The name of the function definition on the $component.
|
125 |
+
* @param int $priority Optional. The priority at which the function should be fired.
|
126 |
*/
|
127 |
+
public function remove_filter( $hook = null, $component = null, $callback = null, $priority = null ) {
|
128 |
$this->filters = $this->remove( $this->filters, $hook, $component, $callback, $priority );
|
129 |
}
|
130 |
|
joinchat.php
CHANGED
@@ -9,7 +9,7 @@
|
|
9 |
* Plugin Name: Join.chat
|
10 |
* Plugin URI: https://join.chat
|
11 |
* Description: Connects a WordPress chat with WhatsApp. The best solution for marketing and support. Stop losing customers and increase your sales.
|
12 |
-
* Version: 4.1.
|
13 |
* Author: Creame
|
14 |
* Author URI: https://crea.me
|
15 |
* License: GPL-2.0+
|
@@ -25,9 +25,8 @@ if ( ! defined( 'WPINC' ) ) {
|
|
25 |
|
26 |
/**
|
27 |
* Currently plugin version.
|
28 |
-
* Start at version 1.0.0 and use SemVer - https://semver.org
|
29 |
*/
|
30 |
-
define( 'JOINCHAT_VERSION', '4.1.
|
31 |
|
32 |
/**
|
33 |
* The core plugin class that is used to define internationalization,
|
9 |
* Plugin Name: Join.chat
|
10 |
* Plugin URI: https://join.chat
|
11 |
* Description: Connects a WordPress chat with WhatsApp. The best solution for marketing and support. Stop losing customers and increase your sales.
|
12 |
+
* Version: 4.1.3
|
13 |
* Author: Creame
|
14 |
* Author URI: https://crea.me
|
15 |
* License: GPL-2.0+
|
25 |
|
26 |
/**
|
27 |
* Currently plugin version.
|
|
|
28 |
*/
|
29 |
+
define( 'JOINCHAT_VERSION', '4.1.3' );
|
30 |
|
31 |
/**
|
32 |
* The core plugin class that is used to define internationalization,
|
public/class-joinchat-public.php
CHANGED
@@ -147,8 +147,8 @@ class JoinChatPublic {
|
|
147 |
$settings = array_merge( $settings, $post_settings );
|
148 |
|
149 |
// Allow override general settings with empty string with "{}"
|
150 |
-
$settings['message_text'] =
|
151 |
-
$settings['message_send'] =
|
152 |
}
|
153 |
|
154 |
// Prepare settings
|
@@ -162,13 +162,7 @@ class JoinChatPublic {
|
|
162 |
|
163 |
// Only show if there is a phone number
|
164 |
if ( '' != $settings['telephone'] ) {
|
165 |
-
|
166 |
-
$show = true;
|
167 |
-
} elseif ( isset( $settings['view'] ) && 'no' == $settings['view'] ) {
|
168 |
-
$show = false;
|
169 |
-
} else {
|
170 |
-
$show = $this->check_visibility( $settings['visibility'] );
|
171 |
-
}
|
172 |
}
|
173 |
// Unset post 'view' setting
|
174 |
unset( $settings['view'] );
|
147 |
$settings = array_merge( $settings, $post_settings );
|
148 |
|
149 |
// Allow override general settings with empty string with "{}"
|
150 |
+
$settings['message_text'] = preg_replace( '/^\{\s*\}$/', '', $settings['message_text'] );
|
151 |
+
$settings['message_send'] = preg_replace( '/^\{\s*\}$/', '', $settings['message_send'] );
|
152 |
}
|
153 |
|
154 |
// Prepare settings
|
162 |
|
163 |
// Only show if there is a phone number
|
164 |
if ( '' != $settings['telephone'] ) {
|
165 |
+
$show = isset( $settings['view'] ) ? 'yes' == $settings['view'] : $this->check_visibility( $settings['visibility'] );
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
}
|
167 |
// Unset post 'view' setting
|
168 |
unset( $settings['view'] );
|
public/class-joinchat-woopublic.php
CHANGED
@@ -23,7 +23,7 @@ class JoinChatWooPublic {
|
|
23 |
|
24 |
$loader->add_filter( 'joinchat_extra_settings', $this, 'woo_settings' );
|
25 |
$loader->add_filter( 'joinchat_settings_i18n', $this, 'settings_i18n' );
|
26 |
-
$loader->add_filter( 'joinchat_get_settings_site', $this, '
|
27 |
$loader->add_filter( 'joinchat_visibility', $this, 'visibility', 10, 2 );
|
28 |
$loader->add_filter( 'joinchat_variable_replacements', $this, 'replacements' );
|
29 |
$loader->add_filter( 'joinchat_excluded_fields', $this, 'excluded_fields' );
|
@@ -68,12 +68,13 @@ class JoinChatWooPublic {
|
|
68 |
* Replace general site CTA and send messages with the product ones
|
69 |
*
|
70 |
* @since 3.0.0
|
|
|
71 |
* @param array $settings current site settings.
|
72 |
* @return array
|
73 |
*/
|
74 |
-
public function
|
75 |
|
76 |
-
//
|
77 |
if ( is_product() ) {
|
78 |
$product = wc_get_product();
|
79 |
|
@@ -84,6 +85,18 @@ class JoinChatWooPublic {
|
|
84 |
}
|
85 |
$settings['message_send'] = $settings['message_send_product'] ?: $settings['message_send'];
|
86 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
|
88 |
return $settings;
|
89 |
}
|
23 |
|
24 |
$loader->add_filter( 'joinchat_extra_settings', $this, 'woo_settings' );
|
25 |
$loader->add_filter( 'joinchat_settings_i18n', $this, 'settings_i18n' );
|
26 |
+
$loader->add_filter( 'joinchat_get_settings_site', $this, 'shop_settings' );
|
27 |
$loader->add_filter( 'joinchat_visibility', $this, 'visibility', 10, 2 );
|
28 |
$loader->add_filter( 'joinchat_variable_replacements', $this, 'replacements' );
|
29 |
$loader->add_filter( 'joinchat_excluded_fields', $this, 'excluded_fields' );
|
68 |
* Replace general site CTA and send messages with the product ones
|
69 |
*
|
70 |
* @since 3.0.0
|
71 |
+
* @since 4.1.3 renamed from product_settings() to shop_settings()
|
72 |
* @param array $settings current site settings.
|
73 |
* @return array
|
74 |
*/
|
75 |
+
public function shop_settings( $settings ) {
|
76 |
|
77 |
+
// Applies to product pages
|
78 |
if ( is_product() ) {
|
79 |
$product = wc_get_product();
|
80 |
|
85 |
}
|
86 |
$settings['message_send'] = $settings['message_send_product'] ?: $settings['message_send'];
|
87 |
}
|
88 |
+
// Applies to shop catalog pages
|
89 |
+
elseif ( is_woocommerce() ) {
|
90 |
+
$shop_settings = get_post_meta( wc_get_page_id( 'shop' ), '_joinchat', true );
|
91 |
+
|
92 |
+
if ( is_array( $shop_settings ) ) {
|
93 |
+
$settings = array_merge( $settings, $shop_settings );
|
94 |
+
|
95 |
+
// Allow override general settings with empty string with "{}"
|
96 |
+
$settings['message_text'] = preg_replace( '/^\{\s*\}$/', '', $settings['message_text'] );
|
97 |
+
$settings['message_send'] = preg_replace( '/^\{\s*\}$/', '', $settings['message_send'] );
|
98 |
+
}
|
99 |
+
}
|
100 |
|
101 |
return $settings;
|
102 |
}
|
public/css/joinchat.css
CHANGED
@@ -3,6 +3,7 @@
|
|
3 |
--sep: 20px;
|
4 |
--header: 70px;
|
5 |
--btn: 60px;
|
|
|
6 |
--red: 37;
|
7 |
--green: 211;
|
8 |
--blue: 102;
|
@@ -323,7 +324,7 @@
|
|
323 |
width: calc(100vw - var(--sep)*2);
|
324 |
max-width: 400px;
|
325 |
min-height: 170px;
|
326 |
-
max-height: calc(
|
327 |
border-radius: 32px;
|
328 |
background: transparent;
|
329 |
box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.5);
|
@@ -331,13 +332,13 @@
|
|
331 |
overflow: hidden;
|
332 |
transform: scale3d(0, 0, 0);
|
333 |
opacity: 0;
|
334 |
-
transition: opacity
|
335 |
}
|
336 |
|
337 |
.joinchat--chatbox .joinchat__box {
|
338 |
opacity: 1;
|
339 |
transform: scale3d(1, 1, 1);
|
340 |
-
transition: opacity
|
341 |
}
|
342 |
|
343 |
.joinchat--left .joinchat__box {
|
@@ -417,7 +418,7 @@
|
|
417 |
background: rgba(0, 0, 0, 0.4) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M24 2.4L21.6 0 12 9.6 2.4 0 0 2.4 9.6 12 0 21.6 2.4 24l9.6-9.6 9.6 9.6 2.4-2.4-9.6-9.6L24 2.4z'/%3E%3C/svg%3E") center no-repeat;
|
418 |
background-size: 12px;
|
419 |
cursor: pointer;
|
420 |
-
transition: background-color
|
421 |
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
422 |
}
|
423 |
|
3 |
--sep: 20px;
|
4 |
--header: 70px;
|
5 |
--btn: 60px;
|
6 |
+
--vh: 100vh;
|
7 |
--red: 37;
|
8 |
--green: 211;
|
9 |
--blue: 102;
|
324 |
width: calc(100vw - var(--sep)*2);
|
325 |
max-width: 400px;
|
326 |
min-height: 170px;
|
327 |
+
max-height: calc(var(--vh) - var(--bottom) - var(--sep));
|
328 |
border-radius: 32px;
|
329 |
background: transparent;
|
330 |
box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.5);
|
332 |
overflow: hidden;
|
333 |
transform: scale3d(0, 0, 0);
|
334 |
opacity: 0;
|
335 |
+
transition: max-height 0.2s ease-out, opacity 0.4s ease-out, transform 0s linear 0.3s;
|
336 |
}
|
337 |
|
338 |
.joinchat--chatbox .joinchat__box {
|
339 |
opacity: 1;
|
340 |
transform: scale3d(1, 1, 1);
|
341 |
+
transition: max-height 0.2s ease-out, opacity 0.2s ease-out, transform 0s linear;
|
342 |
}
|
343 |
|
344 |
.joinchat--left .joinchat__box {
|
418 |
background: rgba(0, 0, 0, 0.4) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M24 2.4L21.6 0 12 9.6 2.4 0 0 2.4 9.6 12 0 21.6 2.4 24l9.6-9.6 9.6 9.6 2.4-2.4-9.6-9.6L24 2.4z'/%3E%3C/svg%3E") center no-repeat;
|
419 |
background-size: 12px;
|
420 |
cursor: pointer;
|
421 |
+
transition: background-color 0.3s ease-out;
|
422 |
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
423 |
}
|
424 |
|
public/css/joinchat.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.joinchat{--bottom:20px;--sep:20px;--header:70px;--btn:60px;--red:37;--green:211;--blue:102;--rgb:var(--red),var(--green),var(--blue);--color:rgb(var(--rgb));--dark:rgb(calc(var(--red) - 75),calc(var(--green) - 75),calc(var(--blue) - 75));--hover:rgb(calc(var(--red) + 50),calc(var(--green) + 50),calc(var(--blue) + 50));--bg:rgba(var(--rgb),0.04);--tolerance:210;--bw:calc((var(--red)*0.2126 + var(--green)*0.7152 + var(--blue)*0.0722 - var(--tolerance))*-100000);--text:rgba(var(--bw),var(--bw),var(--bw),min(1,max(0.7,var(--bw))));--msg:var(--color);position:fixed;z-index:1000;right:var(--sep);bottom:var(--bottom);color:var(--text);font:normal normal normal 16px/1.625em -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;letter-spacing:0;transform:scale3d(0,0,0);transition:transform .3s ease-in-out;-webkit-user-select:none;-ms-user-select:none;user-select:none;-webkit-font-smoothing:antialiased}.joinchat *,.joinchat :after,.joinchat :before{box-sizing:border-box}.joinchat--show{transform:scaleX(1);transition:transform .5s cubic-bezier(.18,.89,.32,1.28)}.joinchat.joinchat--left{right:auto;left:var(--sep)}@media (max-width:480px),(orientation:landscape) and (max-width:767px){.joinchat{--bottom:6px;--sep:6px;--header:55px}}.joinchat.joinchat--dark{--msg:var(--dark)}@media (color-index:48){.joinchat.joinchat--dark-auto{--msg:var(--dark)}}@media (prefers-color-scheme:dark){.joinchat.joinchat--dark-auto{--msg:var(--dark)}}.joinchat__button{display:flex;flex-direction:row;position:absolute;z-index:2;bottom:8px;right:8px;height:var(--btn);min-width:var(--btn);max-width:95vw;background:#25d366;color:inherit;border-radius:calc(var(--btn)/2);box-shadow:1px 6px 24px 0 rgba(7,94,84,.24);cursor:pointer;transition:background .2s linear;-webkit-tap-highlight-color:rgba(0,0,0,0);will-change:background-color,width}.joinchat__button:hover{background:#128c7e;transition:background 1.5s linear}.joinchat__button:active{background:#128c7e;transition:none}.joinchat--chatbox .joinchat__button{background:var(--color);transition:background .2s linear;box-shadow:0 1px 2px 0 rgba(0,0,0,.3)}.joinchat--chatbox .joinchat__button:active,.joinchat--chatbox .joinchat__button:hover{background:var(--hover)}[dir=rtl] .joinchat__button{flex-direction:row-reverse}.joinchat--left .joinchat__button{right:auto;left:8px;flex-direction:row-reverse}[dir=rtl] .joinchat--left .joinchat__button{flex-direction:row}.joinchat__button__open{width:var(--btn);height:var(--btn);background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M3.516 3.516c4.686-4.686 12.284-4.686 16.97 0 4.686 4.686 4.686 12.283 0 16.97a12.004 12.004 0 01-13.754 2.299l-5.814.735a.392.392 0 01-.438-.44l.748-5.788A12.002 12.002 0 013.517 3.517zm3.61 17.043l.3.158a9.846 9.846 0 0011.534-1.758c3.843-3.843 3.843-10.074 0-13.918-3.843-3.843-10.075-3.843-13.918 0a9.846 9.846 0 00-1.747 11.554l.16.303-.51 3.942a.196.196 0 00.219.22l3.961-.501zm6.534-7.003l-.933 1.164a9.843 9.843 0 01-3.497-3.495l1.166-.933a.792.792 0 00.23-.94L9.561 6.96a.793.793 0 00-.924-.445 1291.6 1291.6 0 00-2.023.524.797.797 0 00-.588.88 11.754 11.754 0 0010.005 10.005.797.797 0 00.88-.587l.525-2.023a.793.793 0 00-.445-.923L14.6 13.327a.792.792 0 00-.94.23z'/%3E%3C/svg%3E") 50% no-repeat;background-size:60%}.joinchat--chatbox .joinchat__button__open{display:none}.joinchat__button__image{position:absolute;top:1px;right:1px;width:calc(var(--btn) - 2px);height:calc(var(--btn) - 2px);border-radius:50%;overflow:hidden;opacity:0}.joinchat__button__image img{display:block;width:100%;height:100%;object-fit:cover}.joinchat--show .joinchat__button__image{animation:joinchat_image_loop 20s linear 5s infinite normal both}.joinchat--image .joinchat__button__image{opacity:1;animation:none}.joinchat--chatbox .joinchat__button__image{display:none}.joinchat__button__send{display:none;width:var(--btn);height:var(--btn);max-width:var(--btn);padding:12px 11px 12px 13px;margin:0;flex-shrink:0}.joinchat--chatbox .joinchat__button__send{display:block}.joinchat__button__send path{fill:none!important;stroke:var(--text)!important}.joinchat__button__send .joinchat_svg__plain{stroke-dasharray:1097;stroke-dashoffset:1097;animation:joinchat_plain 6s .2s ease-in-out infinite}.joinchat__button__send .joinchat_svg__chat{stroke-dasharray:1020;stroke-dashoffset:1020;animation:joinchat_chat 6s 3.2s ease-in-out infinite}.joinchat__button__sendtext{padding:0;max-width:0;font-weight:600;line-height:var(--btn);white-space:nowrap;opacity:0;overflow:hidden;transition:none}.joinchat--chatbox .joinchat__button__sendtext{padding:0 4px 0 24px;max-width:200px;opacity:1;transition:max-width .2s linear,opacity .4s ease-out .2s}.joinchat--chatbox.joinchat--left .joinchat__button__sendtext{padding:0 24px 0 4px}.joinchat__badge{position:absolute;top:-4px;right:-4px;width:20px;height:20px;border:none;border-radius:50%;background:#e82c0c;color:#fff;font-size:12px;font-weight:600;line-height:20px;text-align:center;box-shadow:none;opacity:0;pointer-events:none}.joinchat__badge.joinchat__badge--in{animation:joinchat_badge_in .5s cubic-bezier(.27,.9,.41,1.28) 1 both}.joinchat__badge.joinchat__badge--out{animation:joinchat_badge_out .4s cubic-bezier(.215,.61,.355,1) 1 both}.joinchat__tooltip{position:absolute;top:14px;right:76px;max-width:calc(100vw - 105px);height:32px;padding:0 14px;border:none;border-radius:16px;background:#fff;color:rgba(0,0,0,.8);line-height:31px;white-space:nowrap;opacity:0;transition:opacity .3s ease-out .4s;filter:drop-shadow(0 1px 4px rgba(0,0,0,.4));transform:translateZ(0);pointer-events:none}.joinchat__tooltip:after{content:"";display:block;position:absolute;top:10px;right:-6px;border:8px solid transparent;border-width:6px 0 6px 8px;border-left-color:#fff}.joinchat__tooltip div{overflow:hidden;text-overflow:ellipsis}.joinchat--tooltip .joinchat__tooltip{animation:joinchat_tootlip 20s linear 5s 1 normal both}@media (hover:hover){.joinchat__button:hover .joinchat__tooltip{opacity:1;animation:none;transition:opacity .2s}}.joinchat--chatbox .joinchat__tooltip{display:none}.joinchat--left .joinchat__tooltip{right:auto;left:76px}.joinchat--left .joinchat__tooltip:after{left:-6px;right:auto;border-color:transparent;border-width:6px 8px 6px 0;border-right-color:#fff}.joinchat__box{display:flex;flex-direction:column;position:absolute;bottom:0;right:0;z-index:1;width:calc(100vw - var(--sep)*2);max-width:400px;min-height:170px;max-height:calc(100vh - var(--bottom) - var(--sep));border-radius:32px;background:transparent;box-shadow:0 2px 6px 0 rgba(0,0,0,.5);text-align:left;overflow:hidden;transform:scale3d(0,0,0);opacity:0;transition:opacity .4s ease-out,transform 0ms linear .3s}.joinchat--chatbox .joinchat__box{opacity:1;transform:scaleX(1);transition:opacity .2s ease-out,transform 0ms linear}.joinchat--left .joinchat__box{right:auto;left:0}.joinchat__header{display:flex;flex-flow:row;align-items:center;position:relative;flex-shrink:0;height:var(--header);padding:0 70px 0 26px;margin:0;background:var(--color);text-align:left}[dir=rtl] .joinchat__header{text-align:right}.joinchat--dark .joinchat__header{background:var(--dark)}.joinchat__header__text{font-size:19px;font-weight:600;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.8}.joinchat__powered{font-size:11px;line-height:18px;color:inherit!important;text-decoration:none!important;fill:currentColor;opacity:.8}.joinchat__powered svg{display:inline-block;width:auto;height:18px;vertical-align:-30%}.joinchat__powered:active,.joinchat__powered:hover{color:inherit!important;text-decoration:none!important;opacity:.9}.joinchat__wa{height:28px;width:auto;fill:currentColor;opacity:.8}.joinchat__close{position:absolute;top:50%;right:24px;width:34px;height:34px;margin-top:-16px;border-radius:50%;background:rgba(0,0,0,.4) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M24 2.4L21.6 0 12 9.6 2.4 0 0 2.4 9.6 12 0 21.6 2.4 24l9.6-9.6 9.6 9.6 2.4-2.4-9.6-9.6L24 2.4z'/%3E%3C/svg%3E") 50% no-repeat;background-size:12px;cursor:pointer;transition:background-color .3s ease-out;-webkit-tap-highlight-color:rgba(0,0,0,0)}.joinchat__close:hover{background-color:rgba(0,0,0,.6)}[dir=rtl] .joinchat__close{right:auto;left:24px}.joinchat__box__scroll{padding:20px 0 70px;padding-bottom:calc(var(--btn) + 10px);background:#fff linear-gradient(0deg,var(--bg),var(--bg));overflow-x:hidden;overflow-y:auto;will-change:scroll-position}.joinchat__box__scroll::-webkit-scrollbar{width:5px;background:transparent}.joinchat__box__scroll::-webkit-scrollbar-thumb{border-radius:3px;background:transparent}.joinchat__box__scroll:hover::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2)}.joinchat--blur .joinchat__box__scroll{background:rgba(var(--rgb),.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.joinchat--dark .joinchat__box__scroll{background:#1a1a1a}@supports (-webkit-overflow-scrolling:touch){.joinchat__box__scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}}@media (max-width:480px),(orientation:landscape) and (max-width:767px){.joinchat__header__text{font-size:17px}.joinchat__close{margin-top:-14px;width:28px;height:28px}.joinchat__box__scroll{padding-top:15px}}@media (color-index:48){.joinchat--dark-auto .joinchat__box__scroll{background:#1a1a1a}.joinchat--dark-auto .joinchat__header{background:var(--dark)}}@media (prefers-color-scheme:dark){.joinchat--dark-auto .joinchat__box__scroll{background:#1a1a1a}.joinchat--dark-auto .joinchat__header{background:var(--dark)}}.joinchat__message{position:relative;min-height:60px;padding:17px 20px;margin:0 26px 26px;border-radius:32px;background:#fff;color:#4a4a4a;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3));transform:translateZ(0)}.joinchat__message:before{content:"";display:block;position:absolute;bottom:20px;left:-15px;width:17px;height:25px;background:inherit;-webkit-clip-path:url(#joinchat__message__peak);clip-path:url(#joinchat__message__peak)}.joinchat--dark .joinchat__message{background:#505050;color:#d8d8d8}@media (color-index:48){.joinchat--dark-auto .joinchat__message{background:#505050;color:#d8d8d8}}@media (prefers-color-scheme:dark){.joinchat--dark-auto .joinchat__message{background:#505050;color:#d8d8d8}}@media (max-width:480px),(orientation:landscape) and (max-width:767px){.joinchat__message{padding:18px 16px;line-height:24px;margin:0 20px 20px}}@keyframes joinchat_badge_in{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes joinchat_badge_out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes joinchat_plain{0%,50%,to{stroke-dashoffset:1097}5%,45%{stroke-dashoffset:0}}@keyframes joinchat_chat{0%,50%,to{stroke-dashoffset:1020}5%,45%{stroke-dashoffset:0}}@keyframes joinchat_image_loop{0%{opacity:0}3%,20%{opacity:1}25%,to{opacity:0}}@keyframes joinchat_tootlip{0%{opacity:0;transform:scaleY(0)}1%,20%{opacity:1;transform:scaleY(1)}25%,to{opacity:0;transform:scaleY(1)}}
|
1 |
+
.joinchat{--bottom:20px;--sep:20px;--header:70px;--btn:60px;--vh:100vh;--red:37;--green:211;--blue:102;--rgb:var(--red),var(--green),var(--blue);--color:rgb(var(--rgb));--dark:rgb(calc(var(--red) - 75),calc(var(--green) - 75),calc(var(--blue) - 75));--hover:rgb(calc(var(--red) + 50),calc(var(--green) + 50),calc(var(--blue) + 50));--bg:rgba(var(--rgb),0.04);--tolerance:210;--bw:calc((var(--red)*0.2126 + var(--green)*0.7152 + var(--blue)*0.0722 - var(--tolerance))*-100000);--text:rgba(var(--bw),var(--bw),var(--bw),min(1,max(0.7,var(--bw))));--msg:var(--color);position:fixed;z-index:1000;right:var(--sep);bottom:var(--bottom);color:var(--text);font:normal normal normal 16px/1.625em -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;letter-spacing:0;transform:scale3d(0,0,0);transition:transform .3s ease-in-out;-webkit-user-select:none;-ms-user-select:none;user-select:none;-webkit-font-smoothing:antialiased}.joinchat *,.joinchat :after,.joinchat :before{box-sizing:border-box}.joinchat--show{transform:scaleX(1);transition:transform .5s cubic-bezier(.18,.89,.32,1.28)}.joinchat.joinchat--left{right:auto;left:var(--sep)}@media (max-width:480px),(orientation:landscape) and (max-width:767px){.joinchat{--bottom:6px;--sep:6px;--header:55px}}.joinchat.joinchat--dark{--msg:var(--dark)}@media (color-index:48){.joinchat.joinchat--dark-auto{--msg:var(--dark)}}@media (prefers-color-scheme:dark){.joinchat.joinchat--dark-auto{--msg:var(--dark)}}.joinchat__button{display:flex;flex-direction:row;position:absolute;z-index:2;bottom:8px;right:8px;height:var(--btn);min-width:var(--btn);max-width:95vw;background:#25d366;color:inherit;border-radius:calc(var(--btn)/2);box-shadow:1px 6px 24px 0 rgba(7,94,84,.24);cursor:pointer;transition:background .2s linear;-webkit-tap-highlight-color:rgba(0,0,0,0);will-change:background-color,width}.joinchat__button:hover{background:#128c7e;transition:background 1.5s linear}.joinchat__button:active{background:#128c7e;transition:none}.joinchat--chatbox .joinchat__button{background:var(--color);transition:background .2s linear;box-shadow:0 1px 2px 0 rgba(0,0,0,.3)}.joinchat--chatbox .joinchat__button:active,.joinchat--chatbox .joinchat__button:hover{background:var(--hover)}[dir=rtl] .joinchat__button{flex-direction:row-reverse}.joinchat--left .joinchat__button{right:auto;left:8px;flex-direction:row-reverse}[dir=rtl] .joinchat--left .joinchat__button{flex-direction:row}.joinchat__button__open{width:var(--btn);height:var(--btn);background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M3.516 3.516c4.686-4.686 12.284-4.686 16.97 0 4.686 4.686 4.686 12.283 0 16.97a12.004 12.004 0 01-13.754 2.299l-5.814.735a.392.392 0 01-.438-.44l.748-5.788A12.002 12.002 0 013.517 3.517zm3.61 17.043l.3.158a9.846 9.846 0 0011.534-1.758c3.843-3.843 3.843-10.074 0-13.918-3.843-3.843-10.075-3.843-13.918 0a9.846 9.846 0 00-1.747 11.554l.16.303-.51 3.942a.196.196 0 00.219.22l3.961-.501zm6.534-7.003l-.933 1.164a9.843 9.843 0 01-3.497-3.495l1.166-.933a.792.792 0 00.23-.94L9.561 6.96a.793.793 0 00-.924-.445 1291.6 1291.6 0 00-2.023.524.797.797 0 00-.588.88 11.754 11.754 0 0010.005 10.005.797.797 0 00.88-.587l.525-2.023a.793.793 0 00-.445-.923L14.6 13.327a.792.792 0 00-.94.23z'/%3E%3C/svg%3E") 50% no-repeat;background-size:60%}.joinchat--chatbox .joinchat__button__open{display:none}.joinchat__button__image{position:absolute;top:1px;right:1px;width:calc(var(--btn) - 2px);height:calc(var(--btn) - 2px);border-radius:50%;overflow:hidden;opacity:0}.joinchat__button__image img{display:block;width:100%;height:100%;object-fit:cover}.joinchat--show .joinchat__button__image{animation:joinchat_image_loop 20s linear 5s infinite normal both}.joinchat--image .joinchat__button__image{opacity:1;animation:none}.joinchat--chatbox .joinchat__button__image{display:none}.joinchat__button__send{display:none;width:var(--btn);height:var(--btn);max-width:var(--btn);padding:12px 11px 12px 13px;margin:0;flex-shrink:0}.joinchat--chatbox .joinchat__button__send{display:block}.joinchat__button__send path{fill:none!important;stroke:var(--text)!important}.joinchat__button__send .joinchat_svg__plain{stroke-dasharray:1097;stroke-dashoffset:1097;animation:joinchat_plain 6s .2s ease-in-out infinite}.joinchat__button__send .joinchat_svg__chat{stroke-dasharray:1020;stroke-dashoffset:1020;animation:joinchat_chat 6s 3.2s ease-in-out infinite}.joinchat__button__sendtext{padding:0;max-width:0;font-weight:600;line-height:var(--btn);white-space:nowrap;opacity:0;overflow:hidden;transition:none}.joinchat--chatbox .joinchat__button__sendtext{padding:0 4px 0 24px;max-width:200px;opacity:1;transition:max-width .2s linear,opacity .4s ease-out .2s}.joinchat--chatbox.joinchat--left .joinchat__button__sendtext{padding:0 24px 0 4px}.joinchat__badge{position:absolute;top:-4px;right:-4px;width:20px;height:20px;border:none;border-radius:50%;background:#e82c0c;color:#fff;font-size:12px;font-weight:600;line-height:20px;text-align:center;box-shadow:none;opacity:0;pointer-events:none}.joinchat__badge.joinchat__badge--in{animation:joinchat_badge_in .5s cubic-bezier(.27,.9,.41,1.28) 1 both}.joinchat__badge.joinchat__badge--out{animation:joinchat_badge_out .4s cubic-bezier(.215,.61,.355,1) 1 both}.joinchat__tooltip{position:absolute;top:14px;right:76px;max-width:calc(100vw - 105px);height:32px;padding:0 14px;border:none;border-radius:16px;background:#fff;color:rgba(0,0,0,.8);line-height:31px;white-space:nowrap;opacity:0;transition:opacity .3s ease-out .4s;filter:drop-shadow(0 1px 4px rgba(0,0,0,.4));transform:translateZ(0);pointer-events:none}.joinchat__tooltip:after{content:"";display:block;position:absolute;top:10px;right:-6px;border:8px solid transparent;border-width:6px 0 6px 8px;border-left-color:#fff}.joinchat__tooltip div{overflow:hidden;text-overflow:ellipsis}.joinchat--tooltip .joinchat__tooltip{animation:joinchat_tootlip 20s linear 5s 1 normal both}@media (hover:hover){.joinchat__button:hover .joinchat__tooltip{opacity:1;animation:none;transition:opacity .2s}}.joinchat--chatbox .joinchat__tooltip{display:none}.joinchat--left .joinchat__tooltip{right:auto;left:76px}.joinchat--left .joinchat__tooltip:after{left:-6px;right:auto;border-color:transparent;border-width:6px 8px 6px 0;border-right-color:#fff}.joinchat__box{display:flex;flex-direction:column;position:absolute;bottom:0;right:0;z-index:1;width:calc(100vw - var(--sep)*2);max-width:400px;min-height:170px;max-height:calc(var(--vh) - var(--bottom) - var(--sep));border-radius:32px;background:transparent;box-shadow:0 2px 6px 0 rgba(0,0,0,.5);text-align:left;overflow:hidden;transform:scale3d(0,0,0);opacity:0;transition:max-height .2s ease-out,opacity .4s ease-out,transform 0s linear .3s}.joinchat--chatbox .joinchat__box{opacity:1;transform:scaleX(1);transition:max-height .2s ease-out,opacity .2s ease-out,transform 0s linear}.joinchat--left .joinchat__box{right:auto;left:0}.joinchat__header{display:flex;flex-flow:row;align-items:center;position:relative;flex-shrink:0;height:var(--header);padding:0 70px 0 26px;margin:0;background:var(--color);text-align:left}[dir=rtl] .joinchat__header{text-align:right}.joinchat--dark .joinchat__header{background:var(--dark)}.joinchat__header__text{font-size:19px;font-weight:600;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.8}.joinchat__powered{font-size:11px;line-height:18px;color:inherit!important;text-decoration:none!important;fill:currentColor;opacity:.8}.joinchat__powered svg{display:inline-block;width:auto;height:18px;vertical-align:-30%}.joinchat__powered:active,.joinchat__powered:hover{color:inherit!important;text-decoration:none!important;opacity:.9}.joinchat__wa{height:28px;width:auto;fill:currentColor;opacity:.8}.joinchat__close{position:absolute;top:50%;right:24px;width:34px;height:34px;margin-top:-16px;border-radius:50%;background:rgba(0,0,0,.4) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M24 2.4L21.6 0 12 9.6 2.4 0 0 2.4 9.6 12 0 21.6 2.4 24l9.6-9.6 9.6 9.6 2.4-2.4-9.6-9.6L24 2.4z'/%3E%3C/svg%3E") 50% no-repeat;background-size:12px;cursor:pointer;transition:background-color .3s ease-out;-webkit-tap-highlight-color:rgba(0,0,0,0)}.joinchat__close:hover{background-color:rgba(0,0,0,.6)}[dir=rtl] .joinchat__close{right:auto;left:24px}.joinchat__box__scroll{padding:20px 0 70px;padding-bottom:calc(var(--btn) + 10px);background:#fff linear-gradient(0deg,var(--bg),var(--bg));overflow-x:hidden;overflow-y:auto;will-change:scroll-position}.joinchat__box__scroll::-webkit-scrollbar{width:5px;background:transparent}.joinchat__box__scroll::-webkit-scrollbar-thumb{border-radius:3px;background:transparent}.joinchat__box__scroll:hover::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2)}.joinchat--blur .joinchat__box__scroll{background:rgba(var(--rgb),.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.joinchat--dark .joinchat__box__scroll{background:#1a1a1a}@supports (-webkit-overflow-scrolling:touch){.joinchat__box__scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}}@media (max-width:480px),(orientation:landscape) and (max-width:767px){.joinchat__header__text{font-size:17px}.joinchat__close{margin-top:-14px;width:28px;height:28px}.joinchat__box__scroll{padding-top:15px}}@media (color-index:48){.joinchat--dark-auto .joinchat__box__scroll{background:#1a1a1a}.joinchat--dark-auto .joinchat__header{background:var(--dark)}}@media (prefers-color-scheme:dark){.joinchat--dark-auto .joinchat__box__scroll{background:#1a1a1a}.joinchat--dark-auto .joinchat__header{background:var(--dark)}}.joinchat__message{position:relative;min-height:60px;padding:17px 20px;margin:0 26px 26px;border-radius:32px;background:#fff;color:#4a4a4a;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3));transform:translateZ(0)}.joinchat__message:before{content:"";display:block;position:absolute;bottom:20px;left:-15px;width:17px;height:25px;background:inherit;-webkit-clip-path:url(#joinchat__message__peak);clip-path:url(#joinchat__message__peak)}.joinchat--dark .joinchat__message{background:#505050;color:#d8d8d8}@media (color-index:48){.joinchat--dark-auto .joinchat__message{background:#505050;color:#d8d8d8}}@media (prefers-color-scheme:dark){.joinchat--dark-auto .joinchat__message{background:#505050;color:#d8d8d8}}@media (max-width:480px),(orientation:landscape) and (max-width:767px){.joinchat__message{padding:18px 16px;line-height:24px;margin:0 20px 20px}}@keyframes joinchat_badge_in{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes joinchat_badge_out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes joinchat_plain{0%,50%,to{stroke-dashoffset:1097}5%,45%{stroke-dashoffset:0}}@keyframes joinchat_chat{0%,50%,to{stroke-dashoffset:1020}5%,45%{stroke-dashoffset:0}}@keyframes joinchat_image_loop{0%{opacity:0}3%,20%{opacity:1}25%,to{opacity:0}}@keyframes joinchat_tootlip{0%{opacity:0;transform:scaleY(0)}1%,20%{opacity:1;transform:scaleY(1)}25%,to{opacity:0;transform:scaleY(1)}}
|
public/js/joinchat.js
CHANGED
@@ -221,9 +221,9 @@
|
|
221 |
this.scrollTop += (delta < 0 ? 1 : -1) * 30;
|
222 |
});
|
223 |
|
224 |
-
//
|
225 |
if (joinchat_obj.is_mobile) {
|
226 |
-
var timeoutKB;
|
227 |
|
228 |
function form_focus_toggle() {
|
229 |
var type = (doc.activeElement.type || '').toLowerCase();
|
@@ -240,12 +240,19 @@
|
|
240 |
}
|
241 |
}
|
242 |
|
|
|
243 |
$(doc).on('focus blur', 'input, textarea', function (e) {
|
244 |
if (!$(e.target).closest(joinchat_obj.$div).length) {
|
245 |
clearTimeout(timeoutKB);
|
246 |
timeoutKB = setTimeout(form_focus_toggle, 200);
|
247 |
}
|
248 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
249 |
}
|
250 |
|
251 |
// Open chatbox or launch WhatsApp when click on nodes with classes "joinchat_open" "joinchat_app"
|
@@ -283,7 +290,6 @@
|
|
283 |
|
284 |
$(doc).trigger('joinchat:start');
|
285 |
}
|
286 |
-
|
287 |
});
|
288 |
|
289 |
}(jQuery, window, document));
|
221 |
this.scrollTop += (delta < 0 ? 1 : -1) * 30;
|
222 |
});
|
223 |
|
224 |
+
// Mobile enhancements
|
225 |
if (joinchat_obj.is_mobile) {
|
226 |
+
var timeoutKB, timeoutResize;
|
227 |
|
228 |
function form_focus_toggle() {
|
229 |
var type = (doc.activeElement.type || '').toLowerCase();
|
240 |
}
|
241 |
}
|
242 |
|
243 |
+
// Hide on mobile when virtual keyboard is open (on fill forms)
|
244 |
$(doc).on('focus blur', 'input, textarea', function (e) {
|
245 |
if (!$(e.target).closest(joinchat_obj.$div).length) {
|
246 |
clearTimeout(timeoutKB);
|
247 |
timeoutKB = setTimeout(form_focus_toggle, 200);
|
248 |
}
|
249 |
});
|
250 |
+
|
251 |
+
// Ensure header is visible
|
252 |
+
$(win).resize(function () {
|
253 |
+
clearTimeout(timeoutResize);
|
254 |
+
timeoutResize = setTimeout(function () { joinchat_obj.$div[0].style.setProperty('--vh', window.innerHeight + 'px'); }, 200);
|
255 |
+
}).resize();
|
256 |
}
|
257 |
|
258 |
// Open chatbox or launch WhatsApp when click on nodes with classes "joinchat_open" "joinchat_app"
|
290 |
|
291 |
$(doc).trigger('joinchat:start');
|
292 |
}
|
|
|
293 |
});
|
294 |
|
295 |
}(jQuery, window, document));
|
public/js/joinchat.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(
|
1 |
+
!function(p,d,m){"use strict";d.joinchat_obj=d.joinchat_obj||{},joinchat_obj=p.extend({$div:null,settings:null,store:null,chatbox:!1,is_mobile:!1},joinchat_obj),joinchat_obj.$=function(t){return p(t||this.$div,this.$div)},joinchat_obj.send_event=function(o,e){var t=d[this.settings.ga_tracker||"ga"];o=o||"",e=e||"click","function"==typeof t&&"function"==typeof t.getAll?(t("set","transport","beacon"),t.getAll().forEach(function(t){t.send("event","JoinChat",e,o)})):"function"==typeof gtag&>ag("event",e,{event_category:"JoinChat",event_label:o,transport_type:"beacon"}),"object"==typeof dataLayer&&dataLayer.push({event:"JoinChat",eventAction:e,eventLabel:o}),"function"==typeof fbq&&fbq("trackCustom","JoinChat",{eventAction:e,eventLabel:o})},joinchat_obj.whatsapp_link=function(t,o,e){return((e=void 0!==e?e:this.settings.whatsapp_web&&!this.is_mobile)?"https://web.whatsapp.com/send":"https://api.whatsapp.com/send")+"?phone="+encodeURIComponent(t)+"&text="+encodeURIComponent(o||"")},joinchat_obj.chatbox_show=function(){this.chatbox||(this.chatbox=!0,this.$div.addClass("joinchat--chatbox"),this.settings.message_badge&&this.$(".joinchat__badge").hasClass("joinchat__badge--in")&&this.$(".joinchat__badge").toggleClass("joinchat__badge--in joinchat__badge--out"),p(m).trigger("joinchat:show"))},joinchat_obj.chatbox_hide=function(){this.chatbox&&(this.chatbox=!1,this.$div.removeClass("joinchat--chatbox joinchat--tooltip"),this.settings.message_badge&&this.$(".joinchat__badge").removeClass("joinchat__badge--out"),p(m).trigger("joinchat:hide"))},joinchat_obj.save_hash=function(){var t=this.settings.message_hash||"none",o=(this.store.getItem("joinchat_hashes")||"").split(",").filter(Boolean);-1===o.indexOf(t)&&(o.push(t),this.store.setItem("joinchat_hashes",o.join(",")))},joinchat_obj.open_whatsapp=function(t,o){t={link:this.whatsapp_link(t||this.settings.telephone,o||this.settings.message_send)},o=new RegExp("^https?://(wa.me|(api|web|chat).whatsapp.com|"+location.hostname.replace(".",".")+")/.*","i");p(m).trigger("joinchat:open",[t,this.settings]),o.test(t.link)?(this.send_event(t.link),d.open(t.link,"joinchat","noopener")):console.error("Join.chat: the link doesn't seem safe, it must point to the current domain or whatsapp.com")},p(function(){joinchat_obj.$div=p(".joinchat"),joinchat_obj.settings=joinchat_obj.$div.data("settings"),joinchat_obj.is_mobile=!!navigator.userAgent.match(/Android|iPhone|BlackBerry|IEMobile|Opera Mini/i);try{localStorage.setItem("test",1),localStorage.removeItem("test"),joinchat_obj.store=localStorage}catch(t){joinchat_obj.store={_data:{},setItem:function(t,o){this._data[t]=String(o)},getItem:function(t){return this._data.hasOwnProperty(t)?this._data[t]:null}}}if(void 0===joinchat_obj.settings)try{joinchat_obj.settings=JSON.parse(joinchat_obj.$div.attr("data-settings"))}catch(t){joinchat_obj.settings=void 0}joinchat_obj.$div.length&&joinchat_obj.settings&&joinchat_obj.settings.telephone&&(joinchat_obj.is_mobile||!joinchat_obj.settings.mobile_only?function(){p(m).trigger("joinchat:starting");var t,o,e=1e3*joinchat_obj.settings.button_delay,n=1e3*joinchat_obj.settings.message_delay,i=!!joinchat_obj.settings.message_hash,a=!!joinchat_obj.$(".joinchat__box").length,s=parseInt(joinchat_obj.store.getItem("joinchat_views")||1)>=joinchat_obj.settings.message_views,h=-1!==(joinchat_obj.store.getItem("joinchat_hashes")||"").split(",").filter(Boolean).indexOf(joinchat_obj.settings.message_hash||"none");function c(){clearTimeout(o),joinchat_obj.chatbox_show()}function j(){joinchat_obj.save_hash(),joinchat_obj.chatbox_hide()}var _,b,r="joinchat--show";h||i&&n&&!joinchat_obj.settings.message_badge&&s||(r+=" joinchat--tooltip");setTimeout(function(){joinchat_obj.$div.addClass(r)},e),i&&!h&&n&&(joinchat_obj.settings.message_badge?o=setTimeout(function(){joinchat_obj.$(".joinchat__badge").addClass("joinchat__badge--in")},e+n):s&&(o=setTimeout(c,e+n)));a&&!joinchat_obj.is_mobile&&joinchat_obj.$(".joinchat__button").mouseenter(function(){t=setTimeout(c,1500)}).mouseleave(function(){clearTimeout(t)});{function l(){var t=(m.activeElement.type||"").toLowerCase();0<=["date","datetime","email","month","number","password","search","tel","text","textarea","time","url","week"].indexOf(t)?joinchat_obj.chatbox?(joinchat_obj.chatbox_hide(),setTimeout(function(){joinchat_obj.$div.removeClass("joinchat--show")},400)):joinchat_obj.$div.removeClass("joinchat--show"):joinchat_obj.$div.addClass("joinchat--show")}joinchat_obj.$(".joinchat__button").click(function(){a&&!joinchat_obj.chatbox?c():(j(),joinchat_obj.open_whatsapp())}),joinchat_obj.$(".joinchat__close").click(j),joinchat_obj.$(".joinchat__box__scroll").on("mousewheel DOMMouseScroll",function(t){t.preventDefault();t=t.originalEvent.wheelDelta||-t.originalEvent.detail;this.scrollTop+=30*(t<0?1:-1)}),joinchat_obj.is_mobile&&(p(m).on("focus blur","input, textarea",function(t){p(t.target).closest(joinchat_obj.$div).length||(clearTimeout(_),_=setTimeout(l,200))}),p(d).resize(function(){clearTimeout(b),b=setTimeout(function(){joinchat_obj.$div[0].style.setProperty("--vh",window.innerHeight+"px")},200)}).resize())}{var g,u;p(m).on("click",".joinchat_open, .joinchat_app",function(t){t.preventDefault(),p(this).hasClass("joinchat_app")||!a?joinchat_obj.open_whatsapp():joinchat_obj.chatbox||c()}),p(m).on("click",".joinchat_close",function(t){t.preventDefault(),joinchat_obj.chatbox_hide()}),a&&"IntersectionObserver"in d&&0<(g=p(".joinchat_show, .joinchat_force_show")).length&&(u=new IntersectionObserver(function(t){p.each(t,function(){if(0<this.intersectionRatio&&(!h||p(this.target).hasClass("joinchat_force_show")))return c(),u.disconnect(),!1})}),g.each(function(){u.observe(this)}))}p(m).trigger("joinchat:start")}():p(m).on("click",".joinchat_open, .joinchat_app",function(t){t.preventDefault(),joinchat_obj.open_whatsapp()})),joinchat_obj.store.setItem("joinchat_views",parseInt(joinchat_obj.store.getItem("joinchat_views")||0)+1)})}(jQuery,window,document);
|