Timeline Widget For Elementor (Elementor Timeline, Vertical & Horizontal Timeline) - Version 1.2.1

Version Description

Download this release

Release Info

Developer Narinder singh
Plugin Icon 128x128 Timeline Widget For Elementor (Elementor Timeline, Vertical & Horizontal Timeline)
Version 1.2.1
Comparing to
See all releases

Code changes from version 1.1.3 to 1.2.1

assets/css/twae-centered-timeline.css CHANGED
@@ -159,7 +159,7 @@
159
  -moz-border-radius: 6px;
160
  border-radius: 6px;
161
  box-shadow: 0px 2px 8px -2px rgba(0, 0, 0, 0.3);
162
- border: 1px solid rgba(0, 0, 0, 0.05);
163
  }
164
 
165
  .twae-wrapper .twae-data-container:after {
@@ -350,3 +350,15 @@
350
 
351
  }
352
 
 
 
 
 
 
 
 
 
 
 
 
 
159
  -moz-border-radius: 6px;
160
  border-radius: 6px;
161
  box-shadow: 0px 2px 8px -2px rgba(0, 0, 0, 0.3);
162
+ border: 2px solid rgba(0, 0, 0, 0.05);
163
  }
164
 
165
  .twae-wrapper .twae-data-container:after {
350
 
351
  }
352
 
