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

Version Description

Download this release

Release Info

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

Code changes from version 1.2.1 to 1.3.2

assets/css/twae-centered-timeline.css CHANGED
@@ -1,364 +1,359 @@
1
  .twae-vertical:before,
2
  .twae-vertical:after {
3
- content: "";
4
- width: 20px;
5
- height: 20px;
6
- background: #222;
7
- display: inline-block;
8
- border-radius: 50%;
9
- position: absolute;
10
- left: calc(50% - 12px);
11
- z-index: 9;
12
  }
 
13
  .twae-vertical:before {
14
- top: -10px;
15
  }
 
16
  .twae-vertical:after {
17
- bottom: 20px;
18
  }
 
19
  .twae-timeline-centered {
20
- position: relative;
21
- margin-bottom: 30px;
22
- padding-top: 20px;
23
  }
 
24
  .twae-vertical span.twae-year-container:first-child {
25
- margin-top: 0px!important;
26
  }
 
27
  .twae-timeline-centered.twae-timeline-sm .twae-timeline-entry {
28
- margin-bottom: 20px !important;
29
  }
 
30
  .twae-timeline-centered.twae-timeline-sm .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container {
31
- padding: 0.85em;
32
  }
 
33
  .twae-timeline-centered:before,
34
  .twae-timeline-centered:after {
35
- content: " ";
36
- display: table;
37
  }
 
38
  .twae-timeline-centered:after {
39
- clear: both;
40
  }
 
41
  .twae-timeline-centered:before {
42
- content: '';
43
- position: absolute;
44
- display: block;
45
- width: 4px;
46
- left: 50%;
47
- top: 0;
48
- bottom: 0;
49
- margin-left: -4px;
50
  }
 
51
  .twae-timeline-centered .twae-timeline-entry {
52
- position: relative;
53
- width: 50%;
54
- float: right;
55
- margin-bottom: 70px;
56
- clear: both;
57
  }
 
58
  .twae-timeline-centered .twae-timeline-entry:before,
59
  .twae-timeline-centered .twae-timeline-entry:after {
60
- content: " ";
61
- display: table;
62
  }
 
63
  .twae-timeline-centered .twae-timeline-entry:after {
64
- clear: both;
65
  }
 
66
  .twae-timeline-centered .twae-timeline-entry.twae-left-aligned {
67
- float: left;
68
  }
 
69
  .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner {
70
- margin-left: 0;
71
- margin-right: -22px;
72
  }
 
73
  .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-label-extra-label {
74
- left: auto;
75
- right: -100%;
76
- text-align: left;
77
  }
 
78
  .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-icon {
79
- float: right;
80
  }
 
81
  .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container {
82
- margin-left: 0;
83
- margin-right: 70px;
84
  }
 
85
  .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container:after {
86
- left: auto;
87
- right: 0;
88
- margin-left: 0;
89
- margin-right: -9px;
90
- -moz-transform: rotate(180deg);
91
- -o-transform: rotate(180deg);
92
- -webkit-transform: rotate(180deg);
93
- -ms-transform: rotate(180deg);
94
- transform: rotate(180deg);
95
  }
 
96
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner {
97
- position: relative;
98
- margin-left: -27px;
99
  }
 
100
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner:before,
101
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner:after {
102
- content: " ";
103
- display: table;
104
  }
 
105
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner:after {
106
- clear: both;
107
  }
 
108
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label {
109
- position: absolute;
110
- left: -100%;
111
- width: 100%;
112
- text-align: right;
113
- padding: 10px;
114
- -webkit-box-sizing: border-box;
115
- -moz-box-sizing: border-box;
116
- box-sizing: border-box;
117
- }
118
- .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label > span {
119
- display: block;
120
- }
121
- .twae-timeline-centered .twae-label-extra-label > span:first-child {
122
- font-size: 1em;
123
- font-weight: bold;
124
- }
125
- .twae-timeline-centered .twae-label-extra-label > span:last-child {
126
- font-size: 0.75em;
127
- margin-top: 5px;
128
  }
 
129
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon {
130
- display: block;
131
- width: 48px;
132
- height: 48px;
133
- -webkit-background-clip: padding-box;
134
- -moz-background-clip: padding-box;
135
- background-clip: padding-box;
136
- border-radius: 50%;
137
- text-align: center;
138
- border: 4px solid;
139
- line-height: 0;
140
- font-size: 0;
141
- float: left;
142
- padding: 0;
143
  }
 
144
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon i {
145
- line-height: 38px;
146
- font-size: 22px;
147
- }
148
- .twae-vertical .twae-timeline-centered .twae-data-container{
149
- display: flow-root;
150
  }
