Skip to content

Commit 9aa8b57

Browse files
Merge branch 'dashboard' of https://github.com/Wealcoder/animation-addons-for-elementor into dashboard
2 parents 68ec3e7 + dc5969b commit 9aa8b57

File tree

7 files changed

+141
-61
lines changed

7 files changed

+141
-61
lines changed

assets/css/widgets/clickdrop.css

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,14 @@
44

55
.aae-clickdrop-modal {
66
width: 150px;
7-
display: none;
87
background-color: rgb(0, 0, 0);
8+
opacity: 0;
9+
visibility: hidden;
10+
transition: opacity 0.3s ease, visibility 0.3s ease;
11+
position: absolute;
12+
top: 100%;
913
}
14+
1015
.aae-clickdrop-modal ul li a {
1116
display: grid;
1217
grid-template-columns: auto 1fr;
@@ -23,8 +28,14 @@
2328
letter-spacing: 0px;
2429
color: white;
2530
}
31+
2632
.aae-clickdrop-modal ul li a svg {
2733
fill: #f00;
2834
height: 16px;
2935
width: 16px;
36+
}
37+
38+
.aae-clickdrop-modal.visible {
39+
opacity: 1;
40+
visibility: visible;
3041
}

assets/css/widgets/clickdrop.min.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/js/wcf-addons.js

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,23 +105,47 @@
105105
});
106106

107107

