Google Analytics Dashboard for WP (GADWP) - Version 7.3.0

Version Description

Download this release

Release Info

Developer chriscct7
Plugin Icon 128x128 Google Analytics Dashboard for WP (GADWP)
Version 7.3.0
Comparing to
See all releases

Code changes from version 7.2.0 to 7.3.0

Files changed (39) hide show
  1. assets/css/admin-widget-settings.css +218 -218
  2. assets/images/plugin-pushengage.svg +19 -19
  3. assets/js/admin-widget-settings.js +68 -68
  4. assets/js/frontend-gtag.js +829 -829
  5. assets/js/popular-posts.js +33 -33
  6. gadwp.php +4 -2
  7. includes/admin/common.php +6 -6
  8. includes/admin/em-admin.php +25 -25
  9. includes/admin/notification-event-runner.php +189 -189
  10. includes/admin/notification-event.php +237 -237
  11. includes/admin/notifications/notification-audience.php +101 -101
  12. includes/admin/notifications/notification-bounce-rate.php +54 -54
  13. includes/admin/notifications/notification-events.php +17 -17
  14. includes/admin/notifications/notification-headline-analyzer.php +41 -41
  15. includes/admin/notifications/notification-mobile-device.php +53 -53
  16. includes/admin/notifications/notification-returning-visitors.php +53 -53
  17. includes/admin/notifications/notification-to-add-more-file-extensions.php +48 -48
  18. includes/admin/notifications/notification-to-setup-affiliate-links.php +54 -54
  19. includes/admin/notifications/notification-traffic-dropping.php +52 -52
  20. includes/admin/notifications/notification-upgrade-for-email-summaries.php +41 -41
  21. includes/admin/notifications/notification-upgrade-for-form-conversion.php +41 -41
  22. includes/admin/notifications/notification-upgrade-for-google-optimize.php +41 -41
  23. includes/admin/notifications/notification-upgrade-for-search-console.php +41 -41
  24. includes/admin/notifications/notification-upgrade-to-pro.php +42 -42
  25. includes/admin/notifications/notification-visitors.php +50 -50
  26. includes/admin/routes.php +11 -0
  27. includes/admin/sharedcount.php +637 -637
  28. includes/admin/tracking.php +2 -2
  29. includes/admin/uninstall.php +26 -26
  30. includes/frontend/events/class-gtag-events.php +117 -117
  31. includes/frontend/frontend.php +3 -13
  32. includes/frontend/seedprod.php +8 -8
  33. includes/frontend/tracking/class-tracking-gtag.php +480 -486
  34. includes/helpers.php +4 -6
  35. includes/popular-posts/class-popular-posts-themes.php +850 -850
  36. includes/popular-posts/class-popular-posts.php +742 -742
  37. languages/google-analytics-dashboard-for-wp.pot +2224 -2163
  38. languages/vue.php +1906 -1870
  39. lite/assets/vue/css/chunk-common.css +1 -1
