Popups for Divi - Version 1.6.3

Version Description

  • Fix animation glitch in Safari/iPhone that displayed the Popup too small when using Divis "Zoom" open animation.
  • Fix logic that did not recognize Popups with upper-case letters in the Popup IDs.
  • Fix issue with transparent Popup background.
  • Fix CSS rule that allows custom box-shadow styles.
Download this release

Release Info

Developer stracker.phil
Plugin Icon 128x128 Popups for Divi
Version 1.6.3
Comparing to
See all releases

Code changes from version 1.5.1 to 1.6.3

css/builder.css CHANGED
@@ -1,18 +1,22 @@
1
  /**
2
  * Popups for Divi - styles in page builder
3
  */
4
- #et-fb-app .et_pb_section.popup {
5
  box-shadow: 0 3px 10px -1px rgba(0, 0, 0, 0.3), 0 0 20px 2px rgba(0, 0, 0, 0.2);
6
- margin: 30px auto;
7
  min-width: 360px;
8
- width: 90%;
9
- background: #FFF; }
 
 
 
 
 
10
  #et-fb-app .et_pb_section.popup + .et_pb_section.popup {
11
  margin-top: 60px; }
12
  #et-fb-app .et_pb_section.popup:after {
13
  content: '';
14
  position: absolute;
15
- background: rgba(0, 0, 0, 0.2);
16
  left: 50%;
17
  top: -30px;
18
  bottom: -30px;
1
  /**
2
  * Popups for Divi - styles in page builder
3
  */
4
+ .popup {
5
  box-shadow: 0 3px 10px -1px rgba(0, 0, 0, 0.3), 0 0 20px 2px rgba(0, 0, 0, 0.2);
 
6
  min-width: 360px;
7
+ max-width: 95%; }
8
+
9
+ #et-fb-app .et_pb_section.popup {
10
+ background-color: #FFF;
11
+ margin: 30px auto;
12
+ overflow: visible;
13
+ z-index: auto; }
14
  #et-fb-app .et_pb_section.popup + .et_pb_section.popup {
15
  margin-top: 60px; }
16
  #et-fb-app .et_pb_section.popup:after {
17
  content: '';
18
  position: absolute;
19
+ background: #ccc;
20
  left: 50%;
21
  top: -30px;
22
  bottom: -30px;
