appscms-tools-theme 4.5.9 → 4.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/_data/about/en/about.json +16 -16
  3. data/_data/blog/nav.json +14 -14
  4. data/_data/feature/en/batch-conversion.json +192 -192
  5. data/_data/feature/en/compress-pdf.json +305 -305
  6. data/_data/feature/en/devtools.json +321 -321
  7. data/_data/feature/en/face-detection.json +156 -156
  8. data/_data/feature/en/split-pdf.json +221 -221
  9. data/_data/feature/en/theframe.json +160 -160
  10. data/_data/footer/en/data.json +2 -2
  11. data/_data/header/en/data.json +412 -412
  12. data/_data/home/en/en.json +324 -324
  13. data/_data/home/en/posters.json +322 -322
  14. data/_includes/alternates/alternates.html +46 -43
  15. data/_includes/appscms/customblog/contenttool-recent-posts.html +94 -94
  16. data/_includes/appscms/customblog/pageRelatedPosts.html +62 -62
  17. data/_includes/appscms/customblog/recentposts.html +67 -67
  18. data/_includes/appscms/customblog/relatedBlogs.html +82 -82
  19. data/_includes/appscms/customblog/relatedposts.html +193 -193
  20. data/_includes/appscms/extras/appscms-postbox.html +57 -57
  21. data/_includes/appscms/featurePageAuthors/featurePageAuthors.html +85 -85
  22. data/_includes/appscms/head/bloghead.html +128 -128
  23. data/_includes/appscms/head/head.html +3 -2
  24. data/_includes/appscms/headings/contenttool-headings.html +33 -33
  25. data/_includes/appscms/headings/devtool-headings.html +38 -38
  26. data/_includes/appscms/home/contenttool-feature-boxes.html +19 -19
  27. data/_includes/appscms/home/devtool-feature-boxes.html +70 -70
  28. data/_includes/appscms/infographics/infographics.html +166 -166
  29. data/_includes/appscms/loaders/loader.html +4 -4
  30. data/_includes/appscms/navbars/devtool-navbar.html +50 -50
  31. data/_includes/appscms/navbars/devtool-toolbar.html +100 -100
  32. data/_includes/appscms/recent-posts/recent_posts.html +90 -90
  33. data/_includes/appscms/recent-posts/related_categories_post.html +194 -194
  34. data/_includes/appscms/searchbar/devtool-searchbar.html +63 -63
  35. data/_includes/appscms/usp/usp.html +90 -90
  36. data/_includes/author_bio.html +41 -41
  37. data/_includes/authorpagehead/index.html +47 -47
  38. data/_includes/authors/authors.html +39 -39
  39. data/_includes/batch-conversion.html +141 -141
  40. data/_includes/bookmark.html +6 -6
  41. data/_includes/cssfile/links.html +54 -54
  42. data/_includes/custom-head.html +138 -138
  43. data/_includes/customCode.html +1 -1
  44. data/_includes/customScripts.html +1 -1
  45. data/_includes/customblog/pageRelatedPosts.html +87 -87
  46. data/_includes/customblog/recentposts.html +67 -67
  47. data/_includes/customblog/relatedBlogs.html +86 -86
  48. data/_includes/customblog/relatedposts.html +201 -201
  49. data/_includes/dropdown/langdropdown.html +32 -32
  50. data/_includes/feature.html +39 -39
  51. data/_includes/featurePageAuthors/featurePageAuthors.html +101 -101
  52. data/_includes/footer/index.html +537 -537
  53. data/_includes/google-analytics.html +32 -32
  54. data/_includes/head/index.html +623 -623
  55. data/_includes/header/blogHeader.html +34 -34
  56. data/_includes/header/index.html +192 -192
  57. data/_includes/infographics/infographics.html +241 -241
  58. data/_includes/paginationBlogPage.html +70 -70
  59. data/_includes/postbox.html +65 -65
  60. data/_includes/script.html +493 -493
  61. data/_includes/section/count.html +32 -32
  62. data/_includes/section/recent_posts.html +94 -94
  63. data/_includes/section/related_categories_post.html +196 -196
  64. data/_includes/share/socialshare.html +21 -21
  65. data/_includes/userTracking.html +14 -14
  66. data/_layouts/aboutUs.html +175 -175
  67. data/_layouts/allAuthors.html +131 -131
  68. data/_layouts/appscms-about.html +163 -163
  69. data/_layouts/appscms-audio.html +33 -33
  70. data/_layouts/appscms-author.html +436 -436
  71. data/_layouts/appscms-authors.html +145 -145
  72. data/_layouts/appscms-batch.html +141 -141
  73. data/_layouts/appscms-calculator.html +93 -93
  74. data/_layouts/appscms-categories.html +26 -26
  75. data/_layouts/appscms-contact.html +132 -132
  76. data/_layouts/appscms-disclaimer.html +124 -124
  77. data/_layouts/appscms-download.html +289 -289
  78. data/_layouts/appscms-feature-result.html +96 -96
  79. data/_layouts/appscms-help.html +25 -25
  80. data/_layouts/appscms-imagekit.html +96 -96
  81. data/_layouts/appscms-post.html +243 -243
  82. data/_layouts/appscms-privacy-policy.html +781 -781
  83. data/_layouts/appscms-terms-and-conditions.html +646 -646
  84. data/_layouts/appscms-video.html +33 -33
  85. data/_layouts/audio.html +33 -33
  86. data/_layouts/author.html +409 -409
  87. data/_layouts/batch.html +177 -177
  88. data/_layouts/blog-1.html +116 -116
  89. data/_layouts/blog.html +131 -131
  90. data/_layouts/calculator.html +99 -99
  91. data/_layouts/contenttool-feature.html +45 -45
  92. data/_layouts/contenttool-home.html +53 -53
  93. data/_layouts/devtool-blog.html +132 -132
  94. data/_layouts/devtool-feature.html +54 -54
  95. data/_layouts/devtool-home.html +53 -53
  96. data/_layouts/devtools.html +57 -57
  97. data/_layouts/feature-1.html +406 -406
  98. data/_layouts/feature.html +351 -351
  99. data/_layouts/featureResultPage.html +82 -82
  100. data/_layouts/frame.html +222 -222
  101. data/_layouts/home.html +281 -281
  102. data/_layouts/homeResultPage.html +32 -32
  103. data/_layouts/imagekit.html +308 -308
  104. data/_layouts/photo-effects-home.html +190 -190
  105. data/_layouts/post.html +233 -233
  106. data/assets/app.js +75 -75
  107. data/assets/css/appscms-blog.css +505 -505
  108. data/assets/css/appscms-contenttool.css +1384 -1384
  109. data/assets/css/appscms-home.css +5 -5
  110. data/assets/css/appscms-imagekit.css +855 -855
  111. data/assets/css/appscms-variables.css +19 -19
  112. data/assets/css/blog.css +510 -510
  113. data/assets/css/calculators.css +46 -46
  114. data/assets/css/devtool-main.css +1350 -1350
  115. data/assets/css/devtools.css +105 -105
  116. data/assets/css/feature-1.css +293 -293
  117. data/assets/css/imagekit copy.css +848 -848
  118. data/assets/css/imagekit.css +848 -848
  119. data/assets/css/tools.css +1847 -1847
  120. data/assets/images/close-button.svg +31 -31
  121. data/assets/images/digipaint.svg +6 -6
  122. data/assets/images/logo.svg +2 -2
  123. data/assets/images/manthink.svg +3552 -3552
  124. data/assets/images/search-icon.svg +2 -2
  125. data/assets/js/batch.js +219 -219
  126. data/assets/js/devtools.js +81 -81
  127. data/assets/js/sharePage.js +65 -65
  128. data/assets/js/usageTracking.js +143 -143
  129. data/assets/js/usageTrackingEvents.js +6 -6
  130. data/assets/js/webvitals.js +4 -4
  131. metadata +3 -3