151
- .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container {
152
- position: relative;
153
- padding: 1.7em;
154
- margin-left: 70px;
155
- -webkit-background-clip: padding-box;
156
- -moz-background-clip: padding;
157
- background-clip: padding-box;
158
- -webkit-border-radius: 6px;
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 {
166
- border-color: transparent #e9662c transparent transparent;
 
 
 
 
 
 
 
 
 
167
  }
168
 
169
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container:after {
170
- content: '';
171
- display: block;
172
- position: absolute;
173
- width: 0;
174
- height: 0;
175
- border-style: solid;
176
- border-width: 9px 9px 9px 0;
177
- left: 0;
178
- top: 14px;
179
- margin-left: -9px;
180
  }
 
181
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container .twae-title,
182
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container p {
183
- margin: 0;
184
  }
185
- .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container p + p {
186
- margin-top: 15px;
 
187
  }
 
188
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container .twae-title {
189
- margin-bottom: 10px;
190
- font-weight: bold;
191
- display: inline-block;
192
- width: 100%;
193
  }
 
194
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container .twae-title span {
195
- -webkit-opacity: .6;
196
- -moz-opacity: .6;
197
- opacity: .6;
198
- -ms-filter: alpha(opacity=60);
199
- filter: alpha(opacity=60);
200
  }
 
201
  .twae-timeline-centered .twae-timeline-entry .twae-data-container .twae-timeline-img img {
202
- float: left;
203
- padding: 0px 5px 0px 0px;
204
  }
205
 
206
  .twae-timeline-centered .twae-year-container .twae-year-label {
207
- border-radius: 6px;
208
- display: inline-block;
209
- font-size: 20px;
210
- font-weight: 600;
211
- line-height: 1;
212
- padding: 7px 14px;
213
- text-align: center;
214
- vertical-align: baseline;
215
- white-space: nowrap
216
  }
217
 
218
  .twae-timeline-centered .twae-year-container {
219
- position: relative;
220
- float: left;
221
- clear: left;
222
- width: 50%;
223
- margin-top:20px;
224
- margin-bottom: 20px;
225
- top: 1px;
226
- width: 100%;
227
- margin-left: auto;
228
- margin-right: auto;
229
- padding: 0;
230
- text-align: center
231
  }
232
 
233
  .twae-timeline-centered .twae-year-container:before,
234
  .twae-timeline-centered .twae-year-container:after {
235
- content: "";
236
- display: table
237
  }
238
 
239
  .twae-timeline-centered .twae-year-container:after {
240
- clear: both
241
  }
242
- .twae-vertical .twae-timeline-centered .twae-year{
243
- border: 2px solid;
244
- }
245
-
246
 
247
-
248
- @media only screen and (max-width: 768px) {
249
-
250
- .twae-vertical:before,
251
- .twae-vertical:after {
252
- left: 10px;
253
- }
254
- .twae-timeline-centered:before {
255
- left: 22px;
256
- }
257
- .twae-timeline-centered .twae-year-container {
258
- padding-left: 54px;
259
- text-align: left;
260
- margin-bottom: 5px;
261
- margin-top: 20px;
262
- }
263
- .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner {
264
- margin-left: 0;
265
- }
266
- .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner {
267
- margin-right: 0;
268
- }
269
- .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label {
270
- position: relative;
271
- left: 0;
272
- text-align: left;
273
- display: inline-block;
274
- width: 100%;
275
- padding-left: 54px;
276
- }
277
- .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-label-extra-label {
278
- right: 0;
279
- }
280
- .twae-timeline-centered .twae-timeline-entry {
281
- width: 100%;
282
- }
283
- .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon {
284
- width: 40px;
285
- height: 40px;
286
- line-height: 28px;
287
- font-size: 18px !IMPORTANT;
288
- }
289
- .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon i {
290
- font-size:18px !important;
291
- line-height: 31px;
292
- }
293
- .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-icon {
294
- float: left;
295
- }
296
- .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container,
297
- .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container {
298
- margin-left: 54px;
299
- margin-right: 0;
300
- border-right: 1px solid rgba(0, 0, 0, 0.05) !Important;
301
- }
302
- .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container:after {
303
- top:10px;
304
- }
305
- .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container:after {
306
- left: 0;
307
- right: auto;
308
- margin-left: -9px;
309
- margin-right: 0;
310
- -moz-transform: rotate(360deg);
311
- -o-transform: rotate(360deg);
312
- -webkit-transform: rotate(360deg);
313
- -ms-transform: rotate(360deg);
314
- transform: rotate(360deg);
315
- }
316
-
317
  }
318
 
319
-
320
- @media only screen and (min-width: 769px) {
321
-
322
- .twae-timeline-centered.twae-one-sided-timeline:before {
323
- left:24%;
324
- }
325
- .twae-timeline-centered.twae-one-sided-timeline .twae-year-container {
326
- text-align: right;
327
- padding-right: 80%;
328
- }
329
- .twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry {
330
- width: 100%;
331
- float: left;
332
- }
333
- .twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner {
334
- margin-left:0;
335
- }
336
- .twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container {
337
- margin-left: 31%;
338
- }
339
- .twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner .twae-icon {
340
- margin-left: calc(24% - 25px);
341
- }
342
- .twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label {
343
- left: -2%;
344
- width: 22%;
345
- }
346
- .twae-vertical.twae-one-sided-wrapper:before,
347
- .twae-vertical.twae-one-sided-wrapper:after {
348
- left: calc(23% - 4px);
349
- }
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
  }
1
  .twae-vertical:before,
2
  .twae-vertical:after {
3
+ content: "";
4
+ width: 20px;
5
+ height: 20px;
6
+ display: inline-block;
7
+ border-radius: 50%;
8
+ position: absolute;
9
+ left: calc(50% - 12px);
10
+ z-index: 9;
 
11
  }
12
+
13
  .twae-vertical:before {
14
+ top: -10px;
15
  }
16
+
17
  .twae-vertical:after {
18
+ bottom: 20px;
19
  }
20
+
21
  .twae-timeline-centered {
22
+ position: relative;
23
+ margin-bottom: 30px;
24
+ padding-top: 20px;
25
  }
26
+
27
  .twae-vertical span.twae-year-container:first-child {
28
+ margin-top: 0px!important;
29
  }
30
+
31
  .twae-timeline-centered.twae-timeline-sm .twae-timeline-entry {
32
+ margin-bottom: 20px !important;
33
  }
34
+
35
  .twae-timeline-centered.twae-timeline-sm .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container {
36
+ padding: 0.85em;
37
  }
38
+
39
  .twae-timeline-centered:before,
40
  .twae-timeline-centered:after {
41
+ content: " ";
42
+ display: table;
43
  }
44
+
45
  .twae-timeline-centered:after {
46
+ clear: both;
47
  }
48
+
49
  .twae-timeline-centered:before {
50
+ content: '';
51
+ position: absolute;
52
+ display: block;
53
+ width: 4px;
54
+ left: 50%;
55
+ top: 0;
56
+ bottom: 0;
57
+ margin-left: -4px;
58
  }
59
+
60
  .twae-timeline-centered .twae-timeline-entry {
61
+ position: relative;
62
+ width: 50%;
63
+ float: right;
64
+ margin-bottom: 70px;
65
+ clear: both;
66
  }
67
+
68
  .twae-timeline-centered .twae-timeline-entry:before,
69
  .twae-timeline-centered .twae-timeline-entry:after {
70
+ content: " ";
71
+ display: table;
72
  }
73
+
74
  .twae-timeline-centered .twae-timeline-entry:after {
75
+ clear: both;
76
  }
77
+
78
  .twae-timeline-centered .twae-timeline-entry.twae-left-aligned {
79
+ float: left;
80
  }
81
+
82
  .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner {
83
+ margin-left: 0;
84
+ margin-right: -22px;
85
  }
86
+
87
  .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-label-extra-label {
88
+ left: auto;
89
+ right: -100%;
90
+ text-align: left;
91
  }
92
+
93
  .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-icon {
94
+ float: right;
95
  }
96
+
97
  .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container {
98
+ margin-left: 0;
99
+ margin-right: 70px;
100
  }
101
+
102
  .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container:after {
103
+ left: auto;
104
+ right: 0;
105
+ margin-left: 0;
106
+ margin-right: -9px;
107
+ -moz-transform: rotate(180deg);
108
+ -o-transform: rotate(180deg);
109
+ -webkit-transform: rotate(180deg);
110
+ -ms-transform: rotate(180deg);
111
+ transform: rotate(180deg);
112
  }
113
+
114
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner {
115
+ position: relative;
116
+ margin-left: -27px;
117
  }
118
+
119
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner:before,
120
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner:after {
121
+ content: " ";
122
+ display: table;
123
  }
124
+
125
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner:after {
126
+ clear: both;
127
  }
128
+
129
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label {
130
+ position: absolute;
131
+ left: -100%;
132
+ width: 100%;
133
+ text-align: right;
134
+ padding: 10px;
135
+ -webkit-box-sizing: border-box;
136
+ -moz-box-sizing: border-box;
137
+ box-sizing: border-box;
138
+ }
139
+
140
+ .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label>span {
141
+ display: block;
142
+ }
143
+
144
+ .twae-timeline-centered .twae-label-extra-label>span:last-child {
145
+ margin-top: 5px;
 
 
 
146
  }
147
+
148
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon {
149
+ display: block;
150
+ width: 48px;
151
+ height: 48px;
152
+ -webkit-background-clip: padding-box;
153
+ -moz-background-clip: padding-box;
154
+ background-clip: padding-box;
155
+ border-radius: 50%;
156
+ text-align: center;
157
+ line-height: 0;
158
+ font-size: 0;
159
+ float: left;
160
+ padding: 0;
 
161
  }
162
+
163
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon i {
164
+ line-height: 38px;
165
+ font-size: 22px;
 
 
 
166
  }
167
+
168
+ .twae-vertical .twae-timeline-centered .twae-data-container {
169
+ display: flow-root;
 
 
 
 
 
 
 
 
 
170
  }
171
 
172
+ .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container {
173
+ position: relative;
174
+ padding: 1.7em;
175
+ margin-left: 70px;
176
+ -webkit-background-clip: padding-box;
177
+ -moz-background-clip: padding;
178
+ background-clip: padding-box;
179
+ -webkit-border-radius: 6px;
180
+ -moz-border-radius: 6px;
181
+ border-radius: 6px;
182
+ box-shadow: 0px 2px 8px -2px rgba(0, 0, 0, 0.3);
183
  }
184
 
185
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container:after {
186
+ content: '';
187
+ display: block;
188
+ position: absolute;
189
+ width: 0;
190
+ height: 0;
191
+ border-style: solid;
192
+ border-width: 9px 9px 9px 0;
193
+ left: 0;
194
+ top: 14px;
195
+ margin-left: -9px;
196
  }
197
+
198
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container .twae-title,
199
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container p {
200
+ margin: 0;
201
  }
202
+
203
+ .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container p+p {
204
+ margin-top: 15px;
205
  }
206
+
207
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container .twae-title {
208
+ margin-bottom: 10px;
209
+ font-weight: bold;
210
+ display: inline-block;
211
+ width: 100%;
212
  }
213
+
214
  .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container .twae-title span {
215
+ -webkit-opacity: .6;
216
+ -moz-opacity: .6;
217
+ opacity: .6;
218
+ -ms-filter: alpha(opacity=60);
219
+ filter: alpha(opacity=60);
220
  }
221
+
222
  .twae-timeline-centered .twae-timeline-entry .twae-data-container .twae-timeline-img img {
223
+ float: left;
224
+ padding: 0px 5px 0px 0px;
225
  }
226
 
227
  .twae-timeline-centered .twae-year-container .twae-year-label {
228
+ border-radius: 6px;
229
+ display: inline-block;
230
+ line-height: 1;
231
+ padding: 7px 14px;
232
+ text-align: center;
233
+ vertical-align: baseline;
234
+ white-space: nowrap
 
 
235
  }
236
 
237
  .twae-timeline-centered .twae-year-container {
238
+ position: relative;
239
+ float: left;
240
+ clear: left;
241
+ width: 50%;
242
+ margin-top: 20px;
243
+ margin-bottom: 20px;
244
+ top: 1px;
245
+ width: 100%;
246
+ margin-left: auto;
247
+ margin-right: auto;
248
+ padding: 0;
249
+ text-align: center
250
  }
251
 
252
  .twae-timeline-centered .twae-year-container:before,
253
  .twae-timeline-centered .twae-year-container:after {
254
+ content: "";
255
+ display: table
256
  }
257
 
258
  .twae-timeline-centered .twae-year-container:after {
259
+ clear: both
260
  }
 
 
 
 
261
 
262
+ @media only screen and (max-width: 767px) {
263
+ .twae-vertical:before,
264
+ .twae-vertical:after {
265
+ left: 10px;
266
+ }
267
+ .twae-timeline-centered:before {
268
+ left: 22px;
269
+ }
270
+ .twae-timeline-centered .twae-year-container {
271
+ padding-left: 54px;
272
+ text-align: left;
273
+ margin-bottom: 5px;
274
+ margin-top: 20px;
275
+ }
276
+ .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner {
277
+ margin-left: 0;
278
+ }
279
+ .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner {
280
+ margin-right: 0;
281
+ }
282
+ .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label {
283
+ position: relative;
284
+ left: 0;
285
+ text-align: left;
286
+ display: inline-block;
287
+ width: 100%;
288
+ padding-left: 54px;
289
+ }
290
+ .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-label-extra-label {
291
+ right: 0;
292
+ }
293
+ .twae-timeline-centered .twae-timeline-entry {
294
+ width: 100%;
295
+ }
296
+ .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon {
297
+ width: 40px;
298
+ height: 40px;
299
+ line-height: 28px;
300
+ font-size: 18px !IMPORTANT;
301
+ }
302
+ .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-icon i {
303
+ font-size: 18px !important;
304
+ line-height: 31px;
305
+ }
306
+ .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-icon {
307
+ float: left;
308
+ }
309
+ .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container,
310
+ .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container {
311
+ margin-left: 54px;
312
+ margin-right: 0;
313
+ }
314
+ .twae-timeline-centered .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container:after {
315
+ top: 10px;
316
+ }
317
+ .twae-timeline-centered .twae-timeline-entry.twae-left-aligned .twae-timeline-entry-inner .twae-data-container:after {
318
+ left: 0;
319
+ right: auto;
320
+ margin-left: -9px;
321
+ margin-right: 0;
322
+ -moz-transform: rotate(360deg);
323
+ -o-transform: rotate(360deg);
324
+ -webkit-transform: rotate(360deg);
325
+ -ms-transform: rotate(360deg);
326
+ transform: rotate(360deg);
327
+ }
 
 
 
 
328
  }
329
 
330
+ @media only screen and (min-width: 768px) {
331
+ .twae-timeline-centered.twae-one-sided-timeline:before {
332
+ left: 24%;
333
+ }
334
+ .twae-timeline-centered.twae-one-sided-timeline .twae-year-container {
335
+ text-align: right;
336
+ padding-right: 80%;
337
+ }
338
+ .twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry {
339
+ width: 100%;
340
+ float: left;
341
+ }
342
+ .twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner {
343
+ margin-left: 0;
344
+ }
345
+ .twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner .twae-data-container {
346
+ margin-left: 31%;
347
+ }
348
+ .twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner .twae-icon {
349
+ margin-left: calc(24% - 25px);
350
+ }
351
+ .twae-timeline-centered.twae-one-sided-timeline .twae-timeline-entry .twae-timeline-entry-inner .twae-label-extra-label {
352
+ left: -2%;
353
+ width: 22%;
354
+ }
355
+ .twae-vertical.twae-one-sided-wrapper:before,
356
+ .twae-vertical.twae-one-sided-wrapper:after {
357
+ left: calc(23% - 4px);
358
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
359
  }
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: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}}
1
+ .twae-vertical:after,.twae-vertical:before{content:"";width:20px;height:20px;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:last-child{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;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)}.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;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}@media only screen and (max-width:767px){.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}.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:768px){.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)}}
assets/css/twae-colors-typography.css ADDED
@@ -0,0 +1,133 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .twae-wrapper .twae-year {
2
+ font-size: 16px;
3
+ font-weight: bold;
4
+ color: #ffffff;
5
+ background-color: #54595F;
6
+ }
7
+
8
+ .twae-wrapper span.twae-label {
9
+ font-size: 20px;
10
+ font-weight: 600;
11
+ color: #23A455;
12
+ }
13
+
14
+ .twae-wrapper span.twae-extra-label {
15
+ font-size: 15px;
16
+ font-weight: normal;
17
+ color: #7A7A7A;
18
+ }
19
+
20
+ .twae-wrapper span.twae-title {
21
+ font-size: 20px;
22
+ font-weight: 600;
23
+ }
24
+
25
+ .twae-wrapper .twae-description {
26
+ font-size: 16px;
27
+ font-weight: normal;
28
+ color: #333333;
29
+ }
30
+
31
+ .twae-wrapper .twae-icon i {
32
+ font-size: 20px;
33
+ }
34
+
35
+ .twae-wrapper .twae-data-container span.twae-title {
36
+ color: #23A455;
37
+ }
38
+
39
+ .twae-horizontal span.twae-title {
40
+ color: #23A455;
41
+ }
42
+
43
+ .twae-wrapper .twae-line::before {
44
+ background-color: #D6D6D6;
45
+ }
46
+
47
+ .twae-wrapper .twae-timeline-centered .twae-icon {
48
+ border: 4px solid #D6D6D6;
49
+ }
50
+
51
+ .twae-wrapper .twae-timeline-centered .twae-year {
52
+ border:2px solid #D6D6D6;
53
+ }
54
+
55
+ .twae-wrapper:before {
56
+ background-color: #D6D6D6;
57
+ }
58
+
59
+ .twae-wrapper:after {
60
+ background-color: #D6D6D6;
61
+ }
62
+
63
+ .twae-horizontal .twae-pagination.swiper-pagination-progressbar {
64
+ background-color: #D6D6D6;
65
+ }
66
+
67
+ .twae-horizontal .twae-button-prev {
68
+ color: #D6D6D6;
69
+ }
70
+
71
+ .twae-horizontal .twae-button-next {
72
+ color: #D6D6D6;
73
+ }
74
+
75
+ .twae-wrapper .twae-icon {
76
+ background-color: #23A455;
77
+ color: #fff9ed;
78
+ }
79
+
80
+ .twae-horizontal .twae-story-info {
81
+ border-top: 4px solid #23A455;
82
+ background-color: #fff9ed;
83
+ }
84
+ .twae-horizontal .twae-story-info.twae-no-border {
85
+ border-top: 4px solid #fff9ed;
86
+ }
87
+
88
+ .twae-horizontal .twae-story-info:before {
89
+ border: 13px solid transparent;
90
+ border-bottom-color: #23a455;
91
+ }
92
+ .twae-horizontal .twae-story-info.twae-no-border:before {
93
+ border-bottom-color: #fff9ed;
94
+ }
95
+
96
+ .twae-wrapper .twae-right-aligned .twae-data-container {
97
+ border-left: 2px solid #23A455;
98
+ }
99
+ .twae-wrapper .twae-right-aligned .twae-data-container.twae-no-border {
100
+ border-left: 2px solid #fff9ed;
101
+ }
102
+
103
+ body[data-elementor-device-mode=desktop] .twae-wrapper .twae-left-aligned .twae-data-container,
104
+ body[data-elementor-device-mode=tablet] .twae-wrapper .twae-left-aligned .twae-data-container {
105
+ border-right: 2px solid #23A455;
106
+ }
107
+
108
+ body[data-elementor-device-mode=desktop] .twae-wrapper .twae-left-aligned .twae-data-container.twae-no-border,
109
+ body[data-elementor-device-mode=tablet] .twae-wrapper .twae-left-aligned .twae-data-container.twae-no-border {
110
+ border-right: 2px solid #fff9ed;
111
+ }
112
+
113
+ body[data-elementor-device-mode=mobile] .twae-wrapper .twae-left-aligned .twae-data-container {
114
+ border-left:2px solid #23A455;
115
+ }
116
+ body[data-elementor-device-mode=mobile] .twae-wrapper .twae-left-aligned .twae-data-container.twae-no-border {
117
+ border-left:2px solid #fff9ed;
118
+ }
119
+
120
+ .twae-wrapper .twae-data-container {
121
+ background-color: #fff9ed;
122
+ }
123
+
124
+ .twae-wrapper .twae-data-container:after {
125
+ border-color: transparent #23A455 transparent transparent;
126
+ }
127
+ .twae-wrapper .twae-data-container.twae-no-border:after {
128
+ border-color: transparent #fff9ed transparent transparent;
129
+ }
130
+
131
+ .twae-wrapper .twae-data-container.twae-no-border {
132
+ border: none!important;
133
+ }
assets/css/twae-editor.css ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ span.twae-pro-label {
2
+ color: red;
3
+ background: #f12945;
4
+ color: #fff;
5
+ padding: 4px;
6
+ margin: 6px;
7
+ font-size: 13px;
8
+ line-height: 2;
9
+ }
10
+
11
+ span.twae-pro-label:before {
12
+ content: "";
13
+ display: inline-block;
14
+ border: 6px solid transparent;
15
+ border-right-color: #f12945;
16
+ position: absolute;
17
+ left: initial;
18
+ margin-left: -15px;
19
+ top: 16%;
20
+ }
21
+
22
+ select[name="twae_style"] {
23
+ width: 52%;
24
+ float: right;
25
+ }
26
+
27
+ .twae_pro_options span.twae-pro-label:before {
28
+ top: 37%;
29
+ }
30
+
31
+ img.twae-screenshots {
32
+ border: 1px solid red;
33
+ }
34
+
35
+ select[name="twae_animation"] {
36
+ width: 50%;
37
+ }
38
+
39
+ .twae-pro-features ul {
40
+ list-style: disc;
41
+ margin: 2px 16px;
42
+ }
43
+
44
+ .twae-pro-features ul li {
45
+ list-style: disc;
46
+ margin-bottom: 6px;
47
+ }
assets/css/twae-horizontal-styles.css CHANGED
@@ -82,7 +82,7 @@
82
  .twae-horizontal .twae-story-info:before {
83
  content: "";
84
  display: block;
85
- border: 13px solid transparent;
86
  position: absolute;
87
  left: calc(50% - 13px);
88
  left: -moz-calc(50% - 1em);
@@ -94,7 +94,6 @@
94
  padding: 0;
95
  margin: 150px 4px 10px;
96
  justify-content: center;
97
- border-top: 4px solid;
98
  position: relative;
99
  transition: all 200ms ease-in;
100
  text-align: center;
82
  .twae-horizontal .twae-story-info:before {
83
  content: "";
84
  display: block;
85
+ /* border: 13px solid transparent; */
86
  position: absolute;
87
  left: calc(50% - 13px);
88
  left: -moz-calc(50% - 1em);
94
  padding: 0;
95
  margin: 150px 4px 10px;
96
  justify-content: center;
 
97
  position: relative;
98
  transition: all 200ms ease-in;
99
  text-align: center;
assets/css/twae-horizontal-styles.min.css CHANGED
@@ -1 +1 @@
1
- .twae-horizontal.swiper-container{position:unset;margin-left:auto;margin-right:auto;overflow:hidden;z-index:10;margin:0 32px}.twae-horizontal .twae-year-container{position:absolute;display:table;text-align:center;top:96px;left:10px;height:36px;width:72px;vertical-align:middle;border-radius:6px;overflow:hidden;z-index:1;table-layout:fixed;word-break:break-word}.twae-horizontal .twae-year-label{padding:2px;vertical-align:middle;display:table-cell}.twae-horizontal .twae-label-extra-label{position:absolute;display:table;width:100%;height:80px;overflow:hidden;text-align:center;vertical-align:middle}.twae-horizontal .twae-label-extra-label div{display:table-cell;vertical-align:bottom}.twae-horizontal .twae-label-extra-label .twae-extra-label,.twae-horizontal .twae-label-extra-label .twae-label{display:inline-block;width:100%}.twae-horizontal .twae-icon{color:#fff;width:40px;height:40px;top:94px;left:calc(50% - 20px);text-align:center;position:absolute;display:block;z-index:100;border-radius:50%}.twae-horizontal .twae-icon i{line-height:40px;font-size:26px}.twae-horizontal .twae-icon:empty{width:24px;height:24px;top:102px;left:calc(50% - 12px)}.twae-horizontal .twae-story-info:before{content:"";display:block;border:13px solid transparent;position:absolute;left:calc(50% - 13px);left:-moz-calc(50% - 1em);left:-webkit-calc(50% - 13px);left:-o-calc(50% - 13px);top:-28px}.twae-horizontal .twae-story-info{padding:0;margin:150px 4px 10px;justify-content:center;border-top:4px solid;position:relative;transition:all .2s ease-in;text-align:center;box-sizing:border-box;box-shadow:0 2px 8px -2px rgba(0,0,0,.4);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;height:calc(100% - 160px)}.twae-horizontal .twae-timeline-img,.twae-horizontal .twae-timeline-img img{display:inline-block;width:100%;height:auto}.twae-horizontal .twae-description,.twae-horizontal .twae-title{display:inline-block;width:100%;margin:0;line-height:1.2em}.twae-horizontal .twae-title{padding:8px 8px 0;font-size:20px}.twae-horizontal .twae-description{padding:8px;font-size:inherit}.twae-horizontal .twae-pagination.swiper-pagination-progressbar{position:absolute;top:112px;margin:0 32px;width:calc(100% - 64px);z-index:0}.twae-horizontal .twae-pagination.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:rgba(0,0,0,.25)}.twae-horizontal .twae-button-next,.twae-horizontal .twae-button-prev{position:absolute;font-size:40px;top:94px;cursor:pointer;line-height:0}.twae-horizontal .twae-button-prev{left:-10px}.twae-horizontal .twae-button-next{right:-10px}.twae-button-next.swiper-button-disabled,.twae-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-slide.auto-height{height:auto}
1
+ .twae-horizontal.swiper-container{position:unset;margin-left:auto;margin-right:auto;overflow:hidden;z-index:10;margin:0 32px}.twae-horizontal .twae-year-container{position:absolute;display:table;text-align:center;top:96px;left:10px;height:36px;width:72px;vertical-align:middle;border-radius:6px;overflow:hidden;z-index:1;table-layout:fixed;word-break:break-word}.twae-horizontal .twae-year-label{padding:2px;vertical-align:middle;display:table-cell}.twae-horizontal .twae-label-extra-label{position:absolute;display:table;width:100%;height:80px;overflow:hidden;text-align:center;vertical-align:middle}.twae-horizontal .twae-label-extra-label div{display:table-cell;vertical-align:bottom}.twae-horizontal .twae-label-extra-label .twae-extra-label,.twae-horizontal .twae-label-extra-label .twae-label{display:inline-block;width:100%}.twae-horizontal .twae-icon{color:#fff;width:40px;height:40px;top:94px;left:calc(50% - 20px);text-align:center;position:absolute;display:block;z-index:100;border-radius:50%}.twae-horizontal .twae-icon i{line-height:40px;font-size:26px}.twae-horizontal .twae-icon:empty{width:24px;height:24px;top:102px;left:calc(50% - 12px)}.twae-horizontal .twae-story-info:before{content:"";display:block;position:absolute;left:calc(50% - 13px);left:-moz-calc(50% - 1em);left:-webkit-calc(50% - 13px);left:-o-calc(50% - 13px);top:-28px}.twae-horizontal .twae-story-info{padding:0;margin:150px 4px 10px;justify-content:center;position:relative;transition:all .2s ease-in;text-align:center;box-sizing:border-box;box-shadow:0 2px 8px -2px rgba(0,0,0,.4);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;height:calc(100% - 160px)}.twae-horizontal .twae-timeline-img,.twae-horizontal .twae-timeline-img img{display:inline-block;width:100%;height:auto}.twae-horizontal .twae-description,.twae-horizontal .twae-title{display:inline-block;width:100%;margin:0;line-height:1.2em}.twae-horizontal .twae-title{padding:8px 8px 0;font-size:20px}.twae-horizontal .twae-description{padding:8px;font-size:inherit}.twae-horizontal .twae-pagination.swiper-pagination-progressbar{position:absolute;top:112px;margin:0 32px;width:calc(100% - 64px);z-index:0}.twae-horizontal .twae-pagination.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:rgba(0,0,0,.25)}.twae-horizontal .twae-button-next,.twae-horizontal .twae-button-prev{position:absolute;font-size:40px;top:94px;cursor:pointer;line-height:0}.twae-horizontal .twae-button-prev{left:-10px}.twae-horizontal .twae-button-next{right:-10px}.twae-button-next.swiper-button-disabled,.twae-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-slide.auto-height{height:auto}
assets/images/slideshow-images.png ADDED
Binary file
assets/images/story-custom-colors.png ADDED
Binary file
assets/js/twae-horizontal.js CHANGED
@@ -29,7 +29,21 @@ class HorizontalSliderClass extends elementorModules.frontend.handlers.Base {
29
  nextButton = this.elements.$nextButton,
30
  prevButton = this.elements.$prevButton,
31
  paginationEl = this.elements.$paginationEl;
32
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
 
34
  var swiper = new Swiper( selector, {
35
  spaceBetween: 10,
@@ -41,24 +55,18 @@ class HorizontalSliderClass extends elementorModules.frontend.handlers.Base {
41
  el: paginationEl,
42
  type: 'progressbar',
43
  },
44
- navigation: {
45
- nextEl: nextButton,
46
- prevEl: prevButton,
47
- },
48
  // Responsive breakpoints
49
  breakpoints: {
50
- // when window width is >= 320px
51
- 320: {
52
  slidesPerView: 1,
53
  },
54
- // when window width is >= 480px
55
- 480: {
56
- slidesPerView: 2,
57
  },
58
- // when window width is >= 640px
59
- 640: {
60
- slidesPerView: slidestoshow,
61
-
62
  }
63
  },
64
 
29
  nextButton = this.elements.$nextButton,
30
  prevButton = this.elements.$prevButton,
31
  paginationEl = this.elements.$paginationEl;
32
+
33
+ var Navigation;
34
+ var lang_dir = selector.attr("dir");
35
+ if(lang_dir=='rtl'){
36
+ var Navigation = {
37
+ nextEl: prevButton,
38
+ prevEl: nextButton,
39
+ }
40
+ }
41
+ else{
42
+ Navigation = {
43
+ nextEl: nextButton,
44
+ prevEl: prevButton,
45
+ }
46
+ }
47
 
48
  var swiper = new Swiper( selector, {
49
  spaceBetween: 10,
55
  el: paginationEl,
56
  type: 'progressbar',
57
  },
58
+ navigation: Navigation,
 
 
 
59
  // Responsive breakpoints
60
  breakpoints: {
61
+ // when window width is >= 280px
62
+ 280: {
63
  slidesPerView: 1,
64
  },
65
+ 768:{
66
+ slidesPerView: 3,
 
67
  },
68
+ 1024: {
69
+ slidesPerView: slidestoshow,
 
 
70
  }
71
  },
72
 
assets/js/twae-horizontal.min.js CHANGED
@@ -1 +1 @@
1
- class HorizontalSliderClass extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{swiperContainer:".twae-horizontal.swiper-container",nextButton:".twae-button-next",prevButton:".twae-button-prev",paginationEl:".twae-pagination"}}}getDefaultElements(){const selectors=this.getSettings("selectors");return{$swiperContainer:this.$element.find(selectors.swiperContainer),$nextButton:this.$element.find(selectors.nextButton),$prevButton:this.$element.find(selectors.prevButton),$paginationEl:this.$element.find(selectors.paginationEl)}}bindEvents(){var selector=this.elements.$swiperContainer,slidestoshow=selector.data("slidestoshow"),autoplay=selector.data("autoplay"),nextButton=this.elements.$nextButton,prevButton=this.elements.$prevButton,paginationEl=this.elements.$paginationEl,swiper=new Swiper(selector,{spaceBetween:10,autoplay:autoplay,delay:5e3,slidesPerView:slidestoshow,direction:"horizontal",pagination:{el:paginationEl,type:"progressbar"},navigation:{nextEl:nextButton,prevEl:prevButton},breakpoints:{320:{slidesPerView:1},480:{slidesPerView:2},640:{slidesPerView:slidestoshow}}})}}jQuery(window).on("elementor/frontend/init",()=>{const addHandler=$element=>{elementorFrontend.elementsHandler.addHandler(HorizontalSliderClass,{$element:$element})};elementorFrontend.hooks.addAction("frontend/element_ready/timeline-widget-addon.default",addHandler)});
1
+ class HorizontalSliderClass extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{swiperContainer:".twae-horizontal.swiper-container",nextButton:".twae-button-next",prevButton:".twae-button-prev",paginationEl:".twae-pagination"}}}getDefaultElements(){const selectors=this.getSettings("selectors");return{$swiperContainer:this.$element.find(selectors.swiperContainer),$nextButton:this.$element.find(selectors.nextButton),$prevButton:this.$element.find(selectors.prevButton),$paginationEl:this.$element.find(selectors.paginationEl)}}bindEvents(){var selector=this.elements.$swiperContainer,slidestoshow=selector.data("slidestoshow"),autoplay=selector.data("autoplay"),nextButton=this.elements.$nextButton,prevButton=this.elements.$prevButton,paginationEl=this.elements.$paginationEl,Navigation,lang_dir;if("rtl"==selector.attr("dir"))var Navigation={nextEl:prevButton,prevEl:nextButton};else Navigation={nextEl:nextButton,prevEl:prevButton};var swiper=new Swiper(selector,{spaceBetween:10,autoplay:autoplay,delay:5e3,slidesPerView:slidestoshow,direction:"horizontal",pagination:{el:paginationEl,type:"progressbar"},navigation:Navigation,breakpoints:{280:{slidesPerView:1},768:{slidesPerView:3},1024:{slidesPerView:slidestoshow}}})}}jQuery(window).on("elementor/frontend/init",()=>{const addHandler=$element=>{elementorFrontend.elementsHandler.addHandler(HorizontalSliderClass,{$element:$element})};elementorFrontend.hooks.addAction("frontend/element_ready/timeline-widget-addon.default",addHandler)});
assets/js/twae-promotional.js ADDED
@@ -0,0 +1,350 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
+ /******/ }
41
+ /******/ };
42
+ /******/
43
+ /******/ // define __esModule on exports
44
+ /******/ __webpack_require__.r = function(exports) {
45
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
+ /******/ }
48
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
+ /******/ };
50
+ /******/
51
+ /******/ // create a fake namespace object
52
+ /******/ // mode & 1: value is a module id, require it
53
+ /******/ // mode & 2: merge all properties of value into the ns
54
+ /******/ // mode & 4: return value when already ns object
55
+ /******/ // mode & 8|1: behave like require
56
+ /******/ __webpack_require__.t = function(value, mode) {
57
+ /******/ if(mode & 1) value = __webpack_require__(value);
58
+ /******/ if(mode & 8) return value;
59
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
+ /******/ var ns = Object.create(null);
61
+ /******/ __webpack_require__.r(ns);
62
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
+ /******/ return ns;
65
+ /******/ };
66
+ /******/
67
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
68
+ /******/ __webpack_require__.n = function(module) {
69
+ /******/ var getter = module && module.__esModule ?
70
+ /******/ function getDefault() { return module['default']; } :
71
+ /******/ function getModuleExports() { return module; };
72
+ /******/ __webpack_require__.d(getter, 'a', getter);
73
+ /******/ return getter;
74
+ /******/ };
75
+ /******/
76
+ /******/ // Object.prototype.hasOwnProperty.call
77
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
+ /******/
79
+ /******/ // __webpack_public_path__
80
+ /******/ __webpack_require__.p = "";
81
+ /******/
82
+ /******/
83
+ /******/ // Load entry module and return exports
84
+ /******/ return __webpack_require__(__webpack_require__.s = "./src/js/view/general.js");
85
+ /******/ })
86
+ /************************************************************************/
87
+ /******/ ({
88
+
89
+ /***/ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
90
+ /*!*********************************************************************!*\
91
+ !*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
92
+ \*********************************************************************/
93
+ /*! exports provided: default */
94
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
95
+
96
+ "use strict";
97
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js?");
98
+
99
+ /***/ }),
100
+
101
+ /***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js":
102
+ /*!**********************************************************************!*\
103
+ !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***!
104
+ \**********************************************************************/
105
+ /*! exports provided: default */
106
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
107
+
108
+ "use strict";
109
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _arrayWithoutHoles; });\n/* harmony import */ var _babel_runtime_helpers_esm_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/arrayLikeToArray */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return Object(_babel_runtime_helpers_esm_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr);\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js?");
110
+
111
+ /***/ }),
112
+
113
+ /***/ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js":
114
+ /*!*******************************************************************!*\
115
+ !*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***!
116
+ \*******************************************************************/
117
+ /*! exports provided: default */
118
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
119
+
120
+ "use strict";
121
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _classCallCheck; });\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js?");
122
+
123
+ /***/ }),
124
+
125
+ /***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
126
+ /*!********************************************************************!*\
127
+ !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
128
+ \********************************************************************/
129
+ /*! exports provided: default */
130
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
131
+
132
+ "use strict";
133
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js?");
134
+
135
+ /***/ }),
136
+
137
+ /***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js":
138
+ /*!**********************************************************************!*\
139
+ !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***!
140
+ \**********************************************************************/
141
+ /*! exports provided: default */
142
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
143
+
144
+ "use strict";
145
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _nonIterableSpread; });\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js?");
146
+
147
+ /***/ }),
148
+
149
+ /***/ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js":
150
+ /*!**********************************************************************!*\
151
+ !*** ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***!
152
+ \**********************************************************************/
153
+ /*! exports provided: default */
154
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
155
+
156
+ "use strict";
157
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _toConsumableArray; });\n/* harmony import */ var _babel_runtime_helpers_esm_arrayWithoutHoles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/arrayWithoutHoles */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_iterableToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/iterableToArray */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_unsupportedIterableToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/unsupportedIterableToArray */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_nonIterableSpread__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/nonIterableSpread */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\");\n\n\n\n\nfunction _toConsumableArray(arr) {\n return Object(_babel_runtime_helpers_esm_arrayWithoutHoles__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr) || Object(_babel_runtime_helpers_esm_iterableToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arr) || Object(_babel_runtime_helpers_esm_unsupportedIterableToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arr) || Object(_babel_runtime_helpers_esm_nonIterableSpread__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js?");
158
+
159
+ /***/ }),
160
+
161
+ /***/ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js":
162
+ /*!*******************************************************************************!*\
163
+ !*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
164
+ \*******************************************************************************/
165
+ /*! exports provided: default */
166
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
167
+
168
+ "use strict";
169
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _babel_runtime_helpers_esm_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/arrayLikeToArray */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return Object(_babel_runtime_helpers_esm_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_babel_runtime_helpers_esm_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js?");
170
+
171
+ /***/ }),
172
+
173
+ /***/ "./node_modules/@wordpress/hooks/build-module/createAddHook.js":
174
+ /*!*********************************************************************!*\
175
+ !*** ./node_modules/@wordpress/hooks/build-module/createAddHook.js ***!
176
+ \*********************************************************************/
177
+ /*! exports provided: default */
178
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
179
+
180
+ "use strict";
181
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ \"./node_modules/@wordpress/hooks/build-module/validateNamespace.js\");\n/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ \"./node_modules/@wordpress/hooks/build-module/validateHookName.js\");\n/**\n * Internal dependencies\n */\n\n\n/**\n * @callback AddHook\n *\n * Adds the hook to the appropriate hooks container.\n *\n * @param {string} hookName Name of hook to add\n * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.\n * @param {import('.').Callback} callback Function to call when the hook is run\n * @param {number} [priority=10] Priority of this hook\n */\n\n/**\n * Returns a function which, when invoked, will add a hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {AddHook} Function that adds a new hook.\n */\n\nfunction createAddHook(hooks, storeKey) {\n return function addHook(hookName, namespace, callback) {\n var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;\n var hooksStore = hooks[storeKey];\n\n if (!Object(_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(hookName)) {\n return;\n }\n\n if (!Object(_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(namespace)) {\n return;\n }\n\n if ('function' !== typeof callback) {\n // eslint-disable-next-line no-console\n console.error('The hook callback must be a function.');\n return;\n } // Validate numeric priority\n\n\n if ('number' !== typeof priority) {\n // eslint-disable-next-line no-console\n console.error('If specified, the hook priority must be a number.');\n return;\n }\n\n var handler = {\n callback: callback,\n priority: priority,\n namespace: namespace\n };\n\n if (hooksStore[hookName]) {\n // Find the correct insert index of the new hook.\n var handlers = hooksStore[hookName].handlers;\n /** @type {number} */\n\n var i;\n\n for (i = handlers.length; i > 0; i--) {\n if (priority >= handlers[i - 1].priority) {\n break;\n }\n }\n\n if (i === handlers.length) {\n // If append, operate via direct assignment.\n handlers[i] = handler;\n } else {\n // Otherwise, insert before index via splice.\n handlers.splice(i, 0, handler);\n } // We may also be currently executing this hook. If the callback\n // we're adding would come after the current callback, there's no\n // problem; otherwise we need to increase the execution index of\n // any other runs by 1 to account for the added element.\n\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex++;\n }\n });\n } else {\n // This is the first hook of its type.\n hooksStore[hookName] = {\n handlers: [handler],\n runs: 0\n };\n }\n\n if (hookName !== 'hookAdded') {\n hooks.doAction('hookAdded', hookName, namespace, callback, priority);\n }\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createAddHook);\n//# sourceMappingURL=createAddHook.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createAddHook.js?");
182
+
183
+ /***/ }),
184
+
185
+ /***/ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js":
186
+ /*!*************************************************************************!*\
187
+ !*** ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js ***!
188
+ \*************************************************************************/
189
+ /*! exports provided: default */
190
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
191
+
192
+ "use strict";
193
+ eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Returns a function which, when invoked, will return the name of the\n * currently running hook, or `null` if no hook of the given type is currently\n * running.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {() => string | null} Function that returns the current hook name or null.\n */\nfunction createCurrentHook(hooks, storeKey) {\n return function currentHook() {\n var _hooksStore$__current, _hooksStore$__current2;\n\n var hooksStore = hooks[storeKey];\n return (_hooksStore$__current = (_hooksStore$__current2 = hooksStore.__current[hooksStore.__current.length - 1]) === null || _hooksStore$__current2 === void 0 ? void 0 : _hooksStore$__current2.name) !== null && _hooksStore$__current !== void 0 ? _hooksStore$__current : null;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createCurrentHook);\n//# sourceMappingURL=createCurrentHook.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createCurrentHook.js?");
194
+
195
+ /***/ }),
196
+
197
+ /***/ "./node_modules/@wordpress/hooks/build-module/createDidHook.js":
198
+ /*!*********************************************************************!*\
199
+ !*** ./node_modules/@wordpress/hooks/build-module/createDidHook.js ***!
200
+ \*********************************************************************/
201
+ /*! exports provided: default */
202
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
203
+
204
+ "use strict";
205
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateHookName.js */ \"./node_modules/@wordpress/hooks/build-module/validateHookName.js\");\n/**\n * Internal dependencies\n */\n\n/**\n * @callback DidHook\n *\n * Returns the number of times an action has been fired.\n *\n * @param {string} hookName The hook name to check.\n *\n * @return {number | undefined} The number of times the hook has run.\n */\n\n/**\n * Returns a function which, when invoked, will return the number of times a\n * hook has been called.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DidHook} Function that returns a hook's call count.\n */\n\nfunction createDidHook(hooks, storeKey) {\n return function didHook(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!Object(_validateHookName_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(hookName)) {\n return;\n }\n\n return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createDidHook);\n//# sourceMappingURL=createDidHook.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createDidHook.js?");
206
+
207
+ /***/ }),
208
+
209
+ /***/ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js":
210
+ /*!***********************************************************************!*\
211
+ !*** ./node_modules/@wordpress/hooks/build-module/createDoingHook.js ***!
212
+ \***********************************************************************/
213
+ /*! exports provided: default */
214
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
215
+
216
+ "use strict";
217
+ eval("__webpack_require__.r(__webpack_exports__);\n/**\n * @callback DoingHook\n * Returns whether a hook is currently being executed.\n *\n * @param {string} [hookName] The name of the hook to check for. If\n * omitted, will check for any hook being executed.\n *\n * @return {boolean} Whether the hook is being executed.\n */\n\n/**\n * Returns a function which, when invoked, will return whether a hook is\n * currently being executed.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DoingHook} Function that returns whether a hook is currently\n * being executed.\n */\nfunction createDoingHook(hooks, storeKey) {\n return function doingHook(hookName) {\n var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook.\n\n if ('undefined' === typeof hookName) {\n return 'undefined' !== typeof hooksStore.__current[0];\n } // Return the __current hook.\n\n\n return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createDoingHook);\n//# sourceMappingURL=createDoingHook.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createDoingHook.js?");
218
+
219
+ /***/ }),
220
+
221
+ /***/ "./node_modules/@wordpress/hooks/build-module/createHasHook.js":
222
+ /*!*********************************************************************!*\
223
+ !*** ./node_modules/@wordpress/hooks/build-module/createHasHook.js ***!
224
+ \*********************************************************************/
225
+ /*! exports provided: default */
226
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
227
+
228
+ "use strict";
229
+ eval("__webpack_require__.r(__webpack_exports__);\n/**\n * @callback HasHook\n *\n * Returns whether any handlers are attached for the given hookName and optional namespace.\n *\n * @param {string} hookName The name of the hook to check for.\n * @param {string} [namespace] Optional. The unique namespace identifying the callback\n * in the form `vendor/plugin/function`.\n *\n * @return {boolean} Whether there are handlers that are attached to the given hook.\n */\n\n/**\n * Returns a function which, when invoked, will return whether any handlers are\n * attached to a particular hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {HasHook} Function that returns whether any handlers are\n * attached to a particular hook and optional namespace.\n */\nfunction createHasHook(hooks, storeKey) {\n return function hasHook(hookName, namespace) {\n var hooksStore = hooks[storeKey]; // Use the namespace if provided.\n\n if ('undefined' !== typeof namespace) {\n return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) {\n return hook.namespace === namespace;\n });\n }\n\n return hookName in hooksStore;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createHasHook);\n//# sourceMappingURL=createHasHook.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createHasHook.js?");
230
+
231
+ /***/ }),
232
+
233
+ /***/ "./node_modules/@wordpress/hooks/build-module/createHooks.js":
234
+ /*!*******************************************************************!*\
235
+ !*** ./node_modules/@wordpress/hooks/build-module/createHooks.js ***!
236
+ \*******************************************************************/
237
+ /*! exports provided: _Hooks, default */
238
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
239
+
240
+ "use strict";
241
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_Hooks\", function() { return _Hooks; });\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _createAddHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createAddHook */ \"./node_modules/@wordpress/hooks/build-module/createAddHook.js\");\n/* harmony import */ var _createRemoveHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createRemoveHook */ \"./node_modules/@wordpress/hooks/build-module/createRemoveHook.js\");\n/* harmony import */ var _createHasHook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createHasHook */ \"./node_modules/@wordpress/hooks/build-module/createHasHook.js\");\n/* harmony import */ var _createRunHook__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createRunHook */ \"./node_modules/@wordpress/hooks/build-module/createRunHook.js\");\n/* harmony import */ var _createCurrentHook__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createCurrentHook */ \"./node_modules/@wordpress/hooks/build-module/createCurrentHook.js\");\n/* harmony import */ var _createDoingHook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createDoingHook */ \"./node_modules/@wordpress/hooks/build-module/createDoingHook.js\");\n/* harmony import */ var _createDidHook__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./createDidHook */ \"./node_modules/@wordpress/hooks/build-module/createDidHook.js\");\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal class for constructing hooks. Use `createHooks()` function\n *\n * Note, it is necessary to expose this class to make its type public.\n *\n * @private\n */\n\nvar _Hooks = function _Hooks() {\n Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, _Hooks);\n\n /** @type {import('.').Store} actions */\n this.actions = Object.create(null);\n this.actions.__current = [];\n /** @type {import('.').Store} filters */\n\n this.filters = Object.create(null);\n this.filters.__current = [];\n this.addAction = Object(_createAddHook__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this, 'actions');\n this.addFilter = Object(_createAddHook__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this, 'filters');\n this.removeAction = Object(_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(this, 'actions');\n this.removeFilter = Object(_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(this, 'filters');\n this.hasAction = Object(_createHasHook__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(this, 'actions');\n this.hasFilter = Object(_createHasHook__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(this, 'filters');\n this.removeAllActions = Object(_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(this, 'actions', true);\n this.removeAllFilters = Object(_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(this, 'filters', true);\n this.doAction = Object(_createRunHook__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(this, 'actions');\n this.applyFilters = Object(_createRunHook__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(this, 'filters', true);\n this.currentAction = Object(_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(this, 'actions');\n this.currentFilter = Object(_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(this, 'filters');\n this.doingAction = Object(_createDoingHook__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(this, 'actions');\n this.doingFilter = Object(_createDoingHook__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(this, 'filters');\n this.didAction = Object(_createDidHook__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(this, 'actions');\n this.didFilter = Object(_createDidHook__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(this, 'filters');\n};\n/** @typedef {_Hooks} Hooks */\n\n/**\n * Returns an instance of the hooks object.\n *\n * @return {Hooks} A Hooks instance.\n */\n\nfunction createHooks() {\n return new _Hooks();\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createHooks);\n//# sourceMappingURL=createHooks.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createHooks.js?");
242
+
243
+ /***/ }),
244
+
245
+ /***/ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js":
246
+ /*!************************************************************************!*\
247
+ !*** ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js ***!
248
+ \************************************************************************/
249
+ /*! exports provided: default */
250
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
251
+
252
+ "use strict";
253
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ \"./node_modules/@wordpress/hooks/build-module/validateNamespace.js\");\n/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ \"./node_modules/@wordpress/hooks/build-module/validateHookName.js\");\n/**\n * Internal dependencies\n */\n\n\n/**\n * @callback RemoveHook\n * Removes the specified callback (or all callbacks) from the hook with a given hookName\n * and namespace.\n *\n * @param {string} hookName The name of the hook to modify.\n * @param {string} namespace The unique namespace identifying the callback in the\n * form `vendor/plugin/function`.\n *\n * @return {number | undefined} The number of callbacks removed.\n */\n\n/**\n * Returns a function which, when invoked, will remove a specified hook or all\n * hooks by the given name.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName,\n * without regard to namespace. Used to create\n * `removeAll*` functions.\n *\n * @return {RemoveHook} Function that removes hooks.\n */\n\nfunction createRemoveHook(hooks, storeKey) {\n var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function removeHook(hookName, namespace) {\n var hooksStore = hooks[storeKey];\n\n if (!Object(_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(hookName)) {\n return;\n }\n\n if (!removeAll && !Object(_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(namespace)) {\n return;\n } // Bail if no hooks exist by this name\n\n\n if (!hooksStore[hookName]) {\n return 0;\n }\n\n var handlersRemoved = 0;\n\n if (removeAll) {\n handlersRemoved = hooksStore[hookName].handlers.length;\n hooksStore[hookName] = {\n runs: hooksStore[hookName].runs,\n handlers: []\n };\n } else {\n // Try to find the specified callback to remove.\n var handlers = hooksStore[hookName].handlers;\n\n var _loop = function _loop(i) {\n if (handlers[i].namespace === namespace) {\n handlers.splice(i, 1);\n handlersRemoved++; // This callback may also be part of a hook that is\n // currently executing. If the callback we're removing\n // comes after the current callback, there's no problem;\n // otherwise we need to decrease the execution index of any\n // other runs by 1 to account for the removed element.\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex--;\n }\n });\n }\n };\n\n for (var i = handlers.length - 1; i >= 0; i--) {\n _loop(i);\n }\n }\n\n if (hookName !== 'hookRemoved') {\n hooks.doAction('hookRemoved', hookName, namespace);\n }\n\n return handlersRemoved;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createRemoveHook);\n//# sourceMappingURL=createRemoveHook.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createRemoveHook.js?");
254
+
255
+ /***/ }),
256
+
257
+ /***/ "./node_modules/@wordpress/hooks/build-module/createRunHook.js":
258
+ /*!*********************************************************************!*\
259
+ !*** ./node_modules/@wordpress/hooks/build-module/createRunHook.js ***!
260
+ \*********************************************************************/
261
+ /*! exports provided: default */
262
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
263
+
264
+ "use strict";
265
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n\n\n/**\n * Returns a function which, when invoked, will execute all callbacks\n * registered to a hook of the specified type, optionally returning the final\n * value of the call chain.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to\n * return its first argument.\n *\n * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks.\n */\nfunction createRunHook(hooks, storeKey) {\n var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function runHooks(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!hooksStore[hookName]) {\n hooksStore[hookName] = {\n handlers: [],\n runs: 0\n };\n }\n\n hooksStore[hookName].runs++;\n var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds.\n\n if (true) {\n // Handle any 'all' hooks registered.\n if ('hookAdded' !== hookName && hooksStore.all) {\n handlers.push.apply(handlers, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(hooksStore.all.handlers));\n }\n }\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!handlers || !handlers.length) {\n return returnFirstArg ? args[0] : undefined;\n }\n\n var hookInfo = {\n name: hookName,\n currentIndex: 0\n };\n\n hooksStore.__current.push(hookInfo);\n\n while (hookInfo.currentIndex < handlers.length) {\n var handler = handlers[hookInfo.currentIndex];\n var result = handler.callback.apply(null, args);\n\n if (returnFirstArg) {\n args[0] = result;\n }\n\n hookInfo.currentIndex++;\n }\n\n hooksStore.__current.pop();\n\n if (returnFirstArg) {\n return args[0];\n }\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createRunHook);\n//# sourceMappingURL=createRunHook.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createRunHook.js?");
266
+
267
+ /***/ }),
268
+
269
+ /***/ "./node_modules/@wordpress/hooks/build-module/index.js":
270
+ /*!*************************************************************!*\
271
+ !*** ./node_modules/@wordpress/hooks/build-module/index.js ***!
272
+ \*************************************************************/
273
+ /*! exports provided: createHooks, addAction, addFilter, removeAction, removeFilter, hasAction, hasFilter, removeAllActions, removeAllFilters, doAction, applyFilters, currentAction, currentFilter, doingAction, doingFilter, didAction, didFilter, actions, filters */
274
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
275
+
276
+ "use strict";
277
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addAction\", function() { return addAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addFilter\", function() { return addFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeAction\", function() { return removeAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeFilter\", function() { return removeFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasAction\", function() { return hasAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasFilter\", function() { return hasFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeAllActions\", function() { return removeAllActions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeAllFilters\", function() { return removeAllFilters; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"doAction\", function() { return doAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyFilters\", function() { return applyFilters; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"currentAction\", function() { return currentAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"currentFilter\", function() { return currentFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"doingAction\", function() { return doingAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"doingFilter\", function() { return doingFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"didAction\", function() { return didAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"didFilter\", function() { return didFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"actions\", function() { return actions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"filters\", function() { return filters; });\n/* harmony import */ var _createHooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createHooks */ \"./node_modules/@wordpress/hooks/build-module/createHooks.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createHooks\", function() { return _createHooks__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/**\n * Internal dependencies\n */\n\n/** @typedef {(...args: any[])=>any} Callback */\n\n/**\n * @typedef Handler\n * @property {Callback} callback The callback\n * @property {string} namespace The namespace\n * @property {number} priority The namespace\n */\n\n/**\n * @typedef Hook\n * @property {Handler[]} handlers Array of handlers\n * @property {number} runs Run counter\n */\n\n/**\n * @typedef Current\n * @property {string} name Hook name\n * @property {number} currentIndex The index\n */\n\n/**\n * @typedef {Record<string, Hook> & {__current: Current[]}} Store\n */\n\n/**\n * @typedef {'actions' | 'filters'} StoreKey\n */\n\n/**\n * @typedef {import('./createHooks').Hooks} Hooks\n */\n\nvar _createHooks = Object(_createHooks__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(),\n addAction = _createHooks.addAction,\n addFilter = _createHooks.addFilter,\n removeAction = _createHooks.removeAction,\n removeFilter = _createHooks.removeFilter,\n hasAction = _createHooks.hasAction,\n hasFilter = _createHooks.hasFilter,\n removeAllActions = _createHooks.removeAllActions,\n removeAllFilters = _createHooks.removeAllFilters,\n doAction = _createHooks.doAction,\n applyFilters = _createHooks.applyFilters,\n currentAction = _createHooks.currentAction,\n currentFilter = _createHooks.currentFilter,\n doingAction = _createHooks.doingAction,\n doingFilter = _createHooks.doingFilter,\n didAction = _createHooks.didAction,\n didFilter = _createHooks.didFilter,\n actions = _createHooks.actions,\n filters = _createHooks.filters;\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/index.js?");
278
+
279
+ /***/ }),
280
+
281
+ /***/ "./node_modules/@wordpress/hooks/build-module/validateHookName.js":
282
+ /*!************************************************************************!*\
283
+ !*** ./node_modules/@wordpress/hooks/build-module/validateHookName.js ***!
284
+ \************************************************************************/
285
+ /*! exports provided: default */
286
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
287
+
288
+ "use strict";
289
+ eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Validate a hookName string.\n *\n * @param {string} hookName The hook name to validate. Should be a non empty string containing\n * only numbers, letters, dashes, periods and underscores. Also,\n * the hook name cannot begin with `__`.\n *\n * @return {boolean} Whether the hook name is valid.\n */\nfunction validateHookName(hookName) {\n if ('string' !== typeof hookName || '' === hookName) {\n // eslint-disable-next-line no-console\n console.error('The hook name must be a non-empty string.');\n return false;\n }\n\n if (/^__/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name cannot begin with `__`.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.');\n return false;\n }\n\n return true;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (validateHookName);\n//# sourceMappingURL=validateHookName.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/validateHookName.js?");
290
+
291
+ /***/ }),
292
+
293
+ /***/ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js":
294
+ /*!*************************************************************************!*\
295
+ !*** ./node_modules/@wordpress/hooks/build-module/validateNamespace.js ***!
296
+ \*************************************************************************/
297
+ /*! exports provided: default */
298
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
299
+
300
+ "use strict";
301
+ //eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Validate a namespace string.\n *\n * @param {string} namespace The namespace to validate - should take the form\n * `vendor/plugin/function`.\n *\n * @return {boolean} Whether the namespace is valid.\n */\nfunction validateNamespace(namespace) {\n if ('string' !== typeof namespace || '' === namespace) {\n // eslint-disable-next-line no-console\n console.error('The namespace must be a non-empty string.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.\\-\\/]*$/.test(namespace)) {\n // eslint-disable-next-line no-console\n console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.');\n return false;\n }\n\n return true;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (validateNamespace);\n//# sourceMappingURL=validateNamespace.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/validateNamespace.js?");
302
+
303
+ /***/ }),
304
+
305
+ /***/ "./src/js/view/general.js":
306
+ /*!********************************!*\
307
+ !*** ./src/js/view/general.js ***!
308
+ \********************************/
309
+ /*! no exports provided */
310
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
311
+
312
+ "use strict";
313
+ document.addEventListener("click", function(e){
314
+ var widgets = parent.document.querySelectorAll(".elementor-element--promotion");
315
+ if (widgets.length > 0) {
316
+ for (var i = 0; i < widgets.length; i++) {
317
+ if (widgets[i].contains(e.target)) {
318
+ var dialog = parent.document.querySelector("#elementor-element--promotion__dialog");
319
+ var icon = widgets[i].querySelector(".icon > i");
320
+ if (icon.classList.toString().indexOf("twae-pro") >= 0) { //if (icon.hasClass('twae-pro')){
321
+
322
+ dialog.querySelector(".dialog-buttons-action").style.display = "none";
323
+ e.stopImmediatePropagation();
324
+ if (dialog.querySelector(".twae-dialog-buttons-action") === null) {
325
+ var button = document.createElement("a");
326
+ var buttonText = document.createTextNode("Pro Version");
327
+ button.setAttribute("href", "https://cooltimeline.com/elementor-timeline-widget-pro-demo/");
328
+ button.setAttribute("target", "_blank");
329
+ button.classList.add("dialog-button", "dialog-action", "dialog-buttons-action", "elementor-button", "elementor-button-success", "twae-dialog-buttons-action");
330
+ button.appendChild(buttonText);
331
+ dialog.querySelector(".dialog-buttons-action").insertAdjacentHTML("afterend", button.outerHTML);
332
+ } else {
333
+ dialog.querySelector(".twae-dialog-buttons-action").style.display = "";
334
+ }
335
+ } else {
336
+
337
+ if (dialog.querySelector(".twae-dialog-buttons-action") !== null) {
338
+ dialog.querySelector(".twae-dialog-buttons-action").style.display = "none";
339
+ }
340
+ }
341
+ // stop loop
342
+ break;
343
+ }
344
+ }
345
+ }
346
+ });
347
+ }),
348
+
349
+ });
350
+
includes/class-twae.php CHANGED
@@ -30,9 +30,49 @@ class TWAE_WidgetClass {
30
  * @access public
31
  */
32
  public function __construct() {
 
33
  $this->twae_add_actions();
 
 
34
  }
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  /**
37
  * Add Actions
38
  *
@@ -62,7 +102,7 @@ class TWAE_WidgetClass {
62
  *
63
  * @access private
64
  */
65
- private function twae_widget_includes() {
66
  require_once TWAE_PATH . 'widgets/twae-widget.php';
67
  }
68
 
30
  * @access public
31
  */
32
  public function __construct() {
33
+ //add_filter( 'elementor/editor/localize_settings', [ $this, 'twae_localize_settings' ] );
34
  $this->twae_add_actions();
35
+ add_action( 'elementor/editor/after_enqueue_styles', [ $this, 'twae_editor_styles' ] );
36
+
37
  }
38
 
39
+ public function twae_editor_styles(){
40
+ wp_enqueue_style(
41
+ 'twae-editor-styles',
42
+ TWAE_URL . 'assets/css/twae-editor.css',array());
43
+
44
+ /* wp_enqueue_script(
45
+ 'twae-promotional-js',
46
+ TWAE_URL . 'assets/js/twae-promotional.js',array()); */
47
+ }
48
+
49
+ public function twae_localize_settings($config)
50
+ {
51
+ $promotion_widgets = [];
52
+
53
+ if (isset($config['promotionWidgets'])) {
54
+ $promotion_widgets = $config['promotionWidgets'];
55
+ }
56
+
57
+ $combine_array = array_merge($promotion_widgets, [
58
+ [
59
+ 'name' => 'twae-post-timeline',
60
+ 'title' => __('Post Timeline', 'twae'),
61
+ 'icon' => 'twae-pro eicon-time-line',
62
+ 'categories' => '["twae"]',
63
+ ],
64
+ [
65
+ 'name' => 'twae-process-timeline',
66
+ 'title' => __('Process Timeline', 'twae'),
67
+ 'icon' => 'twae-pro fa fa-sitemap',
68
+ 'categories' => '["twae"]',
69
+ ],
70
+ ]);
71
+
72
+ $config['promotionWidgets'] = $combine_array;
73
+
74
+ return $config;
75
+ }
76
  /**
77
  * Add Actions
78
  *
102
  *
103
  * @access private
104
  */
105
+ private function twae_widget_includes() {
106
  require_once TWAE_PATH . 'widgets/twae-widget.php';
107
  }
108
 
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
- === Elementor Timeline Widget Addon ===
2
  Contributors:narinder-singh,satindersingh,coolplugins
3
  Donate link: https://paypal.me/CoolPlugins/10USD/
4
  Tags:timeline,elementor,elementor timeline,elementor addon,elementor widgets,addons,roadmap,steps,event,history
5
  Requires at least:4.5
6
- Tested up to:5.5
7
  Requires PHP:5.6
8
  Stable tag:trunk
9
  License:GPLv2 or later
@@ -12,9 +12,9 @@ License URI:http://www.gnu.org/licenses/gpl-2.0.html
12
  Elementor timeline widget addon will showcase your company history or life story in a vertical or horizontal timeline layout.
13
 
14
  == Description ==
15
- ###Vertical & Horizontal Timeline For Elementor
16
 
17
- Showcase your story or life history in precise and elegant way using powerful and advance **Timeline Widget Addon for Elementor**.
18
 
19
  Using this elementor addon you can create a beautiful timeline with a few clicks. It supports 3 timeline layouts:-
20
 
@@ -24,9 +24,28 @@ Using this elementor addon you can create a beautiful timeline with a few clicks
24
 
25
  These layouts also support advance settings and you can easily manage colors, icons, images and content inside your timeline story.
26
 
27
- **[⭐ View Demo](https://cooltimeline.com/timeline-widget-demo)**
28
-
29
  https://youtu.be/05-jlAD-5bc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
  ### 🌟 Timeline Widget Features
32
 
@@ -39,6 +58,26 @@ https://youtu.be/05-jlAD-5bc
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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  ### 😎 Who's Behind?
43
 
44
  This addon has been developed by [Cool Timeline](https://cooltimeline.com) plugin developers. **[Cool Plugins](https://coolplugins.net)**, A team of experienced WordPress plugin developers.
@@ -71,7 +110,35 @@ You can show your stories, events, appointments, concerts, future & history happ
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.
1
+ === Elementor Timeline Widget Addon ===
2
  Contributors:narinder-singh,satindersingh,coolplugins
3
  Donate link: https://paypal.me/CoolPlugins/10USD/
4
  Tags:timeline,elementor,elementor timeline,elementor addon,elementor widgets,addons,roadmap,steps,event,history
5
  Requires at least:4.5
6
+ Tested up to:5.8.1
7
  Requires PHP:5.6
8
  Stable tag:trunk
9
  License:GPLv2 or later
12
  Elementor timeline widget addon will showcase your company history or life story in a vertical or horizontal timeline layout.
13
 
14
  == Description ==
15
+ ### Vertical & Horizontal Timeline For Elementor
16
 
17
+ Showcase your story or company history in precise and elegant way using powerful and advance **Timeline Widget Addon for Elementor**.
18
 
19
  Using this elementor addon you can create a beautiful timeline with a few clicks. It supports 3 timeline layouts:-
20
 
24
 
25
  These layouts also support advance settings and you can easily manage colors, icons, images and content inside your timeline story.
26
 
27
+ **[⭐ View Demo](https://cooltimeline.com/timeline-widget-demo)** | **[⭐ Buy PRO](https://coolplugins.net/product/elementor-timeline-widget-pro-addon/?utm_source=wp_plugin_page)**
28
+ https://www.youtube.com/watch?v=qUEEytOedqw
29
  https://youtu.be/05-jlAD-5bc
30
+ It is really important to let your audience know about the history of your brand especially when you are promoting it through a website.Our plugin will help you to hightlight events and stories precise way.
31
+
32
+ You can show history/future stories, events, appointments and many other cool things using Timeline Widgets plugin.
33
+
34
+ ### 🌟 Here are all areas where you can use this plugin:-
35
+
36
+ * Represent your company history.
37
+ * Showcase tutorial/process steps in timeline format.
38
+ * Create a program timeline.
39
+ * Timeline is best way to represent history.
40
+ * Create events / appointments timeline.
41
+ * Job stories / achievements timeline.
42
+ * Personal story timeline.
43
+ * Work experience timeline
44
+ * Step-by-step guide
45
+ * Events Timeline
46
+ * Product Roadmap &
47
+ * Brand Story
48
+ * History Timeline
49
 
50
  ### 🌟 Timeline Widget Features
51
 
58
 
59
  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/)**.
60
 
61
+ ### 🌟 Timeline Widget PRO Features
62
+
63
+ * **15+ Timeline Designs**
64
+ Create beautiful vertical & horizontal timeline designs.
65
+ * **Post Timeline**
66
+ Show your blog posts in a timeline layout anywhere on the website.
67
+ * **Animation Effect**
68
+ It has 15+ animation effects, fade-in, flip-up, zoom, etc.
69
+ * **Colors & Typography**
70
+ Use the advanced settings option to manage text size and colors.
71
+ * **Custom Color Story**
72
+ Easily apply different colors to each story in a timeline.
73
+ * **Image / Video / Slideshow**
74
+ Add image, video, or slideshow image.
75
+ * **Ajax Load More**
76
+ Load stories with page scroll via ajax pagination.
77
+ * **Icons in Timeline**
78
+ Font Awesome icon, custom text, or image as timeline Icon.
79
+ * **[⭐ Buy PRO](https://coolplugins.net/product/elementor-timeline-widget-pro-addon/?utm_source=wp_plugin_page)**
80
+
81
  ### 😎 Who's Behind?
82
 
83
  This addon has been developed by [Cool Timeline](https://cooltimeline.com) plugin developers. **[Cool Plugins](https://coolplugins.net)**, A team of experienced WordPress plugin developers.
110
  == Screenshots ==
111
  1. Elementor Timeline Widget Addon Preview
112
  2. Elementor Timeline Widget Addon Horizontal Timeline Preview
113
+ 3. Elementor Timeline Widget Addon Element Preview
114
+
115
  == Changelog ==
116
+ <strong>Version 1.3.2 | 21/10/2021</strong>
117
+ <pre>
118
+ New: Released PRO version
119
+ Tweaks:Textual changes
120
+ Improved: minor fixes
121
+ </pre>
122
+ <strong>Version 1.3.1 | 20/10/2021</strong>
123
+ <pre>
124
+ Improved: tested Upto Elementor version 3.4.6
125
+ Improved: minor textual changes
126
+ </pre>
127
+ <strong>Version 1.3 | 23/04/2021</strong>
128
+ <pre>
129
+ New:- Added Hide/Show option for Border
130
+ Fixed:-PHP Deprecated: Elementor\Scheme_Typography & Elementor\Scheme_Color
131
+ Improved:Settings panel
132
+ Improved:code flow
133
+ Improved: JS code
134
+ Improved:- Horizontal Timeline Responsive
135
+ Improved:- Tested upto 5.7
136
+ </pre>
137
+ <strong>Version 1.2.2 | 10 DEC 2020</strong>
138
+ <pre>
139
+ Fixed:-Fixed RTL support issues in horizontal layout
140
+ Fixed:- Tested upto 5.6
141
+ </pre>
142
  <strong>Version 1.2.1 | 19 SEPT 2020</strong>
143
  <pre>
144
  Fixed:-Fixed compatibility issues with Elementor 2.9 or lower version.
timeline-widget-addon-for-elementor.php CHANGED
@@ -3,13 +3,16 @@
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
 
 
10
  */
11
 
12
 
 
13
  if (!defined('ABSPATH')) {
14
  exit;
15
  }
@@ -18,10 +21,13 @@ if (defined('TWAE_VERSION')) {
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));
 
 
 
25
 
26
  register_activation_hook(TWAE_FILE, array('Timeline_Widget_Addon', 'twae_activate'));
27
  register_deactivation_hook(TWAE_FILE, array('Timeline_Widget_Addon', 'twae_deactivate'));
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.3.2
7
  * Author: Cool Plugins
8
  * Author URI: https://coolplugins.net/
9
  * Text Domain: twae
10
+ * Elementor tested up to: 3.4.6
11
+ * Elementor Pro tested up to: 3.4.2
12
  */
13
 
14
 
15
+
16
  if (!defined('ABSPATH')) {
17
  exit;
18
  }
21
  return;
22
  }
23
 
24
+ define('TWAE_VERSION', '1.3.2');
25
  define('TWAE_FILE', __FILE__);
26
  define('TWAE_PATH', plugin_dir_path(TWAE_FILE));
27
  define('TWAE_URL', plugin_dir_url(TWAE_FILE));
28
+ define('TWAE_BUY_PRO_LINK','https://bit.ly/elementor_timeline_pro');
29
+
30
+ define('TWAE_VIEW_DEMO','https://cooltimeline.com/elementor-timeline-widget-pro-demo/');
31
 
32
  register_activation_hook(TWAE_FILE, array('Timeline_Widget_Addon', 'twae_activate'));
33
  register_deactivation_hook(TWAE_FILE, array('Timeline_Widget_Addon', 'twae_deactivate'));
widgets/editor-layouts/horizontal-template.php CHANGED
@@ -1,4 +1,4 @@
1
- <div id="twae-horizontal-wrapper" class="twae-wrapper twae-horizontal swiper-container" data-slidestoshow = "{{{sidesToShow}}}" data-autoplay="{{{autoplay}}}">
2
  <div class="twae-horizontal-timeline swiper-wrapper">
3
  <#
4
  _.each( settings.twae_list, function( item, index ) {
@@ -57,7 +57,7 @@
57
  <# } #>
58
 
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>
1
+ <div id="twae-horizontal-wrapper" class="twae-wrapper twae-horizontal swiper-container" dir="<?php echo $dir ?>" data-slidestoshow = "{{{sidesToShow}}}" data-autoplay="{{{autoplay}}}">
2
  <div class="twae-horizontal-timeline swiper-wrapper">
3
  <#
4
  _.each( settings.twae_list, function( item, index ) {
57
  <# } #>
58
 
59
  </div>
60
+ <div class="twae-story-info {{{ no_border }}}">
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>
widgets/editor-layouts/vertical-template.php CHANGED
@@ -60,10 +60,10 @@
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 ) { #>
69
  {{{ twaeiconHTML.value }}}
@@ -72,7 +72,7 @@
72
  <# } #>
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>
60
  #>
61
  <article class="twae-timeline-entry {{{ story_alignment }}}">
62
  <div class="twae-timeline-entry-inner">
63
+ <div 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
+ </div>
67
  <div class="twae-icon">
68
  <# if ( twaeiconHTML && twaeiconHTML.rendered ) { #>
69
  {{{ twaeiconHTML.value }}}
72
  <# } #>
73
 
74
  </div>
75
+ <div class="twae-data-container {{{ no_border }}}">
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>
widgets/frontend-layouts/twae-centered-timeline.php CHANGED
@@ -63,14 +63,14 @@ echo '
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>
63
 
64
  echo '<article class="twae-timeline-entry '.esc_attr($left_aligned).'">
65
  <div class="twae-timeline-entry-inner">
66
+ <div 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
+ </div>
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 '.$no_border.'">
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>
widgets/frontend-layouts/twae-horizontal-timeline.php CHANGED
@@ -2,7 +2,7 @@
2
  $sidesToShow = isset($settings['twae_slides_to_show'])
3
  && !empty($settings['twae_slides_to_show'])?$settings['twae_slides_to_show']:2;
4
 
5
- echo '<div id="twae-horizontal-wrapper" class="twae-wrapper twae-horizontal swiper-container" data-slidestoshow = "'.esc_attr($sidesToShow).'" data-autoplay="'.esc_attr($autoplay).'">
6
  <div class="twae-horizontal-timeline swiper-wrapper">';
7
  if(is_array($data)){
8
  foreach($data as $index=>$content){
@@ -65,7 +65,7 @@ echo '<div id="twae-horizontal-wrapper" class="twae-wrapper twae-horizontal swip
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>
2
  $sidesToShow = isset($settings['twae_slides_to_show'])
3
  && !empty($settings['twae_slides_to_show'])?$settings['twae_slides_to_show']:2;
4
 
5
+ echo '<div id="twae-horizontal-wrapper" class="twae-wrapper twae-horizontal swiper-container" dir="'.$dir.'" data-slidestoshow = "'.esc_attr($sidesToShow).'" data-autoplay="'.esc_attr($autoplay).'">
6
  <div class="twae-horizontal-timeline swiper-wrapper">';
7
  if(is_array($data)){
8
  foreach($data as $index=>$content){
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 '.$no_border.'">
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>
widgets/twae-widget.php CHANGED
@@ -3,11 +3,12 @@ use Elementor\Widget_Base;
3
  use Elementor\Utils;
4
  use Elementor\Repeater;
5
  use Elementor\Controls_Manager;
6
- use Elementor\Scheme_Color;
 
7
  use Elementor\Group_Control_Image_Size;
8
  use Elementor\Group_Control_Background;
9
  use Elementor\Group_Control_Typography;
10
- use Elementor\Scheme_Typography;
11
 
12
  class TWAE_Widget extends \Elementor\Widget_Base {
13
 
@@ -17,9 +18,12 @@ class TWAE_Widget extends \Elementor\Widget_Base {
17
  wp_register_style( 'twae-horizontal-css', TWAE_URL . 'assets/css/twae-horizontal-styles.min.css', array());
18
  wp_register_style( 'twae-fontello-css', TWAE_URL . 'assets/css/twae-fontello.css', array());
19
  wp_register_script( 'twae-horizontal-js', TWAE_URL . 'assets/js/twae-horizontal.min.js',[ 'elementor-frontend' ],null, true );
20
-
 
21
  }
22
 
 
 
23
  public function get_script_depends() {
24
  if (\Elementor\Plugin::$instance->editor->is_edit_mode() || \Elementor\Plugin::$instance->preview->is_preview_mode()) {
25
  return [ 'twae-horizontal-js' ];
@@ -34,19 +38,19 @@ class TWAE_Widget extends \Elementor\Widget_Base {
34
  }
35
 
36
  public function get_style_depends() {
37
- $styles = ['twae-fontello-css'];
38
  if (\Elementor\Plugin::$instance->editor->is_edit_mode() || \Elementor\Plugin::$instance->preview->is_preview_mode()) {
39
- return [ 'twae-centered-css','twae-horizontal-css','twae-fontello-css' ];
40
  }
41
  $settings = $this->get_settings_for_display();
42
  $layout = $settings['twae_layout'];
43
-
44
  if($layout == 'horizontal'){
45
  array_push($styles, 'twae-horizontal-css');
46
  }else{
47
  array_push($styles, 'twae-centered-css');
48
  }
49
-
50
  return $styles ;
51
  }
52
 
@@ -55,7 +59,7 @@ class TWAE_Widget extends \Elementor\Widget_Base {
55
  }
56
 
57
  public function get_title() {
58
- return __( 'Timeline Widget Addon', 'twae' );
59
  }
60
 
61
  public function get_icon() {
@@ -63,7 +67,7 @@ class TWAE_Widget extends \Elementor\Widget_Base {
63
  }
64
 
65
  public function get_categories() {
66
- return [ 'general' ];
67
  }
68
 
69
  protected function _register_controls() {
@@ -83,13 +87,26 @@ class TWAE_Widget extends \Elementor\Widget_Base {
83
  'type' => \Elementor\Controls_Manager::SELECT,
84
  'default' => 'centered',
85
  'options'=>[
86
- 'centered'=>'Centered',
87
  'one-sided'=>'One Sided',
88
  'horizontal'=>'Horizontal',
89
  ],
90
  'default' => 'centered',
91
  ]
92
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
93
 
94
  $this->add_control(
95
  'twae_slides_to_show',
@@ -141,254 +158,125 @@ class TWAE_Widget extends \Elementor\Widget_Base {
141
  ]
142
  ]
143
  );
144
-
145
 
146
  $this->end_controls_section();
147
-
148
 
149
  $this->start_controls_section(
150
- 'twae_typography_section',
151
  [
152
- 'label' => __( 'Typography Settings', 'twae' ),
153
  'tab' => \Elementor\Controls_Manager::TAB_STYLE,
154
  ]
155
  );
156
-
157
-
158
- /*---- Year Label ----*/
159
- $this->add_group_control(
160
- Group_Control_Typography::get_type(),
161
- [
162
- 'name' => 'twae_year_typography',
163
- 'label' => __( 'Year Typography', 'twae' ),
164
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
165
- 'selector' => '{{WRAPPER}} .twae-wrapper .twae-year',
166
- 'fields_options' => [
167
- // first mimic the click on Typography edit icon
168
- 'typography' => ['default' => 'yes'],
169
- // then redifine the Elementor defaults
170
- 'font_size' => ['default' => [ 'unit' => 'px', 'size' => 16 ]],
171
- 'font_weight' => ['default' => 'bold']
172
- ],
173
- ]
174
- );
175
-
176
-
177
- /*---- Date / Custom Label ----*/
178
- $this->add_group_control(
179
- Group_Control_Typography::get_type(),
180
- [
181
- 'name' => 'twae_label_typography',
182
- 'label' => __( 'Story Label Typography', 'twae' ),
183
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
184
- 'selector' => '{{WRAPPER}} .twae-wrapper span.twae-label',
185
- 'fields_options' => [
186
- // first mimic the click on Typography edit icon
187
- 'typography' => ['default' => 'yes'],
188
- // then redifine the Elementor defaults
189
- 'font_size' => ['default' => [ 'unit' => 'px', 'size' => 20 ]],
190
- 'font_weight' => ['default' => 600]
191
- ],
192
- ]
193
- );
194
-
195
-
196
- /*---- Small Label Below Date Label ----*/
197
- $this->add_group_control(
198
- Group_Control_Typography::get_type(),
199
- [
200
- 'name' => 'twae_extra_label_typography',
201
- 'label' => __( 'Story Extra Label Typography', 'twae' ),
202
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
203
- 'selector' => '{{WRAPPER}} .twae-wrapper span.twae-extra-label',
204
- 'fields_options' => [
205
- // first mimic the click on Typography edit icon
206
- 'typography' => ['default' => 'yes'],
207
- // then redifine the Elementor defaults
208
- 'font_size' => ['default' => [ 'unit' => 'px', 'size' => 15 ]],
209
- 'font_weight' => ['default' => 'normal']
210
- ],
211
- ]
212
- );
213
-
214
-
215
- /*---- Story Title ----*/
216
- $this->add_group_control(
217
- Group_Control_Typography::get_type(),
218
- [
219
- 'name' => 'twae_title_typography',
220
- 'label' => __( 'Story Title Typography', 'twae' ),
221
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
222
- 'selector' => '{{WRAPPER}} .twae-wrapper span.twae-title',
223
- 'fields_options' => [
224
- // first mimic the click on Typography edit icon
225
- 'typography' => ['default' => 'yes'],
226
- // then redifine the Elementor defaults
227
- 'font_size' => ['default' => [ 'unit' => 'px', 'size' => 20 ]],
228
- 'font_weight' => ['default' => 600]
229
- ],
230
- ]
231
- );
232
-
233
-
234
- /*---- Story Description ----*/
235
- $this->add_group_control(
236
- Group_Control_Typography::get_type(),
237
- [
238
- 'name' => 'twae_description_typography',
239
- 'label' => __( 'Story Description Typography', 'twae' ),
240
- 'scheme' => Scheme_Typography::TYPOGRAPHY_3,
241
- 'selector' => '{{WRAPPER}} .twae-wrapper .twae-description',
242
- 'fields_options' => [
243
- // first mimic the click on Typography edit icon
244
- 'typography' => ['default' => 'yes'],
245
- // then redifine the Elementor defaults
246
- 'font_size' => ['default' => [ 'unit' => 'px', 'size' => 16 ]],
247
- 'font_weight' => ['default' => 'normal']
248
- ],
249
- ]
250
- );
251
-
252
-
253
- /*---- Story ICON ----*/
254
- $this->add_control(
255
- 'twae_icon_size',
256
- [
257
- 'label' => __( 'Icon Size', 'twae' ),
258
- 'type' => Controls_Manager::SLIDER,
259
- 'range' => [
260
- 'px' => [
261
- 'min' => 12,
262
- 'max' => 36,
263
  ],
264
- ],
265
- 'default' => [
266
- 'unit' => 'px',
267
- 'size' => 20,
268
- ],
269
- 'selectors' => [
270
- '{{WRAPPER}} .twae-wrapper .twae-icon i' => 'font-size: {{SIZE}}{{UNIT}}',
271
- ],
272
- //'default' => '.75rem',
273
- ]
274
- );
 
 
 
 
 
275
 
276
  $this->add_control(
277
- 'twae_icon_padding',
278
- [
279
- 'label' => __( 'Icon Padding', 'twae' ),
280
- 'type' => Controls_Manager::DIMENSIONS,
281
- 'size_units' => [ 'px', '%', 'em' ],
282
- 'selectors' => [
283
- '{{WRAPPER}} .twae-wrapper .twae-icon' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
284
- ],
285
- ]
286
- );
287
-
288
- $this->end_controls_section();
289
-
290
- $this->start_controls_section(
291
- 'twae_style_section',
292
  [
293
- 'label' => __( 'Color Settings', 'twae' ),
294
- 'tab' => \Elementor\Controls_Manager::TAB_STYLE,
 
295
  ]
296
  );
297
 
298
  $this->add_control(
299
- 'twae_year_label_color',
300
  [
301
- 'label' => __( 'Year/Label Color', 'twae' ),
302
  'type' => Controls_Manager::COLOR,
303
  'scheme' => [
304
- 'type' => Scheme_Color::get_type(),
305
- 'value' => Scheme_Color::COLOR_2,
306
  ],
307
  'selectors' => [
308
- '{{WRAPPER}} .twae-wrapper .twae-year' => 'color: {{twae_year_label_color}}',
309
  ],
310
- 'default' => '#ffffff',
311
  ]
312
  );
313
-
314
- $this->add_control(
315
- 'twae_year_label_bgcolor',
316
  [
317
- 'label' => __( 'Year/Label Background Color', 'twae' ),
318
- 'type' => Controls_Manager::COLOR,
319
- 'scheme' => [
320
- 'type' => Scheme_Color::get_type(),
321
- 'value' => Scheme_Color::COLOR_2,
322
- ],
323
- 'selectors' => [
324
- '{{WRAPPER}} .twae-wrapper .twae-year' => 'background-color: {{twae_year_label_bgcolor}}',
325
- ],
326
- 'default' => '#54595F',
327
  ]
328
  );
329
 
330
  $this->add_control(
331
- 'twae_date_label_color',
332
  [
333
- 'label' => __( 'Story Date/Label Color', 'twae' ),
334
- 'type' => Controls_Manager::COLOR,
335
- 'scheme' => [
336
- 'type' => Scheme_Color::get_type(),
337
- 'value' => Scheme_Color::COLOR_2,
338
- ],
339
- 'selectors' => [
340
- '{{WRAPPER}} .twae-wrapper span.twae-label' => 'color: {{twae_date_label_color}}',
341
- ],
342
- 'default' => '#23A455',
343
  ]
344
  );
345
 
346
  $this->add_control(
347
- 'twae_extra_label_color',
348
  [
349
- 'label' => __( 'Story Extra Label Color', 'twae' ),
350
  'type' => Controls_Manager::COLOR,
351
  'scheme' => [
352
- 'type' => Scheme_Color::get_type(),
353
- 'value' => Scheme_Color::COLOR_2,
354
  ],
355
  'selectors' => [
356
- '{{WRAPPER}} .twae-wrapper span.twae-extra-label' => 'color: {{twae_extra_label_color}}',
357
  ],
358
- 'default' => '#7A7A7A',
359
  ]
360
  );
361
-
362
- $this->add_control(
363
- 'twae_story_title_color',
364
  [
365
- 'label' => __( 'Story Title Color', 'twae' ),
366
- 'type' => Controls_Manager::COLOR,
367
- 'scheme' => [
368
- 'type' => Scheme_Color::get_type(),
369
- 'value' => Scheme_Color::COLOR_2,
370
- ],
371
- 'selectors' => [
372
- '{{WRAPPER}} .twae-wrapper .twae-data-container span.twae-title' => 'color: {{twae_story_title_color}}',
373
- '{{WRAPPER}} .twae-horizontal span.twae-title' => 'color: {{twae_story_title_color}}',
374
- ],
375
- 'default' => '#23A455',
376
  ]
377
  );
378
 
379
  $this->add_control(
380
- 'twae_description_color',
381
  [
382
- 'label' => __( 'Story Description Color', 'twae' ),
383
- 'type' => Controls_Manager::COLOR,
384
- 'scheme' => [
385
- 'type' => Scheme_Color::get_type(),
386
- 'value' => Scheme_Color::COLOR_2,
387
- ],
388
- 'selectors' => [
389
- '{{WRAPPER}} .twae-wrapper .twae-description' => 'color: {{twae_description_color}}',
390
- ],
391
- 'default' => '#333333',
392
  ]
393
  );
394
 
@@ -397,10 +285,6 @@ class TWAE_Widget extends \Elementor\Widget_Base {
397
  [
398
  'label' => __( 'Line Color', 'twae' ),
399
  'type' => Controls_Manager::COLOR,
400
- 'scheme' => [
401
- 'type' => Scheme_Color::get_type(),
402
- 'value' => Scheme_Color::COLOR_2,
403
- ],
404
  'selectors' => [
405
  '{{WRAPPER}} .twae-wrapper .twae-line::before' => 'background-color: {{twae_line_color}}',
406
  '{{WRAPPER}} .twae-wrapper .twae-timeline-centered .twae-icon' => 'border-color: {{twae_line_color}}',
@@ -411,18 +295,28 @@ class TWAE_Widget extends \Elementor\Widget_Base {
411
  '{{WRAPPER}} .twae-horizontal .twae-button-prev' => 'color: {{twae_line_color}}',
412
  '{{WRAPPER}} .twae-horizontal .twae-button-next' => 'color: {{twae_line_color}}',
413
  ],
414
- 'default' => '#D6D6D6',
 
 
 
 
 
 
 
 
 
 
415
  ]
416
  );
417
 
418
  $this->add_control(
419
  'twae_icon_bgcolor',
420
  [
421
- 'label' => __( 'Icon Background Color', 'twae' ),
422
  'type' => Controls_Manager::COLOR,
423
  'scheme' => [
424
- 'type' => Scheme_Color::get_type(),
425
- 'value' => Scheme_Color::COLOR_2,
426
  ],
427
  'selectors' => [
428
  '{{WRAPPER}} .twae-wrapper .twae-icon' => 'background-color: {{twae_icon_bgcolor}}',
@@ -430,75 +324,226 @@ class TWAE_Widget extends \Elementor\Widget_Base {
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
  ]
438
  );
439
 
440
  $this->add_control(
441
  'twae_story_bgcolor',
442
  [
443
- 'label' => __( 'Story Background Color', 'twae' ),
444
  'type' => Controls_Manager::COLOR,
445
- 'scheme' => [
446
- 'type' => Scheme_Color::get_type(),
447
- 'value' => Scheme_Color::COLOR_2,
448
- ],
449
  'selectors' => [
450
  '{{WRAPPER}} .twae-wrapper .twae-data-container' => 'background-color: {{twae_story_bgcolor}}',
451
- '{{WRAPPER}} .twae-wrapper .twae-icon' => 'color: {{twae_icon_bgcolor}}',
452
- '{{WRAPPER}} .twae-horizontal .twae-story-info' => 'background-color: {{twae_icon_bgcolor}}',
 
 
 
 
 
 
 
 
 
453
  ],
454
- 'default' => '#fff9ed',
455
 
456
  ]
457
  );
458
 
459
  $this->end_controls_section();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
460
 
461
  $this->start_controls_section(
462
  'twae_content_section',
463
  [
464
- 'label' => __( 'Timeline Story Settings', 'twae' ),
465
  'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
466
  ]
467
  );
468
 
469
  $repeater = new \Elementor\Repeater();
470
 
471
- $repeater->add_control(
472
- 'twae_show_year_label',
 
 
 
 
473
  [
474
- 'label' => __( 'Year/Label', 'twae' ),
475
- 'type' => \Elementor\Controls_Manager::SWITCHER,
476
- 'label_on' => __( 'Show', 'twae' ),
477
- 'label_off' => __( 'Hide', 'twae' ),
478
- 'return_value' => 'yes',
479
- 'default' => 'no',
480
  ]
481
  );
482
-
483
- $repeater->add_control(
484
- 'twae_year',
485
- [
486
- 'label' => __( 'Year/Label', 'twae' ),
487
- 'type' => \Elementor\Controls_Manager::TEXT,
488
- 'default' => '2020',
489
- 'condition' => [
490
- 'twae_show_year_label' => [
491
- 'yes'
492
- ],
493
- ]
494
 
495
- ]
496
- );
497
 
498
  $repeater->add_control(
499
  'twae_date_label',
500
  [
501
- 'label' => __( 'Story Date/Label', 'twae' ),
502
  'type' => \Elementor\Controls_Manager::TEXT,
503
  'default' => '01 Jan 2020',
504
  ]
@@ -507,9 +552,9 @@ class TWAE_Widget extends \Elementor\Widget_Base {
507
  $repeater->add_control(
508
  'twae_extra_label',
509
  [
510
- 'label' => __( 'Extra Label', 'twae' ),
511
  'type' => \Elementor\Controls_Manager::TEXT,
512
- 'default' => 'Extra Label',
513
  ]
514
  );
515
 
@@ -519,6 +564,7 @@ class TWAE_Widget extends \Elementor\Widget_Base {
519
  'label' => __( 'Timeline Story Title', 'twae' ),
520
  'type' => \Elementor\Controls_Manager::TEXT,
521
  'default' => 'Timeline Story',
 
522
  ]
523
  );
524
 
@@ -533,21 +579,69 @@ class TWAE_Widget extends \Elementor\Widget_Base {
533
  ],
534
  ]
535
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
536
 
537
  $repeater->add_group_control(
538
  Group_Control_Image_Size::get_type(),
539
- [
 
540
  'name' => 'twae_thumbnail', // Usage: `{name}_size` and `{name}_custom_dimension`, in this case `thumbnail_size` and `thumbnail_custom_dimension`.
541
  'separator' => 'none',
542
  ]
543
  );
544
 
545
  $repeater->add_control(
546
- 'twae_description',
547
  [
548
- 'label' => __( 'Description', 'twae' ),
549
- 'type' => \Elementor\Controls_Manager::WYSIWYG,
550
- 'default' => 'Add Description Here',
551
  ]
552
  );
553
 
@@ -561,13 +655,42 @@ class TWAE_Widget extends \Elementor\Widget_Base {
561
  'library' => 'solid',
562
  ],
563
  ]
564
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
565
 
566
  $this->add_control(
567
  'twae_list',
568
  [
569
 
570
- 'label' => __( 'Timeline Widget Addon For Elementor', 'twae' ),
571
  'type' => \Elementor\Controls_Manager::REPEATER,
572
  'fields' => $repeater->get_controls(),
573
  'default' => [
@@ -612,6 +735,115 @@ class TWAE_Widget extends \Elementor\Widget_Base {
612
 
613
  $this->end_controls_section();
614
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
615
  }
616
 
617
  // for frontend
@@ -622,7 +854,18 @@ class TWAE_Widget extends \Elementor\Widget_Base {
622
  $layout = $settings['twae_layout'];
623
  $autoplay = $settings['twae_autoplay'];
624
  $sidesHeight = $settings['twae_slides_height'];
 
 
 
 
 
625
 
 
 
 
 
 
 
626
  $timeline_layout_wrapper = "twae-centered";
627
  $timeline_layout = '';
628
  if($layout == 'one-sided'){
@@ -649,8 +892,23 @@ class TWAE_Widget extends \Elementor\Widget_Base {
649
 
650
  ?>
651
  <#
652
- if( settings.twae_list ) {
653
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
654
  if(settings.twae_layout == 'horizontal'){
655
  var sidesToShow = settings.twae_slides_to_show;
656
  var sidesHeight = settings.twae_slides_height;
3
  use Elementor\Utils;
4
  use Elementor\Repeater;
5
  use Elementor\Controls_Manager;
6
+ //use Elementor\Scheme_Color;
7
+ use Elementor\Core\Schemes\Color;
8
  use Elementor\Group_Control_Image_Size;
9
  use Elementor\Group_Control_Background;
10
  use Elementor\Group_Control_Typography;
11
+ //use Elementor\Scheme_Typography;
12
 
13
  class TWAE_Widget extends \Elementor\Widget_Base {
14
 
18
  wp_register_style( 'twae-horizontal-css', TWAE_URL . 'assets/css/twae-horizontal-styles.min.css', array());
19
  wp_register_style( 'twae-fontello-css', TWAE_URL . 'assets/css/twae-fontello.css', array());
20
  wp_register_script( 'twae-horizontal-js', TWAE_URL . 'assets/js/twae-horizontal.min.js',[ 'elementor-frontend' ],null, true );
21
+ wp_register_style( 'twae-color-typography', TWAE_URL . 'assets/css/twae-colors-typography.css', array());
22
+ wp_register_style( 'font-awesome-5-all', ELEMENTOR_ASSETS_URL . 'lib/font-awesome/css/all.min.css', false);//load elementor fontawesome
23
  }
24
 
25
+
26
+
27
  public function get_script_depends() {
28
  if (\Elementor\Plugin::$instance->editor->is_edit_mode() || \Elementor\Plugin::$instance->preview->is_preview_mode()) {
29
  return [ 'twae-horizontal-js' ];
38
  }
39
 
40
  public function get_style_depends() {
41
+
42
  if (\Elementor\Plugin::$instance->editor->is_edit_mode() || \Elementor\Plugin::$instance->preview->is_preview_mode()) {
43
+ return [ 'twae-centered-css','twae-horizontal-css','twae-fontello-css','twae-color-typography','font-awesome-5-all' ];
44
  }
45
  $settings = $this->get_settings_for_display();
46
  $layout = $settings['twae_layout'];
47
+ $styles = ['twae-fontello-css','font-awesome-5-all'];
48
  if($layout == 'horizontal'){
49
  array_push($styles, 'twae-horizontal-css');
50
  }else{
51
  array_push($styles, 'twae-centered-css');
52
  }
53
+ array_push($styles, 'twae-color-typography');
54
  return $styles ;
55
  }
56
 
59
  }
60
 
61
  public function get_title() {
62
+ return __( 'Story Timeline', 'twae' );
63
  }
64
 
65
  public function get_icon() {
67
  }
68
 
69
  public function get_categories() {
70
+ return [ 'twae' ];
71
  }
72
 
73
  protected function _register_controls() {
87
  'type' => \Elementor\Controls_Manager::SELECT,
88
  'default' => 'centered',
89
  'options'=>[
90
+ 'centered'=>'Both Sided',
91
  'one-sided'=>'One Sided',
92
  'horizontal'=>'Horizontal',
93
  ],
94
  'default' => 'centered',
95
  ]
96
  );
97
+
98
+ $this->add_control(
99
+ 'twae_style_option',
100
+ [
101
+ 'label' => __('','twae'),
102
+ 'type' => \Elementor\Controls_Manager::RAW_HTML,
103
+ 'raw' => '<span class="twae-option-label">'.__('Style','twae').'</span><a href="'.TWAE_BUY_PRO_LINK.'" target="_blank"><span class="twae-pro-label">'.__('Pro','twae').'</span></a>
104
+ <select name="twae_style" disabled>
105
+ <option value="style-1">Classic</option>
106
+ </select>',
107
+ 'content_classes' => 'twae_style_option',
108
+ ]
109
+ );
110
 
111
  $this->add_control(
112
  'twae_slides_to_show',
158
  ]
159
  ]
160
  );
 
161
 
162
  $this->end_controls_section();
 
163
 
164
  $this->start_controls_section(
165
+ 'twae_Basic_styles_section',
166
  [
167
+ 'label' => __( 'Color & Typography Settings', 'twae' ),
168
  'tab' => \Elementor\Controls_Manager::TAB_STYLE,
169
  ]
170
  );
171
+ $this->add_control(
172
+ 'twae_title_section',
173
+ [
174
+ 'label' => __( 'Title', 'plugin-name' ),
175
+ 'type' => \Elementor\Controls_Manager::HEADING,
176
+ ]
177
+ );
178
+
179
+ /*---- Story Title ----*/
180
+ $this->add_control(
181
+ 'twae_story_title_color',
182
+ [
183
+ 'label' => __( 'Color', 'twae' ),
184
+ 'type' => Controls_Manager::COLOR,
185
+ 'scheme' => [
186
+ 'type' => Elementor\Core\Schemes\Color::get_type(),
187
+ 'value' => Elementor\Core\Schemes\Color::COLOR_1,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
  ],
189
+ 'selectors' => [
190
+ '{{WRAPPER}} .twae-wrapper .twae-data-container span.twae-title' => 'color: {{twae_story_title_color}}',
191
+ '{{WRAPPER}} .twae-horizontal span.twae-title' => 'color: {{twae_story_title_color}}',
192
+ ],
193
+ //'default' => '#23A455',
194
+ ]
195
+ );
196
+
197
+ $this->add_group_control(
198
+ Group_Control_Typography::get_type(),
199
+ [
200
+ 'name' => 'twae_title_typography',
201
+ 'label' => __( 'Typography', 'twae' ),
202
+ 'selector' => '{{WRAPPER}} .twae-wrapper span.twae-title',
203
+ ]
204
+ );
205
 
206
  $this->add_control(
207
+ 'twae_label_section',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
  [
209
+ 'label' => __( 'Primary Label', 'plugin-name' ),
210
+ 'type' => \Elementor\Controls_Manager::HEADING,
211
+ 'separator' => 'before',
212
  ]
213
  );
214
 
215
  $this->add_control(
216
+ 'twae_date_label_color',
217
  [
218
+ 'label' => __( 'Color', 'twae' ),
219
  'type' => Controls_Manager::COLOR,
220
  'scheme' => [
221
+ 'type' => Elementor\Core\Schemes\Color::get_type(),
222
+ 'value' => Elementor\Core\Schemes\Color::COLOR_1,
223
  ],
224
  'selectors' => [
225
+ '{{WRAPPER}} .twae-wrapper span.twae-label' => 'color: {{twae_date_label_color}}',
226
  ],
227
+ //'default' => '#23A455',
228
  ]
229
  );
230
+
231
+ $this->add_group_control(
232
+ Group_Control_Typography::get_type(),
233
  [
234
+ 'name' => 'twae_label_typography',
235
+ 'label' => __( 'Typography', 'twae' ),
236
+ 'selector' => '{{WRAPPER}} .twae-wrapper span.twae-label',
 
 
 
 
 
 
 
237
  ]
238
  );
239
 
240
  $this->add_control(
241
+ 'twae_description_section',
242
  [
243
+ 'label' => __( 'Description', 'twae' ),
244
+ 'type' => \Elementor\Controls_Manager::HEADING,
245
+ 'separator' => 'before',
 
 
 
 
 
 
 
246
  ]
247
  );
248
 
249
  $this->add_control(
250
+ 'twae_description_color',
251
  [
252
+ 'label' => __( 'Color', 'twae' ),
253
  'type' => Controls_Manager::COLOR,
254
  'scheme' => [
255
+ 'type' => Elementor\Core\Schemes\Color::get_type(),
256
+ 'value' => Elementor\Core\Schemes\Color::COLOR_3,
257
  ],
258
  'selectors' => [
259
+ '{{WRAPPER}} .twae-wrapper .twae-description' => 'color: {{twae_description_color}}',
260
  ],
261
+ //'default' => '#333333',
262
  ]
263
  );
264
+
265
+ $this->add_group_control(
266
+ Group_Control_Typography::get_type(),
267
  [
268
+ 'name' => 'twae_description_typography',
269
+ 'label' => __( 'Typography', 'twae' ),
270
+ 'selector' => '{{WRAPPER}} .twae-wrapper .twae-description',
 
 
 
 
 
 
 
 
271
  ]
272
  );
273
 
274
  $this->add_control(
275
+ 'twae_middle_line_section',
276
  [
277
+ 'label' => __( 'Middle Line', 'twae' ),
278
+ 'type' => \Elementor\Controls_Manager::HEADING,
279
+ 'separator' => 'before',
 
 
 
 
 
 
 
280
  ]
281
  );
282
 
285
  [
286
  'label' => __( 'Line Color', 'twae' ),
287
  'type' => Controls_Manager::COLOR,
 
 
 
 
288
  'selectors' => [
289
  '{{WRAPPER}} .twae-wrapper .twae-line::before' => 'background-color: {{twae_line_color}}',
290
  '{{WRAPPER}} .twae-wrapper .twae-timeline-centered .twae-icon' => 'border-color: {{twae_line_color}}',
295
  '{{WRAPPER}} .twae-horizontal .twae-button-prev' => 'color: {{twae_line_color}}',
296
  '{{WRAPPER}} .twae-horizontal .twae-button-next' => 'color: {{twae_line_color}}',
297
  ],
298
+ //'default' => '#D6D6D6',
299
+ ]
300
+ );
301
+
302
+
303
+ $this->add_control(
304
+ 'twae_icon_section',
305
+ [
306
+ 'label' => __( 'Icon/Icon placeholder', 'twae' ),
307
+ 'type' => \Elementor\Controls_Manager::HEADING,
308
+ 'separator' => 'before',
309
  ]
310
  );
311
 
312
  $this->add_control(
313
  'twae_icon_bgcolor',
314
  [
315
+ 'label' => __( 'Background Color', 'twae' ),
316
  'type' => Controls_Manager::COLOR,
317
  'scheme' => [
318
+ 'type' => Elementor\Core\Schemes\Color::get_type(),
319
+ 'value' => Elementor\Core\Schemes\Color::COLOR_1,
320
  ],
321
  'selectors' => [
322
  '{{WRAPPER}} .twae-wrapper .twae-icon' => 'background-color: {{twae_icon_bgcolor}}',
324
  '{{WRAPPER}} .twae-horizontal .twae-story-info:before' => 'border-bottom-color: {{twae_icon_bgcolor}}',
325
  '{{WRAPPER}} .twae-wrapper .twae-data-container:after' => 'border-right-color: {{twae_icon_bgcolor}}',
326
  '{{WRAPPER}} .twae-wrapper .twae-right-aligned .twae-data-container' => 'border-left-color: {{twae_icon_bgcolor}}',
327
+ 'body[data-elementor-device-mode=desktop] {{WRAPPER}} .twae-wrapper .twae-left-aligned .twae-data-container,
328
+ body[data-elementor-device-mode=tablet] {{WRAPPER}} .twae-wrapper .twae-left-aligned .twae-data-container' => 'border-right-color: {{twae_icon_bgcolor}}',
329
  'body[data-elementor-device-mode=mobile] {{WRAPPER}} .twae-wrapper .twae-left-aligned .twae-data-container' => 'border-left-color: {{twae_icon_bgcolor}}',
330
  ],
331
+ //'default' => '#23A455',
332
+ ]
333
+ );
334
+
335
+ $this->add_control(
336
+ 'twae_story_bgcolor_section',
337
+ [
338
+ 'label' => __( 'Story Background', 'twae' ),
339
+ 'type' => \Elementor\Controls_Manager::HEADING,
340
+ 'separator' => 'before',
341
  ]
342
  );
343
 
344
  $this->add_control(
345
  'twae_story_bgcolor',
346
  [
347
+ 'label' => __( 'Background Color', 'twae' ),
348
  'type' => Controls_Manager::COLOR,
 
 
 
 
349
  'selectors' => [
350
  '{{WRAPPER}} .twae-wrapper .twae-data-container' => 'background-color: {{twae_story_bgcolor}}',
351
+ '{{WRAPPER}} .twae-wrapper .twae-icon' => 'color: {{twae_story_bgcolor}}',
352
+ '{{WRAPPER}} .twae-horizontal .twae-story-info' => 'background-color: {{twae_story_bgcolor}}',
353
+
354
+ '{{WRAPPER}} .twae-horizontal .twae-story-info.twae-no-border' => 'border-color: {{twae_story_bgcolor}}',
355
+ '{{WRAPPER}} .twae-horizontal .twae-story-info.twae-no-border:before' => 'border-bottom-color: {{twae_story_bgcolor}}',
356
+ '{{WRAPPER}} .twae-wrapper .twae-data-container.twae-no-border:after' => 'border-right-color: {{twae_story_bgcolor}}',
357
+ '{{WRAPPER}} .twae-wrapper .twae-right-aligned .twae-data-container.twae-no-border' => 'border-left-color: {{twae_story_bgcolor}}',
358
+ 'body[data-elementor-device-mode=desktop] {{WRAPPER}} .twae-wrapper .twae-left-aligned .twae-data-container.twae-no-border,
359
+ body[data-elementor-device-mode=tablet] {{WRAPPER}} .twae-wrapper .twae-left-aligned .twae-data-container.twae-no-border' => 'border-right-color: {{twae_story_bgcolor}}',
360
+ 'body[data-elementor-device-mode=mobile] {{WRAPPER}} .twae-wrapper .twae-left-aligned .twae-data-container.twae-no-border' => 'border-left-color: {{twae_story_bgcolor}}',
361
+
362
  ],
363
+ //'default' => '#fff9ed',
364
 
365
  ]
366
  );
367
 
368
  $this->end_controls_section();
369
+
370
+ $this->start_controls_section(
371
+ 'twae_extra_styles_section',
372
+ [
373
+ 'label' => __( 'Extra Settings', 'twae' ),
374
+ 'tab' => \Elementor\Controls_Manager::TAB_STYLE,
375
+ ]
376
+ );
377
+
378
+ /*---- Year Label ----*/
379
+ $this->add_control(
380
+ 'twae_year_label_section',
381
+ [
382
+ 'label' => __( 'Middle Line Label', 'plugin-name' ),
383
+ 'type' => \Elementor\Controls_Manager::HEADING,
384
+ 'separator' => 'before',
385
+ ]
386
+ );
387
+
388
+ $this->add_control(
389
+ 'twae_year_label_color',
390
+ [
391
+ 'label' => __( 'Color', 'twae' ),
392
+ 'type' => Controls_Manager::COLOR,
393
+ 'selectors' => [
394
+ '{{WRAPPER}} .twae-wrapper .twae-year' => 'color: {{twae_year_label_color}}',
395
+ ],
396
+ //'default' => '#ffffff',
397
+ ]
398
+ );
399
+
400
+ $this->add_control(
401
+ 'twae_year_label_bgcolor',
402
+ [
403
+ 'label' => __( 'Background Color', 'twae' ),
404
+ 'type' => Controls_Manager::COLOR,
405
+ 'selectors' => [
406
+ '{{WRAPPER}} .twae-wrapper .twae-year' => 'background-color: {{twae_year_label_bgcolor}}',
407
+ ],
408
+ //'default' => '#54595F',
409
+ ]
410
+ );
411
+
412
+ $this->add_group_control(
413
+ Group_Control_Typography::get_type(),
414
+ [
415
+ 'name' => 'twae_year_typography',
416
+ 'label' => __( 'Typography', 'twae' ),
417
+ 'selector' => '{{WRAPPER}} .twae-wrapper .twae-year',
418
+ ]
419
+ );
420
+
421
+ /*---- Sub Label ----*/
422
+ $this->add_control(
423
+ 'twae_sub_label_section',
424
+ [
425
+ 'label' => __( 'Sub Label', 'twae' ),
426
+ 'type' => \Elementor\Controls_Manager::HEADING,
427
+ 'separator' => 'before',
428
+ ]
429
+ );
430
+
431
+ $this->add_control(
432
+ 'twae_extra_label_color',
433
+ [
434
+ 'label' => __( 'Color', 'twae' ),
435
+ 'type' => Controls_Manager::COLOR,
436
+ 'scheme' => [
437
+ 'type' => Elementor\Core\Schemes\Color::get_type(),
438
+ 'value' => Elementor\Core\Schemes\Color::COLOR_3,
439
+ ],
440
+ 'selectors' => [
441
+ '{{WRAPPER}} .twae-wrapper span.twae-extra-label' => 'color: {{twae_extra_label_color}}',
442
+ ],
443
+ //'default' => '#7A7A7A',
444
+ ]
445
+ );
446
+
447
+ $this->add_group_control(
448
+ Group_Control_Typography::get_type(),
449
+ [
450
+ 'name' => 'twae_extra_label_typography',
451
+ 'label' => __( 'Typography', 'twae' ),
452
+ 'selector' => '{{WRAPPER}} .twae-wrapper span.twae-extra-label',
453
+ ]
454
+ );
455
+
456
+ /*---- Icon ----*/
457
+ $this->add_control(
458
+ 'twae_icon_styles_section',
459
+ [
460
+ 'label' => __( 'Icon', 'twae' ),
461
+ 'type' => \Elementor\Controls_Manager::HEADING,
462
+ 'separator' => 'before',
463
+ ]
464
+ );
465
+
466
+ $this->add_control(
467
+ 'twae_icon_size',
468
+ [
469
+ 'label' => __( 'Icon Size', 'twae' ),
470
+ 'type' => Controls_Manager::SLIDER,
471
+ 'range' => [
472
+ 'px' => [
473
+ 'min' => 12,
474
+ 'max' => 36,
475
+ ],
476
+ ],
477
+ 'selectors' => [
478
+ '{{WRAPPER}} .twae-wrapper .twae-icon i' => 'font-size: {{SIZE}}{{UNIT}}',
479
+ ],
480
+ //'default' => '.75rem',
481
+ ]
482
+ );
483
+
484
+ $this->add_control(
485
+ 'twae_icon_padding',
486
+ [
487
+ 'label' => __( 'Icon Padding', 'twae' ),
488
+ 'type' => Controls_Manager::DIMENSIONS,
489
+ 'size_units' => [ 'px', '%', 'em' ],
490
+ 'selectors' => [
491
+ '{{WRAPPER}} .twae-wrapper .twae-icon' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
492
+ ],
493
+ ]
494
+ );
495
+
496
+ /*---- Icon ----*/
497
+ $this->add_control(
498
+ 'twae_border_section',
499
+ [
500
+ 'label' => __( 'Border', 'twae' ),
501
+ 'type' => \Elementor\Controls_Manager::HEADING,
502
+ 'separator' => 'before',
503
+ ]
504
+ );
505
+
506
+ $this->add_control(
507
+ 'twae_border',
508
+ [
509
+ 'label' => __( 'Border', 'twae' ),
510
+ 'type' => \Elementor\Controls_Manager::SWITCHER,
511
+ 'label_on' => __( 'Show', 'your-plugin' ),
512
+ 'label_off' => __( 'Hide', 'your-plugin' ),
513
+ 'return_value' => 'yes',
514
+ 'default' => 'yes',
515
+ ]
516
+ );
517
+
518
+ $this->end_controls_section();
519
 
520
  $this->start_controls_section(
521
  'twae_content_section',
522
  [
523
+ 'label' => __( 'Timeline Stories', 'twae' ),
524
  'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
525
  ]
526
  );
527
 
528
  $repeater = new \Elementor\Repeater();
529
 
530
+ $repeater->start_controls_tabs(
531
+ 'twae_story_tabs'
532
+ );
533
+
534
+ $repeater->start_controls_tab(
535
+ 'twae_content_tab',
536
  [
537
+ 'label' => __( 'Content', 'twae' ),
 
 
 
 
 
538
  ]
539
  );
 
 
 
 
 
 
 
 
 
 
 
 
540
 
541
+
 
542
 
543
  $repeater->add_control(
544
  'twae_date_label',
545
  [
546
+ 'label' => __( 'Primary Label', 'twae' ),
547
  'type' => \Elementor\Controls_Manager::TEXT,
548
  'default' => '01 Jan 2020',
549
  ]
552
  $repeater->add_control(
553
  'twae_extra_label',
554
  [
555
+ 'label' => __( 'Sub Label', 'twae' ),
556
  'type' => \Elementor\Controls_Manager::TEXT,
557
+ 'default' => 'Sub Label',
558
  ]
559
  );
560
 
564
  'label' => __( 'Timeline Story Title', 'twae' ),
565
  'type' => \Elementor\Controls_Manager::TEXT,
566
  'default' => 'Timeline Story',
567
+ 'label_block' => true,
568
  ]
569
  );
570
 
579
  ],
580
  ]
581
  );
582
+
583
+
584
+ $repeater->add_control(
585
+ 'twae_description',
586
+ [
587
+ 'label' => __( 'Description', 'twae' ),
588
+ 'type' => \Elementor\Controls_Manager::WYSIWYG,
589
+ 'default' => 'Add Description Here',
590
+ ]
591
+ );
592
+
593
+
594
+ $repeater->end_controls_tab();
595
+
596
+ $repeater->start_controls_tab(
597
+ 'twae_advanced_tab',
598
+ [
599
+ 'label' => __( 'Extra Settings', 'twae' ),
600
+ ]
601
+ );
602
+
603
+ $repeater->add_control(
604
+ 'twae_show_year_label',
605
+ [
606
+ 'label' => __( 'Middle Line Label', 'twae' ),
607
+ 'type' => \Elementor\Controls_Manager::SWITCHER,
608
+ 'label_on' => __( 'Show', 'twae' ),
609
+ 'label_off' => __( 'Hide', 'twae' ),
610
+ 'return_value' => 'yes',
611
+ 'default' => 'no',
612
+ ]
613
+ );
614
+
615
+ $repeater->add_control(
616
+ 'twae_year',
617
+ [
618
+ 'label' => __( 'Label Text', 'twae' ),
619
+ 'type' => \Elementor\Controls_Manager::TEXT,
620
+ 'default' => '2020',
621
+ 'condition' => [
622
+ 'twae_show_year_label' => [
623
+ 'yes'
624
+ ],
625
+ ]
626
+
627
+ ]
628
+ );
629
 
630
  $repeater->add_group_control(
631
  Group_Control_Image_Size::get_type(),
632
+ [
633
+
634
  'name' => 'twae_thumbnail', // Usage: `{name}_size` and `{name}_custom_dimension`, in this case `thumbnail_size` and `thumbnail_custom_dimension`.
635
  'separator' => 'none',
636
  ]
637
  );
638
 
639
  $repeater->add_control(
640
+ 'twae_image_size_notice',
641
  [
642
+ 'label' => __( 'Image Size will not work with default image', 'twae' ),
643
+ 'type' => \Elementor\Controls_Manager::HEADING,
644
+ 'separator' => 'none',
645
  ]
646
  );
647
 
655
  'library' => 'solid',
656
  ],
657
  ]
658
+ );
659
+
660
+ $repeater->add_control(
661
+ 'twae_pro_options',
662
+ [
663
+ 'label' => __('','twae'),
664
+ 'type' => \Elementor\Controls_Manager::RAW_HTML,
665
+ 'raw' => '
666
+ <strong>'.__('Timeline Widget Addon','twae'). '</strong>
667
+ <a href="'.TWAE_BUY_PRO_LINK.'" target="_blank"><span class="twae-pro-label">'.__('Pro','twae').'</a></span>',
668
+ 'content_classes' => 'twae_pro_options',
669
+ 'separator' => 'before',
670
+ ]
671
+ );
672
+
673
+ $repeater->add_control(
674
+ 'twae_pro_content',
675
+ [
676
+ 'label' => '',
677
+ 'label_block' => true,
678
+ 'type' => \Elementor\Controls_Manager::RAW_HTML,
679
+ 'raw' => '<a target="_blank" href="'.TWAE_BUY_PRO_LINK.'"><img class="twae-screenshots" src="'.TWAE_URL . 'assets/images/slideshow-images.png"></a></br>
680
+ <a target="_blank" href="'.TWAE_BUY_PRO_LINK.'"><img class="twae-screenshots" src="'.TWAE_URL . 'assets/images/story-custom-colors.png"></a>',
681
+ 'content_classes' => 'twae_pro_content',
682
+ ]
683
+ );
684
+
685
+ $repeater->end_controls_tab();
686
+
687
+ $repeater->end_controls_tabs();
688
 
689
  $this->add_control(
690
  'twae_list',
691
  [
692
 
693
+ 'label' => __( 'Content', 'twae' ),
694
  'type' => \Elementor\Controls_Manager::REPEATER,
695
  'fields' => $repeater->get_controls(),
696
  'default' => [
735
 
736
  $this->end_controls_section();
737
 
738
+
739
+
740
+ $this->start_controls_section(
741
+ 'twae_advanced_section',
742
+ [
743
+ 'label' => __( 'Advanced Settings', 'twae' ),
744
+ 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
745
+ ]
746
+ );
747
+
748
+ $this->add_control(
749
+ 'twae_animation_option',
750
+ [
751
+ 'label' => __('','twae'),
752
+ 'type' => \Elementor\Controls_Manager::RAW_HTML,
753
+ 'raw' => __('Animation','twae').' <a target="_blank" href="'.TWAE_BUY_PRO_LINK.'"><span class="twae-pro-label">'.__('Pro','twae').'</span></a><select name="twae_animation" disabled>
754
+ <option value="style-1">Fade</option>
755
+ </select>',
756
+ 'content_classes' => 'twae_animation_option',
757
+ ]
758
+ );
759
+
760
+ /* $this->add_control(
761
+ 'twae_image_size_notice',
762
+ [
763
+ 'label' => __( 'Pro version more features', 'twae' ),
764
+ 'type' => \Elementor\Controls_Manager::HEADING,
765
+ 'separator' => 'none',
766
+ ]
767
+ );
768
+
769
+ $this->add_control(
770
+ 'twae_pro_features_1',
771
+ [
772
+ 'label' => __( '', 'plugin-name' ),
773
+ 'type' => \Elementor\Controls_Manager::RAW_HTML,
774
+ 'raw' => '<div class="twae-pro-features"><ul>
775
+ <li>3 styles in each layout( Both Sided, One Sided, Horizontal )</li>
776
+ <li>Images Slideshow/Video</li>
777
+ <li>Animation Effects</li>
778
+ <li>Custom text or image as icon</li>
779
+ <li>Custom Color for each Timeline Story</li>
780
+ <li>Icons enable/disable option</li>
781
+ <li>Post Timeline( Timeline of blog posts )</li>
782
+ <li>Pagination( for Post Timeline )</li>
783
+ </ul></br>
784
+ <a href="https://cooltimeline.com/elementor-timeline-widget-pro-demo/">'.__('View Demo','twae').'</a>
785
+ </div>',
786
+ 'content_classes' => 'twae-pro-features-list',
787
+ ]
788
+ ); */
789
+
790
+
791
+ $this->end_controls_section();
792
+
793
+ $this->start_controls_section(
794
+ 'twae_pro_feature_section',
795
+ [
796
+ 'label' => __( 'Pro Features', 'twae' ),
797
+ 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
798
+ ]
799
+ );
800
+
801
+ $this->add_control(
802
+ 'twae_pro_features',
803
+ [
804
+ 'label' => __( '', 'plugin-name' ),
805
+ 'type' => \Elementor\Controls_Manager::RAW_HTML,
806
+ 'raw' => '
807
+ <style>.twae-pro-features ul li p {
808
+ padding: 5px;
809
+ }</style>
810
+ <div class="twae-pro-features"><ul>
811
+ <li><strong>15+ Timeline Designs</strong>
812
+ <p>Create beautiful vertical & horizontal timeline designs.</p>
813
+ </li>
814
+ <li><strong>Post Timeline</strong>
815
+ <p>Show your blog posts in a timeline layout anywhere on the website.</p>
816
+ </li>
817
+ <li><strong>Animation Effect</strong>
818
+ <p>It has 15+ animation effects, fade-in, flip-up, zoom, etc.</p>
819
+ </li>
820
+ <li><strong>Colors & Typography</strong>
821
+ <p>Use the advanced settings option to manage text size and colors.</p>
822
+ </li>
823
+ <li><strong>Custom Color Story</strong>
824
+ <p>Easily apply different colors to each story in a timeline.</p>
825
+ </li>
826
+
827
+ <li><strong>Image / Video / Slideshow</strong>
828
+ <p>Add image, video, or slideshow image.</p>
829
+ </li>
830
+ <li><strong>Ajax Load More</strong>
831
+ <p>Load stories with page scroll via ajax pagination.</p>
832
+ </li>
833
+
834
+ <li><strong>Icons in Timeline</strong>
835
+ <p>Font Awesome icon, custom text, or image as timeline Icon.</p>
836
+ </li>
837
+ </ul></br>
838
+ <a target="_blank" href="'.TWAE_VIEW_DEMO.'">'.__('View Demo','twae').'</a> |
839
+ <a style="padding:6px;" class="elementor-button elementor-button-success" href="'.TWAE_BUY_PRO_LINK.'" target="_blank"> Buy PRO</a>
840
+ </div>',
841
+ 'content_classes' => 'twae-pro-features-list',
842
+ ]
843
+ );
844
+
845
+ $this->end_controls_section();
846
+
847
  }
848
 
849
  // for frontend
854
  $layout = $settings['twae_layout'];
855
  $autoplay = $settings['twae_autoplay'];
856
  $sidesHeight = $settings['twae_slides_height'];
857
+ $border = $settings['twae_border'];
858
+ $no_border = '';
859
+ if($border !='yes'){
860
+ $no_border = 'twae-no-border';
861
+ }
862
 
863
+ $isRTL = is_rtl();
864
+ $dir = '';
865
+ if($isRTL){
866
+ $dir = 'rtl';
867
+ }
868
+
869
  $timeline_layout_wrapper = "twae-centered";
870
  $timeline_layout = '';
871
  if($layout == 'one-sided'){
892
 
893
  ?>
894
  <#
895
+ if( settings.twae_list ) {
896
 
897
+ #>
898
+ <?php
899
+ $isRTL = is_rtl();
900
+ $dir = '';
901
+ if($isRTL){
902
+ $dir = 'rtl';
903
+ }
904
+ ?>
905
+ <#
906
+ var border = settings.twae_border;
907
+ var no_border = '';
908
+ if(border !='yes'){
909
+ no_border = 'twae-no-border';
910
+ }
911
+
912
  if(settings.twae_layout == 'horizontal'){
913
  var sidesToShow = settings.twae_slides_to_show;
914
  var sidesHeight = settings.twae_slides_height;