353
+ .twae-wrapper .twae-right-aligned .twae-data-container{
354
+ border-left: 2px solid;
355
+ }
356
+ .twae-wrapper .twae-left-aligned .twae-data-container{
357
+ border-right: 2px solid,
358
+ }
359
+
360
+ @media only screen and (max-width: 769px) {
361
+ .twae-wrapper .twae-left-aligned .twae-data-container{
362
+ border-left: 2px solid;
363
+ }
364
+ }
assets/css/twae-centered-timeline.min.css CHANGED
@@ -1 +1 @@
1
- .twae-vertical:after,.twae-vertical:before{content:"";width:20px;height:20px;background:#222;display:inline-block;border-radius:50%;position:absolute;left:calc(50% - 12px);z-index:9}.twae-vertical:before{top:-10px}.twae-vertical:after{bottom:20px}.twae-timeline-centered{position:relative;margin-bottom:30px;padding-top:20px}.twae-vertical span.twae-year-container:first-child{margin-top:0!important}.twae-timeline-centered.twae-timeline-sm .twae-timeline-entry{margin-bottom:20px!important}.twae-timeline-centered.twae-timeline-sm .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container{padding:.85em}.twae-timeline-centered:after,.twae-timeline-centered:before{content:" ";display:table}.twae-timeline-centered:after{clear:both}.twae-timeline-centered:before{content:'';position:absolute;display:block;width:4px;left:50%;top:0;bottom:0;margin-left:-4px}.twae-timeline-centered .twae-timeline-entry{position:relative;width:50%;float:right;margin-bottom:70px;clear:both}.twae-timeline-centered .twae-timeline-entry:after,.twae-timeline-centered .twae-timeline-entry:before{content:" ";display:table}.twae-timeline-centered .twae-timeline-entry:after{clear:both}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned{float:left}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner{margin-left:0;margin-right:-22px}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-label-extra-label{left:auto;right:-100%;text-align:left}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-icon{float:right}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container{margin-left:0;margin-right:70px}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container:after{left:auto;right:0;margin-left:0;margin-right:-9px;-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner{position:relative;margin-left:-27px}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner:after,.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner:before{content:" ";display:table}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner:after{clear:both}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label{position:absolute;left:-100%;width:100%;text-align:right;padding:10px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label>span{display:block}.twae-timeline-centered .twae-label-extra-label>span:first-child{font-size:1em;font-weight:700}.twae-timeline-centered .twae-label-extra-label>span:last-child{font-size:.75em;margin-top:5px}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon{display:block;width:48px;height:48px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;border-radius:50%;text-align:center;border:4px solid;line-height:0;font-size:0;float:left;padding:0}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon i{line-height:38px;font-size:22px}.twae-vertical .twae-timeline-centered .twae-data-container{display:flow-root}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container{position:relative;padding:1.7em;margin-left:70px;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;box-shadow:0 2px 8px -2px rgba(0,0,0,.3);border:1px solid rgba(0,0,0,.05)}.twae-wrapper .twae-data-container:after{border-color:transparent #e9662c transparent transparent}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container:after{content:'';display:block;position:absolute;width:0;height:0;border-style:solid;border-width:9px 9px 9px 0;left:0;top:14px;margin-left:-9px}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container .twae-title,.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container p{margin:0}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container p+p{margin-top:15px}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container .twae-title{margin-bottom:10px;font-weight:700;display:inline-block;width:100%}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container .twae-title span{-webkit-opacity:.6;-moz-opacity:.6;opacity:.6}.twae-timeline-centered .twae-timeline-entry .twae-data-container .twae-timeline-img img{float:left;padding:0 5px 0 0}.twae-timeline-centered .twae-year-container .twae-year-label{border-radius:6px;display:inline-block;font-size:20px;font-weight:600;line-height:1;padding:7px 14px;text-align:center;vertical-align:baseline;white-space:nowrap}.twae-timeline-centered .twae-year-container{position:relative;float:left;clear:left;width:50%;margin-top:20px;margin-bottom:20px;top:1px;width:100%;margin-left:auto;margin-right:auto;padding:0;text-align:center}.twae-timeline-centered .twae-year-container:after,.twae-timeline-centered .twae-year-container:before{content:"";display:table}.twae-timeline-centered .twae-year-container:after{clear:both}.twae-vertical .twae-timeline-centered .twae-year{border:2px solid}@media only screen and (max-width:768px){.twae-vertical:after,.twae-vertical:before{left:10px}.twae-timeline-centered:before{left:22px}.twae-timeline-centered .twae-year-container{padding-left:54px;text-align:left;margin-bottom:5px;margin-top:20px}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner{margin-left:0}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner{margin-right:0}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label{position:relative;left:0;text-align:left;display:inline-block;width:100%;padding-left:54px}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-label-extra-label{right:0}.twae-timeline-centered .twae-timeline-entry{width:100%}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon{width:40px;height:40px;line-height:28px;font-size:18px!important}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon i{font-size:18px!important;line-height:31px}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-icon{float:left}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container,.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container{margin-left:54px;margin-right:0;border-right:1px solid rgba(0,0,0,.05)!important}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container:after{top:10px}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container:after{left:0;right:auto;margin-left:-9px;margin-right:0;-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}@media only screen and (min-width:769px){.twae-timeline-centered.twae-one-sided-timeline:before{left:24%}.twae-timeline-centered.twae-one-sided-timeline .twae-year-container{text-align:right;padding-right:80%}.twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry{width:100%;float:left}.twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner{margin-left:0}.twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container{margin-left:31%}.twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner .twae-icon{margin-left:calc(24% - 25px)}.twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label{left:-2%;width:22%}.twae-vertical.twae-one-sided-wrapper:after,.twae-vertical.twae-one-sided-wrapper:before{left:calc(23% - 4px)}}
1
+ .twae-vertical:after,.twae-vertical:before{content:"";width:20px;height:20px;background:#222;display:inline-block;border-radius:50%;position:absolute;left:calc(50% - 12px);z-index:9}.twae-vertical:before{top:-10px}.twae-vertical:after{bottom:20px}.twae-timeline-centered{position:relative;margin-bottom:30px;padding-top:20px}.twae-vertical span.twae-year-container:first-child{margin-top:0!important}.twae-timeline-centered.twae-timeline-sm .twae-timeline-entry{margin-bottom:20px!important}.twae-timeline-centered.twae-timeline-sm .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container{padding:.85em}.twae-timeline-centered:after,.twae-timeline-centered:before{content:" ";display:table}.twae-timeline-centered:after{clear:both}.twae-timeline-centered:before{content:'';position:absolute;display:block;width:4px;left:50%;top:0;bottom:0;margin-left:-4px}.twae-timeline-centered .twae-timeline-entry{position:relative;width:50%;float:right;margin-bottom:70px;clear:both}.twae-timeline-centered .twae-timeline-entry:after,.twae-timeline-centered .twae-timeline-entry:before{content:" ";display:table}.twae-timeline-centered .twae-timeline-entry:after{clear:both}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned{float:left}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner{margin-left:0;margin-right:-22px}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-label-extra-label{left:auto;right:-100%;text-align:left}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-icon{float:right}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container{margin-left:0;margin-right:70px}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container:after{left:auto;right:0;margin-left:0;margin-right:-9px;-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner{position:relative;margin-left:-27px}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner:after,.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner:before{content:" ";display:table}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner:after{clear:both}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label{position:absolute;left:-100%;width:100%;text-align:right;padding:10px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label>span{display:block}.twae-timeline-centered .twae-label-extra-label>span:first-child{font-size:1em;font-weight:700}.twae-timeline-centered .twae-label-extra-label>span:last-child{font-size:.75em;margin-top:5px}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon{display:block;width:48px;height:48px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;border-radius:50%;text-align:center;border:4px solid;line-height:0;font-size:0;float:left;padding:0}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon i{line-height:38px;font-size:22px}.twae-vertical .twae-timeline-centered .twae-data-container{display:flow-root}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container{position:relative;padding:1.7em;margin-left:70px;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;box-shadow:0 2px 8px -2px rgba(0,0,0,.3);border:2px solid rgba(0,0,0,.05)}.twae-wrapper .twae-data-container:after{border-color:transparent #e9662c transparent transparent}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container:after{content:'';display:block;position:absolute;width:0;height:0;border-style:solid;border-width:9px 9px 9px 0;left:0;top:14px;margin-left:-9px}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container .twae-title,.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container p{margin:0}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container p+p{margin-top:15px}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container .twae-title{margin-bottom:10px;font-weight:700;display:inline-block;width:100%}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container .twae-title span{-webkit-opacity:.6;-moz-opacity:.6;opacity:.6}.twae-timeline-centered .twae-timeline-entry .twae-data-container .twae-timeline-img img{float:left;padding:0 5px 0 0}.twae-timeline-centered .twae-year-container .twae-year-label{border-radius:6px;display:inline-block;font-size:20px;font-weight:600;line-height:1;padding:7px 14px;text-align:center;vertical-align:baseline;white-space:nowrap}.twae-timeline-centered .twae-year-container{position:relative;float:left;clear:left;width:50%;margin-top:20px;margin-bottom:20px;top:1px;width:100%;margin-left:auto;margin-right:auto;padding:0;text-align:center}.twae-timeline-centered .twae-year-container:after,.twae-timeline-centered .twae-year-container:before{content:"";display:table}.twae-timeline-centered .twae-year-container:after{clear:both}.twae-vertical .twae-timeline-centered .twae-year{border:2px solid}@media only screen and (max-width:768px){.twae-vertical:after,.twae-vertical:before{left:10px}.twae-timeline-centered:before{left:22px}.twae-timeline-centered .twae-year-container{padding-left:54px;text-align:left;margin-bottom:5px;margin-top:20px}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner{margin-left:0}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner{margin-right:0}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label{position:relative;left:0;text-align:left;display:inline-block;width:100%;padding-left:54px}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-label-extra-label{right:0}.twae-timeline-centered .twae-timeline-entry{width:100%}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon{width:40px;height:40px;line-height:28px;font-size:18px!important}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon i{font-size:18px!important;line-height:31px}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-icon{float:left}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container,.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container{margin-left:54px;margin-right:0;border-right:1px solid rgba(0,0,0,.05)!important}.twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container:after{top:10px}.twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container:after{left:0;right:auto;margin-left:-9px;margin-right:0;-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}@media only screen and (min-width:769px){.twae-timeline-centered.twae-one-sided-timeline:before{left:24%}.twae-timeline-centered.twae-one-sided-timeline .twae-year-container{text-align:right;padding-right:80%}.twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry{width:100%;float:left}.twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner{margin-left:0}.twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container{margin-left:31%}.twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner .twae-icon{margin-left:calc(24% - 25px)}.twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label{left:-2%;width:22%}.twae-vertical.twae-one-sided-wrapper:after,.twae-vertical.twae-one-sided-wrapper:before{left:calc(23% - 4px)}}.twae-wrapper .twae-right-aligned .twae-data-container{border-left:2px solid}.twae-wrapper .twae-left-aligned .twae-data-container{border-right:2px solid,}@media only screen and (max-width:769px){.twae-wrapper .twae-left-aligned .twae-data-container{border-left:2px solid}}
feedback/css/admin-feedback.css ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ |------------------------------------------
3
+ | Deactivation feedback form
4
+ |------------------------------------------
5
+ */
6
+ #cool-plugins-deactivate-feedback-dialog-wrapper.hide-feedback-popup{
7
+ opacity: 0;
8
+ }
9
+ .cool-plugins-deactivation-response{
10
+ position: fixed;
11
+ left: 35%;
12
+ top: 22%;
13
+ z-index: 9999;
14
+ color:white;
15
+ }
16
+ .cool-plugins-button{
17
+ border: none;
18
+ padding: 10px 10px;
19
+ text-align: center;
20
+ text-decoration: none;
21
+ display: inline-block;
22
+ font-size: 16px;
23
+ margin: 5px;
24
+ cursor: pointer;
25
+ background-color: #7bc6de;
26
+ color: white;
27
+ }
28
+ #cool-plugins-deactivate-feedback-dialog-form-body .cool-plugins-deactivate-feedback-dialog-input:not(:checked)~.cool-plugins-feedback-text {
29
+ display: none;
30
+ }
31
+ .cool-plugins-deactivation-response label{
32
+ display: block;
33
+ }
34
+ .cool-plugins-deactivation-response textarea {
35
+ margin: 10px;
36
+ width: -webkit-fill-available;
37
+ }
38
+ #cool-plugins-deactivate-feedback-dialog-form-body {
39
+ margin-top: 10px;
40
+ }
41
+ .cool-plugins-deactivation-response input[type=radio]{
42
+ float: left;
43
+ margin-right: 10px;
44
+ margin-top: 0px;
45
+ }
46
+ label.cool-plugins-deactivate-feedback-dialog-label {
47
+ margin-bottom: 10px;
48
+ }
49
+ span#cool-plugins-feedback-form-title {
50
+ font-weight: 700;
51
+ font-size: 20px;
52
+ margin-bottom: 10px;
53
+ }
54
+ .cool-plugin-popup-button-wrapper {
55
+ margin-top: 25px;
56
+ }
57
+ #cool-plugins-deactivate-feedback-dialog-form-caption {
58
+ font-weight: 600;
59
+ margin-bottom: 17px;
60
+ font-size: 15px;
61
+ }
62
+
63
+ /*
64
+ |-----------------------
65
+ | Preloader
66
+ |-----------------------
67
+ */
68
+ .cool-plugins-deactivation-response #cool-plugins-loader-wrapper{
69
+ display: none;
70
+ float: left;
71
+ width: 100%;
72
+ height: 85%;
73
+ position: absolute;
74
+ text-align: center;
75
+ opacity: .9;
76
+ background: white;
77
+ }
78
+ .cool-plugins-deactivation-response .cool-plugins-loader-container {
79
+ display: block;
80
+ text-align: center;
81
+ top: 38%;
82
+ position: absolute;
83
+ left: 42%;
84
+ text-align: center;
85
+ }
86
+ .cool-plugins-deactivation-response img.cool-plugins-preloader {
87
+ width: 40px;
88
+ height: 40px;
89
+ }
90
+
91
+ /*
92
+ |----------------------
93
+ | Colors
94
+ |----------------------
95
+ */
96
+ #cool-plugins-form-wrapper {
97
+ padding: 20px;
98
+ background-color: white;
99
+ color: black;
100
+ }
101
+ #cool-plugins-deactivate-feedback-dialog-header {
102
+ padding: 20px;
103
+ background-color: #7bc6de;
104
+ }
105
+ a.cool-plugins-button:hover {
106
+ background: #adebff;
107
+ color: white;
108
+ }
109
+ .cool-plugins-button.button-deactivate,
110
+ .cool-plugins-button.button-deactivate:hover{
111
+ cursor: initial;
112
+ background-color: silver;
113
+ }
114
+
115
+ #cool-plugins-form-wrapper input#cool-plugins-GDPR-data-notice {
116
+ float: left;
117
+ margin-top: 4px !important;
118
+ }
feedback/images/cool-plugins-preloader.gif ADDED
Binary file
feedback/js/admin-feedback.js ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function($) {
2
+ $(document).ready(function() {
3
+
4
+ /** Vairables that may needs to update */
5
+ let plugin_name = 'timeline-widget-addon-for-elementor'; // add plugin name with dash (-) instead of space ( )
6
+ let plugin_slug = 'timeline-widget-addon-for-elementor'; // plugin slug
7
+
8
+
9
+ $target = $('#the-list').find('[data-slug="' + plugin_name + '"] span.deactivate a');
10
+
11
+ var plugin_deactivate_link = $target.attr('href');
12
+
13
+ $($target).on('click', function(event) {
14
+ event.preventDefault();
15
+ $('#wpwrap').css('opacity', '0.4');
16
+
17
+ $("#cool-plugins-deactivate-feedback-dialog-wrapper").animate({
18
+ opacity: 1
19
+ }, 200, function() {
20
+ $("#cool-plugins-deactivate-feedback-dialog-wrapper").removeClass('hide-feedback-popup');
21
+ $("#cool-plugins-deactivate-feedback-dialog-wrapper").find('#cool-plugin-submitNdeactivate').addClass(plugin_slug);
22
+ $("#cool-plugins-deactivate-feedback-dialog-wrapper").find('#cool-plugin-skipNdeactivate').addClass(plugin_slug);
23
+ });
24
+ });
25
+
26
+ $('.cool-plugins-deactivate-feedback-dialog-input').on('click', function() {
27
+ if ($('#cool-plugins-GDPR-data-notice').is(":checked") === true && $('.cool-plugins-deactivate-feedback-dialog-input').is(':checked') === true) {
28
+ $('#cool-plugin-submitNdeactivate').removeClass('button-deactivate');
29
+ } else {
30
+ $('#cool-plugin-submitNdeactivate').addClass('button-deactivate');
31
+ }
32
+
33
+ });
34
+
35
+ $('#cool-plugins-GDPR-data-notice').on('click', function() {
36
+
37
+ if ($('#cool-plugins-GDPR-data-notice').is(":checked") === true && $('.cool-plugins-deactivate-feedback-dialog-input').is(':checked') === true) {
38
+ $('#cool-plugin-submitNdeactivate').removeClass('button-deactivate');
39
+ } else {
40
+ $('#cool-plugin-submitNdeactivate').addClass('button-deactivate');
41
+ }
42
+ })
43
+
44
+ $('#wpwrap').on('click', function(ev) {
45
+ if ($("#cool-plugins-deactivate-feedback-dialog-wrapper.hide-feedback-popup").length == 0) {
46
+ ev.preventDefault();
47
+ $("#cool-plugins-deactivate-feedback-dialog-wrapper").animate({
48
+ opacity: 0
49
+ }, 200, function() {
50
+ $("#cool-plugins-deactivate-feedback-dialog-wrapper").addClass("hide-feedback-popup");
51
+ $("#cool-plugins-deactivate-feedback-dialog-wrapper").find('#cool-plugin-submitNdeactivate').removeClass(plugin_slug);
52
+ $('#wpwrap').css('opacity', '1');
53
+ })
54
+
55
+ }
56
+ })
57
+
58
+ $(document).on('click', '#cool-plugin-submitNdeactivate.' + plugin_slug + ':not(".button-deactivate")', function(event) {
59
+ let nonce = $('#_wpnonce').val();
60
+ let reason = $('.cool-plugins-deactivate-feedback-dialog-input:checked').val();
61
+ let message = '';
62
+ console.log('textarea[name="reason_' + reason + '"]');
63
+ if ($('textarea[name="reason_' + reason + '"]').length > 0) {
64
+ if ($('textarea[name="reason_' + reason + '"]').val() == '') {
65
+ alert('Please provide some extra information!');
66
+ return;
67
+ } else {
68
+ message = $('textarea[name="reason_' + reason + '"]').val();
69
+ }
70
+ }
71
+
72
+ $.ajax({
73
+ url: ajaxurl,
74
+ method: 'POST',
75
+ data: {
76
+ 'action': plugin_slug + '_submit_deactivation_response',
77
+ '_wpnonce': nonce,
78
+ 'reason': reason,
79
+ 'message': message,
80
+ },
81
+ beforeSend: function(data) {
82
+ $('#cool-plugin-submitNdeactivate').text('Deactivating...');
83
+ $('#cool-plugin-submitNdeactivate').attr('id', 'deactivating-plugin');
84
+ $('#cool-plugins-loader-wrapper').show();
85
+ $('#cool-plugin-skipNdeactivate').remove();
86
+ },
87
+ success: function(res) {
88
+ $('#cool-plugins-loader-wrapper').hide();
89
+ window.location = plugin_deactivate_link;
90
+ $('#deactivating-plugin').text('Deactivated');
91
+ }
92
+ })
93
+
94
+ });
95
+
96
+ $(document).on('click', '#cool-plugin-skipNdeactivate.' + plugin_slug + ':not(".button-deactivate")', function() {
97
+ $('#cool-plugin-submitNdeactivate').remove();
98
+ $('#cool-plugin-skipNdeactivate').addClass('button-deactivate');
99
+ $('#cool-plugin-skipNdeactivate').attr('id', 'deactivating-plugin');
100
+ window.location = plugin_deactivate_link;
101
+ });
102
+
103
+ });
104
+ })(jQuery);
feedback/twae-admin-feedback-form.php ADDED
@@ -0,0 +1,189 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace TWAE_feddback\feedback;
3
+ /**
4
+ *
5
+ * --------------- ALWAYS CHANGE THE NAMESPACE ACCORDING TO THE PLUGIN ---------------------------
6
+ *
7
+ * This is the main file for creating admin feedback form.
8
+ * It is displayed when user deactivate the plugin.
9
+ *
10
+ */
11
+ class cool_plugins_feedback{
12
+
13
+ private static $instance = null;
14
+ private $plugin_name = 'Timeline Widget Addon For Elementor';
15
+ private $plugin_url = TWAE_URL;
16
+ private $plugin_version = TWAE_VERSION;
17
+ private $plugin_slug = 'timeline-widget-addon-for-elementor';
18
+ private $feedback_url = 'http://feedback.coolplugins.net/wp-json/coolplugins-feedback/v1/feedback';
19
+
20
+ /**
21
+ * Avoid creating multiple instance of this class
22
+ */
23
+ static function get_instance(){
24
+
25
+ if( empty( self::$instance ) ){
26
+ return self::$instance = new self;
27
+ }
28
+ return self::$instance;
29
+
30
+ }
31
+ /*
32
+ |-----------------------------------------------------------------|
33
+ | Use this constructor to fire all actions and filters |
34
+ |-----------------------------------------------------------------|
35
+ */
36
+ public function __construct(){
37
+
38
+ if( !is_admin() ){
39
+ return;
40
+ }
41
+ add_action('admin_enqueue_scripts', array( $this, 'enqueue_feedback_scripts') );
42
+ add_action('admin_head', array( $this, 'show_deactivate_feedback_popup') );
43
+ add_action('wp_ajax_'.$this->plugin_slug.'_submit_deactivation_response', array($this, 'submit_deactivation_response' ));
44
+ }
45
+
46
+ /*
47
+ |-----------------------------------------------------------------|
48
+ | Enqueue all scripts and styles to required page only |
49
+ |-----------------------------------------------------------------|
50
+ */
51
+ function enqueue_feedback_scripts(){
52
+ $screen = get_current_screen();
53
+ if( isset( $screen ) && $screen->id == 'plugins' ){
54
+ wp_enqueue_script(__NAMESPACE__.'-feedback-script', $this->plugin_url .'feedback/js/admin-feedback.js' );
55
+ wp_enqueue_style('cool-plugins-feedback-style', $this->plugin_url .'feedback/css/admin-feedback.css' );
56
+ }
57
+ }
58
+
59
+ /*
60
+ |-----------------------------------------------------------------|
61
+ | HTML for creating feedback popup form |
62
+ |-----------------------------------------------------------------|
63
+ */
64
+ public function show_deactivate_feedback_popup() {
65
+
66
+ $screen = get_current_screen();
67
+ if( !isset( $screen ) || $screen->id != 'plugins' ){
68
+ return;
69
+ }
70
+ $deactivate_reasons = [
71
+ 'didnt_work_as_expected' => [
72
+ 'title' => __( 'The plugin didn\'t work as expected', 'cool-plugins' ),
73
+ 'input_placeholder' => 'What did you expect?',
74
+ ],
75
+ 'found_a_better_plugin' => [
76
+ 'title' => __( 'I found a better plugin', 'cool-plugins' ),
77
+ 'input_placeholder' => __( 'Please share which plugin', 'cool-plugins' ),
78
+ ],
79
+ 'couldnt_get_the_plugin_to_work' => [
80
+ 'title' => __( 'The plugin is not working', 'cool-plugins' ),
81
+ 'input_placeholder' => 'Please share your issue. So we can fix that for other users.',
82
+ ],
83
+ 'temporary_deactivation' => [
84
+ 'title' => __( 'It\'s a temporary deactivation', 'cool-plugins' ),
85
+ 'input_placeholder' => '',
86
+ ],
87
+ 'other' => [
88
+ 'title' => __( 'Other', 'cool-plugins' ),
89
+ 'input_placeholder' => __( 'Please share the reason', 'cool-plugins' ),
90
+ ],
91
+ ];
92
+
93
+ ?>
94
+ <div id="cool-plugins-deactivate-feedback-dialog-wrapper" class="hide-feedback-popup">
95
+
96
+ <div class="cool-plugins-deactivation-response">
97
+ <div id="cool-plugins-deactivate-feedback-dialog-header">
98
+ <span id="cool-plugins-feedback-form-title"><?php echo __( 'Quick Feedback', 'cool-plugins' ); ?></span>
99
+ </div>
100
+ <div id="cool-plugins-loader-wrapper">
101
+ <div class="cool-plugins-loader-container">
102
+ <img class="cool-plugins-preloader" src="<?php echo $this->plugin_url; ?>feedback/images/cool-plugins-preloader.gif">
103
+ </div>
104
+ </div>
105
+ <div id="cool-plugins-form-wrapper" class="cool-plugins-form-wrapper-cls">
106
+ <form id="cool-plugins-deactivate-feedback-dialog-form" method="post">
107
+ <?php
108
+ wp_nonce_field( '_cool-plugins_deactivate_feedback_nonce' );
109
+ ?>
110
+ <input type="hidden" name="action" value="cool-plugins_deactivate_feedback" />
111
+ <div id="cool-plugins-deactivate-feedback-dialog-form-caption"><?php echo __( 'If you have a moment, please share why you are deactivating this plugin.', 'cool-plugins' ); ?></div>
112
+ <div id="cool-plugins-deactivate-feedback-dialog-form-body">
113
+ <?php foreach ( $deactivate_reasons as $reason_key => $reason ) : ?>
114
+ <div class="cool-plugins-deactivate-feedback-dialog-input-wrapper">
115
+ <input id="cool-plugins-deactivate-feedback-<?php echo esc_attr( $reason_key ); ?>" class="cool-plugins-deactivate-feedback-dialog-input" type="radio" name="reason_key" value="<?php echo esc_attr( $reason_key ); ?>" />
116
+ <label for="cool-plugins-deactivate-feedback-<?php echo esc_attr( $reason_key ); ?>" class="cool-plugins-deactivate-feedback-dialog-label"><?php echo esc_html( $reason['title'] ); ?></label>
117
+ <?php if ( ! empty( $reason['input_placeholder'] ) ) : ?>
118
+ <textarea class="cool-plugins-feedback-text" type="textarea" name="reason_<?php echo esc_attr( $reason_key ); ?>" placeholder="<?php echo esc_attr( $reason['input_placeholder'] ); ?>"></textarea>
119
+ <?php endif; ?>
120
+ <?php if ( ! empty( $reason['alert'] ) ) : ?>
121
+ <div class="cool-plugins-feedback-text"><?php echo esc_html( $reason['alert'] ); ?></div>
122
+ <?php endif; ?>
123
+ </div>
124
+ <?php endforeach; ?>
125
+ <input class="cool-plugins-GDPR-data-notice" id="cool-plugins-GDPR-data-notice" type="checkbox"><label for="cool-plugins-GDPR-data-notice"><?php echo __('I consent to having Cool Plugins store my all submitted information via this form, they can also respond to my inquiry.','cool-plugins');?></label>
126
+ </div>
127
+ <div class="cool-plugin-popup-button-wrapper">
128
+ <a class="cool-plugins-button button-deactivate" id="cool-plugin-submitNdeactivate">Submit and Deactivate</a>
129
+ <a class="cool-plugins-button" id="cool-plugin-skipNdeactivate">Skip and Deactivate</a>
130
+ </div>
131
+ </form>
132
+ </div>
133
+ </div>
134
+ </div>
135
+ <?php
136
+ }
137
+
138
+
139
+ function submit_deactivation_response(){
140
+ if ( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], '_cool-plugins_deactivate_feedback_nonce' ) ) {
141
+ wp_send_json_error();
142
+ }else{
143
+ $reason = filter_var($_POST['reason'], FILTER_SANITIZE_STRING);
144
+ $deactivate_reasons = [
145
+ 'didnt_work_as_expected' => [
146
+ 'title' => __( 'The plugin didn\'t work as expected', 'cool-plugins' ),
147
+ 'input_placeholder' => 'What did you expect?',
148
+ ],
149
+ 'found_a_better_plugin' => [
150
+ 'title' => __( 'I found a better plugin', 'cool-plugins' ),
151
+ 'input_placeholder' => __( 'Please share which plugin', 'cool-plugins' ),
152
+ ],
153
+ 'couldnt_get_the_plugin_to_work' => [
154
+ 'title' => __( 'The plugin is not working', 'cool-plugins' ),
155
+ 'input_placeholder' => 'Please share your issue. So we can fix that for other users.',
156
+ ],
157
+ 'temporary_deactivation' => [
158
+ 'title' => __( 'It\'s a temporary deactivation', 'cool-plugins' ),
159
+ 'input_placeholder' => '',
160
+ ],
161
+ 'other' => [
162
+ 'title' => __( 'Other', 'cool-plugins' ),
163
+ 'input_placeholder' => __( 'Please share the reason', 'cool-plugins' ),
164
+ ],
165
+ ];
166
+
167
+ $deativation_reason = array_key_exists( $reason, $deactivate_reasons ) ? $reason : 'other';
168
+
169
+ $sanitized_message = sanitize_text_field($_POST['message'])==''?'N/A':sanitize_text_field($_POST['message']);
170
+ $admin_email = sanitize_email(get_option('admin_email'));
171
+ $site_url = esc_url(site_url());
172
+ $response = wp_remote_post( $this->feedback_url , [
173
+ 'timeout' => 30,
174
+ 'body' => [
175
+ 'plugin_version' => $this->plugin_version,
176
+ 'plugin_name' => $this->plugin_name,
177
+ 'reason' => $deativation_reason,
178
+ 'review' => $sanitized_message,
179
+ 'email' => $admin_email,
180
+ 'domain' => $site_url,
181
+ ],
182
+ ] );
183
+
184
+ die( json_encode( array('response'=>$response) ) );
185
+ }
186
+
187
+ }
188
+ }
189
+ cool_plugins_feedback::get_instance();
readme.txt CHANGED
@@ -35,6 +35,7 @@ https://youtu.be/05-jlAD-5bc
35
  * Add story date/year or custom text as per your requirements.
