├── .gitattributes ├── .github └── FUNDING.yml ├── .gitignore ├── CHANGELOG.md ├── README.md ├── assets └── web.png └── src ├── icons ├── 128.png ├── 256.png ├── 32.png └── 48.png ├── manifest.json └── scripts ├── iconify-assets.js ├── iconify-jquery.js ├── iconify-main.js └── iconify-snackbar.js /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | patreon: razoo 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 |

2 | 📃CHANGELOG 3 |

4 | 5 | - Full Changelog can be found on the Website [here](https://kyutefox.com/changelog/iconify-browser-extension). 6 | 7 | ### December 03, 2024 - 1.0.7 (Update) 8 | > - Update: 9 | 10 | - Updated with new bypass method for IconScout 11 | - Fixed IconScout Not Downloading SVG [ both free and premium ] 12 | - Fixed 3D Icon Download in IconScout 13 | - Fixed IconScout Not Download Lottie [ both free and premium ] 14 | 15 | ### August 07, 2024 - 1.0.6 (Update) 16 | 17 | > - Update: 18 | 19 | - Fixed 0 Byte in IconScout 20 | 21 | 22 | ### August 30, 2023 - 1.0.2 (Update) 23 | 24 | > - New: 25 | 26 | - Download any icon as SVG ( Font Awesome ) 27 | 28 | > - New: 29 | 30 | - Generate Premium Font Awesome CDN and use icon directly 31 | 32 | ### August 09, 2023, 1.0.1 (Update & Fixes) 33 | 34 | > - New: 35 | 36 | - Added Animated Lottie Download for (IconScout) in JSON. 37 | 38 | - Added Copy SVG button to copy code directly (FlatIcon). 39 | 40 | > - Update: 41 | 42 | - Added Error Message for non-supported icons. 43 | 44 | - Improved performance in IconScout. 45 | 46 | ### April 13, 2023, 1.0.0 (Inconify - The Beggining) 47 | 48 | > - New: 49 | 50 | - Added popup message for error. 51 | 52 | - Added animations to download button. 53 | 54 | - Added custom download button. 55 | 56 | - Added support for IconScout. 57 | 58 | - Added support for Icons8. 59 | 60 | - Added support for Microsoft Edge. 61 | 62 | - All new Iconify known as Flaticon Premium. 63 | 64 | > - Update: 65 | 66 | - Updated to manifest version 3.0 67 | 68 | - Updated from server dependent to local. 69 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | ![Logo](https://kyutefox.com/resources/assets/img/logo.png) 4 | 5 |

👋 Welcome to Iconify

6 | 7 | The Ultimate Browser Extension for **QUALITY** SVG Icons 8 | 9 |

10 | 11 | Full Documentation 12 | 13 | 14 | Full Changelog 15 | 16 | 17 | Home Page 18 | 19 | 20 | Author Profile 21 | 22 |

23 | 24 | ![image](https://raw.githubusercontent.com/Kyutefox/Iconify/main/assets/web.png) 25 | 26 |
27 | 28 | ## 👍 Table of Contents: 29 | 30 | - 🚀 [Getting Started](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#-getting-started) 31 | - 🌎 [Supported Sites](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#-supported-sites) 32 | - 🛠️ [Installation](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#%EF%B8%8F-installation) 33 | - [Chrome](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#chrome-browser) 34 | - [Firefox](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#firefox-browser) 35 | - [Microsoft Edge](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#microsoft-edge) 36 | - [How to Use?](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#how-to-use) 37 | - ❗❗ [Troubleshoot](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#-troubleshoot) 38 | - 🔗 [Useful Links](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#-useful-links) 39 | - 🤝 [Show Your Support](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#-show-your-support) 40 | 41 | ## 🚀 Getting Started 42 | 43 |
44 |

Introducing Iconify, the ultimate browser extension for anyone looking to enhance their design projects with high-quality SVG icons. With Iconify, you can easily access and download premium SVG icons from Flaticon,Icons8,FontAwesome and Iconscout one of the largest databases of vector icons available online.

45 | 46 |

This extension is supported on the following browsers:

47 | 48 | 49 | 50 | 53 | 56 | 59 | 62 | 63 | 64 | 67 | 70 | 73 | 76 | 77 |
51 | 52 | 54 | 55 | 57 | 58 | 60 | 61 |
65 | ✅ 66 | 68 | ✅ 69 | 71 | ✅ 72 | 74 | ❌ 75 |
78 | 79 |

Whether you are a designer, developer, or just someone who appreciates good design, Iconify is the perfect tool to take your projects to the next level. With its extensive power to download premium icons, you will have access to a vast range of options that will help you create beautiful and professional designs in no time. So why wait? Install Iconify today and start designing like a pro!

80 |
81 | 82 | ## 🌏 Supported Sites 83 | 84 | - [x] [Font Awesome](https://fontawesome.com/) 85 | - [x] [Flaticon](https://flaticon.com) 86 | - [x] [Icons8](https://icons8.com) 87 | - [x] [Iconscout](https://iconscout.com/) 88 | 89 | Want more sites? Create an [Issue](https://github.com/Kyutefox/Iconify/issues) and let us know! 90 | 91 | ## 🛠️ Installation 92 | 93 | - Installation Guide can be found on the Website [here](https://kyutefox.com/products/iconify-browser-extension#installation-1) 94 | 95 | > [!Caution] 96 | > Before installing and using Iconify, it is important to uninstall the "Flaticon premium" version of this extension and clear your cache to prevent any conflicts or unresponsiveness. 97 | 98 | 99 | ### Prerequisite 100 | 101 | > [!Warning] 102 | > You must be logged in to the respective icon site to download icon from that site. 103 | 104 | ### Chrome Browser: 105 | 106 | > [!Important] 107 | > The Iconify extension for Chrome is currently unavailable at the Chrome Web Store. To install this extension on Chrome, you must download it manually from the download option located on the top right of this page or from the [GitHub Release Page](https://github.com/kyutefox/Iconify/releases). 108 | 109 | ``` 110 | 111 | 1. Extract the downloaded ZIP file to your local PC. 112 | 2. hit chrome://extensions/ in the address bar. 113 | 3. From the extension window turn on Developer mode from top right corner. 114 | 4. Now click on Load unpacked button on top left side of the same window. 115 | 5. Now locate the extracted folder and click on open folder. 116 | 6. Enjoy !! 117 | 118 | ``` 119 | 120 | 121 | ### Firefox Browser 122 | 123 | > [!Note] 124 | > The Iconify extension is officially available on the Firefox Add-ons Store. 125 | 126 | ``` 127 | 128 | 1. Open your Firefox Browser and head on to Firefox Add-ons Store 129 | 2. Install the addon to your browser 130 | 3. Goto Manage Extensions 131 | 4. Click on Iconify, and the click on Permissions 132 | 5. Turn on all the switch 133 | 6. Enjoy !! 134 | 135 | ``` 136 | 137 | ### Microsoft Edge 138 | 139 | > [!Note] 140 | > The Iconify extension is officially available on the Edge Add-ons Store. 141 | 142 | ``` 143 | 144 | 1. Open your Firefox Browser and head on to Edge Add-ons Store 145 | 2. Install the addon to your browser 146 | 3. Enjoy !! 147 | 148 | ``` 149 | 150 | ### How to use? 151 | 152 | > [!Tip] 153 | > Using Iconify is simply straight forward. 154 | 155 | ``` 156 | 157 | 1. Now head to (Flaticon, Icons8 or Iconscout) website of your choice. 158 | 2. Login with your any account, if not create one and login. 159 | 3. Click the icon you would like to download. 160 | 4. You will see the premium buttons are now available to download. 161 | 5. Click on SVG or Download button which ever is available. 162 | 6. Enjoy the premium icons. 163 | 164 | ``` 165 | 166 | 167 |
168 | 169 | Is it Safe? 170 | 171 | 172 |
173 | 174 | If you're concerned about the safety of using Iconify, you'll be pleased to know that the extension is 100% safe and secure to use. The extension does not track any of your browser data or any other personal information, so you can browse and download premium SVG icons with complete peace of mind. 175 | 176 | 177 | The way Iconify works is by replacing your non-premium account token with a premium token from the server when you click on the SVG button. This token is then used to send a request to the respective icon server, which returns the icon as if you were a premium user. The extension then parses the icon and creates a downloadable icon in SVG format. 178 | 179 | Aside from this process, the extension does not do anything else that might raise security concerns. You can use Iconify knowing that your data and personal information are completely safe. 180 | 181 | In conclusion, Iconify is a safe and secure extension that provides premium SVG icons for your design projects. With its user-friendly interface and seamless integration with Flaticon's server, you can browse, search, and download premium icons with ease and confidence. 182 | 183 |
184 | 185 | ## ❗❗ Troubleshoot 186 | 187 | > [!Important] 188 | > If you face any error while using Iconify try CTRL + R to hard reload once the pages loads. 189 | 190 | ## 📃 Changelog 191 | 192 | - Full Changelog can be found on the Website [here](https://kyutefox.com/changelog/iconify-browser-extension) or in the [Changelog file](https://github.com/Kyutefox/Iconify/blob/main/CHANGELOG.md) 193 | 194 | ## 🔗 Useful Links 195 | 196 | > - Full Documentation 197 | > - Full Changelog 198 | > - Homepage 199 | > - Author Profile 200 | 201 | ## 🤝 Show Your Support 202 | 203 | > -

Did this project leave you impressed? Shower some love with a ⭐️!

204 | 205 | -------------------------------------------------------------------------------- /assets/web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kyutefox/Iconify/a96b20ca1c498cb0c310ba08ab71a3a8ecb98c45/assets/web.png -------------------------------------------------------------------------------- /src/icons/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kyutefox/Iconify/a96b20ca1c498cb0c310ba08ab71a3a8ecb98c45/src/icons/128.png -------------------------------------------------------------------------------- /src/icons/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kyutefox/Iconify/a96b20ca1c498cb0c310ba08ab71a3a8ecb98c45/src/icons/256.png -------------------------------------------------------------------------------- /src/icons/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kyutefox/Iconify/a96b20ca1c498cb0c310ba08ab71a3a8ecb98c45/src/icons/32.png -------------------------------------------------------------------------------- /src/icons/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kyutefox/Iconify/a96b20ca1c498cb0c310ba08ab71a3a8ecb98c45/src/icons/48.png -------------------------------------------------------------------------------- /src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "Iconify", 3 | "version" : "1.0.7", 4 | "description" : "Upgrade your designs with our browser extension! Download premium SVG icons and stickers.", 5 | "manifest_version": 3, 6 | "icons": { 7 | "32" : "./icons/32.png", 8 | "48" : "./icons/48.png", 9 | "128" : "./icons/128.png", 10 | "256" : "./icons/256.png" 11 | }, 12 | "content_scripts": [ 13 | { 14 | "matches": [ 15 | "https://www.flaticon.com/*", 16 | "https://iconscout.com/*", 17 | "https://icons8.com/*", 18 | "https://fontawesome.com/*" 19 | ], 20 | "js": [ 21 | "./scripts/iconify-jquery.js", 22 | "./scripts/iconify-assets.js", 23 | "./scripts/iconify-snackbar.js", 24 | "./scripts/iconify-main.js" 25 | ], 26 | "run_at" : "document_idle", 27 | "all_frames": true 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /src/scripts/iconify-jquery.js: -------------------------------------------------------------------------------- 1 | /*! jQuery v3.6.4 | (c) OpenJS Foundation and other contributors | jquery.org/license */ 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.4",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.cssHas=ce(function(){try{return C.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),d.cssHas||y.push(":has"),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType&&e.documentElement||e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 { 19 | // Create the button element 20 | const button = $('', { 21 | id: 'getFontawesomeCdn', 22 | class: "position-relative", 23 | text: 'Generate Premium Icon CDN Link', 24 | click: function() { 25 | let versionSelector = $(document).find("#choose_aversionoffontawesome").val() ?? "6.4.2"; 26 | let link = `https://site-assets.fontawesome.com/releases/v${versionSelector}/css/all.css` 27 | const textToCopy = link; 28 | const tempInput = $(''); 29 | $(document).find("body").append(tempInput); 30 | tempInput.val(textToCopy).select(); 31 | document.execCommand('copy'); 32 | tempInput.remove(); 33 | Snackbar.show({ text : "CDN link copied to clipboard" , showAction : false}) 34 | } 35 | }); 36 | 37 | // Set the button's position and styles 38 | button.css({ 39 | position: 'fixed', 40 | bottom: '20px', 41 | right: '20px', 42 | zIndex: '999', 43 | padding: "10px 20px", 44 | background: "#007bff", 45 | color: "#fff", 46 | border: "none", 47 | cursor: "pointer", 48 | borderRadius: "4px", /* Added border radius */ 49 | }); 50 | 51 | 52 | // Append the button to the container 53 | var container = $('body'); 54 | container.append(button); 55 | } 56 | 57 | const initFontAwesome = () => { 58 | let button = $(document).find("#fontAwesomeSVGDownload"); 59 | if(button.length < 1){ 60 | $(document).find(".icon-actions").append(""); 61 | } 62 | } 63 | 64 | // Create download 65 | const downloadIcon = function (text = "", downloadAbleName = "", extension = "svg",drc = false) 66 | { 67 | let newAnchorElement = document.createElement("a"); 68 | if(drc === true) 69 | { 70 | newAnchorElement.setAttribute("href", text); 71 | 72 | }else 73 | { 74 | newAnchorElement.setAttribute("href", "data:text/plain;charset=utf-8," + encodeURIComponent(text)); 75 | 76 | } 77 | newAnchorElement.setAttribute("download", (downloadAbleName + `.${extension}`) ?? "iconify.svg"); 78 | newAnchorElement.style.display = "none"; 79 | document.body.appendChild(newAnchorElement); 80 | newAnchorElement.click(); 81 | document.body.removeChild(newAnchorElement); 82 | } 83 | 84 | async function downloadPNG(imageSrc,name) { 85 | const image = await fetch(imageSrc) 86 | const imageBlog = await image.blob() 87 | const imageURL = URL.createObjectURL(imageBlog) 88 | 89 | const link = document.createElement('a') 90 | link.href = imageURL 91 | link.download = name; 92 | document.body.appendChild(link) 93 | link.click() 94 | document.body.removeChild(link) 95 | } 96 | 97 | // Create download json 98 | const downloadJson = function (data = {}, downloadAbleName = "", extension = "json"){ 99 | let jsonString = JSON.stringify(data, null, 2); 100 | let blob = new Blob([jsonString], { type: 'application/json' }); 101 | let url = URL.createObjectURL(blob); 102 | let link = document.createElement('a'); 103 | link.href = url; 104 | link.download = (downloadAbleName + "." + extension) ?? "iconify.json"; 105 | document.body.appendChild(link); 106 | link.click(); 107 | URL.revokeObjectURL(url); 108 | } 109 | 110 | //Copy SVG to clipboard 111 | const copyToClipBoard = function (text, clickedButtonElement, replacer) 112 | { 113 | const tempTextarea = $('