@@ -1,38 +1,38 @@
1
- {%- if page.layout == "appscms-audio" or page.layout == "appscms-video" -%} {%-
2
- else -%}
3
- <div class="container heading" style="height: 40vh;">
4
- <div class="contenttool-bg-lite" style="margin-top: 20vh;"></div>
5
- <div class="row">
6
- <div
7
- class="container mt-3 grid-contentttool-h1"
8
- >
9
- {%- if pageData.H1 -%} {%- assign h1 = pageData.H1 -%} {%- elsif
10
- pageData.h1 -%} {%- assign h1 = pageData.h1 -%} {%- endif -%} {%- if
11
- pageData.H2 -%} {%- assign h2 = pageData.H2 -%} {%- elsif pageData.h2 -%}
12
- {%- assign h2 = pageData.h2 -%} {%- endif -%}
13
- <div class="heading-landing-text">
14
- <h1 class="text-center appscms-h1 contenttool-landing-h1 text-white">
15
- {%- for word in h1 -%} {%- if forloop.first == true -%} {{word |
16
- capitalize }} {%- else -%} {{word}} {%- endif -%} {%- endfor -%}
17
- </h1>
18
- <h2 class="text-center appscms-h2 contenttool-landing-h2 text-white">
19
- {%- for word in h2 -%} {%- if forloop.first == true -%} {{word |
20
- capitalize }} {%- else -%} {{word}} {%- endif -%} {%- endfor -%}
21
- </h2>
22
- <div class="random-spans">
23
- <span class="span1" style="position: absolute; transform: rotate(10deg); left: 20vw; top: 20vh; font-size: 38px; color: white;">+</span>
24
- <span class="span2" style="position: absolute; transform: rotate(-20deg); left: 40vw; top: 30vh; font-size: 24px; color: white;">+</span>
25
- <span class="span3" style="position: absolute; transform: rotate(5deg); right: 20vw; top: 40vh; font-size: 28px; color: white;">+</span>
26
- <span class="span4" style="position: absolute; transform: rotate(-15deg); left: 77vw; bottom: 60vh; font-size: 22px; color: white;">+</span>
27
- <span class="span5" style="position: absolute; transform: rotate(25deg); left: 10vw; bottom: 30vh; font-size: 24px; color: white;">+</span>
28
- <span class="span6" style="position: absolute; transform: rotate(0deg); right: 10vw; bottom: 20vh; font-size: 14px; color: white;">+</span>
29
- <span class="span7" style="position: absolute; transform: rotate(-10deg); left: 50vw; top: 10vh; font-size: 26px; color: white;">+</span>
30
- <span class="span8" style="position: absolute; transform: rotate(15deg); right: 10vw; bottom: 30vh; font-size: 35px; color: white;">+</span>
31
- <span class="span9" style="position: absolute; transform: rotate(-5deg); right: 5vw; top: 20vh; font-size: 30px; color: white;">+</span>
32
- <span class="span10" style="position: absolute; transform: rotate(8deg); left: 15vw; bottom: 15vh; font-size: 32px; color: white;">+</span>
33
- </div>
34
- </div>
35
- </div>
36
- </div>
37
- </div>
38
- {%- endif -%}
1
+ {%- if page.layout == "appscms-audio" or page.layout == "appscms-video" -%} {%-
2
+ else -%}
3
+ <div class="container heading" style="height: 40vh;">
4
+ <div class="contenttool-bg-lite" style="margin-top: 20vh;"></div>
5
+ <div class="row">
6
+ <div
7
+ class="container mt-3 grid-contentttool-h1"
8
+ >
9
+ {%- if pageData.H1 -%} {%- assign h1 = pageData.H1 -%} {%- elsif
10
+ pageData.h1 -%} {%- assign h1 = pageData.h1 -%} {%- endif -%} {%- if
11
+ pageData.H2 -%} {%- assign h2 = pageData.H2 -%} {%- elsif pageData.h2 -%}
12
+ {%- assign h2 = pageData.h2 -%} {%- endif -%}
13
+ <div class="heading-landing-text">
14
+ <h1 class="text-center appscms-h1 contenttool-landing-h1 text-white">
15
+ {%- for word in h1 -%} {%- if forloop.first == true -%} {{word |
16
+ capitalize }} {%- else -%} {{word}} {%- endif -%} {%- endfor -%}
17
+ </h1>
18
+ <h2 class="text-center appscms-h2 contenttool-landing-h2 text-white">
19
+ {%- for word in h2 -%} {%- if forloop.first == true -%} {{word |
20
+ capitalize }} {%- else -%} {{word}} {%- endif -%} {%- endfor -%}
21
+ </h2>
22
+ <div class="random-spans">
23
+ <span class="span1" style="position: absolute; transform: rotate(10deg); left: 20vw; top: 20vh; font-size: 38px; color: white;">+</span>
24
+ <span class="span2" style="position: absolute; transform: rotate(-20deg); left: 40vw; top: 30vh; font-size: 24px; color: white;">+</span>
25
+ <span class="span3" style="position: absolute; transform: rotate(5deg); right: 20vw; top: 40vh; font-size: 28px; color: white;">+</span>
26
+ <span class="span4" style="position: absolute; transform: rotate(-15deg); left: 77vw; bottom: 60vh; font-size: 22px; color: white;">+</span>
27
+ <span class="span5" style="position: absolute; transform: rotate(25deg); left: 10vw; bottom: 30vh; font-size: 24px; color: white;">+</span>
28
+ <span class="span6" style="position: absolute; transform: rotate(0deg); right: 10vw; bottom: 20vh; font-size: 14px; color: white;">+</span>
29
+ <span class="span7" style="position: absolute; transform: rotate(-10deg); left: 50vw; top: 10vh; font-size: 26px; color: white;">+</span>
30
+ <span class="span8" style="position: absolute; transform: rotate(15deg); right: 10vw; bottom: 30vh; font-size: 35px; color: white;">+</span>
31
+ <span class="span9" style="position: absolute; transform: rotate(-5deg); right: 5vw; top: 20vh; font-size: 30px; color: white;">+</span>
32
+ <span class="span10" style="position: absolute; transform: rotate(8deg); left: 15vw; bottom: 15vh; font-size: 32px; color: white;">+</span>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ {%- endif -%}
@@ -1,20 +1,20 @@
1
- <div class="container" id="appscms-tools-section">
2
- <div class="appscms-contenttool-container" id="appscms-tools-section-row">
3
- {% for item in pageData.features %}
4
- <a href="{{item.url}}">
5
- <div class="appscms-contenttool-tool">
6
- <div class="contentool-tool-image-background" style="background: {{item.color}};">
7
- <img id="contenttool-icon-img" crossorigin="anonymous" src="{{item.icon}}" alt="img" />
8
- </div>
9
- <div class="contenttool-card-info">
10
- <p class="contenttool-tool-heading">{{item.name}}</p>
11
- <p class="contenttool-tool-text">{{item.description}}</p>
12
- </div>
13
- </div>
14
- </a>
15
- {% endfor %}
16
- </div>
17
- </div>
18
- </div>
19
- </div>
1
+ <div class="container" id="appscms-tools-section">
2
+ <div class="appscms-contenttool-container" id="appscms-tools-section-row">
3
+ {% for item in pageData.features %}
4
+ <a href="{{item.url}}">
5
+ <div class="appscms-contenttool-tool">
6
+ <div class="contentool-tool-image-background" style="background: {{item.color}};">
7
+ <img id="contenttool-icon-img" crossorigin="anonymous" src="{{item.icon}}" alt="img" />
8
+ </div>
9
+ <div class="contenttool-card-info">
10
+ <p class="contenttool-tool-heading">{{item.name}}</p>
11
+ <p class="contenttool-tool-text">{{item.description}}</p>
12
+ </div>
13
+ </div>
14
+ </a>
15
+ {% endfor %}
16
+ </div>
17
+ </div>
18
+ </div>
19
+ </div>
20
20
 