36
  * Manage typography of story title, description and other fonts.
37
  * Add image inside your timeline story.
 
38
 
39
  It is an **[Elementor Page Builder](https://wordpress.org/plugins/elementor/)** Addon. In order to use this elementor addon you must have to install **[Elementor Page Builder](https://wordpress.org/plugins/elementor/)**.
40
 
@@ -69,8 +70,19 @@ You can show your stories, events, appointments, concerts, future & history happ
69
 
70
  == Screenshots ==
71
  1. Elementor Timeline Widget Addon Preview
72
-
73
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
74
  <strong>Version 1.1.3 | 26 AUG 2020</strong>
75
  <pre>
76
  Fixed:- Compatibility issue with elementor version 3.0.1
35
  * Add story date/year or custom text as per your requirements.
36
  * Manage typography of story title, description and other fonts.
37
  * Add image inside your timeline story.
38
+ * Support Elementor Inline editing feature.You can directly customize story title,description and date on Vertical Timeline layout.
39
 
40
  It is an **[Elementor Page Builder](https://wordpress.org/plugins/elementor/)** Addon. In order to use this elementor addon you must have to install **[Elementor Page Builder](https://wordpress.org/plugins/elementor/)**.
41
 
70
 
71
  == Screenshots ==
72
  1. Elementor Timeline Widget Addon Preview
73
+ 2. Elementor Timeline Widget Addon Horizontal Timeline Preview
74
  == Changelog ==
75
+ <strong>Version 1.2.1 | 19 SEPT 2020</strong>
76
+ <pre>
77
+ Fixed:-Fixed compatibility issues with Elementor 2.9 or lower version.
78
+ </pre>
79
+ <strong>Version 1.2 | 11 SEPT 2020</strong>
80
+ <pre>
81
+ New:- Integrated Inline editing in Vertical timeline.
82
+ New:- Integrated deactivation feedback form
83
+ Fixed: Horizontal timeline breaking page layout issue
84
+ Fixed:- Icon Background Color issue.
85
+ </pre>
86
  <strong>Version 1.1.3 | 26 AUG 2020</strong>
87
  <pre>
88
  Fixed:- Compatibility issue with elementor version 3.0.1
timeline-widget-addon-for-elementor.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Timeline Widget Addon For Elementor
4
  * Description: Timeline Widget Addon For Elementor create a beautiful timeline in page and post.
5
  * Plugin URI: https://coolplugins.net
6
- * Version: 1.1.3
7
  * Author: Cool Plugins
8
  * Author URI: https://coolplugins.net/
9
  * Text Domain: twae
@@ -18,7 +18,7 @@ if (defined('TWAE_VERSION')) {
18
  return;
19
  }
20
 
21
- define('TWAE_VERSION', '1.1.3');
22
  define('TWAE_FILE', __FILE__);
23
  define('TWAE_PATH', plugin_dir_path(TWAE_FILE));
24
  define('TWAE_URL', plugin_dir_url(TWAE_FILE));
@@ -86,9 +86,9 @@ final class Timeline_Widget_Addon
86
  if( is_admin() ){
87
  /*** Plugin review notice file */
88
  require_once(__DIR__ . '/includes/twae-feedback-notice.php');
89
- new TWAEFeedbackNotice();
90
-
91
-
92
 
93
  }
94
 
3
  * Plugin Name: Timeline Widget Addon For Elementor
4
  * Description: Timeline Widget Addon For Elementor create a beautiful timeline in page and post.
5
  * Plugin URI: https://coolplugins.net
6
+ * Version: 1.2.1
7
  * Author: Cool Plugins
8
  * Author URI: https://coolplugins.net/
9
  * Text Domain: twae
18
  return;
19
  }
20
 
21
+ define('TWAE_VERSION', '1.2.1');
22
  define('TWAE_FILE', __FILE__);
23
  define('TWAE_PATH', plugin_dir_path(TWAE_FILE));
24
  define('TWAE_URL', plugin_dir_url(TWAE_FILE));
86
  if( is_admin() ){
87
  /*** Plugin review notice file */
88
  require_once(__DIR__ . '/includes/twae-feedback-notice.php');
89
+ new TWAEFeedbackNotice();
90
+
91
+ require_once(__DIR__ . '/feedback/twae-admin-feedback-form.php');
92
 
93
  }
94
 
widgets/editor-layouts/horizontal-template.php CHANGED
@@ -10,8 +10,29 @@
10
  model: view.getEditModel()
11
  };