assets/css/admin-widget-settings.css CHANGED
@@ -1,218 +1,218 @@
1
- .exactmetrics-label-block,
2
- .exactmetrics-radio-icons {
3
- display: block;
4
- }
5
-
6
- .exactmetrics-radio-icons {
7
- margin: 4px 0;
8
- }
9
-
10
- .exactmetrics-radio-icons * {
11
- box-sizing: border-box;
12
- }
13
-
14
- .exactmetrics-radio-icons > label {
15
- display: inline-block;
16
- }
17
-
18
- .exactmetrics-radio-icons input[type="radio"] {
19
- visibility: hidden;
20
- display: none;
21
- }
22
-
23
- .exactmetrics-wide-column {
24
- display: -webkit-box;
25
- display: -ms-flexbox;
26
- display: flex;
27
- border: 1px solid #b7c9d9;
28
- border-radius: 5px;
29
- width: 40px;
30
- height: 40px;
31
- padding: 10px 5px;
32
- -ms-flex-flow: wrap;
33
- flex-flow: wrap;
34
- -webkit-box-pack: justify;
35
- -ms-flex-pack: justify;
36
- justify-content: space-between;
37
- margin-right: 4px;
38
- }
39
-
40
- .exactmetrics-wide-column > span {
41
- background: #99a1b2;
42
- display: inline-block;
43
- width: 8px;
44
- height: 8px;
45
- border-radius: 1px;
46
- margin-bottom: 2px;
47
- }
48
-
49
- .exactmetrics-wide-column.exactmetrics-wide-column-two > span {
50
- width: 12px;
51
- }
52
-
53
- .exactmetrics-radio-icons input[type="radio"]:checked + .exactmetrics-wide-column {
54
- border: 2px solid #338eef;
55
- background: #ecf4fe;
56
- padding: 9px 4px;
57
- }
58
-
59
- .exactmetrics-radio-icons input[type="radio"]:checked + .exactmetrics-wide-column > span {
60
- background: #338eef;
61
- }
62
-
63
- .exactmetrics-wide-column.exactmetrics-wide-column-one > span {
64
- width: 100%;
65
- }
66
-
67
- .exactmetrics-field-description {
68
- font-family: Helvetica Neue, serif;
69
- font-style: italic;
70
- font-weight: normal;
71
- font-size: 13px;
72
- line-height: 1.5%;
73
- color: #545C66;
74
- }
75
-
76
- /** SELECT2 Styles **/
77
- .select300-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select300-container .select300-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select300-container .select300-selection--single .select300-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select300-container .select300-selection--single .select300-selection__clear{position:relative}.select300-container[dir="rtl"] .select300-selection--single .select300-selection__rendered{padding-right:8px;padding-left:20px}.select300-container .select300-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select300-container .select300-selection--multiple .select300-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select300-container .select300-search--inline{float:left}.select300-container .select300-search--inline .select300-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select300-container .select300-search--inline .select300-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select300-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select300-results{display:block}.select300-results__options{list-style:none;margin:0;padding:0}.select300-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select300-results__option[aria-selected]{cursor:pointer}.select300-container--open .select300-dropdown{left:0}.select300-container--open .select300-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select300-container--open .select300-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select300-search--dropdown{display:block;padding:4px}.select300-search--dropdown .select300-search__field{padding:4px;width:100%;box-sizing:border-box}.select300-search--dropdown .select300-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select300-search--dropdown.select300-search--hide{display:none}.select300-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select300-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select300-container--default .select300-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select300-container--default .select300-selection--single .select300-selection__rendered{color:#444;line-height:28px}.select300-container--default .select300-selection--single .select300-selection__clear{cursor:pointer;float:right;font-weight:bold}.select300-container--default .select300-selection--single .select300-selection__placeholder{color:#999}.select300-container--default .select300-selection--single .select300-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select300-container--default .select300-selection--single .select300-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select300-container--default[dir="rtl"] .select300-selection--single .select300-selection__clear{float:left}.select300-container--default[dir="rtl"] .select300-selection--single .select300-selection__arrow{left:1px;right:auto}.select300-container--default.select300-container--disabled .select300-selection--single{background-color:#eee;cursor:default}.select300-container--default.select300-container--disabled .select300-selection--single .select300-selection__clear{display:none}.select300-container--default.select300-container--open .select300-selection--single .select300-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select300-container--default .select300-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select300-container--default .select300-selection--multiple .select300-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select300-container--default .select300-selection--multiple .select300-selection__rendered li{list-style:none}.select300-container--default .select300-selection--multiple .select300-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px;padding:1px}.select300-container--default .select300-selection--multiple .select300-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select300-container--default .select300-selection--multiple .select300-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select300-container--default .select300-selection--multiple .select300-selection__choice__remove:hover{color:#333}.select300-container--default[dir="rtl"] .select300-selection--multiple .select300-selection__choice,.select300-container--default[dir="rtl"] .select300-selection--multiple .select300-search--inline{float:right}.select300-container--default[dir="rtl"] .select300-selection--multiple .select300-selection__choice{margin-left:5px;margin-right:auto}.select300-container--default[dir="rtl"] .select300-selection--multiple .select300-selection__choice__remove{margin-left:2px;margin-right:auto}.select300-container--default.select300-container--focus .select300-selection--multiple{border:solid black 1px;outline:0}.select300-container--default.select300-container--disabled .select300-selection--multiple{background-color:#eee;cursor:default}.select300-container--default.select300-container--disabled .select300-selection__choice__remove{display:none}.select300-container--default.select300-container--open.select300-container--above .select300-selection--single,.select300-container--default.select300-container--open.select300-container--above .select300-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select300-container--default.select300-container--open.select300-container--below .select300-selection--single,.select300-container--default.select300-container--open.select300-container--below .select300-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select300-container--default .select300-search--dropdown .select300-search__field{border:1px solid #aaa}.select300-container--default .select300-search--inline .select300-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select300-container--default .select300-results>.select300-results__options{max-height:200px;overflow-y:auto}.select300-container--default .select300-results__option[role=group]{padding:0}.select300-container--default .select300-results__option[aria-disabled=true]{color:#999}.select300-container--default .select300-results__option[aria-selected=true]{background-color:#ddd}.select300-container--default .select300-results__option .select300-results__option{padding-left:1em}.select300-container--default .select300-results__option .select300-results__option .select300-results__group{padding-left:0}.select300-container--default .select300-results__option .select300-results__option .select300-results__option{margin-left:-1em;padding-left:2em}.select300-container--default .select300-results__option .select300-results__option .select300-results__option .select300-results__option{margin-left:-2em;padding-left:3em}.select300-container--default .select300-results__option .select300-results__option .select300-results__option .select300-results__option .select300-results__option{margin-left:-3em;padding-left:4em}.select300-container--default .select300-results__option .select300-results__option .select300-results__option .select300-results__option .select300-results__option .select300-results__option{margin-left:-4em;padding-left:5em}.select300-container--default .select300-results__option .select300-results__option .select300-results__option .select300-results__option .select300-results__option .select300-results__option .select300-results__option{margin-left:-5em;padding-left:6em}.select300-container--default .select300-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select300-container--default .select300-results__group{cursor:default;display:block;padding:6px}.select300-container--classic .select300-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select300-container--classic .select300-selection--single:focus{border:1px solid #5897fb}.select300-container--classic .select300-selection--single .select300-selection__rendered{color:#444;line-height:28px}.select300-container--classic .select300-selection--single .select300-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select300-container--classic .select300-selection--single .select300-selection__placeholder{color:#999}.select300-container--classic .select300-selection--single .select300-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select300-container--classic .select300-selection--single .select300-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select300-container--classic[dir="rtl"] .select300-selection--single .select300-selection__clear{float:left}.select300-container--classic[dir="rtl"] .select300-selection--single .select300-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select300-container--classic.select300-container--open .select300-selection--single{border:1px solid #5897fb}.select300-container--classic.select300-container--open .select300-selection--single .select300-selection__arrow{background:transparent;border:none}.select300-container--classic.select300-container--open .select300-selection--single .select300-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select300-container--classic.select300-container--open.select300-container--above .select300-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select300-container--classic.select300-container--open.select300-container--below .select300-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select300-container--classic .select300-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select300-container--classic .select300-selection--multiple:focus{border:1px solid #5897fb}.select300-container--classic .select300-selection--multiple .select300-selection__rendered{list-style:none;margin:0;padding:0 5px}.select300-container--classic .select300-selection--multiple .select300-selection__clear{display:none}.select300-container--classic .select300-selection--multiple .select300-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select300-container--classic .select300-selection--multiple .select300-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select300-container--classic .select300-selection--multiple .select300-selection__choice__remove:hover{color:#555}.select300-container--classic[dir="rtl"] .select300-selection--multiple .select300-selection__choice{float:right;margin-left:5px;margin-right:auto}.select300-container--classic[dir="rtl"] .select300-selection--multiple .select300-selection__choice__remove{margin-left:2px;margin-right:auto}.select300-container--classic.select300-container--open .select300-selection--multiple{border:1px solid #5897fb}.select300-container--classic.select300-container--open.select300-container--above .select300-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select300-container--classic.select300-container--open.select300-container--below .select300-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select300-container--classic .select300-search--dropdown .select300-search__field{border:1px solid #aaa;outline:0}.select300-container--classic .select300-search--inline .select300-search__field{outline:0;box-shadow:none}.select300-container--classic .select300-dropdown{background-color:#fff;border:1px solid transparent}.select300-container--classic .select300-dropdown--above{border-bottom:none}.select300-container--classic .select300-dropdown--below{border-top:none}.select300-container--classic .select300-results>.select300-results__options{max-height:200px;overflow-y:auto}.select300-container--classic .select300-results__option[role=group]{padding:0}.select300-container--classic .select300-results__option[aria-disabled=true]{color:grey}.select300-container--classic .select300-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select300-container--classic .select300-results__group{cursor:default;display:block;padding:6px}.select300-container--classic.select300-container--open .select300-dropdown{border-color:#5897fb}
78
-
79
- .select300-container {
80
- display: block;
81
- width: 100% !important;
82
- }
83
-
84
- .select300-container--default .select300-selection--multiple .select300-selection__choice {
85
- border-radius: 20px;
86
- background: #E2E4E7;
87
- border: none;
88
- color: #32373C;
89
- padding-left: 8px;
90
- font-family: Helvetica Neue, serif;
91
- font-style: normal;
92
- font-weight: normal;
93
- font-size: 13px;
94
- line-height: 24px;
95
- }
96
-
97
- .select300-container--default .select300-selection--multiple .select300-selection__choice__remove {
98
- line-height: 1;
99
- width: 16px;
100
- height: 16px;
101
- float: right;
102
- display: block;
103
- border-radius: 50%;
104
- background-color: #555D66;
105
- color: #E2E4E7;
106
- text-align: center;
107
- margin: 4px 0px 4px 8px;
108
- font-size: 14px;
109
- box-sizing: border-box;
110
- padding-top: 0;
111
- padding-left: 0;
112
- }
113
-
114
- .select300-container--default .select300-selection--multiple .select300-selection__choice__remove:hover {
115
- background-color: #333;
116
- color: #E2E4E7;
117
- }
118
-
119
- .exactmetrics-widget-theme-preview {
120
- background: #F0F2F4;
121
- border-radius: 5px;
122
- padding: 8px 8px 8px 18px;
123
- display: flex;
124
- font-family: Helvetica Neue, serif;
125
- font-style: normal;
126
- font-weight: normal;
127
- font-size: 14px;
128
- line-height: 1;
129
- color: #32373C;
130
- align-items: center;
131
- justify-content: space-between;
132
- }
133
-
134
- .exactmetrics-widget-theme-preview-icon,
135
- .exactmetrics-products-theme-preview-icon {
136
- width: 74px;
137
- height: 46px;
138
- background-image: url(data:image/png;base64,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);
139
- background-repeat: no-repeat;
140
- background-position: 0 0;
141
- background-size: 392px;
142
- display: inline-block;
143
- }
144
-
145
- .exactmetrics-widget-theme-preview-icon.exactmetrics-widget-theme-preview-icon-beta {
146
- background-position-x: -212px;
147
- }
148
-
149
- .exactmetrics-widget-theme-preview-icon.exactmetrics-widget-theme-preview-icon-charlie {
150
- background-position-x: -106px;
151
- }
152
-
153
- .exactmetrics-widget-theme-preview-icon.exactmetrics-widget-theme-preview-icon-delta {
154
- height: 43px;
155
- background-position: -318px 0;
156
- }
157
-
158
- .exactmetrics-widget-theme-preview-icon.exactmetrics-widget-theme-preview-icon-echo {
159
- height: 76px;
160
- background-position: 0 -73px;
161
- }
162
-
163
- .exactmetrics-widget-theme-preview-icon.exactmetrics-widget-theme-preview-icon-foxtrot {
164
- background-position: -106px -90px;
165
- height: 41px;
166
- }
167
-
168
- .exactmetrics-widget-theme-preview-icon.exactmetrics-widget-theme-preview-icon-golf {
169
- background-position: -212px -83px;
170
- height: 56px;
171
- }
172
-
173
- .exactmetrics-widget-theme-preview-icon.exactmetrics-widget-theme-preview-icon-hotel {
174
- height: 50px;
175
- background-position: -318px -86px;
176
- }
177
-
178
- .exactmetrics-products-theme-preview-icon {
179
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlAAAACcCAMAAACHiWWRAAAA3lBMVEUAAABlKPX///9oKPNlJ/ZkKPVkKfRlKPZlKPVlKPbRv/zw6v7Pv/vw6/7w6v7w6v7w6/7v6vzy6//w5f/w6v5lJ/Xw6f5lKPXv6fxlH/Pw6f7w6v7Rv/zRv/xkKPVmJ/VlJvZjJvLw6/7w6v/w6v9jJ/NmKfbv6PxlKPXw6v7Rv/yEU/f///95QvZmKfXs5f7Twvx/TPd0PfZuNPbZyv1pLfXbzf11PvZyOvbf0v3e0P2RZPiIWPfNuvzKtftsMvX18v7+/v+NYfh7Rva2mfq5nfuCUPe+pPuvkPqvkPnAI7BMAAAAKHRSTlMA/gEgr+/uv99g798gr5CAb2BfEO/PsIBQEN/Pv69wj1BQ78/OkI5P5JBZSwAAB1NJREFUeNrs3EtqAkEYReFqYhJF8o4vBPMYhFuIgjhTwUH2v6eM09GyUOmckvut4MJ/aHVgByvYVVso7atgJYP1JLVHwcrVEc4gWLl6wrkNVi7xVMHKJR4HVTLxOKiSicdBlUw8Dqpk4nFQJROPgyqZeBxUycQDDurlsd+N/27cfw5Y4uEGNfyMEF1sUuLBBnUfQR4Ck3ioQT1ElPuAJB5oUE8RZhiIxAMNCvBt/LfXlwAkHmZQuAdUjI8BSDzMoO4iTj8AiYcZ1DjidAOQeJhBRaAAJB4H5aAcVA4HlcVB5XJQWRxULgeVxUHlclBZHFQDEkGNJi3Av797rY6DOi2o1WapJq1XO4N6vxFEu+OgTghqtVTDlqsdQb2Joxo4qOODWqtxm79BDYTy5aCODkrNW8Ya3KtOqg8HVVBQijW8dzFdj8TjoPaJNbQHlFRNxOOg9ok1LeEAJzmovWIN8OVeuA9hOaj9CBsOqMTjoHZzUEeqiD89EcckbEhyULkYxyRsSHJQuRjHJGxIclC5GMckbEhyULkYxyRsSHJQuRjHJGxIclC5GMckbEhyULkYxyRsSKIGRUQ4JmFDkoO6/KC2s8X0LBazrQ5xUJce1Px7ekazudIc1IUHNV9Mz2oxV5KDuvCgfti5tyVFYSgKw1YB8iqrxViFaAXPjrb2zPu/0DCtJbZj04GEmMD67+HquwnZG5EY7ojKCKrboHaJ8XaoiqC6DUokxhOoiqC6DSpNjJeiKoLqNqikhVAVQREUQalFUPgP1FHmeS5SgnIi70Edd7iUpwTlQL6DmuLWPCWo1+c5qCnKClEE9fL8BiXwpfmZoGrWT1D5+3ak1unQK1BBPES9wmBwS/1p9bd7ASrfjpTbHHoEKmgAIrqJUni6wdt9APV7VKOPHoEK0aB4cC1EC8U+gBrVadMjUGhS1OqPjaPOgRoR1A+1CcqNeW5boNJcEBRBAVszoNI5IAmKoPBex9OpyhMgCYqgtD8blJ4ASVC9B4X8jyqnj588AZKgeg/qoZLBeY6y0kqVJ0AS1GcRzOc7qHsoqp4AWR/U5M3BNEHFaKHQc1BJmuPaRNUTIAmqKIhgvKEXVy+PPWjJd8BkNz0rewIkQRUFIcw2jP24HH4sqUjJEyAJ6lI/x1ce0vcESIL6jKCKDHgCJEH9i6CKTHgCJEEV9ROUmO3HOm0EniQIajDoJSixH2u2fy6KoAa9BLUZazfDs44E1TqoDJZSBzUZ67fHs6YE1TqoNay3sgDqF0HdMrL1EgaKoBYZLJctCMo6KP2tlyhQAlWIWsFm2XrxRlAvARVCq/gbUA5GUFZAQa+IoAjKJCgQlFFQy3UGm62WBGUK1N5BUEv7h5clQZkBhZk+qA0Ao6BWsN6aoBSzc/WiB8qBG4WMoAyBgtjocZoJAN6DAkEp1nx8ZQrlCOqSqa0XRVBOnF5QRlB3ubX1EqqAcuP0glsEdZ9TWy/DQAWUG6cXXCOorzm09TKMA3fnoTKCUsvL8RW8IB9BuTA3RlAdAuXC3BhBGQeVCq3SpqDcmBsjqKc1+E/56ZCYqTEoJ+bG/rJzRy0Nw0AAxzOtYy19HWPQTn0Q7g5mMgjBFzfQqd//GwmzL7sVasPVXW1+r4V7GH/KGpKkoFrFXDj2+nb1oBRIQbWKuqf8KwU1kqA0fL0A03obuawdpKAmc+oFqIVwUFuYYFBlVZCsuhzDqZe/COoA0wuqLEhcUeI5FV8vwOzpkvgLanpB1TSAChUC5kgXPmT/QT0DwOSCoiEUqFD3ssH+U7Kn91NPKSgRqBAw/J7y/fEFDtud0Ntpe4BGr6Csd9RfsNhIQQ1Hw1oY9AzKOoriBIuK3HNpGgXFSUFF6AwqUCSPYuL2XGamUdEAalQI9LkIimI5FBO153J+O/CygUKgj1xQhGJ677lkOy3LWjqnqhzlqRdZYw5KIeSsdyQpWD6bPx9lUI56m2ZQ1pEwZ/ls/nyMQXmKFPDHVIIKJM53zPbILECdJZ5RsmygETIkz3XMdshkoE6GnA3Un/MWGymoeF2zkdmANrMcFTIa4RkdQa3vQJnFDSpkNELGkbyu2ciYR9BllqegYoPyJC50zA7IGPMEqqxMCmrMywbGmBUocm9SUL+GnA2yOXnLZ/PnrT9UrmbtYP5gUlBtxnPhmDnJsyVc3SLbrE0K6l8EpUoKKgX13a7dpSAIRVEU3vga9qeE2GNBHJ98kOY/tAZgN66CtLutbwiHhaDbTYNKbZ75/2SWeSeCWhdU+uUld1wp9E4EtTao55A0RYZC70RQa4Ma0sbIUOidCGqDoIbIUOidpF3YuckPQeWqw85FfmZBjQT13jHsnOVnFtT0abvMUGxQTRtmehnis0G2Lsw4PqBmQSU3z3H68w+b0j6sHOSI6WWBQxjZyxJBLXHqw0TbyRNBLXOqr/F1u/rYyBRBgaDgi6BAUPBVGW6ed+FnVWyeEJsnbLF5QmLzhK2KzRMSmyd8GW2eD6EEbJ4o2AuunoM0UoU65AAAAABJRU5ErkJggg==');
180
- width: 74px;
181
- height: 39px;
182
- background-size: 188px;
183
- }
184
-
185
- .exactmetrics-products-theme-preview-icon.exactmetrics-products-theme-preview-icon-alpha {
186
- background-position: 0 0;
187
- }
188
-
189
- .exactmetrics-products-theme-preview-icon.exactmetrics-products-theme-preview-icon-beta {
190
- background-position: -114px 0;
191
- height: 65px;
192
- }
193
-
194
- .exactmetrics-products-theme-preview-icon.exactmetrics-products-theme-preview-icon-charlie {
195
- background-position: 0 -102px;
196
- height: 50px;
197
- }
198
-
199
- .exactmetrics-products-theme-preview-icon.exactmetrics-products-theme-preview-icon-delta {
200
- background-position: -114px -102px;
201
- height: 78px;
202
- }
203
-
204
- .exactmetrics-pro-pill {
205
- font-style: normal;
206
- font-weight: bold;
207
- font-size: 11px;
208
- background: #1EC185;
209
- border-radius: 5px;
210
- color: #fff;
211
- padding: 3px 8px;
212
- margin-left: 8px;
213
- }
214
-
215
- .select300-container--disabled {
216
- margin-top: 10px;
217
- opacity: 0.6;
218
- }
1
+ .exactmetrics-label-block,
2
+ .exactmetrics-radio-icons {
3
+ display: block;
4
+ }
5
+
6
+ .exactmetrics-radio-icons {
7
+ margin: 4px 0;
8
+ }
9
+
10
+ .exactmetrics-radio-icons * {
11
+ box-sizing: border-box;
12
+ }
13
+
14
+ .exactmetrics-radio-icons > label {
15
+ display: inline-block;
16
+ }
17
+
18
+ .exactmetrics-radio-icons input[type="radio"] {
19
+ visibility: hidden;
20
+ display: none;
21
+ }
22
+
23
+ .exactmetrics-wide-column {
24
+ display: -webkit-box;
25
+ display: -ms-flexbox;
26
+ display: flex;
27
+ border: 1px solid #b7c9d9;
28
+ border-radius: 5px;
29
+ width: 40px;
30
+ height: 40px;
31
+ padding: 10px 5px;
32
+ -ms-flex-flow: wrap;
33
+ flex-flow: wrap;
34
+ -webkit-box-pack: justify;
35
+ -ms-flex-pack: justify;
36
+ justify-content: space-between;
37
+ margin-right: 4px;
38
+ }
39
+
40
+ .exactmetrics-wide-column > span {
41
+ background: #99a1b2;
42
+ display: inline-block;
43
+ width: 8px;
44
+ height: 8px;
45
+ border-radius: 1px;
46
+ margin-bottom: 2px;
47
+ }
48
+
49
+ .exactmetrics-wide-column.exactmetrics-wide-column-two > span {
50
+ width: 12px;
51
+ }
52
+
53
+ .exactmetrics-radio-icons input[type="radio"]:checked + .exactmetrics-wide-column {
54
+ border: 2px solid #338eef;
55
+ background: #ecf4fe;
56
+ padding: 9px 4px;
57
+ }
58
+
59
+ .exactmetrics-radio-icons input[type="radio"]:checked + .exactmetrics-wide-column > span {
60
+ background: #338eef;
61
+ }
62
+
63
+ .exactmetrics-wide-column.exactmetrics-wide-column-one > span {
64
+ width: 100%;
65
+ }
66
+
67
+ .exactmetrics-field-description {
68
+ font-family: Helvetica Neue, serif;
69
+ font-style: italic;
70
+ font-weight: normal;
71
+ font-size: 13px;
72
+ line-height: 1.5%;
73
+ color: #545C66;
74
+ }
75
+
76
+ /** SELECT2 Styles **/
77
+ .select300-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select300-container .select300-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select300-container .select300-selection--single .select300-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select300-container .select300-selection--single .select300-selection__clear{position:relative}.select300-container[dir="rtl"] .select300-selection--single .select300-selection__rendered{padding-right:8px;padding-left:20px}.select300-container .select300-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select300-container .select300-selection--multiple .select300-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select300-container .select300-search--inline{float:left}.select300-container .select300-search--inline .select300-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select300-container .select300-search--inline .select300-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select300-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select300-results{display:block}.select300-results__options{list-style:none;margin:0;padding:0}.select300-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select300-results__option[aria-selected]{cursor:pointer}.select300-container--open .select300-dropdown{left:0}.select300-container--open .select300-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select300-container--open .select300-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select300-search--dropdown{display:block;padding:4px}.select300-search--dropdown .select300-search__field{padding:4px;width:100%;box-sizing:border-box}.select300-search--dropdown .select300-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select300-search--dropdown.select300-search--hide{display:none}.select300-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select300-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select300-container--default .select300-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select300-container--default .select300-selection--single .select300-selection__rendered{color:#444;line-height:28px}.select300-container--default .select300-selection--single .select300-selection__clear{cursor:pointer;float:right;font-weight:bold}.select300-container--default .select300-selection--single .select300-selection__placeholder{color:#999}.select300-container--default .select300-selection--single .select300-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select300-container--default .select300-selection--single .select300-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select300-container--default[dir="rtl"] .select300-selection--single .select300-selection__clear{float:left}.select300-container--default[dir="rtl"] .select300-selection--single .select300-selection__arrow{left:1px;right:auto}.select300-container--default.select300-container--disabled .select300-selection--single{background-color:#eee;cursor:default}.select300-container--default.select300-container--disabled .select300-selection--single .select300-selection__clear{display:none}.select300-container--default.select300-container--open .select300-selection--single .select300-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select300-container--default .select300-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select300-container--default .select300-selection--multiple .select300-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select300-container--default .select300-selection--multiple .select300-selection__rendered li{list-style:none}.select300-container--default .select300-selection--multiple .select300-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px;padding:1px}.select300-container--default .select300-selection--multiple .select300-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select300-container--default .select300-selection--multiple .select300-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select300-container--default .select300-selection--multiple .select300-selection__choice__remove:hover{color:#333}.select300-container--default[dir="rtl"] .select300-selection--multiple .select300-selection__choice,.select300-container--default[dir="rtl"] .select300-selection--multiple .select300-search--inline{float:right}.select300-container--default[dir="rtl"] .select300-selection--multiple .select300-selection__choice{margin-left:5px;margin-right:auto}.select300-container--default[dir="rtl"] .select300-selection--multiple .select300-selection__choice__remove{margin-left:2px;margin-right:auto}.select300-container--default.select300-container--focus .select300-selection--multiple{border:solid black 1px;outline:0}.select300-container--default.select300-container--disabled .select300-selection--multiple{background-color:#eee;cursor:default}.select300-container--default.select300-container--disabled .select300-selection__choice__remove{display:none}.select300-container--default.select300-container--open.select300-container--above .select300-selection--single,.select300-container--default.select300-container--open.select300-container--above .select300-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select300-container--default.select300-container--open.select300-container--below .select300-selection--single,.select300-container--default.select300-container--open.select300-container--below .select300-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select300-container--default .select300-search--dropdown .select300-search__field{border:1px solid #aaa}.select300-container--default .select300-search--inline .select300-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select300-container--default .select300-results>.select300-results__options{max-height:200px;overflow-y:auto}.select300-container--default .select300-results__option[role=group]{padding:0}.select300-container--default .select300-results__option[aria-disabled=true]{color:#999}.select300-container--default .select300-results__option[aria-selected=true]{background-color:#ddd}.select300-container--default .select300-results__option .select300-results__option{padding-left:1em}.select300-container--default .select300-results__option .select300-results__option .select300-results__group{padding-left:0}.select300-container--default .select300-results__option .select300-results__option .select300-results__option{margin-left:-1em;padding-left:2em}.select300-container--default .select300-results__option .select300-results__option .select300-results__option .select300-results__option{margin-left:-2em;padding-left:3em}.select300-container--default .select300-results__option .select300-results__option .select300-results__option .select300-results__option .select300-results__option{margin-left:-3em;padding-left:4em}.select300-container--default .select300-results__option .select300-results__option .select300-results__option .select300-results__option .select300-results__option .select300-results__option{margin-left:-4em;padding-left:5em}.select300-container--default .select300-results__option .select300-results__option .select300-results__option .select300-results__option .select300-results__option .select300-results__option .select300-results__option{margin-left:-5em;padding-left:6em}.select300-container--default .select300-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select300-container--default .select300-results__group{cursor:default;display:block;padding:6px}.select300-container--classic .select300-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select300-container--classic .select300-selection--single:focus{border:1px solid #5897fb}.select300-container--classic .select300-selection--single .select300-selection__rendered{color:#444;line-height:28px}.select300-container--classic .select300-selection--single .select300-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select300-container--classic .select300-selection--single .select300-selection__placeholder{color:#999}.select300-container--classic .select300-selection--single .select300-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select300-container--classic .select300-selection--single .select300-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select300-container--classic[dir="rtl"] .select300-selection--single .select300-selection__clear{float:left}.select300-container--classic[dir="rtl"] .select300-selection--single .select300-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select300-container--classic.select300-container--open .select300-selection--single{border:1px solid #5897fb}.select300-container--classic.select300-container--open .select300-selection--single .select300-selection__arrow{background:transparent;border:none}.select300-container--classic.select300-container--open .select300-selection--single .select300-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select300-container--classic.select300-container--open.select300-container--above .select300-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select300-container--classic.select300-container--open.select300-container--below .select300-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select300-container--classic .select300-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select300-container--classic .select300-selection--multiple:focus{border:1px solid #5897fb}.select300-container--classic .select300-selection--multiple .select300-selection__rendered{list-style:none;margin:0;padding:0 5px}.select300-container--classic .select300-selection--multiple .select300-selection__clear{display:none}.select300-container--classic .select300-selection--multiple .select300-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select300-container--classic .select300-selection--multiple .select300-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select300-container--classic .select300-selection--multiple .select300-selection__choice__remove:hover{color:#555}.select300-container--classic[dir="rtl"] .select300-selection--multiple .select300-selection__choice{float:right;margin-left:5px;margin-right:auto}.select300-container--classic[dir="rtl"] .select300-selection--multiple .select300-selection__choice__remove{margin-left:2px;margin-right:auto}.select300-container--classic.select300-container--open .select300-selection--multiple{border:1px solid #5897fb}.select300-container--classic.select300-container--open.select300-container--above .select300-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select300-container--classic.select300-container--open.select300-container--below .select300-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select300-container--classic .select300-search--dropdown .select300-search__field{border:1px solid #aaa;outline:0}.select300-container--classic .select300-search--inline .select300-search__field{outline:0;box-shadow:none}.select300-container--classic .select300-dropdown{background-color:#fff;border:1px solid transparent}.select300-container--classic .select300-dropdown--above{border-bottom:none}.select300-container--classic .select300-dropdown--below{border-top:none}.select300-container--classic .select300-results>.select300-results__options{max-height:200px;overflow-y:auto}.select300-container--classic .select300-results__option[role=group]{padding:0}.select300-container--classic .select300-results__option[aria-disabled=true]{color:grey}.select300-container--classic .select300-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select300-container--classic .select300-results__group{cursor:default;display:block;padding:6px}.select300-container--classic.select300-container--open .select300-dropdown{border-color:#5897fb}
78
+
79
+ .select300-container {
80
+ display: block;
81
+ width: 100% !important;
82
+ }
83
+
84
+ .select300-container--default .select300-selection--multiple .select300-selection__choice {
85
+ border-radius: 20px;
86
+ background: #E2E4E7;
87
+ border: none;
88
+ color: #32373C;
89
+ padding-left: 8px;
90
+ font-family: Helvetica Neue, serif;
91
+ font-style: normal;
92
+ font-weight: normal;
93
+ font-size: 13px;
94
+ line-height: 24px;
95
+ }
96
+
97
+ .select300-container--default .select300-selection--multiple .select300-selection__choice__remove {
98
+ line-height: 1;
99
+ width: 16px;
100
+ height: 16px;
101
+ float: right;
102
+ display: block;
103
+ border-radius: 50%;
104
+ background-color: #555D66;
105
+ color: #E2E4E7;
106
+ text-align: center;
107
+ margin: 4px 0px 4px 8px;
108
+ font-size: 14px;
109
+ box-sizing: border-box;
110
+ padding-top: 0;
111
+ padding-left: 0;
112
+ }
113
+
114
+ .select300-container--default .select300-selection--multiple .select300-selection__choice__remove:hover {
115
+ background-color: #333;
116
+ color: #E2E4E7;
117
+ }
118
+
119
+ .exactmetrics-widget-theme-preview {
120
+ background: #F0F2F4;
121
+ border-radius: 5px;
122
+ padding: 8px 8px 8px 18px;
123
+ display: flex;
124
+ font-family: Helvetica Neue, serif;
125
+ font-style: normal;
126
+ font-weight: normal;
127
+ font-size: 14px;
128
+ line-height: 1;
129
+ color: #32373C;
130
+ align-items: center;
131
+ justify-content: space-between;
132
+ }
133
+
134
+ .exactmetrics-widget-theme-preview-icon,
135
+ .exactmetrics-products-theme-preview-icon {
136
+ width: 74px;
137
+ height: 46px;
138
+ background-image: url(data:image/png;base64,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);
139
+ background-repeat: no-repeat;
140
+ background-position: 0 0;
141
+ background-size: 392px;
142
+ display: inline-block;
143
+ }
144
+
145
+ .exactmetrics-widget-theme-preview-icon.exactmetrics-widget-theme-preview-icon-beta {
146
+ background-position-x: -212px;
147
+ }
148
+
149
+ .exactmetrics-widget-theme-preview-icon.exactmetrics-widget-theme-preview-icon-charlie {
150
+ background-position-x: -106px;
151
+ }
152
+
153
+ .exactmetrics-widget-theme-preview-icon.exactmetrics-widget-theme-preview-icon-delta {
154
+ height: 43px;
155
+ background-position: -318px 0;
156
+ }
157
+
158
+ .exactmetrics-widget-theme-preview-icon.exactmetrics-widget-theme-preview-icon-echo {
159
+ height: 76px;
160
+ background-position: 0 -73px;
161
+ }
162
+
163
+ .exactmetrics-widget-theme-preview-icon.exactmetrics-widget-theme-preview-icon-foxtrot {
164
+ background-position: -106px -90px;
165
+ height: 41px;
166
+ }
167
+
168
+ .exactmetrics-widget-theme-preview-icon.exactmetrics-widget-theme-preview-icon-golf {
169
+ background-position: -212px -83px;
170
+ height: 56px;
171
+ }
172
+
173
+ .exactmetrics-widget-theme-preview-icon.exactmetrics-widget-theme-preview-icon-hotel {
174
+ height: 50px;
175
+ background-position: -318px -86px;
176
+ }
177
+
178
+ .exactmetrics-products-theme-preview-icon {
179
+ background-image: url('data:image/png;base64,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');
180
+ width: 74px;
181
+ height: 39px;
182
+ background-size: 188px;
183
+ }
184
+
185
+ .exactmetrics-products-theme-preview-icon.exactmetrics-products-theme-preview-icon-alpha {
186
+ background-position: 0 0;
187
+ }
188
+
189
+ .exactmetrics-products-theme-preview-icon.exactmetrics-products-theme-preview-icon-beta {
190
+ background-position: -114px 0;
191
+ height: 65px;
192
+ }
193
+
194
+ .exactmetrics-products-theme-preview-icon.exactmetrics-products-theme-preview-icon-charlie {
195
+ background-position: 0 -102px;
196
+ height: 50px;
197
+ }
198
+
199
+ .exactmetrics-products-theme-preview-icon.exactmetrics-products-theme-preview-icon-delta {
200
+ background-position: -114px -102px;
201
+ height: 78px;
202
+ }
203
+
204
+ .exactmetrics-pro-pill {
205
+ font-style: normal;
206
+ font-weight: bold;
207
+ font-size: 11px;
208
+ background: #1EC185;
209
+ border-radius: 5px;
210
+ color: #fff;
211
+ padding: 3px 8px;
212
+ margin-left: 8px;
213
+ }
214
+
215
+ .select300-container--disabled {
216
+ margin-top: 10px;
217
+ opacity: 0.6;
218
+ }
assets/images/plugin-pushengage.svg CHANGED
@@ -1,19 +1,19 @@
1
- <svg width="470" height="74" viewBox="0 0 470 74" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M73.1 30.9C73 40.3 70.2 47.8 64.6 54.2C63.6 55.4 62.4 56.5 61.2 57.5C60.1 58.5 58.5 58.5 57.6 57.5C56.7 56.4 56.9 54.9 58.1 53.9C60.6 51.8 62.6 49.4 64.2 46.6C66.6 42.5 68 38.1 68.2 33.3C68.6 25 66 17.9 60.5 11.8C59.7 11 58.8 10.2 58 9.39998C56.9 8.39998 56.7 6.79998 57.6 5.79998C58.5 4.69998 60 4.69998 61.2 5.79998C67.6 11.3 71.4 18.3 72.8 26.6C73 28.3 73 30 73.1 30.9Z" fill="#3B43FF"/>
3
- <path d="M5 31.7C5.2 21.3 9.1 12.6 17 5.69998C18.1 4.69998 19.7 4.79998 20.5 5.79998C21.4 6.79998 21.2 8.39998 20.1 9.29998C14.7 14 11.3 19.8 10.2 26.9C8.7 36.2 11.2 44.4 17.5 51.4C18.3 52.3 19.3 53.2 20.2 54C21.3 55 21.4 56.5 20.5 57.5C19.6 58.5 18.1 58.5 17 57.6C10 51.6 6 43.9 5.2 34.7C5.2 34.2 5.1 33.7 5.1 33.2C5 32.7 5 32.2 5 31.7Z" fill="#3B43FF"/>
4
- <path d="M14.7 31.6C14.9 24.2 17.6 18 23.3 13.1C24.5 12.1 25.8 12.2 26.8 13.3C27.7 14.3 27.6 15.6 26.4 16.7C23.7 19.2 21.5 22.1 20.4 25.7C18.3 33 19.8 39.5 25 45.1C25.5 45.7 26.1 46.2 26.6 46.8C27.5 47.7 27.6 49.1 26.8 50C26 51 24.4 51.2 23.5 50.3C22 48.9 20.6 47.5 19.3 45.9C16.6 42.3 15.1 38.2 14.8 33.6C14.8 33.3 14.7 33 14.7 32.6C14.7 32.3 14.7 32 14.7 31.6Z" fill="#3B43FF"/>
5
- <path d="M63.4 31.7C63.2 38.9 60.5 45 55.1 49.9C54.3 50.7 53.3 51.1 52.2 50.7C50.6 50 50.2 48.2 51.4 46.8C52.8 45.2 54.4 43.7 55.6 41.9C60.4 34.5 59.3 24.4 53 18.1C52.5 17.6 52 17.1 51.5 16.6C50.6 15.7 50.5 14.3 51.3 13.4C52.2 12.4 53.6 12.2 54.7 13C56.7 14.6 58.4 16.5 59.7 18.7C61.8 22.1 63.1 25.8 63.3 29.8C63.3 30.4 63.3 31 63.4 31.7Z" fill="#3B43FF"/>
6
- <path d="M53.5 31.1C53.5 36.1 51.8 39.6 48.6 42.6C47.5 43.7 45.9 43.7 45 42.6C44.1 41.6 44.1 40.1 45.3 39.1C47.3 37.2 48.6 34.9 48.7 32.1C48.8 29.4 48 27.1 46.2 25.1C45.9 24.7 45.5 24.4 45.2 24.1C44.2 23.1 44.1 21.7 45 20.7C45.9 19.7 47.4 19.6 48.5 20.6C50.2 22.1 51.5 23.9 52.4 26C53.2 27.8 53.6 29.7 53.5 31.1Z" fill="#3B43FF"/>
7
- <path d="M30.9 19.9C32.3 19.9 33 20.4 33.5 21.4C34 22.4 33.7 23.4 32.9 24.1C31.6 25.4 30.5 26.7 29.9 28.5C28.7 32.3 29.5 35.6 32.1 38.5C32.3 38.8 32.6 39 32.9 39.3C33.9 40.4 34 41.8 33 42.8C32.1 43.7 30.6 43.8 29.6 42.9C27.1 40.7 25.4 38.1 24.9 34.8C23.9 29.4 25.4 24.7 29.4 21C29.9 20.3 30.6 20.1 30.9 19.9Z" fill="#3B43FF"/>
8
- <path d="M38.9 36.4C36.2 36.4 34.1 34.3 34.1 31.6C34.1 28.9 36.3 26.8 39 26.8C41.7 26.8 43.8 28.9 43.8 31.6C43.8 34.4 41.7 36.4 38.9 36.4Z" fill="#3B43FF"/>
9
- <path d="M89.752 56H100.624V38.648C101.632 38.792 102.928 38.864 104.368 38.864C110.848 38.864 116.392 37.28 120.136 33.752C123.016 31.016 124.6 26.984 124.6 22.232C124.6 17.48 122.512 13.448 119.416 11C116.176 8.40801 111.352 7.11201 104.584 7.11201C97.888 7.11201 93.136 7.54401 89.752 8.12001V56ZM100.624 15.824C101.416 15.608 102.928 15.392 105.16 15.392C110.632 15.392 113.728 18.056 113.728 22.52C113.728 27.488 110.128 30.44 104.296 30.44C102.712 30.44 101.56 30.368 100.624 30.152V15.824Z" fill="#191A35"/>
10
- <path d="M162.277 20.792H151.261V41.744C151.261 42.608 151.189 43.472 150.901 44.12C150.181 45.848 148.453 47.936 145.429 47.936C141.613 47.936 139.957 44.84 139.957 39.728V20.792H128.941V41.456C128.941 52.328 134.197 56.792 141.325 56.792C147.661 56.792 150.973 53.192 152.341 51.032H152.557L153.061 56H162.565C162.421 53.048 162.277 49.304 162.277 44.696V20.792Z" fill="#191A35"/>
11
- <path d="M167.605 54.272C170.269 55.712 174.373 56.72 178.981 56.72C189.061 56.72 194.245 51.896 194.245 45.344C194.173 40.16 191.365 36.776 184.669 34.472C180.349 32.96 178.981 32.096 178.981 30.44C178.981 28.64 180.493 27.56 183.157 27.56C186.181 27.56 189.205 28.712 190.789 29.576L192.733 22.016C190.573 20.936 186.901 20 182.797 20C174.085 20 168.469 24.968 168.469 31.52C168.397 35.696 171.205 39.656 178.477 42.104C182.581 43.472 183.661 44.336 183.661 46.136C183.661 47.936 182.293 49.088 178.981 49.088C175.741 49.088 171.565 47.648 169.549 46.424L167.605 54.272Z" fill="#191A35"/>
12
- <path d="M199.4 56H210.344V35.12C210.344 34.328 210.416 33.392 210.704 32.672C211.496 30.728 213.296 28.856 216.176 28.856C220.28 28.856 221.864 32.024 221.864 36.632V56H232.808V35.408C232.808 24.824 227.48 20 220.496 20C218.48 20 216.392 20.504 214.808 21.368C213.08 22.304 211.64 23.456 210.488 24.968H210.344V4.88H199.4V56Z" fill="#191A35"/>
13
- <path d="M269.38 26.552H251.524V16.472H270.46V7.47201H240.508V56H271.468V47H251.524V35.48H269.38V26.552Z" fill="#191A35"/>
14
- <path d="M277.169 56H288.113V35.696C288.113 34.688 288.257 33.608 288.545 32.96C289.265 30.944 291.065 28.856 294.089 28.856C298.049 28.856 299.633 31.952 299.633 36.488V56H310.577V35.12C310.577 24.752 305.177 20 297.977 20C292.145 20 288.545 23.384 287.105 25.616H286.889L286.385 20.792H276.881C277.025 23.888 277.169 27.632 277.169 32.024V56Z" fill="#191A35"/>
15
- <path d="M342.036 20.792L341.676 24.968H341.532C339.732 22.088 336.708 20 331.884 20C323.244 20 315.9 27.2 315.9 38.504C315.9 48.656 322.092 55.712 330.804 55.712C334.836 55.712 338.22 54.056 340.308 51.104H340.452V53.408C340.452 59.888 336.492 62.696 331.308 62.696C327.204 62.696 323.316 61.328 321.084 60.032L318.924 68.312C322.092 70.112 326.988 71.048 331.596 71.048C336.78 71.048 342.036 70.04 345.924 66.728C349.884 63.2 351.252 57.656 351.252 50.888V31.232C351.252 25.976 351.396 23.024 351.54 20.792H342.036ZM340.308 40.304C340.308 41.24 340.236 42.392 339.948 43.184C339.228 45.776 336.996 47.648 334.188 47.648C329.58 47.648 326.988 43.544 326.988 38.288C326.988 31.88 330.228 28.28 334.188 28.28C337.212 28.28 339.3 30.224 340.092 33.104C340.236 33.68 340.308 34.4 340.308 35.12V40.304Z" fill="#191A35"/>
16
- <path d="M388.473 56C388.113 54.056 387.969 50.816 387.969 47.432V35.192C387.969 26.912 384.225 20 372.489 20C366.081 20 361.257 21.728 358.809 23.096L360.825 30.152C363.129 28.712 366.945 27.488 370.545 27.488C375.945 27.488 376.953 30.152 376.953 32.024V32.528C364.497 32.456 356.289 36.848 356.289 45.992C356.289 51.608 360.537 56.792 367.665 56.792C371.841 56.792 375.441 55.28 377.745 52.472H377.961L378.609 56H388.473ZM377.313 43.184C377.313 43.832 377.241 44.48 377.097 45.056C376.377 47.288 374.145 49.088 371.409 49.088C368.961 49.088 367.089 47.72 367.089 44.912C367.089 40.664 371.553 39.296 377.313 39.368V43.184Z" fill="#191A35"/>
17
- <path d="M419.312 20.792L418.952 24.968H418.808C417.008 22.088 413.984 20 409.16 20C400.52 20 393.176 27.2 393.176 38.504C393.176 48.656 399.368 55.712 408.08 55.712C412.112 55.712 415.496 54.056 417.584 51.104H417.728V53.408C417.728 59.888 413.768 62.696 408.584 62.696C404.48 62.696 400.592 61.328 398.36 60.032L396.2 68.312C399.368 70.112 404.264 71.048 408.872 71.048C414.056 71.048 419.312 70.04 423.2 66.728C427.16 63.2 428.528 57.656 428.528 50.888V31.232C428.528 25.976 428.672 23.024 428.816 20.792H419.312ZM417.584 40.304C417.584 41.24 417.512 42.392 417.224 43.184C416.504 45.776 414.272 47.648 411.464 47.648C406.856 47.648 404.264 43.544 404.264 38.288C404.264 31.88 407.504 28.28 411.464 28.28C414.488 28.28 416.576 30.224 417.368 33.104C417.512 33.68 417.584 34.4 417.584 35.12V40.304Z" fill="#191A35"/>
18
- <path d="M466.973 41.888C467.117 41.096 467.333 39.44 467.333 37.568C467.333 28.856 463.013 20 451.637 20C439.397 20 433.853 29.864 433.853 38.792C433.853 49.808 440.693 56.72 452.645 56.72C457.397 56.72 461.789 56 465.389 54.56L463.949 47.144C460.997 48.08 457.973 48.584 454.229 48.584C449.117 48.584 444.653 46.424 444.293 41.888H466.973ZM444.221 34.4C444.509 31.448 446.381 27.272 450.989 27.272C456.029 27.272 457.181 31.736 457.181 34.4H444.221Z" fill="#191A35"/>
19
- </svg>
1
+ <svg width="470" height="74" viewBox="0 0 470 74" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M73.1 30.9C73 40.3 70.2 47.8 64.6 54.2C63.6 55.4 62.4 56.5 61.2 57.5C60.1 58.5 58.5 58.5 57.6 57.5C56.7 56.4 56.9 54.9 58.1 53.9C60.6 51.8 62.6 49.4 64.2 46.6C66.6 42.5 68 38.1 68.2 33.3C68.6 25 66 17.9 60.5 11.8C59.7 11 58.8 10.2 58 9.39998C56.9 8.39998 56.7 6.79998 57.6 5.79998C58.5 4.69998 60 4.69998 61.2 5.79998C67.6 11.3 71.4 18.3 72.8 26.6C73 28.3 73 30 73.1 30.9Z" fill="#3B43FF"/>
3
+ <path d="M5 31.7C5.2 21.3 9.1 12.6 17 5.69998C18.1 4.69998 19.7 4.79998 20.5 5.79998C21.4 6.79998 21.2 8.39998 20.1 9.29998C14.7 14 11.3 19.8 10.2 26.9C8.7 36.2 11.2 44.4 17.5 51.4C18.3 52.3 19.3 53.2 20.2 54C21.3 55 21.4 56.5 20.5 57.5C19.6 58.5 18.1 58.5 17 57.6C10 51.6 6 43.9 5.2 34.7C5.2 34.2 5.1 33.7 5.1 33.2C5 32.7 5 32.2 5 31.7Z" fill="#3B43FF"/>
4
+ <path d="M14.7 31.6C14.9 24.2 17.6 18 23.3 13.1C24.5 12.1 25.8 12.2 26.8 13.3C27.7 14.3 27.6 15.6 26.4 16.7C23.7 19.2 21.5 22.1 20.4 25.7C18.3 33 19.8 39.5 25 45.1C25.5 45.7 26.1 46.2 26.6 46.8C27.5 47.7 27.6 49.1 26.8 50C26 51 24.4 51.2 23.5 50.3C22 48.9 20.6 47.5 19.3 45.9C16.6 42.3 15.1 38.2 14.8 33.6C14.8 33.3 14.7 33 14.7 32.6C14.7 32.3 14.7 32 14.7 31.6Z" fill="#3B43FF"/>
5
+ <path d="M63.4 31.7C63.2 38.9 60.5 45 55.1 49.9C54.3 50.7 53.3 51.1 52.2 50.7C50.6 50 50.2 48.2 51.4 46.8C52.8 45.2 54.4 43.7 55.6 41.9C60.4 34.5 59.3 24.4 53 18.1C52.5 17.6 52 17.1 51.5 16.6C50.6 15.7 50.5 14.3 51.3 13.4C52.2 12.4 53.6 12.2 54.7 13C56.7 14.6 58.4 16.5 59.7 18.7C61.8 22.1 63.1 25.8 63.3 29.8C63.3 30.4 63.3 31 63.4 31.7Z" fill="#3B43FF"/>
6
+ <path d="M53.5 31.1C53.5 36.1 51.8 39.6 48.6 42.6C47.5 43.7 45.9 43.7 45 42.6C44.1 41.6 44.1 40.1 45.3 39.1C47.3 37.2 48.6 34.9 48.7 32.1C48.8 29.4 48 27.1 46.2 25.1C45.9 24.7 45.5 24.4 45.2 24.1C44.2 23.1 44.1 21.7 45 20.7C45.9 19.7 47.4 19.6 48.5 20.6C50.2 22.1 51.5 23.9 52.4 26C53.2 27.8 53.6 29.7 53.5 31.1Z" fill="#3B43FF"/>
7
+ <path d="M30.9 19.9C32.3 19.9 33 20.4 33.5 21.4C34 22.4 33.7 23.4 32.9 24.1C31.6 25.4 30.5 26.7 29.9 28.5C28.7 32.3 29.5 35.6 32.1 38.5C32.3 38.8 32.6 39 32.9 39.3C33.9 40.4 34 41.8 33 42.8C32.1 43.7 30.6 43.8 29.6 42.9C27.1 40.7 25.4 38.1 24.9 34.8C23.9 29.4 25.4 24.7 29.4 21C29.9 20.3 30.6 20.1 30.9 19.9Z" fill="#3B43FF"/>
8
+ <path d="M38.9 36.4C36.2 36.4 34.1 34.3 34.1 31.6C34.1 28.9 36.3 26.8 39 26.8C41.7 26.8 43.8 28.9 43.8 31.6C43.8 34.4 41.7 36.4 38.9 36.4Z" fill="#3B43FF"/>
9
+ <path d="M89.752 56H100.624V38.648C101.632 38.792 102.928 38.864 104.368 38.864C110.848 38.864 116.392 37.28 120.136 33.752C123.016 31.016 124.6 26.984 124.6 22.232C124.6 17.48 122.512 13.448 119.416 11C116.176 8.40801 111.352 7.11201 104.584 7.11201C97.888 7.11201 93.136 7.54401 89.752 8.12001V56ZM100.624 15.824C101.416 15.608 102.928 15.392 105.16 15.392C110.632 15.392 113.728 18.056 113.728 22.52C113.728 27.488 110.128 30.44 104.296 30.44C102.712 30.44 101.56 30.368 100.624 30.152V15.824Z" fill="#191A35"/>
10
+ <path d="M162.277 20.792H151.261V41.744C151.261 42.608 151.189 43.472 150.901 44.12C150.181 45.848 148.453 47.936 145.429 47.936C141.613 47.936 139.957 44.84 139.957 39.728V20.792H128.941V41.456C128.941 52.328 134.197 56.792 141.325 56.792C147.661 56.792 150.973 53.192 152.341 51.032H152.557L153.061 56H162.565C162.421 53.048 162.277 49.304 162.277 44.696V20.792Z" fill="#191A35"/>
11
+ <path d="M167.605 54.272C170.269 55.712 174.373 56.72 178.981 56.72C189.061 56.72 194.245 51.896 194.245 45.344C194.173 40.16 191.365 36.776 184.669 34.472C180.349 32.96 178.981 32.096 178.981 30.44C178.981 28.64 180.493 27.56 183.157 27.56C186.181 27.56 189.205 28.712 190.789 29.576L192.733 22.016C190.573 20.936 186.901 20 182.797 20C174.085 20 168.469 24.968 168.469 31.52C168.397 35.696 171.205 39.656 178.477 42.104C182.581 43.472 183.661 44.336 183.661 46.136C183.661 47.936 182.293 49.088 178.981 49.088C175.741 49.088 171.565 47.648 169.549 46.424L167.605 54.272Z" fill="#191A35"/>
12
+ <path d="M199.4 56H210.344V35.12C210.344 34.328 210.416 33.392 210.704 32.672C211.496 30.728 213.296 28.856 216.176 28.856C220.28 28.856 221.864 32.024 221.864 36.632V56H232.808V35.408C232.808 24.824 227.48 20 220.496 20C218.48 20 216.392 20.504 214.808 21.368C213.08 22.304 211.64 23.456 210.488 24.968H210.344V4.88H199.4V56Z" fill="#191A35"/>
13
+ <path d="M269.38 26.552H251.524V16.472H270.46V7.47201H240.508V56H271.468V47H251.524V35.48H269.38V26.552Z" fill="#191A35"/>
14
+ <path d="M277.169 56H288.113V35.696C288.113 34.688 288.257 33.608 288.545 32.96C289.265 30.944 291.065 28.856 294.089 28.856C298.049 28.856 299.633 31.952 299.633 36.488V56H310.577V35.12C310.577 24.752 305.177 20 297.977 20C292.145 20 288.545 23.384 287.105 25.616H286.889L286.385 20.792H276.881C277.025 23.888 277.169 27.632 277.169 32.024V56Z" fill="#191A35"/>
15
+ <path d="M342.036 20.792L341.676 24.968H341.532C339.732 22.088 336.708 20 331.884 20C323.244 20 315.9 27.2 315.9 38.504C315.9 48.656 322.092 55.712 330.804 55.712C334.836 55.712 338.22 54.056 340.308 51.104H340.452V53.408C340.452 59.888 336.492 62.696 331.308 62.696C327.204 62.696 323.316 61.328 321.084 60.032L318.924 68.312C322.092 70.112 326.988 71.048 331.596 71.048C336.78 71.048 342.036 70.04 345.924 66.728C349.884 63.2 351.252 57.656 351.252 50.888V31.232C351.252 25.976 351.396 23.024 351.54 20.792H342.036ZM340.308 40.304C340.308 41.24 340.236 42.392 339.948 43.184C339.228 45.776 336.996 47.648 334.188 47.648C329.58 47.648 326.988 43.544 326.988 38.288C326.988 31.88 330.228 28.28 334.188 28.28C337.212 28.28 339.3 30.224 340.092 33.104C340.236 33.68 340.308 34.4 340.308 35.12V40.304Z" fill="#191A35"/>
16
+ <path d="M388.473 56C388.113 54.056 387.969 50.816 387.969 47.432V35.192C387.969 26.912 384.225 20 372.489 20C366.081 20 361.257 21.728 358.809 23.096L360.825 30.152C363.129 28.712 366.945 27.488 370.545 27.488C375.945 27.488 376.953 30.152 376.953 32.024V32.528C364.497 32.456 356.289 36.848 356.289 45.992C356.289 51.608 360.537 56.792 367.665 56.792C371.841 56.792 375.441 55.28 377.745 52.472H377.961L378.609 56H388.473ZM377.313 43.184C377.313 43.832 377.241 44.48 377.097 45.056C376.377 47.288 374.145 49.088 371.409 49.088C368.961 49.088 367.089 47.72 367.089 44.912C367.089 40.664 371.553 39.296 377.313 39.368V43.184Z" fill="#191A35"/>
17
+ <path d="M419.312 20.792L418.952 24.968H418.808C417.008 22.088 413.984 20 409.16 20C400.52 20 393.176 27.2 393.176 38.504C393.176 48.656 399.368 55.712 408.08 55.712C412.112 55.712 415.496 54.056 417.584 51.104H417.728V53.408C417.728 59.888 413.768 62.696 408.584 62.696C404.48 62.696 400.592 61.328 398.36 60.032L396.2 68.312C399.368 70.112 404.264 71.048 408.872 71.048C414.056 71.048 419.312 70.04 423.2 66.728C427.16 63.2 428.528 57.656 428.528 50.888V31.232C428.528 25.976 428.672 23.024 428.816 20.792H419.312ZM417.584 40.304C417.584 41.24 417.512 42.392 417.224 43.184C416.504 45.776 414.272 47.648 411.464 47.648C406.856 47.648 404.264 43.544 404.264 38.288C404.264 31.88 407.504 28.28 411.464 28.28C414.488 28.28 416.576 30.224 417.368 33.104C417.512 33.68 417.584 34.4 417.584 35.12V40.304Z" fill="#191A35"/>
18
+ <path d="M466.973 41.888C467.117 41.096 467.333 39.44 467.333 37.568C467.333 28.856 463.013 20 451.637 20C439.397 20 433.853 29.864 433.853 38.792C433.853 49.808 440.693 56.72 452.645 56.72C457.397 56.72 461.789 56 465.389 54.56L463.949 47.144C460.997 48.08 457.973 48.584 454.229 48.584C449.117 48.584 444.653 46.424 444.293 41.888H466.973ZM444.221 34.4C444.509 31.448 446.381 27.272 450.989 27.272C456.029 27.272 457.181 31.736 457.181 34.4H444.221Z" fill="#191A35"/>
19
+ </svg>
assets/js/admin-widget-settings.js CHANGED
@@ -1,68 +1,68 @@
1
- (
2
- function ( $ ) {
3
-
4
- // Add Color Picker to all inputs that have 'color-field' class.
5
- $( function () {
6
- init_color_picker();
7
- init_multiselect();
8
- $( document ).on( 'widget-updated widget-added', function (e) {
9
- init_color_picker();
10
- init_multiselect();
11
- } );
12
- $( document ).on( 'change', '.exactmetrics-save-on-change', function () {
13
- save_and_refresh_form( $( this ).closest( '.widget' ) );
14
- } );
15
- } );
16
-
17
- function init_color_picker() {
18
- var timeout;
19
- $( '#widgets-right .exactmetrics-color-field' ).wpColorPicker( {
20
- change: function ( event, ui ) {
21
- if ( timeout ) {
22
- clearTimeout( timeout );
23
- }
24
- timeout = setTimeout( function () {
25
- $( event.target ).trigger( 'change' );
26
- }, 300 );
27
- },
28
- } );
29
- }
30
-
31
- function save_and_refresh_form( widget ) {
32
- if ( wpWidgets && 'undefined' !== typeof wpWidgets.save ) {
33
- wpWidgets.save( widget, 0, 0 );
34
- }
35
- }
36
-
37
- function init_multiselect() {
38
- if ( ! jQuery.fn.select300 ) {
39
- return;
40
- }
41
- $('#widgets-right .exactmetrics-multiselect').select300({
42
- ajax: {
43
- type: 'POST',
44
- url: ajaxurl,
45
- delay: 250,
46
- width: 'resolve',
47
- data: function (params) {
48
- var taxonomy = $(this).data('taxonomy');
49
- return {
50
- taxonomy: taxonomy,
51
- keyword: params.term,
52
- action: 'exactmetrics_get_terms',
53
- nonce: exactmetrics_pp.nonce,
54
- };
55
- },
56
- processResults: function (data) {
57
- return {
58
- results: data.data
59
- };
60
- },
61
- dataType: 'json'
62
- }
63
- });
64
-
65
- }
66
-
67
- }
68
- )( jQuery );
1
+ (
2
+ function ( $ ) {
3
+
4
+ // Add Color Picker to all inputs that have 'color-field' class.
5
+ $( function () {
6
+ init_color_picker();
7
+ init_multiselect();
8
+ $( document ).on( 'widget-updated widget-added', function (e) {
9
+ init_color_picker();
10
+ init_multiselect();
11
+ } );
12
+ $( document ).on( 'change', '.exactmetrics-save-on-change', function () {
13
+ save_and_refresh_form( $( this ).closest( '.widget' ) );
14
+ } );
15
+ } );
16
+
17
+ function init_color_picker() {
18
+ var timeout;
19
+ $( '#widgets-right .exactmetrics-color-field' ).wpColorPicker( {
20
+ change: function ( event, ui ) {
21
+ if ( timeout ) {
22
+ clearTimeout( timeout );
23
+ }
24
+ timeout = setTimeout( function () {
25
+ $( event.target ).trigger( 'change' );
26
+ }, 300 );
27
+ },
28
+ } );
29
+ }
30
+
31
+ function save_and_refresh_form( widget ) {
32
+ if ( wpWidgets && 'undefined' !== typeof wpWidgets.save ) {
33
+ wpWidgets.save( widget, 0, 0 );
34
+ }
35
+ }
36
+
37
+ function init_multiselect() {
38
+ if ( ! jQuery.fn.select300 ) {
39
+ return;
40
+ }
41
+ $('#widgets-right .exactmetrics-multiselect').select300({
42
+ ajax: {
43
+ type: 'POST',
44
+ url: ajaxurl,
45
+ delay: 250,
46
+ width: 'resolve',
47
+ data: function (params) {
48
+ var taxonomy = $(this).data('taxonomy');
49
+ return {
50
+ taxonomy: taxonomy,
51
+ keyword: params.term,
52
+ action: 'exactmetrics_get_terms',
53
+ nonce: exactmetrics_pp.nonce,
54
+ };
55
+ },
56
+ processResults: function (data) {
57
+ return {
58
+ results: data.data
59
+ };
60
+ },
61
+ dataType: 'json'
62
+ }
63
+ });
64
+
65
+ }
66
+
67
+ }
68
+ )( jQuery );
assets/js/frontend-gtag.js CHANGED
@@ -1,829 +1,829 @@
1
- /**
2
- * Developer's Notice:
3
- *
4
- * Note: JS in this file (and this file itself) is not guaranteed backwards compatibility. JS can be added, changed or removed at any time without notice.
5
- * For more information see the `Backwards Compatibility Guidelines for Developers` section of the README.md file.
6
- */
7
- /**
8
- * Handles:
9
- * - JS Events handling
10
- *
11
- * @since 7.15.0
12
- */
13
- var ExactMetrics = function () {
14
- /* ExactMetrics JS events tracking works on all major browsers, including IE starting at IE 7, via polyfills for any major JS function used that
15
- is not supported by at least 95% of the global and/or US browser marketshare. Currently, IE 7 & 8 which as of 2/14/17 have under 0.25% global marketshare, require
16
- us to polyfill Array.prototype.lastIndexOf, and if they continue to drop, we might remove this polyfill at some point. In that case note that events tracking
17
- for IE 7/8 will continue to work, with the exception of events tracking of downloads. */
18
- var lastClicked = [];
19
- var internalAsOutboundCategory = '';
20
- var beforeUnloadChanged = false;
21
-
22
- this.setLastClicked = function ( valuesArray, fieldsArray, tracked ) {
23
- valuesArray = typeof valuesArray !== 'undefined' ? valuesArray : [];
24
- fieldsArray = typeof fieldsArray !== 'undefined' ? fieldsArray : [];
25
- tracked = typeof tracked !== 'undefined' ? tracked : false;
26
-
27
- lastClicked.valuesArray = valuesArray;
28
- lastClicked.fieldsArray = fieldsArray;
29
- };
30
-
31
- this.getLastClicked = function () {
32
- return lastClicked;
33
- };
34
-
35
- this.setInternalAsOutboundCategory = function ( category ) {
36
- internalAsOutboundCategory = category;
37
- };
38
-
39
- this.getInternalAsOutboundCategory = function () {
40
- return internalAsOutboundCategory;
41
- };
42
-
43
- this.sendEvent = function ( type, action, fieldsArray ) {
44
- __gtagTrackerSend( type, action, fieldsArray, [] );
45
- };
46
-
47
- function __gtagTrackerIsDebug() {
48
- if ( window.exactmetrics_debug_mode ) {
49
- return true;
50
- } else {
51
- return false;
52
- }
53
- }
54
-
55
- function cloneFields( fields, allowedKeys, disallowedKeys ) {
56
- var clone = {};
57
-
58
- for ( var key in fields ) {
59
- if ( ! fields.hasOwnProperty( key ) ) {
60
- continue
61
- }
62
-
63
- if ( allowedKeys && allowedKeys.indexOf( key ) === -1 ) {
64
- continue
65
- }
66
-
67
- if ( disallowedKeys && disallowedKeys.indexOf( key ) > -1 ) {
68
- continue
69
- }
70
-
71
- clone[ key ] = fields[ key ];
72
- }
73
-
74
- return clone;
75
- }
76
-
77
- function __gtagMaybeTrackerV4( type, action, fieldsArray ) {
78
- if ( ! exactmetrics_frontend.v4_id || type !== 'event' ) {
79
- return;
80
- }
81
-
82
- var eventCategory = fieldsArray.event_category || '';
83
-
84
- var fieldsToRemove = [
85
- 'event_name',
86
- 'event_category',
87
- 'event_label',
88
- 'value',
89
- ];
90
-
91
- var fields = cloneFields( fieldsArray, null, fieldsToRemove );
92
- fields.action = action;
93
-
94
- var eventMap = {
95
- 'outbound-link': 'click',
96
- 'download': 'file_download',
97
- };
98
-
99
- __gtagTracker( type, eventMap[ eventCategory ] || eventCategory.replace( '-', '_' ), fields );
100
- }
101
-
102
- function __gtagMaybeTrackerUA( type, action, fieldsArray ) {
103
- if ( ! exactmetrics_frontend.ua ) {
104
- return;
105
- }
106
-
107
- var allowedFields = [
108
- 'event_category',
109
- 'event_label',
110
- 'value',
111
- ];
112
-
113
- var uaFields = cloneFields(fieldsArray, allowedFields);
114
- uaFields.send_to = exactmetrics_frontend.ua
115
-
116
- __gtagTracker( type, action, uaFields );
117
- }
118
-
119
- function __gtagTrackerSendDual( type, action, fieldsArray, valuesArray ) {
120
- type = typeof type !== 'undefined' ? type : 'event';
121
- action = typeof action !== 'undefined' ? action : '';
122
- valuesArray = typeof valuesArray !== 'undefined' ? valuesArray : [];
123
- fieldsArray = typeof fieldsArray !== 'undefined' ? fieldsArray : {};
124
-
125
- __gtagMaybeTrackerUA( type, action, fieldsArray );
126
- __gtagMaybeTrackerV4( type, action, fieldsArray );
127
-
128
- lastClicked.valuesArray = valuesArray;
129
- lastClicked.fieldsArray = fieldsArray;
130
- lastClicked.fieldsArray.event_action = action;
131
- lastClicked.tracked = true;
132
- __gtagTrackerLog( 'Tracked: ' + valuesArray.type );
133
- __gtagTrackerLog( lastClicked );
134
- }
135
-
136
- /**
137
- * This attempts to be compatible with the gtag function.
138
- *
139
- * @see https://developers.google.com/analytics/devguides/collection/gtagjs
140
- * @param type string Type of request, event, timing, config.
141
- * @param action string Event action or UA for config.
142
- * @param fieldsArray object The configuration object.
143
- * @param valuesArray object The values for the log.
144
- * @private
145
- */
146
- function __gtagTrackerSend( type, action, fieldsArray, valuesArray ) {
147
- type = typeof type !== 'undefined' ? type : 'event';
148
- action = typeof action !== 'undefined' ? action : '';
149
- valuesArray = typeof valuesArray !== 'undefined' ? valuesArray : [];
150
- fieldsArray = typeof fieldsArray !== 'undefined' ? fieldsArray : {};
151
-
152
- __gtagTracker( type, action, fieldsArray );
153
-
154
- lastClicked.valuesArray = valuesArray;
155
- lastClicked.fieldsArray = fieldsArray;
156
- lastClicked.fieldsArray.event_action = action;
157
- lastClicked.tracked = true;
158
- __gtagTrackerLog( 'Tracked: ' + valuesArray.type );
159
- __gtagTrackerLog( lastClicked );
160
- }
161
-
162
- function __gtagTrackerNotSend( valuesArray ) {
163
- valuesArray = typeof valuesArray !== 'undefined' ? valuesArray : [];
164
-
165
- lastClicked.valuesArray = valuesArray;
166
- lastClicked.fieldsArray = [];
167
- lastClicked.tracked = false;
168
- __gtagTrackerLog( 'Not Tracked: ' + valuesArray.exit );
169
- __gtagTrackerLog( lastClicked );
170
- }
171
-
172
- function __gtagTrackerLog( message ) {
173
- if ( __gtagTrackerIsDebug() ) {
174
- console.dir( message );
175
- }
176
- }
177
-
178
- function __gtagTrackerStringTrim( x ) {
179
- return x.replace( /^\s+|\s+$/gm, '' );
180
- }
181
-
182
- function __gtagTrackerGetDomain() {
183
- var i = 0, currentdomain = document.domain, p = currentdomain.split( '.' ), s = '_gd' + (
184
- new Date()
185
- ).getTime();
186
- while ( i < ( p.length - 1 ) && document.cookie.indexOf( s + '=' + s ) == - 1 ) {
187
- currentdomain = p.slice( - 1 - (
188
- ++ i
189
- ) ).join( '.' );
190
- document.cookie = s + "=" + s + ";domain=" + currentdomain + ";";
191
- }
192
- document.cookie = s + "=;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=" + currentdomain + ";";
193
- return currentdomain;
194
- }
195
-
196
- function __gtagTrackerGetExtension( extension ) {
197
- extension = extension.toString();
198
- extension = extension.substring( 0, (
199
- extension.indexOf( "#" ) == - 1
200
- ) ? extension.length : extension.indexOf( "#" ) ); /* Remove the anchor at the end, if there is one */
201
- extension = extension.substring( 0, (
202
- extension.indexOf( "?" ) == - 1
203
- ) ? extension.length : extension.indexOf( "?" ) ); /* Remove the query after the file name, if there is one */
204
- extension = extension.substring( extension.lastIndexOf( "/" ) + 1, extension.length ); /* Remove everything before the last slash in the path */
205
- if ( extension.length > 0 && extension.indexOf( '.' ) !== - 1 ) { /* If there's a period left in the URL, then there's a extension. Else it is not a extension. */
206
- extension = extension.substring( extension.indexOf( "." ) + 1 ); /* Remove everything but what's after the first period */
207
- return extension;
208
- } else {
209
- return "";
210
- }
211
- }
212
-
213
- function __gtagTrackerTrackedClick( event ) {
214
- return event.which == 1 || event.which == 2 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey;
215
- }
216
-
217
- function __gtagTrackerGetDownloadExtensions() {
218
- var download_extensions = [];
219
- if ( typeof exactmetrics_frontend.download_extensions == 'string' ) {
220
- download_extensions = exactmetrics_frontend.download_extensions.split( "," );
221
- }
222
- return download_extensions;
223
- }
224
-
225
- function __gtagTrackerGetInboundPaths() {
226
- var inbound_paths = [];
227
- if ( typeof exactmetrics_frontend.inbound_paths == 'string' ) {
228
- inbound_paths = JSON.parse( exactmetrics_frontend.inbound_paths );
229
- }
230
-
231
- return inbound_paths;
232
- }
233
-
234
- function __gtagTrackerTrackedClickType( event ) {
235
- if ( event.which == 1 ) {
236
- return 'event.which=1';
237
- } else if ( event.which == 2 ) {
238
- return 'event.which=2';
239
- } else if ( event.metaKey ) {
240
- return 'metaKey';
241
- } else if ( event.ctrlKey ) {
242
- return 'ctrlKey';
243
- } else if ( event.shiftKey ) {
244
- return 'shiftKey';
245
- } else if ( event.altKey ) {
246
- return 'altKey';
247
- } else {
248
- return '';
249
- }
250
- }
251
-
252
- function __gtagTrackerLinkType( el ) {
253
- var download_extensions = __gtagTrackerGetDownloadExtensions();
254
- var inbound_paths = __gtagTrackerGetInboundPaths();
255
- var type = 'unknown';
256
- var link = el.href;
257
- var extension = __gtagTrackerGetExtension( el.href );
258
- var currentdomain = __gtagTrackerGetDomain();
259
- var hostname = el.hostname;
260
- var protocol = el.protocol;
261
- var pathname = el.pathname;
262
- link = link.toString();
263
- var index, len;
264
- var category = el.getAttribute( "data-vars-ga-category" );
265
-
266
- if ( category ) {
267
- return category;
268
- }
269
-
270
- if ( link.match( /^javascript\:/i ) ) {
271
- type = 'internal'; /* if it's a JS link, it's internal */
272
- } else if ( protocol && protocol.length > 0 && (
273
- __gtagTrackerStringTrim( protocol ) == 'tel' || __gtagTrackerStringTrim( protocol ) == 'tel:'
274
- ) ) { /* If it's a telephone link */
275
- type = "tel";
276
- } else if ( protocol && protocol.length > 0 && (
277
- __gtagTrackerStringTrim( protocol ) == 'mailto' || __gtagTrackerStringTrim( protocol ) == 'mailto:'
278
- ) ) { /* If it's a email */
279
- type = "mailto";
280
- } else if ( hostname && currentdomain && hostname.length > 0 && currentdomain.length > 0 && !hostname.endsWith( '.' + currentdomain ) && hostname !== currentdomain ) { /* If it's a outbound */
281
- type = "external";
282
- } else if ( pathname && JSON.stringify( inbound_paths ) != "{}" && pathname.length > 0 ) { /* If it's an internal as outbound */
283
- var inbound_paths_length = inbound_paths.length;
284
- for ( var inbound_paths_index = 0; inbound_paths_index < inbound_paths_length; inbound_paths_index ++ ) {
285
- if ( inbound_paths[inbound_paths_index].path && inbound_paths[inbound_paths_index].label && inbound_paths[inbound_paths_index].path.length > 0 && inbound_paths[inbound_paths_index].label.length > 0 && pathname.startsWith( inbound_paths[inbound_paths_index].path ) ) {
286
- type = "internal-as-outbound";
287
- internalAsOutboundCategory = "outbound-link-" + inbound_paths[inbound_paths_index].label;
288
- break;
289
- }
290
- }
291
- /* Enable window.exactmetrics_experimental_mode at your own risk. We might eventually remove it. Also you may/can/will burn through GA quota for your property quickly. */
292
- } else if ( hostname && window.exactmetrics_experimental_mode && hostname.length > 0 && document.domain.length > 0 && hostname !== document.domain ) { /* If it's a cross-hostname link */
293
- type = "cross-hostname";
294
- }
295
-
296
- if ( extension && (
297
- type === 'unknown' || 'external' === type
298
- ) && download_extensions.length > 0 && extension.length > 0 ) { /* If it's a download */
299
- for ( index = 0, len = download_extensions.length; index < len; ++ index ) {
300
- if ( download_extensions[index].length > 0 && (
301
- link.endsWith( download_extensions[index] ) || download_extensions[index] == extension
302
- ) ) {
303
- type = "download";
304
- break;
305
- }
306
- }
307
- }
308
-
309
- if ( type === 'unknown' ) {
310
- type = 'internal';
311
- }
312
- return type;
313
- }
314
-
315
- function __gtagTrackerLinkTarget( el, event ) {
316
-
317
- /* Is actual target set and not _(self|parent|top)? */
318
- var target = (
319
- el.target && !el.target.match( /^_(self|parent|top)$/i )
320
- ) ? el.target : false;
321
-
322
- /* Assume a target if Ctrl|shift|meta-click */
323
- if ( event.ctrlKey || event.shiftKey || event.metaKey || event.which == 2 ) {
324
- target = "_blank";
325
- }
326
- return target;
327
- }
328
-
329
- function __gtagTrackerGetTitle( el ) {
330
- if ( el.getAttribute( "data-vars-ga-label" ) && el.getAttribute( "data-vars-ga-label" ).replace( /\n/ig, '' ) ) {
331
- return el.getAttribute( "data-vars-ga-label" ).replace( /\n/ig, '' );
332
- } else if ( el.title && el.title.replace( /\n/ig, '' ) ) {
333
- return el.title.replace( /\n/ig, '' );
334
- } else if ( el.innerText && el.innerText.replace( /\n/ig, '' ) ) {
335
- return el.innerText.replace( /\n/ig, '' );
336
- } else if ( el.getAttribute( 'aria-label' ) && el.getAttribute( 'aria-label' ).replace( /\n/ig, '' ) ) {
337
- return el.getAttribute( 'aria-label' ).replace( /\n/ig, '' );
338
- } else if ( el.alt && el.alt.replace( /\n/ig, '' ) ) {
339
- return el.alt.replace( /\n/ig, '' );
340
- } else if ( el.textContent && el.textContent.replace( /\n/ig, '' ) ) {
341
- return el.textContent.replace( /\n/ig, '' );
342
- } else {
343
- return undefined;
344
- }
345
- }
346
-
347
- function __gtagTrackerGetInnerTitle( el ) {
348
- var children = el.children;
349
- var count = 0;
350
- var child;
351
- var value;
352
- for ( var i = 0; i < children.length; i ++ ) {
353
- child = children[i];
354
- value = __gtagTrackerGetTitle( child );
355
- if ( value ) {
356
- return value;
357
- }
358
- /* max search 100 elements to ensure performance */
359
- if ( count == 99 ) {
360
- return undefined;
361
- }
362
- count ++;
363
- }
364
- return undefined;
365
- }
366
-
367
- function __gtagTrackerClickEvent( event ) {
368
- var el = event.srcElement || event.target;
369
- var valuesArray = [];
370
- var fieldsArray;
371
-
372
- /* Start Values Array */
373
- valuesArray.el = el;
374
- valuesArray.click_type = __gtagTrackerTrackedClickType( event );
375
-
376
- /* If GA is blocked or not loaded, or not main|middle|touch click then don't track */
377
- if ( 'undefined' === typeof __gtagTracker || ! __gtagTrackerTrackedClick( event ) ) {
378
- valuesArray.exit = 'loaded';
379
- __gtagTrackerNotSend( valuesArray );
380
- return;
381
- }
382
-
383
- /* Loop up the DOM tree through parent elements if clicked element is not a link (eg: an image inside a link) */
384
- while ( el && (
385
- typeof el.tagName == 'undefined' || el.tagName.toLowerCase() != 'a' || !el.href
386
- ) ) {
387
- el = el.parentNode;
388
- }
389
-
390
- /* if a link with valid href has been clicked */
391
- if ( el && el.href && !el.hasAttribute( 'xlink:href' ) ) {
392
- var link = el.href; /* What link are we tracking */
393
- var extension = __gtagTrackerGetExtension( el.href ); /* What extension is this link */
394
- var download_extensions = __gtagTrackerGetDownloadExtensions(); /* Let's get the extensions to track */
395
- var inbound_paths = __gtagTrackerGetInboundPaths(); /* Let's get the internal paths to track */
396
- var home_url = exactmetrics_frontend.home_url; /* Let's get the url to compare for external/internal use */
397
- var currentdomain = __gtagTrackerGetDomain(); /* What domain are we on? */
398
- var type = __gtagTrackerLinkType( el ); /* What type of link is this? */
399
- var target = __gtagTrackerLinkTarget( el, event ); /* Is a new tab/window being opened? */
400
- var action = el.getAttribute( "data-vars-ga-action" );
401
- var label = el.getAttribute( "data-vars-ga-label" );
402
-
403
- /* Element */
404
- valuesArray.el = el; /* el is an a element so we can parse it */
405
- valuesArray.el_href = el.href; /* "http://example.com:3000/pathname/?search=test#hash" */
406
- valuesArray.el_protocol = el.protocol; /* "http:" */
407
- valuesArray.el_hostname = el.hostname; /* "example.com" */
408
- valuesArray.el_port = el.port; /* "3000" */
409
- valuesArray.el_pathname = el.pathname; /* "/pathname/" */
410
- valuesArray.el_search = el.search; /* "?search=test" */
411
- valuesArray.el_hash = el.hash; /* "#hash" */
412
- valuesArray.el_host = el.host; /* "example.com:3000" */
413
- valuesArray.el_classes = el.getAttribute('class')
414
- valuesArray.el_id = el.id
415
-
416
- /* Settings */
417
- valuesArray.debug_mode = __gtagTrackerIsDebug(); /* "example.com:3000" */
418
- valuesArray.download_extensions = download_extensions; /* Let's get the extensions to track */
419
- valuesArray.inbound_paths = inbound_paths; /* Let's get the internal paths to track */
420
- valuesArray.home_url = home_url; /* Let's get the url to compare for external/internal use */
421
-
422
- /* Parsed/Logic */
423
- valuesArray.link = link; /* What link are we tracking */
424
- valuesArray.extension = extension; /* What extension is this link */
425
- valuesArray.type = type; /* What type of link is this */
426
- valuesArray.target = target; /* Is a new tab/window being opened? */
427
- valuesArray.title = __gtagTrackerGetTitle( el ); /* Try link title, then text content */
428
-
429
- /* only find innerTitle if we need one */
430
- if ( ! valuesArray.label && !valuesArray.title ) {
431
- valuesArray.title = __gtagTrackerGetInnerTitle( el );
432
- }
433
-
434
- /* Let's track everything but internals (that aren't internal-as-externals) and javascript */
435
- if ( type !== 'internal' && type !== 'javascript' ) {
436
-
437
- var __gtagTrackerHitBackRun = false; /* Tracker has not yet run */
438
-
439
- /* HitCallback to open link in same window after tracker */
440
- var __gtagTrackerHitBack = function () {
441
- /* Run the hitback only once */
442
- if ( __gtagTrackerHitBackRun ) {
443
- return;
444
- }
445
- maybePreventBeforeUnload();
446
- __gtagTrackerHitBackRun = true;
447
- window.location.href = link;
448
- };
449
-
450
- var __gtagTrackerNoRedirectExternal = function () {
451
- valuesArray.exit = 'external';
452
- __gtagTrackerNotSend( valuesArray );
453
- };
454
-
455
- var __gtagTrackerNoRedirectInboundAsExternal = function () {
456
- valuesArray.exit = 'internal-as-outbound';
457
- __gtagTrackerNotSend( valuesArray );
458
- };
459
- var __gtagTrackerNoRedirectCrossHostname = function () {
460
- valuesArray.exit = 'cross-hostname';
461
- __gtagTrackerNotSend( valuesArray );
462
- };
463
-
464
- if ( target || type == 'mailto' || type == 'tel' ) { /* If target opens a new window then just track */
465
- if ( type == 'download' ) {
466
- fieldsArray = {
467
- event_category: 'download',
468
- event_label: label || valuesArray.title,
469
- file_extension: valuesArray.extension,
470
- file_name: valuesArray.link.replace(/^.*\//g, ''),
471
- link_text: label || valuesArray.title,
472
- link_url: link,
473
- link_domain: valuesArray.el_hostname,
474
- link_classes: valuesArray.el_classes,
475
- link_id: valuesArray.el_id,
476
- };
477
- } else if ( type == 'tel' ) {
478
- fieldsArray = {
479
- event_category: 'tel',
480
- event_label: label || valuesArray.title.replace( 'tel:', '' ),
481
- tel_number: link.replace( 'tel:', '' ),
482
- link_text: label || valuesArray.title,
483
- link_url: link,
484
- link_classes: valuesArray.el_classes,
485
- link_id: valuesArray.el_id,
486
- };
487
- } else if ( type == 'mailto' ) {
488
- fieldsArray = {
489
- event_category: 'mailto',
490
- event_label: label || valuesArray.title.replace( 'mailto:', '' ),
491
- email_address: link.replace( 'mailto:', '' ),
492
- link_text: label || valuesArray.title.replace( 'mailto:', ''),
493
- link_url: link,
494
- link_classes: valuesArray.el_classes,
495
- link_id: valuesArray.el_id,
496
- };
497
- } else if ( type == 'internal-as-outbound' ) {
498
- fieldsArray = {
499
- event_category: internalAsOutboundCategory,
500
- event_label: label || valuesArray.title,
501
- event_name: 'click',
502
- is_affiliate_link: true,
503
- affiliate_label: internalAsOutboundCategory.replace('outbound-link-', ''),
504
- link_text: label || valuesArray.title,
505
- link_url: link,
506
- link_domain: valuesArray.el_hostname,
507
- link_classes: valuesArray.el_classes,
508
- link_id: valuesArray.el_id,
509
- outbound: true,
510
- };
511
- } else if ( type == 'external' ) {
512
- fieldsArray = {
513
- event_category: 'outbound-link',
514
- event_label: label || valuesArray.title,
515
- is_affiliate_link: false,
516
- link_text: label || valuesArray.title,
517
- link_url: link,
518
- link_domain: valuesArray.el_hostname,
519
- link_classes: valuesArray.el_classes,
520
- link_id: valuesArray.el_id,
521
- outbound: true,
522
- };
523
- } else if ( type == 'cross-hostname' ) {
524
- fieldsArray = {
525
- event_category: 'cross-hostname',
526
- event_label: label || valuesArray.title,
527
- link_text: label || valuesArray.title,
528
- link_url: link,
529
- link_domain: valuesArray.el_hostname,
530
- link_classes: valuesArray.el_classes,
531
- link_id: valuesArray.el_id,
532
- };
533
- }
534
-
535
- if ( fieldsArray ) {
536
- __gtagTrackerSendDual( 'event', action || link, fieldsArray, valuesArray );
537
- } else {
538
- if ( type && type != 'internal' ) {
539
- fieldsArray = {
540
- event_category: type,
541
- event_label: label || valuesArray.title,
542
- link_text: label || valuesArray.title,
543
- link_url: link,
544
- link_domain: valuesArray.el_hostname,
545
- link_classes: valuesArray.el_classes,
546
- link_id: valuesArray.el_id,
547
- };
548
-
549
- __gtagTrackerSendDual( 'event', action || link, fieldsArray, valuesArray );
550
- } else {
551
- valuesArray.exit = 'type';
552
- __gtagTrackerNotSend( valuesArray );
553
- }
554
- }
555
- } else {
556
- /* Prevent standard click, track then open */
557
- if ( type != 'cross-hostname' && type != 'external' && type != 'internal-as-outbound' ) {
558
- if ( !event.defaultPrevented ) {
559
- if ( event.preventDefault ) {
560
- event.preventDefault();
561
- } else {
562
- event.returnValue = false;
563
- }
564
- }
565
- }
566
-
567
- if ( type == 'download' ) {
568
- fieldsArray = {
569
- event_category: 'download',
570
- event_label: label || valuesArray.title,
571
- event_callback: __gtagTrackerHitBack,
572
- file_extension: valuesArray.extension,
573
- file_name: valuesArray.link.replace(/^.*\//g, ''),
574
- link_text: label || valuesArray.title,
575
- link_url: link,
576
- link_domain: valuesArray.el_hostname,
577
- link_classes: valuesArray.el_classes,
578
- link_id: valuesArray.el_id,
579
- };
580
-
581
- __gtagTrackerSendDual( 'event', action || link, fieldsArray, valuesArray );
582
- } else if ( type == 'internal-as-outbound' ) {
583
- beforeUnloadChanged = true;
584
- window.onbeforeunload = function ( e ) {
585
- if ( !event.defaultPrevented ) {
586
- if ( event.preventDefault ) {
587
- event.preventDefault();
588
- } else {
589
- event.returnValue = false;
590
- }
591
- }
592
-
593
- fieldsArray = {
594
- event_category: internalAsOutboundCategory,
595
- event_label: label || valuesArray.title,
596
- event_callback: __gtagTrackerHitBack,
597
- is_affiliate_link: true,
598
- affiliate_label: internalAsOutboundCategory.replace('outbound-link-', ''),
599
- link_text: label || valuesArray.title,
600
- link_url: link,
601
- link_domain: valuesArray.el_hostname,
602
- link_classes: valuesArray.el_classes,
603
- link_id: valuesArray.el_id,
604
- outbound: true,
605
- };
606
-
607
- if ( navigator.sendBeacon ) {
608
- fieldsArray.transport = 'beacon';
609
- }
610
-
611
- __gtagTrackerSendDual( 'event', action || link, fieldsArray, valuesArray );
612
-
613
- setTimeout( __gtagTrackerHitBack, 1000 );
614
- };
615
- } else if ( type == 'external' ) {
616
- beforeUnloadChanged = true;
617
- window.onbeforeunload = function ( e ) {
618
- if ( !event.defaultPrevented ) {
619
- if ( event.preventDefault ) {
620
- event.preventDefault();
621
- } else {
622
- event.returnValue = false;
623
- }
624
- }
625
-
626
- fieldsArray = {
627
- event_category: 'outbound-link',
628
- event_label: label || valuesArray.title,
629
- event_callback: __gtagTrackerHitBack,
630
- is_affiliate_link: false,
631
- link_text: label || valuesArray.title,
632
- link_url: link,
633
- link_domain: valuesArray.el_hostname,
634
- link_classes: valuesArray.el_classes,
635
- link_id: valuesArray.el_id,
636
- outbound: true,
637
- };
638
-
639
- if ( navigator.sendBeacon ) {
640
- fieldsArray.transport = 'beacon';
641
- }
642
-
643
- __gtagTrackerSendDual( 'event', action || link, fieldsArray, valuesArray );
644
- setTimeout( __gtagTrackerHitBack, 1000 );
645
- };
646
- } else if ( type == 'cross-hostname' ) {
647
- beforeUnloadChanged = true;
648
- window.onbeforeunload = function ( e ) {
649
- if ( !event.defaultPrevented ) {
650
- if ( event.preventDefault ) {
651
- event.preventDefault();
652
- } else {
653
- event.returnValue = false;
654
- }
655
- }
656
-
657
- fieldsArray = {
658
- event_category: 'cross-hostname',
659
- event_label: label || valuesArray.title,
660
- event_callback: __gtagTrackerHitBack,
661
- link_text: label || valuesArray.title,
662
- link_url: link,
663
- link_domain: valuesArray.el_hostname,
664
- link_classes: valuesArray.el_classes,
665
- link_id: valuesArray.el_id,
666
- };
667
-
668
- if ( navigator.sendBeacon ) {
669
- fieldsArray.transport = 'beacon';
670
- }
671
-
672
- __gtagTrackerSendDual( 'event', action || link, fieldsArray, valuesArray );
673
- setTimeout( __gtagTrackerHitBack, 1000 );
674
- };
675
- } else {
676
- if ( type && type !== 'internal' ) {
677
- fieldsArray = {
678
- event_category: type,
679
- event_label: label || valuesArray.title,
680
- event_callback: __gtagTrackerHitBack,
681
- link_text: label || valuesArray.title,
682
- link_url: link,
683
- link_domain: valuesArray.el_hostname,
684
- link_classes: valuesArray.el_classes,
685
- link_id: valuesArray.el_id,
686
- };
687
-
688
- __gtagTrackerSendDual( 'event', action || link, fieldsArray, valuesArray );
689
- } else {
690
- valuesArray.exit = 'type';
691
- __gtagTrackerNotSend( valuesArray );
692
- }
693
- }
694
-
695
- if ( type != 'external' && type != 'cross-hostname' && type != 'internal-as-outbound' ) {
696
- /* Run event_callback again if GA takes longer than 1 second */
697
- setTimeout( __gtagTrackerHitBack, 1000 );
698
- } else {
699
- if ( type == 'external' ) {
700
- setTimeout( __gtagTrackerNoRedirectExternal, 1100 );
701
- } else if ( type == 'cross-hostname' ) {
702
- setTimeout( __gtagTrackerNoRedirectCrossHostname, 1100 );
703
- } else {
704
- setTimeout( __gtagTrackerNoRedirectInboundAsExternal, 1100 );
705
- }
706
- }
707
-
708
- // Clear out the beforeunload event if it was set to avoid sending false events.
709
- setTimeout( maybePreventBeforeUnload, 100 );
710
- }
711
- } else {
712
- maybePreventBeforeUnload();
713
- valuesArray.exit = 'internal';
714
- __gtagTrackerNotSend( valuesArray );
715
- }
716
- } else {
717
- valuesArray.exit = 'notlink';
718
- __gtagTrackerNotSend( valuesArray );
719
- }
720
- }
721
-
722
- var prevHash = window.location.hash;
723
-
724
- function __gtagTrackerHashChangeEvent() {
725
- /* Todo: Ready this section for JS unit testing */
726
- if ( exactmetrics_frontend.hash_tracking === "true" && prevHash != window.location.hash && ( exactmetrics_frontend.ua || exactmetrics_frontend.v4_id ) ) {
727
- prevHash = window.location.hash;
728
- if ( exactmetrics_frontend.ua ) {
729
- __gtagTracker( 'config', exactmetrics_frontend.ua, {
730
- page_path: location.pathname + location.search + location.hash,
731
- } );
732
- }
733
-
734
- if ( exactmetrics_frontend.v4_id ) {
735
- __gtagTracker( 'config', exactmetrics_frontend.v4_id, {
736
- page_path: location.pathname + location.search + location.hash,
737
- } );
738
- }
739
- __gtagTrackerLog( "Hash change to: " + location.pathname + location.search + location.hash );
740
- } else {
741
- __gtagTrackerLog( "Hash change to (untracked): " + location.pathname + location.search + location.hash );
742
- }
743
- }
744
-
745
- function maybePreventBeforeUnload() {
746
- if ( beforeUnloadChanged ) {
747
- window.onbeforeunload = null;
748
- }
749
- }
750
-
751
- /* Attach the event to all clicks in the document after page has loaded */
752
- var __gtagTrackerWindow = window;
753
- if ( __gtagTrackerWindow.addEventListener ) {
754
- __gtagTrackerWindow.addEventListener(
755
- "load",
756
- function () {
757
- document.body.addEventListener(
758
- "click",
759
- __gtagTrackerClickEvent,
760
- false
761
- );
762
- },
763
- false
764
- );
765
- window.addEventListener( "hashchange", __gtagTrackerHashChangeEvent, false );
766
- } else {
767
- if ( __gtagTrackerWindow.attachEvent ) {
768
- __gtagTrackerWindow.attachEvent(
769
- "onload",
770
- function () {
771
- document.body.attachEvent( "onclick", __gtagTrackerClickEvent );
772
- }
773
- );
774
- window.attachEvent( "onhashchange", __gtagTrackerHashChangeEvent );
775
- }
776
- }
777
-
778
- if ( typeof String.prototype.endsWith !== 'function' ) {
779
- String.prototype.endsWith = function ( suffix ) {
780
- return this.indexOf( suffix, this.length - suffix.length ) !== - 1;
781
- };
782
- }
783
- if ( typeof String.prototype.startsWith !== 'function' ) {
784
- String.prototype.startsWith = function ( prefix ) {
785
- return this.indexOf( prefix ) === 0;
786
- };
787
- }
788
-
789
- if ( typeof Array.prototype.lastIndexOf !== 'function' ) {
790
- Array.prototype.lastIndexOf = function ( searchElement /*, fromIndex*/ ) {
791
- 'use strict';
792
-
793
- if ( this === void 0 || this === null ) {
794
- throw new TypeError();
795
- }
796
-
797
- var n, k,
798
- t = Object( this ),
799
- len = t.length >>> 0; /* jshint ignore:line */
800
- if ( len === 0 ) {
801
- return - 1;
802
- }
803
-
804
- n = len - 1;
805
- if ( arguments.length > 1 ) {
806
- n = Number( arguments[1] );
807
- if ( n != n ) {
808
- n = 0;
809
- } else if ( n != 0 && n != (
810
- 1 / 0
811
- ) && n != - (
812
- 1 / 0
813
- ) ) { /* jshint ignore:line */
814
- n = (
815
- n > 0 || - 1
816
- ) * Math.floor( Math.abs( n ) );
817
- }
818
- }
819
-
820
- for ( k = n >= 0 ? Math.min( n, len - 1 ) : len - Math.abs( n ); k >= 0; k -- ) {
821
- if ( k in t && t[k] === searchElement ) {
822
- return k;
823
- }
824
- }
825
- return - 1;
826
- };
827
- }
828
- };
829
- var ExactMetricsObject = new ExactMetrics();
1
+ /**
2
+ * Developer's Notice:
3
+ *
4
+ * Note: JS in this file (and this file itself) is not guaranteed backwards compatibility. JS can be added, changed or removed at any time without notice.
5
+ * For more information see the `Backwards Compatibility Guidelines for Developers` section of the README.md file.
6
+ */
7
+ /**
8
+ * Handles:
9
+ * - JS Events handling
10
+ *
11
+ * @since 7.15.0
12
+ */
13
+ var ExactMetrics = function () {
14
+ /* ExactMetrics JS events tracking works on all major browsers, including IE starting at IE 7, via polyfills for any major JS function used that
15
+ is not supported by at least 95% of the global and/or US browser marketshare. Currently, IE 7 & 8 which as of 2/14/17 have under 0.25% global marketshare, require
16
+ us to polyfill Array.prototype.lastIndexOf, and if they continue to drop, we might remove this polyfill at some point. In that case note that events tracking
17
+ for IE 7/8 will continue to work, with the exception of events tracking of downloads. */
18
+ var lastClicked = [];
19
+ var internalAsOutboundCategory = '';
20
+ var beforeUnloadChanged = false;
21
+
22
+ this.setLastClicked = function ( valuesArray, fieldsArray, tracked ) {
23
+ valuesArray = typeof valuesArray !== 'undefined' ? valuesArray : [];
24
+ fieldsArray = typeof fieldsArray !== 'undefined' ? fieldsArray : [];
25
+ tracked = typeof tracked !== 'undefined' ? tracked : false;
26
+
27
+ lastClicked.valuesArray = valuesArray;
28
+ lastClicked.fieldsArray = fieldsArray;
29
+ };
30
+
31
+ this.getLastClicked = function () {
32
+ return lastClicked;
33
+ };
34
+
35
+ this.setInternalAsOutboundCategory = function ( category ) {
36
+ internalAsOutboundCategory = category;
37
+ };
38
+
39
+ this.getInternalAsOutboundCategory = function () {
40
+ return internalAsOutboundCategory;
41
+ };
42
+
43
+ this.sendEvent = function ( type, action, fieldsArray ) {
44
+ __gtagTrackerSend( type, action, fieldsArray, [] );
45
+ };
46
+
47
+ function __gtagTrackerIsDebug() {
48
+ if ( window.exactmetrics_debug_mode ) {
49
+ return true;
50
+ } else {
51
+ return false;
52
+ }
53
+ }
54
+
55
+ function cloneFields( fields, allowedKeys, disallowedKeys ) {
56
+ var clone = {};
57
+
58
+ for ( var key in fields ) {
59
+ if ( ! fields.hasOwnProperty( key ) ) {
60
+ continue
61
+ }
62
+
63
+ if ( allowedKeys && allowedKeys.indexOf( key ) === -1 ) {
64
+ continue
65
+ }
66
+
67
+ if ( disallowedKeys && disallowedKeys.indexOf( key ) > -1 ) {
68
+ continue
69
+ }
70
+
71
+ clone[ key ] = fields[ key ];
72
+ }
73
+
74
+ return clone;
75
+ }
76
+
77
+ function __gtagMaybeTrackerV4( type, action, fieldsArray ) {
78
+ if ( ! exactmetrics_frontend.v4_id || type !== 'event' ) {
79
+ return;
80
+ }
81
+
82
+ var eventCategory = fieldsArray.event_category || '';
83
+
84
+ var fieldsToRemove = [
85
+ 'event_name',
86
+ 'event_category',
87
+ 'event_label',
88
+ 'value',
89
+ ];
90
+
91
+ var fields = cloneFields( fieldsArray, null, fieldsToRemove );
92
+ fields.action = action;
93
+
94
+ var eventMap = {
95
+ 'outbound-link': 'click',
96
+ 'download': 'file_download',
97
+ };
98
+
99
+ __gtagTracker( type, eventMap[ eventCategory ] || eventCategory.replace( '-', '_' ), fields );
100
+ }
101
+
102
+ function __gtagMaybeTrackerUA( type, action, fieldsArray ) {
103
+ if ( ! exactmetrics_frontend.ua ) {
104
+ return;
105
+ }
106
+
107
+ var allowedFields = [
108
+ 'event_category',
109
+ 'event_label',
110
+ 'value',
111
+ ];
112
+
113
+ var uaFields = cloneFields(fieldsArray, allowedFields);
114
+ uaFields.send_to = exactmetrics_frontend.ua
115
+
116
+ __gtagTracker( type, action, uaFields );
117
+ }
118
+
119
+ function __gtagTrackerSendDual( type, action, fieldsArray, valuesArray ) {
120
+ type = typeof type !== 'undefined' ? type : 'event';
121
+ action = typeof action !== 'undefined' ? action : '';
122
+ valuesArray = typeof valuesArray !== 'undefined' ? valuesArray : [];
123
+ fieldsArray = typeof fieldsArray !== 'undefined' ? fieldsArray : {};
124
+
125
+ __gtagMaybeTrackerUA( type, action, fieldsArray );
126
+ __gtagMaybeTrackerV4( type, action, fieldsArray );
127
+
128
+ lastClicked.valuesArray = valuesArray;
129
+ lastClicked.fieldsArray = fieldsArray;
130
+ lastClicked.fieldsArray.event_action = action;
131
+ lastClicked.tracked = true;
132
+ __gtagTrackerLog( 'Tracked: ' + valuesArray.type );
133
+ __gtagTrackerLog( lastClicked );
134
+ }
135
+
136
+ /**
137
+ * This attempts to be compatible with the gtag function.
138
+ *
139
+ * @see https://developers.google.com/analytics/devguides/collection/gtagjs
140
+ * @param type string Type of request, event, timing, config.
141
+ * @param action string Event action or UA for config.
142
+ * @param fieldsArray object The configuration object.
143
+ * @param valuesArray object The values for the log.
144
+ * @private
145
+ */
146
+ function __gtagTrackerSend( type, action, fieldsArray, valuesArray ) {
147
+ type = typeof type !== 'undefined' ? type : 'event';
148
+ action = typeof action !== 'undefined' ? action : '';
149
+ valuesArray = typeof valuesArray !== 'undefined' ? valuesArray : [];
150
+ fieldsArray = typeof fieldsArray !== 'undefined' ? fieldsArray : {};
151
+
152
+ __gtagTracker( type, action, fieldsArray );
153
+
154
+ lastClicked.valuesArray = valuesArray;
155
+ lastClicked.fieldsArray = fieldsArray;
156
+ lastClicked.fieldsArray.event_action = action;
157
+ lastClicked.tracked = true;
158
+ __gtagTrackerLog( 'Tracked: ' + valuesArray.type );
159
+ __gtagTrackerLog( lastClicked );
160
+ }
161
+
162
+ function __gtagTrackerNotSend( valuesArray ) {
163
+ valuesArray = typeof valuesArray !== 'undefined' ? valuesArray : [];
164
+
165
+ lastClicked.valuesArray = valuesArray;
166
+ lastClicked.fieldsArray = [];
167
+ lastClicked.tracked = false;
168
+ __gtagTrackerLog( 'Not Tracked: ' + valuesArray.exit );
169
+ __gtagTrackerLog( lastClicked );
170
+ }
171
+
172
+ function __gtagTrackerLog( message ) {
173
+ if ( __gtagTrackerIsDebug() ) {
174
+ console.dir( message );
175
+ }
176
+ }
177
+
178
+ function __gtagTrackerStringTrim( x ) {
179
+ return x.replace( /^\s+|\s+$/gm, '' );
180
+ }
181
+
182
+ function __gtagTrackerGetDomain() {
183
+ var i = 0, currentdomain = document.domain, p = currentdomain.split( '.' ), s = '_gd' + (
184
+ new Date()
185
+ ).getTime();
186
+ while ( i < ( p.length - 1 ) && document.cookie.indexOf( s + '=' + s ) == - 1 ) {
187
+ currentdomain = p.slice( - 1 - (
188
+ ++ i
189
+ ) ).join( '.' );
190
+ document.cookie = s + "=" + s + ";domain=" + currentdomain + ";";
191
+ }
192
+ document.cookie = s + "=;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=" + currentdomain + ";";
193
+ return currentdomain;
194
+ }
195
+
196
+ function __gtagTrackerGetExtension( extension ) {
197
+ extension = extension.toString();
198
+ extension = extension.substring( 0, (
199
+ extension.indexOf( "#" ) == - 1
200
+ ) ? extension.length : extension.indexOf( "#" ) ); /* Remove the anchor at the end, if there is one */
201
+ extension = extension.substring( 0, (
202
+ extension.indexOf( "?" ) == - 1
203
+ ) ? extension.length : extension.indexOf( "?" ) ); /* Remove the query after the file name, if there is one */
204
+ extension = extension.substring( extension.lastIndexOf( "/" ) + 1, extension.length ); /* Remove everything before the last slash in the path */
205
+ if ( extension.length > 0 && extension.indexOf( '.' ) !== - 1 ) { /* If there's a period left in the URL, then there's a extension. Else it is not a extension. */
206
+ extension = extension.substring( extension.indexOf( "." ) + 1 ); /* Remove everything but what's after the first period */
207
+ return extension;
208
+ } else {
209
+ return "";
210
+ }
211
+ }
212
+
213
+ function __gtagTrackerTrackedClick( event ) {
214
+ return event.which == 1 || event.which == 2 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey;
215
+ }
216
+
217
+ function __gtagTrackerGetDownloadExtensions() {
218
+ var download_extensions = [];
219
+ if ( typeof exactmetrics_frontend.download_extensions == 'string' ) {
220
+ download_extensions = exactmetrics_frontend.download_extensions.split( "," );
221
+ }
222
+ return download_extensions;
223
+ }
224
+
225
+ function __gtagTrackerGetInboundPaths() {
226
+ var inbound_paths = [];
227
+ if ( typeof exactmetrics_frontend.inbound_paths == 'string' ) {
228
+ inbound_paths = JSON.parse( exactmetrics_frontend.inbound_paths );
229
+ }
230
+
231
+ return inbound_paths;
232
+ }
233
+
234
+ function __gtagTrackerTrackedClickType( event ) {
235
+ if ( event.which == 1 ) {
236
+ return 'event.which=1';
237
+ } else if ( event.which == 2 ) {
238
+ return 'event.which=2';
239
+ } else if ( event.metaKey ) {
240
+ return 'metaKey';
241
+ } else if ( event.ctrlKey ) {
242
+ return 'ctrlKey';
243
+ } else if ( event.shiftKey ) {
244
+ return 'shiftKey';
245
+ } else if ( event.altKey ) {
246
+ return 'altKey';
247
+ } else {
248
+ return '';
249
+ }
250
+ }
251
+
252
+ function __gtagTrackerLinkType( el ) {
253
+ var download_extensions = __gtagTrackerGetDownloadExtensions();
254
+ var inbound_paths = __gtagTrackerGetInboundPaths();
255
+ var type = 'unknown';
256
+ var link = el.href;
257
+ var extension = __gtagTrackerGetExtension( el.href );
258
+ var currentdomain = __gtagTrackerGetDomain();
259
+ var hostname = el.hostname;
260
+ var protocol = el.protocol;
261
+ var pathname = el.pathname;
262
+ link = link.toString();
263
+ var index, len;
264
+ var category = el.getAttribute( "data-vars-ga-category" );
265
+
266
+ if ( category ) {
267
+ return category;
268
+ }
269
+
270
+ if ( link.match( /^javascript\:/i ) ) {
271
+ type = 'internal'; /* if it's a JS link, it's internal */
272
+ } else if ( protocol && protocol.length > 0 && (
273
+ __gtagTrackerStringTrim( protocol ) == 'tel' || __gtagTrackerStringTrim( protocol ) == 'tel:'
274
+ ) ) { /* If it's a telephone link */
275
+ type = "tel";
276
+ } else if ( protocol && protocol.length > 0 && (
277
+ __gtagTrackerStringTrim( protocol ) == 'mailto' || __gtagTrackerStringTrim( protocol ) == 'mailto:'
278
+ ) ) { /* If it's a email */
279
+ type = "mailto";
280
+ } else if ( hostname && currentdomain && hostname.length > 0 && currentdomain.length > 0 && !hostname.endsWith( '.' + currentdomain ) && hostname !== currentdomain ) { /* If it's a outbound */
281
+ type = "external";
282
+ } else if ( pathname && JSON.stringify( inbound_paths ) != "{}" && pathname.length > 0 ) { /* If it's an internal as outbound */
283
+ var inbound_paths_length = inbound_paths.length;
284
+ for ( var inbound_paths_index = 0; inbound_paths_index < inbound_paths_length; inbound_paths_index ++ ) {
285
+ if ( inbound_paths[inbound_paths_index].path && inbound_paths[inbound_paths_index].label && inbound_paths[inbound_paths_index].path.length > 0 && inbound_paths[inbound_paths_index].label.length > 0 && pathname.startsWith( inbound_paths[inbound_paths_index].path ) ) {
286
+ type = "internal-as-outbound";
287
+ internalAsOutboundCategory = "outbound-link-" + inbound_paths[inbound_paths_index].label;
288
+ break;
289
+ }
290
+ }
291
+ /* Enable window.exactmetrics_experimental_mode at your own risk. We might eventually remove it. Also you may/can/will burn through GA quota for your property quickly. */
292
+ } else if ( hostname && window.exactmetrics_experimental_mode && hostname.length > 0 && document.domain.length > 0 && hostname !== document.domain ) { /* If it's a cross-hostname link */
293
+ type = "cross-hostname";
294
+ }
295
+
296
+ if ( extension && (
297
+ type === 'unknown' || 'external' === type
298
+ ) && download_extensions.length > 0 && extension.length > 0 ) { /* If it's a download */
299
+ for ( index = 0, len = download_extensions.length; index < len; ++ index ) {
300
+ if ( download_extensions[index].length > 0 && (
301
+ link.endsWith( download_extensions[index] ) || download_extensions[index] == extension
302
+ ) ) {
303
+ type = "download";
304
+ break;
305
+ }
306
+ }
307
+ }
308
+
309
+ if ( type === 'unknown' ) {
310
+ type = 'internal';
311
+ }
312
+ return type;
313
+ }
314
+
315
+ function __gtagTrackerLinkTarget( el, event ) {
316
+
317
+ /* Is actual target set and not _(self|parent|top)? */
318
+ var target = (
319
+ el.target && !el.target.match( /^_(self|parent|top)$/i )
320
+ ) ? el.target : false;
321
+
322
+ /* Assume a target if Ctrl|shift|meta-click */
323
+ if ( event.ctrlKey || event.shiftKey || event.metaKey || event.which == 2 ) {
324
+ target = "_blank";
325
+ }
326
+ return target;
327
+ }
328
+
329
+ function __gtagTrackerGetTitle( el ) {
330
+ if ( el.getAttribute( "data-vars-ga-label" ) && el.getAttribute( "data-vars-ga-label" ).replace( /\n/ig, '' ) ) {
331
+ return el.getAttribute( "data-vars-ga-label" ).replace( /\n/ig, '' );
332
+ } else if ( el.title && el.title.replace( /\n/ig, '' ) ) {
333
+ return el.title.replace( /\n/ig, '' );
334
+ } else if ( el.innerText && el.innerText.replace( /\n/ig, '' ) ) {
335
+ return el.innerText.replace( /\n/ig, '' );
336
+ } else if ( el.getAttribute( 'aria-label' ) && el.getAttribute( 'aria-label' ).replace( /\n/ig, '' ) ) {
337
+ return el.getAttribute( 'aria-label' ).replace( /\n/ig, '' );
338
+ } else if ( el.alt && el.alt.replace( /\n/ig, '' ) ) {
339
+ return el.alt.replace( /\n/ig, '' );
340
+ } else if ( el.textContent && el.textContent.replace( /\n/ig, '' ) ) {
341
+ return el.textContent.replace( /\n/ig, '' );
342
+ } else {
343
+ return undefined;
344
+ }
345
+ }
346
+
347
+ function __gtagTrackerGetInnerTitle( el ) {
348
+ var children = el.children;
349
+ var count = 0;
350
+ var child;
351
+ var value;
352
+ for ( var i = 0; i < children.length; i ++ ) {
353
+ child = children[i];
354
+ value = __gtagTrackerGetTitle( child );
355
+ if ( value ) {
356
+ return value;
357
+ }
358
+ /* max search 100 elements to ensure performance */
359
+ if ( count == 99 ) {
360
+ return undefined;
361
+ }
362
+ count ++;
363
+ }
364
+ return undefined;
365
+ }
366
+
367
+ function __gtagTrackerClickEvent( event ) {
368
+ var el = event.srcElement || event.target;
369
+ var valuesArray = [];
370
+ var fieldsArray;
371
+
372
+ /* Start Values Array */
373
+ valuesArray.el = el;
374
+ valuesArray.click_type = __gtagTrackerTrackedClickType( event );
375
+
376
+ /* If GA is blocked or not loaded, or not main|middle|touch click then don't track */
377
+ if ( 'undefined' === typeof __gtagTracker || ! __gtagTrackerTrackedClick( event ) ) {
378
+ valuesArray.exit = 'loaded';
379
+ __gtagTrackerNotSend( valuesArray );
380
+ return;
381
+ }
382
+
383
+ /* Loop up the DOM tree through parent elements if clicked element is not a link (eg: an image inside a link) */
384
+ while ( el && (
385
+ typeof el.tagName == 'undefined' || el.tagName.toLowerCase() != 'a' || !el.href
386
+ ) ) {
387
+ el = el.parentNode;
388
+ }
389
+
390
+ /* if a link with valid href has been clicked */
391
+ if ( el && el.href && !el.hasAttribute( 'xlink:href' ) ) {
392
+ var link = el.href; /* What link are we tracking */
393
+ var extension = __gtagTrackerGetExtension( el.href ); /* What extension is this link */
394
+ var download_extensions = __gtagTrackerGetDownloadExtensions(); /* Let's get the extensions to track */
395
+ var inbound_paths = __gtagTrackerGetInboundPaths(); /* Let's get the internal paths to track */
396
+ var home_url = exactmetrics_frontend.home_url; /* Let's get the url to compare for external/internal use */
397
+ var currentdomain = __gtagTrackerGetDomain(); /* What domain are we on? */
398
+ var type = __gtagTrackerLinkType( el ); /* What type of link is this? */
399
+ var target = __gtagTrackerLinkTarget( el, event ); /* Is a new tab/window being opened? */
400
+ var action = el.getAttribute( "data-vars-ga-action" );
401
+ var label = el.getAttribute( "data-vars-ga-label" );
402
+
403
+ /* Element */
404
+ valuesArray.el = el; /* el is an a element so we can parse it */
405
+ valuesArray.el_href = el.href; /* "http://example.com:3000/pathname/?search=test#hash" */
406
+ valuesArray.el_protocol = el.protocol; /* "http:" */
407
+ valuesArray.el_hostname = el.hostname; /* "example.com" */
408
+ valuesArray.el_port = el.port; /* "3000" */
409
+ valuesArray.el_pathname = el.pathname; /* "/pathname/" */
410
+ valuesArray.el_search = el.search; /* "?search=test" */
411
+ valuesArray.el_hash = el.hash; /* "#hash" */
412
+ valuesArray.el_host = el.host; /* "example.com:3000" */
413
+ valuesArray.el_classes = el.getAttribute('class')
414
+ valuesArray.el_id = el.id
415
+
416
+ /* Settings */
417
+ valuesArray.debug_mode = __gtagTrackerIsDebug(); /* "example.com:3000" */
418
+ valuesArray.download_extensions = download_extensions; /* Let's get the extensions to track */
419
+ valuesArray.inbound_paths = inbound_paths; /* Let's get the internal paths to track */
420
+ valuesArray.home_url = home_url; /* Let's get the url to compare for external/internal use */
421
+
422
+ /* Parsed/Logic */
423
+ valuesArray.link = link; /* What link are we tracking */
424
+ valuesArray.extension = extension; /* What extension is this link */
425
+ valuesArray.type = type; /* What type of link is this */
426
+ valuesArray.target = target; /* Is a new tab/window being opened? */
427
+ valuesArray.title = __gtagTrackerGetTitle( el ); /* Try link title, then text content */
428
+
429
+ /* only find innerTitle if we need one */
430
+ if ( ! valuesArray.label && !valuesArray.title ) {
431
+ valuesArray.title = __gtagTrackerGetInnerTitle( el );
432
+ }
433
+
434
+ /* Let's track everything but internals (that aren't internal-as-externals) and javascript */
435
+ if ( type !== 'internal' && type !== 'javascript' ) {
436
+
437
+ var __gtagTrackerHitBackRun = false; /* Tracker has not yet run */
438
+
439
+ /* HitCallback to open link in same window after tracker */
440
+ var __gtagTrackerHitBack = function () {
441
+ /* Run the hitback only once */
442
+ if ( __gtagTrackerHitBackRun ) {
443
+ return;
444
+ }
445
+ maybePreventBeforeUnload();
446
+ __gtagTrackerHitBackRun = true;
447
+ window.location.href = link;
448
+ };
449
+
450
+ var __gtagTrackerNoRedirectExternal = function () {
451
+ valuesArray.exit = 'external';
452
+ __gtagTrackerNotSend( valuesArray );
453
+ };
454
+
455
+ var __gtagTrackerNoRedirectInboundAsExternal = function () {
456
+ valuesArray.exit = 'internal-as-outbound';
457
+ __gtagTrackerNotSend( valuesArray );
458
+ };
459
+ var __gtagTrackerNoRedirectCrossHostname = function () {
460
+ valuesArray.exit = 'cross-hostname';
461
+ __gtagTrackerNotSend( valuesArray );
462
+ };
463
+
464
+ if ( target || type == 'mailto' || type == 'tel' ) { /* If target opens a new window then just track */
465
+ if ( type == 'download' ) {
466
+ fieldsArray = {
467
+ event_category: 'download',
468
+ event_label: label || valuesArray.title,
469
+ file_extension: valuesArray.extension,
470
+ file_name: valuesArray.link.replace(/^.*\//g, ''),
471
+ link_text: label || valuesArray.title,
472
+ link_url: link,
473
+ link_domain: valuesArray.el_hostname,
474
+ link_classes: valuesArray.el_classes,
475
+ link_id: valuesArray.el_id,
476
+ };
477
+ } else if ( type == 'tel' ) {
478
+ fieldsArray = {
479
+ event_category: 'tel',
480
+ event_label: label || valuesArray.title.replace( 'tel:', '' ),
481
+ tel_number: link.replace( 'tel:', '' ),
482
+ link_text: label || valuesArray.title,
483
+ link_url: link,
484
+ link_classes: valuesArray.el_classes,
485
+ link_id: valuesArray.el_id,
486
+ };
487
+ } else if ( type == 'mailto' ) {
488
+ fieldsArray = {
489
+ event_category: 'mailto',
490
+ event_label: label || valuesArray.title.replace( 'mailto:', '' ),
491
+ email_address: link.replace( 'mailto:', '' ),
492
+ link_text: label || valuesArray.title.replace( 'mailto:', ''),
493
+ link_url: link,
494
+ link_classes: valuesArray.el_classes,
495
+ link_id: valuesArray.el_id,
496
+ };
497
+ } else if ( type == 'internal-as-outbound' ) {
498
+ fieldsArray = {
499
+ event_category: internalAsOutboundCategory,
500
+ event_label: label || valuesArray.title,
501
+ event_name: 'click',
502
+ is_affiliate_link: true,
503
+ affiliate_label: internalAsOutboundCategory.replace('outbound-link-', ''),
504
+ link_text: label || valuesArray.title,
505
+ link_url: link,
506
+ link_domain: valuesArray.el_hostname,
507
+ link_classes: valuesArray.el_classes,
508
+ link_id: valuesArray.el_id,
509
+ outbound: true,
510
+ };
511
+ } else if ( type == 'external' ) {
512
+ fieldsArray = {
513
+ event_category: 'outbound-link',
514
+ event_label: label || valuesArray.title,
515
+ is_affiliate_link: false,
516
+ link_text: label || valuesArray.title,
517
+ link_url: link,
518
+ link_domain: valuesArray.el_hostname,
519
+ link_classes: valuesArray.el_classes,
520
+ link_id: valuesArray.el_id,
521
+ outbound: true,
522
+ };
523
+ } else if ( type == 'cross-hostname' ) {
524
+ fieldsArray = {
525
+ event_category: 'cross-hostname',
526
+ event_label: label || valuesArray.title,
527
+ link_text: label || valuesArray.title,
528
+ link_url: link,
529
+ link_domain: valuesArray.el_hostname,
530
+ link_classes: valuesArray.el_classes,
531
+ link_id: valuesArray.el_id,
532
+ };
533
+ }
534
+
535
+ if ( fieldsArray ) {
536
+ __gtagTrackerSendDual( 'event', action || link, fieldsArray, valuesArray );
537
+ } else {
538
+ if ( type && type != 'internal' ) {
539
+ fieldsArray = {
540
+ event_category: type,
541
+ event_label: label || valuesArray.title,
542
+ link_text: label || valuesArray.title,
543
+ link_url: link,
544
+ link_domain: valuesArray.el_hostname,
545
+ link_classes: valuesArray.el_classes,
546
+ link_id: valuesArray.el_id,
547
+ };
548
+
549
+ __gtagTrackerSendDual( 'event', action || link, fieldsArray, valuesArray );
550
+ } else {
551
+ valuesArray.exit = 'type';
552
+ __gtagTrackerNotSend( valuesArray );
553
+ }
554
+ }
555
+ } else {
556
+ /* Prevent standard click, track then open */
557
+ if ( type != 'cross-hostname' && type != 'external' && type != 'internal-as-outbound' ) {
558
+ if ( !event.defaultPrevented ) {
559
+ if ( event.preventDefault ) {
560
+ event.preventDefault();
561
+ } else {
562
+ event.returnValue = false;
563
+ }
564
+ }
565
+ }
566
+
567
+ if ( type == 'download' ) {
568
+ fieldsArray = {
569
+ event_category: 'download',
570
+ event_label: label || valuesArray.title,
571
+ event_callback: __gtagTrackerHitBack,
572
+ file_extension: valuesArray.extension,
573
+ file_name: valuesArray.link.replace(/^.*\//g, ''),
574
+ link_text: label || valuesArray.title,
575
+ link_url: link,
576
+ link_domain: valuesArray.el_hostname,
577
+ link_classes: valuesArray.el_classes,
578
+ link_id: valuesArray.el_id,
579
+ };
580
+
581
+ __gtagTrackerSendDual( 'event', action || link, fieldsArray, valuesArray );
582
+ } else if ( type == 'internal-as-outbound' ) {
583
+ beforeUnloadChanged = true;
584
+ window.onbeforeunload = function ( e ) {
585
+ if ( !event.defaultPrevented ) {
586
+ if ( event.preventDefault ) {
587
+ event.preventDefault();
588
+ } else {
589
+ event.returnValue = false;
590
+ }
591
+ }
592
+
593
+ fieldsArray = {
594
+ event_category: internalAsOutboundCategory,
595
+ event_label: label || valuesArray.title,
596
+ event_callback: __gtagTrackerHitBack,
597
+ is_affiliate_link: true,
598
+ affiliate_label: internalAsOutboundCategory.replace('outbound-link-', ''),
599
+ link_text: label || valuesArray.title,
600
+ link_url: link,
601
+ link_domain: valuesArray.el_hostname,
602
+ link_classes: valuesArray.el_classes,
603
+ link_id: valuesArray.el_id,
604
+ outbound: true,
605
+ };
606
+
607
+ if ( navigator.sendBeacon ) {
608
+ fieldsArray.transport = 'beacon';
609
+ }
610
+
611
+ __gtagTrackerSendDual( 'event', action || link, fieldsArray, valuesArray );
612
+
613
+ setTimeout( __gtagTrackerHitBack, 1000 );
614
+ };
615
+ } else if ( type == 'external' ) {
616
+ beforeUnloadChanged = true;
617
+ window.onbeforeunload = function ( e ) {
618
+ if ( !event.defaultPrevented ) {
619
+ if ( event.preventDefault ) {
620
+ event.preventDefault();
621
+ } else {
622
+ event.returnValue = false;
623
+ }
624
+ }
625
+
626
+ fieldsArray = {
627
+ event_category: 'outbound-link',
628
+ event_label: label || valuesArray.title,
629
+ event_callback: __gtagTrackerHitBack,
630
+ is_affiliate_link: false,
631
+ link_text: label || valuesArray.title,
632
+ link_url: link,
633
+ link_domain: valuesArray.el_hostname,
634
+ link_classes: valuesArray.el_classes,
635
+ link_id: valuesArray.el_id,
636
+ outbound: true,
637
+ };
638
+
639
+ if ( navigator.sendBeacon ) {
640
+ fieldsArray.transport = 'beacon';
641
+ }
642
+
643
+ __gtagTrackerSendDual( 'event', action || link, fieldsArray, valuesArray );
644
+ setTimeout( __gtagTrackerHitBack, 1000 );
645
+ };
646
+ } else if ( type == 'cross-hostname' ) {
647
+ beforeUnloadChanged = true;
648
+ window.onbeforeunload = function ( e ) {
649
+ if ( !event.defaultPrevented ) {
650
+ if ( event.preventDefault ) {
651
+ event.preventDefault();
652
+ } else {
653
+ event.returnValue = false;
654
+ }
655
+ }
656
+
657
+ fieldsArray = {
658
+ event_category: 'cross-hostname',
659
+ event_label: label || valuesArray.title,
660
+ event_callback: __gtagTrackerHitBack,
661
+ link_text: label || valuesArray.title,
662
+ link_url: link,
663
+ link_domain: valuesArray.el_hostname,
664
+ link_classes: valuesArray.el_classes,
665
+ link_id: valuesArray.el_id,
666
+ };
667
+
668
+ if ( navigator.sendBeacon ) {
669
+ fieldsArray.transport = 'beacon';
670
+ }
671
+
672
+ __gtagTrackerSendDual( 'event', action || link, fieldsArray, valuesArray );
673
+ setTimeout( __gtagTrackerHitBack, 1000 );
674
+ };
675
+ } else {
676
+ if ( type && type !== 'internal' ) {
677
+ fieldsArray = {
678
+ event_category: type,
679
+ event_label: label || valuesArray.title,
680
+ event_callback: __gtagTrackerHitBack,
681
+ link_text: label || valuesArray.title,
682
+ link_url: link,
683
+ link_domain: valuesArray.el_hostname,
684
+ link_classes: valuesArray.el_classes,
685
+ link_id: valuesArray.el_id,
686
+ };
687
+
688
+ __gtagTrackerSendDual( 'event', action || link, fieldsArray, valuesArray );
689
+ } else {
690
+ valuesArray.exit = 'type';
691
+ __gtagTrackerNotSend( valuesArray );
692
+ }
693
+ }
694
+
695
+ if ( type != 'external' && type != 'cross-hostname' && type != 'internal-as-outbound' ) {
696
+ /* Run event_callback again if GA takes longer than 1 second */
697
+ setTimeout( __gtagTrackerHitBack, 1000 );
698
+ } else {
699
+ if ( type == 'external' ) {
700
+ setTimeout( __gtagTrackerNoRedirectExternal, 1100 );
701
+ } else if ( type == 'cross-hostname' ) {
702
+ setTimeout( __gtagTrackerNoRedirectCrossHostname, 1100 );
703
+ } else {
704
+ setTimeout( __gtagTrackerNoRedirectInboundAsExternal, 1100 );
705
+ }
706
+ }
707
+
708
+ // Clear out the beforeunload event if it was set to avoid sending false events.
709
+ setTimeout( maybePreventBeforeUnload, 100 );
710
+ }
711
+ } else {
712
+ maybePreventBeforeUnload();
713
+ valuesArray.exit = 'internal';
714
+ __gtagTrackerNotSend( valuesArray );
715
+ }
716
+ } else {
717
+ valuesArray.exit = 'notlink';
718
+ __gtagTrackerNotSend( valuesArray );
719
+ }
720
+ }
721
+
722
+ var prevHash = window.location.hash;
723
+
724
+ function __gtagTrackerHashChangeEvent() {
725
+ /* Todo: Ready this section for JS unit testing */
726
+ if ( exactmetrics_frontend.hash_tracking === "true" && prevHash != window.location.hash && ( exactmetrics_frontend.ua || exactmetrics_frontend.v4_id ) ) {
727
+ prevHash = window.location.hash;
728
+ if ( exactmetrics_frontend.ua ) {
729
+ __gtagTracker( 'config', exactmetrics_frontend.ua, {
730
+ page_path: location.pathname + location.search + location.hash,
731
+ } );
732
+ }
733
+
734
+ if ( exactmetrics_frontend.v4_id ) {
735
+ __gtagTracker( 'config', exactmetrics_frontend.v4_id, {
736
+ page_path: location.pathname + location.search + location.hash,
737
+ } );
738
+ }
739
+ __gtagTrackerLog( "Hash change to: " + location.pathname + location.search + location.hash );
740
+ } else {
741
+ __gtagTrackerLog( "Hash change to (untracked): " + location.pathname + location.search + location.hash );
742
+ }
743
+ }
744
+
745
+ function maybePreventBeforeUnload() {
746
+ if ( beforeUnloadChanged ) {
747
+ window.onbeforeunload = null;
748
+ }
749
+ }
750
+
751
+ /* Attach the event to all clicks in the document after page has loaded */
752
+ var __gtagTrackerWindow = window;
753
+ if ( __gtagTrackerWindow.addEventListener ) {
754
+ __gtagTrackerWindow.addEventListener(
755
+ "load",
756
+ function () {
757
+ document.body.addEventListener(
758
+ "click",
759
+ __gtagTrackerClickEvent,
760
+ false
761
+ );
762
+ },
763
+ false
764
+ );
765
+ window.addEventListener( "hashchange", __gtagTrackerHashChangeEvent, false );
766
+ } else {
767
+ if ( __gtagTrackerWindow.attachEvent ) {
768
+ __gtagTrackerWindow.attachEvent(
769
+ "onload",
770
+ function () {
771
+ document.body.attachEvent( "onclick", __gtagTrackerClickEvent );
772
+ }
773
+ );
774
+ window.attachEvent( "onhashchange", __gtagTrackerHashChangeEvent );
775
+ }
776
+ }
777
+
778
+ if ( typeof String.prototype.endsWith !== 'function' ) {
779
+ String.prototype.endsWith = function ( suffix ) {
780
+ return this.indexOf( suffix, this.length - suffix.length ) !== - 1;
781
+ };
782
+ }
783
+ if ( typeof String.prototype.startsWith !== 'function' ) {
784
+ String.prototype.startsWith = function ( prefix ) {
785
+ return this.indexOf( prefix ) === 0;
786
+ };
787
+ }
788
+
789
+ if ( typeof Array.prototype.lastIndexOf !== 'function' ) {
790
+ Array.prototype.lastIndexOf = function ( searchElement /*, fromIndex*/ ) {
791
+ 'use strict';
792
+
793
+ if ( this === void 0 || this === null ) {
794
+ throw new TypeError();
795
+ }
796
+
797
+ var n, k,
798
+ t = Object( this ),
799
+ len = t.length >>> 0; /* jshint ignore:line */
800
+ if ( len === 0 ) {
801
+ return - 1;
802
+ }
803
+
804
+ n = len - 1;
805
+ if ( arguments.length > 1 ) {
806
+ n = Number( arguments[1] );
807
+ if ( n != n ) {
808
+ n = 0;
809
+ } else if ( n != 0 && n != (
810
+ 1 / 0
811
+ ) && n != - (
812
+ 1 / 0
813
+ ) ) { /* jshint ignore:line */
814
+ n = (
815
+ n > 0 || - 1
816
+ ) * Math.floor( Math.abs( n ) );
817
+ }
818
+ }
819
+
820
+ for ( k = n >= 0 ? Math.min( n, len - 1 ) : len - Math.abs( n ); k >= 0; k -- ) {
821
+ if ( k in t && t[k] === searchElement ) {
822
+ return k;
823
+ }
824
+ }
825
+ return - 1;
826
+ };
827
+ }
828
+ };
829
+ var ExactMetricsObject = new ExactMetrics();
assets/js/popular-posts.js CHANGED
@@ -1,33 +1,33 @@
1
- var ExactMetrics_Popular_Posts = {
2
-
3
- init: function () {
4
- this.grab_widgets_with_ajax();
5
- },
6
-
7
- grab_widgets_with_ajax: function () {
8
- var xhr = new XMLHttpRequest();
9
- var url = exactmetrics_pp.ajaxurl;
10
- var widgets_jsons = document.querySelectorAll( '.exactmetrics-popular-posts-widget-json' ),
11
- i,
12
- widgets_length = widgets_jsons.length;
13
-
14
- var params = 'action=exactmetrics_popular_posts_get_widget_output&post_id=' + exactmetrics_pp.post_id;
15
-
16
- for ( i = 0; i < widgets_length; ++ i ) {
17
- params += '&data[]=' + widgets_jsons[i].innerHTML
18
- }
19
- xhr.open( 'POST', url );
20
- xhr.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
21
- xhr.onload = function () {
22
- if ( xhr.status === 200 ) {
23
- let rendered_widgets = JSON.parse( xhr.responseText );
24
- for ( i = 0; i < widgets_length; ++ i ) {
25
- widgets_jsons[i].parentElement.innerHTML = rendered_widgets[i];
26
- }
27
- }
28
- };
29
- xhr.send( params );
30
- },
31
- };
32
-
33
- ExactMetrics_Popular_Posts.init();
1
+ var ExactMetrics_Popular_Posts = {
2
+
3
+ init: function () {
4
+ this.grab_widgets_with_ajax();
5
+ },
6
+
7
+ grab_widgets_with_ajax: function () {
8
+ var xhr = new XMLHttpRequest();
9
+ var url = exactmetrics_pp.ajaxurl;
10
+ var widgets_jsons = document.querySelectorAll( '.exactmetrics-popular-posts-widget-json' ),
11
+ i,
12
+ widgets_length = widgets_jsons.length;
13
+
14
+ var params = 'action=exactmetrics_popular_posts_get_widget_output&post_id=' + exactmetrics_pp.post_id;
15
+
16
+ for ( i = 0; i < widgets_length; ++ i ) {
17
+ params += '&data[]=' + widgets_jsons[i].innerHTML
18
+ }
19
+ xhr.open( 'POST', url );
20
+ xhr.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
21
+ xhr.onload = function () {
22
+ if ( xhr.status === 200 ) {
23
+ let rendered_widgets = JSON.parse( xhr.responseText );
24
+ for ( i = 0; i < widgets_length; ++ i ) {
25
+ widgets_jsons[i].parentElement.innerHTML = rendered_widgets[i];
26
+ }
27
+ }
28
+ };
29
+ xhr.send( params );
30
+ },
31
+ };
32
+
33
+ ExactMetrics_Popular_Posts.init();
gadwp.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin URI: https://exactmetrics.com
5
  * Description: Displays Google Analytics Reports and Real-Time Statistics in your Dashboard. Automatically inserts the tracking code in every page of your website.
6
  * Author: ExactMetrics
7
- * Version: 7.2.0
8
  * Requires at least: 4.8.0
9
  * Requires PHP: 5.5
10
  * Author URI: https://exactmetrics.com
@@ -44,7 +44,7 @@ final class ExactMetrics_Lite {
44
  * @access public
45
  * @var string $version Plugin version.
46
  */
47
- public $version = '7.2.0';
48
 
49
  /**
50
  * Plugin file.
@@ -151,6 +151,7 @@ final class ExactMetrics_Lite {
151
  * @since 7.15.0
152
  * @accces public
153
  * @var string
 
154
  */
155
  public $tracking_mode;
156
 
@@ -549,6 +550,7 @@ final class ExactMetrics_Lite {
549
  /**
550
  * Get the tracking mode for the frontend scripts.
551
  *
 
552
  * @return string
553
  */
554
  public function get_tracking_mode() {
4
  * Plugin URI: https://exactmetrics.com
5
  * Description: Displays Google Analytics Reports and Real-Time Statistics in your Dashboard. Automatically inserts the tracking code in every page of your website.
6
  * Author: ExactMetrics
7
+ * Version: 7.3.0
8
  * Requires at least: 4.8.0
9
  * Requires PHP: 5.5
10
  * Author URI: https://exactmetrics.com
44
  * @access public
45
  * @var string $version Plugin version.
46
  */
47
+ public $version = '7.3.0';
48
 
49
  /**
50
  * Plugin file.
151
  * @since 7.15.0
152
  * @accces public
153
  * @var string
154
+ * @deprecated Since 8.3 with the removal of ga compatibility
155
  */
156
  public $tracking_mode;
157
 
550
  /**
551
  * Get the tracking mode for the frontend scripts.
552
  *
553
+ * @deprecated Since 8.3 with the removal of ga compatibility
554
  * @return string
555
  */
556
  public function get_tracking_mode() {
includes/admin/common.php CHANGED
@@ -940,15 +940,15 @@ add_action( 'admin_init', 'exactmetrics_maybe_add_wp_php_version_notification' )
940
  */
941
  function exactmetrics_year_in_review_notification() {
942
 
943
- // Check if dates are between Jan 1st 2021 & 13th Jan 2021.
944
- if ( exactmetrics_date_is_between( '2021-01-01', '2021-01-14' ) ) {
945
 
946
  $notification['id'] = 'exactmetrics_notification_year_in_review';
947
  $notification['type'] = array( 'basic', 'lite', 'master', 'plus', 'pro' );
948
- $notification['start'] = '2021-01-01';
949
- $notification['end'] = '2021-01-14';
950
- $notification['title'] = esc_html__( 'View 2020 Year in Review report!', 'google-analytics-dashboard-for-wp' );
951
- $notification['content'] = esc_html__( 'See how your website performed this year and find tips along the way to help grow even more in 2021!', 'google-analytics-dashboard-for-wp' );
952
  $notification['btns'] = array(
953
  'learn_more' => array(
954
  'url' => esc_url( admin_url( 'admin.php?page=exactmetrics_reports#/year-in-review' ) ),
940
  */
941
  function exactmetrics_year_in_review_notification() {
942
 
943
+ // Check if dates are between Jan 1st 2022 & 13th Jan 2022.
944
+ if ( exactmetrics_date_is_between( '2022-01-01', '2022-01-14' ) ) {
945
 
946
  $notification['id'] = 'exactmetrics_notification_year_in_review';
947
  $notification['type'] = array( 'basic', 'lite', 'master', 'plus', 'pro' );
948
+ $notification['start'] = '2022-01-01';
949
+ $notification['end'] = '2022-01-14';
950
+ $notification['title'] = esc_html__( 'View 2021 Year in Review report!', 'google-analytics-dashboard-for-wp' );
951
+ $notification['content'] = esc_html__( 'See how your website performed this year and find tips along the way to help grow even more in 2022!', 'google-analytics-dashboard-for-wp' );
952
  $notification['btns'] = array(
953
  'learn_more' => array(
954
  'url' => esc_url( admin_url( 'admin.php?page=exactmetrics_reports#/year-in-review' ) ),
includes/admin/em-admin.php CHANGED
@@ -1,25 +1,25 @@
1
- <?php
2
- /**
3
- * Add menu items in admin bar
4
- *
5
- * @since 6.6.0
6
- *
7
- * @param object $wp_admin_bar WP_Admin_Bar instance, passed by reference
8
- */
9
- function exactmetrics_admin_bar_items( $admin_bar ) {
10
- if ( ! current_user_can( 'exactmetrics_view_dashboard' ) ) {
11
- return;
12
- }
13
-
14
- $admin_bar->add_menu( array(
15
- 'id' => 'exactmetrics-analyltics-reports',
16
- 'parent' => 'wp-logo',
17
- 'group' => null,
18
- 'title' => 'ExactMetrics',
19
- 'href' => add_query_arg( 'page', 'exactmetrics_reports', admin_url( 'admin.php' ) ),
20
- 'meta' => array(
21
- 'title' => 'ExactMetrics',
22
- ),
23
- ) );
24
- }
25
- add_action( 'admin_bar_menu', 'exactmetrics_admin_bar_items', 500 );
1
+ <?php
2
+ /**
3
+ * Add menu items in admin bar
4
+ *
5
+ * @since 6.6.0
6
+ *
7
+ * @param object $wp_admin_bar WP_Admin_Bar instance, passed by reference
8
+ */
9
+ function exactmetrics_admin_bar_items( $admin_bar ) {
10
+ if ( ! current_user_can( 'exactmetrics_view_dashboard' ) ) {
11
+ return;
12
+ }
13
+
14
+ $admin_bar->add_menu( array(
15
+ 'id' => 'exactmetrics-analyltics-reports',
16
+ 'parent' => 'wp-logo',
17
+ 'group' => null,
18
+ 'title' => 'ExactMetrics',
19
+ 'href' => add_query_arg( 'page', 'exactmetrics_reports', admin_url( 'admin.php' ) ),
20
+ 'meta' => array(
21
+ 'title' => 'ExactMetrics',
22
+ ),
23
+ ) );
24
+ }
25
+ add_action( 'admin_bar_menu', 'exactmetrics_admin_bar_items', 500 );
includes/admin/notification-event-runner.php CHANGED
@@ -1,189 +1,189 @@
1
- <?php
2
- /**
3
- * Custom runner system for recurring notifications.
4
- *
5
- * @since 7.14
6
- * @author Mircea Sandu
7
- * @package ExactMetrics
8
- */
9
-
10
- /**
11
- * Class ExactMetrics_Notification_Event_Runner
12
- */
13
- class ExactMetrics_Notification_Event_Runner {
14
-
15
- /**
16
- * The instance of the current class.
17
- *
18
- * @var ExactMetrics_Notification_Event_Runner
19
- */
20
- private static $instance;
21
-
22
- /**
23
- * The static notifications registered.
24
- *
25
- * @var array
26
- */
27
- private static $notifications = array();
28
-
29
- /**
30
- * The key used to store in the options table the last run times for notifications.
31
- *
32
- * @var string
33
- */
34
- private $last_run_key = 'exactmetrics_notifications_run';
35
-
36
- /**
37
- * This will be populated on demand with the last run timestamps for all the notifications.
38
- *
39
- * @var array|bool
40
- */
41
- private $last_run;
42
-
43
- /**
44
- * Only update the option if something changed.
45
- *
46
- * @var bool
47
- */
48
- private $changed = false;
49
-
50
- /**
51
- * ExactMetrics_Notification_Event_Runner constructor.
52
- */
53
- private function __construct() {
54
- add_action( 'wp_ajax_exactmetrics_vue_get_notifications', array( $this, 'maybe_add_notifications' ), 9 );
55
- }
56
-
57
- /**
58
- * Get the singleton instance.
59
- *
60
- * @return ExactMetrics_Notification_Event_Runner
61
- */
62
- public static function get_instance() {
63
- if ( ! isset( self::$instance ) ) {
64
- self::$instance = new self();
65
- }
66
-
67
- return self::$instance;
68
- }
69
-
70
- /**
71
- * Get the stored option for the last run times.
72
- *
73
- * @return false|mixed|void
74
- */
75
- public function get_notifications_last_run() {
76
- if ( ! isset( $this->last_run ) ) {
77
- $this->last_run = get_option( $this->last_run_key );
78
- }
79
-
80
- return $this->last_run;
81
- }
82
-
83
- /**
84
- * Update the last run time with a default of time.
85
- *
86
- * @param string $notification_id The notification id to update the last run time for.
87
- * @param string|int $time The timestamp to store the last run time.
88
- */
89
- public function update_last_run( $notification_id, $time = '' ) {
90
- if ( empty( $time ) ) {
91
- $time = time();
92
- }
93
-
94
- $this->last_run[ $notification_id ] = $time;
95
- $this->changed = true;
96
- }
97
-
98
- /**
99
- * Update the option stored in the db with the last run times.
100
- */
101
- public function save_last_runs() {
102
- if ( $this->changed ) {
103
- update_option( $this->last_run_key, $this->last_run, false );
104
- }
105
- }
106
-
107
- /**
108
- * Loop through notifications and check if they should be added based on the time passed since they were last added.
109
- */
110
- public function maybe_add_notifications() {
111
-
112
- if ( ! current_user_can( 'exactmetrics_view_dashboard' ) ) {
113
- // No need to try adding the notification if the user can't see it.
114
- return;
115
- }
116
-
117
- $notifications = $this->get_registered_notifications();
118
- $last_runs = $this->get_notifications_last_run();
119
-
120
- // Loop through registered notifications.
121
- foreach ( $notifications as $notification ) {
122
- /**¬
123
- * The notification instance.
124
- *
125
- * @var ExactMetrics_Notification_Event $notification
126
- */
127
- if ( empty( $last_runs[ $notification->notification_id ] ) ) {
128
- // If the notification never ran, save current time to show it after the interval.
129
- $this->update_last_run( $notification->notification_id );
130
- } else {
131
- // Has run before so let's check if enough days passed since the last run.
132
- $time_since = $last_runs[ $notification->notification_id ] + $notification->notification_interval * DAY_IN_SECONDS;
133
- $time_now = time();
134
- if ( $time_since < $time_now ) {
135
- // Interval passed since it ran so let's add this one.
136
- $notification->add_notification();
137
- // Update the last run date as right now.
138
- $this->update_last_run( $notification->notification_id );
139
- // Let's not add multiple notifications at the same time.
140
- break;
141
- }
142
- }
143
- }
144
-
145
- // Update the option with the new times.
146
- $this->save_last_runs();
147
-
148
- }
149
-
150
- /**
151
- * Get the static notifications array.
152
- *
153
- * @return array
154
- */
155
- public function get_registered_notifications() {
156