appscms-tools-theme 3.0.2 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0ff3e5970d26347a54424c3451f8ec8ff3621718116cc6e754ae59f80536690d
4
- data.tar.gz: 9f618b9d865abae166bd9338560b75c1f81b7fed8c75a6af1ba2408d88459d61
3
+ metadata.gz: 9773f43a6c37c43e0d94f8bc293c79b8b9c279e4dafa87306fe7a13c9334429c
4
+ data.tar.gz: 6b84aaf32663ffc9aa9edd3ba72c684f07c231472e2b0a0b7e59a3f6690e68d5
5
5
  SHA512:
6
- metadata.gz: c155e18b26673dcf5955a3b5b3f32066f904f4d8ece14a80a6921c4c578674e412b7ddabd3674a273098b10bc99f8d0e4a95a2df91b5adcf42830fcc6bafc317
7
- data.tar.gz: 032100f27dc1a6d856feb86f7a0d51db0183e2a6c976c82c1cc0df8d16f165038fe13440d7dec056ed3f4fbbddce4bf50b799358548dfe628a097f3e0be34551
6
+ metadata.gz: 663744fc9f945c7f4a21fd70d612327018b1aaebd57f48bfc75a977fdb0d87ef894acc6500f7723921c0f406bae67736f2d4eeb67697f0c2733fdeeb8e1d6213
7
+ data.tar.gz: f23592fd5154c55648605045256991d379f75a6beb72b6809902f511dd6d412bfb6c233d793d8bc89887013185764c3bdf38f74bdf5fe52f83af7ac6fa0b2239
@@ -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
- <div class="innerWrapper">
6
- {%- if site.adBlockerClose -%}
7
- <div class="closePopup p-1">
8
- <i class="fas fa-times"></i>
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
- {%- endif -%}
11
- <h2 class="brand-title">{{site.adspopuptitle}}</h2>
12
- <p class="show-ads">
13
- Please allow ads on our site
14
- </p>
15
- <p>Looks like you're using an ad blocker. We rely on advertising to help fund our site to keep it 100% free</p>
16
- <div class="btn-container mx-auto">
17
- <div class="bg-layer"></div>
18
- <button class="allow-ads-btn">Allow ads</button>
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
- <!-- Tab panes -->
59
- <div class="tab-content">
60
- <div class="tab-pane active" id="home" role="tabpanel">
61
- <ol class="listContainer">
62
- <li class="listItem">Click the AdBlock icon
63
- <img width="18px" loading="lazy" src="/assets/images/adblock.svg" alt="AdBlock image">
64
- in the browser extension area on the upper right-hand corner. (You may see a small number
65
- covering
66
- part of
67
- the icon.)
68
- </li>
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
- </div>
132
- </section>
133
- </div>
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 -%}
@@ -0,0 +1,5 @@
1
+ <div class="toaster">
2
+ <div class="toaster__body">
3
+ <div class="toaster__message"></div>
4
+ </div>
5
+ </div>
@@ -1,38 +1,56 @@
1
- {% assign path = page.jsonFile %}
2
- {% assign jsonPath = site.data[path] %}
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
- <div class="row">
6
- <div class="col-xl-3 col-lg-12">
7
- <div class="row">
8
- <div class="col-xl-3 p-0">
9
- <div class="feature">
10
- <img src="/assets/images/left_obj_01.png" alt="" {%- if site.crossorigin -%} crossorigin {%-
11
- endif -%}>
12
- <span class="site-no"> {{dataToShow.featureNo}}</span>
13
- <h5 class="title">{{dataToShow.feature_title}}</h5>
14
- <p class="description">{{dataToShow.feature_description}}</p>
15
- </div>
16
- </div>
17
- </div>
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
- <div class="col-xl-9 col-lg-12">
20
- <div class="row text-center">
21
- {% for entry in dataToShow.featureList %}
22
- <div class="col-lg-4 col-md-6 my-3">
23
- <div class="card-body h-100">
24
- <i loading="lazy" class="{{ entry.fa_class }} FA"></i>
25
- <h5 class="card-title">
26
- {{ entry.feature_heading }}
27
- </h5>
28
- <p class="card-text" style="color: #a7a7a7;
29
- font-size: 14px;">{{ entry.feature_text}}</p>
30
- </div>
31
- </div>
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 rel="stylesheet" href="{{ 'css/feature.css' | relative_url }}" {%- if site.crossorigin -%} crossorigin {%- endif
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
+ />
@@ -1,59 +1,508 @@
1
1
  {%- if site.rollbarToken -%}
2
2
  <script>
3
- var _rollbarConfig = {
4
- accessToken: "{{site.rollbarToken}}",
5
- captureUncaught: true,
6
- captureUnhandledRejections: true,
7
- payload: {
8
- environment: "production"
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
- !function (r) { var e = {}; function o(n) { if (e[n]) return e[n].exports; var t = e[n] = { i: n, l: !1, exports: {} }; return r[n].call(t.exports, t, t.exports, o), t.l = !0, t.exports } o.m = r, o.c = e, o.d = function (r, e, n) { o.o(r, e) || Object.defineProperty(r, e, { enumerable: !0, get: n }) }, o.r = function (r) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(r, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(r, "__esModule", { value: !0 }) }, o.t = function (r, e) { if (1 & e && (r = o(r)), 8 & e) return r; if (4 & e && "object" == typeof r && r && r.__esModule) return r; var n = Object.create(null); if (o.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: r }), 2 & e && "string" != typeof r) for (var t in r) o.d(n, t, function (e) { return r[e] }.bind(null, t)); return n }, o.n = function (r) { var e = r && r.__esModule ? function () { return r.default } : function () { return r }; return o.d(e, "a", e), e }, o.o = function (r, e) { return Object.prototype.hasOwnProperty.call(r, e) }, o.p = "", o(o.s = 0) }([function (r, e, o) { "use strict"; var n = o(1), t = o(5); _rollbarConfig = _rollbarConfig || {}, _rollbarConfig.rollbarJsUrl = _rollbarConfig.rollbarJsUrl || "https://cdn.rollbar.com/rollbarjs/refs/tags/v2.25.2/rollbar.min.js", _rollbarConfig.async = void 0 === _rollbarConfig.async || _rollbarConfig.async; var a = n.setupShim(window, _rollbarConfig), l = t(_rollbarConfig); window.rollbar = n.Rollbar, a.loadFull(window, document, !_rollbarConfig.async, _rollbarConfig, l) }, function (r, e, o) { "use strict"; var n = o(2), t = o(3); function a(r) { return function () { try { return r.apply(this, arguments) } catch (r) { try { console.error("[Rollbar]: Internal error", r) } catch (r) { } } } } var l = 0; function i(r, e) { this.options = r, this._rollbarOldOnError = null; var o = l++; this.shimId = function () { return o }, "undefined" != typeof window && window._rollbarShims && (window._rollbarShims[o] = { handler: e, messages: [] }) } var s = o(4), d = function (r, e) { return new i(r, e) }, c = function (r) { return new s(d, r) }; function u(r) { return a((function () { var e = this, o = Array.prototype.slice.call(arguments, 0), n = { shim: e, method: r, args: o, ts: new Date }; window._rollbarShims[this.shimId()].messages.push(n) })) } i.prototype.loadFull = function (r, e, o, n, t) { var l = !1, i = e.createElement("script"), s = e.getElementsByTagName("script")[0], d = s.parentNode; i.crossOrigin = "", i.src = n.rollbarJsUrl, o || (i.async = !0), i.onload = i.onreadystatechange = a((function () { if (!(l || this.readyState && "loaded" !== this.readyState && "complete" !== this.readyState)) { i.onload = i.onreadystatechange = null; try { d.removeChild(i) } catch (r) { } l = !0, function () { var e; if (void 0 === r._rollbarDidLoad) { e = new Error("rollbar.js did not load"); for (var o, n, a, l, i = 0; o = r._rollbarShims[i++];)for (o = o.messages || []; n = o.shift();)for (a = n.args || [], i = 0; i < a.length; ++i)if ("function" == typeof (l = a[i])) { l(e); break } } "function" == typeof t && t(e) }() } })), d.insertBefore(i, s) }, i.prototype.wrap = function (r, e, o) { try { var n; if (n = "function" == typeof e ? e : function () { return e || {} }, "function" != typeof r) return r; if (r._isWrap) return r; if (!r._rollbar_wrapped && (r._rollbar_wrapped = function () { o && "function" == typeof o && o.apply(this, arguments); try { return r.apply(this, arguments) } catch (o) { var e = o; throw e && ("string" == typeof e && (e = new String(e)), e._rollbarContext = n() || {}, e._rollbarContext._wrappedSource = r.toString(), window._rollbarWrappedError = e), e } }, r._rollbar_wrapped._isWrap = !0, r.hasOwnProperty)) for (var t in r) r.hasOwnProperty(t) && (r._rollbar_wrapped[t] = r[t]); return r._rollbar_wrapped } catch (e) { return r } }; for (var p = "log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,captureEvent,captureDomContentLoaded,captureLoad".split(","), f = 0; f < p.length; ++f)i.prototype[p[f]] = u(p[f]); r.exports = { setupShim: function (r, e) { if (r) { var o = e.globalAlias || "Rollbar"; if ("object" == typeof r[o]) return r[o]; r._rollbarShims = {}, r._rollbarWrappedError = null; var l = new c(e); return a((function () { e.captureUncaught && (l._rollbarOldOnError = r.onerror, n.captureUncaughtExceptions(r, l, !0), e.wrapGlobalEventHandlers && t(r, l, !0)), e.captureUnhandledRejections && n.captureUnhandledRejections(r, l, !0); var a = e.autoInstrument; return !1 !== e.enabled && (void 0 === a || !0 === a || function (r) { return !("object" != typeof r || void 0 !== r.page && !r.page) }(a)) && r.addEventListener && (r.addEventListener("load", l.captureLoad.bind(l)), r.addEventListener("DOMContentLoaded", l.captureDomContentLoaded.bind(l))), r[o] = l, l }))() } }, Rollbar: c } }, function (r, e, o) { "use strict"; function n(r, e, o, n) { r._rollbarWrappedError && (n[4] || (n[4] = r._rollbarWrappedError), n[5] || (n[5] = r._rollbarWrappedError._rollbarContext), r._rollbarWrappedError = null); var t = e.handleUncaughtException.apply(e, n); o && o.apply(r, n), "anonymous" === t && (e.anonymousErrorsPending += 1) } r.exports = { captureUncaughtExceptions: function (r, e, o) { if (r) { var t; if ("function" == typeof e._rollbarOldOnError) t = e._rollbarOldOnError; else if (r.onerror) { for (t = r.onerror; t._rollbarOldOnError;)t = t._rollbarOldOnError; e._rollbarOldOnError = t } e.handleAnonymousErrors(); var a = function () { var o = Array.prototype.slice.call(arguments, 0); n(r, e, t, o) }; o && (a._rollbarOldOnError = t), r.onerror = a } }, captureUnhandledRejections: function (r, e, o) { if (r) { "function" == typeof r._rollbarURH && r._rollbarURH.belongsToShim && r.removeEventListener("unhandledrejection", r._rollbarURH); var n = function (r) { var o, n, t; try { o = r.reason } catch (r) { o = void 0 } try { n = r.promise } catch (r) { n = "[unhandledrejection] error getting `promise` from event" } try { t = r.detail, !o && t && (o = t.reason, n = t.promise) } catch (r) { } o || (o = "[unhandledrejection] error getting `reason` from event"), e && e.handleUnhandledRejection && e.handleUnhandledRejection(o, n) }; n.belongsToShim = o, r._rollbarURH = n, r.addEventListener("unhandledrejection", n) } } } }, function (r, e, o) { "use strict"; function n(r, e, o) { if (e.hasOwnProperty && e.hasOwnProperty("addEventListener")) { for (var n = e.addEventListener; n._rollbarOldAdd && n.belongsToShim;)n = n._rollbarOldAdd; var t = function (e, o, t) { n.call(this, e, r.wrap(o), t) }; t._rollbarOldAdd = n, t.belongsToShim = o, e.addEventListener = t; for (var a = e.removeEventListener; a._rollbarOldRemove && a.belongsToShim;)a = a._rollbarOldRemove; var l = function (r, e, o) { a.call(this, r, e && e._rollbar_wrapped || e, o) }; l._rollbarOldRemove = a, l.belongsToShim = o, e.removeEventListener = l } } r.exports = function (r, e, o) { if (r) { var t, a, l = "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(","); for (t = 0; t < l.length; ++t)r[a = l[t]] && r[a].prototype && n(e, r[a].prototype, o) } } }, function (r, e, o) { "use strict"; function n(r, e) { this.impl = r(e, this), this.options = e, function (r) { for (var e = function (r) { return function () { var e = Array.prototype.slice.call(arguments, 0); if (this.impl[r]) return this.impl[r].apply(this.impl, e) } }, o = "log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,_createItem,wrap,loadFull,shimId,captureEvent,captureDomContentLoaded,captureLoad".split(","), n = 0; n < o.length; n++)r[o[n]] = e(o[n]) }(n.prototype) } n.prototype._swapAndProcessMessages = function (r, e) { var o, n, t; for (this.impl = r(this.options); o = e.shift();)n = o.method, t = o.args, this[n] && "function" == typeof this[n] && ("captureDomContentLoaded" === n || "captureLoad" === n ? this[n].apply(this, [t[0], o.ts]) : this[n].apply(this, t)); return this }, r.exports = n }, function (r, e, o) { "use strict"; r.exports = function (r) { return function (e) { if (!e && !window._rollbarInitialized) { for (var o, n, t = (r = r || {}).globalAlias || "Rollbar", a = window.rollbar, l = function (r) { return new a(r) }, i = 0; o = window._rollbarShims[i++];)n || (n = o.handler), o.handler._swapAndProcessMessages(l, o.messages); window[t] = n, window._rollbarInitialized = !0 } } } }]);
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
- {%- include adblocker.html -%}
15
- {% assign scriptData = site.data.[page.folderName][lang][file] %}
16
- {%- assign dataAtt = "data-folderName='$folderName' data-lang='$lang' data-fileName='$fileName' data-tool='$tool'" -%}
17
- {%- assign $folderName = '$folderName' -%}
18
- <script defer src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" {%- if site.crossorigin -%} {{ }}
19
- crossorigin {%- endif -%}></script>
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
- <script defer="defer" src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js"
26
- integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script>
27
- {{site.data.customcdns.customcdns.jsfiles}}
28
- {%- if scriptData.jsfilepaths -%}
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 defer src="{{path}}" data-folderName="{{page.folderName}}" data-lang="{{page.lang}}"
31
- data-fileName="{{page.fileName}}" data-tool="{{page.tool}}" data-permalink="{{page.permalink}}" {%- if
32
- site.crossorigin -%} {{ }} crossorigin {%- endif -%}></script>
33
- {%- endfor -%}
34
- {%- endif -%}
35
- {%- if scriptData.jscdns -%}
36
- {%- for item in scriptData.jscdns -%}
37
- {{item | replace:"$folderName", page.folderName | replace: "$fileName", page.fileName | replace: "$lang", page.lang |
38
- replace: "$tool", page.tool }}
39
- {%- endfor -%}
40
- {%- endif -%}
41
-
42
- {%- if page.layout == "frame" -%}
43
- {%- assign font = "PT Sans" -%}
44
- {%- endif -%}
45
-
46
- {%- if page.layout == "photo-effects-home" -%}
47
- {%- assign font = "PT Sans" -%}
48
- {%- endif -%}
49
-
50
- {%- if page.layout == "calculator" -%}
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" />
@@ -192,7 +192,8 @@
192
192
  </div>
193
193
  </div>
194
194
  </section>
195
- {%- assign showFaqs= true -%} {%- for item in site.noFaqsList -%} {%- if
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
+ }
@@ -1,44 +1,68 @@
1
- $('.nav-tabs a.nav-tab-link').click(function () {
2
- $('.nav-tabs a.nav-tab-link').removeClass('active')
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('#detect')
6
- const wrapper = document.querySelector('.wrapper')
7
- const closePopup = document.getElementsByClassName('closePopup')
8
- const extensions = document.querySelector('.extensions')
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
- location.reload()
12
- }
30
+ const refresh = () => {
31
+ location.reload();
32
+ };
13
33
 
14
- let adsBtn = document.querySelector('.allow-ads-btn')
15
- adsBtn.addEventListener('click', () => {
16
- extensions.classList.add('show')
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
- 'ad',
21
- 'ads',
22
- 'adsbox',
23
- 'doubleclick',
24
- 'ad-placement',
25
- 'ad-placeholder',
26
- 'adbadge',
27
- 'BannerAd',
28
- ]
29
- for (let item of adClasses) {
30
- detect.classList.add(item)
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('display')
34
- if (!wrapper.classList.contains('show')) {
35
- getProperty == 'none'
36
- ? wrapper.classList.add('show')
37
- : wrapper.classList.remove('show')
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.2
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-14 00:00:00.000000000 Z
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