12
  var image_url = elementor.imagesManager.getImageUrl( timeline_image );
13
- twaeiconHTML = elementor.helpers.renderIcon( view, item.twae_story_icon, { 'aria-hidden': true }, 'i' , 'object' ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
 
 
 
 
 
15
  #>
16
  <div class="swiper-slide {{{sidesHeight}}}">
17
 
@@ -19,14 +40,14 @@
19
  if(item.twae_show_year_label == 'yes'){
20
  #>
21
  <div class="twae-year-container">
22
- <span class="twae-year-label twae-year">{{{ item.twae_year }}}</span>
23
  </div>
24
  <#
25
  }
26
  #>
27
  <div class="twae-label-extra-label"><div>
28
- <span class="twae-label">{{{ item.twae_date_label }}}</span>
29
- <span class="twae-extra-label">{{{ item.twae_extra_label }}}</span>
30
  </div></div>
31
  <div class="twae-icon">
32
  <# if ( twaeiconHTML && twaeiconHTML.rendered ) { #>
@@ -38,8 +59,8 @@
38
  </div>
39
  <div class="twae-story-info">
40
  <div class="twae-timeline-img"><img src="{{{ image_url }}}" /></div>
41
- <span class="twae-title">{{{ item.twae_story_title}}}</span>
42
- <div class="twae-description">{{{ item.twae_description }}}</div>
43
  </div>
44
  </div>
45
  <#
10
  model: view.getEditModel()
11
  };
