appscms-tools-theme 4.9.7 → 4.9.9

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: a55fca8856cf9e7d90a961c26bb0e769350f52f08a9f6c8d362c4899913ecdc3
4
- data.tar.gz: f9ce64ec4906cb67d1be7c9ca47f722bdc6434e9288ac511f1018d9204e2f363
3
+ metadata.gz: 77077be30078f5cdcdf699ae245f6b31e0d5e14f94dbd34562b631de11ae83aa
4
+ data.tar.gz: 31134090f09b375a8d3f4eda101587b712a62be08d9b22d4e8229e307e00ce04
5
5
  SHA512:
6
- metadata.gz: ebabf50236b1aafc4b9b010976c9e1607078a5641855d37b0f37ba2ccc8c3daa6a41ee6e4a4b5c911f2a0a5ac57d0f4bc8db3e4492c5bfa114d4a33cfef3bba7
7
- data.tar.gz: 6eb7468d786eb8364ee0436643463f3c79792febb1a87b07738be58acecb1795eceb43a661c329aab3ab12beff077188eab8d735f5efa9eef1806d93388bafc7
6
+ metadata.gz: 65c68aca35073b283a7e0322750fe2a43f0ab092eb053ee404a08aa3c0a9394d697e350795c410269f90bf899915e49016125f145c8965dfa1eb5d727fc80f8f
7
+ data.tar.gz: ab56cdf2130296edd4d85c4b635d18e8d63a25319ec2bdf0d2690321a82b2c6e816aca07eb99e1fbb630922a9d1dbac9e5bdc76b83252ba8f91a0d2368169622
data/_data/.DS_Store CHANGED
Binary file
Binary file
@@ -60,7 +60,16 @@
60
60
  "content": "Setalarmforme.com is a cloud and web based application. You do not need to install any software to use Setalarmforme.com while setting alarms for $variable minutes from now."
61
61
  }
62
62
  ],
63
-
63
+ "HOW_TO_CONTENT": {
64
+ "logoImageUrl": "/assets/pdf.svg",
65
+ "heading": "How to set alarm for \"Preview\" minutes:",
66
+ "steps": [
67
+ "Click on set alarm \"Preview\" ",
68
+ "Set $variable minutes for alarm.",
69
+ "Choose sound of your choice.",
70
+ "Click submit to set alarm, that's it !."
71
+ ]
72
+ },
64
73
  "FAQ": [
65
74
  {
66
75
  "question": "How many seconds from now, will the alarm ring ?",
@@ -201,7 +210,7 @@
201
210
  "USP_FACTOR": "USP_FACTOR"
202
211
  }
203
212
  ],
204
- "author": "aditya thakur",
213
+ "author": "lakshmi",
205
214
  "contributors": [
206
215
  {
207
216
  "name": "Debosmita Bedajna"
@@ -211,6 +220,12 @@
211
220
  },
212
221
  {
213
222
  "name": "RK Shree"
223
+ },
224
+ {
225
+ "name": "Bandana"
226
+ },
227
+ {
228
+ "name": "Manpreet Singh"
214
229
  }
215
230
  ]
216
231
  }
