appscms-tools-theme 3.0.2 → 3.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_includes/adblocker.html +228 -124
- data/_includes/bookmark.html +5 -0
- data/_includes/feature.html +51 -33
- data/_includes/script.html +497 -48
- data/_layouts/feature.html +2 -1
- data/assets/css/tools.css +17 -0
- data/assets/js/adBlocker.js +62 -38
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9773f43a6c37c43e0d94f8bc293c79b8b9c279e4dafa87306fe7a13c9334429c
|
4
|
+
data.tar.gz: 6b84aaf32663ffc9aa9edd3ba72c684f07c231472e2b0a0b7e59a3f6690e68d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 663744fc9f945c7f4a21fd70d612327018b1aaebd57f48bfc75a977fdb0d87ef894acc6500f7723921c0f406bae67736f2d4eeb67697f0c2733fdeeb8e1d6213
|
7
|
+
data.tar.gz: f23592fd5154c55648605045256991d379f75a6beb72b6809902f511dd6d412bfb6c233d793d8bc89887013185764c3bdf38f74bdf5fe52f83af7ac6fa0b2239
|
data/_includes/adblocker.html
CHANGED
@@ -1,136 +1,240 @@
|
|
1
1
|
{%- if site.show_allow_ad_blocker_pop -%}
|
2
|
-
<link rel="stylesheet" href="/assets/css/adBlocker.css"
|
2
|
+
<link rel="stylesheet" href="/assets/css/adBlocker.css" />
|
3
3
|
<div id="detect"></div>
|
4
4
|
<div class="wrapper text-center">
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
<div class="innerWrapper">
|
6
|
+
{%- if site.adBlockerClose -%}
|
7
|
+
<div class="closePopup p-1">
|
8
|
+
<i class="fas fa-times"></i>
|
9
|
+
</div>
|
10
|
+
{%- endif -%}
|
11
|
+
<h2 class="brand-title">{{site.adspopuptitle}}</h2>
|
12
|
+
<p class="show-ads">Please allow ads on our site</p>
|
13
|
+
<p>
|
14
|
+
Looks like you're using an ad blocker. We rely on advertising to help fund
|
15
|
+
our site to keep it 100% free
|
16
|
+
</p>
|
17
|
+
<div class="btn-container mx-auto">
|
18
|
+
<div class="bg-layer"></div>
|
19
|
+
<button class="allow-ads-btn">Allow ads</button>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
<div class="extensions">
|
24
|
+
<section>
|
25
|
+
<div class="ads__content">
|
26
|
+
{%- if site.adBlockerClose -%}
|
27
|
+
<div class="closePopup">
|
28
|
+
<i class="fas fa-times"></i>
|
29
|
+
</div>
|
30
|
+
{%- endif -%}
|
31
|
+
<p style="font-size: 18px">Which of these extensions do you have?</p>
|
32
|
+
<ul class="nav nav-tabs tablist" role="tablist">
|
33
|
+
<a
|
34
|
+
class="nav-link nav-tab-link active"
|
35
|
+
data-toggle="tab"
|
36
|
+
href="#home"
|
37
|
+
role="tab"
|
38
|
+
>
|
39
|
+
<li class="nav-item">
|
40
|
+
<img
|
41
|
+
class="ads_img"
|
42
|
+
loading="lazy"
|
43
|
+
src="/assets/images/adblock.svg"
|
44
|
+
alt="AdBlock image"
|
45
|
+
/>
|
46
|
+
</li>
|
47
|
+
AdBlock
|
48
|
+
</a>
|
49
|
+
<a
|
50
|
+
class="nav-link nav-tab-link"
|
51
|
+
data-toggle="tab"
|
52
|
+
href="#adsblockPlus"
|
53
|
+
role="tab"
|
54
|
+
>
|
55
|
+
<li class="nav-item">
|
56
|
+
<img
|
57
|
+
class="ads_img"
|
58
|
+
loading="lazy"
|
59
|
+
src="/assets/images/abp.svg"
|
60
|
+
alt="Adblock Plus Image"
|
61
|
+
/>
|
62
|
+
</li>
|
63
|
+
Adblock Plus
|
64
|
+
</a>
|
65
|
+
<a
|
66
|
+
class="nav-link nav-tab-link"
|
67
|
+
data-toggle="tab"
|
68
|
+
href="#uBlock"
|
69
|
+
role="tab"
|
70
|
+
>
|
71
|
+
<li class="nav-item">
|
72
|
+
<img
|
73
|
+
class="ads_img"
|
74
|
+
loading="lazy"
|
75
|
+
src="/assets/images/uo.svg"
|
76
|
+
alt="uBlock image"
|
77
|
+
/>
|
78
|
+
</li>
|
79
|
+
uBlock Origin
|
80
|
+
</a>
|
81
|
+
<a
|
82
|
+
class="nav-link nav-tab-link"
|
83
|
+
data-toggle="tab"
|
84
|
+
href="#other"
|
85
|
+
role="tab"
|
86
|
+
>
|
87
|
+
<li class="nav-item">
|
88
|
+
<div class="three_dot">...</div>
|
89
|
+
</li>
|
90
|
+
Other
|
91
|
+
</a>
|
92
|
+
</ul>
|
93
|
+
|
94
|
+
<!-- Tab panes -->
|
95
|
+
<div class="tab-content">
|
96
|
+
<div class="tab-pane active" id="home" role="tabpanel">
|
97
|
+
<ol class="listContainer">
|
98
|
+
<li class="listItem">
|
99
|
+
Click the AdBlock icon
|
100
|
+
<img
|
101
|
+
width="18px"
|
102
|
+
loading="lazy"
|
103
|
+
src="/assets/images/adblock.svg"
|
104
|
+
alt="AdBlock image"
|
105
|
+
/>
|
106
|
+
in the browser extension area on the upper right-hand corner. (You
|
107
|
+
may see a small number covering part of the icon.)
|
108
|
+
</li>
|
109
|
+
<li class="listItem">
|
110
|
+
Select <b>Don't run on pages on this site</b>.
|
111
|
+
</li>
|
112
|
+
<li class="listItem">
|
113
|
+
In the "Don’t run AdBlock on..." dialog box, select
|
114
|
+
<b>Exclude</b>. The AdBlock icon changes to a “thumbs up” image.
|
115
|
+
</li>
|
116
|
+
</ol>
|
117
|
+
<div class="text-center w-100" onclick="refresh()">
|
118
|
+
<button class="btn btn-primary" style="font-size: 12px">
|
119
|
+
Refresh page
|
120
|
+
</button>
|
121
|
+
</div>
|
122
|
+
</div>
|
123
|
+
<div class="tab-pane" id="adsblockPlus" role="tabpanel">
|
124
|
+
<ol class="listContainer">
|
125
|
+
<li class="listItem">
|
126
|
+
Click the Adblock Plus icon
|
127
|
+
<img
|
128
|
+
width="18px"
|
129
|
+
loading="lazy"
|
130
|
+
src="/assets/images/abp.svg"
|
131
|
+
alt="Adblock Plus Image"
|
132
|
+
/>
|
133
|
+
in the browser extension area on the upper right-hand corner. (You
|
134
|
+
may see a small number covering part of the icon.)
|
135
|
+
</li>
|
136
|
+
<li class="listItem">
|
137
|
+
Click the “power” button Power icon so that it slides left.
|
138
|
+
</li>
|
139
|
+
<li class="listItem">Click the <b>Refresh</b> button.</li>
|
140
|
+
</ol>
|
141
|
+
<div class="text-center w-100" onclick="refresh()">
|
142
|
+
<button class="btn btn-primary" style="font-size: 12px">
|
143
|
+
Refresh page
|
144
|
+
</button>
|
145
|
+
</div>
|
146
|
+
</div>
|
147
|
+
<div class="tab-pane" id="uBlock" role="tabpanel">
|
148
|
+
<ol class="listContainer">
|
149
|
+
<li class="listItem">
|
150
|
+
Click the uBlock Origin icon
|
151
|
+
<img
|
152
|
+
width="18px"
|
153
|
+
loading="lazy"
|
154
|
+
src="/assets/images/uo.svg"
|
155
|
+
alt="uBlock image"
|
156
|
+
/>
|
157
|
+
in the browser extension area on the upper right-hand corner. (You
|
158
|
+
may see a small number covering part of the icon.)
|
159
|
+
</li>
|
160
|
+
<li class="listItem">
|
161
|
+
Click the “power” button so that it slides left.
|
162
|
+
</li>
|
163
|
+
<li class="listItem">Click the <b>Refresh</b> button.</li>
|
164
|
+
</ol>
|
165
|
+
<div class="text-center w-100" onclick="refresh()">
|
166
|
+
<button class="btn btn-primary" style="font-size: 12px">
|
167
|
+
Refresh page
|
168
|
+
</button>
|
169
|
+
</div>
|
9
170
|
</div>
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
171
|
+
<div class="tab-pane" id="other" role="tabpanel">
|
172
|
+
<ol class="listContainer">
|
173
|
+
<li class="listItem">
|
174
|
+
Click the icon of the ad blocker extension installed on your
|
175
|
+
browser.
|
176
|
+
</li>
|
177
|
+
<p class="text-muted">
|
178
|
+
You’ll usually find this icon in the upper right-hand corner of
|
179
|
+
your screen. You may have more than one ad blocker installed.
|
180
|
+
</p>
|
181
|
+
<li class="listItem">
|
182
|
+
Follow the instructions for disabling the ad blocker on the site
|
183
|
+
you’re viewing.
|
184
|
+
</li>
|
185
|
+
<p class="text-muted">
|
186
|
+
You may have to select a menu option or click a button.
|
187
|
+
</p>
|
188
|
+
<li class="listItem">
|
189
|
+
Refresh the page, either by following prompts or clicking your
|
190
|
+
browser’s “refresh” or “reload” button.
|
191
|
+
</li>
|
192
|
+
</ol>
|
193
|
+
<div class="text-center w-100" onclick="refresh()">
|
194
|
+
<button class="btn btn-primary" style="font-size: 12px">
|
195
|
+
Refresh page
|
196
|
+
</button>
|
197
|
+
</div>
|
19
198
|
</div>
|
199
|
+
</div>
|
20
200
|
</div>
|
201
|
+
</section>
|
21
202
|
</div>
|
22
|
-
<div class="extensions">
|
23
|
-
<section>
|
24
|
-
<div class="ads__content">
|
25
|
-
{%- if site.adBlockerClose -%}
|
26
|
-
<div class="closePopup">
|
27
|
-
<i class="fas fa-times"></i>
|
28
|
-
</div>
|
29
|
-
{%- endif -%}
|
30
|
-
<p style="font-size: 18px">Which of these extensions do you have?</p>
|
31
|
-
<ul class="nav nav-tabs tablist" role="tablist">
|
32
|
-
<a class="nav-link nav-tab-link active" data-toggle="tab" href="#home" role="tab">
|
33
|
-
<li class="nav-item">
|
34
|
-
<img class="ads_img" loading="lazy" src="/assets/images/adblock.svg" alt="AdBlock image">
|
35
|
-
</li>
|
36
|
-
AdBlock
|
37
|
-
</a>
|
38
|
-
<a class="nav-link nav-tab-link" data-toggle="tab" href="#adsblockPlus" role="tab">
|
39
|
-
<li class="nav-item">
|
40
|
-
<img class="ads_img" loading="lazy" src="/assets/images/abp.svg" alt="Adblock Plus Image">
|
41
|
-
</li>
|
42
|
-
Adblock Plus
|
43
|
-
</a>
|
44
|
-
<a class="nav-link nav-tab-link" data-toggle="tab" href="#uBlock" role="tab">
|
45
|
-
<li class="nav-item">
|
46
|
-
<img class="ads_img" loading="lazy" src="/assets/images/uo.svg" alt="uBlock image">
|
47
|
-
</li>
|
48
|
-
uBlock Origin
|
49
|
-
</a>
|
50
|
-
<a class="nav-link nav-tab-link" data-toggle="tab" href="#other" role="tab">
|
51
|
-
<li class="nav-item">
|
52
|
-
<div class="three_dot">...</div>
|
53
|
-
</li>
|
54
|
-
Other
|
55
|
-
</a>
|
56
|
-
</ul>
|
57
203
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
<li class="listItem">Select <b>Don't run on pages on this site</b>.</li>
|
70
|
-
<li class="listItem">In the "Don’t run AdBlock on..." dialog box, select <b>Exclude</b>. The
|
71
|
-
AdBlock
|
72
|
-
icon
|
73
|
-
changes to a “thumbs up” image.</li>
|
74
|
-
</ol>
|
75
|
-
<div class="text-center w-100" onclick="refresh()">
|
76
|
-
<button class="btn btn-primary" style="font-size: 12px;">Refresh page</button>
|
77
|
-
</div>
|
78
|
-
</div>
|
79
|
-
<div class="tab-pane" id="adsblockPlus" role="tabpanel">
|
80
|
-
<ol class="listContainer">
|
81
|
-
<li class="listItem">Click the Adblock Plus icon
|
82
|
-
<img width="18px" loading="lazy" src="/assets/images/abp.svg" alt="Adblock Plus Image">
|
83
|
-
in the browser extension area on the
|
84
|
-
upper right-hand corner. (You may see a small number covering part of the icon.)
|
85
|
-
</li>
|
86
|
-
<li class="listItem">Click the “power” button Power icon so that it slides left.</li>
|
87
|
-
<li class="listItem">Click the <b>Refresh</b> button.</li>
|
88
|
-
</ol>
|
89
|
-
<div class="text-center w-100" onclick="refresh()">
|
90
|
-
<button class="btn btn-primary" style="font-size: 12px;">Refresh page</button>
|
91
|
-
</div>
|
92
|
-
</div>
|
93
|
-
<div class="tab-pane" id="uBlock" role="tabpanel">
|
94
|
-
<ol class="listContainer">
|
95
|
-
<li class="listItem">Click the uBlock Origin icon
|
96
|
-
<img width="18px" loading="lazy" src="/assets/images/uo.svg" alt="uBlock image"> in the
|
97
|
-
browser
|
98
|
-
extension area on
|
99
|
-
the upper right-hand corner. (You may see a small number covering part of the icon.)
|
100
|
-
</li>
|
101
|
-
<li class="listItem">
|
102
|
-
Click the “power” button so that it slides left.
|
103
|
-
</li>
|
104
|
-
<li class="listItem">Click the <b>Refresh</b> button.</li>
|
105
|
-
</ol>
|
106
|
-
<div class="text-center w-100" onclick="refresh()">
|
107
|
-
<button class="btn btn-primary" style="font-size: 12px;">Refresh page</button>
|
108
|
-
</div>
|
109
|
-
</div>
|
110
|
-
<div class="tab-pane" id="other" role="tabpanel">
|
111
|
-
<ol class="listContainer">
|
112
|
-
<li class="listItem">Click the icon of the ad blocker extension installed on your browser.</li>
|
113
|
-
<p class="text-muted">You’ll usually find this icon in the upper right-hand corner of your
|
114
|
-
screen. You may
|
115
|
-
have more than
|
116
|
-
one ad blocker installed.</p>
|
117
|
-
<li class="listItem">Follow the instructions for disabling the ad blocker on the site you’re
|
118
|
-
viewing.</li>
|
119
|
-
<p class="text-muted">You may have to select a menu option or click a button.</p>
|
120
|
-
<li class="listItem">Refresh the page, either by following prompts or clicking your browser’s
|
121
|
-
“refresh” or
|
122
|
-
“reload” button.</li>
|
123
|
-
</ol>
|
124
|
-
<div class="text-center w-100" onclick="refresh()">
|
125
|
-
<button class="btn btn-primary" style="font-size: 12px;">Refresh page</button>
|
126
|
-
</div>
|
127
|
-
</div>
|
128
|
-
</div>
|
204
|
+
{% if page.url != '/' and page.lang == "en" %}
|
205
|
+
<script>
|
206
|
+
const autoLoadDuration = 5; //In Seconds
|
207
|
+
const eventList = [
|
208
|
+
"keydown",
|
209
|
+
"mousemove",
|
210
|
+
"wheel",
|
211
|
+
"touchmove",
|
212
|
+
"touchstart",
|
213
|
+
"touchend",
|
214
|
+
];
|
129
215
|
|
216
|
+
const autoLoadTimeout = setTimeout(runScripts, autoLoadDuration * 1000);
|
130
217
|
|
131
|
-
|
132
|
-
|
133
|
-
|
218
|
+
eventList.forEach(function (event) {
|
219
|
+
window.addEventListener(event, triggerScripts, { passive: true });
|
220
|
+
});
|
221
|
+
|
222
|
+
function triggerScripts() {
|
223
|
+
runScripts();
|
224
|
+
clearTimeout(autoLoadTimeout);
|
225
|
+
eventList.forEach(function (event) {
|
226
|
+
window.removeEventListener(event, triggerScripts, { passive: true });
|
227
|
+
});
|
228
|
+
}
|
229
|
+
|
230
|
+
function runScripts() {
|
231
|
+
document.querySelectorAll("script[delay]").forEach(function (scriptTag) {
|
232
|
+
scriptTag.setAttribute("src", scriptTag.getAttribute("delay"));
|
233
|
+
});
|
234
|
+
}
|
235
|
+
</script>
|
236
|
+
|
237
|
+
{% endif %}
|
134
238
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"></script>
|
135
239
|
<script delay="/assets/js/adBlocker.js"></script>
|
136
|
-
{%- endif -%}
|
240
|
+
{%- endif -%}
|
data/_includes/feature.html
CHANGED
@@ -1,38 +1,56 @@
|
|
1
|
-
{% assign path = page.jsonFile %}
|
2
|
-
|
3
|
-
{% assign dataToShow = jsonPath %}
|
1
|
+
{% assign path = page.jsonFile %} {% assign jsonPath = site.data[path] %} {%
|
2
|
+
assign dataToShow = jsonPath %}
|
4
3
|
<div class="container-fluid">
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
4
|
+
<div class="row">
|
5
|
+
<div class="col-xl-3 col-lg-12">
|
6
|
+
<div class="row">
|
7
|
+
<div class="col-xl-3 p-0">
|
8
|
+
<div class="feature">
|
9
|
+
<img
|
10
|
+
src="/assets/images/left_obj_01.png"
|
11
|
+
alt=""
|
12
|
+
{%-
|
13
|
+
if
|
14
|
+
site.crossorigin
|
15
|
+
-%}
|
16
|
+
crossorigin
|
17
|
+
{%-
|
18
|
+
endif
|
19
|
+
-%}
|
20
|
+
/>
|
21
|
+
<span class="site-no"> {{dataToShow.featureNo}}</span>
|
22
|
+
<h5 class="title">{{dataToShow.feature_title}}</h5>
|
23
|
+
<p class="description">{{dataToShow.feature_description}}</p>
|
24
|
+
</div>
|
18
25
|
</div>
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
{% endfor %}
|
33
|
-
</div>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
<div class="col-xl-9 col-lg-12">
|
29
|
+
<div class="row text-center">
|
30
|
+
{% for entry in dataToShow.featureList %}
|
31
|
+
<div class="col-lg-4 col-md-6 my-3">
|
32
|
+
<div class="card-body h-100">
|
33
|
+
<i loading="lazy" class="{{ entry.fa_class }} FA"></i>
|
34
|
+
<h5 class="card-title">{{ entry.feature_heading }}</h5>
|
35
|
+
<p class="card-text" style="color: #a7a7a7; font-size: 14px">
|
36
|
+
{{ entry.feature_text}}
|
37
|
+
</p>
|
38
|
+
</div>
|
34
39
|
</div>
|
40
|
+
{% endfor %}
|
41
|
+
</div>
|
35
42
|
</div>
|
43
|
+
</div>
|
36
44
|
</div>
|
37
|
-
<link
|
38
|
-
|
45
|
+
<link
|
46
|
+
rel="stylesheet"
|
47
|
+
href="{{ 'css/feature.css' | relative_url }}"
|
48
|
+
{%-
|
49
|
+
if
|
50
|
+
site.crossorigin
|
51
|
+
-%}
|
52
|
+
crossorigin
|
53
|
+
{%-
|
54
|
+
endif
|
55
|
+
-%}
|
56
|
+
/>
|
data/_includes/script.html
CHANGED
@@ -1,59 +1,508 @@
|
|
1
1
|
{%- if site.rollbarToken -%}
|
2
2
|
<script>
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
3
|
+
var _rollbarConfig = {
|
4
|
+
accessToken: "{{site.rollbarToken}}",
|
5
|
+
captureUncaught: true,
|
6
|
+
captureUnhandledRejections: true,
|
7
|
+
payload: {
|
8
|
+
environment: "production",
|
9
|
+
},
|
10
|
+
};
|
11
|
+
!(function (r) {
|
12
|
+
var e = {};
|
13
|
+
function o(n) {
|
14
|
+
if (e[n]) return e[n].exports;
|
15
|
+
var t = (e[n] = { i: n, l: !1, exports: {} });
|
16
|
+
return r[n].call(t.exports, t, t.exports, o), (t.l = !0), t.exports;
|
17
|
+
}
|
18
|
+
(o.m = r),
|
19
|
+
(o.c = e),
|
20
|
+
(o.d = function (r, e, n) {
|
21
|
+
o.o(r, e) || Object.defineProperty(r, e, { enumerable: !0, get: n });
|
22
|
+
}),
|
23
|
+
(o.r = function (r) {
|
24
|
+
"undefined" != typeof Symbol &&
|
25
|
+
Symbol.toStringTag &&
|
26
|
+
Object.defineProperty(r, Symbol.toStringTag, { value: "Module" }),
|
27
|
+
Object.defineProperty(r, "__esModule", { value: !0 });
|
28
|
+
}),
|
29
|
+
(o.t = function (r, e) {
|
30
|
+
if ((1 & e && (r = o(r)), 8 & e)) return r;
|
31
|
+
if (4 & e && "object" == typeof r && r && r.__esModule) return r;
|
32
|
+
var n = Object.create(null);
|
33
|
+
if (
|
34
|
+
(o.r(n),
|
35
|
+
Object.defineProperty(n, "default", { enumerable: !0, value: r }),
|
36
|
+
2 & e && "string" != typeof r)
|
37
|
+
)
|
38
|
+
for (var t in r)
|
39
|
+
o.d(
|
40
|
+
n,
|
41
|
+
t,
|
42
|
+
function (e) {
|
43
|
+
return r[e];
|
44
|
+
}.bind(null, t)
|
45
|
+
);
|
46
|
+
return n;
|
47
|
+
}),
|
48
|
+
(o.n = function (r) {
|
49
|
+
var e =
|
50
|
+
r && r.__esModule
|
51
|
+
? function () {
|
52
|
+
return r.default;
|
53
|
+
}
|
54
|
+
: function () {
|
55
|
+
return r;
|
56
|
+
};
|
57
|
+
return o.d(e, "a", e), e;
|
58
|
+
}),
|
59
|
+
(o.o = function (r, e) {
|
60
|
+
return Object.prototype.hasOwnProperty.call(r, e);
|
61
|
+
}),
|
62
|
+
(o.p = ""),
|
63
|
+
o((o.s = 0));
|
64
|
+
})([
|
65
|
+
function (r, e, o) {
|
66
|
+
"use strict";
|
67
|
+
var n = o(1),
|
68
|
+
t = o(5);
|
69
|
+
(_rollbarConfig = _rollbarConfig || {}),
|
70
|
+
(_rollbarConfig.rollbarJsUrl =
|
71
|
+
_rollbarConfig.rollbarJsUrl ||
|
72
|
+
"https://cdn.rollbar.com/rollbarjs/refs/tags/v2.25.2/rollbar.min.js"),
|
73
|
+
(_rollbarConfig.async =
|
74
|
+
void 0 === _rollbarConfig.async || _rollbarConfig.async);
|
75
|
+
var a = n.setupShim(window, _rollbarConfig),
|
76
|
+
l = t(_rollbarConfig);
|
77
|
+
(window.rollbar = n.Rollbar),
|
78
|
+
a.loadFull(window, document, !_rollbarConfig.async, _rollbarConfig, l);
|
79
|
+
},
|
80
|
+
function (r, e, o) {
|
81
|
+
"use strict";
|
82
|
+
var n = o(2),
|
83
|
+
t = o(3);
|
84
|
+
function a(r) {
|
85
|
+
return function () {
|
86
|
+
try {
|
87
|
+
return r.apply(this, arguments);
|
88
|
+
} catch (r) {
|
89
|
+
try {
|
90
|
+
console.error("[Rollbar]: Internal error", r);
|
91
|
+
} catch (r) {}
|
92
|
+
}
|
93
|
+
};
|
9
94
|
}
|
10
|
-
|
11
|
-
|
95
|
+
var l = 0;
|
96
|
+
function i(r, e) {
|
97
|
+
(this.options = r), (this._rollbarOldOnError = null);
|
98
|
+
var o = l++;
|
99
|
+
(this.shimId = function () {
|
100
|
+
return o;
|
101
|
+
}),
|
102
|
+
"undefined" != typeof window &&
|
103
|
+
window._rollbarShims &&
|
104
|
+
(window._rollbarShims[o] = { handler: e, messages: [] });
|
105
|
+
}
|
106
|
+
var s = o(4),
|
107
|
+
d = function (r, e) {
|
108
|
+
return new i(r, e);
|
109
|
+
},
|
110
|
+
c = function (r) {
|
111
|
+
return new s(d, r);
|
112
|
+
};
|
113
|
+
function u(r) {
|
114
|
+
return a(function () {
|
115
|
+
var e = this,
|
116
|
+
o = Array.prototype.slice.call(arguments, 0),
|
117
|
+
n = { shim: e, method: r, args: o, ts: new Date() };
|
118
|
+
window._rollbarShims[this.shimId()].messages.push(n);
|
119
|
+
});
|
120
|
+
}
|
121
|
+
(i.prototype.loadFull = function (r, e, o, n, t) {
|
122
|
+
var l = !1,
|
123
|
+
i = e.createElement("script"),
|
124
|
+
s = e.getElementsByTagName("script")[0],
|
125
|
+
d = s.parentNode;
|
126
|
+
(i.crossOrigin = ""),
|
127
|
+
(i.src = n.rollbarJsUrl),
|
128
|
+
o || (i.async = !0),
|
129
|
+
(i.onload = i.onreadystatechange =
|
130
|
+
a(function () {
|
131
|
+
if (
|
132
|
+
!(
|
133
|
+
l ||
|
134
|
+
(this.readyState &&
|
135
|
+
"loaded" !== this.readyState &&
|
136
|
+
"complete" !== this.readyState)
|
137
|
+
)
|
138
|
+
) {
|
139
|
+
i.onload = i.onreadystatechange = null;
|
140
|
+
try {
|
141
|
+
d.removeChild(i);
|
142
|
+
} catch (r) {}
|
143
|
+
(l = !0),
|
144
|
+
(function () {
|
145
|
+
var e;
|
146
|
+
if (void 0 === r._rollbarDidLoad) {
|
147
|
+
e = new Error("rollbar.js did not load");
|
148
|
+
for (var o, n, a, l, i = 0; (o = r._rollbarShims[i++]); )
|
149
|
+
for (o = o.messages || []; (n = o.shift()); )
|
150
|
+
for (a = n.args || [], i = 0; i < a.length; ++i)
|
151
|
+
if ("function" == typeof (l = a[i])) {
|
152
|
+
l(e);
|
153
|
+
break;
|
154
|
+
}
|
155
|
+
}
|
156
|
+
"function" == typeof t && t(e);
|
157
|
+
})();
|
158
|
+
}
|
159
|
+
})),
|
160
|
+
d.insertBefore(i, s);
|
161
|
+
}),
|
162
|
+
(i.prototype.wrap = function (r, e, o) {
|
163
|
+
try {
|
164
|
+
var n;
|
165
|
+
if (
|
166
|
+
((n =
|
167
|
+
"function" == typeof e
|
168
|
+
? e
|
169
|
+
: function () {
|
170
|
+
return e || {};
|
171
|
+
}),
|
172
|
+
"function" != typeof r)
|
173
|
+
)
|
174
|
+
return r;
|
175
|
+
if (r._isWrap) return r;
|
176
|
+
if (
|
177
|
+
!r._rollbar_wrapped &&
|
178
|
+
((r._rollbar_wrapped = function () {
|
179
|
+
o && "function" == typeof o && o.apply(this, arguments);
|
180
|
+
try {
|
181
|
+
return r.apply(this, arguments);
|
182
|
+
} catch (o) {
|
183
|
+
var e = o;
|
184
|
+
throw (
|
185
|
+
(e &&
|
186
|
+
("string" == typeof e && (e = new String(e)),
|
187
|
+
(e._rollbarContext = n() || {}),
|
188
|
+
(e._rollbarContext._wrappedSource = r.toString()),
|
189
|
+
(window._rollbarWrappedError = e)),
|
190
|
+
e)
|
191
|
+
);
|
192
|
+
}
|
193
|
+
}),
|
194
|
+
(r._rollbar_wrapped._isWrap = !0),
|
195
|
+
r.hasOwnProperty)
|
196
|
+
)
|
197
|
+
for (var t in r)
|
198
|
+
r.hasOwnProperty(t) && (r._rollbar_wrapped[t] = r[t]);
|
199
|
+
return r._rollbar_wrapped;
|
200
|
+
} catch (e) {
|
201
|
+
return r;
|
202
|
+
}
|
203
|
+
});
|
204
|
+
for (
|
205
|
+
var p =
|
206
|
+
"log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,captureEvent,captureDomContentLoaded,captureLoad".split(
|
207
|
+
","
|
208
|
+
),
|
209
|
+
f = 0;
|
210
|
+
f < p.length;
|
211
|
+
++f
|
212
|
+
)
|
213
|
+
i.prototype[p[f]] = u(p[f]);
|
214
|
+
r.exports = {
|
215
|
+
setupShim: function (r, e) {
|
216
|
+
if (r) {
|
217
|
+
var o = e.globalAlias || "Rollbar";
|
218
|
+
if ("object" == typeof r[o]) return r[o];
|
219
|
+
(r._rollbarShims = {}), (r._rollbarWrappedError = null);
|
220
|
+
var l = new c(e);
|
221
|
+
return a(function () {
|
222
|
+
e.captureUncaught &&
|
223
|
+
((l._rollbarOldOnError = r.onerror),
|
224
|
+
n.captureUncaughtExceptions(r, l, !0),
|
225
|
+
e.wrapGlobalEventHandlers && t(r, l, !0)),
|
226
|
+
e.captureUnhandledRejections &&
|
227
|
+
n.captureUnhandledRejections(r, l, !0);
|
228
|
+
var a = e.autoInstrument;
|
229
|
+
return (
|
230
|
+
!1 !== e.enabled &&
|
231
|
+
(void 0 === a ||
|
232
|
+
!0 === a ||
|
233
|
+
(function (r) {
|
234
|
+
return !(
|
235
|
+
"object" != typeof r ||
|
236
|
+
(void 0 !== r.page && !r.page)
|
237
|
+
);
|
238
|
+
})(a)) &&
|
239
|
+
r.addEventListener &&
|
240
|
+
(r.addEventListener("load", l.captureLoad.bind(l)),
|
241
|
+
r.addEventListener(
|
242
|
+
"DOMContentLoaded",
|
243
|
+
l.captureDomContentLoaded.bind(l)
|
244
|
+
)),
|
245
|
+
(r[o] = l),
|
246
|
+
l
|
247
|
+
);
|
248
|
+
})();
|
249
|
+
}
|
250
|
+
},
|
251
|
+
Rollbar: c,
|
252
|
+
};
|
253
|
+
},
|
254
|
+
function (r, e, o) {
|
255
|
+
"use strict";
|
256
|
+
function n(r, e, o, n) {
|
257
|
+
r._rollbarWrappedError &&
|
258
|
+
(n[4] || (n[4] = r._rollbarWrappedError),
|
259
|
+
n[5] || (n[5] = r._rollbarWrappedError._rollbarContext),
|
260
|
+
(r._rollbarWrappedError = null));
|
261
|
+
var t = e.handleUncaughtException.apply(e, n);
|
262
|
+
o && o.apply(r, n),
|
263
|
+
"anonymous" === t && (e.anonymousErrorsPending += 1);
|
264
|
+
}
|
265
|
+
r.exports = {
|
266
|
+
captureUncaughtExceptions: function (r, e, o) {
|
267
|
+
if (r) {
|
268
|
+
var t;
|
269
|
+
if ("function" == typeof e._rollbarOldOnError)
|
270
|
+
t = e._rollbarOldOnError;
|
271
|
+
else if (r.onerror) {
|
272
|
+
for (t = r.onerror; t._rollbarOldOnError; )
|
273
|
+
t = t._rollbarOldOnError;
|
274
|
+
e._rollbarOldOnError = t;
|
275
|
+
}
|
276
|
+
e.handleAnonymousErrors();
|
277
|
+
var a = function () {
|
278
|
+
var o = Array.prototype.slice.call(arguments, 0);
|
279
|
+
n(r, e, t, o);
|
280
|
+
};
|
281
|
+
o && (a._rollbarOldOnError = t), (r.onerror = a);
|
282
|
+
}
|
283
|
+
},
|
284
|
+
captureUnhandledRejections: function (r, e, o) {
|
285
|
+
if (r) {
|
286
|
+
"function" == typeof r._rollbarURH &&
|
287
|
+
r._rollbarURH.belongsToShim &&
|
288
|
+
r.removeEventListener("unhandledrejection", r._rollbarURH);
|
289
|
+
var n = function (r) {
|
290
|
+
var o, n, t;
|
291
|
+
try {
|
292
|
+
o = r.reason;
|
293
|
+
} catch (r) {
|
294
|
+
o = void 0;
|
295
|
+
}
|
296
|
+
try {
|
297
|
+
n = r.promise;
|
298
|
+
} catch (r) {
|
299
|
+
n = "[unhandledrejection] error getting `promise` from event";
|
300
|
+
}
|
301
|
+
try {
|
302
|
+
(t = r.detail), !o && t && ((o = t.reason), (n = t.promise));
|
303
|
+
} catch (r) {}
|
304
|
+
o ||
|
305
|
+
(o = "[unhandledrejection] error getting `reason` from event"),
|
306
|
+
e &&
|
307
|
+
e.handleUnhandledRejection &&
|
308
|
+
e.handleUnhandledRejection(o, n);
|
309
|
+
};
|
310
|
+
(n.belongsToShim = o),
|
311
|
+
(r._rollbarURH = n),
|
312
|
+
r.addEventListener("unhandledrejection", n);
|
313
|
+
}
|
314
|
+
},
|
315
|
+
};
|
316
|
+
},
|
317
|
+
function (r, e, o) {
|
318
|
+
"use strict";
|
319
|
+
function n(r, e, o) {
|
320
|
+
if (e.hasOwnProperty && e.hasOwnProperty("addEventListener")) {
|
321
|
+
for (
|
322
|
+
var n = e.addEventListener;
|
323
|
+
n._rollbarOldAdd && n.belongsToShim;
|
324
|
+
|
325
|
+
)
|
326
|
+
n = n._rollbarOldAdd;
|
327
|
+
var t = function (e, o, t) {
|
328
|
+
n.call(this, e, r.wrap(o), t);
|
329
|
+
};
|
330
|
+
(t._rollbarOldAdd = n),
|
331
|
+
(t.belongsToShim = o),
|
332
|
+
(e.addEventListener = t);
|
333
|
+
for (
|
334
|
+
var a = e.removeEventListener;
|
335
|
+
a._rollbarOldRemove && a.belongsToShim;
|
336
|
+
|
337
|
+
)
|
338
|
+
a = a._rollbarOldRemove;
|
339
|
+
var l = function (r, e, o) {
|
340
|
+
a.call(this, r, (e && e._rollbar_wrapped) || e, o);
|
341
|
+
};
|
342
|
+
(l._rollbarOldRemove = a),
|
343
|
+
(l.belongsToShim = o),
|
344
|
+
(e.removeEventListener = l);
|
345
|
+
}
|
346
|
+
}
|
347
|
+
r.exports = function (r, e, o) {
|
348
|
+
if (r) {
|
349
|
+
var t,
|
350
|
+
a,
|
351
|
+
l =
|
352
|
+
"EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload".split(
|
353
|
+
","
|
354
|
+
);
|
355
|
+
for (t = 0; t < l.length; ++t)
|
356
|
+
r[(a = l[t])] && r[a].prototype && n(e, r[a].prototype, o);
|
357
|
+
}
|
358
|
+
};
|
359
|
+
},
|
360
|
+
function (r, e, o) {
|
361
|
+
"use strict";
|
362
|
+
function n(r, e) {
|
363
|
+
(this.impl = r(e, this)),
|
364
|
+
(this.options = e),
|
365
|
+
(function (r) {
|
366
|
+
for (
|
367
|
+
var e = function (r) {
|
368
|
+
return function () {
|
369
|
+
var e = Array.prototype.slice.call(arguments, 0);
|
370
|
+
if (this.impl[r]) return this.impl[r].apply(this.impl, e);
|
371
|
+
};
|
372
|
+
},
|
373
|
+
o =
|
374
|
+
"log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,_createItem,wrap,loadFull,shimId,captureEvent,captureDomContentLoaded,captureLoad".split(
|
375
|
+
","
|
376
|
+
),
|
377
|
+
n = 0;
|
378
|
+
n < o.length;
|
379
|
+
n++
|
380
|
+
)
|
381
|
+
r[o[n]] = e(o[n]);
|
382
|
+
})(n.prototype);
|
383
|
+
}
|
384
|
+
(n.prototype._swapAndProcessMessages = function (r, e) {
|
385
|
+
var o, n, t;
|
386
|
+
for (this.impl = r(this.options); (o = e.shift()); )
|
387
|
+
(n = o.method),
|
388
|
+
(t = o.args),
|
389
|
+
this[n] &&
|
390
|
+
"function" == typeof this[n] &&
|
391
|
+
("captureDomContentLoaded" === n || "captureLoad" === n
|
392
|
+
? this[n].apply(this, [t[0], o.ts])
|
393
|
+
: this[n].apply(this, t));
|
394
|
+
return this;
|
395
|
+
}),
|
396
|
+
(r.exports = n);
|
397
|
+
},
|
398
|
+
function (r, e, o) {
|
399
|
+
"use strict";
|
400
|
+
r.exports = function (r) {
|
401
|
+
return function (e) {
|
402
|
+
if (!e && !window._rollbarInitialized) {
|
403
|
+
for (
|
404
|
+
var o,
|
405
|
+
n,
|
406
|
+
t = (r = r || {}).globalAlias || "Rollbar",
|
407
|
+
a = window.rollbar,
|
408
|
+
l = function (r) {
|
409
|
+
return new a(r);
|
410
|
+
},
|
411
|
+
i = 0;
|
412
|
+
(o = window._rollbarShims[i++]);
|
413
|
+
|
414
|
+
)
|
415
|
+
n || (n = o.handler),
|
416
|
+
o.handler._swapAndProcessMessages(l, o.messages);
|
417
|
+
(window[t] = n), (window._rollbarInitialized = !0);
|
418
|
+
}
|
419
|
+
};
|
420
|
+
};
|
421
|
+
},
|
422
|
+
]);
|
12
423
|
</script>
|
13
|
-
{%- endif -%}
|
14
|
-
{%-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
424
|
+
{%- endif -%} {%- include adblocker.html -%} {% assign scriptData =
|
425
|
+
site.data.[page.folderName][lang][file] %} {%- assign dataAtt =
|
426
|
+
"data-folderName='$folderName' data-lang='$lang' data-fileName='$fileName'
|
427
|
+
data-tool='$tool'" -%} {%- assign $folderName = '$folderName' -%}
|
428
|
+
<script
|
429
|
+
defer
|
430
|
+
src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"
|
431
|
+
{%-
|
432
|
+
if
|
433
|
+
site.crossorigin
|
434
|
+
-%}
|
435
|
+
{{
|
436
|
+
}}
|
437
|
+
crossorigin
|
438
|
+
{%-
|
439
|
+
endif
|
440
|
+
-%}
|
441
|
+
></script>
|
20
442
|
{%- if site.safeui -%}
|
21
443
|
<script defer src="/assets/js/theme.js" crossorigin="anonymous"></script>
|
22
444
|
{%- endif -%}
|
23
445
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
446
|
+
<script
|
447
|
+
defer="defer"
|
448
|
+
src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js"
|
449
|
+
integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns"
|
450
|
+
crossorigin="anonymous"
|
451
|
+
></script>
|
452
|
+
{{site.data.customcdns.customcdns.jsfiles}} {%- if scriptData.jsfilepaths -%}
|
29
453
|
{%- for path in scriptData.jsfilepaths -%}
|
30
|
-
<script
|
31
|
-
|
32
|
-
|
33
|
-
{
|
34
|
-
{
|
35
|
-
{
|
36
|
-
{
|
37
|
-
{{
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
{
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
{
|
454
|
+
<script
|
455
|
+
defer
|
456
|
+
src="{{path}}"
|
457
|
+
data-folderName="{{page.folderName}}"
|
458
|
+
data-lang="{{page.lang}}"
|
459
|
+
data-fileName="{{page.fileName}}"
|
460
|
+
data-tool="{{page.tool}}"
|
461
|
+
data-permalink="{{page.permalink}}"
|
462
|
+
{%-
|
463
|
+
if
|
464
|
+
site.crossorigin
|
465
|
+
-%}
|
466
|
+
{{
|
467
|
+
}}
|
468
|
+
crossorigin
|
469
|
+
{%-
|
470
|
+
endif
|
471
|
+
-%}
|
472
|
+
></script>
|
473
|
+
{%- endfor -%} {%- endif -%} {%- if scriptData.jscdns -%} {%- for item in
|
474
|
+
scriptData.jscdns -%} {{item | replace:"$folderName", page.folderName | replace:
|
475
|
+
"$fileName", page.fileName | replace: "$lang", page.lang | replace: "$tool",
|
476
|
+
page.tool }} {%- endfor -%} {%- endif -%} {%- if page.layout == "frame" -%} {%-
|
477
|
+
assign font = "PT Sans" -%} {%- endif -%} {%- if page.layout ==
|
478
|
+
"photo-effects-home" -%} {%- assign font = "PT Sans" -%} {%- endif -%} {%- if
|
479
|
+
page.layout == "calculator" -%}
|
51
480
|
<script defer src="/assets/js/calculator-tooltip.js"></script>
|
481
|
+
{%- endif -%} {%- if page.layout == 'home-1' or page.layout == "feature-1" -%}
|
482
|
+
{%- assign font = "Inter" -%} {%- endif -%}
|
483
|
+
<link
|
484
|
+
rel="stylesheet"
|
485
|
+
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"
|
486
|
+
integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w=="
|
487
|
+
crossorigin="anonymous"
|
488
|
+
referrerpolicy="no-referrer"
|
489
|
+
/>
|
490
|
+
{%- if page.layout == "feature" -%}
|
491
|
+
<script>
|
492
|
+
const toaster = document.querySelector(".toaster");
|
493
|
+
if (
|
494
|
+
!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
|
495
|
+
navigator.userAgent
|
496
|
+
)
|
497
|
+
) {
|
498
|
+
if (navigator.userAgent.indexOf("Mac OS X") != -1) {
|
499
|
+
toaster.innerHTML = `Press Command + D to Bookmark this page`;
|
500
|
+
} else {
|
501
|
+
toaster.innerHTML = `Press Ctrl + D to Bookmark this page`;
|
502
|
+
}
|
503
|
+
}
|
504
|
+
setTimeout(() => {
|
505
|
+
toaster.style.display = "none";
|
506
|
+
}, 20000);
|
507
|
+
</script>
|
52
508
|
{%- endif -%}
|
53
|
-
|
54
|
-
{%- if page.layout == 'home-1' or page.layout == "feature-1" -%}
|
55
|
-
{%- assign font = "Inter" -%}
|
56
|
-
{%- endif -%}
|
57
|
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"
|
58
|
-
integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w=="
|
59
|
-
crossorigin="anonymous" referrerpolicy="no-referrer" />
|
data/_layouts/feature.html
CHANGED
@@ -192,7 +192,8 @@
|
|
192
192
|
</div>
|
193
193
|
</div>
|
194
194
|
</section>
|
195
|
-
{%-
|
195
|
+
{%- if page.layout == "feature" -%} {%- include bookmark.html -%} {%- endif
|
196
|
+
-%} {%- assign showFaqs= true -%} {%- for item in site.noFaqsList -%} {%- if
|
196
197
|
item == page.lang -%} {%- assign showFaqs = false -%} {%- break -%} {%- else
|
197
198
|
-%} {%- assign showFaqs = true -%} {%- endif -%} {%- endfor -%} {%- if
|
198
199
|
showFaqs == true -%} {%- if featureData.FAQ.size>0 -%}
|
data/assets/css/tools.css
CHANGED
@@ -1309,3 +1309,20 @@ ol li::marker {
|
|
1309
1309
|
.audio-h2 {
|
1310
1310
|
font-size: 22px;
|
1311
1311
|
}
|
1312
|
+
.toaster {
|
1313
|
+
top: 15px;
|
1314
|
+
padding: 12px 20px;
|
1315
|
+
color: #fff;
|
1316
|
+
display: inline-block;
|
1317
|
+
box-shadow: 0 3px 6px -1px rgb(0 0 0 / 12%),
|
1318
|
+
0 10px 36px -4px rgb(77 96 232 / 30%);
|
1319
|
+
background: linear-gradient(to right, rgb(221, 36, 118), rgb(255, 81, 47));
|
1320
|
+
position: fixed;
|
1321
|
+
transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
|
1322
|
+
border-radius: 2px;
|
1323
|
+
right: 15px;
|
1324
|
+
cursor: pointer;
|
1325
|
+
text-decoration: none;
|
1326
|
+
max-width: calc(50% - 20px);
|
1327
|
+
z-index: 2147483647;
|
1328
|
+
}
|
data/assets/js/adBlocker.js
CHANGED
@@ -1,44 +1,68 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
let showPop = false;
|
2
|
+
if (
|
3
|
+
!localStorage.getItem("timeDisplayed") ||
|
4
|
+
new Date().getTime() - localStorage.getItem("timeDisplayed") >=
|
5
|
+
60000 * 24 * 60
|
6
|
+
) {
|
7
|
+
showPop = true;
|
8
|
+
localStorage.setItem("timeDisplayed", new Date().getTime());
|
9
|
+
} else {
|
10
|
+
showPop = false;
|
11
|
+
}
|
12
|
+
let freeCount = localStorage.getItem("freeCount");
|
13
|
+
if (!freeCount) {
|
14
|
+
freeCount = 0;
|
15
|
+
}
|
16
|
+
localStorage.setItem(
|
17
|
+
"freeCount",
|
18
|
+
Number(freeCount) < 5 ? Number(freeCount) + 1 : 5
|
19
|
+
);
|
20
|
+
if (freeCount >= 5 || showPop) {
|
21
|
+
$(".nav-tabs a.nav-tab-link").click(function () {
|
22
|
+
$(".nav-tabs a.nav-tab-link").removeClass("active");
|
23
|
+
});
|
4
24
|
|
5
|
-
const detect = document.querySelector(
|
6
|
-
const wrapper = document.querySelector(
|
7
|
-
const closePopup = document.getElementsByClassName(
|
8
|
-
const extensions = document.querySelector(
|
25
|
+
const detect = document.querySelector("#detect");
|
26
|
+
const wrapper = document.querySelector(".wrapper");
|
27
|
+
const closePopup = document.getElementsByClassName("closePopup");
|
28
|
+
const extensions = document.querySelector(".extensions");
|
9
29
|
|
10
|
-
const refresh = () => {
|
11
|
-
|
12
|
-
}
|
30
|
+
const refresh = () => {
|
31
|
+
location.reload();
|
32
|
+
};
|
13
33
|
|
14
|
-
let adsBtn = document.querySelector(
|
15
|
-
adsBtn.addEventListener(
|
16
|
-
|
17
|
-
})
|
34
|
+
let adsBtn = document.querySelector(".allow-ads-btn");
|
35
|
+
adsBtn.addEventListener("click", () => {
|
36
|
+
extensions.classList.add("show");
|
37
|
+
});
|
18
38
|
|
19
|
-
let adClasses = [
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
]
|
29
|
-
for (let item of adClasses) {
|
30
|
-
|
31
|
-
}
|
39
|
+
let adClasses = [
|
40
|
+
"ad",
|
41
|
+
"ads",
|
42
|
+
"adsbox",
|
43
|
+
"doubleclick",
|
44
|
+
"ad-placement",
|
45
|
+
"ad-placeholder",
|
46
|
+
"adbadge",
|
47
|
+
"BannerAd",
|
48
|
+
];
|
49
|
+
for (let item of adClasses) {
|
50
|
+
detect.classList.add(item);
|
51
|
+
}
|
32
52
|
|
33
|
-
let getProperty = window.getComputedStyle(detect).getPropertyValue(
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
53
|
+
let getProperty = window.getComputedStyle(detect).getPropertyValue("display");
|
54
|
+
console.log(getProperty);
|
55
|
+
if (!wrapper.classList.contains("show")) {
|
56
|
+
getProperty == "none"
|
57
|
+
? wrapper.classList.add("show")
|
58
|
+
: wrapper.classList.remove("show");
|
59
|
+
}
|
60
|
+
closePopup[0].addEventListener("click", () => {
|
61
|
+
wrapper.classList.remove("show");
|
62
|
+
localStorage.setItem("freeCount", 0);
|
63
|
+
});
|
64
|
+
closePopup[1].addEventListener("click", () => {
|
65
|
+
extensions.classList.remove("show");
|
66
|
+
localStorage.setItem("freeCount", 0);
|
67
|
+
});
|
38
68
|
}
|
39
|
-
closePopup[0].addEventListener('click', () => {
|
40
|
-
wrapper.classList.remove('show')
|
41
|
-
})
|
42
|
-
closePopup[1].addEventListener('click', () => {
|
43
|
-
extensions.classList.remove('show')
|
44
|
-
})
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appscms-tools-theme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- vivek-appscms
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-12-
|
11
|
+
date: 2022-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -2395,6 +2395,7 @@ files:
|
|
2395
2395
|
- _includes/author_bio.html
|
2396
2396
|
- _includes/authors/authors.html
|
2397
2397
|
- _includes/batch-conversion.html
|
2398
|
+
- _includes/bookmark.html
|
2398
2399
|
- _includes/cssfile/links.html
|
2399
2400
|
- _includes/custom-head.html
|
2400
2401
|
- _includes/customblog/recentposts.html
|