12
  var image_url = elementor.imagesManager.getImageUrl( timeline_image );
13
+
14
+ var year_key = view.getRepeaterSettingKey( 'twae_year', 'twae_list',index ),
15
+ date_label_key = view.getRepeaterSettingKey( 'twae_date_label', 'twae_list',index ),
16
+ extra_label_key = view.getRepeaterSettingKey( 'twae_extra_label', 'twae_list',index ),
17
+ title_key = view.getRepeaterSettingKey( 'twae_story_title', 'twae_list',index ),
18
+ description_key = view.getRepeaterSettingKey( 'twae_description', 'twae_list',index );
19
+
20
+ view.addRenderAttribute( year_key, {'class': 'twae-year-label twae-year'} );
21
+ view.addRenderAttribute( date_label_key, {'class': 'twae-label'} );
22
+ view.addRenderAttribute( extra_label_key, {'class': 'twae-extra-label'} );
23
+ view.addRenderAttribute( title_key, {'class': 'twae-title'});
24
+ view.addRenderAttribute( description_key, {'class': 'twae-description'} );
25
+
26
+ view.addInlineEditingAttributes( year_key, 'none' );
27
+ view.addInlineEditingAttributes( date_label_key, 'none' );
28
+ view.addInlineEditingAttributes( extra_label_key, 'none' );
29
+ view.addInlineEditingAttributes( title_key, 'none' );
30
+ view.addInlineEditingAttributes( description_key, 'advanced' );
31
 