@@ -1,71 +1,71 @@
1
- <style>
2
- .appscms-contenttool-container {
3
- display: grid;
4
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
5
- gap: 16px;
6
- }
7
- .appscms-contenttool-tool {
8
- background-color: white;
9
- padding: 21px;
10
- border-radius: 13px;
11
- transition: all 0.2s ease-in-out;
12
- }
13
- .appscms-contenttool-tool:hover {
14
- transform: scale(1.03);
15
- filter: saturate(1.3);
16
- }
17
- .contentool-tool-image-background {
18
- background-color: rgba(255, 255, 255, 0.87);
19
- width: 58px;
20
- height: 58px;
21
- display: flex;
22
- align-items: center;
23
- justify-content: center;
24
- border-radius: 12px;
25
- }
26
-
27
- #contenttool-icon-img{
28
- width: 45px;
29
- }
30
- .background img {
31
- width: 100%;
32
- height: auto;
33
- border-radius: 10px;
34
- }
35
- .contenttool-tool-heading {
36
- font-weight: 600;
37
- font-size: 16px;
38
- color: #0c0c0c !important;
39
- margin-top: 10px;
40
- }
41
- .contenttool-tool-text{
42
- font-weight: 500;
43
- font-size: 13px;
44
- color: rgb(29, 29, 29) !important;
45
- margin-top: -5px;
46
- }
47
- #text-black{
48
- color: rgb(39, 39, 39) !important;
49
- font-weight: 450;
50
- }
51
- </style>
52
- <div class="container" id="appscms-tools-section">
53
- <div class="appscms-contenttool-container">
54
- {% for item in pageData.features %}
55
- <a href="{{item.url}}">
56
- <div class="appscms-contenttool-tool" style="background: {{item.color}};">
57
- <div class="contentool-tool-image-background">
58
- <img id="contenttool-icon-img" crossorigin="anonymous" src="{{item.icon}}" alt="img" />
59
- </div>
60
- <div class="contenttool-card-info">
61
- <p class="contenttool-tool-heading">{{item.name}}</p>
62
- <p class="contenttool-tool-textk" id="text-black">{{item.description}}</p>
63
- </div>
64
- </div>
65
- </a>
66
- {% endfor %}
67
- </div>
68
- </div>
69
- </div>
70
- </div>
1
+ <style>
2
+ .appscms-contenttool-container {
3
+ display: grid;
4
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
5
+ gap: 16px;
6
+ }
7
+ .appscms-contenttool-tool {
8
+ background-color: white;
9
+ padding: 21px;
10
+ border-radius: 13px;
11
+ transition: all 0.2s ease-in-out;
12
+ }
13
+ .appscms-contenttool-tool:hover {
14
+ transform: scale(1.03);
15
+ filter: saturate(1.3);
16
+ }
17
+ .contentool-tool-image-background {
18
+ background-color: rgba(255, 255, 255, 0.87);
19
+ width: 58px;
20
+ height: 58px;
21
+ display: flex;
22
+ align-items: center;
23
+ justify-content: center;
24
+ border-radius: 12px;
25
+ }
26
+
27
+ #contenttool-icon-img{
28
+ width: 45px;
29
+ }
30
+ .background img {
31
+ width: 100%;
32
+ height: auto;
33
+ border-radius: 10px;
34
+ }
35
+ .contenttool-tool-heading {
36
+ font-weight: 600;
37
+ font-size: 16px;
38
+ color: #0c0c0c !important;
39
+ margin-top: 10px;
40
+ }
41
+ .contenttool-tool-text{
42
+ font-weight: 500;
43
+ font-size: 13px;
44
+ color: rgb(29, 29, 29) !important;
45
+ margin-top: -5px;
46
+ }
47
+ #text-black{
48
+ color: rgb(39, 39, 39) !important;
49
+ font-weight: 450;
50
+ }
51
+ </style>
52
+ <div class="container" id="appscms-tools-section">
53
+ <div class="appscms-contenttool-container">
54
+ {% for item in pageData.features %}
55
+ <a href="{{item.url}}">
56
+ <div class="appscms-contenttool-tool" style="background: {{item.color}};">
57
+ <div class="contentool-tool-image-background">
58
+ <img id="contenttool-icon-img" crossorigin="anonymous" src="{{item.icon}}" alt="img" />
59
+ </div>
60
+ <div class="contenttool-card-info">
61
+ <p class="contenttool-tool-heading">{{item.name}}</p>
62
+ <p class="contenttool-tool-textk" id="text-black">{{item.description}}</p>
63
+ </div>
64
+ </div>
65
+ </a>
66
+ {% endfor %}
67
+ </div>
68
+ </div>
69
+ </div>
70
+ </div>
71
71
 
