Premium Addons for Elementor - Version 3.11.7

Version Description

  • Tweak: Added Border Radius option for navigation dots in Vertical Scroll widget.
  • Tweak: Added Hover CSS Filters option for post featured image in Blog widget.
  • Tweak: Default overlay color for post featured image removed in Blog widget.
Download this release

Release Info

Developer leap13
Plugin Icon 128x128 Premium Addons for Elementor
Version 3.11.7
Comparing to
See all releases

Code changes from version 3.11.6 to 3.11.7

admin/assets/css/admin-rtl.css ADDED
@@ -0,0 +1,358 @@
1
+ .pa-header-wrapper{
2
+ padding:20px;
3
+ overflow:hidden
4
+ }
5
+ .pa-title-left{
6
+ width:80%;
7
+ float:right
8
+ }
9
+ h1.pa-title-main{
10
+ padding:0;
11
+ line-height:1.3em;
12
+ font-size:42px;
13
+ margin-top:5px
14
+ }
15
+ .pa-title-sub{
16
+ color:#777;
17
+ font-weight:400;
18
+ margin-right:3px
19
+ }
20
+ .pa-title-right{
21
+ float:left
22
+ }
23
+ .pa-title-right img{
24
+ width:100px;
25
+ height:100px
26
+ }
27
+ .button.pa-btn{
28
+ border:none;
29
+ color:#fff;
30
+ text-align:center;
31
+ padding:3px;
32
+ max-width:250px;
33
+ height:auto;
34
+ margin-bottom:15px;
35
+ display:block;
36
+ font-weight:700;
37
+ box-shadow:none
38
+ }
39
+ .pa-btn.pa-save-button{
40
+ background-color:#1A7FC2;
41
+ margin-bottom:0;
42
+ margin-top:30px;
43
+ padding:3px 10px
44
+ }
45
+ .pa-btn.pa-save-button:hover{
46
+ background:#0e629a;
47
+ color:#fff
48
+ }
49
+ .pa-btn.pa-save-button:focus{
50
+ background:#0e629a;
51
+ color:#fff
52
+ }
53
+ .pa-settings-tabs-list{
54
+ margin:0;
55
+ border-bottom:1px solid #ccc
56
+ }
57
+ .pa-settings-tabs-list li{
58
+ display:inline-block;
59
+ margin-bottom:4px;
60
+ margin-right:.5em
61
+ }
62
+ .pa-tab-list-item{
63
+ background:#e5e5e5;
64
+ padding:9px 15px;
65
+ line-height:30px;
66
+ font-size:18px;
67
+ font-weight:700;
68
+ color:#444;
69
+ text-decoration:none;
70
+ border:1px solid #ccc;
71
+ border-bottom:none
72
+ }
73
+ .pa-tab-list-item:focus{
74
+ box-shadow:none
75
+ }
76
+ li.ui-state-default:not(.ui-state-active):hover a{
77
+ background:#fff;
78
+ color:#444
79
+ }
80
+ li.ui-state-active a{
81
+ outline:none;
82
+ color:#000;
83
+ background:transparent;
84
+ box-shadow:none;
85
+ border-bottom:1px solid #f1f1f1
86
+ }
87
+ .pa-row{
88
+ width:100%;
89
+ overflow:hidden
90
+ }
91
+ .pa-settings-tabs{
92
+ padding:15px 25px;
93
+ margin-top:-3em
94
+ }
95
+ #pa-about{
96
+ margin-top:50px
97
+ }
98
+ .pa-col-half{
99
+ width:40%;
100
+ height:auto;
101
+ float:right
102
+ }
103
+ .pa-about-panel{
104
+ width:100%;
105
+ display:inline-block;
106
+ margin-bottom:20px
107
+ }
108
+ .pa-icon-container{
109
+ float:right;
110
+ display:inline-block;
111
+ width:45px
112
+ }
113
+ .pa-icon-container i{
114
+ font-size:25px
115
+ }
116
+ .pa-text-container{
117
+ display:inline-block;
118
+ width:80%
119
+ }
120
+ .pa-text-container h4{
121
+ margin:0;
122
+ font-weight:400;
123
+ font-size:18px
124
+ }
125
+ .pa-text-container p{
126
+ line-height:22px;
127
+ color:#444;
128
+ font-size:13px;
129
+ margin:1em 0
130
+ }
131
+ .pa-elements-table{
132
+ border-collapse:collapse;
133
+ margin-top:.5em;
134
+ margin-right:5px;
135
+ width:80%;
136
+ clear:both
137
+ }
138
+ .pa-elements-table th{
139
+ vertical-align:top;
140
+ text-align:right;
141
+ padding:20px 0 20px 10px;
142
+ width:200px;
143
+ line-height:1.3;
144
+ font-weight:500
145
+ }
146
+ .pa-elements-table tr{
147
+ border-bottom:1px solid #ddd
148
+ }
149
+ .pa-elements-table td{
150
+ margin-bottom:9px;
151
+ padding:15px 10px;
152
+ line-height:1.3;
153
+ vertical-align:middle
154
+ }
155
+ .pa-elements-table .pa-element-desc{
156
+ font-weight:300;
157
+ padding-bottom:1.5em;
158
+ border-bottom:1px solid #ddd
159
+ }
160
+ .switch{
161
+ position:relative;
162
+ display:inline-block;
163
+ width:70px;
164
+ height:33px
165
+ }
166
+ .switch input{
167
+ display:none
168
+ }
169
+ .slider,.pro-slider{
170
+ position:absolute;
171
+ cursor:pointer;
172
+ top:0;
173
+ right:0;
174
+ left:0;
175
+ bottom:0;
176
+ background-color:#f2f2f2;
177
+ box-shadow:0 0 2px 1px #ccc inset;
178
+ -webkit-transition:.4s;
179
+ transition:.4s
180
+ }
181
+ .slider:before,.pro-slider:before{
182
+ position:absolute;
183
+ content:"";
184
+ height:27.5px;
185
+ width:27.5px;
186
+ right:0;
187
+ bottom:1.1px;
188
+ background:radial-gradient(farthest-corner at 14px 0px,#f0f0f0 50%,#cacaca 100%);
189
+ -webkit-transition:.4s;
190
+ transition:.4s;
191
+ padding:0;
192
+ margin:0;
193
+ border:1px solid #c6c6c6;
194
+ box-shadow:0 2.5px 5px #b8b8b9
195
+ }
196
+ input:checked + .slider{
197
+ background-color:#18a4fd;
198
+ box-shadow:0 0 2px 1px #149afd inset;
199
+ border:1px solid #149afd
200
+ }
201
+ input:focus + .slider{
202
+ box-shadow:0 0 1px #18a4fd
203
+ }
204
+ input:checked + .slider:before{
205
+ box-shadow:0 2.5px 5px #0d6fbd;
206
+ border:1px solid #0d6fbd;
207
+ -webkit-transform:translateX(-40px);
208
+ -ms-transform:translateX(-40px);
209
+ transform:translateX(-40px)
210
+ }
211
+ .slider.round,.pro-slider.round{
212
+ border:1px solid #b8b8b9;
213
+ border-radius:34px
214
+ }
215
+ .slider.round:before,.pro-slider.round:before{
216
+ border-radius:50%
217
+ }
218
+ .pa-maps-table{
219
+ text-align:right
220
+ }
221
+ .pa-api-title{
222
+ display:inline-block;
223
+ margin:0
224
+ }
225
+ .pa-maps-table select {
226
+ width: 100%;
227
+ max-width: 100%;
228
+ }
229
+ .pa-maps-table #premium-map-api{
230
+ width: 100%;
231
+ }
232
+ .pa-maps-table tr td:first-of-type{
233
+ padding-left: 1.2em;
234
+ }
235
+ .pa-maps-table td:first-of-type .pa-api-disable-title {
236
+ margin:0.6em 0;
237
+ }
238
+ .pa-api-disable-title label,.pa-is-beta label{
239
+ margin-left:15px
240
+ }
241
+ .pa-api-disable-title span,.pa-is-beta span{
242
+ font-weight:400
243
+ }
244
+ .pa-maps-api-notice{
245
+ margin:0.5em 0
246
+ }
247
+ .pa-api-title input{
248
+ margin-top:10px;
249
+ font-size:normal;
250
+ font-weight:400;
251
+ width:400px;
252
+ margin-right:30px
253
+ }
254
+ #pa-maintenance{
255
+ margin-top:30px
256
+ }
257
+ .pa-beta-table tr{
258
+ text-align:right
259
+ }
260
+ .pa-roll-back,.pa-beta-test{
261
+ text-align:right;
262
+ font-size:20px;
263
+ font-weight:400;
264
+ margin-top:15px;
265
+ margin-bottom:10px
266
+ }
267
+ .pa-beta-test{
268
+ margin-top:0
269
+ }
270
+ .pa-roll-back-span,.pa-beta-test-span{
271
+ line-height:22px;
272
+ color:#444;
273
+ font-size:13px;
274
+ margin:0;
275
+ font-weight:400
276
+ }
277
+ .pa-roll-row,.pa-beta-row{
278
+ float:right
279
+ }
280
+ .pa-beta-row{
281
+ margin-top:13px
282
+ }
283
+ .pa-roll-row th,.pa-beta-row th{
284
+ vertical-align:top;
285
+ text-align:right;
286
+ padding:20px 0 20px 10px;
287
+ width:200px;
288
+ line-height:1.3
289
+ }
290
+ .pa-roll-row td{
291
+ padding:15px 10px
292
+ }
293
+ .pa-beta-row td{
294
+ padding:22px 10px
295
+ }
296
+ .pa-roll-row .pa-rollback-button{
297
+ box-shadow:0 1px 0 #ccc;
298
+ color:#555;
299
+ border:1px solid #ccc;
300
+ background:#f7f7f7;
301
+ vertical-align:top;
302
+ margin:0;
303
+ padding:0 10px 1px
304
+ }
305
+ .pa-roll-row .pa-rollback-button:hover{
306
+ background:#fafafa;
307
+ border-color:#999;
308
+ color:#23282d
309
+ }
310
+ .pa-roll-row .pa-roll-desc{
311
+ font-style:italic;
312
+ color:red;
313
+ margin-top:4px
314
+ }
315
+ .pa-beta-row .pa-beta-desc{
316
+ font-style:italic;
317
+ margin-top:4px
318
+ }
319
+ .pa-sys-info-tab{
320
+ background:#f7f7f7;
321
+ margin:8px;
322
+ border:2px solid #ddd;
323
+ border-radius:3px;
324
+ padding:0
325
+ }
326
+ .pa-system-info-container{
327
+ padding:10px
328
+ }
329
+ .pa-sys-info-tab .pa-sys-info-title{
330
+ margin:0;
331
+ margin-bottom:0;
332
+ padding:10px;
333
+ border-bottom:2px solid #ddd;
334
+ background:#fff;
335
+ margin-bottom:10px;
336
+ font-weight:500
337
+ }
338
+ tr.pa-sec-elems-tr{
339
+ border:none
340
+ }
341
+ tr.pa-sec-elems-tr th{
342
+ padding-bottom:0
343
+ }
344
+ tr.pa-sec-elems-tr th h1{
345
+ font-weight:700;
346
+ font-size:25px;
347
+ letter-spacing:1px;
348
+ color:#555;
349
+ margin-bottom:0
350
+ }
351
+ .pa-swal-head{
352
+ display:block;
353
+ margin-bottom:20px
354
+ }
355
+ .pa-swal-desc{
356
+ font-weight:700;
357
+ color:#0f6aa7
358
+ }
admin/assets/css/admin.css ADDED
@@ -0,0 +1,358 @@
1
+ .pa-header-wrapper{
2
+ padding:20px;
3
+ overflow:hidden
4
+ }
5
+ .pa-title-left{
6
+ width:80%;
7
+ float:left
8
+ }
9
+ h1.pa-title-main{
10
+ padding:0;
11
+ line-height:1.3em;
12
+ font-size:42px;
13
+ margin-top:5px
14
+ }
15
+ .pa-title-sub{
16
+ color:#777;
17
+ font-weight:400;
18
+ margin-left:3px
19
+ }
20
+ .pa-title-right{
21
+ float:right
22
+ }
23
+ .pa-title-right img{
24
+ width:100px;
25
+ height:100px
26
+ }
27
+ .button.pa-btn{
28
+ border:none;
29
+ color:#fff;
30
+ text-align:center;
31
+ padding:3px;
32
+ max-width:250px;
33
+ height:auto;
34
+ margin-bottom:15px;
35
+ display:block;
36
+ font-weight:700;
37
+ box-shadow:none
38
+ }
39
+ .pa-btn.pa-save-button{
40
+ background-color:#1A7FC2;
41
+ margin-bottom:0;
42
+ margin-top:30px;
43
+ padding:3px 10px
44
+ }
45
+ .pa-btn.pa-save-button:hover{
46
+ background:#0e629a;
47
+ color:#fff
48
+ }
49
+ .pa-btn.pa-save-button:focus{
50
+ background:#0e629a;
51
+ color:#fff
52
+ }
53
+ .pa-settings-tabs-list{
54
+ margin:0;
55
+ border-bottom:1px solid #ccc
56
+ }
57
+ .pa-settings-tabs-list li{
58
+ display:inline-block;
59
+ margin-bottom:4px;
60
+ margin-left:.5em
61
+ }
62
+ .pa-tab-list-item{
63
+ background:#e5e5e5;
64
+ padding:9px 15px;
65
+ line-height:30px;
66
+ font-size:18px;
67
+ font-weight:700;
68
+ color:#444;
69
+ text-decoration:none;
70
+ border:1px solid #ccc;
71
+ border-bottom:none
72
+ }
73
+ .pa-tab-list-item:focus{
74
+ box-shadow:none
75
+ }
76
+ li.ui-state-default:not(.ui-state-active):hover a{
77
+ background:#fff;
78
+ color:#444
79
+ }
80
+ li.ui-state-active a{
81
+ outline:none;
82
+ color:#000;
83
+ background:transparent;
84
+ box-shadow:none;
85
+ border-bottom:1px solid #f1f1f1
86
+ }
87
+ .pa-row{
88
+ width:100%;
89
+ overflow:hidden
90
+ }
91
+ .pa-settings-tabs{
92
+ padding:15px 25px;
93
+ margin-top:-3em
94
+ }
95
+ #pa-about{
96
+ margin-top:50px
97
+ }
98
+ .pa-col-half{
99
+ width:40%;
100
+ height:auto;
101
+ float:left
102
+ }
103
+ .pa-about-panel{
104
+ width:100%;
105
+ display:inline-block;
106
+ margin-bottom:20px
107
+ }
108
+ .pa-icon-container{
109
+ float:left;
110
+ display:inline-block;
111
+ width:45px
112
+ }
113
+ .pa-icon-container i{
114
+ font-size:25px
115
+ }
116
+ .pa-text-container{
117
+ display:inline-block;
118
+ width:80%
119
+ }
120
+ .pa-text-container h4{
121
+ margin:0;
122
+ font-weight:400;
123
+ font-size:18px
124
+ }
125
+ .pa-text-container p{
126
+ line-height:22px;
127
+ color:#444;
128
+ font-size:13px;
129
+ margin:1em 0
130
+ }
131
+ .pa-elements-table{
132
+ border-collapse:collapse;
133
+ margin-top:.5em;
134
+ margin-left:5px;
135
+ width:80%;
136
+ clear:both
137
+ }
138
+ .pa-elements-table th{
139
+ vertical-align:top;
140
+ text-align:left;
141
+ padding:20px 10px 20px 0;
142
+ width:200px;
143
+ line-height:1.3;
144
+ font-weight:500
145
+ }
146
+ .pa-elements-table tr{
147
+ border-bottom:1px solid #ddd
148
+ }
149
+ .pa-elements-table td{
150
+ margin-bottom:9px;
151
+ padding:15px 10px;
152
+ line-height:1.3;
153
+ vertical-align:middle
154
+ }
155
+ .pa-elements-table .pa-element-desc{
156
+ font-weight:300;
157
+ padding-bottom:1.5em;
158
+ border-bottom:1px solid #ddd
159
+ }
160
+ .switch{
161
+ position:relative;
162
+ display:inline-block;
163
+ width:70px;
164
+ height:33px
165
+ }
166
+ .switch input{
167
+ display:none
168
+ }
169
+ .slider,.pro-slider{
170
+ position:absolute;
171
+ cursor:pointer;
172
+ top:0;
173
+ left:0;
174
+ right:0;
175
+ bottom:0;
176
+ background-color:#f2f2f2;
177
+ box-shadow:0 0 2px 1px #ccc inset;
178
+ -webkit-transition:.4s;
179
+ transition:.4s
180
+ }
181
+ .slider:before,.pro-slider:before{
182
+ position:absolute;
183
+ content:"";
184
+ height:27.5px;
185
+ width:27.5px;
186
+ left:0;
187
+ bottom:1.1px;
188
+ background:radial-gradient(farthest-corner at 14px 0px,#f0f0f0 50%,#cacaca 100%);
189
+ -webkit-transition:.4s;
190
+ transition:.4s;
191
+ padding:0;
192
+ margin:0;
193
+ border:1px solid #c6c6c6;
194
+ box-shadow:0 2.5px 5px #b8b8b9
195
+ }
196
+ input:checked + .slider{
197
+ background-color:#18a4fd;
198
+ box-shadow:0 0 2px 1px #149afd inset;
199
+ border:1px solid #149afd
200
+ }
201
+ input:focus + .slider{
202
+ box-shadow:0 0 1px #18a4fd
203
+ }
204
+ input:checked + .slider:before{
205
+ box-shadow:0 2.5px 5px #0d6fbd;
206
+ border:1px solid #0d6fbd;
207
+ -webkit-transform:translateX(40px);
208
+ -ms-transform:translateX(40px);
209
+ transform:translateX(40px)
210
+ }
211
+ .slider.round,.pro-slider.round{
212
+ border:1px solid #b8b8b9;
213
+ border-radius:34px
214
+ }
215
+ .slider.round:before,.pro-slider.round:before{
216
+ border-radius:50%
217
+ }
218
+ .pa-maps-table{
219
+ text-align:left
220
+ }
221
+ .pa-api-title{
222
+ display:inline-block;
223
+ margin:0
224
+ }
225
+ .pa-maps-table select {
226
+ width: 100%;
227
+ max-width: 100%;
228
+ }
229
+ .pa-maps-table #premium-map-api{
230
+ width: 100%;
231
+ }
232
+ .pa-maps-table tr td:first-of-type{
233
+ padding-right: 1.2em;
234
+ }
235
+ .pa-maps-table td:first-of-type .pa-api-disable-title {
236
+ margin:0.6em 0;
237
+ }
238
+ .pa-api-disable-title label,.pa-is-beta label{
239
+ margin-right:15px
240
+ }
241
+ .pa-api-disable-title span,.pa-is-beta span{
242
+ font-weight:400
243
+ }
244
+ .pa-maps-api-notice{
245
+ margin:0.5em 0
246
+ }
247
+ .pa-api-title input{
248
+ margin-top:10px;
249
+ font-size:normal;
250
+ font-weight:400;
251
+ width:400px;
252
+ margin-left:30px
253
+ }
254
+ #pa-maintenance{
255
+ margin-top:30px
256
+ }
257
+ .pa-beta-table tr{
258
+ text-align:left
259
+ }
260
+ .pa-roll-back,.pa-beta-test{
261
+ text-align:left;
262
+ font-size:20px;
263
+ font-weight:400;
264
+ margin-top:15px;
265
+ margin-bottom:10px
266
+ }
267
+ .pa-beta-test{
268
+ margin-top:0
269
+ }
270
+ .pa-roll-back-span,.pa-beta-test-span{
271
+ line-height:22px;
272
+ color:#444;
273
+ font-size:13px;
274
+ margin:0;
275
+ font-weight:400
276
+ }
277
+ .pa-roll-row,.pa-beta-row{
278
+ float:left
279
+ }
280
+ .pa-beta-row{
281
+ margin-top:13px
282
+ }
283
+ .pa-roll-row th,.pa-beta-row th{
284
+ vertical-align:top;
285
+ text-align:left;
286
+ padding:20px 10px 20px 0;
287
+ width:200px;
288
+ line-height:1.3
289
+ }
290
+ .pa-roll-row td{
291
+ padding:15px 10px
292
+ }
293
+ .pa-beta-row td{
294
+ padding:22px 10px
295
+ }
296
+ .pa-roll-row .pa-rollback-button{
297
+ box-shadow:0 1px 0 #ccc;
298
+ color:#555;
299
+ border:1px solid #ccc;
300
+ background:#f7f7f7;
301
+ vertical-align:top;
302
+ margin:0;
303
+ padding:0 10px 1px
304
+ }
305
+ .pa-roll-row .pa-rollback-button:hover{
306
+ background:#fafafa;
307
+ border-color:#999;
308
+ color:#23282d
309
+ }
310
+ .pa-roll-row .pa-roll-desc{
311
+ font-style:italic;
312
+ color:red;
313
+ margin-top:4px
314
+ }
315
+ .pa-beta-row .pa-beta-desc{
316
+ font-style:italic;
317
+ margin-top:4px
318
+ }
319
+ .pa-sys-info-tab{
320
+ background:#f7f7f7;
321
+ margin:8px;
322
+ border:2px solid #ddd;
323
+ border-radius:3px;
324
+ padding:0
325
+ }
326
+ .pa-system-info-container{
327
+ padding:10px
328
+ }
329
+ .pa-sys-info-tab .pa-sys-info-title{
330
+ margin:0;
331
+ margin-bottom:0;
332
+ padding:10px;
333
+ border-bottom:2px solid #ddd;
334
+ background:#fff;
335
+ margin-bottom:10px;
336
+ font-weight:500
337
+ }
338
+ tr.pa-sec-elems-tr{
339
+ border:none
340
+ }
341
+ tr.pa-sec-elems-tr th{
342
+ padding-bottom:0
343
+ }
344
+ tr.pa-sec-elems-tr th h1{
345
+ font-weight:700;
346
+ font-size:25px;
347
+ letter-spacing:1px;
348
+ color:#555;
349
+ margin-bottom:0
350
+ }
351
+ .pa-swal-head{
352
+ display:block;
353
+ margin-bottom:20px
354
+ }
355
+ .pa-swal-desc{
356
+ font-weight:700;
357
+ color:#0f6aa7
358
+ }
admin/assets/css/notice-rtl.css ADDED
@@ -0,0 +1,106 @@
1
+ .error.pa-notice-wrap {
2
+ display: flex;
3
+ border: none;
4
+ padding: 0;
5
+ margin: 0;
6
+ min-height: 120px;
7
+ padding-left: 1em;
8
+ align-items: center;
9
+ }
10
+
11
+ .error.pa-notice-wrap div {
12
+ padding: 0;
13
+ margin: 0;
14
+ }
15
+
16
+ .error.pa-notice-wrap .pa-img-wrap {
17
+ display: flex;
18
+ align-items: center;
19
+ min-height: 120px;
20
+ padding: 0 0.7em;
21
+ }
22
+
23
+ .error.pa-black-notice,
24
+ .error.pa-black-notice .pa-img-wrap {
25
+ min-height: auto;
26
+ }
27
+
28
+ .pa-new-feature-notice .pa-text-wrap {
29
+ display: -ms-flexbox;
30
+ display: -webkit-flex;
31
+ display: -moz-flex;
32
+ display: -ms-flex;
33
+ display: flex;
34
+ align-items: center;
35
+ padding: 10px 0 10px 10px;
36
+ }
37
+
38
+ .pa-new-feature-notice .pa-text-wrap .pa-notice-logo {
39
+ width: 40px;
40
+ margin-left: 0.8em;
41
+ }
42
+
43
+ .pa-new-feature-notice .pa-text-wrap .pa-notice-close {
44
+ text-decoration: none;
45
+ margin-right: 1em;
46
+ margin-right: auto;
47
+ }
48
+
49
+ .error .pa-text-wrap a:focus {
50
+ box-shadow: none;
51
+ outline: none;
52
+
53
+ }
54
+
55
+ .error.pa-notice-wrap .pa-text-wrap {
56
+ padding-top: 0.3em;
57
+ }
58
+
59
+ .error.pa-notice-wrap .pa-img-wrap img {
60
+ width: 40px;
61
+ }
62
+
63
+ .error.pa-notice-wrap .pa-text-wrap a {
64
+ margin-left: 0.3em;
65
+ text-transform: uppercase;
66
+ font-weight: 500;
67
+ font-style: normal;
68
+ }
69
+
70
+ .error.pa-notice-wrap .pa-text-wrap a i {
71
+ margin-left: 0.1em;
72
+ margin-top: 0.1em;
73
+ }
74
+
75
+ .error.pa-notice-wrap .pa-text-wrap a:first-of-type {
76
+ background: #0f6aa7
77
+ }
78
+
79
+ .error.pa-black-notice .pa-text-wrap a:first-of-type {
80
+ background: transparent;
81
+ text-transform: none;
82
+ }
83
+
84
+ .error .pa-text-wrap a {
85
+ margin: 0;
86
+ }
87
+
88
+ .pa-notice-wrap .pa-notice-close {
89
+ -webkit-flex-basis: 56%;
90
+ -ms-flex-preferred-size: 56%;
91
+ flex-basis: 56%;
92
+ }
93
+
94
+ .pa-notice-close a:focus {
95
+ outline: none;
96
+ box-shadow: none;
97
+ }
98
+
99
+ .pa-notice-close span {
100
+ float: left;
101
+ text-decoration: none;
102
+ }
103
+
104
+ .error.pa-notice-wrap .pa-text-wrap a:not(:first-of-type) {
105
+ margin-right: 0.3em;
106
+ }
admin/assets/css/notice.css ADDED
@@ -0,0 +1,106 @@
1
+ .error.pa-notice-wrap {
2
+ display: flex;
3
+ border: none;
4
+ padding: 0;
5
+ margin: 0;
6
+ min-height: 120px;
7
+ padding-right: 1em;
8
+ align-items: center;
9
+ }
10
+
11
+ .error.pa-notice-wrap div {
12
+ padding: 0;
13
+ margin: 0;
14
+ }
15
+
16
+ .error.pa-notice-wrap .pa-img-wrap {
17
+ display: flex;
18
+ align-items: center;
19
+ min-height: 120px;
20
+ padding: 0 0.7em;
21
+ }
22
+
23
+ .error.pa-black-notice,
24
+ .error.pa-black-notice .pa-img-wrap {
25
+ min-height: auto;
26
+ }
27
+
28
+ .pa-new-feature-notice .pa-text-wrap {
29
+ display: -ms-flexbox;
30
+ display: -webkit-flex;
31
+ display: -moz-flex;
32
+ display: -ms-flex;
33
+ display: flex;
34
+ align-items: center;
35
+ padding: 10px 10px 10px 0;
36
+ }
37
+
38
+ .pa-new-feature-notice .pa-text-wrap .pa-notice-logo {
39
+ width: 40px;
40
+ margin-right: 0.8em;
41
+ }
42
+
43
+ .pa-new-feature-notice .pa-text-wrap .pa-notice-close {
44
+ text-decoration: none;
45
+ margin-left: 1em;
46
+ margin-left: auto;
47
+ }
48
+
49
+ .error .pa-text-wrap a:focus {
50
+ box-shadow: none;
51
+ outline: none;
52
+
53
+ }
54
+
55
+ .error.pa-notice-wrap .pa-text-wrap {
56
+ padding-top: 0.3em;
57
+ }
58
+
59
+ .error.pa-notice-wrap .pa-img-wrap img {
60
+ width: 40px;
61
+ }
62
+
63
+ .error.pa-notice-wrap .pa-text-wrap a {
64
+ margin-right: 0.3em;
65
+ text-transform: uppercase;
66
+ font-weight: 500;
67
+ font-style: normal;
68
+ }
69
+
70
+ .error.pa-notice-wrap .pa-text-wrap a i {
71
+ margin-right: 0.1em;
72
+ margin-top: 0.1em;
73
+ }
74
+
75
+ .error.pa-notice-wrap .pa-text-wrap a:first-of-type {
76
+ background: #0f6aa7
77
+ }
78
+
79
+ .error.pa-black-notice .pa-text-wrap a:first-of-type {
80
+ background: transparent;
81
+ text-transform: none;
82
+ }
83
+
84
+ .error .pa-text-wrap a {
85
+ margin: 0;
86
+ }
87
+
88
+ .pa-notice-wrap .pa-notice-close {
89
+ -webkit-flex-basis: 56%;
90
+ -ms-flex-preferred-size: 56%;
91
+ flex-basis: 56%;
92
+ }
93
+
94
+ .pa-notice-close a:focus {
95
+ outline: none;
96
+ box-shadow: none;
97
+ }
98
+
99
+ .pa-notice-close span {
100
+ float: right;
101
+ text-decoration: none;
102
+ }
103
+
104
+ .error.pa-notice-wrap .pa-text-wrap a:not(:first-of-type) {
105
+ margin-left: 0.3em;
106
+ }
admin/assets/fonts/pa-icon.eot ADDED
Binary file
admin/assets/fonts/pa-icon.svg ADDED
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by IcoMoon</metadata>
5
+ <defs>
6
+ <font id="icomoon" horiz-adv-x="1024">
7
+ <font-face units-per-em="1024" ascent="960" descent="-64" />
8
+ <missing-glyph horiz-adv-x="1024" />
9
+ <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
+ <glyph unicode="&#xe900;" glyph-name="pa-admin-icon" d="M918.187 628.907c0-13.653-13.653-27.307-27.307-27.307h-249.173c-13.653 0-30.72 10.24-34.133 23.893l-81.92 256c-3.413 13.653 3.413 23.893 6.827 23.893s17.067-6.827 30.72-17.067l314.027-180.907c13.653-6.827 37.547-27.307 40.96-37.547-3.413-6.827 0-27.307 0-40.96zM501.76 881.493l-81.92-256c-3.413-13.653-20.48-23.893-34.133-23.893h-252.587c-13.653 0-27.307 13.653-27.307 27.307s6.827 47.787 10.24 54.613c6.827 6.827 20.48 20.48 34.133 27.307l314.027 180.907c13.653 6.827 30.72 17.067 37.547 17.067 3.413 0 3.413-13.653 0-27.307zM723.627 103.253l-163.84-98.987c-13.653-6.827-44.373-20.48-51.2-17.067-10.24 3.413-27.307 10.24-40.96 17.067l-167.253 95.573c-13.653 6.827-13.653 20.48 0 30.72l191.147 139.947c13.653 6.827 30.72 6.827 44.373 0l191.147-139.947c10.24-6.827 10.24-20.48-3.413-27.307zM918.187 553.813v-286.72c0-13.653-6.827-47.787-10.24-54.613-6.827-6.827-20.48-17.067-34.133-27.307l-81.92-44.373c-13.653-6.827-27.307-3.413-30.72 10.24l-75.093 228.693c-3.413 13.653 0 34.133 13.653 40.96l197.973 143.36c10.24 10.24 20.48 6.827 20.48-10.24zM337.92 383.147l-75.093-228.693c-3.413-13.653-20.48-20.48-30.72-10.24l-78.507 47.787c-13.653 6.827-37.547 27.307-40.96 37.547s-6.827 27.307-6.827 44.373v286.72c0 13.653 10.24 20.48 20.48 10.24l197.973-143.36c13.653-13.653 17.067-30.72 13.653-44.373z" />
11
+ </font></defs></svg>
admin/assets/fonts/pa-icon.ttf ADDED
Binary file
admin/assets/fonts/pa-icon.woff ADDED
Binary file
admin/assets/fonts/style.css ADDED
@@ -0,0 +1,38 @@
1
+ @font-face {
2
+ font-family: 'pa-icon';
3
+ src: url('pa-icon.eot?uo4nkm');
4
+ src: url('pa-icon.eot?uo4nkm#iefix') format('embedded-opentype'),
5
+ url('pa-icon.ttf?uo4nkm') format('truetype'),
6
+ url('pa-icon.woff?uo4nkm') format('woff'),
7
+ url('pa-icon.svg?uo4nkm#pa-elements') format('svg');
8
+ font-weight: normal;
9
+ font-style: normal;
10
+ }
11
+ .toplevel_page_premium-addons > div.wp-menu-image::before {
12
+ position: relative;
13
+ top: 5px;
14
+ content: "\e900";
15
+ /* use !important to prevent issues with browser extensions that change fonts */
16
+ font-family: 'pa-icon' !important;
17
+ speak: none;
18
+ font-style: normal;
19
+ font-variant: normal;
20
+ text-transform: none;
21
+ line-height: 1;
22
+ /* Better Font Rendering =========== */
23
+ -webkit-font-smoothing: antialiased;
24
+ -moz-osx-font-smoothing: grayscale;
25
+ font-size: 21px;
26
+ }
27
+ #toplevel_page_premium-addons a[href="admin.php?page=premium-addons-pro"] {
28
+ color:#1A7FC2;
29
+ }
30
+ #toplevel_page_premium-addons a[href="admin.php?page=premium-addons-pro"]:hover {
31
+ color:#1A7FC2;
32
+ }
33
+ #toplevel_page_premium-addons li.current a[href="admin.php?page=premium-addons-pro"] {
34
+ color:#1A7FC2;
35
+ }
36
+ #toplevel_page_premium-addons li.current a[href="admin.php?page=premium-addons-pro"]:hover {
37
+ color:#1A7FC2;
38
+ }
admin/assets/js/admin.js ADDED
@@ -0,0 +1,134 @@
1
+ ( function ( $ ) {
2
+
3
+ var redirectionLink = " https://premiumaddons.com/pro/?utm_source=wp-menu&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=";
4
+ "use strict";
5
+
6
+ $(".pa-checkbox").on("click", function() {
7
+ if($(this).prop("checked") == true) {
8
+ $(".pa-elements-table input").prop("checked", 1);
9
+ }else if($(this).prop("checked") == false){
10
+ $(".pa-elements-table input").prop("checked", 0);
11
+ }
12
+ });
13
+
14
+ $(".pro-slider").on('click', function(){
15
+
16
+ swal({
17
+ title: '<span class="pa-swal-head">Get PRO Widgets & Addons<span>',
18
+ html: 'Supercharge your Elementor with PRO widgets and addons that you won’t find anywhere else.',
19
+ type: 'warning',
20
+ showCloseButton: true,
21
+ showCancelButton: true,
22
+ cancelButtonText: "More Info",
23
+ focusConfirm: true
24
+ }).then(function(json_data) {}, function(dismiss) {
25
+ if (dismiss === 'cancel') {
26
+ window.open( redirectionLink + settings.theme, '_blank' );
27
+ }
28
+ });
29
+ });
30
+
31
+ $( 'form#pa-settings' ).on( 'submit', function(e) {
32
+ e.preventDefault();
33
+ $.ajax( {
34
+ url: settings.ajaxurl,
35
+ type: 'post',
36
+ data: {
37
+ action: 'pa_save_admin_addons_settings',
38
+ security: settings.nonce,
39
+ fields: $( 'form#pa-settings' ).serialize(),
40
+ },
41
+ success: function( response ) {
42
+ swal(
43
+ 'Settings Saved!',
44
+ 'Click OK to continue',
45
+ 'success'
46
+ );
47
+ },
48
+ error: function() {
49
+ swal(
50
+ 'Oops...',
51
+ 'Something Wrong!',
52
+ );
53
+ }
54
+ } );
55
+
56
+ } );
57
+
58
+ $('form#pa-maps').on('submit',function(e){
59
+ e.preventDefault();
60
+ $.ajax( {
61
+ url: settings.ajaxurl,
62
+ type: 'post',
63
+ data: {
64
+ action: 'pa_maps_save_settings',
65
+ security: settings.nonce,
66
+ fields: $('form#pa-maps').serialize(),
67
+ },
68
+ success: function (response){
69
+ swal(
70
+ 'Settings Saved!',
71
+ 'Click OK to continue',
72
+ 'success'
73
+ );
74
+ },
75
+ error: function(){
76
+ swal(
77
+ 'Oops...',
78
+ 'Something Wrong!',
79
+ );
80
+ }
81
+ });
82
+ });
83
+
84
+
85
+ $('form#pa-beta-form').on('submit',function(e){
86
+ e.preventDefault();
87
+ $.ajax( {
88
+ url: settings.ajaxurl,
89
+ type: 'post',
90
+ data: {
91
+ action: 'pa_beta_save_settings',
92
+ security: settings.nonce,
93
+ fields: $('form#pa-beta-form').serialize(),
94
+ },
95
+ success: function (response){
96
+ swal(
97
+ 'Settings Saved!',
98
+ 'Click OK to continue',
99
+ 'success'
100
+ );
101
+ },
102
+ error: function(){
103
+ swal(
104
+ 'Oops...',
105
+ 'Something Wrong!',
106
+ );
107
+ }
108
+ });
109
+ });
110
+
111
+
112
+
113
+ $( '.pa-rollback-button' ).on( 'click', function( event ) {
114
+ event.preventDefault();
115
+
116
+ var $this = $( this ),
117
+ dialogsManager = new DialogsManager.Instance();
118
+
119
+ dialogsManager.createWidget( 'confirm', {
120
+ headerMessage: premiumRollBackConfirm.i18n.rollback_to_previous_version,
121
+ message: premiumRollBackConfirm.i18n.rollback_confirm,
122
+ strings: {
123
+ cancel: premiumRollBackConfirm.i18n.cancel,
124
+ confirm: premiumRollBackConfirm.i18n.yes,
125
+ },
126
+ onConfirm: function() {
127
+ $this.addClass( 'loading' );
128
+
129
+ location.href = $this.attr( 'href' );
130
+ }
131
+ } ).show();
132
+ } );
133
+
134
+ } )(jQuery);
admin/assets/js/dialog/dialog.js ADDED
@@ -0,0 +1,830 @@
1
+ /*!
2
+ * Dialogs Manager v4.2.1
3
+ * https://github.com/kobizz/dialogs-manager
4
+ *
5
+ * Copyright Kobi Zaltzberg
6
+ * Released under the MIT license
7
+ * https://github.com/kobizz/dialogs-manager/blob/master/LICENSE.txt
8
+ */
9
+
10
+ (function ($, global) {
11
+ 'use strict';
12
+
13
+ /*
14
+ * Dialog Manager
15
+ */
16
+ var DialogsManager = {
17
+ widgetsTypes: {},
18
+ createWidgetType: function (typeName, properties, Parent) {
19
+
20
+ if (!Parent) {
21
+ Parent = this.Widget;
22
+ }
23
+
24
+ var WidgetType = function () {
25
+
26
+ Parent.apply(this, arguments);
27
+ };
28
+
29
+ var prototype = WidgetType.prototype = new Parent(typeName);
30
+
31
+ prototype.types = prototype.types.concat([typeName]);
32
+
33
+ $.extend(prototype, properties);
34
+
35
+ prototype.constructor = WidgetType;
36
+
37
+ WidgetType.extend = function (typeName, properties) {
38
+
39
+ return DialogsManager.createWidgetType(typeName, properties, WidgetType);
40
+ };
41
+
42
+ return WidgetType;
43
+ },
44
+ addWidgetType: function (typeName, properties, Parent) {
45
+
46
+ if (properties && properties.prototype instanceof this.Widget) {
47
+ return this.widgetsTypes[typeName] = properties;
48
+ }
49
+
50
+ return this.widgetsTypes[typeName] = this.createWidgetType(typeName, properties, Parent);
51
+ },
52
+ getWidgetType: function (widgetType) {
53
+
54
+ return this.widgetsTypes[widgetType];
55
+ }
56
+ };
57
+
58
+ /*
59
+ * Dialog Manager instances constructor
60
+ */
61
+ DialogsManager.Instance = function () {
62
+
63
+ var self = this,
64
+ elements = {},
65
+ settings = {};
66
+
67
+ var initElements = function () {
68
+
69
+ elements.body = $('body');
70
+ };
71
+
72
+ var initSettings = function (options) {
73
+
74
+ var defaultSettings = {
75
+ classPrefix: 'dialog',
76
+ effects: {
77
+ show: 'fadeIn',
78
+ hide: 'fadeOut'
79
+ }
80
+ };
81
+
82
+ $.extend(settings, defaultSettings, options);
83
+ };
84
+
85
+ this.createWidget = function (widgetType, properties) {
86
+
87
+ var WidgetTypeConstructor = DialogsManager.getWidgetType(widgetType),
88
+ widget = new WidgetTypeConstructor(widgetType);
89
+
90
+ properties = properties || {};
91
+
92
+ widget.init(self, properties);
93
+
94
+ widget.setMessage(properties.message);
95
+
96
+ return widget;
97
+ };
98
+
99
+ this.getSettings = function (property) {
100
+
101
+ if (property) {
102
+ return settings[property];
103
+ }
104
+
105
+ return Object.create(settings);
106
+ };
107
+
108
+ this.init = function (settings) {
109
+
110
+ initSettings(settings);
111
+
112
+ initElements();
113
+
114
+ return self;
115
+ };
116
+
117
+ self.init();
118
+ };
119
+
120
+ /*
121
+ * Widget types constructor
122
+ */
123
+ DialogsManager.Widget = function (widgetName) {
124
+
125
+ var self = this,
126
+ settings = {},
127
+ events = {},
128
+ elements = {},
129
+ hideTimeOut = 0,
130
+ baseClosureMethods = ['refreshPosition'];
131
+
132
+ var bindEvents = function () {
133
+
134
+ elements.window.on('keyup', onWindowKeyUp);
135
+
136
+ if (settings.hide.onOutsideClick) {
137
+ elements.window[0].addEventListener('click', hideOnOutsideClick, true);
138
+ }
139
+
140
+ if (settings.hide.onClick || settings.hide.onBackgroundClick) {
141
+ elements.widget.on('click', hideOnClick);
142
+ }
143
+
144
+ if (settings.position.autoRefresh) {
145
+ elements.window.on('resize', self.refreshPosition);
146
+ }
147
+ };
148
+
149
+ var callEffect = function (intent, params) {
150
+
151
+ var effect = settings.effects[intent],
152
+ $widget = elements.widget;
153
+
154
+ if ($.isFunction(effect)) {
155
+ effect.apply($widget, params);
156
+ }
157
+ else {
158
+
159
+ if ($widget[effect]) {
160
+ $widget[effect].apply($widget, params);
161
+ }
162
+ else {
163
+ throw 'Reference Error: The effect ' + effect + ' not found';
164
+ }
165
+ }
166
+ };
167
+
168
+ var ensureClosureMethods = function() {
169
+
170
+ var closureMethodsNames = baseClosureMethods.concat(self.getClosureMethods());
171
+
172
+ $.each(closureMethodsNames, function () {
173
+
174
+ var methodName = this,
175
+ oldMethod = self[methodName];
176
+
177
+ self[methodName] = function () {
178
+
179
+ oldMethod.apply(self, arguments);
180
+ };
181
+ });
182
+ };
183
+
184
+ var initElements = function () {
185
+
186
+ self.addElement('widget');
187
+
188
+ self.addElement('message');
189
+
190
+ self.addElement('window', window);
191
+
192
+ self.addElement('container', settings.container);
193
+
194
+ var id = self.getSettings('id');
195
+
196
+ if (id) {
197
+ self.setID(id);
198
+ }
199
+
200
+ var classes = [];
201
+
202
+ $.each(self.types, function() {
203
+ classes.push(settings.classes.globalPrefix + '-type-' + this);
204
+ });
205
+
206
+ classes.push(self.getSettings('className'));
207
+
208
+ self.getElements('widget').addClass(classes.join(' '));
209
+ };
210
+
211
+ var initSettings = function (parent, userSettings) {
212
+
213
+ var parentSettings = $.extend(true, {}, parent.getSettings());
214
+
215
+ settings = {
216
+ effects: parentSettings.effects,
217
+ classes: {
218
+ globalPrefix: parentSettings.classPrefix,
219
+ prefix: parentSettings.classPrefix + '-' + widgetName
220
+ },
221
+ selectors: {
222
+ preventClose: '.' + parentSettings.classPrefix + '-prevent-close'
223
+ },
224
+ container: 'body',
225
+ position: {
226
+ element: 'widget',
227
+ my: 'center',
228
+ at: 'center',
229
+ of: 'container',
230
+ enable: true,
231
+ autoRefresh: false
232
+ },
233
+ hide: {
234
+ auto: false,
235
+ autoDelay: 5000,
236
+ onClick: false,
237
+ onOutsideClick: true,
238
+ onBackgroundClick: true
239
+ }
240
+ };
241
+
242
+ $.extend(true, settings, self.getDefaultSettings(), userSettings);
243
+
244
+ initSettingsEvents();
245
+ };
246
+
247
+ var initSettingsEvents = function () {
248
+
249
+ $.each(settings, function (settingKey) {
250
+
251
+ var eventName = settingKey.match(/^on([A-Z].*)/);
252
+
253
+ if (!eventName) {
254
+ return;
255
+ }
256
+
257
+ eventName = eventName[1].charAt(0).toLowerCase() + eventName[1].slice(1);
258
+
259
+ self.on(eventName, this);
260
+ });
261
+ };
262
+
263
+ var normalizeClassName = function (name) {
264
+
265
+ return name.replace(/([a-z])([A-Z])/g, function () {
266
+
267
+ return arguments[1] + '-' + arguments[2].toLowerCase();
268
+ });
269
+ };
270
+
271
+ var hideOnClick = function(event) {
272
+
273
+ if (settings.hide.onClick) {
274
+
275
+ if ($(event.target).closest(settings.selectors.preventClose).length) {
276
+ return;
277
+ }
278
+ } else if (event.target !== this) {
279
+ return;
280
+ }
281
+
282
+ self.hide();
283
+ };
284
+
285
+ var hideOnOutsideClick = function(event) {
286
+ if ($(event.target).closest(elements.widget).length) {
287
+ return;
288
+ }
289
+
290
+ self.hide();
291
+ };
292
+
293
+ var onWindowKeyUp = function(event) {
294
+ var ESC_KEY = 27,
295
+ keyCode = event.which;
296
+
297
+ if (ESC_KEY === keyCode) {
298
+ self.hide();
299
+ }
300
+ };
301
+
302
+ var unbindEvents = function() {
303
+
304
+ elements.window.off('keyup', onWindowKeyUp);
305
+
306
+ if (settings.hide.onOutsideClick) {
307
+ elements.window[0].removeEventListener('click', hideOnOutsideClick, true);
308
+ }
309
+
310
+ if (settings.hide.onClick || settings.hide.onBackgroundClick) {
311
+ elements.widget.off('click', hideOnClick);
312
+ }
313
+
314
+ if (settings.position.autoRefresh) {
315
+ elements.window.off('resize', self.refreshPosition);
316
+ }
317
+ };
318
+
319
+ this.addElement = function (name, element, type) {
320
+
321
+ var $newElement = elements[name] = $(element || '<div>'),
322
+ normalizedName = normalizeClassName(name),
323
+ className = [];
324
+
325
+ if (type) {
326
+ className.push(settings.classes.globalPrefix + '-' + type);
327
+ }
328
+
329
+ className.push(settings.classes.globalPrefix + '-' + normalizedName);
330
+
331
+ className.push(settings.classes.prefix + '-' + normalizedName);
332
+
333
+ $newElement.addClass(className.join(' '));
334
+
335
+ return $newElement;
336
+ };
337
+
338
+ this.getSettings = function (setting) {
339
+
340
+ var copy = Object.create(settings);
341
+
342
+ if (setting) {
343
+ return copy[setting];
344
+ }
345
+
346
+ return copy;
347
+ };
348
+
349
+ this.init = function (parent, properties) {
350
+
351
+ if (!(parent instanceof DialogsManager.Instance)) {
352
+ throw 'The ' + self.widgetName + ' must to be initialized from an instance of DialogsManager.Instance';
353
+ }
354
+
355
+ ensureClosureMethods();
356
+
357
+ self.trigger('init', properties);
358
+
359
+ initSettings(parent, properties);
360
+
361
+ initElements();
362
+
363
+ self.buildWidget();
364
+
365
+ if (self.attachEvents) {
366
+ self.attachEvents();
367
+ }
368
+
369
+ self.trigger('ready');
370
+
371
+ return self;
372
+ };
373
+
374
+ this.getElements = function (item) {
375
+
376
+ return item ? elements[item] : elements;
377
+ };
378
+
379
+ this.hide = function () {
380
+
381
+ clearTimeout(hideTimeOut);
382
+
383
+ callEffect('hide', arguments);
384
+
385
+ unbindEvents();
386
+
387
+ self.trigger('hide');
388
+
389
+ return self;
390
+ };
391
+
392
+ this.isVisible = function() {
393
+
394
+ return elements.widget.is(':visible');
395
+ };
396
+
397
+ this.on = function (eventName, callback) {
398
+
399
+ if ('object' === typeof eventName) {
400
+ $.each(eventName, function(singleEventName) {
401
+ self.on(singleEventName, this);
402
+ });
403
+
404
+ return self;
405
+ }
406
+
407
+ var eventNames = eventName.split(' ');
408
+
409
+ eventNames.forEach(function(singleEventName) {
410
+ if (! events[singleEventName]) {
411
+ events[singleEventName] = [];
412
+ }
413
+
414
+ events[singleEventName].push(callback);
415
+ });
416
+
417
+ return self;
418
+ };
419
+
420
+ this.setMessage = function (message) {
421
+
422
+ elements.message.html(message);
423
+
424
+ return self;
425
+ };
426
+
427
+ this.setID = function (id) {
428
+
429
+ self.getElements('widget').attr('id', id);
430
+
431
+ return self;
432
+ };
433
+
434
+ this.setSettings = function(key, value) {
435
+
436
+ if ('object' === typeof value) {
437
+ $.extend(true, settings[key], value);
438
+ } else {
439
+ settings[key] = value;
440
+ }
441
+
442
+ return self;
443
+ };
444
+
445
+ this.show = function () {
446
+
447
+ clearTimeout(hideTimeOut);
448
+
449
+ elements.widget.appendTo(elements.container).hide();
450
+
451
+ callEffect('show', arguments);
452
+
453
+ self.refreshPosition();
454
+
455
+ if (settings.hide.auto) {
456
+ hideTimeOut = setTimeout(self.hide, settings.hide.autoDelay);
457
+ }
458
+
459
+ bindEvents();
460
+
461
+ self.trigger('show');
462
+
463
+ return self;
464
+ };
465
+
466
+ this.refreshPosition = function () {
467
+
468
+ if (! settings.position.enable) {
469
+ return;
470
+ }
471
+
472
+ var position = $.extend({}, settings.position);
473
+
474
+ if (elements[position.of]) {
475
+ position.of = elements[position.of];
476
+ }
477
+
478
+ elements[position.element].position(position);
479
+ };
480
+
481
+ this.trigger = function (eventName, params) {
482
+
483
+ var methodName = 'on' + eventName[0].toUpperCase() + eventName.slice(1);
484
+
485
+ if (self[methodName]) {
486
+ self[methodName](params);
487
+ }
488
+
489
+ var callbacks = events[eventName];
490
+
491
+ if (!callbacks) {
492
+ return;
493
+ }
494
+
495
+ $.each(callbacks, function (index, callback) {
496
+
497
+ callback.call(self, params);
498
+ });
499
+
500
+ return self;
501
+ };
502
+
503
+ this.destroy = function() {
504
+
505
+ unbindEvents();
506
+
507
+ elements.widget.remove();
508
+
509
+ self.trigger('destroy');
510
+
511
+ return self;
512
+ };
513
+ };
514
+
515
+ DialogsManager.Widget.prototype.types = [];
516
+
517
+ // Inheritable widget methods
518
+ DialogsManager.Widget.prototype.buildWidget = function () {
519
+
520
+ var elements = this.getElements();
521
+
522
+ elements.widget.html(elements.message);
523
+ };
524
+
525
+ DialogsManager.Widget.prototype.getDefaultSettings = function () {
526
+
527
+ return {};
528
+ };
529
+
530
+ DialogsManager.Widget.prototype.getClosureMethods = function() {
531
+
532
+ return [];
533
+ };
534
+
535
+ DialogsManager.Widget.prototype.onHide = function () {
536
+ };
537
+
538
+ DialogsManager.Widget.prototype.onShow = function () {
539
+ };
540
+
541
+ DialogsManager.Widget.prototype.onInit = function () {
542
+ };
543
+
544
+ DialogsManager.Widget.prototype.onReady = function () {
545
+ };
546
+
547
+ DialogsManager.widgetsTypes.simple = DialogsManager.Widget;
548
+
549
+ DialogsManager.addWidgetType('buttons', {
550
+ activeKeyUp: function (event) {
551
+
552
+ var TAB_KEY = 9;
553
+
554
+ if (event.which === TAB_KEY) {
555
+ event.preventDefault();
556
+ }
557
+
558
+ if (this.hotKeys[event.which]) {
559
+ this.hotKeys[event.which](this);
560
+ }
561
+ },
562
+ activeKeyDown: function (event) {
563
+
564
+ var TAB_KEY = 9;
565
+
566
+ if (event.which === TAB_KEY) {
567
+ event.preventDefault();
568
+
569
+ var currentButtonIndex = this.focusedButton.index(),
570
+ nextButtonIndex;
571
+
572
+ if (event.shiftKey) {
573
+
574
+ nextButtonIndex = currentButtonIndex - 1;
575
+
576
+ if (nextButtonIndex < 0) {
577
+ nextButtonIndex = this.buttons.length - 1;
578
+ }
579
+ } else {
580
+
581
+ nextButtonIndex = currentButtonIndex + 1;
582
+
583
+ if (nextButtonIndex >= this.buttons.length) {
584
+ nextButtonIndex = 0;
585
+ }
586
+ }
587
+
588
+ this.focusedButton = this.buttons[nextButtonIndex].focus();
589
+ }
590
+ },
591
+ addButton: function (options) {
592
+
593
+ var self = this,
594
+ $button = self.addElement(options.name, $('<' + this.getSettings('buttonTag') + '>').text(options.text), 'button');
595
+
596
+ self.buttons.push($button);
597
+
598
+ var buttonFn = function () {
599
+
600
+ if (self.getSettings('hide').onButtonClick) {
601
+ self.hide();
602
+ }
603
+
604
+ if ($.isFunction(options.callback)) {
605
+ options.callback.call(this, self);
606
+ }
607
+ };
608
+
609
+ $button.on('click', buttonFn);
610
+
611
+ if (options.hotKey) {
612
+ this.hotKeys[options.hotKey] = buttonFn;
613
+ }
614
+
615
+ this.getElements('buttonsWrapper').append($button);
616
+
617
+ if (options.focus) {
618
+ this.focusedButton = $button;
619
+ }
620
+
621
+ return self;
622
+ },
623
+ bindHotKeys: function () {
624
+
625
+ this.getElements('window').on({
626
+ keyup: this.activeKeyUp,
627
+ keydown: this.activeKeyDown
628
+ });
629
+ },
630
+ buildWidget: function () {
631
+
632
+ DialogsManager.Widget.prototype.buildWidget.apply(this, arguments);
633
+
634
+ var $buttonsWrapper = this.addElement('buttonsWrapper');
635
+
636
+ this.getElements('widget').append($buttonsWrapper);
637
+ },
638
+ getClosureMethods: function () {
639
+
640
+ return [
641
+ 'activeKeyUp',
642
+ 'activeKeyDown'
643
+ ];
644
+ },
645
+ getDefaultSettings: function () {
646
+
647
+ return {
648
+ hide: {
649
+ onButtonClick: true
650
+ },
651
+ buttonTag: 'button'
652
+ };
653
+ },
654
+ onHide: function () {
655
+
656
+ this.unbindHotKeys();
657
+ },
658
+ onInit: function () {
659
+
660
+ this.buttons = [];
661
+
662
+ this.hotKeys = {};
663
+
664
+ this.focusedButton = null;
665
+ },
666
+ onShow: function () {
667
+
668
+ this.bindHotKeys();
669
+
670
+ if (!this.focusedButton) {
671
+ this.focusedButton = this.buttons[0];
672
+ }
673
+
674
+ if (this.focusedButton) {
675
+ this.focusedButton.focus();
676
+ }
677
+ },
678
+ unbindHotKeys: function () {
679
+
680
+ this.getElements('window').off({
681
+ keyup: this.activeKeyUp,
682
+ keydown: this.activeKeyDown
683
+ });
684
+ }
685
+ });
686
+
687
+ DialogsManager.addWidgetType('lightbox', DialogsManager.getWidgetType('buttons').extend('lightbox', {
688
+ getDefaultSettings: function () {
689
+
690
+ var settings = DialogsManager.getWidgetType('buttons').prototype.getDefaultSettings.apply(this, arguments);
691
+
692
+ return $.extend(true, settings, {
693
+ headerMessage: '',
694
+ contentWidth: 'auto',
695
+ contentHeight: 'auto',
696
+ closeButton: false,
697
+ closeButtonClass: 'fa fa-times',
698
+ position: {
699
+ element: 'widgetContent',
700
+ of: 'widget',
701
+ autoRefresh: true
702
+ }
703
+ });
704
+ },
705
+ buildWidget: function () {
706
+
707
+ DialogsManager.getWidgetType('buttons').prototype.buildWidget.apply(this, arguments);
708
+
709
+ var $widgetHeader = this.addElement('widgetHeader'),
710
+ $widgetContent = this.addElement('widgetContent');
711
+
712
+ var elements = this.getElements();
713
+
714
+ $widgetContent.append($widgetHeader, elements.message, elements.buttonsWrapper);
715
+
716
+ elements.widget.html($widgetContent);
717
+
718
+ if (! this.getSettings('closeButton')) {
719
+ return;
720
+ }
721
+
722
+ var $closeButton = this.addElement('closeButton', '<div><i class="' + this.getSettings('closeButtonClass') + '"></i></div>');
723
+
724
+ $widgetContent.prepend($closeButton);
725
+ },
726
+ attachEvents: function() {
727
+ if (this.getSettings('closeButton')) {
728
+ this.getElements('closeButton').on('click', this.hide);
729
+ }
730
+ },
731
+ onReady: function(){
732
+
733
+ var elements = this.getElements(),
734
+ settings = this.getSettings();
735
+
736
+ if ('auto' !== settings.contentWidth) {
737
+ elements.message.width(settings.contentWidth);
738
+ }
739
+
740
+ if ('auto' !== settings.contentHeight) {
741
+ elements.message.height(settings.contentHeight);
742
+ }
743
+
744
+ this.setHeaderMessage(settings.headerMessage);
745
+ },
746
+ setHeaderMessage: function (message) {
747
+
748
+ this.getElements('widgetHeader').html(message);
749
+
750
+ return this;
751
+ }
752
+ }));
753
+
754
+ DialogsManager.addWidgetType('confirm', DialogsManager.getWidgetType('lightbox').extend('confirm', {
755
+ onReady: function () {
756
+
757
+ DialogsManager.getWidgetType('lightbox').prototype.onReady.apply(this, arguments);
758
+
759
+ var strings = this.getSettings('strings'),
760
+ isDefaultCancel = this.getSettings('defaultOption') === 'cancel';
761
+
762
+ this.addButton({
763
+ name: 'cancel',
764
+ text: strings.cancel,
765
+ callback: function (widget) {
766
+
767
+ widget.trigger('cancel');
768
+ },
769
+ focus: isDefaultCancel
770
+ });
771
+
772
+ this.addButton({
773
+ name: 'ok',
774
+ text: strings.confirm,
775
+ callback: function (widget) {
776
+
777
+ widget.trigger('confirm');
778
+ },
779
+ focus: !isDefaultCancel
780
+ });
781
+ },
782
+ getDefaultSettings: function () {
783
+
784
+ var settings = DialogsManager.getWidgetType('lightbox').prototype.getDefaultSettings.apply(this, arguments);
785
+
786
+ settings.strings = {
787
+ confirm: 'OK',
788
+ cancel: 'Cancel'
789
+ };
790
+
791
+ settings.defaultOption = 'cancel';
792
+
793
+ return settings;
794
+ }
795
+ }));
796
+
797
+ DialogsManager.addWidgetType('alert', DialogsManager.getWidgetType('lightbox').extend('alert', {
798
+ onReady: function () {
799
+
800
+ DialogsManager.getWidgetType('lightbox').prototype.onReady.apply(this, arguments);
801
+
802
+ var strings = this.getSettings('strings');
803
+
804
+ this.addButton({
805
+ name: 'ok',
806
+ text: strings.confirm,
807
+ callback: function (widget) {
808
+
809
+ widget.trigger('confirm');
810
+ }
811
+ });
812
+ },
813
+ getDefaultSettings: function () {
814
+
815
+ var settings = DialogsManager.getWidgetType('lightbox').prototype.getDefaultSettings.apply(this, arguments);
816
+
817
+ settings.strings = {
818
+ confirm: 'OK'
819
+ };
820
+
821
+ return settings;
822
+ }
823
+ }));
824
+
825
+ // Exporting the DialogsManager variable to global
826
+ global.DialogsManager = DialogsManager;
827
+ })(
828
+ typeof jQuery !== 'undefined' ? jQuery : typeof require === 'function' && require('jquery'),
829
+ typeof module !== 'undefined' ? module.exports : window
830
+ );
admin/assets/js/pa-notice.js ADDED
@@ -0,0 +1,53 @@
1
+ ( function ( $ ) {
2
+
3
+ var $noticeWrap = $( ".pa-notice-wrap" ),
4
+ notice = $noticeWrap.data('notice');
5
+
6
+ if( undefined !== notice ) {
7
+