Binary file
@@ -1,6 +1,6 @@
1
1
  {
2
- "navbarBrandText": "",
3
- "navbarBrandLogo": "/assets/images/logo.png",
2
+ "navbarBrandText": "",
3
+ "navbarBrandLogoSvg": "<svg height='40' width='180' xmlns:x='http://ns.adobe.com/Extensibility/1.0/' xmlns:i='http://ns.adobe.com/AdobeIllustrator/10.0/' xmlns:graph='http://ns.adobe.com/Graphs/1.0/' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='Layer_1' x='0px' y='0px' viewBox='0 0 250 50' style='enable-background:new 0 0 250 50;' xml:space='preserve'><style type='text/css'>.st0{fill:#1C0DC8;}.st1{clip-path:url(#SVGID_1_);fill:url(#SVGID_2_);}.st2{fill:#FFFFFF;}</style><metadata><sfw xmlns='http://ns.adobe.com/SaveForWeb/1.0/'><slices></slices><slicesourcebounds bottomleftorigin='true' height='46.5' width='216' x='1.4' y='-48.2'></slicesourcebounds></sfw></metadata><g><g><path class='st0' d='M55.6,33.2c-1-0.4-1.8-1-2.3-1.8s-0.9-1.7-0.9-2.8h4.4c0.1,0.6,0.3,1.1,0.6,1.4c0.4,0.3,0.8,0.5,1.4,0.5 c0.6,0,1.1-0.1,1.4-0.4c0.4-0.3,0.5-0.7,0.5-1.2c0-0.4-0.1-0.8-0.4-1c-0.3-0.3-0.6-0.5-1-0.7c-0.4-0.2-1-0.4-1.7-0.6 c-1.1-0.3-2-0.7-2.7-1c-0.7-0.3-1.3-0.8-1.8-1.5c-0.5-0.7-0.7-1.5-0.7-2.6c0-1.6,0.6-2.8,1.7-3.7c1.1-0.9,2.6-1.3,4.4-1.3 c1.9,0,3.4,0.4,4.5,1.3c1.1,0.9,1.7,2.1,1.8,3.7h-4.4c0-0.5-0.2-1-0.6-1.3s-0.8-0.5-1.4-0.5c-0.5,0-0.9,0.1-1.2,0.4 c-0.3,0.3-0.5,0.6-0.5,1.1c0,0.5,0.3,1,0.8,1.3c0.5,0.3,1.3,0.6,2.4,1c1.1,0.4,2,0.7,2.7,1.1s1.3,0.8,1.8,1.5 c0.5,0.6,0.7,1.5,0.7,2.5c0,1-0.2,1.8-0.7,2.6c-0.5,0.8-1.2,1.4-2.1,1.9s-2,0.7-3.3,0.7C57.7,33.8,56.6,33.6,55.6,33.2z'></path><path class='st0' d='M67.5,23.3c0.5-1,1.2-1.8,2.1-2.4c0.9-0.6,1.9-0.8,3-0.8c0.9,0,1.8,0.2,2.5,0.6c0.7,0.4,1.3,0.9,1.6,1.5v-1.9 h4.1v13.4h-4.1v-1.9c-0.4,0.6-1,1.1-1.7,1.5c-0.7,0.4-1.5,0.6-2.5,0.6c-1.1,0-2.1-0.3-3-0.9c-0.9-0.6-1.6-1.4-2.1-2.4 c-0.5-1-0.8-2.3-0.8-3.6C66.8,25.6,67,24.4,67.5,23.3z M75.9,24.6c-0.6-0.6-1.3-0.9-2.1-0.9c-0.8,0-1.5,0.3-2.1,0.9 c-0.6,0.6-0.9,1.4-0.9,2.4c0,1,0.3,1.8,0.9,2.4c0.6,0.6,1.3,0.9,2.1,0.9c0.8,0,1.5-0.3,2.1-0.9c0.6-0.6,0.9-1.4,0.9-2.4 C76.8,26,76.5,25.1,75.9,24.6z'></path><path class='st0' d='M90.6,23.7h-2.2v10h-4.1v-10h-1.5v-3.4h1.5v-0.4c0-1.6,0.5-2.9,1.4-3.8c0.9-0.9,2.3-1.3,4.2-1.3 c0.3,0,0.5,0,0.7,0v3.5c-0.8,0-1.3,0.1-1.7,0.3c-0.3,0.3-0.5,0.8-0.5,1.5v0.1h2.2V23.7z'></path><path class='st0' d='M105.1,28h-9.3c0.1,0.8,0.3,1.5,0.8,1.9c0.5,0.4,1.1,0.7,1.7,0.7c1,0,1.7-0.4,2.1-1.3h4.4 c-0.2,0.9-0.6,1.7-1.2,2.4s-1.3,1.3-2.2,1.7c-0.9,0.4-1.9,0.6-3,0.6c-1.3,0-2.5-0.3-3.5-0.8c-1-0.6-1.8-1.4-2.4-2.4 s-0.9-2.3-0.9-3.6c0-1.4,0.3-2.6,0.9-3.6c0.6-1,1.4-1.8,2.4-2.4c1-0.6,2.2-0.8,3.5-0.8c1.3,0,2.4,0.3,3.5,0.8 c1,0.5,1.8,1.3,2.4,2.3c0.6,1,0.9,2.2,0.9,3.5C105.1,27.1,105.1,27.5,105.1,28z M100.9,25.7c0-0.7-0.2-1.3-0.7-1.7 c-0.5-0.4-1.1-0.6-1.8-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.5,0.4-0.8,1-0.9,1.7H100.9z'></path><path class='st0' d='M111.4,16.8v16.8h-4.1V16.8H111.4z'></path><path class='st0' d='M135.4,21.7c1,1,1.5,2.4,1.5,4.2v7.8h-4.1v-7.3c0-0.9-0.2-1.5-0.7-2c-0.5-0.5-1.1-0.7-1.9-0.7 s-1.4,0.2-1.9,0.7c-0.5,0.5-0.7,1.1-0.7,2v7.3h-4.1v-7.3c0-0.9-0.2-1.5-0.7-2c-0.5-0.5-1.1-0.7-1.9-0.7c-0.8,0-1.4,0.2-1.9,0.7 c-0.5,0.5-0.7,1.1-0.7,2v7.3h-4.1V20.3h4.1V22c0.4-0.6,1-1,1.6-1.3c0.7-0.3,1.4-0.5,2.3-0.5c1,0,1.9,0.2,2.7,0.6 c0.8,0.4,1.4,1,1.9,1.8c0.5-0.7,1.1-1.3,1.9-1.8s1.7-0.7,2.6-0.7C133.1,20.1,134.5,20.6,135.4,21.7z'></path><path class='st0' d='M139.8,23.3c0.5-1,1.2-1.8,2.1-2.4c0.9-0.6,1.9-0.8,3-0.8c0.9,0,1.8,0.2,2.5,0.6c0.7,0.4,1.3,0.9,1.6,1.5 v-1.9h4.1v13.4H149v-1.9c-0.4,0.6-1,1.1-1.7,1.5c-0.7,0.4-1.5,0.6-2.5,0.6c-1.1,0-2.1-0.3-3-0.9c-0.9-0.6-1.6-1.4-2.1-2.4 c-0.5-1-0.8-2.3-0.8-3.6C139,25.6,139.2,24.4,139.8,23.3z M148.2,24.6c-0.6-0.6-1.3-0.9-2.1-0.9c-0.8,0-1.5,0.3-2.1,0.9 c-0.6,0.6-0.9,1.4-0.9,2.4c0,1,0.3,1.8,0.9,2.4c0.6,0.6,1.3,0.9,2.1,0.9c0.8,0,1.5-0.3,2.1-0.9c0.6-0.6,0.9-1.4,0.9-2.4 C149,26,148.7,25.1,148.2,24.6z'></path><path class='st0' d='M163.7,20.7c0.7,0.4,1.3,0.9,1.6,1.5v-1.9h4.1v13.4c0,1.2-0.2,2.3-0.7,3.3c-0.5,1-1.2,1.8-2.2,2.4 s-2.2,0.9-3.7,0.9c-2,0-3.6-0.5-4.8-1.4c-1.2-0.9-1.9-2.2-2.1-3.8h4.1c0.1,0.5,0.4,0.9,0.9,1.2c0.5,0.3,1.1,0.4,1.8,0.4 c0.8,0,1.5-0.2,2-0.7s0.8-1.3,0.8-2.3v-1.9c-0.4,0.6-1,1.1-1.7,1.5c-0.7,0.4-1.5,0.6-2.5,0.6c-1.1,0-2.1-0.3-3-0.9 c-0.9-0.6-1.6-1.4-2.1-2.4c-0.5-1-0.8-2.3-0.8-3.6c0-1.4,0.3-2.6,0.8-3.6c0.5-1,1.2-1.8,2.1-2.4c0.9-0.6,1.9-0.8,3-0.8 C162.1,20.1,162.9,20.3,163.7,20.7z M164.5,24.6c-0.6-0.6-1.3-0.9-2.1-0.9c-0.8,0-1.5,0.3-2.1,0.9c-0.6,0.6-0.9,1.4-0.9,2.4 c0,1,0.3,1.8,0.9,2.4c0.6,0.6,1.3,0.9,2.1,0.9c0.8,0,1.5-0.3,2.1-0.9c0.6-0.6,0.9-1.4,0.9-2.4C165.3,26,165,25.1,164.5,24.6z'></path><path class='st0' d='M184.9,28h-9.3c0.1,0.8,0.3,1.5,0.8,1.9c0.5,0.4,1.1,0.7,1.7,0.7c1,0,1.7-0.4,2.1-1.3h4.4 c-0.2,0.9-0.6,1.7-1.2,2.4s-1.3,1.3-2.2,1.7c-0.9,0.4-1.9,0.6-3,0.6c-1.3,0-2.5-0.3-3.5-0.8c-1-0.6-1.8-1.4-2.4-2.4 s-0.9-2.3-0.9-3.6c0-1.4,0.3-2.6,0.9-3.6c0.6-1,1.4-1.8,2.4-2.4c1-0.6,2.2-0.8,3.5-0.8c1.3,0,2.4,0.3,3.5,0.8 c1,0.5,1.8,1.3,2.4,2.3c0.6,1,0.9,2.2,0.9,3.5C185,27.1,185,27.5,184.9,28z M180.8,25.7c0-0.7-0.2-1.3-0.7-1.7 c-0.5-0.4-1.1-0.6-1.8-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.5,0.4-0.8,1-0.9,1.7H180.8z'></path><path class='st0' d='M195.3,33.7l-4.1-5.6v5.6h-4.1V15.9h4.1v9.8l4.1-5.4h5.1l-5.6,6.7l5.6,6.7H195.3z'></path><path class='st0' d='M202.3,18.3c-0.5-0.4-0.7-0.9-0.7-1.6c0-0.6,0.2-1.2,0.7-1.6s1-0.6,1.8-0.6c0.7,0,1.3,0.2,1.7,0.6 s0.7,1,0.7,1.6c0,0.6-0.2,1.1-0.7,1.6s-1,0.6-1.7,0.6C203.3,18.9,202.8,18.7,202.3,18.3z M206.1,20.3v13.4H202V20.3H206.1z'></path><path class='st0' d='M216.5,30.2v3.5h-2.1c-1.5,0-2.6-0.4-3.5-1.1c-0.8-0.7-1.2-1.9-1.2-3.6v-5.3h-1.6v-3.4h1.6V17h4.1v3.3h2.7 v3.4h-2.7v5.4c0,0.4,0.1,0.7,0.3,0.9c0.2,0.2,0.5,0.3,1,0.3H216.5z'></path></g><g><g><defs><path id='SVGID_4_' d='M8.3,10.3c-0.8,1.1-0.8,4.6-0.8,11.4v3.4c0,12,9.1,17.9,14.8,20.4c1.5,0.7,2.3,1,4.5,1s2.9-0.4,4.5-1 C36.9,43,46,37.2,46,25.1v-3.4c0-6.8,0-10.3-0.8-11.4c-0.8-1.1-4-2.2-10.4-4.4l-1.2-0.4c-3.4-1.1-5-1.7-6.7-1.7 c-1.7,0-3.4,0.5-6.7,1.7l-1.2,0.4C12.3,8,9.2,9.2,8.3,10.3z'></path></defs><clipPath id='SVGID_1_'><use xlink:href='#SVGID_4_' style='overflow:visible;'></use></clipPath><linearGradient id='SVGID_2_' gradientUnits='userSpaceOnUse' x1='4.2901' y1='45.9056' x2='40.5632' y2='14.204' gradientTransform='matrix(1 0 0 -1 0 52)'><stop offset='0' style='stop-color:#4F00E8'></stop><stop offset='0.2561' style='stop-color:#4B01E6'></stop><stop offset='0.489' style='stop-color:#4003E1'></stop><stop offset='0.7129' style='stop-color:#2E06D9'></stop><stop offset='0.9299' style='stop-color:#140BCD'></stop><stop offset='1' style='stop-color:#0A0DC8'></stop></linearGradient><rect x='1.4' y='1.7' class='st1' width='48.2' height='45.7'></rect></g></g><g><path class='st2' d='M24.6,17c-0.5-0.5-0.8-1.1-0.8-1.9s0.3-1.4,0.8-1.9c0.5-0.5,1.2-0.8,2.1-0.8c0.9,0,1.6,0.3,2.1,0.8 c0.4,0.4,0.8,1,0.8,1.7c0.1,0.9-0.3,1.8-1,2.3c-0.5,0.4-1.2,0.7-2,0.7C25.9,17.8,25.1,17.5,24.6,17z M29.2,20.2v14.9 c0,0.4-0.3,0.6-0.6,0.6h-3.7c-0.4,0-0.6-0.3-0.6-0.6V20.2c0-0.4,0.3-0.6,0.6-0.6h3.7C28.9,19.5,29.2,19.8,29.2,20.2z'></path></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg>",
4
4
  "megaMenu": {
5
5
  "nav-link-name": "Tools",
6
6
  "dropdown": [{
Binary file
File without changes
File without changes
@@ -1,30 +1,29 @@
1
1
  {
2
- "reviews": [
3
- {
4
- "name": "Alice Johnson",
5
- "title": "Excellent Image Editing Tool",
6
- "review": "Safeimagekit is a lifesaver for quick and secure image editing. Love the variety of tools!"
7
- },
8
- {
9
- "name": "Michael Lee",
10
- "title": "Very Easy to Use",
11
- "review": "Super simple to resize and adjust images. No need to download anything; works seamlessly online!"
12
- },
13
- {
14
- "name": "Sophia Martinez",
15
- "title": "Great for Quick Edits",
16
- "review": "Perfect for quick edits without compromising privacy. Highly recommend Safeimagekit."
17
- },
18
- {
19
- "name": "David Kim",
20
- "title": "Fast and Reliable",
21
- "review": "Impressed by the speed and reliability of Safeimagekit. Great for editing on the go without extra downloads."
22
- }
23
- ],
24
- "title":"Over 5 Million Users Enjoy Using Our Applications monthly.",
25
- "description":"Join a thriving community of creators who rely on our safeimagekit.com Tools.",
26
- "rated": 4.1,
27
- "numberOfReviews": "320",
28
- "trustpilotReviewLink": "https://www.trustpilot.com/review/safeimagekit.com"
29
- }
30
-
2
+ "reviews": [
3
+ {
4
+ "name": "Alice Johnson",
5
+ "title": "Excellent Image Editing Tool",
6
+ "review": "Safeimagekit is a lifesaver for quick and secure image editing. Love the variety of tools!"
7
+ },
8
+ {
9
+ "name": "Michael Lee",
10
+ "title": "Very Easy to Use",
11
+ "review": "Super simple to resize and adjust images. No need to download anything; works seamlessly online!"
12
+ },
13
+ {
14
+ "name": "Sophia Martinez",
15
+ "title": "Great for Quick Edits",
16
+ "review": "Perfect for quick edits without compromising privacy. Highly recommend Safeimagekit."
17
+ },
18
+ {
19
+ "name": "David Kim",
20
+ "title": "Fast and Reliable",
21
+ "review": "Impressed by the speed and reliability of Safeimagekit. Great for editing on the go without extra downloads."
22
+ }
23
+ ],
24
+ "title": "Over 5 Million Users Enjoy Using Our Applications monthly.",
25
+ "description": "Join a thriving community of creators who rely on our safeimagekit.com Tools.",
26
+ "rated": 4.1,
27
+ "numberOfReviews": "320",
28
+ "trustpilotReviewLink": "https://www.trustpilot.com/review/safeaudiokit.com"
29
+ }
data/_includes/.DS_Store CHANGED
Binary file
@@ -0,0 +1,248 @@
1
+ <script src="https://d3js.org/d3.v4.min.js"></script>
2
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/venn.js/0.2.20/venn.min.js"></script>
3
+ <style>
4
+ #venn {
5
+ margin: 20px auto;
6
+ width: 800px;
7
+ height: 600px;
8
+ }
9
+
10
+ .controls {
11
+ margin-bottom: 20px;
12
+ }
13
+
14
+ canvas {
15
+ display: none;
16
+ }
17
+ </style>
18
+ <div class="controls">
19
+ <label for="setCount">Number of sets:</label>
20
+ <select id="setCount" onchange="updateControls()">
21
+ <option value="2" selected>2</option>
22
+ <option value="3">3</option>
23
+ <option value="4">4</option>
24
+ <option value="5">5</option>
25
+ <option value="6">6</option>
26
+ <option value="7">7</option>
27
+ <option value="8">8</option>
28
+ </select>
29
+
30
+ <div id="setInputs"></div>
31
+
32
+ <label for="transparency">Transparency (0 to 1):</label>
33
+ <input type="number" id="transparency" value="0.4" step="0.1" min="0" max="1">
34
+
35
+ <label for="fontColor">Font Color:</label>
36
+ <input type="color" id="fontColor" value="#000000">
37
+
38
+ <button onclick="updateVenn()">Update Venn Diagram</button>
39
+ <button onclick="downloadVenn('png')">Download PNG</button>
40
+ <button onclick="downloadVenn('jpg')">Download JPG</button>
41
+ </div>
42
+
43
+ <div id="venn"></div>
44
+
45
+ <canvas id="canvas"></canvas>
46
+ <script>
47
+ let sets = [
48
+ { sets: ['A'], size: 12 },
49
+ { sets: ['B'], size: 12 },
50
+ { sets: ['A', 'B'], size: 2 }
51
+ ];
52
+
53
+ // Render the initial Venn diagram
54
+ const chart = venn.VennDiagram();
55
+ const div = d3.select("#venn").datum(sets).call(chart);
56
+
57
+ function updateControls() {
58
+ const setCount = parseInt(document.getElementById("setCount").value, 10);
59
+ const setInputs = document.getElementById("setInputs");
60
+
61
+ // Reset inputs
62
+ setInputs.innerHTML = '';
63
+
64
+ // Add inputs for individual set sizes
65
+ for (let i = 0; i < setCount; i++) {
66
+ const setLabel = String.fromCharCode(65 + i); // A, B, C, etc.
67
+ setInputs.innerHTML += `
68
+ <div>
69
+ <label for="set${setLabel}">Set ${setLabel} size:</label>
70
+ <input type="number" id="set${setLabel}" value="12">
71
+ </div>`;
72
+ }
73
+
74
+ // Add input for intersections if applicable
75
+ if (setCount > 1) {
76
+ setInputs.innerHTML += `
77
+ <div>
78
+ <label for="intersections">Intersection sizes (comma-separated):</label>
79
+ <input type="text" id="intersections" placeholder="e.g., 20,15,10">
80
+ </div>`;
81
+ }
82
+
83
+ // If 4 sets are selected, set default values
84
+ if (setCount === 4) {
85
+ document.getElementById("setA").value = 12;
86
+ document.getElementById("setB").value = 12;
87
+ document.getElementById("setC").value = 12;
88
+ document.getElementById("setD").value = 12;
89
+ document.getElementById("intersections").value = "2,2,2,1,2,2,3,3,3,3";
90
+ }
91
+
92
+ if (setCount === 5) {
93
+ document.getElementById("setA").value = 20;
94
+ document.getElementById("setB").value = 20;
95
+ document.getElementById("setC").value = 20;
96
+ document.getElementById("setD").value = 20;
97
+ document.getElementById("setE").value = 20;
98
+ document.getElementById("intersections").value = "5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,1";
99
+ }
100
+ if (setCount === 6) {
101
+ document.getElementById("setA").value = 20;
102
+ document.getElementById("setB").value = 20;
103
+ document.getElementById("setC").value = 20;
104
+ document.getElementById("setD").value = 20;
105
+ document.getElementById("setE").value = 20;
106
+ document.getElementById("setF").value = 20;
107
+
108
+ // Set intersection values as specified
109
+ document.getElementById("intersections").value = "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1";
110
+ }
111
+ if (setCount === 7) {
112
+ document.getElementById("setA").value = 20;
113
+ document.getElementById("setB").value = 20;
114
+ document.getElementById("setC").value = 20;
115
+ document.getElementById("setD").value = 20;
116
+ document.getElementById("setE").value = 20;
117
+ document.getElementById("setF").value = 20;
118
+ document.getElementById("setG").value = 20;
119
+
120
+ document.getElementById("intersections").value =
121
+ "7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,2";
122
+ }
123
+ if (setCount === 8) {
124
+ document.getElementById("setA").value = 20;
125
+ document.getElementById("setB").value = 20;
126
+ document.getElementById("setC").value = 20;
127
+ document.getElementById("setD").value = 20;
128
+ document.getElementById("setE").value = 20;
129
+ document.getElementById("setF").value = 20;
130
+ document.getElementById("setG").value = 20;
131
+ document.getElementById("setH").value = 20;
132
+
133
+ document.getElementById("intersections").value =
134
+ "8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,2";
135
+ }
136
+ }
137
+
138
+ function updateVenn() {
139
+ const setCount = parseInt(document.getElementById("setCount").value, 10);
140
+ const transparency = parseFloat(document.getElementById("transparency").value);
141
+ const fontColor = document.getElementById("fontColor").value;
142
+ const updatedSets = [];
143
+
144
+ // Add individual sets
145
+ for (let i = 0; i < setCount; i++) {
146
+ const setLabel = String.fromCharCode(65 + i); // A, B, C, etc.
147
+ const setSize = parseInt(document.getElementById(`set${setLabel}`).value || "12", 10);
148
+ updatedSets.push({ sets: [setLabel], size: setSize });
149
+ }
150
+
151
+ // Add intersections based on the set count
152
+ if (setCount > 1) {
153
+ const intersectionInput = document.getElementById("intersections");
154
+ if (intersectionInput && intersectionInput.value.trim() !== '') {
155
+ const intersectionSizes = intersectionInput.value.split(',').map(Number);
156
+ let index = 0;
157
+
158
+ // Generate all combinations of sets for intersections
159
+ for (let i = 2; i <= setCount; i++) { // Only generate combinations of size >= 2
160
+ const combinations = getCombinations(
161
+ Array.from({ length: setCount }, (_, k) => String.fromCharCode(65 + k)),
162
+ i
163
+ );
164
+ combinations.forEach(combo => {
165
+ if (index < intersectionSizes.length) {
166
+ updatedSets.push({ sets: combo, size: intersectionSizes[index++] });
167
+ }
168
+ });
169
+ }
170
+ } else {
171
+ // Default pairwise intersections if no input is provided
172
+ for (let i = 0; i < setCount - 1; i++) {
173
+ for (let j = i + 1; j < setCount; j++) {
174
+ const setA = String.fromCharCode(65 + i);
175
+ const setB = String.fromCharCode(65 + j);
176
+ updatedSets.push({ sets: [setA, setB], size: 2 }); // Default size for pairwise intersections
177
+ }
178
+ }
179
+ }
180
+ }
181
+
182
+ sets = updatedSets;
183
+ d3.select("#venn").datum(sets).call(chart);
184
+
185
+ // Update transparency and font color
186
+ d3.selectAll(".venn-circle path").style("fill-opacity", transparency);
187
+ d3.selectAll(".venn-circle text").style("fill", fontColor);
188
+ }
189
+
190
+ // Helper function to generate combinations
191
+ function getCombinations(array, size) {
192
+ function combine(input, length, start, result) {
193
+ if (length === 0) return [result];
194
+ const combinations = [];
195
+ for (let i = start; i <= input.length - length; i++) {
196
+ combinations.push(...combine(input, length - 1, i + 1, result.concat(input[i])));
197
+ }
198
+ return combinations;
199
+ }
200
+ return combine(array, size, 0, []);
201
+ }
202
+
203
+ function downloadVenn(format) {
204
+ const svg = document.querySelector("#venn svg");
205
+ const canvas = document.getElementById("canvas");
206
+ const ctx = canvas.getContext("2d");
207
+ const serializer = new XMLSerializer();
208
+ const svgString = serializer.serializeToString(svg);
209
+ const img = new Image();
210
+
211
+ const svgBlob = new Blob([svgString], { type: "image/svg+xml;charset=utf-8" });
212
+ const url = URL.createObjectURL(svgBlob);
213
+
214
+ img.onload = function () {
215
+ canvas.width = svg.getBoundingClientRect().width;
216
+ canvas.height = svg.getBoundingClientRect().height;
217
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
218
+ ctx.drawImage(img, 0, 0);
219
+ URL.revokeObjectURL(url);
220
+
221
+ const link = document.createElement("a");
222
+ link.download = `venn-diagram.${format}`;
223
+ link.href = canvas.toDataURL(`image/${format}`);
224
+ link.click();
225
+ };
226
+
227
+ img.src = url;
228
+ }
229
+
230
+ // Add tooltips
231
+ div.selectAll(".venn-circle")
232
+ .on("mouseover", function (d) {
233
+ d3.select(this).select("path").style("fill-opacity", 0.6);
234
+ const tooltip = d3.select("body").append("div").attr("class", "tooltip")
235
+ .style("position", "absolute")
236
+ .style("background", "#fff")
237
+ .style("border", "1px solid #ccc")
238
+ .style("padding", "5px")
239
+ .style("z-index", 10)
240
+ .text(`${d.sets.join(' & ')}: ${d.size}`);
241
+
242
+ tooltip.style("left", `${d3.event.pageX + 5}px`).style("top", `${d3.event.pageY + 5}px`);
243
+ })
244
+ .on("mouseout", function () {
245
+ d3.select(this).select("path").style("fill-opacity", parseFloat(document.getElementById("transparency").value));
246
+ d3.select(".tooltip").remove();
247
+ });
248
+ </script>
Binary file
@@ -22,30 +22,40 @@
22
22
  {% for post in blogData %}
23
23
  {%- include authors/authors.html-%}
24
24
  {% assign title = post.title %}
25
- {% assign title_lower = title | downcase %}
26
- {% assign title_hyphenated = title_lower | replace: ' ', '-' %}
27
- {% assign blogUrl = title_hyphenated | replace: '!', '' | replace: '?', '' | replace: ',', '' | replace: '.', '' | replace: ';', '' | replace: ':', '' | replace: '&', '' | replace: '@', '' | replace: '#', '' | replace: '$', '' | replace: '%', '' | replace: '^', '' | replace: '*', '' | replace: '(', '' | replace: ')', '' | replace: '+', '' | replace: '=', '' | replace: '{', '' | replace: '}', '' | replace: '[', '' | replace: ']', '' | replace: '|', '' | replace: '\\', '' | replace: '/', '' | replace: '<', '' | replace: '>', '' | replace: '~', '' | replace: '`', '' | replace: '"', '' | replace: "'", '' %}
28
-
29
- <div class="{%- if site.monumetricId and page.url != '/' and page.lang == " en" -%} col-md-6 mb-4 card-group {%-
30
- else -%} col-lg-4 col-md-6 mb-4 card-group {%- endif -%} ">
31
- <div class="card h-100 appscms-blog-cards">
32
- <a class="extrapaddingforimg" href="/blog/{{ blogUrl }}" aria-label="{{post.title}}">
33
- <img src="{{ post.image }}" loading="lazy" class="card-img-top" height="250"
34
- width="100%" alt="{{post.title}}" {%- if site.crossorigin -%} crossorigin {%- endif
35
- -%}>
25
+ {% assign title_lower = title | downcase %}
26
+ {% assign title_hyphenated = title_lower | replace: ' ', '-' %}
27
+ {% assign blogUrl = title_hyphenated | replace: '!', '' | replace: '?', '' | replace: ',', '' |
28
+ replace: '.', '' | replace: ';', '' | replace: ':', '' | replace: '&', '' | replace: '@', '' |
29
+ replace: '#', '' | replace: '$', '' | replace: '%', '' | replace: '^', '' | replace: '*', '' |
30
+ replace: '(', '' | replace: ')', '' | replace: '+', '' | replace: '=', '' | replace: '{', '' |
31
+ replace: '}', '' | replace: '[', '' | replace: ']', '' | replace: '|', '' | replace: '\\', '' |
32
+ replace: '/', '' | replace: '<', '' | replace: '>' , '' | replace: '~' , '' | replace: '`' , '' |
33
+ replace: '"' , '' | replace: "'" , '' %}
34
+
35
+
36
+ {%- assign ActualUrl = post.url | default: blogUrl -%}
37
+ <div
38
+ class="{%- if site.monumetricId and page.url != '/' and page.lang == " en" -%} col-md-6 mb-4
39
+ card-group {%- else -%} col-lg-4 col-md-6 mb-4 card-group {%- endif -%} ">
40
+ <div class=" card h-100 appscms-blog-cards">
41
+ <a class="extrapaddingforimg" href="/blog/{{ ActualUrl }}" aria-label="{{post.title}}">
42
+ <img src="{{ post.image }}" loading="lazy" class="card-img-top" height="250" width="100%"
43
+ alt="{{post.title}}" {%- if site.crossorigin -%} crossorigin {%- endif -%}>
36
44
  </a>
37
45
  <div class="card-body">
38
- <a class="text-decoration-none text-dark" href="/blog/{{ blogUrl }}" class="anchor_link" aria-label="{{post.title}}">
46
+ <a class="text-decoration-none text-dark" href="/blog/{{ blogUrl }}" class="anchor_link"
47
+ aria-label="{{post.title}}">
39
48
  <h4 class="card-title mb-4 text-left">{{ post.title }}</h4>
40
49
  </a>
41
50
  <div class="wrapfooter">
42
51
  {% if post.author %}
43
- <img class="author-thumb" loading="lazy" src="{{ image }}" alt="{{ authorName }}"
44
- {%- if site.crossorigin -%} crossorigin {%- endif -%}>
52
+ <img class="author-thumb" loading="lazy" src="{{ image }}" alt="{{ authorName }}" {%- if
53
+ site.crossorigin -%} crossorigin {%- endif -%}>
45
54
  {% endif %}
46
55
 
47
56
  <div class="author-meta">
48
- <a class="post-name" target="_blank" href="/authors/{{authorName |downcase |replace:' ','-'}}">{{ authorName }}</a>
57
+ <a class="post-name" target="_blank"
58
+ href="/authors/{{authorName |downcase |replace:' ','-'}}">{{ authorName }}</a>
49
59
  {% assign path_parts = post.path | split: '/' %}
50
60
  {% assign filename = path_parts[1] %}
51
61
  {% assign date_parts = filename | split: '-' %}
@@ -57,13 +67,13 @@
57
67
 
58
68
  </div>
59
69
  </div>
60
- </div>
61
70
  </div>
62
- {% endfor %}
63
- {%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
64
71
  </div>
72
+ {% endfor %}
73
+ {%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
65
74
  </div>
66
- {%- endif -%}
75
+ </div>
76
+ {%- endif -%}
67
77
  </div>
68
78
  </div>
69
79
  </section>
@@ -49,7 +49,8 @@
49
49
  Contributors
50
50
  </h4>
51
51
  <div class="d-flex justify-content-center w-100" style="gap: 10px">
52
- {%- for contributor in contributors -%} {%- assign
52
+ {%- for contributor in contributors -%}
53
+ {%- assign
53
54
  featureContributorData = contributor.name | split: " " -%} {%-
54
55
  assign featureContributorData = featureContributorData.first |
55
56
  downcase -%} {%- assign collectionData = [featureContributorData]