108+
// const ClickDrop = function ($scope) {
109+
// let $btn = $scope.find(".aae-clickdrop-btn");
110+
// let $modal = $scope.find(".aae-clickdrop-modal");
111+
//
112+
// $btn.on("click", function (e) {
113+
// e.stopPropagation();
114+
// $modal.slideToggle();
115+
// });
116+
//
117+
// // Click outside to close
118+
// $(document).on("click", function (e) {
119+
// if (!$scope.is(e.target) && $scope.has(e.target).length === 0) {
120+
// $modal.slideUp();
121+
// }
122+
// });
123+
// };
124+
108125
const ClickDrop = function ($scope) {
109-
let $btn = $scope.find(".aae-clickdrop-btn");
110-
let $modal = $scope.find(".aae-clickdrop-modal");
126+
// Convert jQuery object to native DOM element
127+
const scopeEl = $scope[0]; // or $scope.get(0)
128+
129+
const btn = scopeEl.querySelector(".aae-clickdrop-btn");
130+
const modal = scopeEl.querySelector(".aae-clickdrop-modal");
111131

112-
$btn.on("click", function (e) {
132+
if (!btn || !modal) return;
133+
134+
// Toggle modal visibility
135+
btn.addEventListener("click", function (e) {
113136
e.stopPropagation();
114-
$modal.slideToggle();
137+
modal.classList.toggle("visible");
115138
});
116139

117-
// Click outside to close
118-
$(document).on("click", function (e) {
119-
if (!$scope.is(e.target) && $scope.has(e.target).length === 0) {
120-
$modal.slideUp();
140+
// Click outside to hide modal
141+
document.addEventListener("click", function (e) {
142+
if (!scopeEl.contains(e.target)) {
143+
modal.classList.remove("visible");
121144
}
122145
});
123146
};
124147

148+
125149
elementorFrontend.hooks.addAction(`frontend/element_ready/wcf--contact-form-7.default`, contact_form_7);
126150
elementorFrontend.hooks.addAction(`frontend/element_ready/aae--clickdrop.default`, ClickDrop);
127151

assets/js/wcf-addons.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/src/js/wcf-addons.js

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,23 +105,47 @@
105105
});
106106

107107

108+
// const ClickDrop = function ($scope) {
109+
// let $btn = $scope.find(".aae-clickdrop-btn");
110+
// let $modal = $scope.find(".aae-clickdrop-modal");
111+
//
112+
// $btn.on("click", function (e) {
113+
// e.stopPropagation();
114+
// $modal.slideToggle();
115+
// });
116+
//
117+
// // Click outside to close
118+
// $(document).on("click", function (e) {
119+
// if (!$scope.is(e.target) && $scope.has(e.target).length === 0) {
120+
// $modal.slideUp();
121+
// }
122+
// });
123+
// };
124+
108125
const ClickDrop = function ($scope) {
109-
let $btn = $scope.find(".aae-clickdrop-btn");
110-
let $modal = $scope.find(".aae-clickdrop-modal");
126+
// Convert jQuery object to native DOM element
127+
const scopeEl = $scope[0]; // or $scope.get(0)
128+
129+
const btn = scopeEl.querySelector(".aae-clickdrop-btn");
130+
const modal = scopeEl.querySelector(".aae-clickdrop-modal");
111131

112-
$btn.on("click", function (e) {
132+
if (!btn || !modal) return;
133+
134+
// Toggle modal visibility
135+
btn.addEventListener("click", function (e) {
113136
e.stopPropagation();
114-
$modal.slideToggle();
137+
modal.classList.toggle("visible");
115138
});
116139

117-
// Click outside to close
118-
$(document).on("click", function (e) {
119-
if (!$scope.is(e.target) && $scope.has(e.target).length === 0) {
120-
$modal.slideUp();
140+
// Click outside to hide modal
141+
document.addEventListener("click", function (e) {
142+
if (!scopeEl.contains(e.target)) {
143+
modal.classList.remove("visible");
121144
}
122145
});
123146
};
124147

148+
125149
elementorFrontend.hooks.addAction(`frontend/element_ready/wcf--contact-form-7.default`, contact_form_7);
126150
elementorFrontend.hooks.addAction(`frontend/element_ready/aae--clickdrop.default`, ClickDrop);
127151

Lines changed: 35 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,39 @@
1-
.aae-clickdrop-btn{
1+
.aae-clickdrop-btn {
22
cursor: pointer;
33
}
4-
.aae-clickdrop-modal{
4+
5+
.aae-clickdrop-modal {
56
width: 150px;
6-
display: none;
77
background-color: rgb(0, 0, 0);
8-
ul{
9-
li{
10-
a{
11-
display: grid;
12-
grid-template-columns: auto 1fr;
13-
gap: 10px;
14-
padding: 10px 13px;
15-
text-align: left;
16-
cursor: pointer;
17-
white-space: nowrap;
18-
font-weight: 500;
19-
font-size: 12px;
20-
line-height: 14px;
21-
text-transform: none;
22-
text-decoration: none;
23-
letter-spacing: 0px;
24-
color: white;
25-
svg{
26-
fill: #f00;
27-
height: 16px;
28-
width: 16px;
29-
}
30-
}
31-
}
32-
}
33-
}
8+
opacity: 0;
9+
visibility: hidden;
10+
transition: opacity 0.3s ease, visibility 0.3s ease;
11+
position: absolute;
12+
top: 100%;
13+
}
14+
.aae-clickdrop-modal ul li a {
15+
display: grid;
16+
grid-template-columns: auto 1fr;
17+
gap: 10px;
18+
padding: 10px 13px;
19+
text-align: left;
20+
cursor: pointer;
21+
white-space: nowrap;
22+
font-weight: 500;
23+
font-size: 12px;
24+
line-height: 14px;
25+
text-transform: none;
26+
text-decoration: none;
27+
letter-spacing: 0px;
28+
color: white;
29+
}
30+
.aae-clickdrop-modal ul li a svg {
31+
fill: #f00;
32+
height: 16px;
33+
width: 16px;
34+
}
35+
36+
.aae-clickdrop-modal.visible {
37+
opacity: 1;
38+
visibility: visible;
39+
}

widgets/clickdrop.php

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public function get_style_depends()
5656

5757
public function get_script_depends()
5858
{
59-
return ['aae-clickdrop'];
59+
return ['wcf-addons-core'];
6060
}
6161

6262
protected function register_controls()
@@ -77,6 +77,14 @@ protected function register_controls()
7777
'placeholder' => esc_html__('Login', 'animation-addons-for-elementor'),
7878
]
7979
);
80+
$this->add_control(
81+
'login_url',
82+
[
83+
'label' => esc_html__('Login Link', 'animation-addons-for-elementor'),
84+
'type' => Controls_Manager::TEXT,
85+
'placeholder' => esc_html__('https://crowdytheme.com/login', 'animation-addons-for-elementor'),
86+
]
87+
);
8088
$this->add_control(
8189
'logged_label',
8290
[
@@ -177,10 +185,10 @@ protected function register_controls()
177185
],
178186
'width' => [
179187
'default' => [
180-
'top' => '1',
181-
'right' => '1',
182-
'bottom' => '1',
183-
'left' => '1',
188+
'top' => '0',
189+
'right' => '0',
190+
'bottom' => '0',
191+
'left' => '0',
184192
'isLinked' => true,
185193
],
186194
],
@@ -434,15 +442,17 @@ protected function render()
434442

435443
if (!is_user_logged_in()) {
436444
?>
437-
<a href="<?php echo esc_url(wp_login_url()); ?>"
438-
class="aae-clickdrop-btn"><?php echo esc_html($settings['login_label']); ?></a>
445+
<a href="<?php echo esc_url( !empty($settings['login_url']) ? $settings['login_url'] : wp_login_url() ); ?>"
446+
class="aae-clickdrop-btn">
447+
<?php echo esc_html($settings['login_label']); ?>
448+
</a>
439449
<?php
440450
} else {
441451
?>
442-
<div class="aae-clickdrop-wrapper elementor-element-<?php echo esc_attr($widget_id); ?>">
452+
<div class="aae-clickdrop-wrapper">
443453
<div class="aae-clickdrop-inner">
444454
<button class="aae-clickdrop-btn"><?php echo esc_html($settings['logged_label']); ?></button>
445-
<div class="aae-clickdrop-modal" style="display: none;">
455+
<div class="aae-clickdrop-modal">
446456
<ul>
447457
<?php
448458
if (!empty($settings['menus_url']) && is_array($settings['menus_url'])) {
@@ -480,19 +490,24 @@ class="aae-clickdrop-btn"><?php echo esc_html($settings['login_label']); ?></a>
480490

481491
<li class="<?php echo esc_attr($item_class); ?>"
482492
style="<?php echo esc_attr($border_style); ?>">
483-
<a href="<?php echo esc_url($url); ?>"<?php echo esc_attr($is_external . $nofollow); ?>>
493+
<a href="<?php echo esc_url($url); ?>"<?php echo $is_external . $nofollow; ?>>
484494
<?php
485495
if (!empty($item['menu_icon']['value'])) {
486-
echo '<span style="' . esc_attr($icon_color) . '">';
487-
\Elementor\Icons_Manager::render_icon($item['menu_icon'], ['aria-hidden' => 'true']);
488-
echo '</span>';
496+
\Elementor\Icons_Manager::render_icon(
497+
$item['menu_icon'],
498+
[
499+
'aria-hidden' => 'true',
500+
'style' => $icon_color, // ✅ Apply icon color properly
501+
]
502+
);
489503
}
490504
?>
491505
<span style="<?php echo esc_attr($label_color); ?>">
492506
<?php echo esc_html($item['menu_title']); ?>
493507
</span>
494508
</a>
495509
</li>
510+
496511
<?php
497512
}
498513
}

0 commit comments

Comments
 (0)