@@ -1,166 +1,166 @@
1
- <style>
2
- .modal1 {
3
- display: none;
4
- position: fixed;
5
- z-index: 1000;
6
- left: 0;
7
- top: 0;
8
- width: 100%;
9
- height: 100%;
10
- overflow: auto;
11
- background-color: rgba(59, 58, 58, 0.9);
12
- }
13
- .modal1-content1 {
14
- margin: auto;
15
- display: block;
16
- width: 80%;
17
- max-width: 800px;
18
- margin-top: 20px;
19
- }
20
- .modal1-body img {
21
- width: 100%;
22
- height: auto;
23
- }
24
- .close1 {
25
- position: absolute;
26
- top: 10px;
27
- right: 10px;
28
- font-size: 24px;
29
- color: #fff;
30
- cursor: pointer;
31
- }
32
- .close1:hover {
33
- color: #ccc;
34
- }
35
- </style>
36
- <div class="inforgraphics_section">
37
- <h3 class="text-center w-100 mb-5"><b>Other useful information</b></h3>
38
- <div class="wrapper">
39
- <i id="left" class="fas fa-angle-left"></i>
40
- <div class="carousel">
41
- <div class="carousel-inner">
42
- {%- if pageData.infographics -%} {% for item in pageData.infographics %}
43
- <div class="slide">
44
- <img
45
- loading="lazy"
46
- src="{{ item.image }}"
47
- alt="img"
48
- draggable="false"
49
- class="infographic-img"
50
- onclick="openModal1('{{ item.image }}')"
51
- />
52
- <p class="infographic-desc">{{ item.description | capitalize }}</p>
53
- </div>
54
- {% endfor %} {%- endif -%}
55
- </div>
56
- </div>
57
- <i id="right" class="fas fa-angle-right"></i>
58
- </div>
59
- </div>
60
- <div id="imageModal1" class="modal1" onclick="closeModal1()">
61
- <span class="close1" onclick="closeModal1()">&times;</span>
62
- <div class="modal1-content1">
63
- <div class="modal1-body">
64
- <img id="modal1Image" src="" alt="Image">
65
- </div>
66
- </div>
67
- </div>
68
- <script>
69
- function openModal1(imageSrc) {
70
- var modal1 = document.getElementById('imageModal1');
71
- var modal1Img = document.getElementById('modal1Image');
72
- modal1.style.display = "block";
73
- modal1Img.src = imageSrc;
74
- }
75
- function closeModal1() {
76
- var modal1 = document.getElementById('imageModal1');
77
- modal1.style.display = "none";
78
- }
79
- document.addEventListener('click', function(event) {
80
- var modal1 = document.getElementById('imageModal1');
81
- if (event.target === modal1) {
82
- closeModal1();
83
- }
84
- });
85
- const carousel = document.querySelector(".carousel-inner"),
86
- firstImg = carousel.querySelectorAll("img")[0],
87
- arrowIcons = document.querySelectorAll(".wrapper i");
88
- const numImages = carousel.querySelectorAll("img").length;
89
- const isMobile = window.matchMedia("(max-width: 767px)").matches; // Check if screen width is less than or equal to 767px
90
- if (numImages > 3) {
91
- arrowIcons[1].style.display = "block";
92
- } else {
93
- arrowIcons[0].style.display = "none";
94
- arrowIcons[1].style.display = "none";
95
- }
96
- let isDragStart = false,
97
- isDragging = false,
98
- prevPageX,
99
- prevScrollLeft,
100
- positionDiff;
101
- const showHideIcons = () => {
102
- let scrollWidth = carousel.scrollWidth - carousel.clientWidth; // getting max scrollable width
103
- arrowIcons[0].style.display = carousel.scrollLeft == 0 ? "none" : "block";
104
- arrowIcons[1].style.display =
105
- carousel.scrollLeft == scrollWidth ? "none" : "block";
106
- };
107
- arrowIcons.forEach((icon) => {
108
- icon.addEventListener("click", () => {
109
- let firstImgWidth = firstImg.clientWidth + 40;
110
- const scrollAmount = icon.id === "left" ? -firstImgWidth : firstImgWidth;
111
- carousel.scrollBy({
112
- left: scrollAmount,
113
- behavior: "smooth",
114
- });
115
- setTimeout(() => showHideIcons(), 60); // calling showHideIcons after 60ms
116
- });
117
- });
118
- // const autoSlide = () => {
119
- // // if there is no image left to scroll then return from here
120
- // if (carousel.scrollLeft - (carousel.scrollWidth - carousel.clientWidth) > -1 || carousel.scrollLeft <= 0) return;
121
- // positionDiff = Math.abs(positionDiff); // making positionDiff value to positive
122
- // let firstImgWidth = firstImg.clientWidth + 14;
123
- // // getting difference value that needs to add or reduce from carousel left to take middle img center
124
- // let valDifference = firstImgWidth - positionDiff;
125
- // if (carousel.scrollLeft > prevScrollLeft) { // if user is scrolling to the right
126
- // return carousel.scrollLeft += positionDiff > firstImgWidth / 3 ? valDifference : -positionDiff;
127
- // }
128
- // // if user is scrolling to the left
129
- // carousel.scrollLeft -= positionDiff > firstImgWidth / 3 ? valDifference : -positionDiff;
130
- // }
131
- // const dragStart = (e) => {
132
- // // updatating global variables value on mouse down event
133
- // isDragStart = true;
134
- // prevPageX = e.pageX || e.touches[0].pageX;
135
- // prevScrollLeft = carousel.scrollLeft;
136
- // }
137
- // const dragging = (e) => {
138
- // // scrolling images/carousel to left according to mouse pointer
139
- // if (!isDragStart) return;
140
- // e.preventDefault();
141
- // isDragging = true;
142
- // carousel.classList.add("dragging");
143
- // positionDiff = (e.pageX || e.touches[0].pageX) - prevPageX;
144
- // carousel.scrollLeft = prevScrollLeft - positionDiff;
145
- // showHideIcons();
146
- // }
147
- // const dragStop = () => {
148
- // isDragStart = false;
149
- // carousel.classList.remove("dragging");
150
- // if (!isDragging) return;
151
- // isDragging = false;
152
- // autoSlide();
153
- // }
154
- // carousel.addEventListener("mousedown", dragStart);
155
- // carousel.addEventListener("touchstart", dragStart);
156
- // document.addEventListener("mousemove", dragging);
157
- // carousel.addEventListener("touchmove", dragging);
158
- // document.addEventListener("mouseup", dragStop);
159
- // carousel.addEventListener("touchend", dragStop);
160
- </script>
161
-
162
-
163
-
164
-
165
-
166
-
1
+ <style>
2
+ .modal1 {
3
+ display: none;
4
+ position: fixed;
5
+ z-index: 1000;
6
+ left: 0;
7
+ top: 0;
8
+ width: 100%;
9
+ height: 100%;
10
+ overflow: auto;
11
+ background-color: rgba(59, 58, 58, 0.9);
12
+ }
13
+ .modal1-content1 {
14
+ margin: auto;
15
+ display: block;
16
+ width: 80%;
17
+ max-width: 800px;
18
+ margin-top: 20px;
19
+ }
20
+ .modal1-body img {
21
+ width: 100%;
22
+ height: auto;
23
+ }
24
+ .close1 {
25
+ position: absolute;
26
+ top: 10px;
27
+ right: 10px;
28
+ font-size: 24px;
29
+ color: #fff;
30
+ cursor: pointer;
31
+ }
32
+ .close1:hover {
33
+ color: #ccc;
34
+ }
35
+ </style>
36
+ <div class="inforgraphics_section">
37
+ <h3 class="text-center w-100 mb-5"><b>Other useful information</b></h3>
38
+ <div class="wrapper">
39
+ <i id="left" class="fas fa-angle-left"></i>
40
+ <div class="carousel">
41
+ <div class="carousel-inner">
42
+ {%- if pageData.infographics -%} {% for item in pageData.infographics %}
43
+ <div class="slide">
44
+ <img
45
+ loading="lazy"
46
+ src="{{ item.image }}"
47
+ alt="img"
48
+ draggable="false"
49
+ class="infographic-img"
50
+ onclick="openModal1('{{ item.image }}')"
51
+ />
52
+ <p class="infographic-desc">{{ item.description | capitalize }}</p>
53
+ </div>
54
+ {% endfor %} {%- endif -%}
55
+ </div>
56
+ </div>
57
+ <i id="right" class="fas fa-angle-right"></i>
58
+ </div>
59
+ </div>
60
+ <div id="imageModal1" class="modal1" onclick="closeModal1()">
61
+ <span class="close1" onclick="closeModal1()">&times;</span>
62
+ <div class="modal1-content1">
63
+ <div class="modal1-body">
64
+ <img id="modal1Image" src="" alt="Image">
65
+ </div>
66
+ </div>
67
+ </div>
68
+ <script>
69
+ function openModal1(imageSrc) {
70
+ var modal1 = document.getElementById('imageModal1');
71
+ var modal1Img = document.getElementById('modal1Image');
72
+ modal1.style.display = "block";
73
+ modal1Img.src = imageSrc;
74
+ }
75
+ function closeModal1() {
76
+ var modal1 = document.getElementById('imageModal1');
77
+ modal1.style.display = "none";
78
+ }
79
+ document.addEventListener('click', function(event) {
80
+ var modal1 = document.getElementById('imageModal1');
81
+ if (event.target === modal1) {
82
+ closeModal1();
83
+ }
84
+ });
85
+ const carousel = document.querySelector(".carousel-inner"),
86
+ firstImg = carousel.querySelectorAll("img")[0],
87
+ arrowIcons = document.querySelectorAll(".wrapper i");
88
+ const numImages = carousel.querySelectorAll("img").length;
89
+ const isMobile = window.matchMedia("(max-width: 767px)").matches; // Check if screen width is less than or equal to 767px
90
+ if (numImages > 3) {
91
+ arrowIcons[1].style.display = "block";
92
+ } else {
93
+ arrowIcons[0].style.display = "none";
94
+ arrowIcons[1].style.display = "none";
95
+ }
96
+ let isDragStart = false,
97
+ isDragging = false,
98
+ prevPageX,
99
+ prevScrollLeft,
100
+ positionDiff;
101
+ const showHideIcons = () => {
102
+ let scrollWidth = carousel.scrollWidth - carousel.clientWidth; // getting max scrollable width
103
+ arrowIcons[0].style.display = carousel.scrollLeft == 0 ? "none" : "block";
104
+ arrowIcons[1].style.display =
105
+ carousel.scrollLeft == scrollWidth ? "none" : "block";
106
+ };
107
+ arrowIcons.forEach((icon) => {
108
+ icon.addEventListener("click", () => {
109
+ let firstImgWidth = firstImg.clientWidth + 40;
110
+ const scrollAmount = icon.id === "left" ? -firstImgWidth : firstImgWidth;
111
+ carousel.scrollBy({
112
+ left: scrollAmount,
113
+ behavior: "smooth",
114
+ });
115
+ setTimeout(() => showHideIcons(), 60); // calling showHideIcons after 60ms
116
+ });
117
+ });
118
+ // const autoSlide = () => {
119
+ // // if there is no image left to scroll then return from here
120
+ // if (carousel.scrollLeft - (carousel.scrollWidth - carousel.clientWidth) > -1 || carousel.scrollLeft <= 0) return;
121
+ // positionDiff = Math.abs(positionDiff); // making positionDiff value to positive
122
+ // let firstImgWidth = firstImg.clientWidth + 14;
123
+ // // getting difference value that needs to add or reduce from carousel left to take middle img center
124
+ // let valDifference = firstImgWidth - positionDiff;
125
+ // if (carousel.scrollLeft > prevScrollLeft) { // if user is scrolling to the right
126
+ // return carousel.scrollLeft += positionDiff > firstImgWidth / 3 ? valDifference : -positionDiff;
127
+ // }
128
+ // // if user is scrolling to the left
129
+ // carousel.scrollLeft -= positionDiff > firstImgWidth / 3 ? valDifference : -positionDiff;
130
+ // }
131
+ // const dragStart = (e) => {
132
+ // // updatating global variables value on mouse down event
133
+ // isDragStart = true;
134
+ // prevPageX = e.pageX || e.touches[0].pageX;
135
+ // prevScrollLeft = carousel.scrollLeft;
136
+ // }
137
+ // const dragging = (e) => {
138
+ // // scrolling images/carousel to left according to mouse pointer
139
+ // if (!isDragStart) return;
140
+ // e.preventDefault();
141
+ // isDragging = true;
142
+ // carousel.classList.add("dragging");
143
+ // positionDiff = (e.pageX || e.touches[0].pageX) - prevPageX;
144
+ // carousel.scrollLeft = prevScrollLeft - positionDiff;
145
+ // showHideIcons();
146
+ // }
147
+ // const dragStop = () => {
148
+ // isDragStart = false;
149
+ // carousel.classList.remove("dragging");
150
+ // if (!isDragging) return;
151
+ // isDragging = false;
152
+ // autoSlide();
153
+ // }
154
+ // carousel.addEventListener("mousedown", dragStart);
155
+ // carousel.addEventListener("touchstart", dragStart);
156
+ // document.addEventListener("mousemove", dragging);
157
+ // carousel.addEventListener("touchmove", dragging);
158
+ // document.addEventListener("mouseup", dragStop);
159
+ // carousel.addEventListener("touchend", dragStop);
160
+ </script>
161
+
162
+
163
+
164
+
165
+
166
+
@@ -1,4 +1,4 @@
1
-
2
- <div class="appscms-loader">
3
- <div class="lds-roller"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div>
4
- </div>
1
+
2
+ <div class="appscms-loader">
3
+ <div class="lds-roller"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div>
4
+ </div>