32
+ var twaeiconHTML = elementor.helpers.renderIcon( view, item.twae_story_icon, { 'aria-hidden': true }, 'i' , 'object' );
33
+
34
+
35
+
36
  #>
37
  <div class="swiper-slide {{{sidesHeight}}}">
38
 
40
  if(item.twae_show_year_label == 'yes'){
41
  #>
42
  <div class="twae-year-container">
43
+ <span {{{ view.getRenderAttributeString( year_key ) }}}>{{{ item.twae_year }}}</span>
44
  </div>
45
  <#
46
  }
47
  #>
48
  <div class="twae-label-extra-label"><div>
49
+ <span {{{ view.getRenderAttributeString( date_label_key ) }}} >{{{ item.twae_date_label }}}</span>
50
+ <span {{{ view.getRenderAttributeString( extra_label_key ) }}} >{{{ item.twae_extra_label }}}</span>
51
  </div></div>
52
  <div class="twae-icon">
53
  <# if ( twaeiconHTML && twaeiconHTML.rendered ) { #>
59
  </div>
60
  <div class="twae-story-info">
61
  <div class="twae-timeline-img"><img src="{{{ image_url }}}" /></div>
62
+ <span {{{ view.getRenderAttributeString( title_key ) }}}>{{{ item.twae_story_title}}}</span>
63
+ <div {{{ view.getRenderAttributeString( description_key ) }}} >{{{ item.twae_description }}}</div>
64
  </div>
65
  </div>
66
  <#
widgets/editor-layouts/vertical-template.php CHANGED
@@ -19,11 +19,31 @@
19
  model: view.getEditModel()
20
  };
21
  var image_url = elementor.imagesManager.getImageUrl( timeline_image );
22
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  if(item.twae_show_year_label == 'yes'){
24
  #>
25
  <span class="twae-year-container">
26
- <span class="twae-year-label twae-year">{{{ item.twae_year }}}</span>
27
  </span>
28
  <#
29
  }
@@ -35,13 +55,14 @@
35
  }
36
  }
37
  twaeiconHTML = elementor.helpers.renderIcon( view, item.twae_story_icon, { 'aria-hidden': true }, 'i' , 'object' ),
 
38
 
39
  #>
40
  <article class="twae-timeline-entry {{{ story_alignment }}}">
41
  <div class="twae-timeline-entry-inner">
42
  <time class="twae-label-extra-label">
43
- <span class="twae-label">{{{ item.twae_date_label }}}</span>
44
- <span class="twae-extra-label">{{{ item.twae_extra_label }}}</span>
45
  </time>
46
  <div class="twae-icon">
47
  <# if ( twaeiconHTML && twaeiconHTML.rendered ) { #>
@@ -52,9 +73,9 @@
52
 
53
  </div>
54
  <div class="twae-data-container">
55
- <span class="twae-title">{{{ item.twae_story_title}}}</span>
56
  <div class="twae-timeline-img"><img src="{{{ image_url }}}" /></div>
57
- <div class="twae-description">{{{ item.twae_description }}}</div>
58
  </div>
59
  </div>
60
  </article>
19
  model: view.getEditModel()
20
  };
21
  var image_url = elementor.imagesManager.getImageUrl( timeline_image );