css/builder.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./gulp/sass/builder.scss"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,eAAe;;AAEf;AACA,eAAe","file":"css/builder.css","sourcesContent":["/**\n * Popups for Divi - styles in page builder\n */\n#et-fb-app .et_pb_section.popup {\n box-shadow: 0 3px 10px -1px rgba(0, 0, 0, 0.3), 0 0 20px 2px rgba(0, 0, 0, 0.2);\n margin: 30px auto;\n min-width: 360px;\n width: 90%;\n background: #FFF; }\n #et-fb-app .et_pb_section.popup + .et_pb_section.popup {\n margin-top: 60px; }\n #et-fb-app .et_pb_section.popup:after {\n content: '';\n position: absolute;\n background: rgba(0, 0, 0, 0.2);\n left: 50%;\n top: -30px;\n bottom: -30px;\n z-index: -1;\n width: 10000px;\n min-width: 100vw;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%); }\n #et-fb-app .et_pb_section.popup:before {\n content: \"#\" attr(id);\n position: absolute;\n top: 0px;\n left: 50%;\n -webkit-transform: translate(-50%, -100%);\n transform: translate(-50%, -100%);\n background: #666;\n padding: 0 8px;\n color: #FFF;\n font-size: 12px;\n line-height: 26px;\n font-weight: bold;\n opacity: 0.5;\n transition: all 0.3s;\n bottom: auto;\n right: auto;\n z-index: 20;\n border-radius: 3px 3px 0 0; }\n #et-fb-app .et_pb_section.popup:hover:before {\n background: #2B87DA;\n opacity: 1; }\n\n.et_fb_hidden_header #et-fb-app .et_pb_section.popup:after {\n width: 100vw; }\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./gulp/sass/builder.scss"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,eAAe;;AAEf;AACA,eAAe","file":"css/builder.css","sourcesContent":["/**\n * Popups for Divi - styles in page builder\n */\n.popup {\n box-shadow: 0 3px 10px -1px rgba(0, 0, 0, 0.3), 0 0 20px 2px rgba(0, 0, 0, 0.2);\n min-width: 360px;\n max-width: 95%; }\n\n#et-fb-app .et_pb_section.popup {\n background-color: #FFF;\n margin: 30px auto;\n overflow: visible;\n z-index: auto; }\n #et-fb-app .et_pb_section.popup + .et_pb_section.popup {\n margin-top: 60px; }\n #et-fb-app .et_pb_section.popup:after {\n content: '';\n position: absolute;\n background: #ccc;\n left: 50%;\n top: -30px;\n bottom: -30px;\n z-index: -1;\n width: 10000px;\n min-width: 100vw;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%); }\n #et-fb-app .et_pb_section.popup:before {\n content: \"#\" attr(id);\n position: absolute;\n top: 0px;\n left: 50%;\n -webkit-transform: translate(-50%, -100%);\n transform: translate(-50%, -100%);\n background: #666;\n padding: 0 8px;\n color: #FFF;\n font-size: 12px;\n line-height: 26px;\n font-weight: bold;\n opacity: 0.5;\n transition: all 0.3s;\n bottom: auto;\n right: auto;\n z-index: 20;\n border-radius: 3px 3px 0 0; }\n #et-fb-app .et_pb_section.popup:hover:before {\n background: #2B87DA;\n opacity: 1; }\n\n.et_fb_hidden_header #et-fb-app .et_pb_section.popup:after {\n width: 100vw; }\n"],"sourceRoot":""}
css/front.css CHANGED
@@ -1,5 +1,5 @@
1
  /**
2
- * Popups for Divi - styles for front-end
3
  */
4
  .evr_fb_popup_modal {
5
  position: fixed;
@@ -10,6 +10,12 @@
10
  background: rgba(0, 0, 0, 0.55);
11
  z-index: 99; }
12
 
 
 
 
 
 
 
13
  .popup_outer_wrap {
14
  position: fixed;
15
  left: 50%;
@@ -18,7 +24,7 @@
18
  top: 50%;
19
  width: 90%;
20
  z-index: 100;
21
- min-width: 360px;
22
  pointer-events: none; }
23
  .popup_outer_wrap.popup_full_width {
24
  -webkit-transform: translateY(-50%);
@@ -41,8 +47,6 @@
41
  overflow: auto; }
42
  .popup_outer_wrap .popup {
43
  position: relative;
44
- box-shadow: 0 3px 10px -1px rgba(0, 0, 0, 0.3), 0 2px 50px 2px rgba(0, 0, 0, 0.2);
45
- background: #FFF;
46
  background-repeat: no-repeat;
47
  background-position: center center;
48
  margin: auto;
@@ -50,54 +54,10 @@
50
  max-height: 100%;
51
  pointer-events: all; }
52
  .popup_outer_wrap .popup.with-loader {
53
- background-image: url(../img/spin.gif), radial-gradient(circle at center, #FFF 65%, #fff0 66%);
54
  background-size: 32px 32px, 48px 48px; }
55
- .popup_outer_wrap .popup.with-close .evr-close_wrap {
56
- display: block !important; }
57
- .popup_outer_wrap .popup.no-close .evr-close_wrap {
58
- display: none !important; }
59
- .popup_outer_wrap .popup .evr-close_wrap {
60
- position: absolute;
61
- right: 0;
62
- top: 0;
63
- opacity: 0.2;
64
- z-index: 100;
65
- text-align: right;
66
- transition: opacity 0.6s 0.3s; }
67
- .popup_outer_wrap .popup .evr-close {
68
- display: block;
69
- width: 30px;
70
- height: 30px;
71
- line-height: 30px;
72
- text-align: center;
73
- font-family: "Courier New", monospace;
74
- font-size: 20px;
75
- font-weight: bold;
76
- cursor: pointer;
77
- color: #333;
78
- background: #fff2;
79
- opacity: 0.7;
80
- box-shadow: 0 0 3px 1px #00000008;
81
- transition: all 0.3s; }
82
- .popup_outer_wrap .popup .evr-close:hover, .popup_outer_wrap .popup .evr-close:focus, .popup_outer_wrap .popup .evr-close:active {
83
- color: #000;
84
- background: #FFF;
85
- opacity: 1;
86
- box-shadow: 0 0 4px 0 #0002, 0 0 3px 1px #0001;
87
- -webkit-transform: scale(1.1);
88
- transform: scale(1.1); }
89
- .popup_outer_wrap .popup.dark .evr-close {
90
- color: #EEE;
91
- background: #0002;
92
- box-shadow: 0 0 0 1px #FFFFFF08;
93
- text-shadow: 0px 0px 1px #000,0px 0px 3px #000A; }
94
- .popup_outer_wrap .popup.dark .evr-close:hover, .popup_outer_wrap .popup.dark .evr-close:focus, .popup_outer_wrap .popup.dark .evr-close:active {
95
- color: #FFF;
96
- background: #2b2b2b;
97
- box-shadow: 0 0 1px 1px #FFF3; }
98
- .popup_outer_wrap .popup.is-open .evr-close_wrap {
99
- opacity: 1;
100
- transition: opacity 0.6s 0.3s; }
101
  .popup_outer_wrap .popup .et_pb_row:after,
102
  .popup_outer_wrap .popup .et_pb_row_inner:after,
103
  .popup_outer_wrap .popup .et_pb_slides:after,
@@ -115,12 +75,90 @@
115
  transition: all 0s; }
116
 
117
  body.evr_popup_open {
118
- overflow: hidden !important; }
119
  body.evr_popup_open #page-container #main-content {
120
  transition: all 0.5s 1s;
121
  -webkit-filter: blur(2px);
122
  filter: blur(2px);
123
  opacity: 0.75; }
124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
 
126
  /*# sourceMappingURL=front.css.map*/
1
  /**
2
+ * Divi Areas Pro - styles for front-end
3
  */
4
  .evr_fb_popup_modal {
5
  position: fixed;
10
  background: rgba(0, 0, 0, 0.55);
11
  z-index: 99; }
12
 
13
+ .popup {
14
+ box-shadow: 0 3px 10px -1px rgba(0, 0, 0, 0.3), 0 2px 50px 2px rgba(0, 0, 0, 0.2);
15
+ background-color: #fff; }
16
+ .popup.divi-area-wrap {
17
+ background-color: transparent; }
18
+
19
  .popup_outer_wrap {
20
  position: fixed;
21
  left: 50%;
24
  top: 50%;
25
  width: 90%;
26
  z-index: 100;
27
+ min-width: 320px;
28
  pointer-events: none; }
29
  .popup_outer_wrap.popup_full_width {
30
  -webkit-transform: translateY(-50%);
47
  overflow: auto; }
48
  .popup_outer_wrap .popup {
49
  position: relative;
 
 
50
  background-repeat: no-repeat;
51
  background-position: center center;
52
  margin: auto;
54
  max-height: 100%;
55
  pointer-events: all; }
56
  .popup_outer_wrap .popup.with-loader {
57
+ background-image: url(../img/spin.gif), radial-gradient(circle at center, #FFF 65%, #fff0 66%) !important;
58
  background-size: 32px 32px, 48px 48px; }
59
+ .popup_outer_wrap .popup.no-shadow {
60
+ box-shadow: none; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  .popup_outer_wrap .popup .et_pb_row:after,
62
  .popup_outer_wrap .popup .et_pb_row_inner:after,
63
  .popup_outer_wrap .popup .et_pb_slides:after,
75
  transition: all 0s; }
76
 
77
  body.evr_popup_open {
78
+ overflow: hidden; }
79
  body.evr_popup_open #page-container #main-content {
80
  transition: all 0.5s 1s;
81
  -webkit-filter: blur(2px);
82
  filter: blur(2px);
83
  opacity: 0.75; }
84
 
85
+ .divi-area-wrap {
86
+ position: relative; }
87
+
88
+ /* Styles that are shared between Popups for Divi and Divi Areas Pro */
89
+ .divi-area-wrap.with-close .evr-close_wrap,
90
+ .popup_outer_wrap .popup.with-close .evr-close_wrap {
91
+ display: block !important; }
92
+
93
+ .divi-area-wrap.no-close .evr-close_wrap,
94
+ .popup_outer_wrap .popup.no-close .evr-close_wrap {
95
+ display: none !important; }
96
+
97
+ .divi-area-wrap .evr-close_wrap,
98
+ .popup_outer_wrap .popup .evr-close_wrap {
99
+ position: absolute;
100
+ right: 0;
101
+ top: 0;
102
+ opacity: 0.2;
103
+ z-index: 100;
104
+ text-align: right;
105
+ transition: opacity 0.6s 0.3s; }
106
+
107
+ .divi-area-wrap .evr-close,
108
+ .popup_outer_wrap .popup .evr-close {
109
+ display: block;
110
+ box-sizing: content-box;
111
+ width: 30px;
112
+ height: 30px;
113
+ line-height: 30px;
114
+ text-align: center;
115
+ font-family: "Courier New", monospace;
116
+ font-size: 20px;
117
+ font-weight: bold;
118
+ cursor: pointer;
119
+ color: #333;
120
+ background: #fff2;
121
+ opacity: 0.7;
122
+ box-shadow: 0 0 3px 1px #00000008;
123
+ transition: all 0.3s; }
124
+ .divi-area-wrap .evr-close:hover, .divi-area-wrap .evr-close:focus, .divi-area-wrap .evr-close:active,
125
+ .popup_outer_wrap .popup .evr-close:hover,
126
+ .popup_outer_wrap .popup .evr-close:focus,
127
+ .popup_outer_wrap .popup .evr-close:active {
128
+ color: #000;
129
+ background: #FFF;
130
+ opacity: 1;
131
+ box-shadow: 0 0 4px 0 #0002, 0 0 3px 1px #0001;
132
+ -webkit-transform: scale(1.1);
133
+ transform: scale(1.1); }
134
+
135
+ .divi-area-wrap.dark .evr-close,
136
+ .popup_outer_wrap .popup.dark .evr-close {
137
+ color: #EEE;
138
+ background: #0002;
139
+ box-shadow: 0 0 0 1px #FFFFFF08;
140
+ text-shadow: 0px 0px 1px #000,0px 0px 3px #000A; }
141
+ .divi-area-wrap.dark .evr-close:hover, .divi-area-wrap.dark .evr-close:focus, .divi-area-wrap.dark .evr-close:active,
142
+ .popup_outer_wrap .popup.dark .evr-close:hover,
143
+ .popup_outer_wrap .popup.dark .evr-close:focus,
144
+ .popup_outer_wrap .popup.dark .evr-close:active {
145
+ color: #FFF;
146
+ background: #2b2b2b;
147
+ box-shadow: 0 0 1px 1px #FFF3; }
148
+
149
+ .divi-area-wrap.is-open .evr-close_wrap,
150
+ .popup_outer_wrap .popup.is-open .evr-close_wrap {
151
+ opacity: 1;
152
+ transition: opacity 0.6s 0.3s; }
153
+
154
+ .divi-area-wrap.close-alt .evr-close,
155
+ .popup_outer_wrap .popup.close-alt .evr-close {
156
+ box-shadow: none !important;
157
+ background: transparent !important; }
158
+
159
+ .divi-area-wrap .et_pb_contact_select,
160
+ .popup_outer_wrap .popup .et_pb_contact_select {
161
+ -moz-appearance: textfield; }
162
+
163
 
164
  /*# sourceMappingURL=front.css.map*/
css/front.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./gulp/sass/front.scss"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,uBAAuB;AACvB;AACA;AACA,4BAA4B;AAC5B;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,4CAA4C;AAC5C;AACA,gCAAgC;AAChC;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA,wBAAwB;AACxB;AACA;AACA,cAAc;;AAEd;AACA;AACA,qBAAqB;;AAErB;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,kBAAkB","file":"css/front.css","sourcesContent":["/**\n * Popups for Divi - styles for front-end\n */\n.evr_fb_popup_modal {\n position: fixed;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.55);\n z-index: 99; }\n\n.popup_outer_wrap {\n position: fixed;\n left: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n top: 50%;\n width: 90%;\n z-index: 100;\n min-width: 360px;\n pointer-events: none; }\n .popup_outer_wrap.popup_full_width {\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n width: 100%;\n left: 0; }\n .popup_outer_wrap.popup_full_width > .popup {\n overflow-x: auto; }\n .popup_outer_wrap.popup_full_height {\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n height: 100%;\n top: 0; }\n .popup_outer_wrap.popup_full_height > .popup {\n overflow-y: auto; }\n .popup_outer_wrap.popup_full_width.popup_full_height {\n -webkit-transform: none;\n transform: none; }\n .popup_outer_wrap.popup_full_width.popup_full_height > .popup {\n overflow: auto; }\n .popup_outer_wrap .popup {\n position: relative;\n box-shadow: 0 3px 10px -1px rgba(0, 0, 0, 0.3), 0 2px 50px 2px rgba(0, 0, 0, 0.2);\n background: #FFF;\n background-repeat: no-repeat;\n background-position: center center;\n margin: auto;\n transition: all 0.3s;\n max-height: 100%;\n pointer-events: all; }\n .popup_outer_wrap .popup.with-loader {\n background-image: url(../img/spin.gif), radial-gradient(circle at center, #FFF 65%, #fff0 66%);\n background-size: 32px 32px, 48px 48px; }\n .popup_outer_wrap .popup.with-close .evr-close_wrap {\n display: block !important; }\n .popup_outer_wrap .popup.no-close .evr-close_wrap {\n display: none !important; }\n .popup_outer_wrap .popup .evr-close_wrap {\n position: absolute;\n right: 0;\n top: 0;\n opacity: 0.2;\n z-index: 100;\n text-align: right;\n transition: opacity 0.6s 0.3s; }\n .popup_outer_wrap .popup .evr-close {\n display: block;\n width: 30px;\n height: 30px;\n line-height: 30px;\n text-align: center;\n font-family: \"Courier New\", monospace;\n font-size: 20px;\n font-weight: bold;\n cursor: pointer;\n color: #333;\n background: #fff2;\n opacity: 0.7;\n box-shadow: 0 0 3px 1px #00000008;\n transition: all 0.3s; }\n .popup_outer_wrap .popup .evr-close:hover, .popup_outer_wrap .popup .evr-close:focus, .popup_outer_wrap .popup .evr-close:active {\n color: #000;\n background: #FFF;\n opacity: 1;\n box-shadow: 0 0 4px 0 #0002, 0 0 3px 1px #0001;\n -webkit-transform: scale(1.1);\n transform: scale(1.1); }\n .popup_outer_wrap .popup.dark .evr-close {\n color: #EEE;\n background: #0002;\n box-shadow: 0 0 0 1px #FFFFFF08;\n text-shadow: 0px 0px 1px #000,0px 0px 3px #000A; }\n .popup_outer_wrap .popup.dark .evr-close:hover, .popup_outer_wrap .popup.dark .evr-close:focus, .popup_outer_wrap .popup.dark .evr-close:active {\n color: #FFF;\n background: #2b2b2b;\n box-shadow: 0 0 1px 1px #FFF3; }\n .popup_outer_wrap .popup.is-open .evr-close_wrap {\n opacity: 1;\n transition: opacity 0.6s 0.3s; }\n .popup_outer_wrap .popup .et_pb_row:after,\n .popup_outer_wrap .popup .et_pb_row_inner:after,\n .popup_outer_wrap .popup .et_pb_slides:after,\n .popup_outer_wrap .popup .clearfix:after {\n content: ''; }\n\n.admin-bar .popup_outer_wrap {\n top: calc(50% + 16px); }\n .admin-bar .popup_outer_wrap.popup_full_height {\n height: calc(100% - 52px);\n top: 42px; }\n\n/* Used in front-end when a popup is displayed to a visitor */\n#page-container #main-content {\n transition: all 0s; }\n\nbody.evr_popup_open {\n overflow: hidden !important; }\n body.evr_popup_open #page-container #main-content {\n transition: all 0.5s 1s;\n -webkit-filter: blur(2px);\n filter: blur(2px);\n opacity: 0.75; }\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./gulp/sass/front.scss"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA,yBAAyB;AACzB;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,uBAAuB;AACvB;AACA;AACA,4BAA4B;AAC5B;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,4CAA4C;AAC5C;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA,wBAAwB;AACxB;AACA;AACA,cAAc;;AAEd;AACA;AACA,qBAAqB;;AAErB;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA,6BAA6B","file":"css/front.css","sourcesContent":["/**\n * Divi Areas Pro - styles for front-end\n */\n.evr_fb_popup_modal {\n position: fixed;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.55);\n z-index: 99; }\n\n.popup {\n box-shadow: 0 3px 10px -1px rgba(0, 0, 0, 0.3), 0 2px 50px 2px rgba(0, 0, 0, 0.2);\n background-color: #fff; }\n .popup.divi-area-wrap {\n background-color: transparent; }\n\n.popup_outer_wrap {\n position: fixed;\n left: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n top: 50%;\n width: 90%;\n z-index: 100;\n min-width: 320px;\n pointer-events: none; }\n .popup_outer_wrap.popup_full_width {\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n width: 100%;\n left: 0; }\n .popup_outer_wrap.popup_full_width > .popup {\n overflow-x: auto; }\n .popup_outer_wrap.popup_full_height {\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n height: 100%;\n top: 0; }\n .popup_outer_wrap.popup_full_height > .popup {\n overflow-y: auto; }\n .popup_outer_wrap.popup_full_width.popup_full_height {\n -webkit-transform: none;\n transform: none; }\n .popup_outer_wrap.popup_full_width.popup_full_height > .popup {\n overflow: auto; }\n .popup_outer_wrap .popup {\n position: relative;\n background-repeat: no-repeat;\n background-position: center center;\n margin: auto;\n transition: all 0.3s;\n max-height: 100%;\n pointer-events: all; }\n .popup_outer_wrap .popup.with-loader {\n background-image: url(../img/spin.gif), radial-gradient(circle at center, #FFF 65%, #fff0 66%) !important;\n background-size: 32px 32px, 48px 48px; }\n .popup_outer_wrap .popup.no-shadow {\n box-shadow: none; }\n .popup_outer_wrap .popup .et_pb_row:after,\n .popup_outer_wrap .popup .et_pb_row_inner:after,\n .popup_outer_wrap .popup .et_pb_slides:after,\n .popup_outer_wrap .popup .clearfix:after {\n content: ''; }\n\n.admin-bar .popup_outer_wrap {\n top: calc(50% + 16px); }\n .admin-bar .popup_outer_wrap.popup_full_height {\n height: calc(100% - 52px);\n top: 42px; }\n\n/* Used in front-end when a popup is displayed to a visitor */\n#page-container #main-content {\n transition: all 0s; }\n\nbody.evr_popup_open {\n overflow: hidden; }\n body.evr_popup_open #page-container #main-content {\n transition: all 0.5s 1s;\n -webkit-filter: blur(2px);\n filter: blur(2px);\n opacity: 0.75; }\n\n.divi-area-wrap {\n position: relative; }\n\n/* Styles that are shared between Popups for Divi and Divi Areas Pro */\n.divi-area-wrap.with-close .evr-close_wrap,\n.popup_outer_wrap .popup.with-close .evr-close_wrap {\n display: block !important; }\n\n.divi-area-wrap.no-close .evr-close_wrap,\n.popup_outer_wrap .popup.no-close .evr-close_wrap {\n display: none !important; }\n\n.divi-area-wrap .evr-close_wrap,\n.popup_outer_wrap .popup .evr-close_wrap {\n position: absolute;\n right: 0;\n top: 0;\n opacity: 0.2;\n z-index: 100;\n text-align: right;\n transition: opacity 0.6s 0.3s; }\n\n.divi-area-wrap .evr-close,\n.popup_outer_wrap .popup .evr-close {\n display: block;\n box-sizing: content-box;\n width: 30px;\n height: 30px;\n line-height: 30px;\n text-align: center;\n font-family: \"Courier New\", monospace;\n font-size: 20px;\n font-weight: bold;\n cursor: pointer;\n color: #333;\n background: #fff2;\n opacity: 0.7;\n box-shadow: 0 0 3px 1px #00000008;\n transition: all 0.3s; }\n .divi-area-wrap .evr-close:hover, .divi-area-wrap .evr-close:focus, .divi-area-wrap .evr-close:active,\n .popup_outer_wrap .popup .evr-close:hover,\n .popup_outer_wrap .popup .evr-close:focus,\n .popup_outer_wrap .popup .evr-close:active {\n color: #000;\n background: #FFF;\n opacity: 1;\n box-shadow: 0 0 4px 0 #0002, 0 0 3px 1px #0001;\n -webkit-transform: scale(1.1);\n transform: scale(1.1); }\n\n.divi-area-wrap.dark .evr-close,\n.popup_outer_wrap .popup.dark .evr-close {\n color: #EEE;\n background: #0002;\n box-shadow: 0 0 0 1px #FFFFFF08;\n text-shadow: 0px 0px 1px #000,0px 0px 3px #000A; }\n .divi-area-wrap.dark .evr-close:hover, .divi-area-wrap.dark .evr-close:focus, .divi-area-wrap.dark .evr-close:active,\n .popup_outer_wrap .popup.dark .evr-close:hover,\n .popup_outer_wrap .popup.dark .evr-close:focus,\n .popup_outer_wrap .popup.dark .evr-close:active {\n color: #FFF;\n background: #2b2b2b;\n box-shadow: 0 0 1px 1px #FFF3; }\n\n.divi-area-wrap.is-open .evr-close_wrap,\n.popup_outer_wrap .popup.is-open .evr-close_wrap {\n opacity: 1;\n transition: opacity 0.6s 0.3s; }\n\n.divi-area-wrap.close-alt .evr-close,\n.popup_outer_wrap .popup.close-alt .evr-close {\n box-shadow: none !important;\n background: transparent !important; }\n\n.divi-area-wrap .et_pb_contact_select,\n.popup_outer_wrap .popup .et_pb_contact_select {\n -moz-appearance: textfield; }\n"],"sourceRoot":""}
include/class-popups-for-divi-onboarding.php ADDED
@@ -0,0 +1,265 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Onboarding signup.
4
+ *
5
+ * Offers an onboarding signup form so new users for new users.
6
+ *
7
+ * @package Popups_For_Divi
8
+ */
9
+
10
+ defined( 'ABSPATH' ) || die();
11
+
12
+ /**
13
+ * Set up our popup integration.
14
+ */
15
+ class Popups_For_Divi_Onboarding {
16
+
17
+ /**
18
+ * Hook up the module.
19
+ *
20
+ * @since 1.6.0
21
+ * @return void
22
+ */
23
+ public function __construct() {
24
+ if ( ! is_admin() ) {
25
+ return;
26
+ }
27
+
28
+ // This action only fires on the main wp-admin Dashboard page.
29
+ add_action(
30
+ 'load-index.php',
31
+ array( $this, 'init_onboarding' )
32
+ );
33
+
34
+ add_action(
35
+ 'wp_ajax_pfd_hide_onboarding',
36
+ array( $this, 'ajax_hide_onboarding' )
37
+ );
38
+
39
+ add_action(
40
+ 'wp_ajax_pfd_start_course',
41
+ array( $this, 'ajax_start_course' )
42
+ );
43
+ }
44
+
45
+ /**
46
+ * Initialize the onboarding process.
47
+ *
48
+ * @since 1.6.0
49
+ * @return void
50
+ */
51
+ public function init_onboarding() {
52
+ if ( defined( 'DISABLE_NAG_NOTICES' ) && DISABLE_NAG_NOTICES ) {
53
+ return;
54
+ }
55
+
56
+ if ( ! defined( 'DIVI_POPUP_ONBOARDING_CAP' ) ) {
57
+ // By default display the onboarding notice to all users who can
58
+ // activate plugins (i.e. administrators).
59
+ define( 'DIVI_POPUP_ONBOARDING_CAP', 'activate_plugins' );
60
+ }
61
+
62
+ $user = wp_get_current_user();
63
+
64
+ if ( ! $user->has_cap( DIVI_POPUP_ONBOARDING_CAP ) ) {
65
+ return;
66
+ }
67
+
68
+ if ( 'done' === $user->get( '_pfd_onboarding' ) ) {
69
+ return;
70
+ }
71
+
72
+ add_action(
73
+ 'admin_notices',
74
+ array( $this, 'onboarding_notice' ),
75
+ 1
76
+ );
77
+ }
78
+
79
+ /**
80
+ * Ajax handler: Permanently close the onboarding notice.
81
+ *
82
+ * @since 1.6.0
83
+ * @return void
84
+ */
85
+ public function ajax_hide_onboarding() {
86
+ // phpcs:ignore
87
+ update_user_meta( get_current_user_id(), '_pfd_onboarding', 'done' );
88
+
89
+ wp_send_json_success();
90
+ }
91
+
92
+ /**
93
+ * Ajax handler: Subscribe the email address to our onboarding course.
94
+ *
95
+ * @since 1.6.0
96
+ * @return void
97
+ */
98
+ public function ajax_start_course() {
99
+ // phpcs:ignore
100
+ $form = wp_unslash( $_POST );
101
+
102
+ $email = sanitize_email( trim( $form['email'] ) );
103
+ $name = sanitize_text_field( trim( $form['name'] ) );
104
+
105
+ // Send the subscription details to our website.
106
+ $resp = wp_remote_post(
107
+ 'https://philippstracker.com/wp-admin/admin-post.php',
108
+ array(
109
+ 'headers' => array(
110
+ 'Content-Type' => 'application/x-www-form-urlencoded; charset=utf-8',
111
+ ),
112
+ 'body' => array(
113
+ 'action' => 'pfd_start_onboarding',
114
+ 'fname' => $name,
115
+ 'email' => $email,
116
+ ),
117
+ )
118
+ );
119
+
120
+ if ( is_wp_error( $resp ) ) {
121
+ wp_send_json_success( 'ERROR' );
122
+ }
123
+
124
+ $result = wp_remote_retrieve_body( $resp );
125
+ wp_send_json_success( $result );
126
+ }
127
+
128
+ /**
129
+ * Output the onboarding notice on th wp-admin Dashboard.
130
+ *
131
+ * This function intentionally outputs inline CSS and JS - since it's only
132
+ * displayed once, it does not make sense to store the CSS/JS in the browsers
133
+ * cache.
134
+ *
135
+ * @since 1.6.0
136
+ * @return void
137
+ */
138
+ public function onboarding_notice() {
139
+ $user = wp_get_current_user();
140
+
141
+ ?>
142
+ <div class="pfd-onboarding notice">
143
+ <p class="title"><?php _e( 'Thanks for using Popups&nbsp;for&nbsp;Divi', 'divi-popup' ); ?> 😊</p>
144
+ <div class="pfd-layout">
145
+ <p class="msg"><?php _e( 'We have created a short email course that helps you get the most out of <a href="https://wordpress.org/plugins/popups-for-divi/" target="_blank">Popups for Divi</a>. You will receive six short emails that help you to avoid common pitfalls and teach you some advanced use cases.', 'divi-popup' ); ?></p>
146
+ <div class="form">
147
+ <input
148
+ type="name"
149
+ class="name"
150
+ placeholder="Your first name"
151
+ />
152
+ <input
153
+ type="email"
154
+ class="email"
155
+ placeholder="Your email address"
156
+ value="<?php echo esc_attr( $user->user_email ); ?>"
157
+ />
158
+ <button class="button-primary submit">
159
+ <?php _e( 'Start The Course!', 'divi-popup' ); ?>
160
+ </button>
161
+ </div>
162
+ </div>
163
+ <p class="privacy"><?php _e( 'Only your name and email is sent to our website. We use the information to deliver the onboarding mails. Nothing else. <a href="https://philippstracker.com/privacy/" target="_blank">Privacy&nbsp;Policy</a>', 'divi-popup' ); ?></p>
164
+ <div class="loader"><span class="spinner is-active"></span></div>
165
+ <span class="notice-dismiss"><?php _e( 'Close forever', 'divi-popup' ); ?></span>
166
+ </div>
167
+ <style>
168
+ .wrap .notice.pfd-onboarding{position:relative;margin-bottom:4em;padding-bottom:0;border-left-color:#660099}
169
+ .pfd-onboarding .title{font-weight:600;color:#000;border-bottom:1px solid #eee;padding-bottom:.5em;padding-right:100px;margin-bottom:0}
170
+ .pfd-onboarding .form{text-align:center;position:relative;padding:.5em}
171
+ .pfd-onboarding .privacy{font-size:.9em;text-align:center;opacity:.6;position:absolute;left:0;right:0}
172
+ .pfd-onboarding .pfd-layout{display:flex;flex-wrap:wrap;position:relative}
173
+ .pfd-onboarding .form:before{content:'';position:absolute;right:-9px;left:-9px;top:0;bottom:1px;background:#9944cc linear-gradient(-45deg,#660099 0%,#9944cc 100%)!important;box-shadow:0 0 0 1px #0004 inset}
174
+ .pfd-onboarding .pfd-layout>*{flex:1 1 100%;align-self:center;z-index:10}
175
+ .pfd-onboarding input:focus,
176
+ .pfd-onboarding input,
177
+ .pfd-onboarding button.button-primary,
178
+ .pfd-onboarding button.button-primary:focus{display:block;width:80%;margin:12px auto;text-align:center;border-radius:0;height:30px;vertical-align:top;box-shadow:0 0 0 5px #fff3;outline:none;position:relative;z-index:10}
179
+ .pfd-onboarding input:focus,
180
+ .pfd-onboarding input{border:1px solid #0002;padding:5px 3px}
181
+ .pfd-onboarding .notice-dismiss:before{display:none}
182
+ .pfd-onboarding .msg{position:relative;z-index:20}
183
+ .pfd-onboarding .msg .dismiss{float:right}
184
+ .pfd-onboarding .msg strong{white-space:nowrap}
185
+ .pfd-onboarding .msg .emoji{width:3em!important;height:3em!important;vertical-align:middle!important;margin-right:1em!important;float:left}
186
+ .pfd-onboarding .loader{display:none;position:absolute;background:#fffc;z-index:50;left:0;top:0;right:0;bottom:0}
187
+ .pfd-onboarding.loading .loader{display:block}
188
+ .pfd-onboarding .loader .spinner{position:absolute;left:50%;top:50%;margin:0;transform:translate(-50%,-50%)}
189
+
190
+ @media (min-width: 783px) and (max-width: 1023px) {
191
+ .pfd-onboarding .form:before{right:-11px;left:-11px}
192
+ }
193
+ @media (min-width:1024px) {
194
+ .wrap .notice.pfd-onboarding{margin-bottom:2em;padding-right:0}
195
+ .pfd-onboarding .pfd-layout{flex-wrap:nowrap;overflow:hidden;padding:.5em 0}
196
+ .pfd-onboarding .pfd-layout>*{flex:0 0 50%}
197
+ .pfd-onboarding input:focus,
198
+ .pfd-onboarding input,
199
+ .pfd-onboarding button.button-primary,
200
+ .pfd-onboarding button.button-primary:focus{display:inline-block;width:auto;margin:5px}
201
+ .pfd-onboarding input:focus,
202
+ .pfd-onboarding input{width:32%}
203
+ .pfd-onboarding .form{position:static}
204
+ .pfd-onboarding .form:before{width:50%;right:0;left:auto;bottom:0}
205
+ .pfd-onboarding .form:after{content:'';position:absolute;right:50%;width:50px;height:50px;top:50%;background:#fff;transform:translate(50%,-50%) rotate(45deg) skew(20deg,20deg)}
206
+ }
207
+ </style>
208
+ <script>jQuery(function() {
209
+ var notice = jQuery('.pfd-onboarding.notice');
210
+ var msg = notice.find('.msg');
211
+ notice.on('click', '.notice-dismiss, .dismiss', dismissForever);
212
+ notice.find('.submit').on('click', startCourse);
213
+ function dismissForever() {
214
+ notice.addClass('loading');
215
+ jQuery.post(ajaxurl, {
216
+ action: 'pfd_hide_onboarding'
217
+ }, function() {
218
+ notice.removeClass('loading');
219
+ notice.fadeOut(400, function() {
220
+ notice.remove();
221
+ });
222
+ });
223
+ }
224
+ function startCourse() {
225
+ var email = notice.find('input.email').val().trim();
226
+ var name = notice.find('input.name').val().trim();
227
+
228
+ if (name.length<2) {
229
+ notice.find('input.name').focus();
230
+ return false;
231
+ }
232
+ if (email.length<5) {
233
+ notice.find('input.email').focus();
234
+ return false;
235
+ }
236
+ notice.addClass('loading');
237
+ jQuery.post(ajaxurl, {
238
+ action: 'pfd_start_course',
239
+ name: name,
240
+ email: email,
241
+ }, function(res) {
242
+ notice.removeClass('loading');
243
+ state = res && res.data ? res.data : '';
244
+ if ('OK'===state) {
245
+ msg.html("🎉 <?php echo _e( 'Congratulations! Please check your inbox and look for an email with the subject &quot;<strong>Your Popups for Divi course is one click away!</strong>&quot; to confirm your registration.', 'divi-popup' ); ?>");
246
+ msg.append("<br><a href='#' class='dismiss'><?php esc_html_e( 'Close this message', 'divi-popup' ); ?></a>");
247
+ }
248
+ else if ('DUPLICATE'===state) {
249
+ msg.html("<?php esc_html_e( 'It looks like you already signed up for this course... Please check your inbox or use a different email address', 'divi-popup' ); ?>");
250
+ }
251
+ else if ('INVALID_NAME'===state) {
252
+ msg.html("<?php esc_html_e( 'Our system says, your name is invalid. Please check your input', 'divi-popup' ); ?>");
253
+ }
254
+ else if ('INVALID_EMAIL'===state) {
255
+ msg.html("<?php esc_html_e( 'Our system rejected the email address. Please check your input', 'divi-popup' ); ?>");
256
+ }
257
+ else {
258
+ msg.html("<?php esc_html_e( 'Something went wrong, but we\'re not sure what. Please try again in a moment or contact us via the wp.org support forum', 'divi-popup' ); ?>");
259
+ }
260
+ });
261
+ }
262
+ })</script>
263
+ <?php
264
+ }
265
+ }
include/class-popups-for-divi.php CHANGED
@@ -25,6 +25,12 @@ class Popups_For_Divi {
25
  array( $this, 'plugin_add_settings_link' )
26
  );
27
 
 
 
 
 
 
 
28
  // Do not load the JS library, when the Pro version is active.
29
  if ( defined( 'DIVI_AREAS_PLUGIN' ) ) {
30
  return;
@@ -32,8 +38,12 @@ class Popups_For_Divi {
32
 
33
  add_action(
34
  'wp_enqueue_scripts',
35
- array( $this, 'enqueue_scripts' )
36
  );
 
 
 
 
37
  }
38
 
39
  /**
@@ -52,12 +62,39 @@ class Popups_For_Divi {
52
  return $links;
53
  }
54
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  /**
56
  * Add the CSS/JS support to the front-end to make the popups work.
57
  *
58
  * @since 1.0.0
59
  */
60
- public function enqueue_scripts() {
61
  if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
62
  return;
63
  }
@@ -73,7 +110,7 @@ class Popups_For_Divi {
73
 
74
  if ( function_exists( 'et_fb_is_enabled' ) ) {
75
  $is_divi_v3 = true;
76
- add_filter( 'evr_divi_popup-build_mode', 'et_fb_is_enabled' );
77
  } else {
78
  $is_divi_v3 = false;
79
  }
@@ -164,6 +201,28 @@ class Popups_For_Divi {
164
  */
165
  $config['singletonClass'] = 'single';
166
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  /**
168
  * CSS selector used to identify popups.
169
  * Each popup must also have a unique ID attribute that
@@ -301,21 +360,26 @@ class Popups_For_Divi {
301
  */
302
  $config['debug'] = defined( WP_DEBUG ) ? WP_DEBUG : false;
303
 
304
- // -- End of default configuration.
 
 
305
  $js_data = apply_filters( 'evr_divi_popup-js_data', $config ); // phpcs:ignore
306
 
307
- if ( apply_filters( 'evr_divi_popup-build_mode', false ) ) { // phpcs:ignore
 
 
 
308
  $base_name = 'builder';
309
  $inline_css = '';
310
  } else {
311
  $base_name = 'front';
312
  $inline_css = sprintf(
313
- '.et_pb_section%s{display:none}',
314
  $js_data['popupSelector']
315
  );
316
  }
317
 
318
- if ( $js_data['debug'] ) {
319
  $cache_version .= '-' . time();
320
  }
321
 
25
  array( $this, 'plugin_add_settings_link' )
26
  );
27
 
28
+ add_filter(
29
+ 'plugin_row_meta',
30
+ array( $this, 'plugin_row_meta' ),
31
+ 10, 4
32
+ );
33
+
34
  // Do not load the JS library, when the Pro version is active.
35
  if ( defined( 'DIVI_AREAS_PLUGIN' ) ) {
36
  return;
38
 
39
  add_action(
40
  'wp_enqueue_scripts',
41
+ array( $this, 'enqueue_js_library' )
42
  );
43
+
44
+ // Load the onboarding wizard.
45
+ require_once __DIR__ . '/class-popups-for-divi-onboarding.php';
46
+ $this->onboarding = new Popups_For_Divi_Onboarding();
47
  }
48
 
49
  /**
62
  return $links;
63
  }
64
 
65
+ /**
66
+ * Display additional details in the right column of the "Plugins" page.
67
+ *
68
+ * @since 1.6.0
69
+ * @param string[] $plugin_meta An array of the plugin's metadata,
70
+ * including the version, author,
71
+ * author URI, and plugin URI.
72
+ * @param string $plugin_file Path to the plugin file relative to the plugins directory.
73
+ * @param array $plugin_data An array of plugin data.
74
+ * @param string $status Status of the plugin. Defaults are 'All', 'Active',
75
+ * 'Inactive', 'Recently Activated', 'Upgrade', 'Must-Use',
76
+ * 'Drop-ins', 'Search'.
77
+ */
78
+ public function plugin_row_meta( $plugin_meta, $plugin_file, $plugin_data, $status ) {
79
+ if ( DIVI_POPUP_PLUGIN !== $plugin_file ) {
80
+ return $plugin_meta;
81
+ }
82
+
83
+ $plugin_meta[] = sprintf(
84
+ '<a href="%s" target="_blank">%s</a>',
85
+ 'https://philippstracker.com/divi-areas-pro/',
86
+ __( 'Divi Areas <strong>Pro</strong>', 'divi-popup' )
87
+ );
88
+
89
+ return $plugin_meta;
90
+ }
91
+
92
  /**
93
  * Add the CSS/JS support to the front-end to make the popups work.
94
  *
95
  * @since 1.0.0
96
  */
97
+ public function enqueue_js_library() {
98
  if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
99
  return;
100
  }
110
 
111
  if ( function_exists( 'et_fb_is_enabled' ) ) {
112
  $is_divi_v3 = true;
113
+ add_filter( 'divi_popup_build_mode', 'et_fb_is_enabled' );
114
  } else {
115
  $is_divi_v3 = false;
116
  }
201
  */
202
  $config['singletonClass'] = 'single';
203
 
204
+ /**
205
+ * Name of the class that activates the dark mode (dark close button) of the
206
+ * popup.
207
+ *
208
+ * @since 1.6.0
209
+ */
210
+ $config['darkModeClass'] = 'dark';
211
+
212
+ /**
213
+ * Name of the class that removes the box-shadow from the popup.
214
+ *
215
+ * @since 1.6.0
216
+ */
217
+ $config['noShadowClass'] = 'no-shadow';
218
+
219
+ /**
220
+ * Name of the class that changes the popups close button layout.
221
+ *
222
+ * @since 1.6.0
223
+ */
224
+ $config['altCloseClass'] = 'close-alt';
225
+
226
  /**
227
  * CSS selector used to identify popups.
228
  * Each popup must also have a unique ID attribute that
360
  */
361
  $config['debug'] = defined( WP_DEBUG ) ? WP_DEBUG : false;
362
 
363
+ /* -- End of default configuration -- */
364
+
365
+ // Compatibility with older Popups for Divi version.
366
  $js_data = apply_filters( 'evr_divi_popup-js_data', $config ); // phpcs:ignore
367
 
368
+ // Divi Areas Pro filter.
369
+ $js_data = apply_filters( 'divi_areas_js_data', $config );
370
+
371
+ if ( apply_filters( 'divi_popup_build_mode', false ) ) {
372
  $base_name = 'builder';
373
  $inline_css = '';
374
  } else {
375
  $base_name = 'front';
376
  $inline_css = sprintf(
377
+ '%s{display:none}',
378
  $js_data['popupSelector']
379
  );
380
  }
381
 
382
+ if ( $js_data['debug'] || ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ) {
383
  $cache_version .= '-' . time();
384
  }
385
 
js/builder.js CHANGED
@@ -1 +1 @@
1
- !function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=6)}({6:function(e,n,t){t(7),e.exports=t(8)},7:function(e,n,t){"use strict";window.parent&&window.parent!==window&&window.parent.DiviPopupBuilder?window.DiviPopupBuilder=window.parent.DiviPopupBuilder:window.DiviPopupBuilder=new function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e)}},8:function(e,n,t){}});
1
+ !function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=9)}({10:function(e,n,t){"use strict";window.parent&&window.parent!==window&&window.parent.DiviPopupBuilder?window.DiviPopupBuilder=window.parent.DiviPopupBuilder:window.DiviPopupBuilder=new function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e)}},11:function(e,n,t){},9:function(e,n,t){t(10),e.exports=t(11)}});
js/front.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function a(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,a),i.l=!0,i.exports}a.m=e,a.c=t,a.d=function(e,t,o){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(a.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)a.d(o,i,function(t){return e[t]}.bind(null,i));return o},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=0)}([function(e,t,a){a(1),e.exports=a(5)},function(e,t,a){"use strict";var o=function(e){return e&&e.__esModule?e:{default:e}}(a(2));window.DiviPopup=new o.default},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var a=0;a<t.length;a++){var o=t[a];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,a,o){return a&&e(t.prototype,a),o&&e(t,o),t}}(),i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n=a(3),r=a(4);var s=!1,p=null,l=null,d=window.addEventListener,u=jQuery(window),c={},g={},f=[];function v(){var e=!1,t=!1;if(f.length){for(var a in c)(e=c[a]).hasClass((0,r.getOption)("activePopupClass"))&&(e.removeClass((0,r.getOption)("activePopupClass")),jQuery(document).trigger("DiviPopup:Blur",e),e.trigger("DiviPopup:Blur"));for(var o=0;o<f.length;o+=1)(t=(e=f[o]).parent()).hasClass((0,r.getOption)("popupWrapperClass"))||((t=jQuery("<div/>")).appendTo(p),t.addClass((0,r.getOption)("popupWrapperClass")),e.detach().appendTo(t)),t.css({zIndex:(0,r.getOption)("zIndex")+o});"yes"!==e.attr("data-visible")&&(e.attr("data-visible","yes"),(0,n.animatePopup)(e,function(e){e.fadeIn((0,r.getOption)("animateSpeed"))}),jQuery(document).trigger("DiviPopup:Show",e),e.trigger("DiviPopup:Show")),e.addClass((0,r.getOption)("activePopupClass")),jQuery(document).trigger("DiviPopup:Focus",e),e.trigger("DiviPopup:Focus"),s&&!e.data("observe-resize")&&(s.observe(e[0]),e.data("observe-resize",!0)),window.setTimeout(C,50),DiviPopup.showOverlay()}}function h(e){var t;if("input"!==e.target.tagName.toLowerCase()&&"textarea"!==e.target.tagName.toLowerCase()&&"select"!==e.target.tagName.toLowerCase()&&(t=Math.max(document.documentElement.clientWidth,window.innerWidth||0),!(e.clientX>=t-50||e.clientY>=50||e.toElement||e.relatedTarget)))for(var a in(0,r.debug)("Popup exit-intent trigger"),c){var o=c[a];(0,r.debug)("Popup",(0,r.getOption)("exitIndicatorClass"),o),o.hasClass((0,r.getOption)("exitIndicatorClass"))&&DiviPopup.openPopup(a)}}function C(){for(var e=parseInt(jQuery("html").css("marginTop")),t=u.innerWidth(),a=u.innerHeight()-e,o=function(e){var o,i,n=e.parent();i=isNaN(e[0].scrollHeight)?e.innerHeight:e[0].scrollHeight,o=isNaN(e[0].scrollWidth)?e.innerWidth:e[0].scrollWidth,t<o+20?n.addClass((0,r.getOption)("fullWidthClass")):n.removeClass((0,r.getOption)("fullWidthClass")),a<i+20?n.addClass((0,r.getOption)("fullHeightClass")):n.removeClass((0,r.getOption)("fullHeightClass"))},i=0;i<f.length;i++)o(f[i])}function b(e){if(27===e.keyCode)return!f.length||((0,r.debug)("Handle [ESC] key: Close active popup"),DiviPopup.closePopup(),!1)}function y(e){return(0,r.debug)("Click on popup overlay"),e.preventDefault(),e.stopPropagation(),!!f.length&&(jQuery(document).trigger("DiviPopup:OverlayClick"),!f[f.length-1].hasClass((0,r.getOption)("modalIndicatorClass"))&&(DiviPopup.closePopup(),!1))}function m(e){return e.preventDefault(),e.stopPropagation(),(0,r.debug)("Click on popup close"),DiviPopup.closePopup(),!1}function w(e){var t=jQuery(this);return(0,r.debug)("Open popup: "+t.attr("data-popup-id")),e.preventDefault(),e.stopPropagation(),DiviPopup.openPopup(t.attr("data-popup-id")),!1}function O(e,t){var a=[],o=(e=jQuery(e)).attr("data-id"),n=o.replace(/^#/,""),s=f.map(function(e){return(e=jQuery(e)).hasClass((0,r.getOption)("singletonClass"))&&a.push(e.attr("data-id")),e.attr("data-id")});function p(e){"object"===(void 0===e?"undefined":i(e))&&(e=e.attr("data-id")),e&&e.length&&("#"!==e[0]&&(e="#"+e),a.push(e))}t?(a.push(o),o=!1):e.hasClass((0,r.getOption)("singletonClass"))&&(a=s,o=!1),t?(jQuery(document).triggerHandler("DiviPopup:BeforeHide",[e,s,p]),jQuery(document).triggerHandler("DiviPopup:BeforeHide:"+n,[e,s,p])):(jQuery(document).triggerHandler("DiviPopup:BeforeShow",[e,s,p]),jQuery(document).triggerHandler("DiviPopup:BeforeShow:"+e.attr("key"),[e,s,p])),a.length&&(0,r.debug)("Hide popups",a);for(var l=f.length-1;l>=0;l--)if(f[l]){var d=f[l].attr("data-id");-1!==a.indexOf(d)?P(f[l]):o&&o===d&&f.splice(l,1)}else f.splice(l,1)[0]}function P(e){e=jQuery(e),jQuery(document).trigger("DiviPopup:Hide",e),e.trigger("DiviPopup:Hide"),e.find("."+(0,r.getOption)("closeButtonClass")).off(".popup"),e.find("div ."+(0,r.getOption)("triggerCloseClass")).off(".popup"),e.find("div .popup-trigger").off(".popup"),s&&e.data("observe-resize")&&(s.unobserve(e[0]),e.data("observe-resize",!1));var t=e.parent();e.detach().hide().attr("data-visible","no"),t.hasClass((0,r.getOption)("popupWrapperClass"))&&t.remove();for(var a=0;a<f.length;a+=1)f[a].attr("data-id")===e.attr("data-id")&&f.splice(a,1)[0]}function D(e){(0,r.debug)(" -- Activate triggers --");var t=function(e,t){var a,o,i;if(a=k(t)){if(e.attr("data-popup-id"))return e.off(".popup"),e.on("click.popup",w),void(0,r.debug)("-> Trigger already linked with popup: "+i,e);o=DiviPopup.register(a,{selector:(0,r.getOption)("popupSelector")}),i=a.toLowerCase(),o?(e.attr("data-popup-id",i),e.addClass("popup-trigger"),e.on("click.popup",w),(0,r.debug)("-> Trigger linked to popup: "+i,e)):(0,r.debug)("-> Trigger has no popup",e)}else(0,r.debug)("-> Not a popup trigger",e)};void 0===e&&(e=p),jQuery((0,r.getOption)("popupSelector"),e).each(function(){(0,r.debug)("Check if this is a popup",this),DiviPopup.register(jQuery(this).attr("id"),{selector:(0,r.getOption)("popupSelector")})}),jQuery('[href^="#"]',e).each(function(){(0,r.debug)("Check if this is a trigger (1)",this),t(jQuery(this),jQuery(this).attr("href"))}),jQuery("["+(0,r.getOption)("idAttrib")+"]",e).each(function(){(0,r.debug)("Check if this is a trigger (2)",this),t(jQuery(this),jQuery(this).attr((0,r.getOption)("idAttrib")))}),(0,r.getOption)("triggerClassPrefix")?((0,r.debug)("Find triggers by classPrefix (3)",(0,r.getOption)("triggerClassPrefix")),jQuery("[class^="+(0,r.getOption)("triggerClassPrefix")+"],[class*= "+(0,r.getOption)("triggerClassPrefix")+"]",e).each(function(){var e=jQuery(this).attr("class").split((0,r.getOption)("triggerClassPrefix"))[1].split(" ");(0,r.debug)("Check if this is a trigger (3)",e[0],this),t(jQuery(this),e[0])})):(0,r.debug)("No triggerClassPrefix defined (3)")}function k(e){return e?("#"!==e[0]&&(e="#"+e),(e=e.replace(/^#popup:/,"#",e))||""):""}function j(e){var t=k(e),a=k(g[e.toLowerCase().trim()]);return void 0!==c[t]?t:void 0!==c[a]&&a}function x(e,t){return void 0===t&&(t=!0),void 0===e||null===e?!!t:!0===e||!1===e?e:("string"==typeof e&&(e=e.toLowerCase()),0!==e&&"0"!==e&&"n"!==e[0]&&"f"!==e[0]&&"off"!==e&&(1===e||"1"===e||"y"===e[0]||"t"===e[0]||"on"===e||!!t))}window.toBool=x;var _=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),(0,r.debug)("Load popups-for-divi...");var t=window.MutationObserver||window.WebKitMutationObserver,a=window.ResizeObserver||window.WebKitResizeObserver;function o(){if((0,r.debug)("Initialize popups-for-divi..."),(p=jQuery((0,r.getOption)("baseContext"))).length){if(t){var e=p[0];new t(function(e,t){(e[0].addedNodes.length||e[0].removedNodes.length)&&D()}).observe(e,{childList:!0,subtree:!0})}else d&&(e.addEventListener("DOMNodeInserted",D,!1),e.addEventListener("DOMNodeRemoved",D,!1));a?s=new a(C):window.setInterval(C,750),jQuery(window).resize(C),jQuery(document).on("keyup",b),window.setTimeout(function(){jQuery(window).on("mouseleave",h)},(0,r.getOption)("onExitDelay")),D(),jQuery(document).trigger("DiviPopup:Ready")}else(0,r.error)('Could not find the popup container "'+(0,r.getOption)("baseContext")+'"')}(0,r.getOption)("initializeOnEvent")?jQuery(window,document).on((0,r.getOption)("initializeOnEvent"),function(){window.setTimeout(o,1)}):o()}return o(e,[{key:"register",value:function(e){var t,a,o,i,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return void 0!==e&&((i=j(e))?c[i]:!!(a=(t=k(e)).toLowerCase())&&(!!(o=jQuery(t)).length&&(s.selector&&(o=o.filter(s.selector)),(o=o.detach()).addClass("popup"),!(!o||1!==o.length)&&(c[a]||(o.attr("data-id",a),o.attr("data-visible","no"),(0,n.initializePopupAnimation)(o),function(e){var t=(0,r.getOption)("closeButtonClass"),a=t+"_wrap",o=(0,r.getOption)("noCloseClass"),i=(0,r.getOption)("withCloseClass");if(!e.find("."+a).length){var n=jQuery("<span />").addClass(a),s=jQuery('<a href="#close" />').addClass(t);s.html("&times;"),s.appendTo(n),n.appendTo(e),e.hasClass(o)||e.hasClass(i)||((0,r.getOption)("defaultShowCloseButton")?e.addClass(i):e.addClass(o)),(0,r.debug)("-> Added a close button to popup",e.attr("data-id"))}}(o),jQuery(document).trigger("DiviPopup:Init",o),o.trigger("DiviPopup:Init"),c[a]=o,(0,r.debug)("-> Found new popup: "+a)),o.hasClass((0,r.getOption)("notMobileClass"))?o.data("on-mobile",!1):o.data("on-mobile",x(o.data("on-mobile"))),o.hasClass((0,r.getOption)("notTabletClass"))?o.data("on-tablet",!1):o.data("on-tablet",x(o.data("on-tablet"))),o.hasClass((0,r.getOption)("notDesktopClass"))?o.data("on-desktop",!1):o.data("on-desktop",x(o.data("on-desktop"))),o.hasClass((0,r.getOption)("withCloseClass"))?o.data("show-close",!0):o.hasClass((0,r.getOption)("noCloseClass"))?o.data("show-close",!1):o.data("show-close",x(o.data("show-close"))),o.hasClass((0,r.getOption)("modalIndicatorClass"))?o.data("is-modal",!0):o.data("is-modal",x(o.data("is-modal"),!1)),o.hasClass((0,r.getOption)("exitIndicatorClass"))?o.data("trigger-exit",!0):o.data("trigger-exit",x(o.data("trigger-exit"),!1)),DiviPopup.config(o),Object.keys(s).forEach(function(e){DiviPopup.config(o,e,s[e])}),o))))}},{key:"config",value:function(e,t,a){var o,n,s;if("string"==typeof e&&(e=j(e)),1===(n=jQuery(e)).length)if(o=n.attr("id").toLowerCase(),"object"!==(void 0===t?"undefined":i(t))){if(void 0!==t){if("string"!=typeof t)return;switch(t=t.trim().toLowerCase().replace("-","")){case"notmobile":s=x(n.data("on-mobile")),n.data("on-mobile",!x(a,!s));break;case"onmobile":s=x(n.data("on-mobile")),n.data("on-mobile",x(a,s));break;case"nottablet":s=x(n.data("on-tablet")),n.data("on-tablet",!x(a,!s));break;case"ontablet":s=x(n.data("on-tablet")),n.data("on-tablet",x(a,s));break;case"notdesktop":s=x(n.data("on-desktop")),n.data("on-desktop",!x(a,!s));break;case"ondesktop":s=x(n.data("on-desktop")),n.data("on-desktop",x(a,s));break;case"triggerexit":n.data("trigger-exit",x(a));break;case"hideclose":n.data("show-close",!x(a));break;case"showclose":n.data("show-close",x(a));break;case"ismodal":n.data("is-modal",x(a));break;case"notmodal":n.data("is-modal",!x(a));break;case"triggerclick":jQuery(document).on("click.popup_click",a,w);break;case"ids":case"alternateid":var p=function(e){(e=e.toLowerCase().trim())!==o&&(n.data("alternate-id",e),g[e]&&g[e]!==o&&(0,r.debug)("Warning: The alternate popup ID is replaced",e),g[e]=o)};Array.isArray(a)?a.forEach(function(e){return p(e)}):p(a)}}n.data("on-mobile")?n.removeClass((0,r.getOption)("notMobileClass")):n.addClass((0,r.getOption)("notMobileClass")),n.data("on-tablet")?n.removeClass((0,r.getOption)("notTabletClass")):n.addClass((0,r.getOption)("notTabletClass")),n.data("on-desktop")?n.removeClass((0,r.getOption)("notDesktopClass")):n.addClass((0,r.getOption)("notDesktopClass")),n.data("trigger-exit")?n.addClass((0,r.getOption)("exitIndicatorClass")):n.removeClass((0,r.getOption)("exitIndicatorClass")),n.data("show-close")?(n.addClass((0,r.getOption)("withCloseClass")),n.removeClass((0,r.getOption)("noCloseClass"))):(n.addClass((0,r.getOption)("noCloseClass")),n.removeClass((0,r.getOption)("withCloseClass"))),n.data("is-modal")?n.addClass((0,r.getOption)("modalIndicatorClass")):n.removeClass((0,r.getOption)("modalIndicatorClass"))}else for(var l in t)t.hasOwnProperty(l)&&DiviPopup.config(n,l,t[l])}},{key:"showOverlay",value:function(){var e=(0,r.getOption)("zIndex");null===l&&((l=jQuery("<div />")).addClass((0,r.getOption)("overlayClass")),l.prependTo(p),l.on("click.popup",y)),f.length&&(e+=f.length-1),(0,r.debug)("Show popup overlay"),l.css({zIndex:e}),l.fadeIn((0,r.getOption)("animateSpeed"),function(){jQuery("body").addClass((0,r.getOption)("openPopupClass"))}),jQuery(document).trigger("DiviPopup:OverlayShow")}},{key:"hideOverlay",value:function(){(0,r.debug)("Hide popup overlay"),l.hide(),jQuery("body").removeClass((0,r.getOption)("openPopupClass")),jQuery(document).trigger("DiviPopup:OverlayHide")}},{key:"openPopup",value:function(e){if(!(e=j(e)))return(0,r.error)("Could not find a popup with the ID:",e),!1;var t=c[e];return function(e){var t=u.innerWidth();return t<768?!!e.data("on-mobile"):t<981?!!e.data("on-tablet"):!!e.data("on-desktop")}(t)?(O(t),t.removeClass((0,r.getOption)("exitIndicatorClass")),(0,r.debug)("Show popup and set event handlers:",e),function(e){e=jQuery(e),f.push(e),D(e),e.find("div ."+(0,r.getOption)("triggerCloseClass")).off(".popup"),e.find("div ."+(0,r.getOption)("triggerCloseClass")).on("click.popup",m),e.find("div .popup-trigger").off(".popup"),e.find("div .popup-trigger").on("click.popup",w),e.hasClass((0,r.getOption)("withCloseClass"))&&(e.find("."+(0,r.getOption)("closeButtonClass")).off(".popup"),e.find("."+(0,r.getOption)("closeButtonClass")).on("click.popup",m))}(t),v(),window.setTimeout(function(){jQuery("body").trigger("post-load"),void 0!==window.et_reinit_waypoint_modules&&window.et_reinit_waypoint_modules()},50),!0):((0,r.debug)("Do not trigger popup on this device:",e),!1)}},{key:"closePopup",value:function(e){var t;if(f.length){if(e){if(e=j(e))for(var a=0;a<f.length;a+=1)if(f[a].attr("data-id")===e){t=f[a];break}}else t=f[f.length-1];t&&((0,r.debug)("Close popup and unlink event handlers:",t.attr("data-id")),O(t,!0))}f.length?v():DiviPopup.hideOverlay()}}]),e}();t.default=_},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o={};function i(e,t,a){a=a||e.data("et_waypoint_max_instances")||1;var o=e.data("et_waypoint")||[];if(o.length<a){var i=e.waypoint(t);i&&i.length>0&&(o.push(i[0]),e.data("et_waypoint",o))}else for(var n=0;n<o.length;n++)o[n].context.refresh()}t.animatePopup=function(e,t){return!e.is(":visible")&&(jQuery.fn.waypoint?"yes"===et_pb_custom.ignore_waypoints?t(e):function(e){var t=e.attr("data-animation"),a=!1;return!!t&&(!!(a=o[t])&&(jQuery("body").css("overflow-x","hidden"),jQuery("#page-container").css("overflow-y","hidden"),e.attr({"data-animation-style":a.style,"data-animation-repeat":"once"===a.repeat?"":"infinite","data-animation-duration":a.duration,"data-animation-delay":a.delay,"data-animation-intensity":a.intensity,"data-animation-starting-opacity":a.starting_opacity,"data-animation-speed-curve":a.speed_curve}),void i(e,{offset:"100%",handler:function(){!function(e){var t=e.attr("data-animation-style"),a=e.attr("data-animation-repeat"),o=e.attr("data-animation-duration"),i=e.attr("data-animation-delay"),n=e.attr("data-animation-intensity"),r=e.attr("data-animation-starting-opacity"),s=e.attr("data-animation-speed-curve");!function(e){for(var t=[],a=e.get(0).attributes,o=0;o<a.length;o++)"data-animation-"===a[o].name.substring(0,15)&&t.push(a[o].name);jQuery.each(t,function(t,a){e.removeAttr(a)})}(e);var p=isNaN(parseInt(r))?0:.01*parseInt(r);-1===jQuery.inArray(s,["linear","ease","ease-in","ease-out","ease-in-out"])&&(s="ease-in-out"),e.css({"animation-duration":o,"animation-delay":i,opacity:p,"animation-timing-function":s});for(var l={},d=isNaN(parseInt(n))?50:parseInt(n),u=["slide","zoom","flip","fold","roll"],c=!1,g=!1,f=0;f<u.length;f++){var v=u[f];if(t&&t.substr(0,v.length)===v){c=v,""!==(g=t.substr(v.length,t.length))&&(g=g.toLowerCase());break}}!1!==c&&!1!==g&&(l=function(e,t,a){var o={};switch(e){case"slide":switch(t){case"top":o={transform:"translate3d(0, "+(i=-2*a)+"%, 0)"};break;case"right":o={transform:"translate3d("+(i=2*a)+"%, 0, 0)"};break;case"bottom":o={transform:"translate3d(0, "+(i=2*a)+"%, 0)"};break;case"left":var i=-2*a;o={transform:"translate3d("+i+"%, 0, 0)"};break;default:o={transform:"scale3d("+(n=.01*(100-a))+", "+n+", "+n+")"}}break;case"zoom":var n=.01*(100-a);switch(t){case"top":case"right":case"bottom":case"left":default:o={transform:"scale3d("+n+", "+n+", "+n+")"}}break;case"flip":switch(t){case"right":o={transform:"perspective(2000px) rotateY("+(r=Math.ceil(.9*a))+"deg)"};break;case"left":o={transform:"perspective(2000px) rotateY("+(r=-1*Math.ceil(.9*a))+"deg)"};break;case"top":default:o={transform:"perspective(2000px) rotateX("+(r=Math.ceil(.9*a))+"deg)"};break;case"bottom":o={transform:"perspective(2000px) rotateX("+(r=-1*Math.ceil(.9*a))+"deg)"}}break;case"fold":switch(t){case"top":o={transform:"perspective(2000px) rotateX("+(r=-1*Math.ceil(.9*a))+"deg)"};break;case"bottom":o={transform:"perspective(2000px) rotateX("+(r=Math.ceil(.9*a))+"deg)"};break;case"left":o={transform:"perspective(2000px) rotateY("+(r=Math.ceil(.9*a))+"deg)"};break;case"right":default:o={transform:"perspective(2000px) rotateY("+(r=-1*Math.ceil(.9*a))+"deg)"}}break;case"roll":switch(t){case"right":case"bottom":o={transform:"rotateZ("+(r=-1*Math.ceil(3.6*a))+"deg)"};break;case"top":case"left":o={transform:"rotateZ("+(r=Math.ceil(3.6*a))+"deg)"};break;default:var r=Math.ceil(3.6*a);o={transform:"rotateZ("+r+"deg)"}}}return o}(c,g,d)),jQuery.isEmptyObject(l)||e.css(l),e.addClass("et_animated"),e.addClass(t),e.addClass(a)}(jQuery(this.element))}})))}(e)?(e.show(),e.css({opacity:0}),void window.setTimeout(function(){e.css({opacity:""}),i(e,{offset:"100%",handler:function(){e.addClass("et-animated")}},2)},10)):t(e):t(e))},t.initializePopupAnimation=function(e){if(!window.et_animation_data||!window.et_animation_data.length>0)return!1;e.removeClass("et-waypoint"),e.removeClass("et-animated");for(var t=0;t<et_animation_data.length;t++){var a=!1,i=et_animation_data[t];i&&i.class&&e.hasClass(i.class)&&i.style&&i.repeat&&i.duration&&i.delay&&i.intensity&&i.starting_opacity&&i.speed_curve&&(a=i.class,e.addClass("pfd-waypoint"),e.attr("data-animation",a),o[a]=i,et_animation_data[t].class=void 0)}}},function(e,t,a){"use strict";function o(){i("debug")&&console.log.apply(this,arguments)}function i(e){return DiviPopupData[e]}Object.defineProperty(t,"__esModule",{value:!0}),t.debug=o,t.error=function(){console.error.apply(this,arguments)},t.getOption=i,function(){var e={popupSelector:".et_pb_section.popup",fullWidthClass:"popup_full_width",fullHeightClass:"popup_full_height",openPopupClass:"evr_popup_open",overlayClass:"evr_fb_popup_modal",modalIndicatorClass:"is-modal",exitIndicatorClass:"on-exit",activePopupClass:"is-open",noCloseClass:"no-close",notMobileClass:"not-mobile",notTabletClass:"not-tablet",notDesktopClass:"not-desktop",withCloseClass:"with-close",singletonClass:"single",closeButtonClass:"evr-close",defaultShowCloseButton:!0,idAttrib:"data-popup",triggerClassPrefix:"",baseContext:"body",triggerCloseClass:"close",zIndex:1e5,onExitDelay:2e3,animateSpeed:300,debug:!1,initializeOnEvent:"et_pb_after_init_modules"};if(window.DiviPopupData)for(var t in e)void 0===DiviPopupData[t]&&(DiviPopupData[t]=e[t]),DiviPopupData[t].replace&&(DiviPopupData[t]=DiviPopupData[t].replace(/^[\s\xA0]+|[\s\xA0]+$/g,""));else window.DiviPopupData=e;DiviPopupData.zIndex=parseInt(DiviPopupData.zIndex),DiviPopupData.onExitDelay=parseInt(DiviPopupData.onExitDelay),DiviPopupData.animateSpeed=parseInt(DiviPopupData.animateSpeed),DiviPopupData.debug=!!DiviPopupData.debug,DiviPopupData.defaultShowCloseButton=!!DiviPopupData.defaultShowCloseButton,(!DiviPopupData.triggerClassPrefix||DiviPopupData.triggerClassPrefix.length<3)&&(DiviPopupData.triggerClassPrefix=!1),"body"===DiviPopupData.baseContext&&1===jQuery("body.et_divi_theme #page-container").length&&(o("Divi theme detected. Use #page-container instead of body"),DiviPopupData.baseContext="#page-container"),"body"===DiviPopupData.baseContext||jQuery(DiviPopupData.baseContext).length||(DiviPopupData.baseContext="body"),jQuery(document).trigger("DiviPopup:OptionsReady")}()},function(e,t,a){}]);
1
+ !function(e){var t={};function a(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,a),i.l=!0,i.exports}a.m=e,a.c=t,a.d=function(e,t,o){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(a.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)a.d(o,i,function(t){return e[t]}.bind(null,i));return o},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=3)}([function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getContext=n,t.getOption=r,t.findTriggers=function(e,t){var a,o,i,n=[];if(!e.ids)return[];function r(e,t){var a;for(a=0;a<t.length;a++)n.push({id:e,item:jQuery(t[a])})}for(a=0;a<e.ids.length;a++)if(r(i=e.ids[a].replace(/^#/,""),jQuery('[href="#'+i+'"]',t)),e.linkPrefix&&r(i,jQuery('[href="#'+e.linkPrefix+i+'"]',t)),e.classPrefix&&r(i,jQuery("."+e.classPrefix+i,t)),e.dataAttrib&&r(i,jQuery("["+e.dataAttrib+'="'+i+'"]',t)),window.et_link_options_data)for(o=et_link_options_data.length-1;o>=0;o--)if("#"+i===et_link_options_data[o].url){var s=jQuery(".et_pb_module."+et_link_options_data[o].class,t);r(i,s),s.off("click"),et_link_options_data.splice(o,1)}return n},t.debug=s,t.error=l,t.toBool=function(e,t){void 0===t&&(t=!0);if(void 0===e||null===e)return!!t;if(!0===e||!1===e)return e;"string"==typeof e&&(e=e.toLowerCase());if(0===e||"0"===e||"n"===e[0]||"f"===e[0]||"off"===e)return!1;if(1===e||"1"===e||"y"===e[0]||"t"===e[0]||"on"===e)return!0;return!!t},t.setLocalData=function(e,t,a){(!a||isNaN(a)||a<1)&&(a=525600);if(window.localStorage){var o=new Date;o=o.setMinutes(o.getMinutes()+a),localStorage.setItem("_da_"+e,o+":"+t)}else d("_da_"+e,t,a)},t.getLocalData=function(e){if(window.localStorage){var t=localStorage.getItem("_da_"+e);if(!t)return!1;var a=t.split(":"),o=parseInt(a.shift()),i=a.join(":");return o>new Date?i:(localStorage.removeItem("_da_"+e),!1)}return p("_da_"+e)},t.setCookie=d,t.getCookie=p,t.addObservers=function(e,t,a,o){var r=window.MutationObserver||window.WebKitMutationObserver,s=window.ResizeObserver||window.WebKitResizeObserver,l=window.addEventListener,d=n();if(r){var p=new r(function(e,a){(e[0].addedNodes.length||e[0].removedNodes.length)&&t()});p.observe(d[0],{childList:!0,subtree:!0})}else l&&(d.addEventListener("DOMNodeInserted",t,!1),d.addEventListener("DOMNodeRemoved",t,!1));s?i[e]=new s(a):window.setInterval(a,750);jQuery(window).resize(a),jQuery(document).on("keyup",o)},t.addAdditionalResizeObserver=function(e,t){i[e]&&!t.data("observe-resize")&&(i[e].observe(t[0]),t.data("observe-resize",!0))},t.removeAdditionalResizeObserver=function(e,t){i[e]&&t.data("observe-resize")&&(i[e].unobserve(t[0]),t.data("observe-resize",!1))},t.toMilliseconds=function(e){var t,a=parseFloat(e,10),o=e.match(/m?s/);o&&(o=o[0]);switch(o){case"s":t=1e3*a;break;case"ms":t=a;break;default:t=0}return t};var o=null,i={};function n(){return o}function r(e){return DiviPopupData[e]}function s(){r("debug")&&console.log.apply(this,arguments)}function l(){console.error.apply(this,arguments)}function d(e,t,a){var o=escape(t);if(a){var i=new Date;i.setMinutes(i.getMinutes()+a),o+="; expires="+i.toUTCString()}document.cookie=e+"="+o+"; path=/"}function p(e){var t,a,o,i=document.cookie.split(";");for(t=0;t<i.length;t++)if(a=i[t].substr(0,i[t].indexOf("=")),o=i[t].substr(i[t].indexOf("=")+1),(a=a.replace(/^\s+|\s+$/g,""))===e)return unescape(o);return!1}!function(){var e={popupSelector:".et_pb_section.popup",fullWidthClass:"popup_full_width",fullHeightClass:"popup_full_height",openPopupClass:"evr_popup_open",overlayClass:"evr_fb_popup_modal",modalIndicatorClass:"is-modal",exitIndicatorClass:"on-exit",activePopupClass:"is-open",noCloseClass:"no-close",altCloseClass:"close-alt",notMobileClass:"not-mobile",notTabletClass:"not-tablet",notDesktopClass:"not-desktop",withCloseClass:"with-close",singletonClass:"single",darkModeClass:"dark",noShadowClass:"with-shadow",closeButtonClass:"evr-close",defaultShowCloseButton:!0,idAttrib:"data-popup",triggerClassPrefix:"show-popup-",baseContext:"body",triggerCloseClass:"close",zIndex:1e5,onExitDelay:2e3,animateSpeed:300,debug:!1,initializeOnEvent:"et_pb_after_init_modules"};if(window.DiviPopupData)for(var t in e)void 0===DiviPopupData[t]&&(DiviPopupData[t]=e[t]),DiviPopupData[t].replace&&(DiviPopupData[t]=DiviPopupData[t].replace(/^[\s\xA0]+|[\s\xA0]+$/g,""));else window.DiviPopupData=e;DiviPopupData.zIndex=parseInt(DiviPopupData.zIndex),DiviPopupData.onExitDelay=parseInt(DiviPopupData.onExitDelay),DiviPopupData.animateSpeed=parseInt(DiviPopupData.animateSpeed),DiviPopupData.debug=!!DiviPopupData.debug,DiviPopupData.defaultShowCloseButton=!!DiviPopupData.defaultShowCloseButton,(!DiviPopupData.triggerClassPrefix||DiviPopupData.triggerClassPrefix.length<3)&&(DiviPopupData.triggerClassPrefix=!1),"body"===DiviPopupData.baseContext&&1===jQuery("body.et_divi_theme #page-container").length&&(s("Divi theme detected. Use #page-container instead of body"),DiviPopupData.baseContext="#page-container"),"body"===DiviPopupData.baseContext||jQuery(DiviPopupData.baseContext).length||(DiviPopupData.baseContext="body"),jQuery(document).trigger("DiviPopup:OptionsReady")}(),(o=jQuery(r("baseContext"))).length||l('Could not find the popup container "'+r("baseContext")+'"')},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getId=l,t.getRealId=d,t.addAltId=function(e,t){if(e===t)return;t=l(t),null===e?delete s[t]:s[t]=e},t.getArea=p,t.registerArea=function(e,t,a){void 0===r[e]&&(r[e]=[]);if(!(t=l(t)))return!1;var s=p(t);if(s)return s;var d=jQuery(t);if(!d.length)return!1;a&&(d=d.filter(a));if(!d||1!==d.length)return!1;"inline"===e?d.attr("data-visible","yes"):(d.detach(),d.attr("data-visible","no"));d.addClass(e),d.data("_id",t),d.data("_type",e),(0,o.attachCloseButton)(d),jQuery(document).trigger("DiviArea:Init",d),d.trigger("DiviArea:Init"),"popup"===e&&(jQuery(document).trigger("DiviPopup:Init",d),d.trigger("DiviPopup:Init"));n[t]=d,d.hasClass((0,i.getOption)("notMobileClass"))?d.data("on-mobile",!1):d.data("on-mobile",(0,i.toBool)(d.data("on-mobile")));d.hasClass((0,i.getOption)("notTabletClass"))?d.data("on-tablet",!1):d.data("on-tablet",(0,i.toBool)(d.data("on-tablet")));d.hasClass((0,i.getOption)("notDesktopClass"))?d.data("on-desktop",!1):d.data("on-desktop",(0,i.toBool)(d.data("on-desktop")));d.hasClass((0,i.getOption)("withCloseClass"))?d.data("show-close",!0):d.hasClass((0,i.getOption)("noCloseClass"))?d.data("show-close",!1):d.data("show-close",(0,i.toBool)(d.data("show-close")));d.hasClass((0,i.getOption)("altCloseClass"))?d.data("close-alt",!0):d.data("close-alt",(0,i.toBool)(d.data("close-alt"),!1));d.hasClass((0,i.getOption)("modalIndicatorClass"))?d.data("is-modal",!0):d.data("is-modal",(0,i.toBool)(d.data("is-modal"),!1));d.hasClass((0,i.getOption)("exitIndicatorClass"))?d.data("trigger-exit",!0):d.data("trigger-exit",(0,i.toBool)(d.data("trigger-exit"),!1));d.hasClass((0,i.getOption)("noShadowClass"))?d.data("no-shadow",!0):d.data("no-shadow",(0,i.toBool)(d.data("no-shadow"),!1));d.hasClass((0,i.getOption)("darkModeClass"))?d.data("dark-mode",!0):d.data("dark-mode",(0,i.toBool)(d.data("dark-mode"),!1));d.hasClass((0,i.getOption)("singletonClass"))?d.data("singleton",!0):d.data("singleton",(0,i.toBool)(d.data("singleton"),!1));return(0,o.configArea)(d),(0,i.debug)("[+] Registered new area:",t),d},t.getAllIds=function(e){var t=[];for(var a in n){var o=n[a];e===o.data("_type")&&t.push(a)}for(var i in s){var r=s[i],l=n[r];e===l.data("_type")&&t.push(i)}return t},t.loopAllAreas=function(e,t){for(var a in n){var o=n[a];e===o.data("_type")&&t(o,a)}},t.countVisibleAreas=function(e){if(void 0===r[e])return 0;return r[e].length},t.addVisibleArea=function(e,t){void 0===r[e]&&(r[e]=[]);r[e].push(t)},t.removeVisibleArea=function(e,t){if(void 0===r[e])return!1;for(var a=r[e].length-1;a>=0;a--){var o=r[e][a];t===o.data("_id")&&r[e].splice(a,1)}},t.getVisibleArea=function(e,t){if(void 0===r[e])return!1;if(void 0===t||-1===t)return r[e][r[e].length-1];if(t)for(var a=0;a<r[e].length;a++)if(t===r[e][a].data("_id"))return r[e][a];return!1},t.loopVisibleAreas=function(e,t){if(void 0===r[e])return!1;for(var a=0;a<r[e].length;a++){var o=r[e][a];t(o,a)}};var o=a(2),i=a(0),n={},r={},s={};function l(e,t){if(e instanceof jQuery){if(e.data("_id"))return e.data("_id");e=e.attr("id")}if(!e)return"";if("#"!==e[0]&&(e="#"+e),t){var a=new RegExp("^#"+t+":");e=e.replace(a,"#",e)}return e?e.toString():""}function d(e){var t=l(e),a=l(s[t]);return void 0!==n[t]?t:void 0!==n[a]?a:""}function p(e){if(e instanceof jQuery)return!!e.data("_id")&&e;var t=d(e);return!!t&&n[t]}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.attachCloseButton=function(e){var t=(0,n.getOption)("closeButtonClass"),a=t+"_wrap",o=(0,n.getOption)("noCloseClass"),i=(0,n.getOption)("withCloseClass");if(e.find("."+a).length)return;var r=jQuery("<span />").addClass(a),s=jQuery('<a href="#close" />').addClass(t);s.html("&times;"),s.appendTo(r),r.appendTo(e),e.hasClass(o)||e.hasClass(i)||((0,n.getOption)("defaultShowCloseButton")?e.addClass(i):e.addClass(o));s.on("click",function(){jQuery(document).trigger("DiviArea:Close",e),e.trigger("DiviArea:Close")}),(0,n.debug)("-> Added a close button to area",e.attr("data-id"))},t.checkViewport=function(e){var t=!0,a=jQuery(window).innerWidth();t=a<768?!!e.data("on-mobile"):a<981?!!e.data("on-tablet"):!!e.data("on-desktop");return t},t.triggerLazyLoad=function(e){jQuery("body").trigger("post-load")},t.triggerAnimations=function(e){void 0!==window.et_reinit_waypoint_modules&&window.et_reinit_waypoint_modules()},t.initRecaptcha=function(e){if(!window.grecaptcha)return;if(!e.find('input[name="g-recaptcha-response"]').length)return;if(e.find("[data-sitekey].g-recaptcha").length>0)e.find("form").each(function(){var e=jQuery(this),t=e.find("[data-sitekey].g-recaptcha");if(t.length&&!e.find('iframe[src*="/recaptcha/"]').length){var a={sitekey:t.attr("data-sitekey"),type:t.attr("data-type"),size:t.attr("data-size"),theme:t.attr("data-theme"),badge:t.attr("data-badge"),tabindex:t.attr("data-tabindex")},o=t.attr("data-callback"),i=t.attr("data-expired-callback");o&&"function"==typeof window[o]&&(a.callback=window[o]),i&&"function"==typeof window[i]&&(a["expired-callback"]=window[i]);var n=grecaptcha.render(t[0],a);window.recaptchaWidgets&&recaptchaWidgets.push(n)}});else{var t=jQuery('script[src*="google.com/recaptcha/api.js"]').attr("src"),a=t.replace(/^.*render=(.*)$/,"$1").split("&")[0];grecaptcha.execute(a,{action:"homepage"}).then(function(t){e.find('form [name="g-recaptcha-response]').val(t)})}},t.configArea=function(e,t,a){var r,s,l=(0,i.getArea)(e);if(!l||1!==l.length)return;if(r=l.data("_id"),"object"===(void 0===t?"undefined":o(t))){for(var d in t)t.hasOwnProperty(d)&&DiviPopup.config(l,d,t[d]);return}if(void 0!==t){if("string"!=typeof t)return;switch(t=t.trim().toLowerCase().replace("-","")){case"notmobile":s=(0,n.toBool)(l.data("on-mobile")),l.data("on-mobile",!(0,n.toBool)(a,!s));break;case"onmobile":s=(0,n.toBool)(l.data("on-mobile")),l.data("on-mobile",(0,n.toBool)(a,s));break;case"nottablet":s=(0,n.toBool)(l.data("on-tablet")),l.data("on-tablet",!(0,n.toBool)(a,!s));break;case"ontablet":s=(0,n.toBool)(l.data("on-tablet")),l.data("on-tablet",(0,n.toBool)(a,s));break;case"notdesktop":s=(0,n.toBool)(l.data("on-desktop")),l.data("on-desktop",!(0,n.toBool)(a,!s));break;case"ondesktop":s=(0,n.toBool)(l.data("on-desktop")),l.data("on-desktop",(0,n.toBool)(a,s));break;case"triggerexit":l.data("trigger-exit",(0,n.toBool)(a));break;case"hideclose":l.data("show-close",!(0,n.toBool)(a));break;case"showclose":l.data("show-close",(0,n.toBool)(a));break;case"closealt":l.data("close-alt",(0,n.toBool)(a));break;case"ismodal":l.data("is-modal",(0,n.toBool)(a));break;case"notmodal":l.data("is-modal",!(0,n.toBool)(a));break;case"shadow":l.data("no-shadow",!(0,n.toBool)(a));break;case"noshadow":l.data("no-shadow",(0,n.toBool)(a));break;case"dark":l.data("dark-mode",(0,n.toBool)(a));break;case"width":l.data("width",a);break;case"singleton":l.data("singleton",(0,n.toBool)(a));break;case"ids":case"alternateid":Array.isArray(a)?a.forEach(function(e){return(0,i.addAltId)(r,e)}):(0,i.addAltId)(r,a)}}l.data("on-mobile")?l.removeClass((0,n.getOption)("notMobileClass")):l.addClass((0,n.getOption)("notMobileClass"));l.data("on-tablet")?l.removeClass((0,n.getOption)("notTabletClass")):l.addClass((0,n.getOption)("notTabletClass"));l.data("on-desktop")?l.removeClass((0,n.getOption)("notDesktopClass")):l.addClass((0,n.getOption)("notDesktopClass"));l.data("trigger-exit")?l.addClass((0,n.getOption)("exitIndicatorClass")):l.removeClass((0,n.getOption)("exitIndicatorClass"));l.data("show-close")?(l.addClass((0,n.getOption)("withCloseClass")),l.removeClass((0,n.getOption)("noCloseClass"))):(l.addClass((0,n.getOption)("noCloseClass")),l.removeClass((0,n.getOption)("withCloseClass")));l.data("close-alt")?l.addClass((0,n.getOption)("altCloseClass")):l.removeClass((0,n.getOption)("altCloseClass"));l.data("is-modal")?l.addClass((0,n.getOption)("modalIndicatorClass")):l.removeClass((0,n.getOption)("modalIndicatorClass"));l.data("no-shadow")?l.addClass((0,n.getOption)("noShadowClass")):l.removeClass((0,n.getOption)("noShadowClass"));l.data("dark-mode")?l.addClass((0,n.getOption)("darkModeClass")):l.removeClass((0,n.getOption)("darkModeClass"));l.data("singleton")?l.addClass((0,n.getOption)("singletonClass")):l.removeClass((0,n.getOption)("singletonClass"))};var i=a(1),n=a(0)},function(e,t,a){a(4),e.exports=a(8)},function(e,t,a){"use strict";var o=function(e){return e&&e.__esModule?e:{default:e}}(a(5));window.DiviPopup=new o.default},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var a=0;a<t.length;a++){var o=t[a];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,a,o){return a&&e(t.prototype,a),o&&e(t,o),t}}(),i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n=a(6),r=a(1),s=a(2),l=a(7),d=a(0);function p(){(0,d.debug)("Initialize popups-for-divi..."),jQuery(document).trigger("DiviPopup:Load");var e=y,t=g,a=f;(0,d.addObservers)("popup",e,t,a),window.setTimeout(function(){jQuery(window).on("mouseleave",c)},(0,d.getOption)("onExitDelay")),e(),jQuery(document).trigger("DiviPopup:Ready")}function u(){if((0,r.countVisibleAreas)("popup")){(0,r.loopAllAreas)("popup",function(e){e.hasClass((0,d.getOption)("activePopupClass"))&&(e.removeClass((0,d.getOption)("activePopupClass")),jQuery(document).trigger("DiviPopup:Blur",e),e.trigger("DiviPopup:Blur"))}),(0,r.loopVisibleAreas)("popup",function(e,t){var a=e.parent();a.hasClass((0,d.getOption)("popupWrapperClass"))||((a=jQuery("<div/>")).appendTo((0,d.getContext)()),a.addClass((0,d.getOption)("popupWrapperClass")),e.detach().appendTo(a)),a.css({zIndex:(0,d.getOption)("zIndex")+t})});var e=(0,r.getVisibleArea)("popup");"yes"!==e.attr("data-visible")&&(e.attr("data-visible","yes"),(0,n.animatePopup)(e,function(e){e.fadeIn((0,d.getOption)("animateSpeed"))}),jQuery(document).trigger("DiviPopup:Show",e),e.trigger("DiviPopup:Show")),e.addClass((0,d.getOption)("activePopupClass")),jQuery(document).trigger("DiviPopup:Focus",e),e.trigger("DiviPopup:Focus"),(0,d.addAdditionalResizeObserver)("popup",e),window.setTimeout(g,50),DiviPopup.showOverlay()}}function c(e){var t;"input"!==e.target.tagName.toLowerCase()&&"textarea"!==e.target.tagName.toLowerCase()&&"select"!==e.target.tagName.toLowerCase()&&(t=Math.max(document.documentElement.clientWidth,window.innerWidth||0),e.clientX>=t-50||e.clientY>=50||e.toElement||e.relatedTarget||((0,d.debug)("Popup exit-intent trigger"),(0,r.loopAllAreas)("popup",function(e,t){(0,d.debug)("Popup",(0,d.getOption)("exitIndicatorClass"),e),e.hasClass((0,d.getOption)("exitIndicatorClass"))&&DiviPopup.openPopup(t)})))}function g(){var e=parseInt(jQuery("html").css("marginTop")),t=jQuery(window).innerWidth(),a=jQuery(window).innerHeight()-e;(0,r.loopVisibleAreas)("popup",function(e){var o,i,n=e.parent();e.data("width")||(e.hasClass("et_pb_section")?e.data("width",e.outerWidth()):(e.data("width",e.children(".et_pb_section").first().outerWidth()),e.children(".et_pb_section").css({width:"100%",maxWidth:""})),e.attr("width",e.data("width"))),e.css({maxWidth:e.data("width")}),i=isNaN(e[0].scrollHeight)?e.innerHeight:e[0].scrollHeight,o=isNaN(e[0].scrollWidth)?e.innerWidth:e[0].scrollWidth,t<o+20?n.addClass((0,d.getOption)("fullWidthClass")):n.removeClass((0,d.getOption)("fullWidthClass")),a<i+20?n.addClass((0,d.getOption)("fullHeightClass")):n.removeClass((0,d.getOption)("fullHeightClass"))})}function f(e){if(27===e.keyCode)return!(0,r.countVisibleAreas)("popup")||((0,d.debug)("Handle [ESC] key: Close active popup"),DiviPopup.closePopup(),!1)}function v(){if(!(0,r.countVisibleAreas)("popup"))return!1;jQuery(document).trigger("DiviPopup:OverlayClick");var e=(0,r.getVisibleArea)("popup");if(e.length&&e.hasClass((0,d.getOption)("modalIndicatorClass")))return!1;DiviPopup.closePopup()}function h(e){return e.preventDefault(),e.stopPropagation(),(0,d.debug)("Click on popup close"),DiviPopup.closePopup(),!1}function b(e){var t=jQuery(this);return(0,d.debug)("Open popup: "+t.attr("data-popup-id")),e.preventDefault(),e.stopPropagation(),DiviPopup.openPopup(t.attr("data-popup-id")),!1}function m(e,t){var a=[],o=(e=jQuery(e)).data("_id"),n=o.replace(/^#/,""),s=[];function l(e){"object"===(void 0===e?"undefined":i(e))&&(e=e.data("_id")),e&&e.length&&("#"!==e[0]&&(e="#"+e),a.push(e))}(0,r.loopVisibleAreas)("popup",function(e){e.hasClass((0,d.getOption)("singletonClass"))?a.push(e.data("_id")):s.push(e.data("_id"))}),t?(a.push(o),o=!1):e.hasClass((0,d.getOption)("singletonClass"))&&(a=s,o=!1),t?(jQuery(document).triggerHandler("DiviPopup:BeforeHide",[e,s,l]),jQuery(document).triggerHandler("DiviPopup:BeforeHide:"+n,[e,s,l])):(jQuery(document).triggerHandler("DiviPopup:BeforeShow",[e,s,l]),jQuery(document).triggerHandler("DiviPopup:BeforeShow:"+e.attr("key"),[e,s,l])),a.length&&(0,d.debug)("Hide popups",a),(0,r.loopVisibleAreas)("popup",function(e){var t=e.data("_id");-1!==a.indexOf(t)&&function(e){(e=jQuery(e)).removeClass("__is_animating"),jQuery(document).trigger("DiviPopup:Hide",e),e.trigger("DiviPopup:Hide"),e.find("."+(0,d.getOption)("closeButtonClass")).off(".popup"),e.find("div ."+(0,d.getOption)("triggerCloseClass")).off(".popup"),e.find("div .popup-trigger").off(".popup"),(0,d.removeAdditionalResizeObserver)("popup",e);var t=e.parent();e.detach().hide().attr("data-visible","no"),t.hasClass((0,d.getOption)("popupWrapperClass"))&&t.remove();(0,r.removeVisibleArea)("popup",e.data("_id"))}(e)}),o&&(0,r.removeVisibleArea)("popup",o)}function C(e,t){var a;if(a=(0,r.getId)(t)){if(e.attr("data-popup-id"))return e.off(".popup"),e.on("click.popup",b),void(0,d.debug)("-> Trigger already linked with popup: "+a,e);DiviPopup.register(a,{selector:(0,d.getOption)("popupSelector")})?(e.attr("data-popup-id",a),e.addClass("popup-trigger"),e.on("click.popup",b),(0,d.debug)("-> Trigger linked to popup: "+a,e)):(0,d.debug)("-> Trigger has no popup",e)}else(0,d.debug)("-> Not a popup trigger",e)}function y(e){var t,a,o;for((0,d.debug)(" -- Activate triggers --"),void 0===e&&(e=(0,d.getContext)()),jQuery((0,d.getOption)("popupSelector"),e).each(function(){(0,d.debug)("Found a popup-selector, try to register it",this),DiviPopup.register(jQuery(this).attr("id"),{selector:(0,d.getOption)("popupSelector")})}),o=(0,d.findTriggers)({ids:(0,r.getAllIds)("popup"),linkPrefix:"popup:",dataAttrib:(0,d.getOption)("idAttrib"),classPrefix:(0,d.getOption)("triggerClassPrefix")},e),t=0;t<o.length;t++)C((a=o[t]).item,a.id)}var w=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),(0,d.debug)("Load popups-for-divi..."),(0,d.getOption)("initializeOnEvent")?jQuery(window,document).on((0,d.getOption)("initializeOnEvent"),function(){window.setTimeout(p,1)}):window.setTimeout(p,1)}return o(e,[{key:"register",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=(0,r.getArea)(e);if(a)return a;var o=(0,r.registerArea)("popup",e,t.selector);return!(!o||!o.length)&&((0,n.initializePopupAnimation)(o),Object.keys(t).forEach(function(e){(0,s.configArea)(o,e,t[e])}),o)}},{key:"config",value:function(e,t,a){(0,s.configArea)(e,t,a)}},{key:"openPopup",value:function(e){var t=(0,r.getArea)(e),a=0;return t&&t.length?(0,s.checkViewport)(t)?(m(t),t.removeClass((0,d.getOption)("exitIndicatorClass")),(0,d.debug)("Show popup and set event handlers:",e),function(e){e=jQuery(e),(0,r.addVisibleArea)("popup",e),y(e),e.find("div ."+(0,d.getOption)("triggerCloseClass")).off(".popup"),e.find("div ."+(0,d.getOption)("triggerCloseClass")).on("click.popup",h),e.find("div .popup-trigger").off(".popup"),e.find("div .popup-trigger").on("click.popup",b),e.hasClass((0,d.getOption)("withCloseClass"))&&(e.find("."+(0,d.getOption)("closeButtonClass")).off(".popup"),e.find("."+(0,d.getOption)("closeButtonClass")).on("click.popup",h))}(t),u(),t.data("animation")&&(t.css({transition:"none"}),a+=(0,d.toMilliseconds)(t.css("animation-delay")),a+=(0,d.toMilliseconds)(t.css("animation-duration")),t.addClass("__is_animating"),window.setTimeout(function(){"yes"===t.attr("data-visible")&&t.removeClass("__is_animating")},a+1)),window.setTimeout(function(){(0,s.triggerLazyLoad)(t),(0,s.triggerAnimations)(t),(0,s.initRecaptcha)(t)},50),!0):((0,d.debug)("Do not trigger popup on this device:",e),!1):((0,d.error)("Could not find a popup with the ID:",e),!1)}},{key:"closePopup",value:function(e){var t;(0,r.countVisibleAreas)("popup")&&(t=e?(0,r.getVisibleArea)("popup",(0,r.getRealId)(e)):(0,r.getVisibleArea)("popup"))&&((0,d.debug)("Close popup and unlink event handlers:",t.data("_id")),m(t,!0)),(0,r.countVisibleAreas)("popup")?u():DiviPopup.hideOverlay()}},{key:"showOverlay",value:function(){(0,l.showOverlay)(v)}},{key:"hideOverlay",value:function(){(0,l.hideOverlay)()}}]),e}();t.default=w},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o={};function i(e,t,a){a=a||e.data("et_waypoint_max_instances")||1;var o=e.data("et_waypoint")||[];if(o.length<a){var i=e.waypoint(t);i&&i.length>0&&(o.push(i[0]),e.data("et_waypoint",o))}else for(var n=0;n<o.length;n++)o[n].context.refresh()}t.animatePopup=function(e,t){return!e.is(":visible")&&(jQuery.fn.waypoint?"yes"===et_pb_custom.ignore_waypoints?t(e):function(e){var t=e.attr("data-animation"),a=!1;return!!t&&(!!(a=o[t])&&(jQuery("body").css("overflow-x","hidden"),jQuery("#page-container").css("overflow-y","hidden"),e.attr({"data-animation-style":a.style,"data-animation-repeat":"once"===a.repeat?"":"infinite","data-animation-duration":a.duration,"data-animation-delay":a.delay,"data-animation-intensity":a.intensity,"data-animation-starting-opacity":a.starting_opacity,"data-animation-speed-curve":a.speed_curve}),void i(e,{offset:"100%",handler:function(){!function(e){var t=e.attr("data-animation-style"),a=e.attr("data-animation-repeat"),o=e.attr("data-animation-duration"),i=e.attr("data-animation-delay"),n=e.attr("data-animation-intensity"),r=e.attr("data-animation-starting-opacity"),s=e.attr("data-animation-speed-curve");!function(e){for(var t=[],a=e.get(0).attributes,o=0;o<a.length;o++)"data-animation-"===a[o].name.substring(0,15)&&t.push(a[o].name);jQuery.each(t,function(t,a){e.removeAttr(a)})}(e);var l=isNaN(parseInt(r))?0:.01*parseInt(r);-1===jQuery.inArray(s,["linear","ease","ease-in","ease-out","ease-in-out"])&&(s="ease-in-out"),e.css({"animation-duration":o,"animation-delay":i,opacity:l,"animation-timing-function":s});for(var d={},p=isNaN(parseInt(n))?50:parseInt(n),u=["slide","zoom","flip","fold","roll"],c=!1,g=!1,f=0;f<u.length;f++){var v=u[f];if(t&&t.substr(0,v.length)===v){c=v,""!==(g=t.substr(v.length,t.length))&&(g=g.toLowerCase());break}}!1!==c&&!1!==g&&(d=function(e,t,a){var o={};switch(e){case"slide":switch(t){case"top":o={transform:"translate3d(0, "+(i=-2*a)+"%, 0)"};break;case"right":o={transform:"translate3d("+(i=2*a)+"%, 0, 0)"};break;case"bottom":o={transform:"translate3d(0, "+(i=2*a)+"%, 0)"};break;case"left":var i=-2*a;o={transform:"translate3d("+i+"%, 0, 0)"};break;default:o={transform:"scale3d("+(n=.01*(100-a))+", "+n+", "+n+")"}}break;case"zoom":var n=.01*(100-a);switch(t){case"top":case"right":case"bottom":case"left":default:o={transform:"scale3d("+n+", "+n+", "+n+")"}}break;case"flip":switch(t){case"right":o={transform:"perspective(2000px) rotateY("+(r=Math.ceil(.9*a))+"deg)"};break;case"left":o={transform:"perspective(2000px) rotateY("+(r=-1*Math.ceil(.9*a))+"deg)"};break;case"top":default:o={transform:"perspective(2000px) rotateX("+(r=Math.ceil(.9*a))+"deg)"};break;case"bottom":o={transform:"perspective(2000px) rotateX("+(r=-1*Math.ceil(.9*a))+"deg)"}}break;case"fold":switch(t){case"top":o={transform:"perspective(2000px) rotateX("+(r=-1*Math.ceil(.9*a))+"deg)"};break;case"bottom":o={transform:"perspective(2000px) rotateX("+(r=Math.ceil(.9*a))+"deg)"};break;case"left":o={transform:"perspective(2000px) rotateY("+(r=Math.ceil(.9*a))+"deg)"};break;case"right":default:o={transform:"perspective(2000px) rotateY("+(r=-1*Math.ceil(.9*a))+"deg)"}}break;case"roll":switch(t){case"right":case"bottom":o={transform:"rotateZ("+(r=-1*Math.ceil(3.6*a))+"deg)"};break;case"top":case"left":o={transform:"rotateZ("+(r=Math.ceil(3.6*a))+"deg)"};break;default:var r=Math.ceil(3.6*a);o={transform:"rotateZ("+r+"deg)"}}}return o}(c,g,p)),jQuery.isEmptyObject(d)||e.css(d),e.addClass("et_animated"),e.addClass(t),e.addClass(a)}(jQuery(this.element))}})))}(e)?(e.show(),e.css({opacity:0}),void window.setTimeout(function(){e.css({opacity:""}),i(e,{offset:"100%",handler:function(){e.addClass("et-animated")}},2)},10)):t(e):t(e))},t.initializePopupAnimation=function(e){if(!window.et_animation_data||!window.et_animation_data.length>0)return!1;e.removeClass("et-waypoint"),e.removeClass("et-animated");for(var t=0;t<et_animation_data.length;t++){var a=!1,i=et_animation_data[t];i&&i.class&&e.hasClass(i.class)&&i.style&&i.repeat&&i.duration&&i.delay&&i.intensity&&i.starting_opacity&&i.speed_curve&&(a=i.class,e.addClass("pfd-waypoint"),e.attr("data-animation",a),o[a]=i,et_animation_data[t].class=void 0)}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.showOverlay=function(e){var t=(0,i.getOption)("zIndex");r=e,null===n&&((n=jQuery("<div />")).addClass((0,i.getOption)("overlayClass")),n.prependTo((0,i.getContext)()),n.on("click.popup",s));t+=Math.max(0,(0,o.countVisibleAreas)("popup")-1),(0,i.debug)("Show background overlay"),n.css({zIndex:t}),n.fadeIn((0,i.getOption)("animateSpeed"),function(){jQuery("body").addClass((0,i.getOption)("openPopupClass"))}),jQuery(document).trigger("DiviPopup:OverlayShow")},t.hideOverlay=function(){(0,i.debug)("Hide background overlay"),n.hide(),jQuery("body").removeClass((0,i.getOption)("openPopupClass")),jQuery(document).trigger("DiviPopup:OverlayHide")};var o=a(1),i=a(0),n=null,r=null;function s(e){return(0,i.debug)("Click on background overlay"),e.preventDefault(),e.stopPropagation(),r(),!1}},function(e,t,a){}]);
plugin.php CHANGED
@@ -12,7 +12,7 @@
12
  * Author: Philipp Stracker
13
  * Author URI: https://philippstracker.com/
14
  * Created: 30.12.2017
15
- * Version: 1.5.1
16
  * License: GPLv2 or later
17
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
18
  * Text Domain: divi-popup
@@ -39,7 +39,7 @@ define( 'DIVI_POPUP_PLUGIN', plugin_basename( __FILE__ ) );
39
  /**
40
  * A new version value will force refresh of CSS and JS files for all users.
41
  */
42
- define( 'DIVI_POPUP_VERSION', '1.5.1' );
43
 
44
  add_action(
45
  'plugins_loaded',
12
  * Author: Philipp Stracker
13
  * Author URI: https://philippstracker.com/
14
  * Created: 30.12.2017
15
+ * Version: 1.6.3
16
  * License: GPLv2 or later
17
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
18
  * Text Domain: divi-popup
39
  /**
40
  * A new version value will force refresh of CSS and JS files for all users.
41
  */
42
+ define( 'DIVI_POPUP_VERSION', '1.6.3' );
43
 
44
  add_action(
45
  'plugins_loaded',
readme.txt CHANGED
@@ -2,29 +2,77 @@
2
  Contributors: strackerphil-1
3
  Tags: popup, marketing, divi
4
  Requires at least: 3.0.1
5
- Tested up to: 5.2.2
6
- Requires PHP: 5.2.4
7
  Stable tag: trunk
 
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
- A quick and easy way to create Popup layers with the Divi Visual Builder!
12
 
13
  == Description ==
14
 
15
  No configuration needed. Simply activate the plugin and add the CSS class "popup" and ID tag to a divi section. To open the popup you only need to place a link on the page with the URL pointing to the section ID.
16
 
17
- Example:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
 
19
- 1. Edit a section and set the ID to "newsletter-optin" and CSS class to "popup"
20
- 2. Add a link (or button, etc) on the page with the URL "#newsletter-optin"
21
- 3. All done, save the page! When a visitor clicks on your new link the popup will be opened.
22
 
23
- You can find more details, examples and full documentation here:
24
 
25
- [Plugin website](https://philippstracker.com/divi-popup/)
26
 
27
- Tested in all mayor browsers on Windows and Mac: Chrome, Firefox, Safari, IE 11, Edge
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
  == Installation ==
30
 
@@ -41,24 +89,77 @@ or
41
 
42
  Actually none! We designed it with maximum page performance in mind. Our tests did show literally no change in page loading speed.
43
 
44
- The plugin will add a single line of CSS to the page output and load one JS and CSS file that currently are about 7 kb in size and are cached by the browser after first page load.
 
 
45
 
46
  = Is Popups for Divi compatible with Caching plugins? =
47
 
48
- Yes, absolutely! There is no dynamic logic in the PHP code like other popup plugins have. Popups for Divi is a little bit of PHP but the main logic sits inside the small javascript library it provides. It works on the client side, and therefore is not restricted by caching plugins.
49
 
50
  = Is this plugin compatible with every Divi version? =
51
 
52
  This plugin is kept compatible with the latest Divi release.
53
 
54
- We did test it with all releases since the initial Divi 3.0 release. Possibly it will also work with older versions, but it is not confirmed yet.
55
 
56
  = Does this plugin also work with other themes/site builders? =
57
 
58
- Yes, actually it will! But out of the box it is optimized to work with Divi. If you use any other theme or site builder then you need to change the default options of the plugin via the `evr_divi_popup-js_data` filter.
59
 
60
  For more details visit https://philippstracker.com/divi-popup/
61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
  == Screenshots ==
63
 
64
  1. This is a normal Divi page, before adding a popup.
@@ -67,11 +168,37 @@ For more details visit https://philippstracker.com/divi-popup/
67
  4. That's all. Save the page and open it up without the editor. All popups are initially hidden.
68
  5. Click on the "Contact" button displays the popup. You can style the Divi section (change the width, background-color, etc) or customize the CSS of the popup...
69
  6. ...check out the extensive API documentation and popup samples on philippstracker.com
 
70
 
71
  == Changelog ==
72
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  = 1.5.1 =
74
- * Fix broken exit-intent intialization (sorry for that!)
75
  * Fix bug where exit intent did trigger in some form fields, e.g. when closing auto-complete suggestions or changing an option in a select list.
76
  * Fix setting "animateSpeed" that can be set via the WP filter. It was ignored until now.
77
 
@@ -80,12 +207,10 @@ For more details visit https://philippstracker.com/divi-popup/
80
  * New JS API to turn literally *any* element on the page into a popup: `DiviPopup.register('#the-id')`
81
  * New JS API to configure popups after they were registered: `DiviPopup.config('#the-id', 'on-mobile', false)`
82
 
83
- Plugin tested with WordPress 5.2.2 and Divi 3.27.1
84
-
85
  = 1.4.0 =
86
  * In Divis Visual Builder you now see each popup ID right above the popup. This makes it easier for you to correctly link popups
87
  * When the class "single" is added to a popup, it will close any other popup that was currently visible
88
- * Custom styles are now applied to modules inside popups, for example custom button styles
89
 
90
  Thanks for your feedback and all your fantastic support for the Popups for Divi plugin! Check out the webpage for documentation, e.g. for the single class.
91
 
@@ -95,12 +220,12 @@ Thanks for your feedback and all your fantastic support for the Popups for Divi
95
 
96
  = 1.3.1 =
97
  * Improve: Popup sections now support animations! Add those "Number Counters" and zoom-in images in your next popup.
98
- * Fix: Certain Divi settings could prevent popups from being opened, as the trigger-click-event could be intercepted by a differnt Divi module. Not anymore. The unstoppable Popup!
99
  * Fix: Minor javascript errors fixed, when "triggerClassPrefix" was set to false via the WP filter.
100
 
101
  = 1.3.0 =
102
- * Added trigger: Use class name "show-popup-demo" to show the popup "demo" on click. Can be used to change any element into a popup trigger!
103
- * Improve: The default value of the popup-debug option is taken from WP_DEBUG. You can see debug infos in your browser console while WP_DEBUG is enabled.
104
  * Improve: Better compatibility with Divi Child-themes (and Non-Divi themes).
105
  * Fix: Custom "close" buttons inside a popup will now close the popup before following the link or scrolling the page.
106
  * Fix: Popups will now work with themes that do not have the default "#page-container" div.
@@ -109,8 +234,8 @@ Thanks for your feedback and all your fantastic support for the Popups for Divi
109
  * Fix: jQuery "invalid expression" error is gone.
110
 
111
  = 1.2.2 =
112
- * Fix: Fully compatibile with Divi 3.1.16 and higher.
113
- * Add: Plugin is now backwards compatibile until php 5.2.4 - before this, the plugin required php 5.4 or higher.
114
 
115
  = 1.2.1 =
116
  * Improve: Faster and smoother handling of popup resizing, without an interval timer!
@@ -122,11 +247,11 @@ Thanks for your feedback and all your fantastic support for the Popups for Divi
122
 
123
  = 1.2.0 =
124
  * Feature: Popups now support Divi loading animations!
125
- * Improve: Popups will now correctly limit the size after the contents are changed, e.g. when accordeon is expanded.
126
  * Bugfix: The Popups For Divi plugin now waits until Divi could initialize all components, before creating popups.
127
 
128
  = 1.1.0 =
129
- * Feature: Yay! All Popups now have a close-button in the top-right corner by default.
130
  * Feature: Pressing the escape key will now close the currently open popup.
131
  * Improve: The active popup now has an additional CSS class `is-open` that can be used for styling inactive popups.
132
  * Improve: CSS and JS code is now minified.
@@ -134,15 +259,15 @@ Thanks for your feedback and all your fantastic support for the Popups for Divi
134
  Thanks for your feedback and all the positive comments and reviews you posted! You are awesome :)
135
 
136
  = 1.0.3 =
137
- * Improve: Apply custom modules styles to elements inside popup
138
- * Fix: Correct popup preview in visual builder
139
 
140
  = 1.0.2.3 =
141
  * Minor: Fixes in the readme.txt and naming of assets/language files
142
 
143
  = 1.0.2 =
144
  * Minor: Added link to the plugin documentation inside the plugins list
145
- * Minor: Make plugin translateable
146
 
147
  = 1.0.1 =
148
  * Added: Support for lazy-load plugin
2
  Contributors: strackerphil-1
3
  Tags: popup, marketing, divi
4
  Requires at least: 3.0.1
5
+ Tested up to: 5.2.3
 
6
  Stable tag: trunk
7
+ Requires PHP: 5.2.4
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
+ A quick and easy way to create Popup layers inside the Divi Visual Builder!
12
 
13
  == Description ==
14
 
15
  No configuration needed. Simply activate the plugin and add the CSS class "popup" and ID tag to a divi section. To open the popup you only need to place a link on the page with the URL pointing to the section ID.
16
 
17
+ # ℹ️ How it works
18
+
19
+ 1. Edit a section and set the **section ID** to "`newsletter-optin`" and the **section CSS class** to "`popup`"
20
+ 2. Add a link (or button, etc) on the page and set the **link URL** to "`#newsletter-optin`"
21
+ 3. **That's all**. Save the page! When a visitor clicks on your new link the popup will be opened.
22
+
23
+ # ⭐️ Additional details
24
+
25
+ Check out the [Plugin website](https://philippstracker.com/divi-popup/) for more details. You'll find:
26
+
27
+ * Examples
28
+ * CSS class options
29
+ * JS API documentation
30
+ * WP filter documentation
31
+
32
+ Tested in all major browsers on Windows and Mac: Chrome, Firefox, Safari, IE 11, Edge!
33
+
34
+ # 🎂 Popups for Divi turns 2
35
+
36
+ Wow, it's already two years since the beginning of Popups for Divi!
37
+
38
+ It has been a great time and we've learned a lot. During that time we added a ton of features and have created a stable and powerful marketing plugin.
39
 
40
+ To celebrate the anniversary, we have created a six-day course that teaches you everything about the plugin. It walks you through the basics of creating your first Popup, shows possible ways to customize your Popup layouts and goes into advanced techniques and usages of the plugin.
 
 
41
 
42
+ > "The instruction emails really helped me to understand how to use the plugin correctly!"
43
 
44
+ The course is available in your **wp-admin Dashboard** right after you install and activate the plugin. Check out the screenshots to see the form. Also, have a look in the FAQ section, if you want to disable this feature.
45
 
46
+ # 🥳 Want more?
47
+
48
+ If you want to get the most out of Divi, you need to have a look at **[Divi Areas Pro](https://philippstracker.com/divi-areas-pro)** to get additional features:
49
+
50
+ > * An **admin UI** to create and configure your popups
51
+ > * Choose **Area Type**: Popup, Inline, Fly-in, Hover
52
+ > * A **beautiful UI** that blends in perfectly with Divi
53
+ > * Add **advanced triggers** to your Areas:
54
+ > * On click
55
+ > * On hover
56
+ > * On scroll
57
+ > * After delay
58
+ > * On Exit
59
+ > * Customize the Area **Display**
60
+ > * Show on certain pages
61
+ > * Show on certain devices
62
+ > * Show for certain user roles or guests
63
+ > * Customize Area **Behavior**
64
+ > * Show/Hide the Close button
65
+ > * Display the Area once per hour, day, week, ...
66
+ > * Flexible **position for Inline Areas**
67
+ > * Replace/extend the page header
68
+ > * or Footer
69
+ > * or Comment section
70
+ > * or actually *any* Divi section inside the page content
71
+ > * It comes with an extended version of the **JS API**
72
+ > * **Great documentation** built into the plugin and an online knowledge base
73
+ > * and much more...
74
+ >
75
+ > 👉 [Learn more about **Divi Areas Pro**](https://philippstracker.com/divi-areas-pro/) (with screenshots!)
76
 
77
  == Installation ==
78
 
89
 
90
  Actually none! We designed it with maximum page performance in mind. Our tests did show literally no change in page loading speed.
91
 
92
+ The plugin will add a single line of CSS to the page output and load two files that currently are only about 31 kb in size (9kb gzipped). Both files are cached by the browser and used on all other pages of your website.
93
+
94
+ Those two files are the JS API and the popup CSS rules that center the popup, dim the background, etc.
95
 
96
  = Is Popups for Divi compatible with Caching plugins? =
97
 
98
+ Yes, absolutely! There is no dynamic logic in the PHP code like other popup plugins have. Popups for Divi is a little bit of PHP but the main logic sits inside the small javascript library it provides. It works on the client-side and therefore is not restricted by caching plugins.
99
 
100
  = Is this plugin compatible with every Divi version? =
101
 
102
  This plugin is kept compatible with the latest Divi release.
103
 
104
+ We did test it with all releases since the initial Divi 3.0 release. Possibly it will also work with older versions
105
 
106
  = Does this plugin also work with other themes/site builders? =
107
 
108
+ Yes, actually it will! But out of the box it is optimized to work with Divi 3.x. If you use any other theme or site builder then you need to change the default options of the plugin via the `evr_divi_popup-js_data` filter.
109
 
110
  For more details visit https://philippstracker.com/divi-popup/
111
 
112
+ = Does this plugin display any ads? =
113
+
114
+ No. This plugin is free and does not display any ads. In fact, the plugin does not have a UI at all.
115
+
116
+ Popups for Divi is just that - a plain popup plugin, not our marketing strategy!
117
+
118
+ Since version 1.6.0 we now offer a six-day email course that shows you how the plugin works. You will see a notification in your wp-admin dashboard right after activating the plugin. This is not an advertisement - you do not land in a newsletter list, but only receive those six onboarding mails.
119
+
120
+ = Do you collect any details from my website? =
121
+
122
+ No, we do not collect or transmit any data from your website.
123
+
124
+ Since version 1.6.0 there is one exception: We now offer an email course that shows you how the plugin works. You will see a notification in your wp-admin dashboard right after activating the plugin. When you opt-in to receive the onboarding emails we will transmit the details you entered (your name and email address) to the plugin website.
125
+
126
+ Those details are only used to send you the onboarding emails (6 emails) and for nothing else.
127
+
128
+ = Is there a way to hide the onboarding notice? =
129
+
130
+ Yes, there is!
131
+
132
+ Since 1.6.0 the plugin offers an onboarding course that consists of 6 emails. We offer this course right after plugin activation in your wp-admin "Dashboard" page (nowhere else).
133
+
134
+ This onboarding notice is displayed to administrator users only. Once the user clicks on the "Dismiss" button, the message is never displayed again for them.
135
+
136
+ You can also globally disable the onboarding notice by defining the constant [`DISABLE_NAG_NOTICES`](https://codex.wordpress.org/Plugin_API/Action_Reference/admin_notices#Disable_Nag_Notices) in your wp-config.php or themes function.php
137
+
138
+ = I need to revert to an older version =
139
+
140
+ When you experience any problems with the plugin, I would love you to first head over to the [support forum](https://wordpress.org/support/plugin/popups-for-divi/) and briefly share your issue with me.
141
+
142
+ Here's how you can revert to an older version of the plugin:
143
+
144
+ 1. Go to the [Advanced View](https://wordpress.org/plugins/popups-for-divi/advanced/) Page and scroll down to the bottom.
145
+ 2. Pick your version and click "Download" (you can choose any version since 1.5.1)
146
+ 3. Now go to your wp-admin Panel and open the Plugins list
147
+ 4. Deactivate and Delete the Popups for Divi plugin! *Note: You will not lose any data, but while the plugin is deactivated/missing your Popups might be visible like normal page content.*
148
+ 5. On the Plugins page click "Add New" button in the top and then click on "Upload Plugin"
149
+ 6. Select the .zip file which you downloaded in Step 2 and upload it. Activate and you're done!
150
+
151
+ Alternatively you can replace the `popups-for-divi` folder via FTP: Extract the .zip file which you downloaded in Step 2 and upload it to your `/wp-content/plugins` folder.
152
+
153
+ = I have more questions or need help =
154
+
155
+ Please first visit the [**plugin website**](https://philippstracker.com/divi-popup/), as it includes examples and documentation that could answer your questions.
156
+
157
+ If that does not help, then head over to the [**support forum**](https://wordpress.org/support/plugin/popups-for-divi/) and post a new thread.
158
+
159
+ When you need additional features, then please have a look at our the Premium plugin [**Divi Areas Pro**](https://philippstracker.com/divi-areas-pro/) which comes with a lot of cool options!
160
+
161
+ We cannot provide customization and development via the forum. If you need that, [**you can hire us**](https://philippstracker.com/go/inquire-popup-change/) to create some special triggers, layouts or other changes.
162
+
163
  == Screenshots ==
164
 
165
  1. This is a normal Divi page, before adding a popup.
168
  4. That's all. Save the page and open it up without the editor. All popups are initially hidden.
169
  5. Click on the "Contact" button displays the popup. You can style the Divi section (change the width, background-color, etc) or customize the CSS of the popup...
170
  6. ...check out the extensive API documentation and popup samples on philippstracker.com
171
+ 7. Our free email course walks you through every aspect of the plugin - from the basics to advanced use-cases and techniques.
172
 
173
  == Changelog ==
174
 
175
+ = 1.6.3 =
176
+ * Fix animation glitch in Safari/iPhone that displayed the Popup too small when using Divis "Zoom" open animation.
177
+ * Fix logic that did not recognize Popups with upper-case letters in the Popup IDs.
178
+ * Fix issue with transparent Popup background.
179
+ * Fix CSS rule that allows custom box-shadow styles.
180
+
181
+ = 1.6.2 =
182
+ * Fix JS error in front.js
183
+
184
+ Plugin tested with WordPress 5.2.3 and Divi 3.27.4
185
+
186
+ = 1.6.0 =
187
+ * Change Popup behavior: The size now matches the width of your Divi section! 🤩
188
+ * Add an dashboard notification to sign up for the six-day onboarding course.
189
+ * Add popup support via Blurb "Content Link".
190
+ * Add Google reCaptcha integration! Tested with CF7, but works with any plugin.
191
+ * Add new WP filter options to customize dark-mode and box-shadow style.
192
+ * Add new Popup Class: `no-shadow` removes the default box-shadow.
193
+ * Add new Popup Class: `close-alt` removes the background color of the Close Button.
194
+ * Fix Popup shadow: The box-shadow fo the Divi Section overrides the default box-shadow. *Style it your way!*
195
+ * Fix select list behavior in Firefox.
196
+ * Fix Popup width on iPhone 6 and earlier.
197
+ * Tweak the CSS that makes the page body un-scrollable while a popup is open.
198
+ * Tweak the JS library for easier maintenance and better performance.
199
+
200
  = 1.5.1 =
201
+ * Fix broken exit-intent initialization (sorry for that!)
202
  * Fix bug where exit intent did trigger in some form fields, e.g. when closing auto-complete suggestions or changing an option in a select list.
203
  * Fix setting "animateSpeed" that can be set via the WP filter. It was ignored until now.
204
 
207
  * New JS API to turn literally *any* element on the page into a popup: `DiviPopup.register('#the-id')`
208
  * New JS API to configure popups after they were registered: `DiviPopup.config('#the-id', 'on-mobile', false)`
209
 
 
 
210
  = 1.4.0 =
211
  * In Divis Visual Builder you now see each popup ID right above the popup. This makes it easier for you to correctly link popups
212
  * When the class "single" is added to a popup, it will close any other popup that was currently visible
213
+ * Custom styles are now applied to modules inside popups, for example, custom button styles
214
 
215
  Thanks for your feedback and all your fantastic support for the Popups for Divi plugin! Check out the webpage for documentation, e.g. for the single class.
216
 
220
 
221
  = 1.3.1 =
222
  * Improve: Popup sections now support animations! Add those "Number Counters" and zoom-in images in your next popup.
223
+ * Fix: Certain Divi settings could prevent popups from being opened, as the trigger-click-event could be intercepted by a different Divi module. Not anymore. The unstoppable Popup!
224
  * Fix: Minor javascript errors fixed, when "triggerClassPrefix" was set to false via the WP filter.
225
 
226
  = 1.3.0 =
227
+ * Added trigger: Use class name "show-popup-demo" to show the popup "demo" on click. Can be used to turn any element into a popup trigger!
228
+ * Improve: The default value of the popup-debug option is taken from WP_DEBUG. You can see debug output in your browser console while WP_DEBUG is enabled.
229
  * Improve: Better compatibility with Divi Child-themes (and Non-Divi themes).
230
  * Fix: Custom "close" buttons inside a popup will now close the popup before following the link or scrolling the page.
231
  * Fix: Popups will now work with themes that do not have the default "#page-container" div.
234
  * Fix: jQuery "invalid expression" error is gone.
235
 
236
  = 1.2.2 =
237
+ * Fix: Fully compatible with Divi 3.1.16 and higher.
238
+ * Add: Plugin is now backward compatible until PHP 5.2.4 - before this, the plugin required PHP 5.4 or higher.
239
 
240
  = 1.2.1 =
241
  * Improve: Faster and smoother handling of popup resizing, without an interval timer!
247
 
248
  = 1.2.0 =
249
  * Feature: Popups now support Divi loading animations!
250
+ * Improve: Popups will now correctly limit the size after the contents are changed, e.g. when accordion is expanded.
251
  * Bugfix: The Popups For Divi plugin now waits until Divi could initialize all components, before creating popups.
252
 
253
  = 1.1.0 =
254
+ * Feature: Yay! All Popups now have a Close button in the top-right corner by default.
255
  * Feature: Pressing the escape key will now close the currently open popup.
256
  * Improve: The active popup now has an additional CSS class `is-open` that can be used for styling inactive popups.
257
  * Improve: CSS and JS code is now minified.
259
  Thanks for your feedback and all the positive comments and reviews you posted! You are awesome :)
260
 
261
  = 1.0.3 =
262
+ * Improve: Apply custom modules styles to elements inside a popup
263
+ * Fix: Correct popup preview in the Visual Builder
264
 
265
  = 1.0.2.3 =
266
  * Minor: Fixes in the readme.txt and naming of assets/language files
267
 
268
  = 1.0.2 =
269
  * Minor: Added link to the plugin documentation inside the plugins list
270
+ * Minor: Make plugin translatable
271
 
272
  = 1.0.1 =
273
  * Added: Support for lazy-load plugin