/** * MprIcons - Semantic Icon Helper for PrestaShop (JavaScript) * * Simple API: MprIcons.get('account') - that's it. * * Set window.mprIconSet from PHP to configure (defaults to 'fontawesome'). * * @package myprestarocks/prestashop-icons */ var MprIcons = (function() { 'use strict'; var FA = 'fontawesome'; var MATERIAL = 'material'; var map = { // User 'account': ['fa fa-user', 'person'], 'user': ['fa fa-user', 'person'], 'logout': ['fa fa-sign-out', 'logout'], 'login': ['fa fa-sign-in', 'login'], // E-commerce 'cart': ['fa fa-shopping-cart', 'shopping_cart'], 'orders': ['fa fa-list', 'receipt_long'], 'truck': ['fa fa-truck', 'local_shipping'], 'credit-card': ['fa fa-credit-card', 'credit_card'], 'gift': ['fa fa-gift', 'card_giftcard'], 'tag': ['fa fa-tag', 'local_offer'], 'percent': ['fa fa-percent', 'percent'], // Status 'success': ['fa fa-check', 'check'], 'error': ['fa fa-times', 'close'], 'warning': ['fa fa-exclamation-triangle', 'warning'], 'info': ['fa fa-info-circle', 'info'], // Actions 'edit': ['fa fa-pencil', 'edit'], 'delete': ['fa fa-trash', 'delete'], 'search': ['fa fa-search', 'search'], 'settings': ['fa fa-cog', 'settings'], 'download': ['fa fa-download', 'download'], 'upload': ['fa fa-upload', 'upload'], 'refresh': ['fa fa-refresh', 'refresh'], 'save': ['fa fa-save', 'save'], 'print': ['fa fa-print', 'print'], 'copy': ['fa fa-copy', 'content_copy'], // UI 'close': ['fa fa-times', 'close'], 'check': ['fa fa-check', 'check'], 'plus': ['fa fa-plus', 'add'], 'minus': ['fa fa-minus', 'remove'], 'menu': ['fa fa-bars', 'menu'], 'more': ['fa fa-ellipsis-v', 'more_vert'], // Arrows 'arrow-left': ['fa fa-arrow-left', 'arrow_back'], 'arrow-right': ['fa fa-arrow-right', 'arrow_forward'], 'arrow-up': ['fa fa-arrow-up', 'arrow_upward'], 'arrow-down': ['fa fa-arrow-down', 'arrow_downward'], 'chevron-left': ['fa fa-chevron-left', 'chevron_left'], 'chevron-right': ['fa fa-chevron-right', 'chevron_right'], 'chevron-up': ['fa fa-chevron-up', 'expand_less'], 'chevron-down': ['fa fa-chevron-down', 'expand_more'], // Communication 'email': ['fa fa-envelope', 'email'], 'phone': ['fa fa-phone', 'phone'], 'comment': ['fa fa-comment', 'comment'], 'chat': ['fa fa-comments', 'chat'], // Security 'lock': ['fa fa-lock', 'lock'], 'unlock': ['fa fa-unlock', 'lock_open'], 'shield': ['fa fa-shield', 'shield'], 'key': ['fa fa-key', 'vpn_key'], // Misc 'home': ['fa fa-home', 'home'], 'address': ['fa fa-map-marker', 'location_on'], 'calendar': ['fa fa-calendar', 'calendar_today'], 'clock': ['fa fa-clock-o', 'schedule'], 'heart': ['fa fa-heart', 'favorite'], 'star': ['fa fa-star', 'star'], 'eye': ['fa fa-eye', 'visibility'], 'eye-off': ['fa fa-eye-slash', 'visibility_off'], 'file': ['fa fa-file', 'description'], 'folder': ['fa fa-folder', 'folder'], 'image': ['fa fa-image', 'image'], 'link': ['fa fa-link', 'link'], 'external': ['fa fa-external-link', 'open_in_new'], 'help': ['fa fa-question-circle', 'help'], // Loading 'spinner': ['fa fa-spinner fa-spin', 'hourglass_empty'], 'loading': ['fa fa-circle-o-notch fa-spin', 'autorenew'] }; function getIconSet() { return window.mprIconSet || FA; } function get(name, extraClass) { if (!map[name]) return ''; var set = getIconSet(); var extra = extraClass ? ' ' + extraClass : ''; if (set === MATERIAL) { return '' + map[name][1] + ''; } return ''; } function raw(name) { if (!map[name]) return ''; var set = getIconSet(); return set === MATERIAL ? map[name][1] : map[name][0]; } function create(name, extraClass) { var html = get(name, extraClass); if (!html) return null; var temp = document.createElement('div'); temp.innerHTML = html; return temp.firstChild; } function exists(name) { return !!map[name]; } function list() { return Object.keys(map); } return { get: get, raw: raw, create: create, exists: exists, list: list, FA: FA, MATERIAL: MATERIAL }; })(); if (typeof module !== 'undefined' && module.exports) { module.exports = MprIcons; }