22
+
23
+ var year_key = view.getRepeaterSettingKey( 'twae_year', 'twae_list',index ),
24
+ date_label_key = view.getRepeaterSettingKey( 'twae_date_label', 'twae_list',index ),
25
+ extra_label_key = view.getRepeaterSettingKey( 'twae_extra_label', 'twae_list',index ),
26
+ title_key = view.getRepeaterSettingKey( 'twae_story_title', 'twae_list',index ),
27
+ description_key = view.getRepeaterSettingKey( 'twae_description', 'twae_list',index );
28
+
29
+ view.addRenderAttribute( year_key, {'class': 'twae-year-label twae-year'} );
30
+ view.addRenderAttribute( date_label_key, {'class': 'twae-label'} );
31
+ view.addRenderAttribute( extra_label_key, {'class': 'twae-extra-label'} );
32
+ view.addRenderAttribute( title_key, {'class': 'twae-title'});
33
+ view.addRenderAttribute( description_key, {'class': 'twae-description'} );
34
+
35
+ view.addInlineEditingAttributes( year_key, 'none' );
36
+ view.addInlineEditingAttributes( date_label_key, 'none' );
37
+ view.addInlineEditingAttributes( extra_label_key, 'none' );
38
+ view.addInlineEditingAttributes( title_key, 'none' );
39
+ view.addInlineEditingAttributes( description_key, 'advanced' );
40
+
41
+
42
+
43
  if(item.twae_show_year_label == 'yes'){
44
  #>
45
  <span class="twae-year-container">
46
+ <span {{{ view.getRenderAttributeString( year_key ) }}} >{{{ item.twae_year }}}</span>
47
  </span>
48
  <#
49
  }
55
  }
56
  }
57
  twaeiconHTML = elementor.helpers.renderIcon( view, item.twae_story_icon, { 'aria-hidden': true }, 'i' , 'object' ),
58
+
59
 
60
  #>
61
  <article class="twae-timeline-entry {{{ story_alignment }}}">
62
  <div class="twae-timeline-entry-inner">
63
  <time class="twae-label-extra-label">
64
+ <span {{{ view.getRenderAttributeString( date_label_key ) }}} >{{{ item.twae_date_label }}}</span>
65
+ <span {{{ view.getRenderAttributeString( extra_label_key ) }}} >{{{ item.twae_extra_label }}}</span>
66
  </time>
67
  <div class="twae-icon">
68
  <# if ( twaeiconHTML && twaeiconHTML.rendered ) { #>
73
 
74
  </div>
75
  <div class="twae-data-container">
76
+ <span {{{ view.getRenderAttributeString( title_key ) }}} >{{{ item.twae_story_title}}}</span>
77
  <div class="twae-timeline-img"><img src="{{{ image_url }}}" /></div>
78
+ <div {{{ view.getRenderAttributeString( description_key ) }}} >{{{ item.twae_description }}}</div>
79
  </div>
80
  </div>
81
  </article>
widgets/frontend-layouts/twae-centered-timeline.php CHANGED
@@ -18,8 +18,26 @@ echo '
18
  $timeline_story_title = esc_html($content['twae_story_title']);
19
  $story_icon = $content['twae_story_icon']['value'];
20
  $thumbnail_size = $content['twae_thumbnail_size'];
