1
0
ServicesList/admin/assets/js/icon-selector.js
2025-06-17 17:14:57 +02:00

953 lines
28 KiB
JavaScript

$(document).ready(function () {
// Drag-and-drop functionality to rearrange services
$("#sortable").sortable({
handle: ".drag-handle",
update: function () {
updateServiceIds();
},
});
// Update service IDs for the reorganization form
function updateServiceIds() {
var serviceIds = [];
$("#sortable tr").each(function () {
serviceIds.push($(this).data("id"));
});
// Empty the ID container
$("#service-ids-container").empty();
// Add hidden fields for each ID
$.each(serviceIds, function (index, id) {
$("#service-ids-container").append(
'<input type="hidden" name="service_ids[]" value="' + id + '">'
);
});
}
// Initialize service IDs
updateServiceIds();
// Editing functionality
$(".edit-btn").click(function () {
var id = $(this).data("id");
var name = $(this).data("name");
var icon = $(this).data("icon");
var url = $(this).data("url");
$("#edit-id").val(id);
$("#edit-name").val(name);
$("#edit-icon").val(icon);
$("#edit-url").val(url);
$("#edit-icon-preview").attr("class", icon + " icon-preview");
$("#edit-modal").show();
});
// Close the edit modal
$("#cancel-edit").click(function () {
$("#edit-modal").hide();
});
// Update icon preview during input
$("#icon").on("input", function () {
$("#icon-preview").attr("class", $(this).val() + " icon-preview");
});
$("#edit-icon").on("input", function () {
$("#edit-icon-preview").attr("class", $(this).val() + " icon-preview");
});
// Initialize the icon selector
initIconSelector();
});
// Global variables for the icon selector
let currentIconInput = "";
let currentIconPreview = "";
// Function to open the icon selector
function openIconSelector(inputId, previewId) {
currentIconInput = inputId;
currentIconPreview = previewId;
// Select the current icon if it exists
const currentIcon = $("#" + inputId).val();
if (currentIcon) {
$(".icon-item").removeClass("selected");
$(`.icon-item[data-icon="${currentIcon}"]`).addClass("selected");
}
$("#icon-selector-modal").show();
}
// Function to close the icon selector
function closeIconSelector() {
$("#icon-selector-modal").hide();
}
// Function to select an icon
function selectIcon(iconClass) {
$("#" + currentIconInput).val(iconClass);
$("#" + currentIconPreview).attr("class", iconClass + " icon-preview");
closeIconSelector();
}
// Function to initialize the icon selector
function initIconSelector() {
// List of popular icons by category
const icons = {
solid: [
"fa-solid fa-envelope",
"fa-solid fa-home",
"fa-solid fa-user",
"fa-solid fa-cog",
"fa-solid fa-bell",
"fa-solid fa-calendar",
"fa-solid fa-search",
"fa-solid fa-heart",
"fa-solid fa-star",
"fa-solid fa-check",
"fa-solid fa-times",
"fa-solid fa-plus",
"fa-solid fa-minus",
"fa-solid fa-trash",
"fa-solid fa-edit",
"fa-solid fa-save",
"fa-solid fa-download",
"fa-solid fa-upload",
"fa-solid fa-link",
"fa-solid fa-image",
"fa-solid fa-video",
"fa-solid fa-music",
"fa-solid fa-file",
"fa-solid fa-folder",
"fa-solid fa-lock",
"fa-solid fa-unlock",
"fa-solid fa-key",
"fa-solid fa-shield",
"fa-solid fa-chart-bar",
"fa-solid fa-chart-line",
"fa-solid fa-chart-pie",
"fa-solid fa-globe",
"fa-solid fa-map",
"fa-solid fa-location-dot",
"fa-solid fa-phone",
"fa-solid fa-mobile",
"fa-solid fa-tablet",
"fa-solid fa-laptop",
"fa-solid fa-desktop",
"fa-solid fa-server",
"fa-solid fa-database",
"fa-solid fa-cloud",
"fa-solid fa-cloud-upload",
"fa-solid fa-cloud-download",
"fa-solid fa-comments",
"fa-solid fa-comment",
"fa-solid fa-message",
"fa-solid fa-paper-plane",
"fa-solid fa-share",
"fa-solid fa-reply",
"fa-solid fa-thumbs-up",
"fa-solid fa-thumbs-down",
"fa-solid fa-clock",
"fa-solid fa-sync",
"fa-solid fa-spinner",
"fa-solid fa-exclamation",
"fa-solid fa-question",
"fa-solid fa-info",
"fa-solid fa-warning",
"fa-solid fa-ban",
"fa-solid fa-sign-in",
"fa-solid fa-sign-out",
"fa-solid fa-arrow-up",
"fa-solid fa-arrow-down",
"fa-solid fa-arrow-left",
"fa-solid fa-arrow-right",
"fa-solid fa-expand",
"fa-solid fa-compress",
"fa-solid fa-print",
"fa-solid fa-copy",
"fa-solid fa-paste",
"fa-solid fa-code",
"fa-solid fa-terminal",
"fa-solid fa-bug",
"fa-solid fa-filter",
"fa-solid fa-sort",
"fa-solid fa-camera",
"fa-solid fa-microphone",
"fa-solid fa-volume-up",
"fa-solid fa-volume-down",
"fa-solid fa-play",
"fa-solid fa-pause",
"fa-solid fa-stop",
"fa-solid fa-forward",
"fa-solid fa-backward",
"fa-solid fa-list",
"fa-solid fa-th",
"fa-solid fa-th-large",
"fa-solid fa-align-left",
"fa-solid fa-align-center",
"fa-solid fa-align-right",
"fa-solid fa-align-justify",
"fa-solid fa-bold",
"fa-solid fa-italic",
"fa-solid fa-underline",
"fa-solid fa-font",
"fa-solid fa-table",
"fa-solid fa-tasks",
"fa-solid fa-check-square",
"fa-solid fa-square",
"fa-solid fa-circle",
"fa-solid fa-ellipsis-h",
"fa-solid fa-ellipsis-v",
"fa-solid fa-bars",
"fa-solid fa-sliders",
"fa-solid fa-toggle-on",
"fa-solid fa-toggle-off",
"fa-solid fa-caret-up",
"fa-solid fa-caret-down",
"fa-solid fa-caret-left",
"fa-solid fa-caret-right",
"fa-solid fa-chevron-up",
"fa-solid fa-chevron-down",
"fa-solid fa-chevron-left",
"fa-solid fa-chevron-right",
"fa-solid fa-angle-up",
"fa-solid fa-angle-down",
"fa-solid fa-angle-left",
"fa-solid fa-angle-right",
"fa-solid fa-external-link",
"fa-solid fa-share-square",
"fa-solid fa-plus-square",
"fa-solid fa-minus-square",
"fa-solid fa-times-circle",
"fa-solid fa-check-circle",
"fa-solid fa-question-circle",
"fa-solid fa-info-circle",
"fa-solid fa-exclamation-circle",
"fa-solid fa-exclamation-triangle",
"fa-solid fa-lightbulb",
"fa-solid fa-flag",
"fa-solid fa-bookmark",
"fa-solid fa-tag",
"fa-solid fa-tags",
"fa-solid fa-book",
"fa-solid fa-newspaper",
"fa-solid fa-sticky-note",
"fa-solid fa-credit-card",
"fa-solid fa-money-bill",
"fa-solid fa-dollar-sign",
"fa-solid fa-euro-sign",
"fa-solid fa-pound-sign",
"fa-solid fa-yen-sign",
"fa-solid fa-ruble-sign",
"fa-solid fa-rupee-sign",
"fa-solid fa-won-sign",
"fa-solid fa-bitcoin-sign",
"fa-solid fa-credit-card",
"fa-solid fa-wallet",
"fa-solid fa-shopping-cart",
"fa-solid fa-shopping-bag",
"fa-solid fa-shopping-basket",
"fa-solid fa-cart-plus",
"fa-solid fa-cart-arrow-down",
"fa-solid fa-cash-register",
"fa-solid fa-receipt",
"fa-solid fa-gift",
"fa-solid fa-box",
"fa-solid fa-boxes",
"fa-solid fa-box-open",
"fa-solid fa-truck",
"fa-solid fa-shipping-fast",
"fa-solid fa-dolly",
"fa-solid fa-warehouse",
"fa-solid fa-store",
"fa-solid fa-store-alt",
"fa-solid fa-shop",
"fa-solid fa-cash-register",
"fa-solid fa-person",
"fa-solid fa-people-group",
"fa-solid fa-user-group",
"fa-solid fa-users",
"fa-solid fa-user-plus",
"fa-solid fa-user-minus",
"fa-solid fa-user-check",
"fa-solid fa-user-times",
"fa-solid fa-user-edit",
"fa-solid fa-user-cog",
"fa-solid fa-user-gear",
"fa-solid fa-user-shield",
"fa-solid fa-user-lock",
"fa-solid fa-user-clock",
"fa-solid fa-user-doctor",
"fa-solid fa-user-nurse",
"fa-solid fa-user-graduate",
"fa-solid fa-user-tie",
"fa-solid fa-user-astronaut",
"fa-solid fa-user-ninja",
"fa-solid fa-user-secret",
"fa-solid fa-address-book",
"fa-solid fa-address-card",
"fa-solid fa-id-badge",
"fa-solid fa-id-card",
"fa-solid fa-signature",
"fa-solid fa-passport",
"fa-solid fa-vcard",
"fa-solid fa-building",
"fa-solid fa-city",
"fa-solid fa-hotel",
"fa-solid fa-house",
"fa-solid fa-school",
"fa-solid fa-university",
"fa-solid fa-church",
"fa-solid fa-mosque",
"fa-solid fa-synagogue",
"fa-solid fa-cross",
"fa-solid fa-star-of-david",
"fa-solid fa-star-and-crescent",
"fa-solid fa-om",
"fa-solid fa-dharmachakra",
"fa-solid fa-yin-yang",
"fa-solid fa-peace",
"fa-solid fa-menorah",
"fa-solid fa-ankh",
"fa-solid fa-hamsa",
"fa-solid fa-pray",
"fa-solid fa-praying-hands",
"fa-solid fa-hands",
"fa-solid fa-hand",
"fa-solid fa-hand-point-up",
"fa-solid fa-hand-point-down",
"fa-solid fa-hand-point-left",
"fa-solid fa-hand-point-right",
"fa-solid fa-hand-paper",
"fa-solid fa-hand-rock",
"fa-solid fa-hand-scissors",
"fa-solid fa-hand-spock",
"fa-solid fa-hand-lizard",
"fa-solid fa-thumbs-up",
"fa-solid fa-thumbs-down",
"fa-solid fa-fist-raised",
"fa-solid fa-hands-helping",
"fa-solid fa-handshake",
"fa-solid fa-hands-wash",
"fa-solid fa-hands-bubbles",
"fa-solid fa-hands-clapping",
"fa-solid fa-sign-language",
"fa-solid fa-american-sign-language-interpreting",
"fa-solid fa-assistive-listening-systems",
"fa-solid fa-braille",
"fa-solid fa-blind",
"fa-solid fa-wheelchair",
"fa-solid fa-accessible-icon",
"fa-solid fa-closed-captioning",
],
regular: [
"fa-regular fa-envelope",
"fa-regular fa-user",
"fa-regular fa-bell",
"fa-regular fa-calendar",
"fa-regular fa-heart",
"fa-regular fa-star",
"fa-regular fa-circle",
"fa-regular fa-square",
"fa-regular fa-file",
"fa-regular fa-folder",
"fa-regular fa-image",
"fa-regular fa-comment",
"fa-regular fa-comments",
"fa-regular fa-message",
"fa-regular fa-paper-plane",
"fa-regular fa-clipboard",
"fa-regular fa-copy",
"fa-regular fa-paste",
"fa-regular fa-save",
"fa-regular fa-edit",
"fa-regular fa-bookmark",
"fa-regular fa-flag",
"fa-regular fa-eye",
"fa-regular fa-eye-slash",
"fa-regular fa-thumbs-up",
"fa-regular fa-thumbs-down",
"fa-regular fa-check-square",
"fa-regular fa-clock",
"fa-regular fa-calendar-alt",
"fa-regular fa-calendar-check",
"fa-regular fa-calendar-minus",
"fa-regular fa-calendar-plus",
"fa-regular fa-calendar-times",
"fa-regular fa-address-book",
"fa-regular fa-address-card",
"fa-regular fa-building",
"fa-regular fa-credit-card",
"fa-regular fa-file-alt",
"fa-regular fa-file-archive",
"fa-regular fa-file-audio",
"fa-regular fa-file-code",
"fa-regular fa-file-excel",
"fa-regular fa-file-image",
"fa-regular fa-file-pdf",
"fa-regular fa-file-powerpoint",
"fa-regular fa-file-video",
"fa-regular fa-file-word",
"fa-regular fa-folder-open",
"fa-regular fa-frown",
"fa-regular fa-meh",
"fa-regular fa-smile",
"fa-regular fa-grin",
"fa-regular fa-grin-alt",
"fa-regular fa-grin-beam",
"fa-regular fa-grin-beam-sweat",
"fa-regular fa-grin-hearts",
"fa-regular fa-grin-squint",
"fa-regular fa-grin-squint-tears",
"fa-regular fa-grin-stars",
"fa-regular fa-grin-tears",
"fa-regular fa-grin-tongue",
"fa-regular fa-grin-tongue-squint",
"fa-regular fa-grin-tongue-wink",
"fa-regular fa-grin-wink",
"fa-regular fa-kiss",
"fa-regular fa-kiss-beam",
"fa-regular fa-kiss-wink-heart",
"fa-regular fa-laugh",
"fa-regular fa-laugh-beam",
"fa-regular fa-laugh-squint",
"fa-regular fa-laugh-wink",
"fa-regular fa-sad-cry",
"fa-regular fa-sad-tear",
"fa-regular fa-smile-beam",
"fa-regular fa-smile-wink",
"fa-regular fa-surprise",
"fa-regular fa-tired",
"fa-regular fa-angry",
"fa-regular fa-dizzy",
"fa-regular fa-flushed",
"fa-regular fa-grimace",
"fa-regular fa-hand-lizard",
"fa-regular fa-hand-paper",
"fa-regular fa-hand-peace",
"fa-regular fa-hand-point-down",
"fa-regular fa-hand-point-left",
"fa-regular fa-hand-point-right",
"fa-regular fa-hand-point-up",
"fa-regular fa-hand-pointer",
"fa-regular fa-hand-rock",
"fa-regular fa-hand-scissors",
"fa-regular fa-hand-spock",
"fa-regular fa-handshake",
"fa-regular fa-hdd",
"fa-regular fa-hospital",
"fa-regular fa-hourglass",
"fa-regular fa-id-badge",
"fa-regular fa-id-card",
"fa-regular fa-image",
"fa-regular fa-images",
"fa-regular fa-keyboard",
"fa-regular fa-lemon",
"fa-regular fa-life-ring",
"fa-regular fa-lightbulb",
"fa-regular fa-list-alt",
"fa-regular fa-map",
"fa-regular fa-money-bill-alt",
"fa-regular fa-moon",
"fa-regular fa-newspaper",
"fa-regular fa-object-group",
"fa-regular fa-object-ungroup",
"fa-regular fa-paper-plane",
"fa-regular fa-pause-circle",
"fa-regular fa-play-circle",
"fa-regular fa-plus-square",
"fa-regular fa-question-circle",
"fa-regular fa-registered",
"fa-regular fa-save",
"fa-regular fa-share-square",
"fa-regular fa-snowflake",
"fa-regular fa-star-half",
"fa-regular fa-sticky-note",
"fa-regular fa-stop-circle",
"fa-regular fa-sun",
"fa-regular fa-thumbs-down",
"fa-regular fa-thumbs-up",
"fa-regular fa-times-circle",
"fa-regular fa-trash-alt",
"fa-regular fa-user-circle",
"fa-regular fa-window-close",
"fa-regular fa-window-maximize",
"fa-regular fa-window-minimize",
"fa-regular fa-window-restore",
],
brands: [
"fa-brands fa-500px",
"fa-brands fa-accessible-icon",
"fa-brands fa-accusoft",
"fa-brands fa-acquisitions-incorporated",
"fa-brands fa-adn",
"fa-brands fa-adobe",
"fa-brands fa-adversal",
"fa-brands fa-affiliatetheme",
"fa-brands fa-airbnb",
"fa-brands fa-algolia",
"fa-brands fa-alipay",
"fa-brands fa-amazon",
"fa-brands fa-amazon-pay",
"fa-brands fa-amilia",
"fa-brands fa-android",
"fa-brands fa-angellist",
"fa-brands fa-angrycreative",
"fa-brands fa-angular",
"fa-brands fa-app-store",
"fa-brands fa-app-store-ios",
"fa-brands fa-apper",
"fa-brands fa-apple",
"fa-brands fa-apple-pay",
"fa-brands fa-artstation",
"fa-brands fa-asymmetrik",
"fa-brands fa-atlassian",
"fa-brands fa-audible",
"fa-brands fa-autoprefixer",
"fa-brands fa-avianex",
"fa-brands fa-aviato",
"fa-brands fa-aws",
"fa-brands fa-bandcamp",
"fa-brands fa-battle-net",
"fa-brands fa-behance",
"fa-brands fa-behance-square",
"fa-brands fa-bimobject",
"fa-brands fa-bitbucket",
"fa-brands fa-bitcoin",
"fa-brands fa-bity",
"fa-brands fa-black-tie",
"fa-brands fa-blackberry",
"fa-brands fa-blogger",
"fa-brands fa-blogger-b",
"fa-brands fa-bluetooth",
"fa-brands fa-bluetooth-b",
"fa-brands fa-bootstrap",
"fa-brands fa-btc",
"fa-brands fa-buffer",
"fa-brands fa-buromobelexperte",
"fa-brands fa-buy-n-large",
"fa-brands fa-buysellads",
"fa-brands fa-canadian-maple-leaf",
"fa-brands fa-cc-amazon-pay",
"fa-brands fa-cc-amex",
"fa-brands fa-cc-apple-pay",
"fa-brands fa-cc-diners-club",
"fa-brands fa-cc-discover",
"fa-brands fa-cc-jcb",
"fa-brands fa-cc-mastercard",
"fa-brands fa-cc-paypal",
"fa-brands fa-cc-stripe",
"fa-brands fa-cc-visa",
"fa-brands fa-centercode",
"fa-brands fa-centos",
"fa-brands fa-chrome",
"fa-brands fa-chromecast",
"fa-brands fa-cloudflare",
"fa-brands fa-cloudscale",
"fa-brands fa-cloudsmith",
"fa-brands fa-cloudversify",
"fa-brands fa-codepen",
"fa-brands fa-codiepie",
"fa-brands fa-confluence",
"fa-brands fa-connectdevelop",
"fa-brands fa-contao",
"fa-brands fa-cotton-bureau",
"fa-brands fa-cpanel",
"fa-brands fa-creative-commons",
"fa-brands fa-css3",
"fa-brands fa-css3-alt",
"fa-brands fa-cuttlefish",
"fa-brands fa-d-and-d",
"fa-brands fa-dashcube",
"fa-brands fa-deezer",
"fa-brands fa-delicious",
"fa-brands fa-deploydog",
"fa-brands fa-deskpro",
"fa-brands fa-dev",
"fa-brands fa-deviantart",
"fa-brands fa-dhl",
"fa-brands fa-diaspora",
"fa-brands fa-digg",
"fa-brands fa-digital-ocean",
"fa-brands fa-discord",
"fa-brands fa-discourse",
"fa-brands fa-dochub",
"fa-brands fa-docker",
"fa-brands fa-draft2digital",
"fa-brands fa-dribbble",
"fa-brands fa-dropbox",
"fa-brands fa-drupal",
"fa-brands fa-dyalog",
"fa-brands fa-earlybirds",
"fa-brands fa-ebay",
"fa-brands fa-edge",
"fa-brands fa-elementor",
"fa-brands fa-ello",
"fa-brands fa-ember",
"fa-brands fa-empire",
"fa-brands fa-envira",
"fa-brands fa-erlang",
"fa-brands fa-ethereum",
"fa-brands fa-etsy",
"fa-brands fa-evernote",
"fa-brands fa-expeditedssl",
"fa-brands fa-facebook",
"fa-brands fa-facebook-f",
"fa-brands fa-facebook-messenger",
"fa-brands fa-facebook-square",
"fa-brands fa-fantasy-flight-games",
"fa-brands fa-fedex",
"fa-brands fa-fedora",
"fa-brands fa-figma",
"fa-brands fa-firefox",
"fa-brands fa-firefox-browser",
"fa-brands fa-first-order",
"fa-brands fa-flickr",
"fa-brands fa-flipboard",
"fa-brands fa-fly",
"fa-brands fa-font-awesome",
"fa-brands fa-fonticons",
"fa-brands fa-fort-awesome",
"fa-brands fa-forumbee",
"fa-brands fa-foursquare",
"fa-brands fa-free-code-camp",
"fa-brands fa-freebsd",
"fa-brands fa-fulcrum",
"fa-brands fa-galactic-republic",
"fa-brands fa-galactic-senate",
"fa-brands fa-get-pocket",
"fa-brands fa-gg",
"fa-brands fa-git",
"fa-brands fa-git-alt",
"fa-brands fa-github",
"fa-brands fa-github-alt",
"fa-brands fa-github-square",
"fa-brands fa-gitkraken",
"fa-brands fa-gitlab",
"fa-brands fa-gitter",
"fa-brands fa-glide",
"fa-brands fa-gofore",
"fa-brands fa-goodreads",
"fa-brands fa-google",
"fa-brands fa-google-drive",
"fa-brands fa-google-pay",
"fa-brands fa-google-play",
"fa-brands fa-google-plus",
"fa-brands fa-google-plus-g",
"fa-brands fa-google-plus-square",
"fa-brands fa-google-wallet",
"fa-brands fa-gratipay",
"fa-brands fa-grav",
"fa-brands fa-gripfire",
"fa-brands fa-grunt",
"fa-brands fa-gulp",
"fa-brands fa-hacker-news",
"fa-brands fa-hackerrank",
"fa-brands fa-hips",
"fa-brands fa-hire-a-helper",
"fa-brands fa-hooli",
"fa-brands fa-hornbill",
"fa-brands fa-hotjar",
"fa-brands fa-houzz",
"fa-brands fa-html5",
"fa-brands fa-hubspot",
"fa-brands fa-ideal",
"fa-brands fa-imdb",
"fa-brands fa-instagram",
"fa-brands fa-intercom",
"fa-brands fa-internet-explorer",
"fa-brands fa-invision",
"fa-brands fa-ioxhost",
"fa-brands fa-itch-io",
"fa-brands fa-itunes",
"fa-brands fa-java",
"fa-brands fa-jedi-order",
"fa-brands fa-jenkins",
"fa-brands fa-jira",
"fa-brands fa-joget",
"fa-brands fa-joomla",
"fa-brands fa-js",
"fa-brands fa-js-square",
"fa-brands fa-jsfiddle",
"fa-brands fa-kaggle",
"fa-brands fa-keybase",
"fa-brands fa-keycdn",
"fa-brands fa-kickstarter",
"fa-brands fa-laravel",
"fa-brands fa-lastfm",
"fa-brands fa-leanpub",
"fa-brands fa-less",
"fa-brands fa-line",
"fa-brands fa-linkedin",
"fa-brands fa-linkedin-in",
"fa-brands fa-linode",
"fa-brands fa-linux",
"fa-brands fa-lyft",
"fa-brands fa-magento",
"fa-brands fa-mailchimp",
"fa-brands fa-mandalorian",
"fa-brands fa-markdown",
"fa-brands fa-mastodon",
"fa-brands fa-maxcdn",
"fa-brands fa-mdb",
"fa-brands fa-medapps",
"fa-brands fa-medium",
"fa-brands fa-medrt",
"fa-brands fa-meetup",
"fa-brands fa-megaport",
"fa-brands fa-mendeley",
"fa-brands fa-microblog",
"fa-brands fa-microsoft",
"fa-brands fa-mix",
"fa-brands fa-mixcloud",
"fa-brands fa-mixer",
"fa-brands fa-mizuni",
"fa-brands fa-modx",
"fa-brands fa-monero",
"fa-brands fa-napster",
"fa-brands fa-neos",
"fa-brands fa-nimblr",
"fa-brands fa-node",
"fa-brands fa-node-js",
"fa-brands fa-npm",
"fa-brands fa-ns8",
"fa-brands fa-nutritionix",
"fa-brands fa-odnoklassniki",
"fa-brands fa-old-republic",
"fa-brands fa-opencart",
"fa-brands fa-openid",
"fa-brands fa-opera",
"fa-brands fa-optin-monster",
"fa-brands fa-orcid",
"fa-brands fa-osi",
"fa-brands fa-page4",
"fa-brands fa-pagelines",
"fa-brands fa-palfed",
"fa-brands fa-patreon",
"fa-brands fa-paypal",
"fa-brands fa-penny-arcade",
"fa-brands fa-periscope",
"fa-brands fa-phabricator",
"fa-brands fa-phoenix-framework",
"fa-brands fa-phoenix-squadron",
"fa-brands fa-php",
"fa-brands fa-pied-piper",
"fa-brands fa-pinterest",
"fa-brands fa-pinterest-p",
"fa-brands fa-pinterest-square",
"fa-brands fa-playstation",
"fa-brands fa-product-hunt",
"fa-brands fa-pushed",
"fa-brands fa-python",
"fa-brands fa-qq",
"fa-brands fa-quinscape",
"fa-brands fa-quora",
"fa-brands fa-r-project",
"fa-brands fa-raspberry-pi",
"fa-brands fa-ravelry",
"fa-brands fa-react",
"fa-brands fa-reacteurope",
"fa-brands fa-readme",
"fa-brands fa-rebel",
"fa-brands fa-red-river",
"fa-brands fa-reddit",
"fa-brands fa-reddit-alien",
"fa-brands fa-reddit-square",
"fa-brands fa-redhat",
"fa-brands fa-renren",
"fa-brands fa-replyd",
"fa-brands fa-researchgate",
"fa-brands fa-resolving",
"fa-brands fa-rev",
"fa-brands fa-rocketchat",
"fa-brands fa-rockrms",
"fa-brands fa-safari",
"fa-brands fa-salesforce",
"fa-brands fa-sass",
"fa-brands fa-schlix",
"fa-brands fa-scribd",
"fa-brands fa-searchengin",
"fa-brands fa-sellcast",
"fa-brands fa-sellsy",
"fa-brands fa-servicestack",
"fa-brands fa-shirtsinbulk",
"fa-brands fa-shopify",
"fa-brands fa-shopware",
"fa-brands fa-simplybuilt",
"fa-brands fa-sistrix",
"fa-brands fa-sith",
"fa-brands fa-sketch",
"fa-brands fa-skyatlas",
"fa-brands fa-skype",
"fa-brands fa-slack",
"fa-brands fa-slack-hash",
"fa-brands fa-slideshare",
"fa-brands fa-snapchat",
"fa-brands fa-snapchat-ghost",
"fa-brands fa-snapchat-square",
"fa-brands fa-soundcloud",
"fa-brands fa-sourcetree",
"fa-brands fa-speakap",
"fa-brands fa-speaker-deck",
"fa-brands fa-spotify",
"fa-brands fa-squarespace",
"fa-brands fa-stack-exchange",
"fa-brands fa-stack-overflow",
"fa-brands fa-stackpath",
"fa-brands fa-staylinked",
"fa-brands fa-steam",
"fa-brands fa-steam-square",
"fa-brands fa-steam-symbol",
"fa-brands fa-sticker-mule",
"fa-brands fa-strava",
"fa-brands fa-stripe",
"fa-brands fa-stripe-s",
"fa-brands fa-studiovinari",
"fa-brands fa-stumbleupon",
"fa-brands fa-stumbleupon-circle",
"fa-brands fa-superpowers",
"fa-brands fa-supple",
"fa-brands fa-suse",
"fa-brands fa-swift",
"fa-brands fa-symfony",
"fa-brands fa-teamspeak",
"fa-brands fa-telegram",
"fa-brands fa-telegram-plane",
"fa-brands fa-tencent-weibo",
"fa-brands fa-the-red-yeti",
"fa-brands fa-themeco",
"fa-brands fa-themeisle",
"fa-brands fa-think-peaks",
"fa-brands fa-tiktok",
"fa-brands fa-trade-federation",
"fa-brands fa-trello",
"fa-brands fa-tripadvisor",
"fa-brands fa-tumblr",
"fa-brands fa-tumblr-square",
"fa-brands fa-twitch",
"fa-brands fa-twitter",
"fa-brands fa-twitter-square",
"fa-brands fa-typo3",
"fa-brands fa-uber",
"fa-brands fa-ubuntu",
"fa-brands fa-uikit",
"fa-brands fa-umbraco",
"fa-brands fa-uniregistry",
"fa-brands fa-unity",
"fa-brands fa-unsplash",
"fa-brands fa-untappd",
"fa-brands fa-ups",
"fa-brands fa-usb",
"fa-brands fa-usps",
"fa-brands fa-ussunnah",
"fa-brands fa-vaadin",
"fa-brands fa-viacoin",
"fa-brands fa-viadeo",
"fa-brands fa-viadeo-square",
"fa-brands fa-viber",
"fa-brands fa-vimeo",
"fa-brands fa-vimeo-square",
"fa-brands fa-vimeo-v",
"fa-brands fa-vine",
"fa-brands fa-vk",
"fa-brands fa-vnv",
"fa-brands fa-vuejs",
"fa-brands fa-waze",
"fa-brands fa-weebly",
"fa-brands fa-weibo",
"fa-brands fa-weixin",
"fa-brands fa-whatsapp",
"fa-brands fa-whatsapp-square",
"fa-brands fa-whmcs",
"fa-brands fa-wikipedia-w",
"fa-brands fa-windows",
"fa-brands fa-wix",
"fa-brands fa-wizards-of-the-coast",
"fa-brands fa-wolf-pack-battalion",
"fa-brands fa-wordpress",
"fa-brands fa-wordpress-simple",
"fa-brands fa-wpbeginner",
"fa-brands fa-wpexplorer",
"fa-brands fa-wpforms",
"fa-brands fa-wpressr",
"fa-brands fa-xbox",
"fa-brands fa-xing",
"fa-brands fa-xing-square",
"fa-brands fa-y-combinator",
"fa-brands fa-yahoo",
"fa-brands fa-yammer",
"fa-brands fa-yandex",
"fa-brands fa-yandex-international",
"fa-brands fa-yarn",
"fa-brands fa-yelp",
"fa-brands fa-yoast",
"fa-brands fa-youtube",
"fa-brands fa-youtube-square",
"fa-brands fa-zhihu",
],
};
// Function to generate the icon grid
function generateIconGrid(category = "all") {
const iconGrid = $("#icon-grid");
iconGrid.empty();
let iconsToShow = [];
if (category === "all") {
iconsToShow = [...icons.solid, ...icons.regular, ...icons.brands];
} else {
iconsToShow = icons[category] || [];
}
// Filter by search if necessary
const searchTerm = $("#icon-search").val().toLowerCase();
if (searchTerm) {
iconsToShow = iconsToShow.filter((icon) =>
icon.toLowerCase().includes(searchTerm)
);
}
// Limit to 200 icons for performance reasons
const limitedIcons = iconsToShow.slice(0, 200);
// Generate HTML elements for each icon
limitedIcons.forEach((icon) => {
const iconName = icon.split(" ").pop().replace("fa-", "");
const iconItem = $(`
<div class="icon-item" data-icon="${icon}" onclick="selectIcon('${icon}')">
<i class="${icon}"></i>
<span>${iconName}</span>
</div>
`);
iconGrid.append(iconItem);
});
// If no icon is found
if (limitedIcons.length === 0) {
iconGrid.append(
'<div style="grid-column: 1 / -1; text-align: center; padding: 20px;">No icons found</div>'
);
}
}
// Generate the initial icon grid
generateIconGrid();
// Filter icons by category
$(".icon-category").click(function () {
$(".icon-category").removeClass("active");
$(this).addClass("active");
generateIconGrid($(this).data("category"));
});
// Filter icons by search
$("#icon-search").on("input", function () {
const category = $(".icon-category.active").data("category");
generateIconGrid(category);
});
}