diff --git a/assets/release_notes.md b/assets/release_notes.md index 348b74c2..cecb00f5 100644 --- a/assets/release_notes.md +++ b/assets/release_notes.md @@ -1,6 +1,14 @@ ## InvenTree App Release Notes --- +### 0.9.2 - December 2022 +--- + +- Support custom icons for part category +- Support custom icons for stock location +- Updated translations + + ### 0.9.1 - December 2022 --- diff --git a/lib/fa_icon_mapping.dart b/lib/fa_icon_mapping.dart new file mode 100644 index 00000000..46a84c90 --- /dev/null +++ b/lib/fa_icon_mapping.dart @@ -0,0 +1,1461 @@ + +// Map text names for icons into flutter icon data +// This file has been auto-generated (do not edit manually) +// Icon data was extracted from "font_awesome_flutter.dart" +const Map fontAwesomeIconMap = { + "500px": 0xf26e, + "accessible-icon": 0xf368, + "accusoft": 0xf369, + "acquisitions-incorporated": 0xf6af, + "ad": 0xf641, + "address-book": 0xf2b9, + "address-card": 0xf2bb, + "adjust": 0xf042, + "adn": 0xf170, + "adversal": 0xf36a, + "affiliatetheme": 0xf36b, + "air-freshener": 0xf5d0, + "airbnb": 0xf834, + "algolia": 0xf36c, + "align-center": 0xf037, + "align-justify": 0xf039, + "align-left": 0xf036, + "align-right": 0xf038, + "alipay": 0xf642, + "allergies": 0xf461, + "amazon": 0xf270, + "amazon-pay": 0xf42c, + "ambulance": 0xf0f9, + "amilia": 0xf36d, + "anchor": 0xf13d, + "android": 0xf17b, + "angellist": 0xf209, + "angle-double-down": 0xf103, + "angle-double-left": 0xf100, + "angle-double-right": 0xf101, + "angle-double-up": 0xf102, + "angle-down": 0xf107, + "angle-left": 0xf104, + "angle-right": 0xf105, + "angle-up": 0xf106, + "angry": 0xf556, + "angrycreative": 0xf36e, + "angular": 0xf420, + "ankh": 0xf644, + "app-store": 0xf36f, + "app-store-ios": 0xf370, + "apper": 0xf371, + "apple": 0xf179, + "apple-alt": 0xf5d1, + "apple-pay": 0xf415, + "archive": 0xf187, + "archway": 0xf557, + "arrow-alt-circle-down": 0xf358, + "arrow-alt-circle-left": 0xf359, + "arrow-alt-circle-right": 0xf35a, + "arrow-alt-circle-up": 0xf35b, + "arrow-circle-down": 0xf0ab, + "arrow-circle-left": 0xf0a8, + "arrow-circle-right": 0xf0a9, + "arrow-circle-up": 0xf0aa, + "arrow-down": 0xf063, + "arrow-left": 0xf060, + "arrow-right": 0xf061, + "arrow-up": 0xf062, + "arrows-alt": 0xf0b2, + "arrows-alt-h": 0xf337, + "arrows-alt-v": 0xf338, + "artstation": 0xf77a, + "assistive-listening-systems": 0xf2a2, + "asterisk": 0xf069, + "asymmetrik": 0xf372, + "at": 0xf1fa, + "atlas": 0xf558, + "atlassian": 0xf77b, + "atom": 0xf5d2, + "audible": 0xf373, + "audio-description": 0xf29e, + "autoprefixer": 0xf41c, + "avianex": 0xf374, + "aviato": 0xf421, + "award": 0xf559, + "aws": 0xf375, + "baby": 0xf77c, + "baby-carriage": 0xf77d, + "backspace": 0xf55a, + "backward": 0xf04a, + "bacon": 0xf7e5, + "bacteria": 0xe059, + "bacterium": 0xe05a, + "bahai": 0xf666, + "balance-scale": 0xf24e, + "balance-scale-left": 0xf515, + "balance-scale-right": 0xf516, + "ban": 0xf05e, + "band-aid": 0xf462, + "bandcamp": 0xf2d5, + "barcode": 0xf02a, + "bars": 0xf0c9, + "baseball-ball": 0xf433, + "basketball-ball": 0xf434, + "bath": 0xf2cd, + "battery-empty": 0xf244, + "battery-full": 0xf240, + "battery-half": 0xf242, + "battery-quarter": 0xf243, + "battery-three-quarters": 0xf241, + "battle-net": 0xf835, + "bed": 0xf236, + "beer": 0xf0fc, + "behance": 0xf1b4, + "behance-square": 0xf1b5, + "bell": 0xf0f3, + "bell-slash": 0xf1f6, + "bezier-curve": 0xf55b, + "bible": 0xf647, + "bicycle": 0xf206, + "biking": 0xf84a, + "bimobject": 0xf378, + "binoculars": 0xf1e5, + "biohazard": 0xf780, + "birthday-cake": 0xf1fd, + "bitbucket": 0xf171, + "bitcoin": 0xf379, + "bity": 0xf37a, + "black-tie": 0xf27e, + "blackberry": 0xf37b, + "blender": 0xf517, + "blender-phone": 0xf6b6, + "blind": 0xf29d, + "blog": 0xf781, + "blogger": 0xf37c, + "blogger-b": 0xf37d, + "bluetooth": 0xf293, + "bluetooth-b": 0xf294, + "bold": 0xf032, + "bolt": 0xf0e7, + "bomb": 0xf1e2, + "bone": 0xf5d7, + "bong": 0xf55c, + "book": 0xf02d, + "book-dead": 0xf6b7, + "book-medical": 0xf7e6, + "book-open": 0xf518, + "book-reader": 0xf5da, + "bookmark": 0xf02e, + "bootstrap": 0xf836, + "border-all": 0xf84c, + "border-none": 0xf850, + "border-style": 0xf853, + "bowling-ball": 0xf436, + "box": 0xf466, + "box-open": 0xf49e, + "box-tissue": 0xe05b, + "boxes": 0xf468, + "braille": 0xf2a1, + "brain": 0xf5dc, + "bread-slice": 0xf7ec, + "briefcase": 0xf0b1, + "briefcase-medical": 0xf469, + "broadcast-tower": 0xf519, + "broom": 0xf51a, + "brush": 0xf55d, + "btc": 0xf15a, + "buffer": 0xf837, + "bug": 0xf188, + "building": 0xf1ad, + "bullhorn": 0xf0a1, + "bullseye": 0xf140, + "burn": 0xf46a, + "buromobelexperte": 0xf37f, + "bus": 0xf207, + "bus-alt": 0xf55e, + "business-time": 0xf64a, + "buy-n-large": 0xf8a6, + "buysellads": 0xf20d, + "calculator": 0xf1ec, + "calendar": 0xf133, + "calendar-alt": 0xf073, + "calendar-check": 0xf274, + "calendar-day": 0xf783, + "calendar-minus": 0xf272, + "calendar-plus": 0xf271, + "calendar-times": 0xf273, + "calendar-week": 0xf784, + "camera": 0xf030, + "camera-retro": 0xf083, + "campground": 0xf6bb, + "canadian-maple-leaf": 0xf785, + "candy-cane": 0xf786, + "cannabis": 0xf55f, + "capsules": 0xf46b, + "car": 0xf1b9, + "car-alt": 0xf5de, + "car-battery": 0xf5df, + "car-crash": 0xf5e1, + "car-side": 0xf5e4, + "caravan": 0xf8ff, + "caret-down": 0xf0d7, + "caret-left": 0xf0d9, + "caret-right": 0xf0da, + "caret-square-down": 0xf150, + "caret-square-left": 0xf191, + "caret-square-right": 0xf152, + "caret-square-up": 0xf151, + "caret-up": 0xf0d8, + "carrot": 0xf787, + "cart-arrow-down": 0xf218, + "cart-plus": 0xf217, + "cash-register": 0xf788, + "cat": 0xf6be, + "cc-amazon-pay": 0xf42d, + "cc-amex": 0xf1f3, + "cc-apple-pay": 0xf416, + "cc-diners-club": 0xf24c, + "cc-discover": 0xf1f2, + "cc-jcb": 0xf24b, + "cc-mastercard": 0xf1f1, + "cc-paypal": 0xf1f4, + "cc-stripe": 0xf1f5, + "cc-visa": 0xf1f0, + "centercode": 0xf380, + "centos": 0xf789, + "certificate": 0xf0a3, + "chair": 0xf6c0, + "chalkboard": 0xf51b, + "chalkboard-teacher": 0xf51c, + "charging-station": 0xf5e7, + "chart-area": 0xf1fe, + "chart-bar": 0xf080, + "chart-line": 0xf201, + "chart-pie": 0xf200, + "check": 0xf00c, + "check-circle": 0xf058, + "check-double": 0xf560, + "check-square": 0xf14a, + "cheese": 0xf7ef, + "chess": 0xf439, + "chess-bishop": 0xf43a, + "chess-board": 0xf43c, + "chess-king": 0xf43f, + "chess-knight": 0xf441, + "chess-pawn": 0xf443, + "chess-queen": 0xf445, + "chess-rook": 0xf447, + "chevron-circle-down": 0xf13a, + "chevron-circle-left": 0xf137, + "chevron-circle-right": 0xf138, + "chevron-circle-up": 0xf139, + "chevron-down": 0xf078, + "chevron-left": 0xf053, + "chevron-right": 0xf054, + "chevron-up": 0xf077, + "child": 0xf1ae, + "chrome": 0xf268, + "chromecast": 0xf838, + "church": 0xf51d, + "circle": 0xf111, + "circle-notch": 0xf1ce, + "city": 0xf64f, + "clinic-medical": 0xf7f2, + "clipboard": 0xf328, + "clipboard-check": 0xf46c, + "clipboard-list": 0xf46d, + "clock": 0xf017, + "clone": 0xf24d, + "closed-captioning": 0xf20a, + "cloud": 0xf0c2, + "cloud-download-alt": 0xf381, + "cloud-meatball": 0xf73b, + "cloud-moon": 0xf6c3, + "cloud-moon-rain": 0xf73c, + "cloud-rain": 0xf73d, + "cloud-showers-heavy": 0xf740, + "cloud-sun": 0xf6c4, + "cloud-sun-rain": 0xf743, + "cloud-upload-alt": 0xf382, + "cloudflare": 0xe07d, + "cloudscale": 0xf383, + "cloudsmith": 0xf384, + "cloudversify": 0xf385, + "cocktail": 0xf561, + "code": 0xf121, + "code-branch": 0xf126, + "codepen": 0xf1cb, + "codiepie": 0xf284, + "coffee": 0xf0f4, + "cog": 0xf013, + "cogs": 0xf085, + "coins": 0xf51e, + "columns": 0xf0db, + "comment": 0xf075, + "comment-alt": 0xf27a, + "comment-dollar": 0xf651, + "comment-dots": 0xf4ad, + "comment-medical": 0xf7f5, + "comment-slash": 0xf4b3, + "comments": 0xf086, + "comments-dollar": 0xf653, + "compact-disc": 0xf51f, + "compass": 0xf14e, + "compress": 0xf066, + "compress-alt": 0xf422, + "compress-arrows-alt": 0xf78c, + "concierge-bell": 0xf562, + "confluence": 0xf78d, + "connectdevelop": 0xf20e, + "contao": 0xf26d, + "cookie": 0xf563, + "cookie-bite": 0xf564, + "copy": 0xf0c5, + "copyright": 0xf1f9, + "cotton-bureau": 0xf89e, + "couch": 0xf4b8, + "cpanel": 0xf388, + "creative-commons": 0xf25e, + "creative-commons-by": 0xf4e7, + "creative-commons-nc": 0xf4e8, + "creative-commons-nc-eu": 0xf4e9, + "creative-commons-nc-jp": 0xf4ea, + "creative-commons-nd": 0xf4eb, + "creative-commons-pd": 0xf4ec, + "creative-commons-pd-alt": 0xf4ed, + "creative-commons-remix": 0xf4ee, + "creative-commons-sa": 0xf4ef, + "creative-commons-sampling": 0xf4f0, + "creative-commons-share": 0xf4f2, + "creative-commons-zero": 0xf4f3, + "credit-card": 0xf09d, + "critical-role": 0xf6c9, + "crop": 0xf125, + "crop-alt": 0xf565, + "cross": 0xf654, + "crosshairs": 0xf05b, + "crow": 0xf520, + "crown": 0xf521, + "crutch": 0xf7f7, + "css3": 0xf13c, + "css3-alt": 0xf38b, + "cube": 0xf1b2, + "cubes": 0xf1b3, + "cut": 0xf0c4, + "cuttlefish": 0xf38c, + "d-and-d": 0xf38d, + "d-and-d-beyond": 0xf6ca, + "dailymotion": 0xe052, + "dashcube": 0xf210, + "database": 0xf1c0, + "deaf": 0xf2a4, + "deezer": 0xe077, + "delicious": 0xf1a5, + "democrat": 0xf747, + "deploydog": 0xf38e, + "deskpro": 0xf38f, + "desktop": 0xf108, + "dev": 0xf6cc, + "deviantart": 0xf1bd, + "dharmachakra": 0xf655, + "dhl": 0xf790, + "diagnoses": 0xf470, + "diaspora": 0xf791, + "dice": 0xf522, + "dice-d20": 0xf6cf, + "dice-d6": 0xf6d1, + "dice-five": 0xf523, + "dice-four": 0xf524, + "dice-one": 0xf525, + "dice-six": 0xf526, + "dice-three": 0xf527, + "dice-two": 0xf528, + "digg": 0xf1a6, + "digital-ocean": 0xf391, + "digital-tachograph": 0xf566, + "directions": 0xf5eb, + "discord": 0xf392, + "discourse": 0xf393, + "disease": 0xf7fa, + "divide": 0xf529, + "dizzy": 0xf567, + "dna": 0xf471, + "dochub": 0xf394, + "docker": 0xf395, + "dog": 0xf6d3, + "dollar-sign": 0xf155, + "dolly": 0xf472, + "dolly-flatbed": 0xf474, + "donate": 0xf4b9, + "door-closed": 0xf52a, + "door-open": 0xf52b, + "dot-circle": 0xf192, + "dove": 0xf4ba, + "download": 0xf019, + "draft2digital": 0xf396, + "drafting-compass": 0xf568, + "dragon": 0xf6d5, + "draw-polygon": 0xf5ee, + "dribbble": 0xf17d, + "dribbble-square": 0xf397, + "dropbox": 0xf16b, + "drum": 0xf569, + "drum-steelpan": 0xf56a, + "drumstick-bite": 0xf6d7, + "drupal": 0xf1a9, + "dumbbell": 0xf44b, + "dumpster": 0xf793, + "dumpster-fire": 0xf794, + "dungeon": 0xf6d9, + "dyalog": 0xf399, + "earlybirds": 0xf39a, + "ebay": 0xf4f4, + "edge": 0xf282, + "edge-legacy": 0xe078, + "edit": 0xf044, + "egg": 0xf7fb, + "eject": 0xf052, + "elementor": 0xf430, + "ellipsis-h": 0xf141, + "ellipsis-v": 0xf142, + "ello": 0xf5f1, + "ember": 0xf423, + "empire": 0xf1d1, + "envelope": 0xf0e0, + "envelope-open": 0xf2b6, + "envelope-open-text": 0xf658, + "envelope-square": 0xf199, + "envira": 0xf299, + "equals": 0xf52c, + "eraser": 0xf12d, + "erlang": 0xf39d, + "ethereum": 0xf42e, + "ethernet": 0xf796, + "etsy": 0xf2d7, + "euro-sign": 0xf153, + "evernote": 0xf839, + "exchange-alt": 0xf362, + "exclamation": 0xf12a, + "exclamation-circle": 0xf06a, + "exclamation-triangle": 0xf071, + "expand": 0xf065, + "expand-alt": 0xf424, + "expand-arrows-alt": 0xf31e, + "expeditedssl": 0xf23e, + "external-link-alt": 0xf35d, + "external-link-square-alt": 0xf360, + "eye": 0xf06e, + "eye-dropper": 0xf1fb, + "eye-slash": 0xf070, + "facebook": 0xf09a, + "facebook-f": 0xf39e, + "facebook-messenger": 0xf39f, + "facebook-square": 0xf082, + "fan": 0xf863, + "fantasy-flight-games": 0xf6dc, + "fast-backward": 0xf049, + "fast-forward": 0xf050, + "faucet": 0xe005, + "fax": 0xf1ac, + "feather": 0xf52d, + "feather-alt": 0xf56b, + "fedex": 0xf797, + "fedora": 0xf798, + "female": 0xf182, + "fighter-jet": 0xf0fb, + "figma": 0xf799, + "file": 0xf15b, + "file-alt": 0xf15c, + "file-archive": 0xf1c6, + "file-audio": 0xf1c7, + "file-code": 0xf1c9, + "file-contract": 0xf56c, + "file-csv": 0xf6dd, + "file-download": 0xf56d, + "file-excel": 0xf1c3, + "file-export": 0xf56e, + "file-image": 0xf1c5, + "file-import": 0xf56f, + "file-invoice": 0xf570, + "file-invoice-dollar": 0xf571, + "file-medical": 0xf477, + "file-medical-alt": 0xf478, + "file-pdf": 0xf1c1, + "file-powerpoint": 0xf1c4, + "file-prescription": 0xf572, + "file-signature": 0xf573, + "file-upload": 0xf574, + "file-video": 0xf1c8, + "file-word": 0xf1c2, + "fill": 0xf575, + "fill-drip": 0xf576, + "film": 0xf008, + "filter": 0xf0b0, + "fingerprint": 0xf577, + "fire": 0xf06d, + "fire-alt": 0xf7e4, + "fire-extinguisher": 0xf134, + "firefox": 0xf269, + "firefox-browser": 0xe007, + "first-aid": 0xf479, + "first-order": 0xf2b0, + "first-order-alt": 0xf50a, + "firstdraft": 0xf3a1, + "fish": 0xf578, + "fist-raised": 0xf6de, + "flag": 0xf024, + "flag-checkered": 0xf11e, + "flag-usa": 0xf74d, + "flask": 0xf0c3, + "flickr": 0xf16e, + "flipboard": 0xf44d, + "flushed": 0xf579, + "fly": 0xf417, + "folder": 0xf07b, + "folder-minus": 0xf65d, + "folder-open": 0xf07c, + "folder-plus": 0xf65e, + "font": 0xf031, + "font-awesome": 0xf2b4, + "font-awesome-alt": 0xf35c, + "font-awesome-flag": 0xf425, + "fonticons": 0xf280, + "fonticons-fi": 0xf3a2, + "football-ball": 0xf44e, + "fort-awesome": 0xf286, + "fort-awesome-alt": 0xf3a3, + "forumbee": 0xf211, + "forward": 0xf04e, + "foursquare": 0xf180, + "free-code-camp": 0xf2c5, + "freebsd": 0xf3a4, + "frog": 0xf52e, + "frown": 0xf119, + "frown-open": 0xf57a, + "fulcrum": 0xf50b, + "funnel-dollar": 0xf662, + "futbol": 0xf1e3, + "galactic-republic": 0xf50c, + "galactic-senate": 0xf50d, + "gamepad": 0xf11b, + "gas-pump": 0xf52f, + "gavel": 0xf0e3, + "gem": 0xf3a5, + "genderless": 0xf22d, + "get-pocket": 0xf265, + "gg": 0xf260, + "gg-circle": 0xf261, + "ghost": 0xf6e2, + "gift": 0xf06b, + "gifts": 0xf79c, + "git": 0xf1d3, + "git-alt": 0xf841, + "git-square": 0xf1d2, + "github": 0xf09b, + "github-alt": 0xf113, + "github-square": 0xf092, + "gitkraken": 0xf3a6, + "gitlab": 0xf296, + "gitter": 0xf426, + "glass-cheers": 0xf79f, + "glass-martini": 0xf000, + "glass-martini-alt": 0xf57b, + "glass-whiskey": 0xf7a0, + "glasses": 0xf530, + "glide": 0xf2a5, + "glide-g": 0xf2a6, + "globe": 0xf0ac, + "globe-africa": 0xf57c, + "globe-americas": 0xf57d, + "globe-asia": 0xf57e, + "globe-europe": 0xf7a2, + "gofore": 0xf3a7, + "golf-ball": 0xf450, + "goodreads": 0xf3a8, + "goodreads-g": 0xf3a9, + "google": 0xf1a0, + "google-drive": 0xf3aa, + "google-pay": 0xe079, + "google-play": 0xf3ab, + "google-plus": 0xf2b3, + "google-plus-g": 0xf0d5, + "google-plus-square": 0xf0d4, + "google-wallet": 0xf1ee, + "gopuram": 0xf664, + "graduation-cap": 0xf19d, + "gratipay": 0xf184, + "grav": 0xf2d6, + "greater-than": 0xf531, + "greater-than-equal": 0xf532, + "grimace": 0xf57f, + "grin": 0xf580, + "grin-alt": 0xf581, + "grin-beam": 0xf582, + "grin-beam-sweat": 0xf583, + "grin-hearts": 0xf584, + "grin-squint": 0xf585, + "grin-squint-tears": 0xf586, + "grin-stars": 0xf587, + "grin-tears": 0xf588, + "grin-tongue": 0xf589, + "grin-tongue-squint": 0xf58a, + "grin-tongue-wink": 0xf58b, + "grin-wink": 0xf58c, + "grip-horizontal": 0xf58d, + "grip-lines": 0xf7a4, + "grip-lines-vertical": 0xf7a5, + "grip-vertical": 0xf58e, + "gripfire": 0xf3ac, + "grunt": 0xf3ad, + "guilded": 0xe07e, + "guitar": 0xf7a6, + "gulp": 0xf3ae, + "h-square": 0xf0fd, + "hacker-news": 0xf1d4, + "hacker-news-square": 0xf3af, + "hackerrank": 0xf5f7, + "hamburger": 0xf805, + "hammer": 0xf6e3, + "hamsa": 0xf665, + "hand-holding": 0xf4bd, + "hand-holding-heart": 0xf4be, + "hand-holding-medical": 0xe05c, + "hand-holding-usd": 0xf4c0, + "hand-holding-water": 0xf4c1, + "hand-lizard": 0xf258, + "hand-middle-finger": 0xf806, + "hand-paper": 0xf256, + "hand-peace": 0xf25b, + "hand-point-down": 0xf0a7, + "hand-point-left": 0xf0a5, + "hand-point-right": 0xf0a4, + "hand-point-up": 0xf0a6, + "hand-pointer": 0xf25a, + "hand-rock": 0xf255, + "hand-scissors": 0xf257, + "hand-sparkles": 0xe05d, + "hand-spock": 0xf259, + "hands": 0xf4c2, + "hands-helping": 0xf4c4, + "hands-wash": 0xe05e, + "handshake": 0xf2b5, + "handshake-alt-slash": 0xe05f, + "handshake-slash": 0xe060, + "hanukiah": 0xf6e6, + "hard-hat": 0xf807, + "hashtag": 0xf292, + "hat-cowboy": 0xf8c0, + "hat-cowboy-side": 0xf8c1, + "hat-wizard": 0xf6e8, + "hdd": 0xf0a0, + "head-side-cough": 0xe061, + "head-side-cough-slash": 0xe062, + "head-side-mask": 0xe063, + "head-side-virus": 0xe064, + "heading": 0xf1dc, + "headphones": 0xf025, + "headphones-alt": 0xf58f, + "headset": 0xf590, + "heart": 0xf004, + "heart-broken": 0xf7a9, + "heartbeat": 0xf21e, + "helicopter": 0xf533, + "highlighter": 0xf591, + "hiking": 0xf6ec, + "hippo": 0xf6ed, + "hips": 0xf452, + "hire-a-helper": 0xf3b0, + "history": 0xf1da, + "hive": 0xe07f, + "hockey-puck": 0xf453, + "holly-berry": 0xf7aa, + "home": 0xf015, + "hooli": 0xf427, + "hornbill": 0xf592, + "horse": 0xf6f0, + "horse-head": 0xf7ab, + "hospital": 0xf0f8, + "hospital-alt": 0xf47d, + "hospital-symbol": 0xf47e, + "hospital-user": 0xf80d, + "hot-tub": 0xf593, + "hotdog": 0xf80f, + "hotel": 0xf594, + "hotjar": 0xf3b1, + "hourglass": 0xf254, + "hourglass-end": 0xf253, + "hourglass-half": 0xf252, + "hourglass-start": 0xf251, + "house-damage": 0xf6f1, + "house-user": 0xe065, + "houzz": 0xf27c, + "hryvnia": 0xf6f2, + "html5": 0xf13b, + "hubspot": 0xf3b2, + "i-cursor": 0xf246, + "ice-cream": 0xf810, + "icicles": 0xf7ad, + "icons": 0xf86d, + "id-badge": 0xf2c1, + "id-card": 0xf2c2, + "id-card-alt": 0xf47f, + "ideal": 0xe013, + "igloo": 0xf7ae, + "image": 0xf03e, + "images": 0xf302, + "imdb": 0xf2d8, + "inbox": 0xf01c, + "indent": 0xf03c, + "industry": 0xf275, + "infinity": 0xf534, + "info": 0xf129, + "info-circle": 0xf05a, + "innosoft": 0xe080, + "instagram": 0xf16d, + "instagram-square": 0xe055, + "instalod": 0xe081, + "intercom": 0xf7af, + "internet-explorer": 0xf26b, + "invision": 0xf7b0, + "ioxhost": 0xf208, + "italic": 0xf033, + "itch-io": 0xf83a, + "itunes": 0xf3b4, + "itunes-note": 0xf3b5, + "java": 0xf4e4, + "jedi": 0xf669, + "jedi-order": 0xf50e, + "jenkins": 0xf3b6, + "jira": 0xf7b1, + "joget": 0xf3b7, + "joint": 0xf595, + "joomla": 0xf1aa, + "journal-whills": 0xf66a, + "js": 0xf3b8, + "js-square": 0xf3b9, + "jsfiddle": 0xf1cc, + "kaaba": 0xf66b, + "kaggle": 0xf5fa, + "key": 0xf084, + "keybase": 0xf4f5, + "keyboard": 0xf11c, + "keycdn": 0xf3ba, + "khanda": 0xf66d, + "kickstarter": 0xf3bb, + "kickstarter-k": 0xf3bc, + "kiss": 0xf596, + "kiss-beam": 0xf597, + "kiss-wink-heart": 0xf598, + "kiwi-bird": 0xf535, + "korvue": 0xf42f, + "landmark": 0xf66f, + "language": 0xf1ab, + "laptop": 0xf109, + "laptop-code": 0xf5fc, + "laptop-house": 0xe066, + "laptop-medical": 0xf812, + "laravel": 0xf3bd, + "lastfm": 0xf202, + "lastfm-square": 0xf203, + "laugh": 0xf599, + "laugh-beam": 0xf59a, + "laugh-squint": 0xf59b, + "laugh-wink": 0xf59c, + "layer-group": 0xf5fd, + "leaf": 0xf06c, + "leanpub": 0xf212, + "lemon": 0xf094, + "less": 0xf41d, + "less-than": 0xf536, + "less-than-equal": 0xf537, + "level-down-alt": 0xf3be, + "level-up-alt": 0xf3bf, + "life-ring": 0xf1cd, + "lightbulb": 0xf0eb, + "line": 0xf3c0, + "link": 0xf0c1, + "linkedin": 0xf08c, + "linkedin-in": 0xf0e1, + "linode": 0xf2b8, + "linux": 0xf17c, + "lira-sign": 0xf195, + "list": 0xf03a, + "list-alt": 0xf022, + "list-ol": 0xf0cb, + "list-ul": 0xf0ca, + "location-arrow": 0xf124, + "lock": 0xf023, + "lock-open": 0xf3c1, + "long-arrow-alt-down": 0xf309, + "long-arrow-alt-left": 0xf30a, + "long-arrow-alt-right": 0xf30b, + "long-arrow-alt-up": 0xf30c, + "low-vision": 0xf2a8, + "luggage-cart": 0xf59d, + "lungs": 0xf604, + "lungs-virus": 0xe067, + "lyft": 0xf3c3, + "magento": 0xf3c4, + "magic": 0xf0d0, + "magnet": 0xf076, + "mail-bulk": 0xf674, + "mailchimp": 0xf59e, + "male": 0xf183, + "mandalorian": 0xf50f, + "map": 0xf279, + "map-marked": 0xf59f, + "map-marked-alt": 0xf5a0, + "map-marker": 0xf041, + "map-marker-alt": 0xf3c5, + "map-pin": 0xf276, + "map-signs": 0xf277, + "markdown": 0xf60f, + "marker": 0xf5a1, + "mars": 0xf222, + "mars-double": 0xf227, + "mars-stroke": 0xf229, + "mars-stroke-h": 0xf22b, + "mars-stroke-v": 0xf22a, + "mask": 0xf6fa, + "mastodon": 0xf4f6, + "maxcdn": 0xf136, + "mdb": 0xf8ca, + "medal": 0xf5a2, + "medapps": 0xf3c6, + "medium": 0xf23a, + "medium-m": 0xf3c7, + "medkit": 0xf0fa, + "medrt": 0xf3c8, + "meetup": 0xf2e0, + "megaport": 0xf5a3, + "meh": 0xf11a, + "meh-blank": 0xf5a4, + "meh-rolling-eyes": 0xf5a5, + "memory": 0xf538, + "mendeley": 0xf7b3, + "menorah": 0xf676, + "mercury": 0xf223, + "meteor": 0xf753, + "microblog": 0xe01a, + "microchip": 0xf2db, + "microphone": 0xf130, + "microphone-alt": 0xf3c9, + "microphone-alt-slash": 0xf539, + "microphone-slash": 0xf131, + "microscope": 0xf610, + "microsoft": 0xf3ca, + "minus": 0xf068, + "minus-circle": 0xf056, + "minus-square": 0xf146, + "mitten": 0xf7b5, + "mix": 0xf3cb, + "mixcloud": 0xf289, + "mixer": 0xe056, + "mizuni": 0xf3cc, + "mobile": 0xf10b, + "mobile-alt": 0xf3cd, + "modx": 0xf285, + "monero": 0xf3d0, + "money-bill": 0xf0d6, + "money-bill-alt": 0xf3d1, + "money-bill-wave": 0xf53a, + "money-bill-wave-alt": 0xf53b, + "money-check": 0xf53c, + "money-check-alt": 0xf53d, + "monument": 0xf5a6, + "moon": 0xf186, + "mortar-pestle": 0xf5a7, + "mosque": 0xf678, + "motorcycle": 0xf21c, + "mountain": 0xf6fc, + "mouse": 0xf8cc, + "mouse-pointer": 0xf245, + "mug-hot": 0xf7b6, + "music": 0xf001, + "napster": 0xf3d2, + "neos": 0xf612, + "network-wired": 0xf6ff, + "neuter": 0xf22c, + "newspaper": 0xf1ea, + "nimblr": 0xf5a8, + "node": 0xf419, + "node-js": 0xf3d3, + "not-equal": 0xf53e, + "notes-medical": 0xf481, + "npm": 0xf3d4, + "ns8": 0xf3d5, + "nutritionix": 0xf3d6, + "object-group": 0xf247, + "object-ungroup": 0xf248, + "octopus-deploy": 0xe082, + "odnoklassniki": 0xf263, + "odnoklassniki-square": 0xf264, + "oil-can": 0xf613, + "old-republic": 0xf510, + "om": 0xf679, + "opencart": 0xf23d, + "openid": 0xf19b, + "opera": 0xf26a, + "optin-monster": 0xf23c, + "orcid": 0xf8d2, + "osi": 0xf41a, + "otter": 0xf700, + "outdent": 0xf03b, + "page4": 0xf3d7, + "pagelines": 0xf18c, + "pager": 0xf815, + "paint-brush": 0xf1fc, + "paint-roller": 0xf5aa, + "palette": 0xf53f, + "palfed": 0xf3d8, + "pallet": 0xf482, + "paper-plane": 0xf1d8, + "paperclip": 0xf0c6, + "parachute-box": 0xf4cd, + "paragraph": 0xf1dd, + "parking": 0xf540, + "passport": 0xf5ab, + "pastafarianism": 0xf67b, + "paste": 0xf0ea, + "patreon": 0xf3d9, + "pause": 0xf04c, + "pause-circle": 0xf28b, + "paw": 0xf1b0, + "paypal": 0xf1ed, + "peace": 0xf67c, + "pen": 0xf304, + "pen-alt": 0xf305, + "pen-fancy": 0xf5ac, + "pen-nib": 0xf5ad, + "pen-square": 0xf14b, + "pencil-alt": 0xf303, + "pencil-ruler": 0xf5ae, + "penny-arcade": 0xf704, + "people-arrows": 0xe068, + "people-carry": 0xf4ce, + "pepper-hot": 0xf816, + "perbyte": 0xe083, + "percent": 0xf295, + "percentage": 0xf541, + "periscope": 0xf3da, + "person-booth": 0xf756, + "phabricator": 0xf3db, + "phoenix-framework": 0xf3dc, + "phoenix-squadron": 0xf511, + "phone": 0xf095, + "phone-alt": 0xf879, + "phone-slash": 0xf3dd, + "phone-square": 0xf098, + "phone-square-alt": 0xf87b, + "phone-volume": 0xf2a0, + "photo-video": 0xf87c, + "php": 0xf457, + "pied-piper": 0xf2ae, + "pied-piper-alt": 0xf1a8, + "pied-piper-hat": 0xf4e5, + "pied-piper-pp": 0xf1a7, + "pied-piper-square": 0xe01e, + "piggy-bank": 0xf4d3, + "pills": 0xf484, + "pinterest": 0xf0d2, + "pinterest-p": 0xf231, + "pinterest-square": 0xf0d3, + "pizza-slice": 0xf818, + "place-of-worship": 0xf67f, + "plane": 0xf072, + "plane-arrival": 0xf5af, + "plane-departure": 0xf5b0, + "plane-slash": 0xe069, + "play": 0xf04b, + "play-circle": 0xf144, + "playstation": 0xf3df, + "plug": 0xf1e6, + "plus": 0xf067, + "plus-circle": 0xf055, + "plus-square": 0xf0fe, + "podcast": 0xf2ce, + "poll": 0xf681, + "poll-h": 0xf682, + "poo": 0xf2fe, + "poo-storm": 0xf75a, + "poop": 0xf619, + "portrait": 0xf3e0, + "pound-sign": 0xf154, + "power-off": 0xf011, + "pray": 0xf683, + "praying-hands": 0xf684, + "prescription": 0xf5b1, + "prescription-bottle": 0xf485, + "prescription-bottle-alt": 0xf486, + "print": 0xf02f, + "procedures": 0xf487, + "product-hunt": 0xf288, + "project-diagram": 0xf542, + "pump-medical": 0xe06a, + "pump-soap": 0xe06b, + "pushed": 0xf3e1, + "puzzle-piece": 0xf12e, + "python": 0xf3e2, + "qq": 0xf1d6, + "qrcode": 0xf029, + "question": 0xf128, + "question-circle": 0xf059, + "quidditch": 0xf458, + "quinscape": 0xf459, + "quora": 0xf2c4, + "quote-left": 0xf10d, + "quote-right": 0xf10e, + "quran": 0xf687, + "r-project": 0xf4f7, + "radiation": 0xf7b9, + "radiation-alt": 0xf7ba, + "rainbow": 0xf75b, + "random": 0xf074, + "raspberry-pi": 0xf7bb, + "ravelry": 0xf2d9, + "react": 0xf41b, + "reacteurope": 0xf75d, + "readme": 0xf4d5, + "rebel": 0xf1d0, + "receipt": 0xf543, + "record-vinyl": 0xf8d9, + "recycle": 0xf1b8, + "red-river": 0xf3e3, + "reddit": 0xf1a1, + "reddit-alien": 0xf281, + "reddit-square": 0xf1a2, + "redhat": 0xf7bc, + "redo": 0xf01e, + "redo-alt": 0xf2f9, + "registered": 0xf25d, + "remove-format": 0xf87d, + "renren": 0xf18b, + "reply": 0xf3e5, + "reply-all": 0xf122, + "replyd": 0xf3e6, + "republican": 0xf75e, + "researchgate": 0xf4f8, + "resolving": 0xf3e7, + "restroom": 0xf7bd, + "retweet": 0xf079, + "rev": 0xf5b2, + "ribbon": 0xf4d6, + "ring": 0xf70b, + "road": 0xf018, + "robot": 0xf544, + "rocket": 0xf135, + "rocketchat": 0xf3e8, + "rockrms": 0xf3e9, + "route": 0xf4d7, + "rss": 0xf09e, + "rss-square": 0xf143, + "ruble-sign": 0xf158, + "ruler": 0xf545, + "ruler-combined": 0xf546, + "ruler-horizontal": 0xf547, + "ruler-vertical": 0xf548, + "running": 0xf70c, + "rupee-sign": 0xf156, + "rust": 0xe07a, + "sad-cry": 0xf5b3, + "sad-tear": 0xf5b4, + "safari": 0xf267, + "salesforce": 0xf83b, + "sass": 0xf41e, + "satellite": 0xf7bf, + "satellite-dish": 0xf7c0, + "save": 0xf0c7, + "schlix": 0xf3ea, + "school": 0xf549, + "screwdriver": 0xf54a, + "scribd": 0xf28a, + "scroll": 0xf70e, + "sd-card": 0xf7c2, + "search": 0xf002, + "search-dollar": 0xf688, + "search-location": 0xf689, + "search-minus": 0xf010, + "search-plus": 0xf00e, + "searchengin": 0xf3eb, + "seedling": 0xf4d8, + "sellcast": 0xf2da, + "sellsy": 0xf213, + "server": 0xf233, + "servicestack": 0xf3ec, + "shapes": 0xf61f, + "share": 0xf064, + "share-alt": 0xf1e0, + "share-alt-square": 0xf1e1, + "share-square": 0xf14d, + "shekel-sign": 0xf20b, + "shield-alt": 0xf3ed, + "shield-virus": 0xe06c, + "ship": 0xf21a, + "shipping-fast": 0xf48b, + "shirtsinbulk": 0xf214, + "shoe-prints": 0xf54b, + "shopify": 0xe057, + "shopping-bag": 0xf290, + "shopping-basket": 0xf291, + "shopping-cart": 0xf07a, + "shopware": 0xf5b5, + "shower": 0xf2cc, + "shuttle-van": 0xf5b6, + "sign": 0xf4d9, + "sign-in-alt": 0xf2f6, + "sign-language": 0xf2a7, + "sign-out-alt": 0xf2f5, + "signal": 0xf012, + "signature": 0xf5b7, + "sim-card": 0xf7c4, + "simplybuilt": 0xf215, + "sink": 0xe06d, + "sistrix": 0xf3ee, + "sitemap": 0xf0e8, + "sith": 0xf512, + "skating": 0xf7c5, + "sketch": 0xf7c6, + "skiing": 0xf7c9, + "skiing-nordic": 0xf7ca, + "skull": 0xf54c, + "skull-crossbones": 0xf714, + "skyatlas": 0xf216, + "skype": 0xf17e, + "slack": 0xf198, + "slack-hash": 0xf3ef, + "slash": 0xf715, + "sleigh": 0xf7cc, + "sliders-h": 0xf1de, + "slideshare": 0xf1e7, + "smile": 0xf118, + "smile-beam": 0xf5b8, + "smile-wink": 0xf4da, + "smog": 0xf75f, + "smoking": 0xf48d, + "smoking-ban": 0xf54d, + "sms": 0xf7cd, + "snapchat": 0xf2ab, + "snapchat-ghost": 0xf2ac, + "snapchat-square": 0xf2ad, + "snowboarding": 0xf7ce, + "snowflake": 0xf2dc, + "snowman": 0xf7d0, + "snowplow": 0xf7d2, + "soap": 0xe06e, + "socks": 0xf696, + "solar-panel": 0xf5ba, + "sort": 0xf0dc, + "sort-alpha-down": 0xf15d, + "sort-alpha-down-alt": 0xf881, + "sort-alpha-up": 0xf15e, + "sort-alpha-up-alt": 0xf882, + "sort-amount-down": 0xf160, + "sort-amount-down-alt": 0xf884, + "sort-amount-up": 0xf161, + "sort-amount-up-alt": 0xf885, + "sort-down": 0xf0dd, + "sort-numeric-down": 0xf162, + "sort-numeric-down-alt": 0xf886, + "sort-numeric-up": 0xf163, + "sort-numeric-up-alt": 0xf887, + "sort-up": 0xf0de, + "soundcloud": 0xf1be, + "sourcetree": 0xf7d3, + "spa": 0xf5bb, + "space-shuttle": 0xf197, + "speakap": 0xf3f3, + "speaker-deck": 0xf83c, + "spell-check": 0xf891, + "spider": 0xf717, + "spinner": 0xf110, + "splotch": 0xf5bc, + "spotify": 0xf1bc, + "spray-can": 0xf5bd, + "square": 0xf0c8, + "square-full": 0xf45c, + "square-root-alt": 0xf698, + "squarespace": 0xf5be, + "stack-exchange": 0xf18d, + "stack-overflow": 0xf16c, + "stackpath": 0xf842, + "stamp": 0xf5bf, + "star": 0xf005, + "star-and-crescent": 0xf699, + "star-half": 0xf089, + "star-half-alt": 0xf5c0, + "star-of-david": 0xf69a, + "star-of-life": 0xf621, + "staylinked": 0xf3f5, + "steam": 0xf1b6, + "steam-square": 0xf1b7, + "steam-symbol": 0xf3f6, + "step-backward": 0xf048, + "step-forward": 0xf051, + "stethoscope": 0xf0f1, + "sticker-mule": 0xf3f7, + "sticky-note": 0xf249, + "stop": 0xf04d, + "stop-circle": 0xf28d, + "stopwatch": 0xf2f2, + "stopwatch-20": 0xe06f, + "store": 0xf54e, + "store-alt": 0xf54f, + "store-alt-slash": 0xe070, + "store-slash": 0xe071, + "strava": 0xf428, + "stream": 0xf550, + "street-view": 0xf21d, + "strikethrough": 0xf0cc, + "stripe": 0xf429, + "stripe-s": 0xf42a, + "stroopwafel": 0xf551, + "studiovinari": 0xf3f8, + "stumbleupon": 0xf1a4, + "stumbleupon-circle": 0xf1a3, + "subscript": 0xf12c, + "subway": 0xf239, + "suitcase": 0xf0f2, + "suitcase-rolling": 0xf5c1, + "sun": 0xf185, + "superpowers": 0xf2dd, + "superscript": 0xf12b, + "supple": 0xf3f9, + "surprise": 0xf5c2, + "suse": 0xf7d6, + "swatchbook": 0xf5c3, + "swift": 0xf8e1, + "swimmer": 0xf5c4, + "swimming-pool": 0xf5c5, + "symfony": 0xf83d, + "synagogue": 0xf69b, + "sync": 0xf021, + "sync-alt": 0xf2f1, + "syringe": 0xf48e, + "table": 0xf0ce, + "table-tennis": 0xf45d, + "tablet": 0xf10a, + "tablet-alt": 0xf3fa, + "tablets": 0xf490, + "tachometer-alt": 0xf3fd, + "tag": 0xf02b, + "tags": 0xf02c, + "tape": 0xf4db, + "tasks": 0xf0ae, + "taxi": 0xf1ba, + "teamspeak": 0xf4f9, + "teeth": 0xf62e, + "teeth-open": 0xf62f, + "telegram": 0xf2c6, + "telegram-plane": 0xf3fe, + "temperature-high": 0xf769, + "temperature-low": 0xf76b, + "tencent-weibo": 0xf1d5, + "tenge": 0xf7d7, + "terminal": 0xf120, + "text-height": 0xf034, + "text-width": 0xf035, + "th": 0xf00a, + "th-large": 0xf009, + "th-list": 0xf00b, + "the-red-yeti": 0xf69d, + "theater-masks": 0xf630, + "themeco": 0xf5c6, + "themeisle": 0xf2b2, + "thermometer": 0xf491, + "thermometer-empty": 0xf2cb, + "thermometer-full": 0xf2c7, + "thermometer-half": 0xf2c9, + "thermometer-quarter": 0xf2ca, + "thermometer-three-quarters": 0xf2c8, + "think-peaks": 0xf731, + "thumbs-down": 0xf165, + "thumbs-up": 0xf164, + "thumbtack": 0xf08d, + "ticket-alt": 0xf3ff, + "tiktok": 0xe07b, + "times": 0xf00d, + "times-circle": 0xf057, + "tint": 0xf043, + "tint-slash": 0xf5c7, + "tired": 0xf5c8, + "toggle-off": 0xf204, + "toggle-on": 0xf205, + "toilet": 0xf7d8, + "toilet-paper": 0xf71e, + "toilet-paper-slash": 0xe072, + "toolbox": 0xf552, + "tools": 0xf7d9, + "tooth": 0xf5c9, + "torah": 0xf6a0, + "torii-gate": 0xf6a1, + "tractor": 0xf722, + "trade-federation": 0xf513, + "trademark": 0xf25c, + "traffic-light": 0xf637, + "trailer": 0xe041, + "train": 0xf238, + "tram": 0xf7da, + "transgender": 0xf224, + "transgender-alt": 0xf225, + "trash": 0xf1f8, + "trash-alt": 0xf2ed, + "trash-restore": 0xf829, + "trash-restore-alt": 0xf82a, + "tree": 0xf1bb, + "trello": 0xf181, + "trophy": 0xf091, + "truck": 0xf0d1, + "truck-loading": 0xf4de, + "truck-monster": 0xf63b, + "truck-moving": 0xf4df, + "truck-pickup": 0xf63c, + "tshirt": 0xf553, + "tty": 0xf1e4, + "tumblr": 0xf173, + "tumblr-square": 0xf174, + "tv": 0xf26c, + "twitch": 0xf1e8, + "twitter": 0xf099, + "twitter-square": 0xf081, + "typo3": 0xf42b, + "uber": 0xf402, + "ubuntu": 0xf7df, + "uikit": 0xf403, + "umbraco": 0xf8e8, + "umbrella": 0xf0e9, + "umbrella-beach": 0xf5ca, + "uncharted": 0xe084, + "underline": 0xf0cd, + "undo": 0xf0e2, + "undo-alt": 0xf2ea, + "uniregistry": 0xf404, + "unity": 0xe049, + "universal-access": 0xf29a, + "university": 0xf19c, + "unlink": 0xf127, + "unlock": 0xf09c, + "unlock-alt": 0xf13e, + "unsplash": 0xe07c, + "untappd": 0xf405, + "upload": 0xf093, + "ups": 0xf7e0, + "usb": 0xf287, + "user": 0xf007, + "user-alt": 0xf406, + "user-alt-slash": 0xf4fa, + "user-astronaut": 0xf4fb, + "user-check": 0xf4fc, + "user-circle": 0xf2bd, + "user-clock": 0xf4fd, + "user-cog": 0xf4fe, + "user-edit": 0xf4ff, + "user-friends": 0xf500, + "user-graduate": 0xf501, + "user-injured": 0xf728, + "user-lock": 0xf502, + "user-md": 0xf0f0, + "user-minus": 0xf503, + "user-ninja": 0xf504, + "user-nurse": 0xf82f, + "user-plus": 0xf234, + "user-secret": 0xf21b, + "user-shield": 0xf505, + "user-slash": 0xf506, + "user-tag": 0xf507, + "user-tie": 0xf508, + "user-times": 0xf235, + "users": 0xf0c0, + "users-cog": 0xf509, + "users-slash": 0xe073, + "usps": 0xf7e1, + "ussunnah": 0xf407, + "utensil-spoon": 0xf2e5, + "utensils": 0xf2e7, + "vaadin": 0xf408, + "vector-square": 0xf5cb, + "venus": 0xf221, + "venus-double": 0xf226, + "venus-mars": 0xf228, + "vest": 0xe085, + "vest-patches": 0xe086, + "viacoin": 0xf237, + "viadeo": 0xf2a9, + "viadeo-square": 0xf2aa, + "vial": 0xf492, + "vials": 0xf493, + "viber": 0xf409, + "video": 0xf03d, + "video-slash": 0xf4e2, + "vihara": 0xf6a7, + "vimeo": 0xf40a, + "vimeo-square": 0xf194, + "vimeo-v": 0xf27d, + "vine": 0xf1ca, + "virus": 0xe074, + "virus-slash": 0xe075, + "viruses": 0xe076, + "vk": 0xf189, + "vnv": 0xf40b, + "voicemail": 0xf897, + "volleyball-ball": 0xf45f, + "volume-down": 0xf027, + "volume-mute": 0xf6a9, + "volume-off": 0xf026, + "volume-up": 0xf028, + "vote-yea": 0xf772, + "vr-cardboard": 0xf729, + "vuejs": 0xf41f, + "walking": 0xf554, + "wallet": 0xf555, + "warehouse": 0xf494, + "watchman-monitoring": 0xe087, + "water": 0xf773, + "wave-square": 0xf83e, + "waze": 0xf83f, + "weebly": 0xf5cc, + "weibo": 0xf18a, + "weight": 0xf496, + "weight-hanging": 0xf5cd, + "weixin": 0xf1d7, + "whatsapp": 0xf232, + "whatsapp-square": 0xf40c, + "wheelchair": 0xf193, + "whmcs": 0xf40d, + "wifi": 0xf1eb, + "wikipedia-w": 0xf266, + "wind": 0xf72e, + "window-close": 0xf410, + "window-maximize": 0xf2d0, + "window-minimize": 0xf2d1, + "window-restore": 0xf2d2, + "windows": 0xf17a, + "wine-bottle": 0xf72f, + "wine-glass": 0xf4e3, + "wine-glass-alt": 0xf5ce, + "wix": 0xf5cf, + "wizards-of-the-coast": 0xf730, + "wodu": 0xe088, + "wolf-pack-battalion": 0xf514, + "won-sign": 0xf159, + "wordpress": 0xf19a, + "wordpress-simple": 0xf411, + "wpbeginner": 0xf297, + "wpexplorer": 0xf2de, + "wpforms": 0xf298, + "wpressr": 0xf3e4, + "wrench": 0xf0ad, + "x-ray": 0xf497, + "xbox": 0xf412, + "xing": 0xf168, + "xing-square": 0xf169, + "y-combinator": 0xf23b, + "yahoo": 0xf19e, + "yammer": 0xf840, + "yandex": 0xf413, + "yandex-international": 0xf414, + "yarn": 0xf7e3, + "yelp": 0xf1e9, + "yen-sign": 0xf157, + "yin-yang": 0xf6ad, + "yoast": 0xf2b1, + "youtube": 0xf167, + "youtube-square": 0xf431, + "zhihu": 0xf63f, +}; diff --git a/lib/inventree/model.dart b/lib/inventree/model.dart index d0984d69..d3b7ba41 100644 --- a/lib/inventree/model.dart +++ b/lib/inventree/model.dart @@ -10,8 +10,9 @@ import "package:url_launcher/url_launcher.dart"; import "package:path/path.dart" as path; -import "package:inventree/l10.dart"; import "package:inventree/api_form.dart"; +import "package:inventree/fa_icon_mapping.dart"; +import "package:inventree/l10.dart"; // Paginated response object @@ -148,6 +149,61 @@ class InvenTreeModel { // Legacy API provided external link as "URL", while newer API uses "link" String get link => (jsondata["link"] ?? jsondata["URL"] ?? "") as String; + /* + * Attempt to extract a custom icon for this model. + * If icon data is provided, attempt to convert to a FontAwesome icon + * + * Icon data *should* be presented something like "fas fa-boxes" / "fab fa-github" (etc): + * + * - First part specifies the *style* + * - Second part specifies the icon + * + */ + FaIcon? get customIcon { + String icon = (jsondata["icon"] ?? "").toString(); + + // Empty icon (default) + if (icon.isEmpty) { + return null; + } + + final split = icon.trim().split(" "); + + // Must have two distinct units + if (split.length != 2) { + return null; + } + + String style = split[0]; + String name = split[1]; + + // Remove "fa-" leading text (if provided) + if (name.startsWith("fa-")) { + name = name.substring(3); + } + + int? iconHex = fontAwesomeIconMap[name]; + + // No match for the icon name + if (iconHex == null) { + return null; + } + + switch (style) { + case "fas": + return FaIcon(IconDataSolid(iconHex)); + case "fab": + return FaIcon(IconDataBrands(iconHex)); + case "fa": + return FaIcon(IconDataRegular(iconHex)); + case "fal": + return FaIcon(IconDataLight(iconHex)); + default: + // No match + return null; + } + } + /* Extract any custom barcode data available for the model. * Note that old API used 'uid' (only for StockItem), * but this was updated to use 'barcode_hash' diff --git a/lib/widget/category_display.dart b/lib/widget/category_display.dart index f414203b..14516c63 100644 --- a/lib/widget/category_display.dart +++ b/lib/widget/category_display.dart @@ -114,6 +114,7 @@ class _CategoryDisplayState extends RefreshableState { style: TextStyle(fontWeight: FontWeight.bold) ), subtitle: Text("${category?.description}"), + leading: category!.customIcon ?? FaIcon(FontAwesomeIcons.sitemap), ), ]; diff --git a/lib/widget/category_list.dart b/lib/widget/category_list.dart index cf6836b6..37f4b4bb 100644 --- a/lib/widget/category_list.dart +++ b/lib/widget/category_list.dart @@ -112,6 +112,7 @@ class _PaginatedPartCategoryListState extends PaginatedSearchState { ListTile( title: Text("${location!.name}"), subtitle: Text("${location!.description}"), - leading: FaIcon(FontAwesomeIcons.boxes), + leading: location!.customIcon ?? FaIcon(FontAwesomeIcons.boxes), ), ]; diff --git a/lib/widget/location_list.dart b/lib/widget/location_list.dart index f80d7f46..d2762fb8 100644 --- a/lib/widget/location_list.dart +++ b/lib/widget/location_list.dart @@ -97,6 +97,7 @@ class _PaginatedStockLocationListState extends PaginatedSearchState