21
- $thumbnail_custom_dimension = $content['twae_thumbnail_custom_dimension'];
22
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  if($content['twae_image']['id']!=""){
24
  if($thumbnail_size =='custom'){
25
  $custom_size = array ( $thumbnail_custom_dimension['width'],$thumbnail_custom_dimension['height']);
@@ -39,23 +57,23 @@ echo '
39
 
40
  if($show_year_label == 'yes'){
41
  echo '<span class="twae-year-container">
42
- <span class="twae-year-label twae-year">'.$timeline_year.'</span>
43
  </span>';
44
  }
45
 
46
  echo '<article class="twae-timeline-entry '.esc_attr($left_aligned).'">
47
  <div class="twae-timeline-entry-inner">
48
  <time class="twae-label-extra-label">
49
- <span class="twae-label">'.$story_date_label.'</span>
50
- <span class="twae-extra-label">'.$story_extra_label.'</span>
51
  </time>
52
  <div class="twae-icon">';
53
  \Elementor\Icons_Manager::render_icon( $content['twae_story_icon'], [ 'aria-hidden' => 'true' ] );
54
  echo'</div>
55
  <div class="twae-data-container">
56
- <span class="twae-title">'.$timeline_story_title.'</span>
57
  '.$image.'
58
- <div class="twae-description">'.$timeline_description.'</div>
59
  </div>
60
  </div>
61
  </article>';
18
  $timeline_story_title = esc_html($content['twae_story_title']);
19
  $story_icon = $content['twae_story_icon']['value'];
20
  $thumbnail_size = $content['twae_thumbnail_size'];
21
+ $thumbnail_custom_dimension = $content['twae_thumbnail_custom_dimension'];
22
+
23
+ $title_key = $this->get_repeater_setting_key( 'twae_story_title', 'twae_list', $index );
24
+ $year_key = $this->get_repeater_setting_key( 'twae_year', 'twae_list', $index );
25
+ $date_label_key = $this->get_repeater_setting_key( 'twae_date_label', 'twae_list', $index );
26
+ $extra_label_key = $this->get_repeater_setting_key( 'twae_extra_label', 'twae_list', $index );
27
+ $description_key = $this->get_repeater_setting_key( 'twae_description', 'twae_list', $index );
28
+
29
+ $this->add_inline_editing_attributes( $title_key, 'none' );
30
+ $this->add_inline_editing_attributes( $year_key, 'none' );
31
+ $this->add_inline_editing_attributes( $date_label_key, 'none' );
32
+ $this->add_inline_editing_attributes( $extra_label_key, 'none' );
33
+ $this->add_inline_editing_attributes( $description_key, 'advanced' );
34
+
35
+ $this->add_render_attribute( $title_key, ['class'=> 'twae-title']);
36
+ $this->add_render_attribute( $year_key, ['class'=> 'twae-year-label twae-year']);
37
+ $this->add_render_attribute( $date_label_key, ['class'=> 'twae-label']);
38
+ $this->add_render_attribute( $extra_label_key, ['class'=> 'twae-extra-label']);
39
+ $this->add_render_attribute( $description_key, ['class'=> 'twae-description']);
40
+
41
  if($content['twae_image']['id']!=""){
42
  if($thumbnail_size =='custom'){
43
  $custom_size = array ( $thumbnail_custom_dimension['width'],$thumbnail_custom_dimension['height']);
57
 
58
  if($show_year_label == 'yes'){
59
  echo '<span class="twae-year-container">
60
+ <span '.$this->get_render_attribute_string( $year_key ).'>'.$timeline_year.'</span>
61
  </span>';
62
  }
63
 
64
  echo '<article class="twae-timeline-entry '.esc_attr($left_aligned).'">
65
  <div class="twae-timeline-entry-inner">
66
  <time class="twae-label-extra-label">
67
+ <span '.$this->get_render_attribute_string( $date_label_key).'>'.$story_date_label.'</span>
68
+ <span '.$this->get_render_attribute_string( $extra_label_key ).'>'.$story_extra_label.'</span>
69
  </time>
70
  <div class="twae-icon">';
71
  \Elementor\Icons_Manager::render_icon( $content['twae_story_icon'], [ 'aria-hidden' => 'true' ] );
72
  echo'</div>
73
  <div class="twae-data-container">
74
+ <span '.$this->get_render_attribute_string( $title_key ).'>'.$timeline_story_title.'</span>
75
  '.$image.'
76
+ <div '.$this->get_render_attribute_string( $description_key ).'>'.$timeline_description.'</div>
77
  </div>
78
  </div>
79
  </article>';
widgets/frontend-layouts/twae-horizontal-timeline.php CHANGED
@@ -16,6 +16,24 @@ echo '<div id="twae-horizontal-wrapper" class="twae-wrapper twae-horizontal swip
16
  $story_icon = $content['twae_story_icon']['value'];
17
  $thumbnail_size = $content['twae_thumbnail_size'];
18
  $thumbnail_custom_dimension = $content['twae_thumbnail_custom_dimension'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
 
20
  if($content['twae_image']['id']!=""){
21
  if($thumbnail_size =='custom'){
@@ -37,20 +55,20 @@ echo '<div id="twae-horizontal-wrapper" class="twae-wrapper twae-horizontal swip
37
  echo '<div class="swiper-slide '.esc_attr($sidesHeight).'">';
38
  if($show_year_label == 'yes'){
39
  echo '<div class="twae-year-container">
40
- <span class="twae-year-label twae-year">'.$timeline_year.'</span>
41
  </div>';
42
  }
43
  echo '<div class="twae-label-extra-label"><div>
44
- <span class="twae-label">'.$story_date_label.'</span>
45
- <span class="twae-extra-label">'.$story_extra_label.'</span>
46
  </div></div>
47
  <div class="twae-icon">';
48
  \Elementor\Icons_Manager::render_icon( $content['twae_story_icon'], [ 'aria-hidden' => 'true' ] );
49
  echo'</div>';
50
  echo '<div class="twae-story-info">
51
  '.$image.'
52
- <span class="twae-title">'.$timeline_story_title.'</span>
53
- <div class="twae-description">'.$timeline_description.'</div>
54
  </div>
55
  </div>';
56
  }
16
  $story_icon = $content['twae_story_icon']['value'];
17
  $thumbnail_size = $content['twae_thumbnail_size'];
18
  $thumbnail_custom_dimension = $content['twae_thumbnail_custom_dimension'];
19
+
20
+ $title_key = $this->get_repeater_setting_key( 'twae_story_title', 'twae_list', $index );
21
+ $year_key = $this->get_repeater_setting_key( 'twae_year', 'twae_list', $index );
22
+ $date_label_key = $this->get_repeater_setting_key( 'twae_date_label', 'twae_list', $index );
23
+ $extra_label_key = $this->get_repeater_setting_key( 'twae_extra_label', 'twae_list', $index );
24
+ $description_key = $this->get_repeater_setting_key( 'twae_description', 'twae_list', $index );
25
+
26
+ $this->add_inline_editing_attributes( $title_key, 'none' );
27
+ $this->add_inline_editing_attributes( $year_key, 'none' );
28
+ $this->add_inline_editing_attributes( $date_label_key, 'none' );
29
+ $this->add_inline_editing_attributes( $extra_label_key, 'none' );
30
+ $this->add_inline_editing_attributes( $description_key, 'advanced' );
31
+
32
+ $this->add_render_attribute( $title_key, ['class'=> 'twae-title']);
33
+ $this->add_render_attribute( $year_key, ['class'=> 'twae-year-label twae-year']);
34
+ $this->add_render_attribute( $date_label_key, ['class'=> 'twae-label']);
35
+ $this->add_render_attribute( $extra_label_key, ['class'=> 'twae-extra-label']);
36
+ $this->add_render_attribute( $description_key, ['class'=> 'twae-description']);
37
 
38
  if($content['twae_image']['id']!=""){
39
  if($thumbnail_size =='custom'){
55
  echo '<div class="swiper-slide '.esc_attr($sidesHeight).'">';
56
  if($show_year_label == 'yes'){
57
  echo '<div class="twae-year-container">
58
+ <span '.$this->get_render_attribute_string( $year_key ).' >'.$timeline_year.'</span>
59
  </div>';
60
  }
61
  echo '<div class="twae-label-extra-label"><div>
62
+ <span '.$this->get_render_attribute_string( $date_label_key ).' >'.$story_date_label.'</span>
63
+ <span '.$this->get_render_attribute_string( $extra_label_key ).' >'.$story_extra_label.'</span>
64
  </div></div>
65
  <div class="twae-icon">';
66
  \Elementor\Icons_Manager::render_icon( $content['twae_story_icon'], [ 'aria-hidden' => 'true' ] );
67
  echo'</div>';
68
  echo '<div class="twae-story-info">
69
  '.$image.'
70
+ <span '.$this->get_render_attribute_string( $title_key ).'>'.$timeline_story_title.'</span>
71
+ <div '.$this->get_render_attribute_string( $description_key ).'>'.$timeline_description.'</div>
72
  </div>
73
  </div>';
74
  }
widgets/twae-widget.php CHANGED
@@ -429,9 +429,9 @@ class TWAE_Widget extends \Elementor\Widget_Base {
429
  '{{WRAPPER}} .twae-horizontal .twae-story-info' => 'border-color: {{twae_icon_bgcolor}}',
430
  '{{WRAPPER}} .twae-horizontal .twae-story-info:before' => 'border-bottom-color: {{twae_icon_bgcolor}}',
431
  '{{WRAPPER}} .twae-wrapper .twae-data-container:after' => 'border-right-color: {{twae_icon_bgcolor}}',
432
- '{{WRAPPER}} .twae-wrapper .twae-right-aligned .twae-data-container' => 'border-left: 2px solid {{twae_icon_bgcolor}}',
433
- '{{WRAPPER}} .twae-wrapper .twae-left-aligned .twae-data-container' => 'border-right: 2px solid {{twae_icon_bgcolor}}',
434
- '@media only screen and (max-width: 769px) { {{WRAPPER}} .twae-wrapper .twae-left-aligned .twae-data-container' => 'border-left: 2px solid {{twae_icon_bgcolor}} }',
435
  ],
436
  'default' => '#23A455',
437
  ]
429
  '{{WRAPPER}} .twae-horizontal .twae-story-info' => 'border-color: {{twae_icon_bgcolor}}',
430
  '{{WRAPPER}} .twae-horizontal .twae-story-info:before' => 'border-bottom-color: {{twae_icon_bgcolor}}',
431
  '{{WRAPPER}} .twae-wrapper .twae-data-container:after' => 'border-right-color: {{twae_icon_bgcolor}}',
432
+ '{{WRAPPER}} .twae-wrapper .twae-right-aligned .twae-data-container' => 'border-left-color: {{twae_icon_bgcolor}}',
433
+ '{{WRAPPER}} .twae-wrapper .twae-left-aligned .twae-data-container' => 'border-right-color: {{twae_icon_bgcolor}}',
434
+ 'body[data-elementor-device-mode=mobile] {{WRAPPER}} .twae-wrapper .twae-left-aligned .twae-data-container' => 'border-left-color: {{twae_icon_bgcolor}}',
435
  ],
436
  'default' => '#23A455',
437
  ]