diff --git a/better-font-awesome-library.php b/better-font-awesome-library.php index 9fdd1b4..9499cfd 100755 --- a/better-font-awesome-library.php +++ b/better-font-awesome-library.php @@ -45,7 +45,29 @@ class Better_Font_Awesome_Library { * * @var string */ - const JSDELIVR_API_URL = 'http://api.jsdelivr.com/v1/jsdelivr/libraries/fontawesome/?fields=versions,lastversion'; + const JSDELIVR_API_URL = 'https://data.jsdelivr.com/v1/package/gh/FortAwesome/Font-Awesome'; + + /** + * jsDelivr API URL for Font Awesome icon metadata. + * + * Version 5+ only, + * + * @since 2.0.0 + * + * @var string + */ + const JSDELIVR_ICON_METADATA_BASE_URL = 'https://cdn.jsdelivr.net/gh/FortAwesome/Font-Awesome@'; + + /** + * jsDelivr API file path for Font Awesome icon metadata. + * + * Version 5+ only, + * + * @since 2.0.0 + * + * @var string + */ + const JSDELIVR_ICON_METADATA_FILE_PATH = '/advanced-options/metadata/icons.yml'; /** * Initialization args. @@ -121,15 +143,6 @@ class Better_Font_Awesome_Library { */ private $stylesheet_url; - /** - * Font Awesome CSS. - * - * @since 1.0.0 - * - * @var string - */ - private $css; - /** * Data associated with the local fallback version of Font Awesome. * @@ -231,6 +244,9 @@ private function __construct( $args = array() ) { */ public function load() { + // Load dependencies. + $this->load_depenencies(); + // Initialize library properties and actions as needed. $this->initialize( $this->args ); @@ -307,6 +323,10 @@ public function load() { } + private function load_depenencies() { + require __DIR__ . '/vendor/autoload.php'; + } + /** * Do necessary initialization actions. * @@ -438,7 +458,7 @@ private function setup_fallback_data() { * @since 1.0.0 */ private function setup_api_data() { - $this->api_data = $this->fetch_api_data( self::JSDELIVR_API_URL ); + $this->api_data = $this->get_version_data(); } /** @@ -452,9 +472,11 @@ private function setup_api_data() { * @return array|WP_ERROR Available CDN Font Awesome versions, or a * WP_ERROR if the fetch fails. */ - private function fetch_api_data( $url ) { + private function get_version_data() { + $transient_suffix = '-version-data'; + $url = self::JSDELIVR_API_URL; - if ( false === ( $response = get_transient( self::SLUG . '-api-versions' ) ) ) { + if ( false === ( $response = get_transient( self::SLUG . $transient_suffix ) ) ) { $response = wp_remote_get( $url, $this->wp_remote_get_args ); @@ -462,10 +484,12 @@ private function fetch_api_data( $url ) { // Decode the API data and grab the versions info. $json_data = json_decode( wp_remote_retrieve_body( $response ) ); - $response = $json_data[0]; + $response = $json_data; /** - * Filter the API transient expiration. + * Deprecated. + * + * Preserved for legacy support. * * @since 1.0.0 * @@ -473,8 +497,83 @@ private function fetch_api_data( $url ) { */ $transient_expiration = apply_filters( 'bfa_api_transient_expiration', 12 * HOUR_IN_SECONDS ); + /** + * Filter API version data transient expiration. + * + * @since 2.0.0 + * + * @param int Expiration for API version data. + */ + $transient_expiration = apply_filters( 'bfa_api_version_data', $transient_expiration ); + + // Set the API transient. + set_transient( self::SLUG . $transient_suffix, $response, $transient_expiration ); + + } elseif ( is_wp_error( $response ) ) { // Check for faulty wp_remote_get() + + $this->set_error( 'api', $response->get_error_code(), $response->get_error_message() . " (URL: $url)" ); + $response = ''; + + } elseif ( isset( $response['response'] ) ) { // Check for 404 and other non-WP_ERROR codes + + $this->set_error( 'api', $response['response']['code'], $response['response']['message'] . " (URL: $url)" ); + $response = ''; + + } else { // Total failsafe + + $this->set_error( 'api', 'Unknown', __( 'The jsDelivr API servers appear to be temporarily unavailable.', 'better-font-awesome' ) . " (URL: $url)" ); + $response = ''; + + } + + } + + return $response; + + } + + /** + * Fetch the jsDelivr API data. + * + * First check to see if the transient is set for this version's metadata, + * and if not use the jsDelivr API to retrieve all available versions of + * Font Awesome. + * + * @since 2.0.0 + * + * @return array Icon metadata, keyed by icon slug. + */ + private function get_icons_metadata() { + $transient_suffix = '-icons-metadata'; + $version = $this->get_version(); + $transient_slug = self::SLUG . "${transient_suffix}_version-${version}"; + + $url = self::JSDELIVR_ICON_METADATA_BASE_URL . $version . self::JSDELIVR_ICON_METADATA_FILE_PATH; + + if ( false === ( $response = get_transient( $transient_slug ) ) ) { + + $response = wp_remote_get( $url, $this->wp_remote_get_args ); + + if ( 200 == wp_remote_retrieve_response_code( $response ) ) { + + // Decode the API data and grab the versions info. + $yaml_data = wp_remote_retrieve_body( $response ); + + $parsed_yaml = spyc_load( $yaml_data ); + + /** + * Filter icon metadata transient expiration. + * + * This can be very long since versioned icon data should never change. + * + * @since 2.0.0 + * + * @param int Expiration for icon metadata. + */ + $transient_expiration = apply_filters( 'bfa_icons_metadata', YEAR_IN_SECONDS ); + // Set the API transient. - set_transient( self::SLUG . '-api-versions', $response, $transient_expiration ); + set_transient( $transient_slug, $parsed_yaml, $transient_expiration ); } elseif ( is_wp_error( $response ) ) { // Check for faulty wp_remote_get() @@ -526,7 +625,8 @@ private function set_active_version() { private function get_latest_version() { if ( $this->api_data_exists() ) { - return $this->get_api_value( 'lastversion' ); + $versions = $this->get_api_value( 'versions' ); + return $versions[0]; } else { return $this->guess_latest_version(); } @@ -584,7 +684,11 @@ private function get_css_transient_latest_version() { * @param string $version Version of Font Awesome to use. */ private function set_stylesheet_url( $version ) { - $this->stylesheet_url = '//cdn.jsdelivr.net/fontawesome/' . $version . '/css/font-awesome' . $this->get_min_suffix() . '.css'; + if ( version_compare( $version, '5.0.0', '>=' ) ) { + $this->stylesheet_url = '//cdn.jsdelivr.net/gh/FortAwesome/Font-Awesome@' . $version . '/web-fonts-with-css/css/fontawesome-all' . $this->get_min_suffix() . '.css'; + } else { + $this->stylesheet_url = '//cdn.jsdelivr.net/fontawesome/' . $version . '/css/font-awesome' . $this->get_min_suffix() . '.css'; + } } /** @@ -594,15 +698,11 @@ private function set_stylesheet_url( $version ) { */ private function setup_stylesheet_data() { - // Get the Font Awesome CSS. - $this->css = $this->get_css( $this->stylesheet_url, $this->font_awesome_version ); - - // Get the list of available icons from the Font Awesome CSS. - $this->icons = $this->setup_icon_array( $this->css ); - // Set up prefix based on version ('fa' or 'icon'). - $this->prefix = $this->setup_prefix( $this->font_awesome_version ); + $this->prefix = $this->derive_prefix( $this->font_awesome_version ); + // Get the list of available icons. + $this->icons = $this->get_icon_array(); } /** @@ -761,36 +861,87 @@ private function get_fallback_css() { return $this->get_local_file_contents( $this->fallback_data['path'] ); } - /** - * Get array of icons from the Font Awesome CSS. - * - * @since 1.0.0 - * - * @param string $css The Font Awesome CSS. - * - * @return array All available icon names (e.g. adjust, car, pencil). - */ - private function setup_icon_array( $css ) { + private function get_icon_array_version_5() { + + $icons_metadata = $this->get_icons_metadata(); + $icons = []; + + // Add style prefixes. + foreach ( $icons_metadata as $slug => $metadata ) { + + $search_terms = array_map( function( $term ) { + return $term; + }, $metadata['search']['terms'] ); + + foreach ( $metadata['styles'] as $style ) { + $icons[] = array( + 'title' => "{$metadata['label']} ({$style})", + 'slug' => $slug, + 'style' => $style, + 'base_class' => $this->get_icon_base_class( $slug, $style ), + 'searchTerms' => $search_terms, + ); + } + } + + return $icons; + } + + private function get_icon_array_version_pre_5() { $icons = array(); $hex_codes = array(); + $css = $this->get_css( $this->stylesheet_url, $this->font_awesome_version ); + /** * Get all CSS selectors that have a "content:" pseudo-element rule, * as well as all associated hex codes. */ preg_match_all( '/\.(icon-|fa-)([^,}]*)\s*:before\s*{\s*(content:)\s*"(\\\\[^"]+)"/s', $css, $matches ); - $icons = $matches[2]; + + $icon_slugs = $matches[2]; $hex_codes = $matches[4]; - // Add hex codes as icon array index. - $icons = array_combine( $hex_codes, $icons ); + foreach ( $icon_slugs as $index => $slug ) { + $icons[] = array( + 'title' => $slug, + 'slug' => $slug, + 'base_class' => $this->get_icon_base_class( $slug ), + 'searchTerms' => $slug, + ); + + } + + // Alphabetize the icons array by icon slug. + uasort( $icons, function( $icon1, $icon2 ) { + return strcmp( $icon1['slug'], $icon2['slug'] ); + }); + + return array_values( $icons ); + } + + /** + * Get array of icons for the current version. + * + * @since 1.0.0 + * + * @param string CSS for the current version of FA (only used pre-v5) + * + * @return array All available icon names (e.g. adjust, car, pencil). + */ + private function get_icon_array() { + + $icons = array(); - // Alphabetize the icons array by icon name. - asort( $icons ); + if ( version_compare( $this->get_version(), '5.0.0', '>=' ) ) { + $icons = $this->get_icon_array_version_5(); + } else { + $icons = $this->get_icon_array_version_pre_5(); + } /** - * Filter the array of available icons. + * [DEPRECATED] Filter the array of available icons. * * @since 1.0.0 * @@ -798,8 +949,16 @@ private function setup_icon_array( $css ) { */ $icons = apply_filters( 'bfa_icon_list', $icons ); - return $icons; + /** + * Filter the array of available icons. + * + * @since 2.0.0 + * + * @param array $icons Array of all available icons. + */ + $icons = apply_filters( 'bfa_icon_array', $icons ); + return $icons; } /** @@ -811,9 +970,9 @@ private function setup_icon_array( $css ) { * * @return string $prefix 'fa' or 'icon', depending on the version. */ - private function setup_prefix( $version ) { + private function derive_prefix( $version ) { - if ( 0 <= version_compare( $version, '4' ) ) { + if ( version_compare( $this->get_version(), 4, '>=' ) ) { $prefix = 'fa'; } else { $prefix = 'icon'; @@ -873,41 +1032,7 @@ public function add_icon_shortcode() { add_shortcode( 'icon', array( $this, 'render_shortcode' ) ); } - /** - * Render [icon] shortcode. - * - * Usage: - * [icon name="flag" class="fw 2x spin" unprefixed_class="custom_class"] - * - * @param array $atts Shortcode attributes. - * @return string $output Icon HTML (e.g. ). - */ - public function render_shortcode( $atts ) { - - extract( shortcode_atts( array( - 'name' => '', - 'class' => '', - 'unprefixed_class' => '', - 'title' => '', /* For compatibility with other plugins */ - 'size' => '', /* For compatibility with other plugins */ - 'space' => '', - ), $atts ) - ); - - /** - * Include for backwards compatibility with Font Awesome More Icons plugin. - * - * @see https://wordpress.org/plugins/font-awesome-more-icons/ - */ - $title = $title ? 'title="' . $title . '" ' : ''; - $space = 'true' == $space ? ' ' : ''; - $size = $size ? ' '. $this->prefix . '-' . $size : ''; - - // Remove "icon-" and "fa-" from name - // This helps both: - // 1. Incorrect shortcodes (when user includes full class name including prefix) - // 2. Old shortcodes from other plugins that required prefixes - + public function sanitize_shortcode_name_att( $name ) { /** * Strip 'icon-' and 'fa-' from the BEGINNING of $name. * @@ -924,10 +1049,11 @@ public function render_shortcode( $atts ) { } - $name = str_replace( 'fa-', '', $name ); + return $name; + } - // Add the version-specific prefix back on to $name, if it exists. - $icon_name = $this->prefix ? $this->prefix . '-' . $name : $name; + public function sanitize_shortcode_class_att( $class ) { + $prefix = $this->get_prefix(); // Remove "icon-" and "fa-" from the icon class. $class = str_replace( 'icon-', '', $class ); @@ -938,23 +1064,78 @@ public function render_shortcode( $atts ) { $class = preg_replace( '/\s{3,}/', ' ', $class ); // Add the version-specific prefix back on to each class. - $class_array = explode( ' ', $class ); + $class_array = array_filter( explode( ' ', $class ) ); + foreach ( $class_array as $index => $class ) { - $class_array[ $index ] = $this->prefix ? $this->prefix . '-' . $class : $class; + $class_array[ $index ] = $prefix ? $prefix . '-' . $class : $class; + } + + return implode( ' ', $class_array ); + } + + /** + * Render [icon] shortcode. + * + * Usage: + * [icon name="flag" class="fw 2x spin" unprefixed_class="custom_class"] + * + * @param array $atts Shortcode attributes. + * @return string $output Icon HTML (e.g. ). + */ + public function render_shortcode( $atts ) { + + extract( shortcode_atts( array( + 'name' => '', + 'class' => '', + 'unprefixed_class' => '', + 'title' => '', /* For compatibility with other plugins */ + 'size' => '', /* For compatibility with other plugins */ + 'space' => '', + 'style' => '', /* Style category */ + ), $atts )); + + $icon = $this->get_icon_by_slug( $name ); + + // Maybe this is an old icon that needs an updated alias. + if ( ! $icon ) { + require __DIR__ . '/inc/icon-updater.php'; + $name = bfa_get_updated_icon_slug( $name ); + + if ( ! $name ) { + return ''; + } } - $class = implode( ' ', $class_array ); - // Add unprefixed classes. - $class .= $unprefixed_class ? ' ' . $unprefixed_class : ''; + $prefix = $this->get_prefix(); + $classes = []; + + /** + * Include for backwards compatibility with Font Awesome More Icons plugin. + * + * @see https://wordpress.org/plugins/font-awesome-more-icons/ + */ + $title = $title ? 'title="' . $title . '" ' : ''; + $space = 'true' == $space ? ' ' : ''; + $size = $size ? ' '. $prefix . '-' . $size : ''; + + // Santize name. + $name = $this->sanitize_shortcode_name_att( $name ); + + // Generate classes array. + $classes[] = $this->get_icon_by_slug( $name )['base_class']; + $classes[] = $this->sanitize_shortcode_class_att( $class ); + $classes[] = $unprefixed_class; + + $class_string = implode( ' ', array_filter( $classes ) ); /** * Filter the icon class. * * @since 1.0.0 * - * @param string $class Classes attached to the icon. + * @param string $class_string Classes attached to the icon. */ - $class = apply_filters( 'bfa_icon_class', $class, $name ); + $class_string = apply_filters( 'bfa_icon_class', $class_string, $name ); /** * Filter the default icon tag. @@ -966,11 +1147,9 @@ public function render_shortcode( $atts ) { $tag = apply_filters( 'bfa_icon_tag', 'i' ); // Generate the HTML icon element output. - $output = sprintf( '<%s class="%s %s %s %s" %s>%s', + $output = sprintf( '<%s class="%s %s" %s>%s', $tag, - $this->prefix, - $icon_name, - $class, + $class_string, $size, $title, $space, @@ -988,6 +1167,32 @@ public function render_shortcode( $atts ) { } + public function get_icon_base_class( $slug, $style = '' ) { + return "{$this->get_icon_style_class( $style )} {$this->get_prefix()}-{$slug}"; + } + + private function get_icon_style_class( $style = '' ) { + + if ( version_compare( $this->get_version(), 5, '>=' ) ) { + switch ( $style ) { + case 'brands': + return 'fab'; + + case 'solid': + return 'fas'; + + case 'light': + return 'fal'; + + case 'regular': + default: + return 'far'; + } + } else { + return $this->get_prefix(); + } + } + /** * Register and enqueue Font Awesome CSS. */ @@ -1295,5 +1500,15 @@ public function get_errors() { return $this->errors; } + public function get_icon_by_slug( $slug ) { + $time_pre = microtime(true); + // Code to time + foreach ( $this->get_icons() as $icon ) { + if ( $slug === $icon['slug'] ) { + return $icon; + } + } + } + } endif; diff --git a/composer.json b/composer.json index 542e9f9..5de5838 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,8 @@ { "name": "mickey-kay/better-font-awesome-library", "description": "Better Font Awesome Library for PHP", - "license": "GPL-2.0" -} \ No newline at end of file + "license": "GPL-2.0", + "require": { + "mustangostang/spyc": "^0.6.2" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..65fc80e --- /dev/null +++ b/composer.lock @@ -0,0 +1,68 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "content-hash": "2af966f91fba481aec1dcf6e1531d0f0", + "packages": [ + { + "name": "mustangostang/spyc", + "version": "0.6.2", + "source": { + "type": "git", + "url": "https://github.com/mustangostang/spyc.git", + "reference": "23c35ae854d835f2d7bcc3e3ad743d7e57a8c14d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mustangostang/spyc/zipball/23c35ae854d835f2d7bcc3e3ad743d7e57a8c14d", + "reference": "23c35ae854d835f2d7bcc3e3ad743d7e57a8c14d", + "shasum": "" + }, + "require": { + "php": ">=5.3.1" + }, + "require-dev": { + "phpunit/phpunit": "4.3.*@dev" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.5.x-dev" + } + }, + "autoload": { + "files": [ + "Spyc.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "mustangostang", + "email": "vlad.andersen@gmail.com" + } + ], + "description": "A simple YAML loader/dumper class for PHP", + "homepage": "https://github.com/mustangostang/spyc/", + "keywords": [ + "spyc", + "yaml", + "yml" + ], + "time": "2017-02-24T16:06:33+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [] +} diff --git a/inc/icon-updater.php b/inc/icon-updater.php new file mode 100644 index 0000000..a73549e --- /dev/null +++ b/inc/icon-updater.php @@ -0,0 +1,1136 @@ + array( + 'old_slug' => 'address-book-o', + 'new_slug' => 'address-book', + ), + 'address-card-o' => array( + 'old_slug' => 'address-card-o', + 'new_slug' => 'address-card', + ), + 'area-chart' => array( + 'old_slug' => 'area-chart', + 'new_slug' => 'chart-area', + ), + 'arrow-circle-o-down' => array( + 'old_slug' => 'arrow-circle-o-down', + 'new_slug' => 'arrow-alt-circle-down', + ), + 'arrow-circle-o-left' => array( + 'old_slug' => 'arrow-circle-o-left', + 'new_slug' => 'arrow-alt-circle-left', + ), + 'arrow-circle-o-right' => array( + 'old_slug' => 'arrow-circle-o-right', + 'new_slug' => 'arrow-alt-circle-right', + ), + 'arrow-circle-o-up' => array( + 'old_slug' => 'arrow-circle-o-up', + 'new_slug' => 'arrow-alt-circle-up', + ), + 'arrows-alt' => array( + 'old_slug' => 'arrows-alt', + 'new_slug' => 'expand-arrows-alt', + ), + 'arrows-h' => array( + 'old_slug' => 'arrows-h', + 'new_slug' => 'arrows-alt-h', + ), + 'arrows-v' => array( + 'old_slug' => 'arrows-v', + 'new_slug' => 'arrows-alt-v', + ), + 'arrows' => array( + 'old_slug' => 'arrows', + 'new_slug' => 'arrows-alt', + ), + 'asl-interpreting' => array( + 'old_slug' => 'asl-interpreting', + 'new_slug' => 'american-sign-language-interpreting', + ), + 'automobile' => array( + 'old_slug' => 'automobile', + 'new_slug' => 'car', + ), + 'bank' => array( + 'old_slug' => 'bank', + 'new_slug' => 'university', + ), + 'bar-chart-o' => array( + 'old_slug' => 'bar-chart-o', + 'new_slug' => 'chart-bar', + ), + 'bar-chart' => array( + 'old_slug' => 'bar-chart', + 'new_slug' => 'chart-bar', + ), + 'bathtub' => array( + 'old_slug' => 'bathtub', + 'new_slug' => 'bath', + ), + 'battery-0' => array( + 'old_slug' => 'battery-0', + 'new_slug' => 'battery-empty', + ), + 'battery-1' => array( + 'old_slug' => 'battery-1', + 'new_slug' => 'battery-quarter', + ), + 'battery-2' => array( + 'old_slug' => 'battery-2', + 'new_slug' => 'battery-half', + ), + 'battery-3' => array( + 'old_slug' => 'battery-3', + 'new_slug' => 'battery-three-quarters', + ), + 'battery-4' => array( + 'old_slug' => 'battery-4', + 'new_slug' => 'battery-full', + ), + 'battery' => array( + 'old_slug' => 'battery', + 'new_slug' => 'battery-full', + ), + 'bell-o' => array( + 'old_slug' => 'bell-o', + 'new_slug' => 'bell', + ), + 'bell-slash-o' => array( + 'old_slug' => 'bell-slash-o', + 'new_slug' => 'bell-slash', + ), + 'bitbucket-square' => array( + 'old_slug' => 'bitbucket-square', + 'new_slug' => 'bitbucket', + ), + 'bitcoin' => array( + 'old_slug' => 'bitcoin', + 'new_slug' => 'btc', + ), + 'bookmark-o' => array( + 'old_slug' => 'bookmark-o', + 'new_slug' => 'bookmark', + ), + 'building-o' => array( + 'old_slug' => 'building-o', + 'new_slug' => 'building', + ), + 'cab' => array( + 'old_slug' => 'cab', + 'new_slug' => 'taxi', + ), + 'calendar-check-o' => array( + 'old_slug' => 'calendar-check-o', + 'new_slug' => 'calendar-check', + ), + 'calendar-minus-o' => array( + 'old_slug' => 'calendar-minus-o', + 'new_slug' => 'calendar-minus', + ), + 'calendar-o' => array( + 'old_slug' => 'calendar-o', + 'new_slug' => 'calendar', + ), + 'calendar-plus-o' => array( + 'old_slug' => 'calendar-plus-o', + 'new_slug' => 'calendar-plus', + ), + 'calendar-times-o' => array( + 'old_slug' => 'calendar-times-o', + 'new_slug' => 'calendar-times', + ), + 'calendar' => array( + 'old_slug' => 'calendar', + 'new_slug' => 'calendar-alt', + ), + 'caret-square-o-down' => array( + 'old_slug' => 'caret-square-o-down', + 'new_slug' => 'caret-square-down', + ), + 'caret-square-o-left' => array( + 'old_slug' => 'caret-square-o-left', + 'new_slug' => 'caret-square-left', + ), + 'caret-square-o-right' => array( + 'old_slug' => 'caret-square-o-right', + 'new_slug' => 'caret-square-right', + ), + 'caret-square-o-up' => array( + 'old_slug' => 'caret-square-o-up', + 'new_slug' => 'caret-square-up', + ), + 'cc' => array( + 'old_slug' => 'cc', + 'new_slug' => 'closed-captioning', + ), + 'chain-broken' => array( + 'old_slug' => 'chain-broken', + 'new_slug' => 'unlink', + ), + 'chain' => array( + 'old_slug' => 'chain', + 'new_slug' => 'link', + ), + 'check-circle-o' => array( + 'old_slug' => 'check-circle-o', + 'new_slug' => 'check-circle', + ), + 'check-square-o' => array( + 'old_slug' => 'check-square-o', + 'new_slug' => 'check-square', + ), + 'circle-o-notch' => array( + 'old_slug' => 'circle-o-notch', + 'new_slug' => 'circle-notch', + ), + 'circle-o' => array( + 'old_slug' => 'circle-o', + 'new_slug' => 'circle', + ), + 'circle-thin' => array( + 'old_slug' => 'circle-thin', + 'new_slug' => 'circle', + ), + 'clock-o' => array( + 'old_slug' => 'clock-o', + 'new_slug' => 'clock', + ), + 'close' => array( + 'old_slug' => 'close', + 'new_slug' => 'times', + ), + 'cloud-download' => array( + 'old_slug' => 'cloud-download', + 'new_slug' => 'cloud-download-alt', + ), + 'cloud-upload' => array( + 'old_slug' => 'cloud-upload', + 'new_slug' => 'cloud-upload-alt', + ), + 'cny' => array( + 'old_slug' => 'cny', + 'new_slug' => 'yen-sign', + ), + 'code-fork' => array( + 'old_slug' => 'code-fork', + 'new_slug' => 'code-branch', + ), + 'comment-o' => array( + 'old_slug' => 'comment-o', + 'new_slug' => 'comment', + ), + 'commenting-o' => array( + 'old_slug' => 'commenting-o', + 'new_slug' => 'comment-alt', + ), + 'commenting' => array( + 'old_slug' => 'commenting', + 'new_slug' => 'comment-alt', + ), + 'comments-o' => array( + 'old_slug' => 'comments-o', + 'new_slug' => 'comments', + ), + 'credit-card-alt' => array( + 'old_slug' => 'credit-card-alt', + 'new_slug' => 'credit-card', + ), + 'cutlery' => array( + 'old_slug' => 'cutlery', + 'new_slug' => 'utensils', + ), + 'dashboard' => array( + 'old_slug' => 'dashboard', + 'new_slug' => 'tachometer-alt', + ), + 'deafness' => array( + 'old_slug' => 'deafness', + 'new_slug' => 'deaf', + ), + 'dedent' => array( + 'old_slug' => 'dedent', + 'new_slug' => 'outdent', + ), + 'diamond' => array( + 'old_slug' => 'diamond', + 'new_slug' => 'gem', + ), + 'dollar' => array( + 'old_slug' => 'dollar', + 'new_slug' => 'dollar-sign', + ), + 'dot-circle-o' => array( + 'old_slug' => 'dot-circle-o', + 'new_slug' => 'dot-circle', + ), + 'drivers-license-o' => array( + 'old_slug' => 'drivers-license-o', + 'new_slug' => 'id-card', + ), + 'drivers-license' => array( + 'old_slug' => 'drivers-license', + 'new_slug' => 'id-card', + ), + 'eercast' => array( + 'old_slug' => 'eercast', + 'new_slug' => 'sellcast', + ), + 'envelope-o' => array( + 'old_slug' => 'envelope-o', + 'new_slug' => 'envelope', + ), + 'envelope-open-o' => array( + 'old_slug' => 'envelope-open-o', + 'new_slug' => 'envelope-open', + ), + 'eur' => array( + 'old_slug' => 'eur', + 'new_slug' => 'euro-sign', + ), + 'euro' => array( + 'old_slug' => 'euro', + 'new_slug' => 'euro-sign', + ), + 'exchange' => array( + 'old_slug' => 'exchange', + 'new_slug' => 'exchange-alt', + ), + 'external-link-square' => array( + 'old_slug' => 'external-link-square', + 'new_slug' => 'external-link-square-alt', + ), + 'external-link' => array( + 'old_slug' => 'external-link', + 'new_slug' => 'external-link-alt', + ), + 'eyedropper' => array( + 'old_slug' => 'eyedropper', + 'new_slug' => 'eye-dropper', + ), + 'fa' => array( + 'old_slug' => 'fa', + 'new_slug' => 'font-awesome', + ), + 'facebook-f' => array( + 'old_slug' => 'facebook-f', + 'new_slug' => 'facebook-f', + ), + 'facebook-official' => array( + 'old_slug' => 'facebook-official', + 'new_slug' => 'facebook', + ), + 'facebook' => array( + 'old_slug' => 'facebook', + 'new_slug' => 'facebook-f', + ), + 'feed' => array( + 'old_slug' => 'feed', + 'new_slug' => 'rss', + ), + 'file-archive-o' => array( + 'old_slug' => 'file-archive-o', + 'new_slug' => 'file-archive', + ), + 'file-audio-o' => array( + 'old_slug' => 'file-audio-o', + 'new_slug' => 'file-audio', + ), + 'file-code-o' => array( + 'old_slug' => 'file-code-o', + 'new_slug' => 'file-code', + ), + 'file-excel-o' => array( + 'old_slug' => 'file-excel-o', + 'new_slug' => 'file-excel', + ), + 'file-image-o' => array( + 'old_slug' => 'file-image-o', + 'new_slug' => 'file-image', + ), + 'file-movie-o' => array( + 'old_slug' => 'file-movie-o', + 'new_slug' => 'file-video', + ), + 'file-o' => array( + 'old_slug' => 'file-o', + 'new_slug' => 'file', + ), + 'file-pdf-o' => array( + 'old_slug' => 'file-pdf-o', + 'new_slug' => 'file-pdf', + ), + 'file-photo-o' => array( + 'old_slug' => 'file-photo-o', + 'new_slug' => 'file-image', + ), + 'file-picture-o' => array( + 'old_slug' => 'file-picture-o', + 'new_slug' => 'file-image', + ), + 'file-powerpoint-o' => array( + 'old_slug' => 'file-powerpoint-o', + 'new_slug' => 'file-powerpoint', + ), + 'file-sound-o' => array( + 'old_slug' => 'file-sound-o', + 'new_slug' => 'file-audio', + ), + 'file-text-o' => array( + 'old_slug' => 'file-text-o', + 'new_slug' => 'file-alt', + ), + 'file-text' => array( + 'old_slug' => 'file-text', + 'new_slug' => 'file-alt', + ), + 'file-video-o' => array( + 'old_slug' => 'file-video-o', + 'new_slug' => 'file-video', + ), + 'file-word-o' => array( + 'old_slug' => 'file-word-o', + 'new_slug' => 'file-word', + ), + 'file-zip-o' => array( + 'old_slug' => 'file-zip-o', + 'new_slug' => 'file-archive', + ), + 'files-o' => array( + 'old_slug' => 'files-o', + 'new_slug' => 'copy', + ), + 'flag-o' => array( + 'old_slug' => 'flag-o', + 'new_slug' => 'flag', + ), + 'flash' => array( + 'old_slug' => 'flash', + 'new_slug' => 'bolt', + ), + 'floppy-o' => array( + 'old_slug' => 'floppy-o', + 'new_slug' => 'save', + ), + 'folder-o' => array( + 'old_slug' => 'folder-o', + 'new_slug' => 'folder', + ), + 'folder-open-o' => array( + 'old_slug' => 'folder-open-o', + 'new_slug' => 'folder-open', + ), + 'frown-o' => array( + 'old_slug' => 'frown-o', + 'new_slug' => 'frown', + ), + 'futbol-o' => array( + 'old_slug' => 'futbol-o', + 'new_slug' => 'futbol', + ), + 'gbp' => array( + 'old_slug' => 'gbp', + 'new_slug' => 'pound-sign', + ), + 'ge' => array( + 'old_slug' => 'ge', + 'new_slug' => 'empire', + ), + 'gear' => array( + 'old_slug' => 'gear', + 'new_slug' => 'cog', + ), + 'gears' => array( + 'old_slug' => 'gears', + 'new_slug' => 'cogs', + ), + 'gittip' => array( + 'old_slug' => 'gittip', + 'new_slug' => 'gratipay', + ), + 'glass' => array( + 'old_slug' => 'glass', + 'new_slug' => 'glass-martini', + ), + 'google-plus-circle' => array( + 'old_slug' => 'google-plus-circle', + 'new_slug' => 'google-plus', + ), + 'google-plus-official' => array( + 'old_slug' => 'google-plus-official', + 'new_slug' => 'google-plus', + ), + 'google-plus' => array( + 'old_slug' => 'google-plus', + 'new_slug' => 'google-plus-g', + ), + 'group' => array( + 'old_slug' => 'group', + 'new_slug' => 'users', + ), + 'hand-grab-o' => array( + 'old_slug' => 'hand-grab-o', + 'new_slug' => 'hand-rock', + ), + 'hand-lizard-o' => array( + 'old_slug' => 'hand-lizard-o', + 'new_slug' => 'hand-lizard', + ), + 'hand-o-down' => array( + 'old_slug' => 'hand-o-down', + 'new_slug' => 'hand-point-down', + ), + 'hand-o-left' => array( + 'old_slug' => 'hand-o-left', + 'new_slug' => 'hand-point-left', + ), + 'hand-o-right' => array( + 'old_slug' => 'hand-o-right', + 'new_slug' => 'hand-point-right', + ), + 'hand-o-up' => array( + 'old_slug' => 'hand-o-up', + 'new_slug' => 'hand-point-up', + ), + 'hand-paper-o' => array( + 'old_slug' => 'hand-paper-o', + 'new_slug' => 'hand-paper', + ), + 'hand-peace-o' => array( + 'old_slug' => 'hand-peace-o', + 'new_slug' => 'hand-peace', + ), + 'hand-pointer-o' => array( + 'old_slug' => 'hand-pointer-o', + 'new_slug' => 'hand-pointer', + ), + 'hand-rock-o' => array( + 'old_slug' => 'hand-rock-o', + 'new_slug' => 'hand-rock', + ), + 'hand-scissors-o' => array( + 'old_slug' => 'hand-scissors-o', + 'new_slug' => 'hand-scissors', + ), + 'hand-spock-o' => array( + 'old_slug' => 'hand-spock-o', + 'new_slug' => 'hand-spock', + ), + 'hand-stop-o' => array( + 'old_slug' => 'hand-stop-o', + 'new_slug' => 'hand-paper', + ), + 'handshake-o' => array( + 'old_slug' => 'handshake-o', + 'new_slug' => 'handshake', + ), + 'hard-of-hearing' => array( + 'old_slug' => 'hard-of-hearing', + 'new_slug' => 'deaf', + ), + 'hdd-o' => array( + 'old_slug' => 'hdd-o', + 'new_slug' => 'hdd', + ), + 'header' => array( + 'old_slug' => 'header', + 'new_slug' => 'heading', + ), + 'heart-o' => array( + 'old_slug' => 'heart-o', + 'new_slug' => 'heart', + ), + 'hospital-o' => array( + 'old_slug' => 'hospital-o', + 'new_slug' => 'hospital', + ), + 'hotel' => array( + 'old_slug' => 'hotel', + 'new_slug' => 'bed', + ), + 'hourglass-1' => array( + 'old_slug' => 'hourglass-1', + 'new_slug' => 'hourglass-start', + ), + 'hourglass-2' => array( + 'old_slug' => 'hourglass-2', + 'new_slug' => 'hourglass-half', + ), + 'hourglass-3' => array( + 'old_slug' => 'hourglass-3', + 'new_slug' => 'hourglass-end', + ), + 'hourglass-o' => array( + 'old_slug' => 'hourglass-o', + 'new_slug' => 'hourglass', + ), + 'id-card-o' => array( + 'old_slug' => 'id-card-o', + 'new_slug' => 'id-card', + ), + 'ils' => array( + 'old_slug' => 'ils', + 'new_slug' => 'shekel-sign', + ), + 'image' => array( + 'old_slug' => 'image', + 'new_slug' => 'image', + ), + 'inr' => array( + 'old_slug' => 'inr', + 'new_slug' => 'rupee-sign', + ), + 'institution' => array( + 'old_slug' => 'institution', + 'new_slug' => 'university', + ), + 'intersex' => array( + 'old_slug' => 'intersex', + 'new_slug' => 'transgender', + ), + 'jpy' => array( + 'old_slug' => 'jpy', + 'new_slug' => 'yen-sign', + ), + 'keyboard-o' => array( + 'old_slug' => 'keyboard-o', + 'new_slug' => 'keyboard', + ), + 'krw' => array( + 'old_slug' => 'krw', + 'new_slug' => 'won-sign', + ), + 'legal' => array( + 'old_slug' => 'legal', + 'new_slug' => 'gavel', + ), + 'lemon-o' => array( + 'old_slug' => 'lemon-o', + 'new_slug' => 'lemon', + ), + 'level-down' => array( + 'old_slug' => 'level-down', + 'new_slug' => 'level-down-alt', + ), + 'level-up' => array( + 'old_slug' => 'level-up', + 'new_slug' => 'level-up-alt', + ), + 'life-bouy' => array( + 'old_slug' => 'life-bouy', + 'new_slug' => 'life-ring', + ), + 'life-buoy' => array( + 'old_slug' => 'life-buoy', + 'new_slug' => 'life-ring', + ), + 'life-saver' => array( + 'old_slug' => 'life-saver', + 'new_slug' => 'life-ring', + ), + 'lightbulb-o' => array( + 'old_slug' => 'lightbulb-o', + 'new_slug' => 'lightbulb', + ), + 'line-chart' => array( + 'old_slug' => 'line-chart', + 'new_slug' => 'chart-line', + ), + 'linkedin-square' => array( + 'old_slug' => 'linkedin-square', + 'new_slug' => 'linkedin', + ), + 'linkedin' => array( + 'old_slug' => 'linkedin', + 'new_slug' => 'linkedin-in', + ), + 'long-arrow-down' => array( + 'old_slug' => 'long-arrow-down', + 'new_slug' => 'long-arrow-alt-down', + ), + 'long-arrow-left' => array( + 'old_slug' => 'long-arrow-left', + 'new_slug' => 'long-arrow-alt-left', + ), + 'long-arrow-right' => array( + 'old_slug' => 'long-arrow-right', + 'new_slug' => 'long-arrow-alt-right', + ), + 'long-arrow-up' => array( + 'old_slug' => 'long-arrow-up', + 'new_slug' => 'long-arrow-alt-up', + ), + 'mail-forward' => array( + 'old_slug' => 'mail-forward', + 'new_slug' => 'share', + ), + 'mail-reply-all' => array( + 'old_slug' => 'mail-reply-all', + 'new_slug' => 'reply-all', + ), + 'mail-reply' => array( + 'old_slug' => 'mail-reply', + 'new_slug' => 'reply', + ), + 'map-marker' => array( + 'old_slug' => 'map-marker', + 'new_slug' => 'map-marker-alt', + ), + 'map-o' => array( + 'old_slug' => 'map-o', + 'new_slug' => 'map', + ), + 'meanpath' => array( + 'old_slug' => 'meanpath', + 'new_slug' => 'font-awesome', + ), + 'meh-o' => array( + 'old_slug' => 'meh-o', + 'new_slug' => 'meh', + ), + 'minus-square-o' => array( + 'old_slug' => 'minus-square-o', + 'new_slug' => 'minus-square', + ), + 'mobile-phone' => array( + 'old_slug' => 'mobile-phone', + 'new_slug' => 'mobile-alt', + ), + 'mobile' => array( + 'old_slug' => 'mobile', + 'new_slug' => 'mobile-alt', + ), + 'money' => array( + 'old_slug' => 'money', + 'new_slug' => 'money-bill-alt', + ), + 'moon-o' => array( + 'old_slug' => 'moon-o', + 'new_slug' => 'moon', + ), + 'mortar-board' => array( + 'old_slug' => 'mortar-board', + 'new_slug' => 'graduation-cap', + ), + 'navicon' => array( + 'old_slug' => 'navicon', + 'new_slug' => 'bars', + ), + 'newspaper-o' => array( + 'old_slug' => 'newspaper-o', + 'new_slug' => 'newspaper', + ), + 'paper-plane-o' => array( + 'old_slug' => 'paper-plane-o', + 'new_slug' => 'paper-plane', + ), + 'paste' => array( + 'old_slug' => 'paste', + 'new_slug' => 'clipboard', + ), + 'pause-circle-o' => array( + 'old_slug' => 'pause-circle-o', + 'new_slug' => 'pause-circle', + ), + 'pencil-square-o' => array( + 'old_slug' => 'pencil-square-o', + 'new_slug' => 'edit', + ), + 'pencil-square' => array( + 'old_slug' => 'pencil-square', + 'new_slug' => 'pen-square', + ), + 'pencil' => array( + 'old_slug' => 'pencil', + 'new_slug' => 'pencil-alt', + ), + 'photo' => array( + 'old_slug' => 'photo', + 'new_slug' => 'image', + ), + 'picture-o' => array( + 'old_slug' => 'picture-o', + 'new_slug' => 'image', + ), + 'pie-chart' => array( + 'old_slug' => 'pie-chart', + 'new_slug' => 'chart-pie', + ), + 'play-circle-o' => array( + 'old_slug' => 'play-circle-o', + 'new_slug' => 'play-circle', + ), + 'plus-square-o' => array( + 'old_slug' => 'plus-square-o', + 'new_slug' => 'plus-square', + ), + 'question-circle-o' => array( + 'old_slug' => 'question-circle-o', + 'new_slug' => 'question-circle', + ), + 'ra' => array( + 'old_slug' => 'ra', + 'new_slug' => 'rebel', + ), + 'refresh' => array( + 'old_slug' => 'refresh', + 'new_slug' => 'sync', + ), + 'remove' => array( + 'old_slug' => 'remove', + 'new_slug' => 'times', + ), + 'reorder' => array( + 'old_slug' => 'reorder', + 'new_slug' => 'bars', + ), + 'repeat' => array( + 'old_slug' => 'repeat', + 'new_slug' => 'redo', + ), + 'resistance' => array( + 'old_slug' => 'resistance', + 'new_slug' => 'rebel', + ), + 'rmb' => array( + 'old_slug' => 'rmb', + 'new_slug' => 'yen-sign', + ), + 'rotate-left' => array( + 'old_slug' => 'rotate-left', + 'new_slug' => 'undo', + ), + 'rotate-right' => array( + 'old_slug' => 'rotate-right', + 'new_slug' => 'redo', + ), + 'rouble' => array( + 'old_slug' => 'rouble', + 'new_slug' => 'ruble-sign', + ), + 'rub' => array( + 'old_slug' => 'rub', + 'new_slug' => 'ruble-sign', + ), + 'ruble' => array( + 'old_slug' => 'ruble', + 'new_slug' => 'ruble-sign', + ), + 'rupee' => array( + 'old_slug' => 'rupee', + 'new_slug' => 'rupee-sign', + ), + 's15' => array( + 'old_slug' => 's15', + 'new_slug' => 'bath', + ), + 'scissors' => array( + 'old_slug' => 'scissors', + 'new_slug' => 'cut', + ), + 'send-o' => array( + 'old_slug' => 'send-o', + 'new_slug' => 'paper-plane', + ), + 'send' => array( + 'old_slug' => 'send', + 'new_slug' => 'paper-plane', + ), + 'share-square-o' => array( + 'old_slug' => 'share-square-o', + 'new_slug' => 'share-square', + ), + 'shekel' => array( + 'old_slug' => 'shekel', + 'new_slug' => 'shekel-sign', + ), + 'sheqel' => array( + 'old_slug' => 'sheqel', + 'new_slug' => 'shekel-sign', + ), + 'shield' => array( + 'old_slug' => 'shield', + 'new_slug' => 'shield-alt', + ), + 'sign-in' => array( + 'old_slug' => 'sign-in', + 'new_slug' => 'sign-in-alt', + ), + 'sign-out' => array( + 'old_slug' => 'sign-out', + 'new_slug' => 'sign-out-alt', + ), + 'signing' => array( + 'old_slug' => 'signing', + 'new_slug' => 'sign-language', + ), + 'sliders' => array( + 'old_slug' => 'sliders', + 'new_slug' => 'sliders-h', + ), + 'smile-o' => array( + 'old_slug' => 'smile-o', + 'new_slug' => 'smile', + ), + 'snowflake-o' => array( + 'old_slug' => 'snowflake-o', + 'new_slug' => 'snowflake', + ), + 'soccer-ball-o' => array( + 'old_slug' => 'soccer-ball-o', + 'new_slug' => 'futbol', + ), + 'sort-alpha-asc' => array( + 'old_slug' => 'sort-alpha-asc', + 'new_slug' => 'sort-alpha-down', + ), + 'sort-alpha-desc' => array( + 'old_slug' => 'sort-alpha-desc', + 'new_slug' => 'sort-alpha-up', + ), + 'sort-amount-asc' => array( + 'old_slug' => 'sort-amount-asc', + 'new_slug' => 'sort-amount-down', + ), + 'sort-amount-desc' => array( + 'old_slug' => 'sort-amount-desc', + 'new_slug' => 'sort-amount-up', + ), + 'sort-asc' => array( + 'old_slug' => 'sort-asc', + 'new_slug' => 'sort-up', + ), + 'sort-desc' => array( + 'old_slug' => 'sort-desc', + 'new_slug' => 'sort-down', + ), + 'sort-numeric-asc' => array( + 'old_slug' => 'sort-numeric-asc', + 'new_slug' => 'sort-numeric-down', + ), + 'sort-numeric-desc' => array( + 'old_slug' => 'sort-numeric-desc', + 'new_slug' => 'sort-numeric-up', + ), + 'spoon' => array( + 'old_slug' => 'spoon', + 'new_slug' => 'utensil-spoon', + ), + 'square-o' => array( + 'old_slug' => 'square-o', + 'new_slug' => 'square', + ), + 'star-half-empty' => array( + 'old_slug' => 'star-half-empty', + 'new_slug' => 'star-half', + ), + 'star-half-full' => array( + 'old_slug' => 'star-half-full', + 'new_slug' => 'star-half', + ), + 'star-half-o' => array( + 'old_slug' => 'star-half-o', + 'new_slug' => 'star-half', + ), + 'star-o' => array( + 'old_slug' => 'star-o', + 'new_slug' => 'star', + ), + 'sticky-note-o' => array( + 'old_slug' => 'sticky-note-o', + 'new_slug' => 'sticky-note', + ), + 'stop-circle-o' => array( + 'old_slug' => 'stop-circle-o', + 'new_slug' => 'stop-circle', + ), + 'sun-o' => array( + 'old_slug' => 'sun-o', + 'new_slug' => 'sun', + ), + 'support' => array( + 'old_slug' => 'support', + 'new_slug' => 'life-ring', + ), + 'tablet' => array( + 'old_slug' => 'tablet', + 'new_slug' => 'tablet-alt', + ), + 'tachometer' => array( + 'old_slug' => 'tachometer', + 'new_slug' => 'tachometer-alt', + ), + 'television' => array( + 'old_slug' => 'television', + 'new_slug' => 'tv', + ), + 'thermometer-0' => array( + 'old_slug' => 'thermometer-0', + 'new_slug' => 'thermometer-empty', + ), + 'thermometer-1' => array( + 'old_slug' => 'thermometer-1', + 'new_slug' => 'thermometer-quarter', + ), + 'thermometer-2' => array( + 'old_slug' => 'thermometer-2', + 'new_slug' => 'thermometer-half', + ), + 'thermometer-3' => array( + 'old_slug' => 'thermometer-3', + 'new_slug' => 'thermometer-three-quarters', + ), + 'thermometer-4' => array( + 'old_slug' => 'thermometer-4', + 'new_slug' => 'thermometer-full', + ), + 'thermometer' => array( + 'old_slug' => 'thermometer', + 'new_slug' => 'thermometer-full', + ), + 'thumb-tack' => array( + 'old_slug' => 'thumb-tack', + 'new_slug' => 'thumbtack', + ), + 'thumbs-o-down' => array( + 'old_slug' => 'thumbs-o-down', + 'new_slug' => 'thumbs-down', + ), + 'thumbs-o-up' => array( + 'old_slug' => 'thumbs-o-up', + 'new_slug' => 'thumbs-up', + ), + 'ticket' => array( + 'old_slug' => 'ticket', + 'new_slug' => 'ticket-alt', + ), + 'times-circle-o' => array( + 'old_slug' => 'times-circle-o', + 'new_slug' => 'times-circle', + ), + 'times-rectangle-o' => array( + 'old_slug' => 'times-rectangle-o', + 'new_slug' => 'window-close', + ), + 'times-rectangle' => array( + 'old_slug' => 'times-rectangle', + 'new_slug' => 'window-close', + ), + 'toggle-down' => array( + 'old_slug' => 'toggle-down', + 'new_slug' => 'caret-square-down', + ), + 'toggle-left' => array( + 'old_slug' => 'toggle-left', + 'new_slug' => 'caret-square-left', + ), + 'toggle-right' => array( + 'old_slug' => 'toggle-right', + 'new_slug' => 'caret-square-right', + ), + 'toggle-up' => array( + 'old_slug' => 'toggle-up', + 'new_slug' => 'caret-square-up', + ), + 'trash-o' => array( + 'old_slug' => 'trash-o', + 'new_slug' => 'trash-alt', + ), + 'trash' => array( + 'old_slug' => 'trash', + 'new_slug' => 'trash-alt', + ), + 'try' => array( + 'old_slug' => 'try', + 'new_slug' => 'lira-sign', + ), + 'turkish-lira' => array( + 'old_slug' => 'turkish-lira', + 'new_slug' => 'lira-sign', + ), + 'unsorted' => array( + 'old_slug' => 'unsorted', + 'new_slug' => 'sort', + ), + 'usd' => array( + 'old_slug' => 'usd', + 'new_slug' => 'dollar-sign', + ), + 'user-circle-o' => array( + 'old_slug' => 'user-circle-o', + 'new_slug' => 'user-circle', + ), + 'user-o' => array( + 'old_slug' => 'user-o', + 'new_slug' => 'user', + ), + 'vcard-o' => array( + 'old_slug' => 'vcard-o', + 'new_slug' => 'address-card', + ), + 'vcard' => array( + 'old_slug' => 'vcard', + 'new_slug' => 'address-card', + ), + 'video-camera' => array( + 'old_slug' => 'video-camera', + 'new_slug' => 'video', + ), + 'vimeo' => array( + 'old_slug' => 'vimeo', + 'new_slug' => 'vimeo-v', + ), + 'volume-control-phone' => array( + 'old_slug' => 'volume-control-phone', + 'new_slug' => 'phone-volume', + ), + 'warning' => array( + 'old_slug' => 'warning', + 'new_slug' => 'exclamation-triangle', + ), + 'wechat' => array( + 'old_slug' => 'wechat', + 'new_slug' => 'weixin', + ), + 'wheelchair-alt' => array( + 'old_slug' => 'wheelchair-alt', + 'new_slug' => 'accessible-icon', + ), + 'window-close-o' => array( + 'old_slug' => 'window-close-o', + 'new_slug' => 'window-close', + ), + 'won' => array( + 'old_slug' => 'won', + 'new_slug' => 'won-sign', + ), + 'y-combinator-square' => array( + 'old_slug' => 'y-combinator-square', + 'new_slug' => 'hacker-news', + ), + 'yc-square' => array( + 'old_slug' => 'yc-square', + 'new_slug' => 'hacker-news', + ), + 'yc' => array( + 'old_slug' => 'yc', + 'new_slug' => 'y-combinator', + ), + 'yen' => array( + 'old_slug' => 'yen', + 'new_slug' => 'yen-sign', + ), + 'youtube-play' => array( + 'old_slug' => 'youtube-play', + 'new_slug' => 'youtube', + ), + 'youtube-square' => array( + 'old_slug' => 'youtube-square', + 'new_slug' => 'youtube', + ), + ); + + return ! empty( $bfa_icon_name_change_list[ $slug ] ) ? $bfa_icon_name_change_list[ $slug ]['new_slug'] : null; +} \ No newline at end of file diff --git a/js/admin.js b/js/admin.js index 27e75a4..0751e81 100644 --- a/js/admin.js +++ b/js/admin.js @@ -8,45 +8,61 @@ ( function( $ ) { - $( document ).on( 'ready ', function() { + var icons = Object.values( bfa_vars.fa_icons ); + + function get_icon_by_title( title ) { + return icons.find( function( icon ) { + return icon.title == title; + }); + } + + function icon_shortcode( icon ) { + var icon_style_string = icon.style ? ' style="' + icon.style + '"' : ''; + return '[icon name="' + icon.slug + '"' + icon_style_string + ' class="" unprefixed_class=""]'; + } + + $( document ).on( 'ready ', function() { $( 'body' ).on( 'mousedown', '.bfa-iconpicker', function(e) { // Use mousedown even to allow for triggering click later without infinite looping. e.preventDefault(); - $( this ).not( ' .initialized' ) - .addClass( 'initialized' ) - .iconpicker({ - placement: 'bottomLeft', - hideOnSelect: true, - animation: false, - selectedCustomClass: 'selected', - icons: bfa_vars.fa_icons, - fullClassFormatter: function( val ) { - if ( bfa_vars.fa_prefix ) { - return bfa_vars.fa_prefix + ' ' + bfa_vars.fa_prefix + '-' + val; - } else { - return val; - } - }, - }); - - $( this ).trigger( 'click' ); + $( this ).not( ' .initialized' ) + .addClass( 'initialized' ) + .iconpicker({ + placement: 'bottomLeft', + hideOnSelect: true, + animation: false, + selectedCustomClass: 'selected', + icons: icons, + fullClassFormatter: function( icon_title ) { + var classes = []; + var icon = get_icon_by_title( icon_title ); + + return icon.base_class; + }, + }) + .find( '.iconpicker-item' ).each( function() { + var $item = $( this ); + var title = $item.attr( 'title' ).replace( '.', '' ); + + $item.attr( 'title', title ); + }); + + $( this ).trigger( 'click' ); }) .on( 'click', '.bfa-iconpicker', function(e) { + e.preventDefault(); // Prevent scrolling to top. $( this ).find( '.iconpicker-search' ).focus(); }); // Set up icon insertion functionality. $( document ).on( 'iconpickerSelect', function( e ) { - wp.media.editor.insert( icon_shortcode( e.iconpickerItem.context.title.replace( '.', '' ) ) ); - }); - - }); - - function icon_shortcode( icon ) { - return '[icon name="' + icon + '" class="" unprefixed_class=""]'; - } + var icon_title = e.iconpickerItem.context.title.replace( '.', '' ); + var icon = get_icon_by_title( icon_title ); + wp.media.editor.insert( icon_shortcode( icon ) ); + }); + }); } )( jQuery ); diff --git a/lib/fontawesome-iconpicker/CODE_OF_CONDUCT.md b/lib/fontawesome-iconpicker/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..854460d --- /dev/null +++ b/lib/fontawesome-iconpicker/CODE_OF_CONDUCT.md @@ -0,0 +1,47 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team members through their social media sites or at _git @ itsjavi.com_. +The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/lib/fontawesome-iconpicker/Gruntfile.js b/lib/fontawesome-iconpicker/Gruntfile.js index a880c5a..0475bb7 100644 --- a/lib/fontawesome-iconpicker/Gruntfile.js +++ b/lib/fontawesome-iconpicker/Gruntfile.js @@ -1,6 +1,75 @@ 'use strict'; module.exports = function(grunt) { + const parsedIconPicker = 'prod/src/js/iconpicker.js'; + const tempIconsFile = '.icons.temp'; grunt.initConfig({ + download: { + somefile: { + src: ['https://raw.githubusercontent.com/FortAwesome/Font-Awesome/5.0.8/advanced-options/metadata/icons.yml'], + dest: tempIconsFile + }, + }, + yaml: { + getIcons: { + options: { + space: 2, + disableDest: true, + middleware: function(response, sourceJSON, src, dest) { + let targetJSON = { + icons: [] + }; + sourceJSON = JSON.parse(sourceJSON); + Object.keys(sourceJSON).forEach(function(key) { + let ele = sourceJSON[key]; + let icon = 'fa-' + key; + ele.styles.forEach(function(style) { + style = style.toLowerCase(); + if (style.startsWith('brand')) { + targetJSON.icons.push({ + title: 'fab ' + icon, + searchTerms: ele.search.terms + }); + } else if (style.startsWith('solid')) { + targetJSON.icons.push({ + title: 'fas ' + icon, + searchTerms: ele.search.terms + }); + } else if (style.startsWith('regular')) { + targetJSON.icons.push({ + title: 'far ' + icon, + searchTerms: ele.search.terms + }); + } else if (style.startsWith('light')) { + targetJSON.icons.push({ + title: 'fal ' + icon, + searchTerms: ele.search.terms + }); + } + }); + }); + grunt.file.write(dest, JSON.stringify(targetJSON)); + } + }, + files: [{ + expand: false, + src: [tempIconsFile], + dest: tempIconsFile + }] + }, + }, + 'string-replace': { + dist: { + files: { + 'prod/': ['src/js/iconpicker.js'], + }, + options: { + replacements: [{ + pattern: '//###REPLACE-WITH-FONT-AWESOME-5-FONTS###', + replacement: "<%= grunt.file.read('" + tempIconsFile + "') %>" + }] + } + } + }, less: { dist: { options: { @@ -26,30 +95,34 @@ module.exports = function(grunt) { } }, jsbeautifier: { - files: ['Gruntfile.js', 'src/js/*.js'] + files: ['Gruntfile.js', 'src/js/*.js', parsedIconPicker] }, uglify: { distMin: { options: { compress: {}, - beautify: false + beautify: false, + preserveComments: 'some' }, files: { 'dist/js/fontawesome-iconpicker.min.js': [ + 'src/js/license.js', 'src/js/jquery.ui.pos.js', - 'src/js/iconpicker.js' + parsedIconPicker ] } }, dist: { options: { compress: false, - beautify: true + beautify: true, + preserveComments: 'some' }, files: { 'dist/js/fontawesome-iconpicker.js': [ + 'src/js/license.js', 'src/js/jquery.ui.pos.js', - 'src/js/iconpicker.js' + parsedIconPicker ] } } @@ -72,6 +145,10 @@ module.exports = function(grunt) { dist: [ 'dist/css', 'dist/js/*.js' + ], + temp: [ + tempIconsFile, + 'prod/' ] } }); @@ -82,13 +159,20 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-less'); grunt.loadNpmTasks('grunt-jsbeautifier'); + grunt.loadNpmTasks('grunt-yaml'); + grunt.loadNpmTasks('grunt-http-download'); + grunt.loadNpmTasks('grunt-string-replace'); // Register tasks grunt.registerTask('default', [ - 'clean', + 'download', + 'yaml', + 'string-replace', + 'clean:dist', 'less', 'jsbeautifier', - 'uglify' + 'uglify', + 'clean:temp' ]); grunt.registerTask('dev', [ 'watch' diff --git a/lib/fontawesome-iconpicker/README.md b/lib/fontawesome-iconpicker/README.md index c9a6f8b..d0ab9c8 100644 --- a/lib/fontawesome-iconpicker/README.md +++ b/lib/fontawesome-iconpicker/README.md @@ -2,11 +2,11 @@ fontawesome-iconpicker ======================== Font Awesome Icon Picker is a fully customizable plugin for Twitter Bootstrap, -with a powerful base API, based on [bootstrap-popover-picker](https://itsjavi.com/bootstrap-popover-picker/) +with a powerful base API, based on [bootstrap-popover-picker](https://farbelous.github.io/bootstrap-popover-picker/) -You can use Font Awesome or another font icon set of your choice (icon list is totally customizable). +You can use Font Awesome 5 or another font icon set of your choice (icon list is totally customizable). -[View demos](https://itsjavi.com/fontawesome-iconpicker/) +[View demos](https://farbelous.github.io/fontawesome-iconpicker/) ## Instantiation @@ -49,6 +49,13 @@ In order of call: * iconpickerDestroy * iconpickerDestroyed +```javascript +// Bind iconpicker events to the element +$('.my').on('iconpickerSelected', function(event){ + /* event.iconpickerValue */ +}); +``` + ## Popover placement extensions This plugin comes with more placement options than the original Bootstrap Popover. @@ -59,7 +66,7 @@ Here are all the possibilities in detail: F 7 E 8 D C B A 9 - + 0. inline (no placement, display as inline-block) 1. topLeftCorner 2. topLeft @@ -82,7 +89,7 @@ Here are all the possibilities in detail: ## Available options ```javascript -var defaults = { +var options = { title: false, // Popover title (optional) only if specified in the template selected: false, // use this value as the current item and ignore the original defaultValue: false, // use this value as the current item if input or element value is empty @@ -95,7 +102,7 @@ var defaults = { searchInFooter: false, // If true, the search will be added to the footer instead of the title mustAccept: false, // only applicable when there's an iconpicker-btn-accept button in the popover footer selectedCustomClass: 'bg-primary', // Appends this class when to the selected item - icons: [], // list of icon classes (declared at the bottom of this script for maintainability) + icons: [], // list of icon objects [{title:String, searchTerms:String}]. By default, all Font Awesome icons are included. fullClassFormatter: function(val) { return 'fa ' + val; }, @@ -116,13 +123,3 @@ var defaults = { } }; ``` - -## TO-DO -- [x] Support other icon fonts -- [x] Fix: input marked as error when it is empty -- [x] Add role=button to each item, for making them tabbable -- [x] Ability to use the user input as the filter instead of the popover input -- [x] Fix bottomRight position when using component mode -- [x] Better dropdown compatibility -- [x] Ability to mix various class prefixes and use a customizable class formatter function -- [ ] ~~Ability to select and copy the icon character (the would need to be hardcoded in js)~~ (Use the chrome extension) \ No newline at end of file diff --git a/lib/fontawesome-iconpicker/dist/css/fontawesome-iconpicker.css b/lib/fontawesome-iconpicker/dist/css/fontawesome-iconpicker.css index 3d8fd82..c1c2961 100644 --- a/lib/fontawesome-iconpicker/dist/css/fontawesome-iconpicker.css +++ b/lib/fontawesome-iconpicker/dist/css/fontawesome-iconpicker.css @@ -1,28 +1,10 @@ /*! * Font Awesome Icon Picker - * https://itsjavi.com/fontawesome-iconpicker/ + * https://farbelous.github.io/fontawesome-iconpicker/ * * Originally written by (c) 2016 Javi Aguilar * Licensed under the MIT License - * https://github.com/itsjavi/fontawesome-iconpicker/blob/master/LICENSE - * - */ -/* - * Font Awesome Icon Picker - * https://itsjavi.com/fontawesome-iconpicker/ - * - * Originally written by (c) 2016 Javi Aguilar - * Licensed under the MIT License - * https://github.com/itsjavi/fontawesome-iconpicker/blob/master/LICENSE - * - */ -/* - * Font Awesome Icon Picker - * https://itsjavi.com/fontawesome-iconpicker/ - * - * Originally written by (c) 2016 Javi Aguilar - * Licensed under the MIT License - * https://github.com/itsjavi/fontawesome-iconpicker/blob/master/LICENSE + * https://github.com/farbelous/fontawesome-iconpicker/blob/master/LICENSE * */ .iconpicker-popover.popover { @@ -33,8 +15,9 @@ max-width: none; padding: 1px; text-align: left; - width: 216px; + width: 234px; background: #f7f7f7; + z-index: 9; } .iconpicker-popover.popover.top, .iconpicker-popover.popover.topLeftCorner, @@ -123,7 +106,7 @@ } .iconpicker-popover .popover-footer input[type=search].iconpicker-search { /*width:auto; - float:left;*/ + float:left;*/ margin-bottom: 12px; } .iconpicker-popover.popover > .arrow, @@ -310,11 +293,11 @@ box-shadow: 0 0 0 1px #dddddd; color: inherit; /*&:nth-child(4n+4) { - margin-right: 0; - } - &:nth-last-child(-n+4) { - margin-bottom: 0; - }*/ + margin-right: 0; + } + &:nth-last-child(-n+4) { + margin-bottom: 0; + }*/ } .iconpicker .iconpicker-item:hover:not(.iconpicker-selected) { background-color: #eeeeee; @@ -322,6 +305,7 @@ .iconpicker .iconpicker-item.iconpicker-selected { box-shadow: none; color: #fff; + background: #000; } .iconpicker-component { cursor: pointer; diff --git a/lib/fontawesome-iconpicker/dist/css/fontawesome-iconpicker.min.css b/lib/fontawesome-iconpicker/dist/css/fontawesome-iconpicker.min.css index 833fddb..e56572a 100644 --- a/lib/fontawesome-iconpicker/dist/css/fontawesome-iconpicker.min.css +++ b/lib/fontawesome-iconpicker/dist/css/fontawesome-iconpicker.min.css @@ -1,9 +1,9 @@ /*! * Font Awesome Icon Picker - * https://itsjavi.com/fontawesome-iconpicker/ + * https://farbelous.github.io/fontawesome-iconpicker/ * * Originally written by (c) 2016 Javi Aguilar * Licensed under the MIT License - * https://github.com/itsjavi/fontawesome-iconpicker/blob/master/LICENSE + * https://github.com/farbelous/fontawesome-iconpicker/blob/master/LICENSE * - */.iconpicker-popover.popover{position:absolute;top:0;left:0;display:none;max-width:none;padding:1px;text-align:left;width:216px;background:#f7f7f7}.iconpicker-popover.popover.top,.iconpicker-popover.popover.topLeftCorner,.iconpicker-popover.popover.topLeft,.iconpicker-popover.popover.topRight,.iconpicker-popover.popover.topRightCorner{margin-top:-10px}.iconpicker-popover.popover.right,.iconpicker-popover.popover.rightTop,.iconpicker-popover.popover.rightBottom{margin-left:10px}.iconpicker-popover.popover.bottom,.iconpicker-popover.popover.bottomRightCorner,.iconpicker-popover.popover.bottomRight,.iconpicker-popover.popover.bottomLeft,.iconpicker-popover.popover.bottomLeftCorner{margin-top:10px}.iconpicker-popover.popover.left,.iconpicker-popover.popover.leftBottom,.iconpicker-popover.popover.leftTop{margin-left:-10px}.iconpicker-popover.popover.inline{margin:0 0 12px 0;position:relative;display:inline-block;opacity:1;top:auto;left:auto;bottom:auto;right:auto;max-width:100%;box-shadow:none;z-index:auto;vertical-align:top}.iconpicker-popover.popover.inline>.arrow{display:none}.dropdown-menu .iconpicker-popover.inline{margin:0;border:none}.dropdown-menu.iconpicker-container{padding:0}.iconpicker-popover.popover .popover-title{padding:12px;font-size:13px;line-height:15px;border-bottom:1px solid #ebebeb;background-color:#f7f7f7}.iconpicker-popover.popover .popover-title input[type=search].iconpicker-search{margin:0 0 2px 0}.iconpicker-popover.popover .popover-title-text~input[type=search].iconpicker-search{margin-top:12px}.iconpicker-popover.popover .popover-content{padding:0px;text-align:center}.iconpicker-popover .popover-footer{float:none;clear:both;padding:12px;text-align:right;margin:0;border-top:1px solid #ebebeb;background-color:#f7f7f7}.iconpicker-popover .popover-footer:before,.iconpicker-popover .popover-footer:after{content:" ";display:table}.iconpicker-popover .popover-footer:after{clear:both}.iconpicker-popover .popover-footer .iconpicker-btn{margin-left:10px}.iconpicker-popover .popover-footer input[type=search].iconpicker-search{margin-bottom:12px}.iconpicker-popover.popover>.arrow,.iconpicker-popover.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.iconpicker-popover.popover>.arrow{border-width:11px}.iconpicker-popover.popover>.arrow:after{border-width:10px;content:""}.iconpicker-popover.popover.top>.arrow,.iconpicker-popover.popover.topLeft>.arrow,.iconpicker-popover.popover.topRight>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.iconpicker-popover.popover.top>.arrow:after,.iconpicker-popover.popover.topLeft>.arrow:after,.iconpicker-popover.popover.topRight>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.iconpicker-popover.popover.topLeft>.arrow{left:8px;margin-left:0}.iconpicker-popover.popover.topRight>.arrow{left:auto;right:8px;margin-left:0}.iconpicker-popover.popover.right>.arrow,.iconpicker-popover.popover.rightTop>.arrow,.iconpicker-popover.popover.rightBottom>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.iconpicker-popover.popover.right>.arrow:after,.iconpicker-popover.popover.rightTop>.arrow:after,.iconpicker-popover.popover.rightBottom>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.iconpicker-popover.popover.rightTop>.arrow{top:auto;bottom:8px;margin-top:0}.iconpicker-popover.popover.rightBottom>.arrow{top:8px;margin-top:0}.iconpicker-popover.popover.bottom>.arrow,.iconpicker-popover.popover.bottomRight>.arrow,.iconpicker-popover.popover.bottomLeft>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.iconpicker-popover.popover.bottom>.arrow:after,.iconpicker-popover.popover.bottomRight>.arrow:after,.iconpicker-popover.popover.bottomLeft>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.iconpicker-popover.popover.bottomLeft>.arrow{left:8px;margin-left:0}.iconpicker-popover.popover.bottomRight>.arrow{left:auto;right:8px;margin-left:0}.iconpicker-popover.popover.left>.arrow,.iconpicker-popover.popover.leftBottom>.arrow,.iconpicker-popover.popover.leftTop>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.iconpicker-popover.popover.left>.arrow:after,.iconpicker-popover.popover.leftBottom>.arrow:after,.iconpicker-popover.popover.leftTop>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.iconpicker-popover.popover.leftBottom>.arrow{top:8px;margin-top:0}.iconpicker-popover.popover.leftTop>.arrow{top:auto;bottom:8px;margin-top:0}.iconpicker{position:relative;text-align:left;text-shadow:none;line-height:0;display:block;margin:0;overflow:hidden}.iconpicker *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;position:relative}.iconpicker:before,.iconpicker:after{content:" ";display:table}.iconpicker:after{clear:both}.iconpicker .iconpicker-items{position:relative;clear:both;float:none;padding:12px 0 0 12px;background:#fff;margin:0;overflow:hidden;overflow-y:auto;min-height:49px;max-height:246px}.iconpicker .iconpicker-items:before,.iconpicker .iconpicker-items:after{content:" ";display:table}.iconpicker .iconpicker-items:after{clear:both}.iconpicker .iconpicker-item{float:left;width:14px;height:14px;padding:12px;margin:0 12px 12px 0;text-align:center;cursor:pointer;border-radius:3px;font-size:14px;box-shadow:0 0 0 1px #ddd;color:inherit}.iconpicker .iconpicker-item:hover:not(.iconpicker-selected){background-color:#eee}.iconpicker .iconpicker-item.iconpicker-selected{box-shadow:none;color:#fff}.iconpicker-component{cursor:pointer} \ No newline at end of file + */.iconpicker-popover.popover{position:absolute;top:0;left:0;display:none;max-width:none;padding:1px;text-align:left;width:234px;background:#f7f7f7;z-index:9}.iconpicker-popover.popover.top,.iconpicker-popover.popover.topLeftCorner,.iconpicker-popover.popover.topLeft,.iconpicker-popover.popover.topRight,.iconpicker-popover.popover.topRightCorner{margin-top:-10px}.iconpicker-popover.popover.right,.iconpicker-popover.popover.rightTop,.iconpicker-popover.popover.rightBottom{margin-left:10px}.iconpicker-popover.popover.bottom,.iconpicker-popover.popover.bottomRightCorner,.iconpicker-popover.popover.bottomRight,.iconpicker-popover.popover.bottomLeft,.iconpicker-popover.popover.bottomLeftCorner{margin-top:10px}.iconpicker-popover.popover.left,.iconpicker-popover.popover.leftBottom,.iconpicker-popover.popover.leftTop{margin-left:-10px}.iconpicker-popover.popover.inline{margin:0 0 12px 0;position:relative;display:inline-block;opacity:1;top:auto;left:auto;bottom:auto;right:auto;max-width:100%;box-shadow:none;z-index:auto;vertical-align:top}.iconpicker-popover.popover.inline>.arrow{display:none}.dropdown-menu .iconpicker-popover.inline{margin:0;border:none}.dropdown-menu.iconpicker-container{padding:0}.iconpicker-popover.popover .popover-title{padding:12px;font-size:13px;line-height:15px;border-bottom:1px solid #ebebeb;background-color:#f7f7f7}.iconpicker-popover.popover .popover-title input[type=search].iconpicker-search{margin:0 0 2px 0}.iconpicker-popover.popover .popover-title-text~input[type=search].iconpicker-search{margin-top:12px}.iconpicker-popover.popover .popover-content{padding:0px;text-align:center}.iconpicker-popover .popover-footer{float:none;clear:both;padding:12px;text-align:right;margin:0;border-top:1px solid #ebebeb;background-color:#f7f7f7}.iconpicker-popover .popover-footer:before,.iconpicker-popover .popover-footer:after{content:" ";display:table}.iconpicker-popover .popover-footer:after{clear:both}.iconpicker-popover .popover-footer .iconpicker-btn{margin-left:10px}.iconpicker-popover .popover-footer input[type=search].iconpicker-search{margin-bottom:12px}.iconpicker-popover.popover>.arrow,.iconpicker-popover.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.iconpicker-popover.popover>.arrow{border-width:11px}.iconpicker-popover.popover>.arrow:after{border-width:10px;content:""}.iconpicker-popover.popover.top>.arrow,.iconpicker-popover.popover.topLeft>.arrow,.iconpicker-popover.popover.topRight>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.iconpicker-popover.popover.top>.arrow:after,.iconpicker-popover.popover.topLeft>.arrow:after,.iconpicker-popover.popover.topRight>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.iconpicker-popover.popover.topLeft>.arrow{left:8px;margin-left:0}.iconpicker-popover.popover.topRight>.arrow{left:auto;right:8px;margin-left:0}.iconpicker-popover.popover.right>.arrow,.iconpicker-popover.popover.rightTop>.arrow,.iconpicker-popover.popover.rightBottom>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.iconpicker-popover.popover.right>.arrow:after,.iconpicker-popover.popover.rightTop>.arrow:after,.iconpicker-popover.popover.rightBottom>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.iconpicker-popover.popover.rightTop>.arrow{top:auto;bottom:8px;margin-top:0}.iconpicker-popover.popover.rightBottom>.arrow{top:8px;margin-top:0}.iconpicker-popover.popover.bottom>.arrow,.iconpicker-popover.popover.bottomRight>.arrow,.iconpicker-popover.popover.bottomLeft>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.iconpicker-popover.popover.bottom>.arrow:after,.iconpicker-popover.popover.bottomRight>.arrow:after,.iconpicker-popover.popover.bottomLeft>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.iconpicker-popover.popover.bottomLeft>.arrow{left:8px;margin-left:0}.iconpicker-popover.popover.bottomRight>.arrow{left:auto;right:8px;margin-left:0}.iconpicker-popover.popover.left>.arrow,.iconpicker-popover.popover.leftBottom>.arrow,.iconpicker-popover.popover.leftTop>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.iconpicker-popover.popover.left>.arrow:after,.iconpicker-popover.popover.leftBottom>.arrow:after,.iconpicker-popover.popover.leftTop>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.iconpicker-popover.popover.leftBottom>.arrow{top:8px;margin-top:0}.iconpicker-popover.popover.leftTop>.arrow{top:auto;bottom:8px;margin-top:0}.iconpicker{position:relative;text-align:left;text-shadow:none;line-height:0;display:block;margin:0;overflow:hidden}.iconpicker *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;position:relative}.iconpicker:before,.iconpicker:after{content:" ";display:table}.iconpicker:after{clear:both}.iconpicker .iconpicker-items{position:relative;clear:both;float:none;padding:12px 0 0 12px;background:#fff;margin:0;overflow:hidden;overflow-y:auto;min-height:49px;max-height:246px}.iconpicker .iconpicker-items:before,.iconpicker .iconpicker-items:after{content:" ";display:table}.iconpicker .iconpicker-items:after{clear:both}.iconpicker .iconpicker-item{float:left;width:14px;height:14px;padding:12px;margin:0 12px 12px 0;text-align:center;cursor:pointer;border-radius:3px;font-size:14px;box-shadow:0 0 0 1px #ddd;color:inherit}.iconpicker .iconpicker-item:hover:not(.iconpicker-selected){background-color:#eee}.iconpicker .iconpicker-item.iconpicker-selected{box-shadow:none;color:#fff;background:#000}.iconpicker-component{cursor:pointer} \ No newline at end of file diff --git a/lib/fontawesome-iconpicker/dist/js/fontawesome-iconpicker.js b/lib/fontawesome-iconpicker/dist/js/fontawesome-iconpicker.js index a964535..2f78ce7 100644 --- a/lib/fontawesome-iconpicker/dist/js/fontawesome-iconpicker.js +++ b/lib/fontawesome-iconpicker/dist/js/fontawesome-iconpicker.js @@ -1,350 +1,375 @@ -(function(a, b) { - a.ui = a.ui || {}; - var c, d = Math.max, e = Math.abs, f = Math.round, g = /left|center|right/, h = /top|center|bottom/, i = /[\+\-]\d+(\.[\d]+)?%?/, j = /^\w+/, k = /%$/, l = a.fn.pos; - function m(a, b, c) { - return [ parseFloat(a[0]) * (k.test(a[0]) ? b / 100 : 1), parseFloat(a[1]) * (k.test(a[1]) ? c / 100 : 1) ]; - } - function n(b, c) { - return parseInt(a.css(b, c), 10) || 0; +/*! + * Font Awesome Icon Picker + * https://farbelous.github.io/fontawesome-iconpicker/ + * + * Originally written by (c) 2016 Javi Aguilar + * Licensed under the MIT License + * https://github.com/farbelous/fontawesome-iconpicker/blob/master/LICENSE + * + */ +(function(a) { + if (typeof define === "function" && define.amd) { + define([ "jquery" ], a); + } else { + a(jQuery); } - function o(b) { - var c = b[0]; - if (c.nodeType === 9) { - return { - width: b.width(), - height: b.height(), - offset: { - top: 0, - left: 0 - } - }; +})(function(a) { + a.ui = a.ui || {}; + var b = a.ui.version = "1.12.1"; + /*! + * jQuery UI Position 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/position/ + */ + (function() { + var b, c = Math.max, d = Math.abs, e = /left|center|right/, f = /top|center|bottom/, g = /[\+\-]\d+(\.[\d]+)?%?/, h = /^\w+/, i = /%$/, j = a.fn.pos; + function k(a, b, c) { + return [ parseFloat(a[0]) * (i.test(a[0]) ? b / 100 : 1), parseFloat(a[1]) * (i.test(a[1]) ? c / 100 : 1) ]; } - if (a.isWindow(c)) { - return { - width: b.width(), - height: b.height(), - offset: { - top: b.scrollTop(), - left: b.scrollLeft() - } - }; + function l(b, c) { + return parseInt(a.css(b, c), 10) || 0; } - if (c.preventDefault) { + function m(b) { + var c = b[0]; + if (c.nodeType === 9) { + return { + width: b.width(), + height: b.height(), + offset: { + top: 0, + left: 0 + } + }; + } + if (a.isWindow(c)) { + return { + width: b.width(), + height: b.height(), + offset: { + top: b.scrollTop(), + left: b.scrollLeft() + } + }; + } + if (c.preventDefault) { + return { + width: 0, + height: 0, + offset: { + top: c.pageY, + left: c.pageX + } + }; + } return { - width: 0, - height: 0, - offset: { - top: c.pageY, - left: c.pageX - } + width: b.outerWidth(), + height: b.outerHeight(), + offset: b.offset() }; } - return { - width: b.outerWidth(), - height: b.outerHeight(), - offset: b.offset() + a.pos = { + scrollbarWidth: function() { + if (b !== undefined) { + return b; + } + var c, d, e = a("
" + "
"), f = e.children()[0]; + a("body").append(e); + c = f.offsetWidth; + e.css("overflow", "scroll"); + d = f.offsetWidth; + if (c === d) { + d = e[0].clientWidth; + } + e.remove(); + return b = c - d; + }, + getScrollInfo: function(b) { + var c = b.isWindow || b.isDocument ? "" : b.element.css("overflow-x"), d = b.isWindow || b.isDocument ? "" : b.element.css("overflow-y"), e = c === "scroll" || c === "auto" && b.width < b.element[0].scrollWidth, f = d === "scroll" || d === "auto" && b.height < b.element[0].scrollHeight; + return { + width: f ? a.pos.scrollbarWidth() : 0, + height: e ? a.pos.scrollbarWidth() : 0 + }; + }, + getWithinInfo: function(b) { + var c = a(b || window), d = a.isWindow(c[0]), e = !!c[0] && c[0].nodeType === 9, f = !d && !e; + return { + element: c, + isWindow: d, + isDocument: e, + offset: f ? a(b).offset() : { + left: 0, + top: 0 + }, + scrollLeft: c.scrollLeft(), + scrollTop: c.scrollTop(), + width: c.outerWidth(), + height: c.outerHeight() + }; + } }; - } - a.pos = { - scrollbarWidth: function() { - if (c !== b) { - return c; + a.fn.pos = function(b) { + if (!b || !b.of) { + return j.apply(this, arguments); } - var d, e, f = a("
"), g = f.children()[0]; - a("body").append(f); - d = g.offsetWidth; - f.css("overflow", "scroll"); - e = g.offsetWidth; - if (d === e) { - e = f[0].clientWidth; + b = a.extend({}, b); + var i, n, o, p, q, r, s = a(b.of), t = a.pos.getWithinInfo(b.within), u = a.pos.getScrollInfo(t), v = (b.collision || "flip").split(" "), w = {}; + r = m(s); + if (s[0].preventDefault) { + b.at = "left top"; } - f.remove(); - return c = d - e; - }, - getScrollInfo: function(b) { - var c = b.isWindow || b.isDocument ? "" : b.element.css("overflow-x"), d = b.isWindow || b.isDocument ? "" : b.element.css("overflow-y"), e = c === "scroll" || c === "auto" && b.width < b.element[0].scrollWidth, f = d === "scroll" || d === "auto" && b.height < b.element[0].scrollHeight; - return { - width: f ? a.pos.scrollbarWidth() : 0, - height: e ? a.pos.scrollbarWidth() : 0 - }; - }, - getWithinInfo: function(b) { - var c = a(b || window), d = a.isWindow(c[0]), e = !!c[0] && c[0].nodeType === 9; - return { - element: c, - isWindow: d, - isDocument: e, - offset: c.offset() || { - left: 0, - top: 0 - }, - scrollLeft: c.scrollLeft(), - scrollTop: c.scrollTop(), - width: d ? c.width() : c.outerWidth(), - height: d ? c.height() : c.outerHeight() - }; - } - }; - a.fn.pos = function(b) { - if (!b || !b.of) { - return l.apply(this, arguments); - } - b = a.extend({}, b); - var c, k, p, q, r, s, t = a(b.of), u = a.pos.getWithinInfo(b.within), v = a.pos.getScrollInfo(u), w = (b.collision || "flip").split(" "), x = {}; - s = o(t); - if (t[0].preventDefault) { - b.at = "left top"; - } - k = s.width; - p = s.height; - q = s.offset; - r = a.extend({}, q); - a.each([ "my", "at" ], function() { - var a = (b[this] || "").split(" "), c, d; - if (a.length === 1) { - a = g.test(a[0]) ? a.concat([ "center" ]) : h.test(a[0]) ? [ "center" ].concat(a) : [ "center", "center" ]; - } - a[0] = g.test(a[0]) ? a[0] : "center"; - a[1] = h.test(a[1]) ? a[1] : "center"; - c = i.exec(a[0]); - d = i.exec(a[1]); - x[this] = [ c ? c[0] : 0, d ? d[0] : 0 ]; - b[this] = [ j.exec(a[0])[0], j.exec(a[1])[0] ]; - }); - if (w.length === 1) { - w[1] = w[0]; - } - if (b.at[0] === "right") { - r.left += k; - } else if (b.at[0] === "center") { - r.left += k / 2; - } - if (b.at[1] === "bottom") { - r.top += p; - } else if (b.at[1] === "center") { - r.top += p / 2; - } - c = m(x.at, k, p); - r.left += c[0]; - r.top += c[1]; - return this.each(function() { - var g, h, i = a(this), j = i.outerWidth(), l = i.outerHeight(), o = n(this, "marginLeft"), s = n(this, "marginTop"), y = j + o + n(this, "marginRight") + v.width, z = l + s + n(this, "marginBottom") + v.height, A = a.extend({}, r), B = m(x.my, i.outerWidth(), i.outerHeight()); - if (b.my[0] === "right") { - A.left -= j; - } else if (b.my[0] === "center") { - A.left -= j / 2; - } - if (b.my[1] === "bottom") { - A.top -= l; - } else if (b.my[1] === "center") { - A.top -= l / 2; - } - A.left += B[0]; - A.top += B[1]; - if (!a.support.offsetFractions) { - A.left = f(A.left); - A.top = f(A.top); - } - g = { - marginLeft: o, - marginTop: s - }; - a.each([ "left", "top" ], function(d, e) { - if (a.ui.pos[w[d]]) { - a.ui.pos[w[d]][e](A, { - targetWidth: k, - targetHeight: p, - elemWidth: j, - elemHeight: l, - collisionPosition: g, - collisionWidth: y, - collisionHeight: z, - offset: [ c[0] + B[0], c[1] + B[1] ], - my: b.my, - at: b.at, - within: u, - elem: i - }); + n = r.width; + o = r.height; + p = r.offset; + q = a.extend({}, p); + a.each([ "my", "at" ], function() { + var a = (b[this] || "").split(" "), c, d; + if (a.length === 1) { + a = e.test(a[0]) ? a.concat([ "center" ]) : f.test(a[0]) ? [ "center" ].concat(a) : [ "center", "center" ]; } + a[0] = e.test(a[0]) ? a[0] : "center"; + a[1] = f.test(a[1]) ? a[1] : "center"; + c = g.exec(a[0]); + d = g.exec(a[1]); + w[this] = [ c ? c[0] : 0, d ? d[0] : 0 ]; + b[this] = [ h.exec(a[0])[0], h.exec(a[1])[0] ]; }); - if (b.using) { - h = function(a) { - var c = q.left - A.left, f = c + k - j, g = q.top - A.top, h = g + p - l, m = { - target: { - element: t, - left: q.left, - top: q.top, - width: k, - height: p - }, - element: { - element: i, - left: A.left, - top: A.top, - width: j, - height: l - }, - horizontal: f < 0 ? "left" : c > 0 ? "right" : "center", - vertical: h < 0 ? "top" : g > 0 ? "bottom" : "middle" - }; - if (k < j && e(c + f) < k) { - m.horizontal = "center"; - } - if (p < l && e(g + h) < p) { - m.vertical = "middle"; - } - if (d(e(c), e(f)) > d(e(g), e(h))) { - m.important = "horizontal"; - } else { - m.important = "vertical"; - } - b.using.call(this, a, m); - }; + if (v.length === 1) { + v[1] = v[0]; } - i.offset(a.extend(A, { - using: h - })); - }); - }; - a.ui.pos = { - _trigger: function(a, b, c, d) { - if (b.elem) { - b.elem.trigger({ - type: c, - position: a, - positionData: b, - triggered: d - }); + if (b.at[0] === "right") { + q.left += n; + } else if (b.at[0] === "center") { + q.left += n / 2; } - }, - fit: { - left: function(b, c) { - a.ui.pos._trigger(b, c, "posCollide", "fitLeft"); - var e = c.within, f = e.isWindow ? e.scrollLeft : e.offset.left, g = e.width, h = b.left - c.collisionPosition.marginLeft, i = f - h, j = h + c.collisionWidth - g - f, k; - if (c.collisionWidth > g) { - if (i > 0 && j <= 0) { - k = b.left + i + c.collisionWidth - g - f; - b.left += i - k; - } else if (j > 0 && i <= 0) { - b.left = f; - } else { - if (i > j) { - b.left = f + g - c.collisionWidth; + if (b.at[1] === "bottom") { + q.top += o; + } else if (b.at[1] === "center") { + q.top += o / 2; + } + i = k(w.at, n, o); + q.left += i[0]; + q.top += i[1]; + return this.each(function() { + var e, f, g = a(this), h = g.outerWidth(), j = g.outerHeight(), m = l(this, "marginLeft"), r = l(this, "marginTop"), x = h + m + l(this, "marginRight") + u.width, y = j + r + l(this, "marginBottom") + u.height, z = a.extend({}, q), A = k(w.my, g.outerWidth(), g.outerHeight()); + if (b.my[0] === "right") { + z.left -= h; + } else if (b.my[0] === "center") { + z.left -= h / 2; + } + if (b.my[1] === "bottom") { + z.top -= j; + } else if (b.my[1] === "center") { + z.top -= j / 2; + } + z.left += A[0]; + z.top += A[1]; + e = { + marginLeft: m, + marginTop: r + }; + a.each([ "left", "top" ], function(c, d) { + if (a.ui.pos[v[c]]) { + a.ui.pos[v[c]][d](z, { + targetWidth: n, + targetHeight: o, + elemWidth: h, + elemHeight: j, + collisionPosition: e, + collisionWidth: x, + collisionHeight: y, + offset: [ i[0] + A[0], i[1] + A[1] ], + my: b.my, + at: b.at, + within: t, + elem: g + }); + } + }); + if (b.using) { + f = function(a) { + var e = p.left - z.left, f = e + n - h, i = p.top - z.top, k = i + o - j, l = { + target: { + element: s, + left: p.left, + top: p.top, + width: n, + height: o + }, + element: { + element: g, + left: z.left, + top: z.top, + width: h, + height: j + }, + horizontal: f < 0 ? "left" : e > 0 ? "right" : "center", + vertical: k < 0 ? "top" : i > 0 ? "bottom" : "middle" + }; + if (n < h && d(e + f) < n) { + l.horizontal = "center"; + } + if (o < j && d(i + k) < o) { + l.vertical = "middle"; + } + if (c(d(e), d(f)) > c(d(i), d(k))) { + l.important = "horizontal"; } else { - b.left = f; + l.important = "vertical"; } - } - } else if (i > 0) { - b.left += i; - } else if (j > 0) { - b.left -= j; - } else { - b.left = d(b.left - h, b.left); + b.using.call(this, a, l); + }; + } + g.offset(a.extend(z, { + using: f + })); + }); + }; + a.ui.pos = { + _trigger: function(a, b, c, d) { + if (b.elem) { + b.elem.trigger({ + type: c, + position: a, + positionData: b, + triggered: d + }); } - a.ui.pos._trigger(b, c, "posCollided", "fitLeft"); }, - top: function(b, c) { - a.ui.pos._trigger(b, c, "posCollide", "fitTop"); - var e = c.within, f = e.isWindow ? e.scrollTop : e.offset.top, g = c.within.height, h = b.top - c.collisionPosition.marginTop, i = f - h, j = h + c.collisionHeight - g - f, k; - if (c.collisionHeight > g) { - if (i > 0 && j <= 0) { - k = b.top + i + c.collisionHeight - g - f; - b.top += i - k; - } else if (j > 0 && i <= 0) { - b.top = f; - } else { - if (i > j) { - b.top = f + g - c.collisionHeight; + fit: { + left: function(b, d) { + a.ui.pos._trigger(b, d, "posCollide", "fitLeft"); + var e = d.within, f = e.isWindow ? e.scrollLeft : e.offset.left, g = e.width, h = b.left - d.collisionPosition.marginLeft, i = f - h, j = h + d.collisionWidth - g - f, k; + if (d.collisionWidth > g) { + if (i > 0 && j <= 0) { + k = b.left + i + d.collisionWidth - g - f; + b.left += i - k; + } else if (j > 0 && i <= 0) { + b.left = f; } else { - b.top = f; + if (i > j) { + b.left = f + g - d.collisionWidth; + } else { + b.left = f; + } } + } else if (i > 0) { + b.left += i; + } else if (j > 0) { + b.left -= j; + } else { + b.left = c(b.left - h, b.left); } - } else if (i > 0) { - b.top += i; - } else if (j > 0) { - b.top -= j; - } else { - b.top = d(b.top - h, b.top); - } - a.ui.pos._trigger(b, c, "posCollided", "fitTop"); - } - }, - flip: { - left: function(b, c) { - a.ui.pos._trigger(b, c, "posCollide", "flipLeft"); - var d = c.within, f = d.offset.left + d.scrollLeft, g = d.width, h = d.isWindow ? d.scrollLeft : d.offset.left, i = b.left - c.collisionPosition.marginLeft, j = i - h, k = i + c.collisionWidth - g - h, l = c.my[0] === "left" ? -c.elemWidth : c.my[0] === "right" ? c.elemWidth : 0, m = c.at[0] === "left" ? c.targetWidth : c.at[0] === "right" ? -c.targetWidth : 0, n = -2 * c.offset[0], o, p; - if (j < 0) { - o = b.left + l + m + n + c.collisionWidth - g - f; - if (o < 0 || o < e(j)) { - b.left += l + m + n; - } - } else if (k > 0) { - p = b.left - c.collisionPosition.marginLeft + l + m + n - h; - if (p > 0 || e(p) < k) { - b.left += l + m + n; + a.ui.pos._trigger(b, d, "posCollided", "fitLeft"); + }, + top: function(b, d) { + a.ui.pos._trigger(b, d, "posCollide", "fitTop"); + var e = d.within, f = e.isWindow ? e.scrollTop : e.offset.top, g = d.within.height, h = b.top - d.collisionPosition.marginTop, i = f - h, j = h + d.collisionHeight - g - f, k; + if (d.collisionHeight > g) { + if (i > 0 && j <= 0) { + k = b.top + i + d.collisionHeight - g - f; + b.top += i - k; + } else if (j > 0 && i <= 0) { + b.top = f; + } else { + if (i > j) { + b.top = f + g - d.collisionHeight; + } else { + b.top = f; + } + } + } else if (i > 0) { + b.top += i; + } else if (j > 0) { + b.top -= j; + } else { + b.top = c(b.top - h, b.top); } + a.ui.pos._trigger(b, d, "posCollided", "fitTop"); } - a.ui.pos._trigger(b, c, "posCollided", "flipLeft"); }, - top: function(b, c) { - a.ui.pos._trigger(b, c, "posCollide", "flipTop"); - var d = c.within, f = d.offset.top + d.scrollTop, g = d.height, h = d.isWindow ? d.scrollTop : d.offset.top, i = b.top - c.collisionPosition.marginTop, j = i - h, k = i + c.collisionHeight - g - h, l = c.my[1] === "top", m = l ? -c.elemHeight : c.my[1] === "bottom" ? c.elemHeight : 0, n = c.at[1] === "top" ? c.targetHeight : c.at[1] === "bottom" ? -c.targetHeight : 0, o = -2 * c.offset[1], p, q; - if (j < 0) { - q = b.top + m + n + o + c.collisionHeight - g - f; - if (b.top + m + n + o > j && (q < 0 || q < e(j))) { - b.top += m + n + o; + flip: { + left: function(b, c) { + a.ui.pos._trigger(b, c, "posCollide", "flipLeft"); + var e = c.within, f = e.offset.left + e.scrollLeft, g = e.width, h = e.isWindow ? e.scrollLeft : e.offset.left, i = b.left - c.collisionPosition.marginLeft, j = i - h, k = i + c.collisionWidth - g - h, l = c.my[0] === "left" ? -c.elemWidth : c.my[0] === "right" ? c.elemWidth : 0, m = c.at[0] === "left" ? c.targetWidth : c.at[0] === "right" ? -c.targetWidth : 0, n = -2 * c.offset[0], o, p; + if (j < 0) { + o = b.left + l + m + n + c.collisionWidth - g - f; + if (o < 0 || o < d(j)) { + b.left += l + m + n; + } + } else if (k > 0) { + p = b.left - c.collisionPosition.marginLeft + l + m + n - h; + if (p > 0 || d(p) < k) { + b.left += l + m + n; + } } - } else if (k > 0) { - p = b.top - c.collisionPosition.marginTop + m + n + o - h; - if (b.top + m + n + o > k && (p > 0 || e(p) < k)) { - b.top += m + n + o; + a.ui.pos._trigger(b, c, "posCollided", "flipLeft"); + }, + top: function(b, c) { + a.ui.pos._trigger(b, c, "posCollide", "flipTop"); + var e = c.within, f = e.offset.top + e.scrollTop, g = e.height, h = e.isWindow ? e.scrollTop : e.offset.top, i = b.top - c.collisionPosition.marginTop, j = i - h, k = i + c.collisionHeight - g - h, l = c.my[1] === "top", m = l ? -c.elemHeight : c.my[1] === "bottom" ? c.elemHeight : 0, n = c.at[1] === "top" ? c.targetHeight : c.at[1] === "bottom" ? -c.targetHeight : 0, o = -2 * c.offset[1], p, q; + if (j < 0) { + q = b.top + m + n + o + c.collisionHeight - g - f; + if (q < 0 || q < d(j)) { + b.top += m + n + o; + } + } else if (k > 0) { + p = b.top - c.collisionPosition.marginTop + m + n + o - h; + if (p > 0 || d(p) < k) { + b.top += m + n + o; + } } + a.ui.pos._trigger(b, c, "posCollided", "flipTop"); } - a.ui.pos._trigger(b, c, "posCollided", "flipTop"); - } - }, - flipfit: { - left: function() { - a.ui.pos.flip.left.apply(this, arguments); - a.ui.pos.fit.left.apply(this, arguments); }, - top: function() { - a.ui.pos.flip.top.apply(this, arguments); - a.ui.pos.fit.top.apply(this, arguments); + flipfit: { + left: function() { + a.ui.pos.flip.left.apply(this, arguments); + a.ui.pos.fit.left.apply(this, arguments); + }, + top: function() { + a.ui.pos.flip.top.apply(this, arguments); + a.ui.pos.fit.top.apply(this, arguments); + } } - } - }; - (function() { - var b, c, d, e, f, g = document.getElementsByTagName("body")[0], h = document.createElement("div"); - b = document.createElement(g ? "div" : "body"); - d = { - visibility: "hidden", - width: 0, - height: 0, - border: 0, - margin: 0, - background: "none" }; - if (g) { - a.extend(d, { - position: "absolute", - left: "-1000px", - top: "-1000px" - }); - } - for (f in d) { - b.style[f] = d[f]; - } - b.appendChild(h); - c = g || document.documentElement; - c.insertBefore(b, c.firstChild); - h.style.cssText = "position: absolute; left: 10.7432222px;"; - e = a(h).offset().left; - a.support.offsetFractions = e > 10 && e < 11; - b.innerHTML = ""; - c.removeChild(b); + (function() { + var b, c, d, e, f, g = document.getElementsByTagName("body")[0], h = document.createElement("div"); + b = document.createElement(g ? "div" : "body"); + d = { + visibility: "hidden", + width: 0, + height: 0, + border: 0, + margin: 0, + background: "none" + }; + if (g) { + a.extend(d, { + position: "absolute", + left: "-1000px", + top: "-1000px" + }); + } + for (f in d) { + b.style[f] = d[f]; + } + b.appendChild(h); + c = g || document.documentElement; + c.insertBefore(b, c.firstChild); + h.style.cssText = "position: absolute; left: 10.7432222px;"; + e = a(h).offset().left; + a.support.offsetFractions = e > 10 && e < 11; + b.innerHTML = ""; + c.removeChild(b); + })(); })(); -})(jQuery); + var c = a.ui.position; +}); (function(a) { "use strict"; @@ -381,7 +406,9 @@ var c = function(d, e) { this._id = c._idCounter++; this.element = a(d).addClass("iconpicker-element"); - this._trigger("iconpickerCreate"); + this._trigger("iconpickerCreate", { + iconpickerValue: this.iconpickerValue + }); this.options = a.extend({}, c.defaultOptions, this.element.data(), e); this.options.templates = a.extend({}, c.defaultOptions.templates, this.options.templates); this.options.originalPlacement = this.options.placement; @@ -395,8 +422,6 @@ } this.container.addClass("iconpicker-container"); if (this.isDropdownMenu()) { - this.options.templates.search = false; - this.options.templates.buttons = false; this.options.placement = "inline"; } this.input = this.element.is("input,textarea") ? this.element.addClass("iconpicker-input") : false; @@ -428,7 +453,9 @@ if (this.isInline()) { this.show(); } - this._trigger("iconpickerCreated"); + this._trigger("iconpickerCreated", { + iconpickerValue: this.iconpickerValue + }); }; c._idCounter = 0; c.defaultOptions = { @@ -445,7 +472,7 @@ selectedCustomClass: "bg-primary", icons: [], fullClassFormatter: function(a) { - return "fa " + a; + return a; }, input: "input,.iconpicker-input", inputSearch: false, @@ -530,15 +557,20 @@ if (b.options.hideOnSelect && b.options.mustAccept === false) { b.hide(); } - c.preventDefault(); - return false; }; for (var d in this.options.icons) { - if (typeof this.options.icons[d] === "string") { + if (typeof this.options.icons[d].title === "string") { var e = a(this.options.templates.iconpickerItem); - e.find("i").addClass(this.options.fullClassFormatter(this.options.icons[d])); - e.data("iconpickerValue", this.options.icons[d]).on("click.iconpicker", c); - this.iconpicker.find(".iconpicker-items").append(e.attr("title", "." + this.options.icons[d])); + e.find("i").addClass(this.options.fullClassFormatter(this.options.icons[d].title)); + e.data("iconpickerValue", this.options.icons[d].title).on("click.iconpicker", c); + this.iconpicker.find(".iconpicker-items").append(e.attr("title", "." + this.options.icons[d].title)); + if (this.options.icons[d].searchTerms.length > 0) { + var f = ""; + for (var g = 0; g < this.options.icons[d].searchTerms.length; g++) { + f = f + this.options.icons[d].searchTerms[g] + " "; + } + this.iconpicker.find(".iconpicker-items").append(e.attr("data-search-terms", f)); + } } } this.popover.find(".popover-content").append(this.iconpicker); @@ -608,12 +640,8 @@ if (!c._isEventInsideIconpicker(a) && !c.isInline()) { c.hide(); } - a.stopPropagation(); - a.preventDefault(); - return false; }); } - return false; }, _unbindElementEvents: function() { this.popover.off(".iconpicker"); @@ -821,7 +849,14 @@ } var d = c === ""; c = a.trim(c); - if (b.inArray(c, this.options.icons) || d) { + var e = false; + for (var f = 0; f < this.options.icons.length; f++) { + if (this.options.icons[f].title === c) { + e = true; + break; + } + } + if (e || d) { return c; } return false; @@ -910,13 +945,15 @@ this.iconpicker.find(".iconpicker-item").each(function() { var b = a(this); var e = b.attr("title").toLowerCase(); - var f = false; + var f = b.attr("data-search-terms") ? b.attr("data-search-terms").toLowerCase() : ""; + e = e + " " + f; + var g = false; try { - f = new RegExp(c, "g"); + g = new RegExp("(^|\\W)" + c, "g"); } catch (a) { - f = false; + g = false; } - if (f !== false && e.match(f)) { + if (g !== false && e.match(g)) { d.push(b); b.show(); } else { @@ -931,25 +968,33 @@ return false; } a.iconpicker.batch(a(".iconpicker-popover.in:not(.inline)").not(this.popover), "hide"); - this._trigger("iconpickerShow"); + this._trigger("iconpickerShow", { + iconpickerValue: this.iconpickerValue + }); this.updatePlacement(); this.popover.addClass("in"); setTimeout(a.proxy(function() { this.popover.css("display", this.isInline() ? "" : "block"); - this._trigger("iconpickerShown"); + this._trigger("iconpickerShown", { + iconpickerValue: this.iconpickerValue + }); }, this), this.options.animation ? 300 : 1); }, hide: function() { if (!this.popover.hasClass("in")) { return false; } - this._trigger("iconpickerHide"); + this._trigger("iconpickerHide", { + iconpickerValue: this.iconpickerValue + }); this.popover.removeClass("in"); setTimeout(a.proxy(function() { this.popover.css("display", "none"); this.getSearchInput().val(""); this.filter(""); - this._trigger("iconpickerHidden"); + this._trigger("iconpickerHidden", { + iconpickerValue: this.iconpickerValue + }); }, this), this.options.animation ? 300 : 1); }, toggle: function() { @@ -961,7 +1006,9 @@ }, update: function(a, b) { a = a ? a : this.getSourceValue(this.iconpickerValue); - this._trigger("iconpickerUpdate"); + this._trigger("iconpickerUpdate", { + iconpickerValue: this.iconpickerValue + }); if (b === true) { a = this.setValue(a); } else { @@ -971,16 +1018,22 @@ if (a !== false) { this._updateComponents(); } - this._trigger("iconpickerUpdated"); + this._trigger("iconpickerUpdated", { + iconpickerValue: this.iconpickerValue + }); return a; }, destroy: function() { - this._trigger("iconpickerDestroy"); + this._trigger("iconpickerDestroy", { + iconpickerValue: this.iconpickerValue + }); this.element.removeData("iconpicker").removeData("iconpickerValue").removeClass("iconpicker-element"); this._unbindElementEvents(); this._unbindWindowEvents(); a(this.popover).remove(); - this._trigger("iconpickerDestroyed"); + this._trigger("iconpickerDestroyed", { + iconpickerValue: this.iconpickerValue + }); }, disable: function() { if (this.hasInput()) { @@ -1015,5 +1068,2845 @@ } }); }; - c.defaultOptions.icons = [ "fa-500px", "fa-address-book", "fa-address-book-o", "fa-address-card", "fa-address-card-o", "fa-adjust", "fa-adn", "fa-align-center", "fa-align-justify", "fa-align-left", "fa-align-right", "fa-amazon", "fa-ambulance", "fa-american-sign-language-interpreting", "fa-anchor", "fa-android", "fa-angellist", "fa-angle-double-down", "fa-angle-double-left", "fa-angle-double-right", "fa-angle-double-up", "fa-angle-down", "fa-angle-left", "fa-angle-right", "fa-angle-up", "fa-apple", "fa-archive", "fa-area-chart", "fa-arrow-circle-down", "fa-arrow-circle-left", "fa-arrow-circle-o-down", "fa-arrow-circle-o-left", "fa-arrow-circle-o-right", "fa-arrow-circle-o-up", "fa-arrow-circle-right", "fa-arrow-circle-up", "fa-arrow-down", "fa-arrow-left", "fa-arrow-right", "fa-arrow-up", "fa-arrows", "fa-arrows-alt", "fa-arrows-h", "fa-arrows-v", "fa-asl-interpreting", "fa-assistive-listening-systems", "fa-asterisk", "fa-at", "fa-audio-description", "fa-automobile", "fa-backward", "fa-balance-scale", "fa-ban", "fa-bandcamp", "fa-bank", "fa-bar-chart", "fa-bar-chart-o", "fa-barcode", "fa-bars", "fa-bath", "fa-bathtub", "fa-battery", "fa-battery-0", "fa-battery-1", "fa-battery-2", "fa-battery-3", "fa-battery-4", "fa-battery-empty", "fa-battery-full", "fa-battery-half", "fa-battery-quarter", "fa-battery-three-quarters", "fa-bed", "fa-beer", "fa-behance", "fa-behance-square", "fa-bell", "fa-bell-o", "fa-bell-slash", "fa-bell-slash-o", "fa-bicycle", "fa-binoculars", "fa-birthday-cake", "fa-bitbucket", "fa-bitbucket-square", "fa-bitcoin", "fa-black-tie", "fa-blind", "fa-bluetooth", "fa-bluetooth-b", "fa-bold", "fa-bolt", "fa-bomb", "fa-book", "fa-bookmark", "fa-bookmark-o", "fa-braille", "fa-briefcase", "fa-btc", "fa-bug", "fa-building", "fa-building-o", "fa-bullhorn", "fa-bullseye", "fa-bus", "fa-buysellads", "fa-cab", "fa-calculator", "fa-calendar", "fa-calendar-check-o", "fa-calendar-minus-o", "fa-calendar-o", "fa-calendar-plus-o", "fa-calendar-times-o", "fa-camera", "fa-camera-retro", "fa-car", "fa-caret-down", "fa-caret-left", "fa-caret-right", "fa-caret-square-o-down", "fa-caret-square-o-left", "fa-caret-square-o-right", "fa-caret-square-o-up", "fa-caret-up", "fa-cart-arrow-down", "fa-cart-plus", "fa-cc", "fa-cc-amex", "fa-cc-diners-club", "fa-cc-discover", "fa-cc-jcb", "fa-cc-mastercard", "fa-cc-paypal", "fa-cc-stripe", "fa-cc-visa", "fa-certificate", "fa-chain", "fa-chain-broken", "fa-check", "fa-check-circle", "fa-check-circle-o", "fa-check-square", "fa-check-square-o", "fa-chevron-circle-down", "fa-chevron-circle-left", "fa-chevron-circle-right", "fa-chevron-circle-up", "fa-chevron-down", "fa-chevron-left", "fa-chevron-right", "fa-chevron-up", "fa-child", "fa-chrome", "fa-circle", "fa-circle-o", "fa-circle-o-notch", "fa-circle-thin", "fa-clipboard", "fa-clock-o", "fa-clone", "fa-close", "fa-cloud", "fa-cloud-download", "fa-cloud-upload", "fa-cny", "fa-code", "fa-code-fork", "fa-codepen", "fa-codiepie", "fa-coffee", "fa-cog", "fa-cogs", "fa-columns", "fa-comment", "fa-comment-o", "fa-commenting", "fa-commenting-o", "fa-comments", "fa-comments-o", "fa-compass", "fa-compress", "fa-connectdevelop", "fa-contao", "fa-copy", "fa-copyright", "fa-creative-commons", "fa-credit-card", "fa-credit-card-alt", "fa-crop", "fa-crosshairs", "fa-css3", "fa-cube", "fa-cubes", "fa-cut", "fa-cutlery", "fa-dashboard", "fa-dashcube", "fa-database", "fa-deaf", "fa-deafness", "fa-dedent", "fa-delicious", "fa-desktop", "fa-deviantart", "fa-diamond", "fa-digg", "fa-dollar", "fa-dot-circle-o", "fa-download", "fa-dribbble", "fa-drivers-license", "fa-drivers-license-o", "fa-dropbox", "fa-drupal", "fa-edge", "fa-edit", "fa-eercast", "fa-eject", "fa-ellipsis-h", "fa-ellipsis-v", "fa-empire", "fa-envelope", "fa-envelope-o", "fa-envelope-open", "fa-envelope-open-o", "fa-envelope-square", "fa-envira", "fa-eraser", "fa-etsy", "fa-eur", "fa-euro", "fa-exchange", "fa-exclamation", "fa-exclamation-circle", "fa-exclamation-triangle", "fa-expand", "fa-expeditedssl", "fa-external-link", "fa-external-link-square", "fa-eye", "fa-eye-slash", "fa-eyedropper", "fa-fa", "fa-facebook", "fa-facebook-f", "fa-facebook-official", "fa-facebook-square", "fa-fast-backward", "fa-fast-forward", "fa-fax", "fa-feed", "fa-female", "fa-fighter-jet", "fa-file", "fa-file-archive-o", "fa-file-audio-o", "fa-file-code-o", "fa-file-excel-o", "fa-file-image-o", "fa-file-movie-o", "fa-file-o", "fa-file-pdf-o", "fa-file-photo-o", "fa-file-picture-o", "fa-file-powerpoint-o", "fa-file-sound-o", "fa-file-text", "fa-file-text-o", "fa-file-video-o", "fa-file-word-o", "fa-file-zip-o", "fa-files-o", "fa-film", "fa-filter", "fa-fire", "fa-fire-extinguisher", "fa-firefox", "fa-first-order", "fa-flag", "fa-flag-checkered", "fa-flag-o", "fa-flash", "fa-flask", "fa-flickr", "fa-floppy-o", "fa-folder", "fa-folder-o", "fa-folder-open", "fa-folder-open-o", "fa-font", "fa-font-awesome", "fa-fonticons", "fa-fort-awesome", "fa-forumbee", "fa-forward", "fa-foursquare", "fa-free-code-camp", "fa-frown-o", "fa-futbol-o", "fa-gamepad", "fa-gavel", "fa-gbp", "fa-ge", "fa-gear", "fa-gears", "fa-genderless", "fa-get-pocket", "fa-gg", "fa-gg-circle", "fa-gift", "fa-git", "fa-git-square", "fa-github", "fa-github-alt", "fa-github-square", "fa-gitlab", "fa-gittip", "fa-glass", "fa-glide", "fa-glide-g", "fa-globe", "fa-google", "fa-google-plus", "fa-google-plus-circle", "fa-google-plus-official", "fa-google-plus-square", "fa-google-wallet", "fa-graduation-cap", "fa-gratipay", "fa-grav", "fa-group", "fa-h-square", "fa-hacker-news", "fa-hand-grab-o", "fa-hand-lizard-o", "fa-hand-o-down", "fa-hand-o-left", "fa-hand-o-right", "fa-hand-o-up", "fa-hand-paper-o", "fa-hand-peace-o", "fa-hand-pointer-o", "fa-hand-rock-o", "fa-hand-scissors-o", "fa-hand-spock-o", "fa-hand-stop-o", "fa-handshake-o", "fa-hard-of-hearing", "fa-hashtag", "fa-hdd-o", "fa-header", "fa-headphones", "fa-heart", "fa-heart-o", "fa-heartbeat", "fa-history", "fa-home", "fa-hospital-o", "fa-hotel", "fa-hourglass", "fa-hourglass-1", "fa-hourglass-2", "fa-hourglass-3", "fa-hourglass-end", "fa-hourglass-half", "fa-hourglass-o", "fa-hourglass-start", "fa-houzz", "fa-html5", "fa-i-cursor", "fa-id-badge", "fa-id-card", "fa-id-card-o", "fa-ils", "fa-image", "fa-imdb", "fa-inbox", "fa-indent", "fa-industry", "fa-info", "fa-info-circle", "fa-inr", "fa-instagram", "fa-institution", "fa-internet-explorer", "fa-intersex", "fa-ioxhost", "fa-italic", "fa-joomla", "fa-jpy", "fa-jsfiddle", "fa-key", "fa-keyboard-o", "fa-krw", "fa-language", "fa-laptop", "fa-lastfm", "fa-lastfm-square", "fa-leaf", "fa-leanpub", "fa-legal", "fa-lemon-o", "fa-level-down", "fa-level-up", "fa-life-bouy", "fa-life-buoy", "fa-life-ring", "fa-life-saver", "fa-lightbulb-o", "fa-line-chart", "fa-link", "fa-linkedin", "fa-linkedin-square", "fa-linode", "fa-linux", "fa-list", "fa-list-alt", "fa-list-ol", "fa-list-ul", "fa-location-arrow", "fa-lock", "fa-long-arrow-down", "fa-long-arrow-left", "fa-long-arrow-right", "fa-long-arrow-up", "fa-low-vision", "fa-magic", "fa-magnet", "fa-mail-forward", "fa-mail-reply", "fa-mail-reply-all", "fa-male", "fa-map", "fa-map-marker", "fa-map-o", "fa-map-pin", "fa-map-signs", "fa-mars", "fa-mars-double", "fa-mars-stroke", "fa-mars-stroke-h", "fa-mars-stroke-v", "fa-maxcdn", "fa-meanpath", "fa-medium", "fa-medkit", "fa-meetup", "fa-meh-o", "fa-mercury", "fa-microchip", "fa-microphone", "fa-microphone-slash", "fa-minus", "fa-minus-circle", "fa-minus-square", "fa-minus-square-o", "fa-mixcloud", "fa-mobile", "fa-mobile-phone", "fa-modx", "fa-money", "fa-moon-o", "fa-mortar-board", "fa-motorcycle", "fa-mouse-pointer", "fa-music", "fa-navicon", "fa-neuter", "fa-newspaper-o", "fa-object-group", "fa-object-ungroup", "fa-odnoklassniki", "fa-odnoklassniki-square", "fa-opencart", "fa-openid", "fa-opera", "fa-optin-monster", "fa-outdent", "fa-pagelines", "fa-paint-brush", "fa-paper-plane", "fa-paper-plane-o", "fa-paperclip", "fa-paragraph", "fa-paste", "fa-pause", "fa-pause-circle", "fa-pause-circle-o", "fa-paw", "fa-paypal", "fa-pencil", "fa-pencil-square", "fa-pencil-square-o", "fa-percent", "fa-phone", "fa-phone-square", "fa-photo", "fa-picture-o", "fa-pie-chart", "fa-pied-piper", "fa-pied-piper-alt", "fa-pied-piper-pp", "fa-pinterest", "fa-pinterest-p", "fa-pinterest-square", "fa-plane", "fa-play", "fa-play-circle", "fa-play-circle-o", "fa-plug", "fa-plus", "fa-plus-circle", "fa-plus-square", "fa-plus-square-o", "fa-podcast", "fa-power-off", "fa-print", "fa-product-hunt", "fa-puzzle-piece", "fa-qq", "fa-qrcode", "fa-question", "fa-question-circle", "fa-question-circle-o", "fa-quora", "fa-quote-left", "fa-quote-right", "fa-ra", "fa-random", "fa-ravelry", "fa-rebel", "fa-recycle", "fa-reddit", "fa-reddit-alien", "fa-reddit-square", "fa-refresh", "fa-registered", "fa-remove", "fa-renren", "fa-reorder", "fa-repeat", "fa-reply", "fa-reply-all", "fa-resistance", "fa-retweet", "fa-rmb", "fa-road", "fa-rocket", "fa-rotate-left", "fa-rotate-right", "fa-rouble", "fa-rss", "fa-rss-square", "fa-rub", "fa-ruble", "fa-rupee", "fa-s15", "fa-safari", "fa-save", "fa-scissors", "fa-scribd", "fa-search", "fa-search-minus", "fa-search-plus", "fa-sellsy", "fa-send", "fa-send-o", "fa-server", "fa-share", "fa-share-alt", "fa-share-alt-square", "fa-share-square", "fa-share-square-o", "fa-shekel", "fa-sheqel", "fa-shield", "fa-ship", "fa-shirtsinbulk", "fa-shopping-bag", "fa-shopping-basket", "fa-shopping-cart", "fa-shower", "fa-sign-in", "fa-sign-language", "fa-sign-out", "fa-signal", "fa-signing", "fa-simplybuilt", "fa-sitemap", "fa-skyatlas", "fa-skype", "fa-slack", "fa-sliders", "fa-slideshare", "fa-smile-o", "fa-snapchat", "fa-snapchat-ghost", "fa-snapchat-square", "fa-snowflake-o", "fa-soccer-ball-o", "fa-sort", "fa-sort-alpha-asc", "fa-sort-alpha-desc", "fa-sort-amount-asc", "fa-sort-amount-desc", "fa-sort-asc", "fa-sort-desc", "fa-sort-down", "fa-sort-numeric-asc", "fa-sort-numeric-desc", "fa-sort-up", "fa-soundcloud", "fa-space-shuttle", "fa-spinner", "fa-spoon", "fa-spotify", "fa-square", "fa-square-o", "fa-stack-exchange", "fa-stack-overflow", "fa-star", "fa-star-half", "fa-star-half-empty", "fa-star-half-full", "fa-star-half-o", "fa-star-o", "fa-steam", "fa-steam-square", "fa-step-backward", "fa-step-forward", "fa-stethoscope", "fa-sticky-note", "fa-sticky-note-o", "fa-stop", "fa-stop-circle", "fa-stop-circle-o", "fa-street-view", "fa-strikethrough", "fa-stumbleupon", "fa-stumbleupon-circle", "fa-subscript", "fa-subway", "fa-suitcase", "fa-sun-o", "fa-superpowers", "fa-superscript", "fa-support", "fa-table", "fa-tablet", "fa-tachometer", "fa-tag", "fa-tags", "fa-tasks", "fa-taxi", "fa-telegram", "fa-television", "fa-tencent-weibo", "fa-terminal", "fa-text-height", "fa-text-width", "fa-th", "fa-th-large", "fa-th-list", "fa-themeisle", "fa-thermometer", "fa-thermometer-0", "fa-thermometer-1", "fa-thermometer-2", "fa-thermometer-3", "fa-thermometer-4", "fa-thermometer-empty", "fa-thermometer-full", "fa-thermometer-half", "fa-thermometer-quarter", "fa-thermometer-three-quarters", "fa-thumb-tack", "fa-thumbs-down", "fa-thumbs-o-down", "fa-thumbs-o-up", "fa-thumbs-up", "fa-ticket", "fa-times", "fa-times-circle", "fa-times-circle-o", "fa-times-rectangle", "fa-times-rectangle-o", "fa-tint", "fa-toggle-down", "fa-toggle-left", "fa-toggle-off", "fa-toggle-on", "fa-toggle-right", "fa-toggle-up", "fa-trademark", "fa-train", "fa-transgender", "fa-transgender-alt", "fa-trash", "fa-trash-o", "fa-tree", "fa-trello", "fa-tripadvisor", "fa-trophy", "fa-truck", "fa-try", "fa-tty", "fa-tumblr", "fa-tumblr-square", "fa-turkish-lira", "fa-tv", "fa-twitch", "fa-twitter", "fa-twitter-square", "fa-umbrella", "fa-underline", "fa-undo", "fa-universal-access", "fa-university", "fa-unlink", "fa-unlock", "fa-unlock-alt", "fa-unsorted", "fa-upload", "fa-usb", "fa-usd", "fa-user", "fa-user-circle", "fa-user-circle-o", "fa-user-md", "fa-user-o", "fa-user-plus", "fa-user-secret", "fa-user-times", "fa-users", "fa-vcard", "fa-vcard-o", "fa-venus", "fa-venus-double", "fa-venus-mars", "fa-viacoin", "fa-viadeo", "fa-viadeo-square", "fa-video-camera", "fa-vimeo", "fa-vimeo-square", "fa-vine", "fa-vk", "fa-volume-control-phone", "fa-volume-down", "fa-volume-off", "fa-volume-up", "fa-warning", "fa-wechat", "fa-weibo", "fa-weixin", "fa-whatsapp", "fa-wheelchair", "fa-wheelchair-alt", "fa-wifi", "fa-wikipedia-w", "fa-window-close", "fa-window-close-o", "fa-window-maximize", "fa-window-minimize", "fa-window-restore", "fa-windows", "fa-won", "fa-wordpress", "fa-wpbeginner", "fa-wpexplorer", "fa-wpforms", "fa-wrench", "fa-xing", "fa-xing-square", "fa-y-combinator", "fa-y-combinator-square", "fa-yahoo", "fa-yc", "fa-yc-square", "fa-yelp", "fa-yen", "fa-yoast", "fa-youtube", "fa-youtube-play", "fa-youtube-square" ]; + c.defaultOptions = a.extend(c.defaultOptions, { + icons: [ { + title: "fab fa-500px", + searchTerms: [] + }, { + title: "fab fa-accessible-icon", + searchTerms: [ "accessibility", "wheelchair", "handicap", "person", "wheelchair-alt" ] + }, { + title: "fab fa-accusoft", + searchTerms: [] + }, { + title: "fas fa-address-book", + searchTerms: [] + }, { + title: "far fa-address-book", + searchTerms: [] + }, { + title: "fas fa-address-card", + searchTerms: [] + }, { + title: "far fa-address-card", + searchTerms: [] + }, { + title: "fas fa-adjust", + searchTerms: [ "contrast" ] + }, { + title: "fab fa-adn", + searchTerms: [] + }, { + title: "fab fa-adversal", + searchTerms: [] + }, { + title: "fab fa-affiliatetheme", + searchTerms: [] + }, { + title: "fab fa-algolia", + searchTerms: [] + }, { + title: "fas fa-align-center", + searchTerms: [ "middle", "text" ] + }, { + title: "fas fa-align-justify", + searchTerms: [ "text" ] + }, { + title: "fas fa-align-left", + searchTerms: [ "text" ] + }, { + title: "fas fa-align-right", + searchTerms: [ "text" ] + }, { + title: "fab fa-amazon", + searchTerms: [] + }, { + title: "fab fa-amazon-pay", + searchTerms: [] + }, { + title: "fas fa-ambulance", + searchTerms: [ "vehicle", "support", "help" ] + }, { + title: "fas fa-american-sign-language-interpreting", + searchTerms: [] + }, { + title: "fab fa-amilia", + searchTerms: [] + }, { + title: "fas fa-anchor", + searchTerms: [ "link" ] + }, { + title: "fab fa-android", + searchTerms: [ "robot" ] + }, { + title: "fab fa-angellist", + searchTerms: [] + }, { + title: "fas fa-angle-double-down", + searchTerms: [ "arrows" ] + }, { + title: "fas fa-angle-double-left", + searchTerms: [ "laquo", "quote", "previous", "back", "arrows" ] + }, { + title: "fas fa-angle-double-right", + searchTerms: [ "raquo", "quote", "next", "forward", "arrows" ] + }, { + title: "fas fa-angle-double-up", + searchTerms: [ "arrows" ] + }, { + title: "fas fa-angle-down", + searchTerms: [ "arrow" ] + }, { + title: "fas fa-angle-left", + searchTerms: [ "previous", "back", "arrow" ] + }, { + title: "fas fa-angle-right", + searchTerms: [ "next", "forward", "arrow" ] + }, { + title: "fas fa-angle-up", + searchTerms: [ "arrow" ] + }, { + title: "fab fa-angrycreative", + searchTerms: [] + }, { + title: "fab fa-angular", + searchTerms: [] + }, { + title: "fab fa-app-store", + searchTerms: [] + }, { + title: "fab fa-app-store-ios", + searchTerms: [] + }, { + title: "fab fa-apper", + searchTerms: [] + }, { + title: "fab fa-apple", + searchTerms: [ "osx", "food" ] + }, { + title: "fab fa-apple-pay", + searchTerms: [] + }, { + title: "fas fa-archive", + searchTerms: [ "box", "storage", "package" ] + }, { + title: "fas fa-arrow-alt-circle-down", + searchTerms: [ "download", "arrow-circle-o-down" ] + }, { + title: "far fa-arrow-alt-circle-down", + searchTerms: [ "download", "arrow-circle-o-down" ] + }, { + title: "fas fa-arrow-alt-circle-left", + searchTerms: [ "previous", "back", "arrow-circle-o-left" ] + }, { + title: "far fa-arrow-alt-circle-left", + searchTerms: [ "previous", "back", "arrow-circle-o-left" ] + }, { + title: "fas fa-arrow-alt-circle-right", + searchTerms: [ "next", "forward", "arrow-circle-o-right" ] + }, { + title: "far fa-arrow-alt-circle-right", + searchTerms: [ "next", "forward", "arrow-circle-o-right" ] + }, { + title: "fas fa-arrow-alt-circle-up", + searchTerms: [ "arrow-circle-o-up" ] + }, { + title: "far fa-arrow-alt-circle-up", + searchTerms: [ "arrow-circle-o-up" ] + }, { + title: "fas fa-arrow-circle-down", + searchTerms: [ "download" ] + }, { + title: "fas fa-arrow-circle-left", + searchTerms: [ "previous", "back" ] + }, { + title: "fas fa-arrow-circle-right", + searchTerms: [ "next", "forward" ] + }, { + title: "fas fa-arrow-circle-up", + searchTerms: [] + }, { + title: "fas fa-arrow-down", + searchTerms: [ "download" ] + }, { + title: "fas fa-arrow-left", + searchTerms: [ "previous", "back" ] + }, { + title: "fas fa-arrow-right", + searchTerms: [ "next", "forward" ] + }, { + title: "fas fa-arrow-up", + searchTerms: [] + }, { + title: "fas fa-arrows-alt", + searchTerms: [ "expand", "enlarge", "fullscreen", "bigger", "move", "reorder", "resize", "arrow", "arrows" ] + }, { + title: "fas fa-arrows-alt-h", + searchTerms: [ "resize", "arrows-h" ] + }, { + title: "fas fa-arrows-alt-v", + searchTerms: [ "resize", "arrows-v" ] + }, { + title: "fas fa-assistive-listening-systems", + searchTerms: [] + }, { + title: "fas fa-asterisk", + searchTerms: [ "details" ] + }, { + title: "fab fa-asymmetrik", + searchTerms: [] + }, { + title: "fas fa-at", + searchTerms: [ "email", "e-mail" ] + }, { + title: "fab fa-audible", + searchTerms: [] + }, { + title: "fas fa-audio-description", + searchTerms: [] + }, { + title: "fab fa-autoprefixer", + searchTerms: [] + }, { + title: "fab fa-avianex", + searchTerms: [] + }, { + title: "fab fa-aviato", + searchTerms: [] + }, { + title: "fab fa-aws", + searchTerms: [] + }, { + title: "fas fa-backward", + searchTerms: [ "rewind", "previous" ] + }, { + title: "fas fa-balance-scale", + searchTerms: [] + }, { + title: "fas fa-ban", + searchTerms: [ "delete", "remove", "trash", "hide", "block", "stop", "abort", "cancel", "ban", "prohibit" ] + }, { + title: "fas fa-band-aid", + searchTerms: [ "bandage", "ouch", "boo boo" ] + }, { + title: "fab fa-bandcamp", + searchTerms: [] + }, { + title: "fas fa-barcode", + searchTerms: [ "scan" ] + }, { + title: "fas fa-bars", + searchTerms: [ "menu", "drag", "reorder", "settings", "list", "ul", "ol", "checklist", "todo", "list", "hamburger" ] + }, { + title: "fas fa-baseball-ball", + searchTerms: [] + }, { + title: "fas fa-basketball-ball", + searchTerms: [] + }, { + title: "fas fa-bath", + searchTerms: [] + }, { + title: "fas fa-battery-empty", + searchTerms: [ "power", "status" ] + }, { + title: "fas fa-battery-full", + searchTerms: [ "power", "status" ] + }, { + title: "fas fa-battery-half", + searchTerms: [ "power", "status" ] + }, { + title: "fas fa-battery-quarter", + searchTerms: [ "power", "status" ] + }, { + title: "fas fa-battery-three-quarters", + searchTerms: [ "power", "status" ] + }, { + title: "fas fa-bed", + searchTerms: [ "travel" ] + }, { + title: "fas fa-beer", + searchTerms: [ "alcohol", "stein", "drink", "mug", "bar", "liquor" ] + }, { + title: "fab fa-behance", + searchTerms: [] + }, { + title: "fab fa-behance-square", + searchTerms: [] + }, { + title: "fas fa-bell", + searchTerms: [ "alert", "reminder", "notification" ] + }, { + title: "far fa-bell", + searchTerms: [ "alert", "reminder", "notification" ] + }, { + title: "fas fa-bell-slash", + searchTerms: [] + }, { + title: "far fa-bell-slash", + searchTerms: [] + }, { + title: "fas fa-bicycle", + searchTerms: [ "vehicle", "bike", "gears" ] + }, { + title: "fab fa-bimobject", + searchTerms: [] + }, { + title: "fas fa-binoculars", + searchTerms: [] + }, { + title: "fas fa-birthday-cake", + searchTerms: [] + }, { + title: "fab fa-bitbucket", + searchTerms: [ "git", "bitbucket-square" ] + }, { + title: "fab fa-bitcoin", + searchTerms: [] + }, { + title: "fab fa-bity", + searchTerms: [] + }, { + title: "fab fa-black-tie", + searchTerms: [] + }, { + title: "fab fa-blackberry", + searchTerms: [] + }, { + title: "fas fa-blind", + searchTerms: [] + }, { + title: "fab fa-blogger", + searchTerms: [] + }, { + title: "fab fa-blogger-b", + searchTerms: [] + }, { + title: "fab fa-bluetooth", + searchTerms: [] + }, { + title: "fab fa-bluetooth-b", + searchTerms: [] + }, { + title: "fas fa-bold", + searchTerms: [] + }, { + title: "fas fa-bolt", + searchTerms: [ "lightning", "weather" ] + }, { + title: "fas fa-bomb", + searchTerms: [] + }, { + title: "fas fa-book", + searchTerms: [ "read", "documentation" ] + }, { + title: "fas fa-bookmark", + searchTerms: [ "save" ] + }, { + title: "far fa-bookmark", + searchTerms: [ "save" ] + }, { + title: "fas fa-bowling-ball", + searchTerms: [] + }, { + title: "fas fa-box", + searchTerms: [] + }, { + title: "fas fa-boxes", + searchTerms: [] + }, { + title: "fas fa-braille", + searchTerms: [] + }, { + title: "fas fa-briefcase", + searchTerms: [ "work", "business", "office", "luggage", "bag" ] + }, { + title: "fab fa-btc", + searchTerms: [] + }, { + title: "fas fa-bug", + searchTerms: [ "report", "insect" ] + }, { + title: "fas fa-building", + searchTerms: [ "work", "business", "apartment", "office", "company" ] + }, { + title: "far fa-building", + searchTerms: [ "work", "business", "apartment", "office", "company" ] + }, { + title: "fas fa-bullhorn", + searchTerms: [ "announcement", "share", "broadcast", "louder", "megaphone" ] + }, { + title: "fas fa-bullseye", + searchTerms: [ "target" ] + }, { + title: "fab fa-buromobelexperte", + searchTerms: [] + }, { + title: "fas fa-bus", + searchTerms: [ "vehicle" ] + }, { + title: "fab fa-buysellads", + searchTerms: [] + }, { + title: "fas fa-calculator", + searchTerms: [] + }, { + title: "fas fa-calendar", + searchTerms: [ "date", "time", "when", "event", "calendar-o" ] + }, { + title: "far fa-calendar", + searchTerms: [ "date", "time", "when", "event", "calendar-o" ] + }, { + title: "fas fa-calendar-alt", + searchTerms: [ "date", "time", "when", "event", "calendar" ] + }, { + title: "far fa-calendar-alt", + searchTerms: [ "date", "time", "when", "event", "calendar" ] + }, { + title: "fas fa-calendar-check", + searchTerms: [ "ok" ] + }, { + title: "far fa-calendar-check", + searchTerms: [ "ok" ] + }, { + title: "fas fa-calendar-minus", + searchTerms: [] + }, { + title: "far fa-calendar-minus", + searchTerms: [] + }, { + title: "fas fa-calendar-plus", + searchTerms: [] + }, { + title: "far fa-calendar-plus", + searchTerms: [] + }, { + title: "fas fa-calendar-times", + searchTerms: [] + }, { + title: "far fa-calendar-times", + searchTerms: [] + }, { + title: "fas fa-camera", + searchTerms: [ "photo", "picture", "record" ] + }, { + title: "fas fa-camera-retro", + searchTerms: [ "photo", "picture", "record" ] + }, { + title: "fas fa-car", + searchTerms: [ "vehicle" ] + }, { + title: "fas fa-caret-down", + searchTerms: [ "more", "dropdown", "menu", "triangle down", "arrow" ] + }, { + title: "fas fa-caret-left", + searchTerms: [ "previous", "back", "triangle left", "arrow" ] + }, { + title: "fas fa-caret-right", + searchTerms: [ "next", "forward", "triangle right", "arrow" ] + }, { + title: "fas fa-caret-square-down", + searchTerms: [ "more", "dropdown", "menu", "caret-square-o-down" ] + }, { + title: "far fa-caret-square-down", + searchTerms: [ "more", "dropdown", "menu", "caret-square-o-down" ] + }, { + title: "fas fa-caret-square-left", + searchTerms: [ "previous", "back", "caret-square-o-left" ] + }, { + title: "far fa-caret-square-left", + searchTerms: [ "previous", "back", "caret-square-o-left" ] + }, { + title: "fas fa-caret-square-right", + searchTerms: [ "next", "forward", "caret-square-o-right" ] + }, { + title: "far fa-caret-square-right", + searchTerms: [ "next", "forward", "caret-square-o-right" ] + }, { + title: "fas fa-caret-square-up", + searchTerms: [ "caret-square-o-up" ] + }, { + title: "far fa-caret-square-up", + searchTerms: [ "caret-square-o-up" ] + }, { + title: "fas fa-caret-up", + searchTerms: [ "triangle up", "arrow" ] + }, { + title: "fas fa-cart-arrow-down", + searchTerms: [ "shopping" ] + }, { + title: "fas fa-cart-plus", + searchTerms: [ "add", "shopping" ] + }, { + title: "fab fa-cc-amazon-pay", + searchTerms: [] + }, { + title: "fab fa-cc-amex", + searchTerms: [ "amex" ] + }, { + title: "fab fa-cc-apple-pay", + searchTerms: [] + }, { + title: "fab fa-cc-diners-club", + searchTerms: [] + }, { + title: "fab fa-cc-discover", + searchTerms: [] + }, { + title: "fab fa-cc-jcb", + searchTerms: [] + }, { + title: "fab fa-cc-mastercard", + searchTerms: [] + }, { + title: "fab fa-cc-paypal", + searchTerms: [] + }, { + title: "fab fa-cc-stripe", + searchTerms: [] + }, { + title: "fab fa-cc-visa", + searchTerms: [] + }, { + title: "fab fa-centercode", + searchTerms: [] + }, { + title: "fas fa-certificate", + searchTerms: [ "badge", "star" ] + }, { + title: "fas fa-chart-area", + searchTerms: [ "graph", "analytics", "area-chart" ] + }, { + title: "fas fa-chart-bar", + searchTerms: [ "graph", "analytics", "bar-chart" ] + }, { + title: "far fa-chart-bar", + searchTerms: [ "graph", "analytics", "bar-chart" ] + }, { + title: "fas fa-chart-line", + searchTerms: [ "graph", "analytics", "line-chart", "dashboard" ] + }, { + title: "fas fa-chart-pie", + searchTerms: [ "graph", "analytics", "pie-chart" ] + }, { + title: "fas fa-check", + searchTerms: [ "checkmark", "done", "todo", "agree", "accept", "confirm", "tick", "ok", "select" ] + }, { + title: "fas fa-check-circle", + searchTerms: [ "todo", "done", "agree", "accept", "confirm", "ok", "select" ] + }, { + title: "far fa-check-circle", + searchTerms: [ "todo", "done", "agree", "accept", "confirm", "ok", "select" ] + }, { + title: "fas fa-check-square", + searchTerms: [ "checkmark", "done", "todo", "agree", "accept", "confirm", "ok", "select" ] + }, { + title: "far fa-check-square", + searchTerms: [ "checkmark", "done", "todo", "agree", "accept", "confirm", "ok", "select" ] + }, { + title: "fas fa-chess", + searchTerms: [] + }, { + title: "fas fa-chess-bishop", + searchTerms: [] + }, { + title: "fas fa-chess-board", + searchTerms: [] + }, { + title: "fas fa-chess-king", + searchTerms: [] + }, { + title: "fas fa-chess-knight", + searchTerms: [] + }, { + title: "fas fa-chess-pawn", + searchTerms: [] + }, { + title: "fas fa-chess-queen", + searchTerms: [] + }, { + title: "fas fa-chess-rook", + searchTerms: [] + }, { + title: "fas fa-chevron-circle-down", + searchTerms: [ "more", "dropdown", "menu", "arrow" ] + }, { + title: "fas fa-chevron-circle-left", + searchTerms: [ "previous", "back", "arrow" ] + }, { + title: "fas fa-chevron-circle-right", + searchTerms: [ "next", "forward", "arrow" ] + }, { + title: "fas fa-chevron-circle-up", + searchTerms: [ "arrow" ] + }, { + title: "fas fa-chevron-down", + searchTerms: [] + }, { + title: "fas fa-chevron-left", + searchTerms: [ "bracket", "previous", "back" ] + }, { + title: "fas fa-chevron-right", + searchTerms: [ "bracket", "next", "forward" ] + }, { + title: "fas fa-chevron-up", + searchTerms: [] + }, { + title: "fas fa-child", + searchTerms: [] + }, { + title: "fab fa-chrome", + searchTerms: [ "browser" ] + }, { + title: "fas fa-circle", + searchTerms: [ "dot", "notification", "circle-thin" ] + }, { + title: "far fa-circle", + searchTerms: [ "dot", "notification", "circle-thin" ] + }, { + title: "fas fa-circle-notch", + searchTerms: [ "circle-o-notch" ] + }, { + title: "fas fa-clipboard", + searchTerms: [ "paste" ] + }, { + title: "far fa-clipboard", + searchTerms: [ "paste" ] + }, { + title: "fas fa-clipboard-check", + searchTerms: [] + }, { + title: "fas fa-clipboard-list", + searchTerms: [] + }, { + title: "fas fa-clock", + searchTerms: [ "watch", "timer", "late", "timestamp", "date" ] + }, { + title: "far fa-clock", + searchTerms: [ "watch", "timer", "late", "timestamp", "date" ] + }, { + title: "fas fa-clone", + searchTerms: [ "copy" ] + }, { + title: "far fa-clone", + searchTerms: [ "copy" ] + }, { + title: "fas fa-closed-captioning", + searchTerms: [ "cc" ] + }, { + title: "far fa-closed-captioning", + searchTerms: [ "cc" ] + }, { + title: "fas fa-cloud", + searchTerms: [ "save" ] + }, { + title: "fas fa-cloud-download-alt", + searchTerms: [ "cloud-download" ] + }, { + title: "fas fa-cloud-upload-alt", + searchTerms: [ "cloud-upload" ] + }, { + title: "fab fa-cloudscale", + searchTerms: [] + }, { + title: "fab fa-cloudsmith", + searchTerms: [] + }, { + title: "fab fa-cloudversify", + searchTerms: [] + }, { + title: "fas fa-code", + searchTerms: [ "html", "brackets" ] + }, { + title: "fas fa-code-branch", + searchTerms: [ "git", "fork", "vcs", "svn", "github", "rebase", "version", "branch", "code-fork" ] + }, { + title: "fab fa-codepen", + searchTerms: [] + }, { + title: "fab fa-codiepie", + searchTerms: [] + }, { + title: "fas fa-coffee", + searchTerms: [ "morning", "mug", "breakfast", "tea", "drink", "cafe" ] + }, { + title: "fas fa-cog", + searchTerms: [ "settings" ] + }, { + title: "fas fa-cogs", + searchTerms: [ "settings", "gears" ] + }, { + title: "fas fa-columns", + searchTerms: [ "split", "panes", "dashboard" ] + }, { + title: "fas fa-comment", + searchTerms: [ "speech", "notification", "note", "chat", "bubble", "feedback", "message", "texting", "sms", "conversation" ] + }, { + title: "far fa-comment", + searchTerms: [ "speech", "notification", "note", "chat", "bubble", "feedback", "message", "texting", "sms", "conversation" ] + }, { + title: "fas fa-comment-alt", + searchTerms: [ "speech", "notification", "note", "chat", "bubble", "feedback", "message", "texting", "sms", "conversation", "commenting", "commenting" ] + }, { + title: "far fa-comment-alt", + searchTerms: [ "speech", "notification", "note", "chat", "bubble", "feedback", "message", "texting", "sms", "conversation", "commenting", "commenting" ] + }, { + title: "fas fa-comments", + searchTerms: [ "speech", "notification", "note", "chat", "bubble", "feedback", "message", "texting", "sms", "conversation" ] + }, { + title: "far fa-comments", + searchTerms: [ "speech", "notification", "note", "chat", "bubble", "feedback", "message", "texting", "sms", "conversation" ] + }, { + title: "fas fa-compass", + searchTerms: [ "safari", "directory", "menu", "location" ] + }, { + title: "far fa-compass", + searchTerms: [ "safari", "directory", "menu", "location" ] + }, { + title: "fas fa-compress", + searchTerms: [ "collapse", "combine", "contract", "merge", "smaller" ] + }, { + title: "fab fa-connectdevelop", + searchTerms: [] + }, { + title: "fab fa-contao", + searchTerms: [] + }, { + title: "fas fa-copy", + searchTerms: [ "duplicate", "clone", "file", "files-o" ] + }, { + title: "far fa-copy", + searchTerms: [ "duplicate", "clone", "file", "files-o" ] + }, { + title: "fas fa-copyright", + searchTerms: [] + }, { + title: "far fa-copyright", + searchTerms: [] + }, { + title: "fab fa-cpanel", + searchTerms: [] + }, { + title: "fab fa-creative-commons", + searchTerms: [] + }, { + title: "fas fa-credit-card", + searchTerms: [ "money", "buy", "debit", "checkout", "purchase", "payment", "credit-card-alt" ] + }, { + title: "far fa-credit-card", + searchTerms: [ "money", "buy", "debit", "checkout", "purchase", "payment", "credit-card-alt" ] + }, { + title: "fas fa-crop", + searchTerms: [ "design" ] + }, { + title: "fas fa-crosshairs", + searchTerms: [ "picker", "gpd" ] + }, { + title: "fab fa-css3", + searchTerms: [ "code" ] + }, { + title: "fab fa-css3-alt", + searchTerms: [] + }, { + title: "fas fa-cube", + searchTerms: [ "package" ] + }, { + title: "fas fa-cubes", + searchTerms: [ "packages" ] + }, { + title: "fas fa-cut", + searchTerms: [ "scissors", "scissors" ] + }, { + title: "fab fa-cuttlefish", + searchTerms: [] + }, { + title: "fab fa-d-and-d", + searchTerms: [] + }, { + title: "fab fa-dashcube", + searchTerms: [] + }, { + title: "fas fa-database", + searchTerms: [] + }, { + title: "fas fa-deaf", + searchTerms: [] + }, { + title: "fab fa-delicious", + searchTerms: [] + }, { + title: "fab fa-deploydog", + searchTerms: [] + }, { + title: "fab fa-deskpro", + searchTerms: [] + }, { + title: "fas fa-desktop", + searchTerms: [ "monitor", "screen", "desktop", "computer", "demo", "device", "pc" ] + }, { + title: "fab fa-deviantart", + searchTerms: [] + }, { + title: "fab fa-digg", + searchTerms: [] + }, { + title: "fab fa-digital-ocean", + searchTerms: [] + }, { + title: "fab fa-discord", + searchTerms: [] + }, { + title: "fab fa-discourse", + searchTerms: [] + }, { + title: "fas fa-dna", + searchTerms: [ "double helix", "helix" ] + }, { + title: "fab fa-dochub", + searchTerms: [] + }, { + title: "fab fa-docker", + searchTerms: [] + }, { + title: "fas fa-dollar-sign", + searchTerms: [ "usd", "price" ] + }, { + title: "fas fa-dolly", + searchTerms: [] + }, { + title: "fas fa-dolly-flatbed", + searchTerms: [] + }, { + title: "fas fa-dot-circle", + searchTerms: [ "target", "bullseye", "notification" ] + }, { + title: "far fa-dot-circle", + searchTerms: [ "target", "bullseye", "notification" ] + }, { + title: "fas fa-download", + searchTerms: [ "import" ] + }, { + title: "fab fa-draft2digital", + searchTerms: [] + }, { + title: "fab fa-dribbble", + searchTerms: [] + }, { + title: "fab fa-dribbble-square", + searchTerms: [] + }, { + title: "fab fa-dropbox", + searchTerms: [] + }, { + title: "fab fa-drupal", + searchTerms: [] + }, { + title: "fab fa-dyalog", + searchTerms: [] + }, { + title: "fab fa-earlybirds", + searchTerms: [] + }, { + title: "fab fa-edge", + searchTerms: [ "browser", "ie" ] + }, { + title: "fas fa-edit", + searchTerms: [ "write", "edit", "update", "pencil", "pen" ] + }, { + title: "far fa-edit", + searchTerms: [ "write", "edit", "update", "pencil", "pen" ] + }, { + title: "fas fa-eject", + searchTerms: [] + }, { + title: "fab fa-elementor", + searchTerms: [] + }, { + title: "fas fa-ellipsis-h", + searchTerms: [ "dots" ] + }, { + title: "fas fa-ellipsis-v", + searchTerms: [ "dots" ] + }, { + title: "fab fa-ember", + searchTerms: [] + }, { + title: "fab fa-empire", + searchTerms: [] + }, { + title: "fas fa-envelope", + searchTerms: [ "email", "e-mail", "letter", "support", "mail", "message", "notification" ] + }, { + title: "far fa-envelope", + searchTerms: [ "email", "e-mail", "letter", "support", "mail", "message", "notification" ] + }, { + title: "fas fa-envelope-open", + searchTerms: [ "email", "e-mail", "letter", "support", "mail", "message", "notification" ] + }, { + title: "far fa-envelope-open", + searchTerms: [ "email", "e-mail", "letter", "support", "mail", "message", "notification" ] + }, { + title: "fas fa-envelope-square", + searchTerms: [ "email", "e-mail", "letter", "support", "mail", "message", "notification" ] + }, { + title: "fab fa-envira", + searchTerms: [ "leaf" ] + }, { + title: "fas fa-eraser", + searchTerms: [ "remove", "delete" ] + }, { + title: "fab fa-erlang", + searchTerms: [] + }, { + title: "fab fa-ethereum", + searchTerms: [] + }, { + title: "fab fa-etsy", + searchTerms: [] + }, { + title: "fas fa-euro-sign", + searchTerms: [ "eur", "eur" ] + }, { + title: "fas fa-exchange-alt", + searchTerms: [ "transfer", "arrows", "arrow", "exchange", "swap" ] + }, { + title: "fas fa-exclamation", + searchTerms: [ "warning", "error", "problem", "notification", "notify", "alert", "danger" ] + }, { + title: "fas fa-exclamation-circle", + searchTerms: [ "warning", "error", "problem", "notification", "notify", "alert", "danger" ] + }, { + title: "fas fa-exclamation-triangle", + searchTerms: [ "warning", "error", "problem", "notification", "notify", "alert", "danger" ] + }, { + title: "fas fa-expand", + searchTerms: [ "enlarge", "bigger", "resize" ] + }, { + title: "fas fa-expand-arrows-alt", + searchTerms: [ "enlarge", "bigger", "resize", "move", "arrows-alt" ] + }, { + title: "fab fa-expeditedssl", + searchTerms: [] + }, { + title: "fas fa-external-link-alt", + searchTerms: [ "open", "new", "external-link" ] + }, { + title: "fas fa-external-link-square-alt", + searchTerms: [ "open", "new", "external-link-square" ] + }, { + title: "fas fa-eye", + searchTerms: [ "show", "visible", "views" ] + }, { + title: "fas fa-eye-dropper", + searchTerms: [ "eyedropper" ] + }, { + title: "fas fa-eye-slash", + searchTerms: [ "toggle", "show", "hide", "visible", "visiblity", "views" ] + }, { + title: "far fa-eye-slash", + searchTerms: [ "toggle", "show", "hide", "visible", "visiblity", "views" ] + }, { + title: "fab fa-facebook", + searchTerms: [ "social network", "facebook-official" ] + }, { + title: "fab fa-facebook-f", + searchTerms: [ "facebook" ] + }, { + title: "fab fa-facebook-messenger", + searchTerms: [] + }, { + title: "fab fa-facebook-square", + searchTerms: [ "social network" ] + }, { + title: "fas fa-fast-backward", + searchTerms: [ "rewind", "previous", "beginning", "start", "first" ] + }, { + title: "fas fa-fast-forward", + searchTerms: [ "next", "end", "last" ] + }, { + title: "fas fa-fax", + searchTerms: [] + }, { + title: "fas fa-female", + searchTerms: [ "woman", "human", "user", "person", "profile" ] + }, { + title: "fas fa-fighter-jet", + searchTerms: [ "fly", "plane", "airplane", "quick", "fast", "travel" ] + }, { + title: "fas fa-file", + searchTerms: [ "new", "page", "pdf", "document" ] + }, { + title: "far fa-file", + searchTerms: [ "new", "page", "pdf", "document" ] + }, { + title: "fas fa-file-alt", + searchTerms: [ "new", "page", "pdf", "document", "file-text" ] + }, { + title: "far fa-file-alt", + searchTerms: [ "new", "page", "pdf", "document", "file-text" ] + }, { + title: "fas fa-file-archive", + searchTerms: [] + }, { + title: "far fa-file-archive", + searchTerms: [] + }, { + title: "fas fa-file-audio", + searchTerms: [] + }, { + title: "far fa-file-audio", + searchTerms: [] + }, { + title: "fas fa-file-code", + searchTerms: [] + }, { + title: "far fa-file-code", + searchTerms: [] + }, { + title: "fas fa-file-excel", + searchTerms: [] + }, { + title: "far fa-file-excel", + searchTerms: [] + }, { + title: "fas fa-file-image", + searchTerms: [] + }, { + title: "far fa-file-image", + searchTerms: [] + }, { + title: "fas fa-file-pdf", + searchTerms: [] + }, { + title: "far fa-file-pdf", + searchTerms: [] + }, { + title: "fas fa-file-powerpoint", + searchTerms: [] + }, { + title: "far fa-file-powerpoint", + searchTerms: [] + }, { + title: "fas fa-file-video", + searchTerms: [] + }, { + title: "far fa-file-video", + searchTerms: [] + }, { + title: "fas fa-file-word", + searchTerms: [] + }, { + title: "far fa-file-word", + searchTerms: [] + }, { + title: "fas fa-film", + searchTerms: [ "movie" ] + }, { + title: "fas fa-filter", + searchTerms: [ "funnel", "options" ] + }, { + title: "fas fa-fire", + searchTerms: [ "flame", "hot", "popular" ] + }, { + title: "fas fa-fire-extinguisher", + searchTerms: [] + }, { + title: "fab fa-firefox", + searchTerms: [ "browser" ] + }, { + title: "fas fa-first-aid", + searchTerms: [] + }, { + title: "fab fa-first-order", + searchTerms: [] + }, { + title: "fab fa-firstdraft", + searchTerms: [] + }, { + title: "fas fa-flag", + searchTerms: [ "report", "notification", "notify" ] + }, { + title: "far fa-flag", + searchTerms: [ "report", "notification", "notify" ] + }, { + title: "fas fa-flag-checkered", + searchTerms: [ "report", "notification", "notify" ] + }, { + title: "fas fa-flask", + searchTerms: [ "science", "beaker", "experimental", "labs" ] + }, { + title: "fab fa-flickr", + searchTerms: [] + }, { + title: "fab fa-flipboard", + searchTerms: [] + }, { + title: "fab fa-fly", + searchTerms: [] + }, { + title: "fas fa-folder", + searchTerms: [] + }, { + title: "far fa-folder", + searchTerms: [] + }, { + title: "fas fa-folder-open", + searchTerms: [] + }, { + title: "far fa-folder-open", + searchTerms: [] + }, { + title: "fas fa-font", + searchTerms: [ "text" ] + }, { + title: "fab fa-font-awesome", + searchTerms: [ "meanpath" ] + }, { + title: "fab fa-font-awesome-alt", + searchTerms: [] + }, { + title: "fab fa-font-awesome-flag", + searchTerms: [] + }, { + title: "fab fa-fonticons", + searchTerms: [] + }, { + title: "fab fa-fonticons-fi", + searchTerms: [] + }, { + title: "fas fa-football-ball", + searchTerms: [] + }, { + title: "fab fa-fort-awesome", + searchTerms: [ "castle" ] + }, { + title: "fab fa-fort-awesome-alt", + searchTerms: [ "castle" ] + }, { + title: "fab fa-forumbee", + searchTerms: [] + }, { + title: "fas fa-forward", + searchTerms: [ "forward", "next" ] + }, { + title: "fab fa-foursquare", + searchTerms: [] + }, { + title: "fab fa-free-code-camp", + searchTerms: [] + }, { + title: "fab fa-freebsd", + searchTerms: [] + }, { + title: "fas fa-frown", + searchTerms: [ "face", "emoticon", "sad", "disapprove", "rating" ] + }, { + title: "far fa-frown", + searchTerms: [ "face", "emoticon", "sad", "disapprove", "rating" ] + }, { + title: "fas fa-futbol", + searchTerms: [] + }, { + title: "far fa-futbol", + searchTerms: [] + }, { + title: "fas fa-gamepad", + searchTerms: [ "controller" ] + }, { + title: "fas fa-gavel", + searchTerms: [ "judge", "lawyer", "opinion", "hammer" ] + }, { + title: "fas fa-gem", + searchTerms: [ "diamond" ] + }, { + title: "far fa-gem", + searchTerms: [ "diamond" ] + }, { + title: "fas fa-genderless", + searchTerms: [] + }, { + title: "fab fa-get-pocket", + searchTerms: [] + }, { + title: "fab fa-gg", + searchTerms: [] + }, { + title: "fab fa-gg-circle", + searchTerms: [] + }, { + title: "fas fa-gift", + searchTerms: [ "present" ] + }, { + title: "fab fa-git", + searchTerms: [] + }, { + title: "fab fa-git-square", + searchTerms: [] + }, { + title: "fab fa-github", + searchTerms: [ "octocat" ] + }, { + title: "fab fa-github-alt", + searchTerms: [ "octocat" ] + }, { + title: "fab fa-github-square", + searchTerms: [ "octocat" ] + }, { + title: "fab fa-gitkraken", + searchTerms: [] + }, { + title: "fab fa-gitlab", + searchTerms: [ "Axosoft" ] + }, { + title: "fab fa-gitter", + searchTerms: [] + }, { + title: "fas fa-glass-martini", + searchTerms: [ "martini", "drink", "bar", "alcohol", "liquor", "glass" ] + }, { + title: "fab fa-glide", + searchTerms: [] + }, { + title: "fab fa-glide-g", + searchTerms: [] + }, { + title: "fas fa-globe", + searchTerms: [ "world", "planet", "map", "place", "travel", "earth", "global", "translate", "all", "language", "localize", "location", "coordinates", "country", "gps" ] + }, { + title: "fab fa-gofore", + searchTerms: [] + }, { + title: "fas fa-golf-ball", + searchTerms: [] + }, { + title: "fab fa-goodreads", + searchTerms: [] + }, { + title: "fab fa-goodreads-g", + searchTerms: [] + }, { + title: "fab fa-google", + searchTerms: [] + }, { + title: "fab fa-google-drive", + searchTerms: [] + }, { + title: "fab fa-google-play", + searchTerms: [] + }, { + title: "fab fa-google-plus", + searchTerms: [ "google-plus-circle", "google-plus-official" ] + }, { + title: "fab fa-google-plus-g", + searchTerms: [ "social network", "google-plus" ] + }, { + title: "fab fa-google-plus-square", + searchTerms: [ "social network" ] + }, { + title: "fab fa-google-wallet", + searchTerms: [] + }, { + title: "fas fa-graduation-cap", + searchTerms: [ "learning", "school", "student" ] + }, { + title: "fab fa-gratipay", + searchTerms: [ "heart", "like", "favorite", "love" ] + }, { + title: "fab fa-grav", + searchTerms: [] + }, { + title: "fab fa-gripfire", + searchTerms: [] + }, { + title: "fab fa-grunt", + searchTerms: [] + }, { + title: "fab fa-gulp", + searchTerms: [] + }, { + title: "fas fa-h-square", + searchTerms: [ "hospital", "hotel" ] + }, { + title: "fab fa-hacker-news", + searchTerms: [] + }, { + title: "fab fa-hacker-news-square", + searchTerms: [] + }, { + title: "fas fa-hand-lizard", + searchTerms: [] + }, { + title: "far fa-hand-lizard", + searchTerms: [] + }, { + title: "fas fa-hand-paper", + searchTerms: [ "stop" ] + }, { + title: "far fa-hand-paper", + searchTerms: [ "stop" ] + }, { + title: "fas fa-hand-peace", + searchTerms: [] + }, { + title: "far fa-hand-peace", + searchTerms: [] + }, { + title: "fas fa-hand-point-down", + searchTerms: [ "point", "finger", "hand-o-down" ] + }, { + title: "far fa-hand-point-down", + searchTerms: [ "point", "finger", "hand-o-down" ] + }, { + title: "fas fa-hand-point-left", + searchTerms: [ "point", "left", "previous", "back", "finger", "hand-o-left" ] + }, { + title: "far fa-hand-point-left", + searchTerms: [ "point", "left", "previous", "back", "finger", "hand-o-left" ] + }, { + title: "fas fa-hand-point-right", + searchTerms: [ "point", "right", "next", "forward", "finger", "hand-o-right" ] + }, { + title: "far fa-hand-point-right", + searchTerms: [ "point", "right", "next", "forward", "finger", "hand-o-right" ] + }, { + title: "fas fa-hand-point-up", + searchTerms: [ "point", "finger", "hand-o-up" ] + }, { + title: "far fa-hand-point-up", + searchTerms: [ "point", "finger", "hand-o-up" ] + }, { + title: "fas fa-hand-pointer", + searchTerms: [ "select" ] + }, { + title: "far fa-hand-pointer", + searchTerms: [ "select" ] + }, { + title: "fas fa-hand-rock", + searchTerms: [] + }, { + title: "far fa-hand-rock", + searchTerms: [] + }, { + title: "fas fa-hand-scissors", + searchTerms: [] + }, { + title: "far fa-hand-scissors", + searchTerms: [] + }, { + title: "fas fa-hand-spock", + searchTerms: [] + }, { + title: "far fa-hand-spock", + searchTerms: [] + }, { + title: "fas fa-handshake", + searchTerms: [] + }, { + title: "far fa-handshake", + searchTerms: [] + }, { + title: "fas fa-hashtag", + searchTerms: [] + }, { + title: "fas fa-hdd", + searchTerms: [ "harddrive", "hard drive", "storage", "save" ] + }, { + title: "far fa-hdd", + searchTerms: [ "harddrive", "hard drive", "storage", "save" ] + }, { + title: "fas fa-heading", + searchTerms: [ "header", "header" ] + }, { + title: "fas fa-headphones", + searchTerms: [ "sound", "listen", "music", "audio" ] + }, { + title: "fas fa-heart", + searchTerms: [ "love", "like", "favorite" ] + }, { + title: "far fa-heart", + searchTerms: [ "love", "like", "favorite" ] + }, { + title: "fas fa-heartbeat", + searchTerms: [ "ekg", "vital signs" ] + }, { + title: "fab fa-hips", + searchTerms: [] + }, { + title: "fab fa-hire-a-helper", + searchTerms: [] + }, { + title: "fas fa-history", + searchTerms: [] + }, { + title: "fas fa-hockey-puck", + searchTerms: [] + }, { + title: "fas fa-home", + searchTerms: [ "main", "house" ] + }, { + title: "fab fa-hooli", + searchTerms: [] + }, { + title: "fas fa-hospital", + searchTerms: [ "building", "medical center", "emergency room" ] + }, { + title: "far fa-hospital", + searchTerms: [ "building", "medical center", "emergency room" ] + }, { + title: "fas fa-hospital-symbol", + searchTerms: [] + }, { + title: "fab fa-hotjar", + searchTerms: [] + }, { + title: "fas fa-hourglass", + searchTerms: [] + }, { + title: "far fa-hourglass", + searchTerms: [] + }, { + title: "fas fa-hourglass-end", + searchTerms: [] + }, { + title: "fas fa-hourglass-half", + searchTerms: [] + }, { + title: "fas fa-hourglass-start", + searchTerms: [] + }, { + title: "fab fa-houzz", + searchTerms: [] + }, { + title: "fab fa-html5", + searchTerms: [] + }, { + title: "fab fa-hubspot", + searchTerms: [] + }, { + title: "fas fa-i-cursor", + searchTerms: [] + }, { + title: "fas fa-id-badge", + searchTerms: [] + }, { + title: "far fa-id-badge", + searchTerms: [] + }, { + title: "fas fa-id-card", + searchTerms: [] + }, { + title: "far fa-id-card", + searchTerms: [] + }, { + title: "fas fa-image", + searchTerms: [ "photo", "album", "picture", "picture" ] + }, { + title: "far fa-image", + searchTerms: [ "photo", "album", "picture", "picture" ] + }, { + title: "fas fa-images", + searchTerms: [ "photo", "album", "picture" ] + }, { + title: "far fa-images", + searchTerms: [ "photo", "album", "picture" ] + }, { + title: "fab fa-imdb", + searchTerms: [] + }, { + title: "fas fa-inbox", + searchTerms: [] + }, { + title: "fas fa-indent", + searchTerms: [] + }, { + title: "fas fa-industry", + searchTerms: [ "factory" ] + }, { + title: "fas fa-info", + searchTerms: [ "help", "information", "more", "details" ] + }, { + title: "fas fa-info-circle", + searchTerms: [ "help", "information", "more", "details" ] + }, { + title: "fab fa-instagram", + searchTerms: [] + }, { + title: "fab fa-internet-explorer", + searchTerms: [ "browser", "ie" ] + }, { + title: "fab fa-ioxhost", + searchTerms: [] + }, { + title: "fas fa-italic", + searchTerms: [ "italics" ] + }, { + title: "fab fa-itunes", + searchTerms: [] + }, { + title: "fab fa-itunes-note", + searchTerms: [] + }, { + title: "fab fa-jenkins", + searchTerms: [] + }, { + title: "fab fa-joget", + searchTerms: [] + }, { + title: "fab fa-joomla", + searchTerms: [] + }, { + title: "fab fa-js", + searchTerms: [] + }, { + title: "fab fa-js-square", + searchTerms: [] + }, { + title: "fab fa-jsfiddle", + searchTerms: [] + }, { + title: "fas fa-key", + searchTerms: [ "unlock", "password" ] + }, { + title: "fas fa-keyboard", + searchTerms: [ "type", "input" ] + }, { + title: "far fa-keyboard", + searchTerms: [ "type", "input" ] + }, { + title: "fab fa-keycdn", + searchTerms: [] + }, { + title: "fab fa-kickstarter", + searchTerms: [] + }, { + title: "fab fa-kickstarter-k", + searchTerms: [] + }, { + title: "fab fa-korvue", + searchTerms: [] + }, { + title: "fas fa-language", + searchTerms: [] + }, { + title: "fas fa-laptop", + searchTerms: [ "demo", "computer", "device", "pc" ] + }, { + title: "fab fa-laravel", + searchTerms: [] + }, { + title: "fab fa-lastfm", + searchTerms: [] + }, { + title: "fab fa-lastfm-square", + searchTerms: [] + }, { + title: "fas fa-leaf", + searchTerms: [ "eco", "nature", "plant" ] + }, { + title: "fab fa-leanpub", + searchTerms: [] + }, { + title: "fas fa-lemon", + searchTerms: [ "food" ] + }, { + title: "far fa-lemon", + searchTerms: [ "food" ] + }, { + title: "fab fa-less", + searchTerms: [] + }, { + title: "fas fa-level-down-alt", + searchTerms: [ "level-down" ] + }, { + title: "fas fa-level-up-alt", + searchTerms: [ "level-up" ] + }, { + title: "fas fa-life-ring", + searchTerms: [ "support" ] + }, { + title: "far fa-life-ring", + searchTerms: [ "support" ] + }, { + title: "fas fa-lightbulb", + searchTerms: [ "idea", "inspiration" ] + }, { + title: "far fa-lightbulb", + searchTerms: [ "idea", "inspiration" ] + }, { + title: "fab fa-line", + searchTerms: [] + }, { + title: "fas fa-link", + searchTerms: [ "chain" ] + }, { + title: "fab fa-linkedin", + searchTerms: [ "linkedin-square" ] + }, { + title: "fab fa-linkedin-in", + searchTerms: [ "linkedin" ] + }, { + title: "fab fa-linode", + searchTerms: [] + }, { + title: "fab fa-linux", + searchTerms: [ "tux" ] + }, { + title: "fas fa-lira-sign", + searchTerms: [ "try", "turkish", "try" ] + }, { + title: "fas fa-list", + searchTerms: [ "ul", "ol", "checklist", "finished", "completed", "done", "todo" ] + }, { + title: "fas fa-list-alt", + searchTerms: [ "ul", "ol", "checklist", "finished", "completed", "done", "todo" ] + }, { + title: "far fa-list-alt", + searchTerms: [ "ul", "ol", "checklist", "finished", "completed", "done", "todo" ] + }, { + title: "fas fa-list-ol", + searchTerms: [ "ul", "ol", "checklist", "list", "todo", "list", "numbers" ] + }, { + title: "fas fa-list-ul", + searchTerms: [ "ul", "ol", "checklist", "todo", "list" ] + }, { + title: "fas fa-location-arrow", + searchTerms: [ "map", "coordinates", "location", "address", "place", "where", "gps" ] + }, { + title: "fas fa-lock", + searchTerms: [ "protect", "admin", "security" ] + }, { + title: "fas fa-lock-open", + searchTerms: [ "protect", "admin", "password", "lock", "open" ] + }, { + title: "fas fa-long-arrow-alt-down", + searchTerms: [ "long-arrow-down" ] + }, { + title: "fas fa-long-arrow-alt-left", + searchTerms: [ "previous", "back", "long-arrow-left" ] + }, { + title: "fas fa-long-arrow-alt-right", + searchTerms: [ "long-arrow-right" ] + }, { + title: "fas fa-long-arrow-alt-up", + searchTerms: [ "long-arrow-up" ] + }, { + title: "fas fa-low-vision", + searchTerms: [] + }, { + title: "fab fa-lyft", + searchTerms: [] + }, { + title: "fab fa-magento", + searchTerms: [] + }, { + title: "fas fa-magic", + searchTerms: [ "wizard", "automatic", "autocomplete" ] + }, { + title: "fas fa-magnet", + searchTerms: [] + }, { + title: "fas fa-male", + searchTerms: [ "man", "human", "user", "person", "profile" ] + }, { + title: "fas fa-map", + searchTerms: [] + }, { + title: "far fa-map", + searchTerms: [] + }, { + title: "fas fa-map-marker", + searchTerms: [ "map", "pin", "location", "coordinates", "localize", "address", "travel", "where", "place", "gps" ] + }, { + title: "fas fa-map-marker-alt", + searchTerms: [ "map-marker", "gps" ] + }, { + title: "fas fa-map-pin", + searchTerms: [] + }, { + title: "fas fa-map-signs", + searchTerms: [] + }, { + title: "fas fa-mars", + searchTerms: [ "male" ] + }, { + title: "fas fa-mars-double", + searchTerms: [] + }, { + title: "fas fa-mars-stroke", + searchTerms: [] + }, { + title: "fas fa-mars-stroke-h", + searchTerms: [] + }, { + title: "fas fa-mars-stroke-v", + searchTerms: [] + }, { + title: "fab fa-maxcdn", + searchTerms: [] + }, { + title: "fab fa-medapps", + searchTerms: [] + }, { + title: "fab fa-medium", + searchTerms: [] + }, { + title: "fab fa-medium-m", + searchTerms: [] + }, { + title: "fas fa-medkit", + searchTerms: [ "first aid", "firstaid", "help", "support", "health" ] + }, { + title: "fab fa-medrt", + searchTerms: [] + }, { + title: "fab fa-meetup", + searchTerms: [] + }, { + title: "fas fa-meh", + searchTerms: [ "face", "emoticon", "rating", "neutral" ] + }, { + title: "far fa-meh", + searchTerms: [ "face", "emoticon", "rating", "neutral" ] + }, { + title: "fas fa-mercury", + searchTerms: [ "transgender" ] + }, { + title: "fas fa-microchip", + searchTerms: [] + }, { + title: "fas fa-microphone", + searchTerms: [ "record", "voice", "sound" ] + }, { + title: "fas fa-microphone-slash", + searchTerms: [ "record", "voice", "sound", "mute" ] + }, { + title: "fab fa-microsoft", + searchTerms: [] + }, { + title: "fas fa-minus", + searchTerms: [ "hide", "minify", "delete", "remove", "trash", "hide", "collapse" ] + }, { + title: "fas fa-minus-circle", + searchTerms: [ "delete", "remove", "trash", "hide" ] + }, { + title: "fas fa-minus-square", + searchTerms: [ "hide", "minify", "delete", "remove", "trash", "hide", "collapse" ] + }, { + title: "far fa-minus-square", + searchTerms: [ "hide", "minify", "delete", "remove", "trash", "hide", "collapse" ] + }, { + title: "fab fa-mix", + searchTerms: [] + }, { + title: "fab fa-mixcloud", + searchTerms: [] + }, { + title: "fab fa-mizuni", + searchTerms: [] + }, { + title: "fas fa-mobile", + searchTerms: [ "cell phone", "cellphone", "text", "call", "iphone", "number", "telephone" ] + }, { + title: "fas fa-mobile-alt", + searchTerms: [ "mobile" ] + }, { + title: "fab fa-modx", + searchTerms: [] + }, { + title: "fab fa-monero", + searchTerms: [] + }, { + title: "fas fa-money-bill-alt", + searchTerms: [ "cash", "money", "buy", "checkout", "purchase", "payment", "price" ] + }, { + title: "far fa-money-bill-alt", + searchTerms: [ "cash", "money", "buy", "checkout", "purchase", "payment", "price" ] + }, { + title: "fas fa-moon", + searchTerms: [ "night", "darker", "contrast" ] + }, { + title: "far fa-moon", + searchTerms: [ "night", "darker", "contrast" ] + }, { + title: "fas fa-motorcycle", + searchTerms: [ "vehicle", "bike" ] + }, { + title: "fas fa-mouse-pointer", + searchTerms: [ "select" ] + }, { + title: "fas fa-music", + searchTerms: [ "note", "sound" ] + }, { + title: "fab fa-napster", + searchTerms: [] + }, { + title: "fas fa-neuter", + searchTerms: [] + }, { + title: "fas fa-newspaper", + searchTerms: [ "press", "article" ] + }, { + title: "far fa-newspaper", + searchTerms: [ "press", "article" ] + }, { + title: "fab fa-nintendo-switch", + searchTerms: [] + }, { + title: "fab fa-node", + searchTerms: [] + }, { + title: "fab fa-node-js", + searchTerms: [] + }, { + title: "fab fa-npm", + searchTerms: [] + }, { + title: "fab fa-ns8", + searchTerms: [] + }, { + title: "fab fa-nutritionix", + searchTerms: [] + }, { + title: "fas fa-object-group", + searchTerms: [ "design" ] + }, { + title: "far fa-object-group", + searchTerms: [ "design" ] + }, { + title: "fas fa-object-ungroup", + searchTerms: [ "design" ] + }, { + title: "far fa-object-ungroup", + searchTerms: [ "design" ] + }, { + title: "fab fa-odnoklassniki", + searchTerms: [] + }, { + title: "fab fa-odnoklassniki-square", + searchTerms: [] + }, { + title: "fab fa-opencart", + searchTerms: [] + }, { + title: "fab fa-openid", + searchTerms: [] + }, { + title: "fab fa-opera", + searchTerms: [] + }, { + title: "fab fa-optin-monster", + searchTerms: [] + }, { + title: "fab fa-osi", + searchTerms: [] + }, { + title: "fas fa-outdent", + searchTerms: [] + }, { + title: "fab fa-page4", + searchTerms: [] + }, { + title: "fab fa-pagelines", + searchTerms: [ "leaf", "leaves", "tree", "plant", "eco", "nature" ] + }, { + title: "fas fa-paint-brush", + searchTerms: [] + }, { + title: "fab fa-palfed", + searchTerms: [] + }, { + title: "fas fa-pallet", + searchTerms: [] + }, { + title: "fas fa-paper-plane", + searchTerms: [] + }, { + title: "far fa-paper-plane", + searchTerms: [] + }, { + title: "fas fa-paperclip", + searchTerms: [ "attachment" ] + }, { + title: "fas fa-paragraph", + searchTerms: [] + }, { + title: "fas fa-paste", + searchTerms: [ "copy", "clipboard" ] + }, { + title: "fab fa-patreon", + searchTerms: [] + }, { + title: "fas fa-pause", + searchTerms: [ "wait" ] + }, { + title: "fas fa-pause-circle", + searchTerms: [] + }, { + title: "far fa-pause-circle", + searchTerms: [] + }, { + title: "fas fa-paw", + searchTerms: [ "pet" ] + }, { + title: "fab fa-paypal", + searchTerms: [] + }, { + title: "fas fa-pen-square", + searchTerms: [ "write", "edit", "update", "pencil-square" ] + }, { + title: "fas fa-pencil-alt", + searchTerms: [ "write", "edit", "update", "pencil", "design" ] + }, { + title: "fas fa-percent", + searchTerms: [] + }, { + title: "fab fa-periscope", + searchTerms: [] + }, { + title: "fab fa-phabricator", + searchTerms: [] + }, { + title: "fab fa-phoenix-framework", + searchTerms: [] + }, { + title: "fas fa-phone", + searchTerms: [ "call", "voice", "number", "support", "earphone", "telephone" ] + }, { + title: "fas fa-phone-square", + searchTerms: [ "call", "voice", "number", "support", "telephone" ] + }, { + title: "fas fa-phone-volume", + searchTerms: [ "telephone", "volume-control-phone" ] + }, { + title: "fab fa-php", + searchTerms: [] + }, { + title: "fab fa-pied-piper", + searchTerms: [] + }, { + title: "fab fa-pied-piper-alt", + searchTerms: [] + }, { + title: "fab fa-pied-piper-pp", + searchTerms: [] + }, { + title: "fas fa-pills", + searchTerms: [ "medicine", "drugs" ] + }, { + title: "fab fa-pinterest", + searchTerms: [] + }, { + title: "fab fa-pinterest-p", + searchTerms: [] + }, { + title: "fab fa-pinterest-square", + searchTerms: [] + }, { + title: "fas fa-plane", + searchTerms: [ "travel", "trip", "location", "destination", "airplane", "fly", "mode" ] + }, { + title: "fas fa-play", + searchTerms: [ "start", "playing", "music", "sound" ] + }, { + title: "fas fa-play-circle", + searchTerms: [ "start", "playing" ] + }, { + title: "far fa-play-circle", + searchTerms: [ "start", "playing" ] + }, { + title: "fab fa-playstation", + searchTerms: [] + }, { + title: "fas fa-plug", + searchTerms: [ "power", "connect" ] + }, { + title: "fas fa-plus", + searchTerms: [ "add", "new", "create", "expand" ] + }, { + title: "fas fa-plus-circle", + searchTerms: [ "add", "new", "create", "expand" ] + }, { + title: "fas fa-plus-square", + searchTerms: [ "add", "new", "create", "expand" ] + }, { + title: "far fa-plus-square", + searchTerms: [ "add", "new", "create", "expand" ] + }, { + title: "fas fa-podcast", + searchTerms: [] + }, { + title: "fas fa-pound-sign", + searchTerms: [ "gbp", "gbp" ] + }, { + title: "fas fa-power-off", + searchTerms: [ "on" ] + }, { + title: "fas fa-print", + searchTerms: [] + }, { + title: "fab fa-product-hunt", + searchTerms: [] + }, { + title: "fab fa-pushed", + searchTerms: [] + }, { + title: "fas fa-puzzle-piece", + searchTerms: [ "addon", "add-on", "section" ] + }, { + title: "fab fa-python", + searchTerms: [] + }, { + title: "fab fa-qq", + searchTerms: [] + }, { + title: "fas fa-qrcode", + searchTerms: [ "scan" ] + }, { + title: "fas fa-question", + searchTerms: [ "help", "information", "unknown", "support" ] + }, { + title: "fas fa-question-circle", + searchTerms: [ "help", "information", "unknown", "support" ] + }, { + title: "far fa-question-circle", + searchTerms: [ "help", "information", "unknown", "support" ] + }, { + title: "fas fa-quidditch", + searchTerms: [] + }, { + title: "fab fa-quinscape", + searchTerms: [] + }, { + title: "fab fa-quora", + searchTerms: [] + }, { + title: "fas fa-quote-left", + searchTerms: [] + }, { + title: "fas fa-quote-right", + searchTerms: [] + }, { + title: "fas fa-random", + searchTerms: [ "sort", "shuffle" ] + }, { + title: "fab fa-ravelry", + searchTerms: [] + }, { + title: "fab fa-react", + searchTerms: [] + }, { + title: "fab fa-rebel", + searchTerms: [] + }, { + title: "fas fa-recycle", + searchTerms: [] + }, { + title: "fab fa-red-river", + searchTerms: [] + }, { + title: "fab fa-reddit", + searchTerms: [] + }, { + title: "fab fa-reddit-alien", + searchTerms: [] + }, { + title: "fab fa-reddit-square", + searchTerms: [] + }, { + title: "fas fa-redo", + searchTerms: [ "forward", "repeat", "repeat" ] + }, { + title: "fas fa-redo-alt", + searchTerms: [ "forward", "repeat" ] + }, { + title: "fas fa-registered", + searchTerms: [] + }, { + title: "far fa-registered", + searchTerms: [] + }, { + title: "fab fa-rendact", + searchTerms: [] + }, { + title: "fab fa-renren", + searchTerms: [] + }, { + title: "fas fa-reply", + searchTerms: [] + }, { + title: "fas fa-reply-all", + searchTerms: [] + }, { + title: "fab fa-replyd", + searchTerms: [] + }, { + title: "fab fa-resolving", + searchTerms: [] + }, { + title: "fas fa-retweet", + searchTerms: [ "refresh", "reload", "share", "swap" ] + }, { + title: "fas fa-road", + searchTerms: [ "street" ] + }, { + title: "fas fa-rocket", + searchTerms: [ "app" ] + }, { + title: "fab fa-rocketchat", + searchTerms: [] + }, { + title: "fab fa-rockrms", + searchTerms: [] + }, { + title: "fas fa-rss", + searchTerms: [ "blog" ] + }, { + title: "fas fa-rss-square", + searchTerms: [ "feed", "blog" ] + }, { + title: "fas fa-ruble-sign", + searchTerms: [ "rub", "rub" ] + }, { + title: "fas fa-rupee-sign", + searchTerms: [ "indian", "inr" ] + }, { + title: "fab fa-safari", + searchTerms: [ "browser" ] + }, { + title: "fab fa-sass", + searchTerms: [] + }, { + title: "fas fa-save", + searchTerms: [ "floppy", "floppy-o" ] + }, { + title: "far fa-save", + searchTerms: [ "floppy", "floppy-o" ] + }, { + title: "fab fa-schlix", + searchTerms: [] + }, { + title: "fab fa-scribd", + searchTerms: [] + }, { + title: "fas fa-search", + searchTerms: [ "magnify", "zoom", "enlarge", "bigger" ] + }, { + title: "fas fa-search-minus", + searchTerms: [ "magnify", "minify", "zoom", "smaller" ] + }, { + title: "fas fa-search-plus", + searchTerms: [ "magnify", "zoom", "enlarge", "bigger" ] + }, { + title: "fab fa-searchengin", + searchTerms: [] + }, { + title: "fab fa-sellcast", + searchTerms: [ "eercast" ] + }, { + title: "fab fa-sellsy", + searchTerms: [] + }, { + title: "fas fa-server", + searchTerms: [] + }, { + title: "fab fa-servicestack", + searchTerms: [] + }, { + title: "fas fa-share", + searchTerms: [] + }, { + title: "fas fa-share-alt", + searchTerms: [] + }, { + title: "fas fa-share-alt-square", + searchTerms: [] + }, { + title: "fas fa-share-square", + searchTerms: [ "social", "send" ] + }, { + title: "far fa-share-square", + searchTerms: [ "social", "send" ] + }, { + title: "fas fa-shekel-sign", + searchTerms: [ "ils", "ils" ] + }, { + title: "fas fa-shield-alt", + searchTerms: [ "shield" ] + }, { + title: "fas fa-ship", + searchTerms: [ "boat", "sea" ] + }, { + title: "fas fa-shipping-fast", + searchTerms: [] + }, { + title: "fab fa-shirtsinbulk", + searchTerms: [] + }, { + title: "fas fa-shopping-bag", + searchTerms: [] + }, { + title: "fas fa-shopping-basket", + searchTerms: [] + }, { + title: "fas fa-shopping-cart", + searchTerms: [ "checkout", "buy", "purchase", "payment" ] + }, { + title: "fas fa-shower", + searchTerms: [] + }, { + title: "fas fa-sign-in-alt", + searchTerms: [ "enter", "join", "log in", "login", "sign up", "sign in", "signin", "signup", "arrow", "sign-in" ] + }, { + title: "fas fa-sign-language", + searchTerms: [] + }, { + title: "fas fa-sign-out-alt", + searchTerms: [ "log out", "logout", "leave", "exit", "arrow", "sign-out" ] + }, { + title: "fas fa-signal", + searchTerms: [ "graph", "bars", "status" ] + }, { + title: "fab fa-simplybuilt", + searchTerms: [] + }, { + title: "fab fa-sistrix", + searchTerms: [] + }, { + title: "fas fa-sitemap", + searchTerms: [ "directory", "hierarchy", "organization" ] + }, { + title: "fab fa-skyatlas", + searchTerms: [] + }, { + title: "fab fa-skype", + searchTerms: [] + }, { + title: "fab fa-slack", + searchTerms: [ "hashtag", "anchor", "hash" ] + }, { + title: "fab fa-slack-hash", + searchTerms: [ "hashtag", "anchor", "hash" ] + }, { + title: "fas fa-sliders-h", + searchTerms: [ "settings", "sliders" ] + }, { + title: "fab fa-slideshare", + searchTerms: [] + }, { + title: "fas fa-smile", + searchTerms: [ "face", "emoticon", "happy", "approve", "satisfied", "rating" ] + }, { + title: "far fa-smile", + searchTerms: [ "face", "emoticon", "happy", "approve", "satisfied", "rating" ] + }, { + title: "fab fa-snapchat", + searchTerms: [] + }, { + title: "fab fa-snapchat-ghost", + searchTerms: [] + }, { + title: "fab fa-snapchat-square", + searchTerms: [] + }, { + title: "fas fa-snowflake", + searchTerms: [] + }, { + title: "far fa-snowflake", + searchTerms: [] + }, { + title: "fas fa-sort", + searchTerms: [ "order" ] + }, { + title: "fas fa-sort-alpha-down", + searchTerms: [ "sort-alpha-asc" ] + }, { + title: "fas fa-sort-alpha-up", + searchTerms: [ "sort-alpha-desc" ] + }, { + title: "fas fa-sort-amount-down", + searchTerms: [ "sort-amount-asc" ] + }, { + title: "fas fa-sort-amount-up", + searchTerms: [ "sort-amount-desc" ] + }, { + title: "fas fa-sort-down", + searchTerms: [ "arrow", "descending", "sort-desc" ] + }, { + title: "fas fa-sort-numeric-down", + searchTerms: [ "numbers", "sort-numeric-asc" ] + }, { + title: "fas fa-sort-numeric-up", + searchTerms: [ "numbers", "sort-numeric-desc" ] + }, { + title: "fas fa-sort-up", + searchTerms: [ "arrow", "ascending", "sort-asc" ] + }, { + title: "fab fa-soundcloud", + searchTerms: [] + }, { + title: "fas fa-space-shuttle", + searchTerms: [] + }, { + title: "fab fa-speakap", + searchTerms: [] + }, { + title: "fas fa-spinner", + searchTerms: [ "loading", "progress" ] + }, { + title: "fab fa-spotify", + searchTerms: [] + }, { + title: "fas fa-square", + searchTerms: [ "block", "box" ] + }, { + title: "far fa-square", + searchTerms: [ "block", "box" ] + }, { + title: "fas fa-square-full", + searchTerms: [] + }, { + title: "fab fa-stack-exchange", + searchTerms: [] + }, { + title: "fab fa-stack-overflow", + searchTerms: [] + }, { + title: "fas fa-star", + searchTerms: [ "award", "achievement", "night", "rating", "score", "favorite" ] + }, { + title: "far fa-star", + searchTerms: [ "award", "achievement", "night", "rating", "score", "favorite" ] + }, { + title: "fas fa-star-half", + searchTerms: [ "award", "achievement", "rating", "score", "star-half-empty", "star-half-full" ] + }, { + title: "far fa-star-half", + searchTerms: [ "award", "achievement", "rating", "score", "star-half-empty", "star-half-full" ] + }, { + title: "fab fa-staylinked", + searchTerms: [] + }, { + title: "fab fa-steam", + searchTerms: [] + }, { + title: "fab fa-steam-square", + searchTerms: [] + }, { + title: "fab fa-steam-symbol", + searchTerms: [] + }, { + title: "fas fa-step-backward", + searchTerms: [ "rewind", "previous", "beginning", "start", "first" ] + }, { + title: "fas fa-step-forward", + searchTerms: [ "next", "end", "last" ] + }, { + title: "fas fa-stethoscope", + searchTerms: [] + }, { + title: "fab fa-sticker-mule", + searchTerms: [] + }, { + title: "fas fa-sticky-note", + searchTerms: [] + }, { + title: "far fa-sticky-note", + searchTerms: [] + }, { + title: "fas fa-stop", + searchTerms: [ "block", "box", "square" ] + }, { + title: "fas fa-stop-circle", + searchTerms: [] + }, { + title: "far fa-stop-circle", + searchTerms: [] + }, { + title: "fas fa-stopwatch", + searchTerms: [ "time" ] + }, { + title: "fab fa-strava", + searchTerms: [] + }, { + title: "fas fa-street-view", + searchTerms: [ "map" ] + }, { + title: "fas fa-strikethrough", + searchTerms: [] + }, { + title: "fab fa-stripe", + searchTerms: [] + }, { + title: "fab fa-stripe-s", + searchTerms: [] + }, { + title: "fab fa-studiovinari", + searchTerms: [] + }, { + title: "fab fa-stumbleupon", + searchTerms: [] + }, { + title: "fab fa-stumbleupon-circle", + searchTerms: [] + }, { + title: "fas fa-subscript", + searchTerms: [] + }, { + title: "fas fa-subway", + searchTerms: [] + }, { + title: "fas fa-suitcase", + searchTerms: [ "trip", "luggage", "travel", "move", "baggage" ] + }, { + title: "fas fa-sun", + searchTerms: [ "weather", "contrast", "lighter", "brighten", "day" ] + }, { + title: "far fa-sun", + searchTerms: [ "weather", "contrast", "lighter", "brighten", "day" ] + }, { + title: "fab fa-superpowers", + searchTerms: [] + }, { + title: "fas fa-superscript", + searchTerms: [ "exponential" ] + }, { + title: "fab fa-supple", + searchTerms: [] + }, { + title: "fas fa-sync", + searchTerms: [ "reload", "refresh", "refresh" ] + }, { + title: "fas fa-sync-alt", + searchTerms: [ "reload", "refresh" ] + }, { + title: "fas fa-syringe", + searchTerms: [ "immunizations", "needle" ] + }, { + title: "fas fa-table", + searchTerms: [ "data", "excel", "spreadsheet" ] + }, { + title: "fas fa-table-tennis", + searchTerms: [] + }, { + title: "fas fa-tablet", + searchTerms: [ "ipad", "device" ] + }, { + title: "fas fa-tablet-alt", + searchTerms: [ "tablet" ] + }, { + title: "fas fa-tachometer-alt", + searchTerms: [ "tachometer", "dashboard" ] + }, { + title: "fas fa-tag", + searchTerms: [ "label" ] + }, { + title: "fas fa-tags", + searchTerms: [ "labels" ] + }, { + title: "fas fa-tasks", + searchTerms: [ "progress", "loading", "downloading", "downloads", "settings" ] + }, { + title: "fas fa-taxi", + searchTerms: [ "vehicle" ] + }, { + title: "fab fa-telegram", + searchTerms: [] + }, { + title: "fab fa-telegram-plane", + searchTerms: [] + }, { + title: "fab fa-tencent-weibo", + searchTerms: [] + }, { + title: "fas fa-terminal", + searchTerms: [ "command", "prompt", "code" ] + }, { + title: "fas fa-text-height", + searchTerms: [] + }, { + title: "fas fa-text-width", + searchTerms: [] + }, { + title: "fas fa-th", + searchTerms: [ "blocks", "squares", "boxes", "grid" ] + }, { + title: "fas fa-th-large", + searchTerms: [ "blocks", "squares", "boxes", "grid" ] + }, { + title: "fas fa-th-list", + searchTerms: [ "ul", "ol", "checklist", "finished", "completed", "done", "todo" ] + }, { + title: "fab fa-themeisle", + searchTerms: [] + }, { + title: "fas fa-thermometer", + searchTerms: [ "temperature", "fever" ] + }, { + title: "fas fa-thermometer-empty", + searchTerms: [ "status" ] + }, { + title: "fas fa-thermometer-full", + searchTerms: [ "status" ] + }, { + title: "fas fa-thermometer-half", + searchTerms: [ "status" ] + }, { + title: "fas fa-thermometer-quarter", + searchTerms: [ "status" ] + }, { + title: "fas fa-thermometer-three-quarters", + searchTerms: [ "status" ] + }, { + title: "fas fa-thumbs-down", + searchTerms: [ "dislike", "disapprove", "disagree", "hand", "thumbs-o-down" ] + }, { + title: "far fa-thumbs-down", + searchTerms: [ "dislike", "disapprove", "disagree", "hand", "thumbs-o-down" ] + }, { + title: "fas fa-thumbs-up", + searchTerms: [ "like", "favorite", "approve", "agree", "hand", "thumbs-o-up" ] + }, { + title: "far fa-thumbs-up", + searchTerms: [ "like", "favorite", "approve", "agree", "hand", "thumbs-o-up" ] + }, { + title: "fas fa-thumbtack", + searchTerms: [ "marker", "pin", "location", "coordinates", "thumb-tack" ] + }, { + title: "fas fa-ticket-alt", + searchTerms: [ "ticket" ] + }, { + title: "fas fa-times", + searchTerms: [ "close", "exit", "x", "cross" ] + }, { + title: "fas fa-times-circle", + searchTerms: [ "close", "exit", "x" ] + }, { + title: "far fa-times-circle", + searchTerms: [ "close", "exit", "x" ] + }, { + title: "fas fa-tint", + searchTerms: [ "raindrop", "waterdrop", "drop", "droplet" ] + }, { + title: "fas fa-toggle-off", + searchTerms: [ "switch" ] + }, { + title: "fas fa-toggle-on", + searchTerms: [ "switch" ] + }, { + title: "fas fa-trademark", + searchTerms: [] + }, { + title: "fas fa-train", + searchTerms: [] + }, { + title: "fas fa-transgender", + searchTerms: [ "intersex" ] + }, { + title: "fas fa-transgender-alt", + searchTerms: [] + }, { + title: "fas fa-trash", + searchTerms: [ "garbage", "delete", "remove", "hide" ] + }, { + title: "fas fa-trash-alt", + searchTerms: [ "garbage", "delete", "remove", "hide", "trash", "trash-o" ] + }, { + title: "far fa-trash-alt", + searchTerms: [ "garbage", "delete", "remove", "hide", "trash", "trash-o" ] + }, { + title: "fas fa-tree", + searchTerms: [] + }, { + title: "fab fa-trello", + searchTerms: [] + }, { + title: "fab fa-tripadvisor", + searchTerms: [] + }, { + title: "fas fa-trophy", + searchTerms: [ "award", "achievement", "cup", "winner", "game" ] + }, { + title: "fas fa-truck", + searchTerms: [ "shipping" ] + }, { + title: "fas fa-tty", + searchTerms: [] + }, { + title: "fab fa-tumblr", + searchTerms: [] + }, { + title: "fab fa-tumblr-square", + searchTerms: [] + }, { + title: "fas fa-tv", + searchTerms: [ "display", "computer", "monitor", "television" ] + }, { + title: "fab fa-twitch", + searchTerms: [] + }, { + title: "fab fa-twitter", + searchTerms: [ "tweet", "social network" ] + }, { + title: "fab fa-twitter-square", + searchTerms: [ "tweet", "social network" ] + }, { + title: "fab fa-typo3", + searchTerms: [] + }, { + title: "fab fa-uber", + searchTerms: [] + }, { + title: "fab fa-uikit", + searchTerms: [] + }, { + title: "fas fa-umbrella", + searchTerms: [] + }, { + title: "fas fa-underline", + searchTerms: [] + }, { + title: "fas fa-undo", + searchTerms: [ "back" ] + }, { + title: "fas fa-undo-alt", + searchTerms: [ "back" ] + }, { + title: "fab fa-uniregistry", + searchTerms: [] + }, { + title: "fas fa-universal-access", + searchTerms: [] + }, { + title: "fas fa-university", + searchTerms: [ "bank", "institution" ] + }, { + title: "fas fa-unlink", + searchTerms: [ "remove", "chain", "chain-broken" ] + }, { + title: "fas fa-unlock", + searchTerms: [ "protect", "admin", "password", "lock" ] + }, { + title: "fas fa-unlock-alt", + searchTerms: [ "protect", "admin", "password", "lock" ] + }, { + title: "fab fa-untappd", + searchTerms: [] + }, { + title: "fas fa-upload", + searchTerms: [ "import" ] + }, { + title: "fab fa-usb", + searchTerms: [] + }, { + title: "fas fa-user", + searchTerms: [ "person", "man", "head", "profile", "account" ] + }, { + title: "far fa-user", + searchTerms: [ "person", "man", "head", "profile", "account" ] + }, { + title: "fas fa-user-circle", + searchTerms: [ "person", "man", "head", "profile", "account" ] + }, { + title: "far fa-user-circle", + searchTerms: [ "person", "man", "head", "profile", "account" ] + }, { + title: "fas fa-user-md", + searchTerms: [ "doctor", "profile", "medical", "nurse", "job", "occupation" ] + }, { + title: "fas fa-user-plus", + searchTerms: [ "sign up", "signup" ] + }, { + title: "fas fa-user-secret", + searchTerms: [ "whisper", "spy", "incognito", "privacy" ] + }, { + title: "fas fa-user-times", + searchTerms: [] + }, { + title: "fas fa-users", + searchTerms: [ "people", "profiles", "persons" ] + }, { + title: "fab fa-ussunnah", + searchTerms: [] + }, { + title: "fas fa-utensil-spoon", + searchTerms: [ "spoon" ] + }, { + title: "fas fa-utensils", + searchTerms: [ "food", "restaurant", "spoon", "knife", "dinner", "eat", "cutlery" ] + }, { + title: "fab fa-vaadin", + searchTerms: [] + }, { + title: "fas fa-venus", + searchTerms: [ "female" ] + }, { + title: "fas fa-venus-double", + searchTerms: [] + }, { + title: "fas fa-venus-mars", + searchTerms: [] + }, { + title: "fab fa-viacoin", + searchTerms: [] + }, { + title: "fab fa-viadeo", + searchTerms: [] + }, { + title: "fab fa-viadeo-square", + searchTerms: [] + }, { + title: "fab fa-viber", + searchTerms: [] + }, { + title: "fas fa-video", + searchTerms: [ "film", "movie", "record", "camera", "video-camera" ] + }, { + title: "fab fa-vimeo", + searchTerms: [] + }, { + title: "fab fa-vimeo-square", + searchTerms: [] + }, { + title: "fab fa-vimeo-v", + searchTerms: [ "vimeo" ] + }, { + title: "fab fa-vine", + searchTerms: [] + }, { + title: "fab fa-vk", + searchTerms: [] + }, { + title: "fab fa-vnv", + searchTerms: [] + }, { + title: "fas fa-volleyball-ball", + searchTerms: [] + }, { + title: "fas fa-volume-down", + searchTerms: [ "audio", "lower", "quieter", "sound", "music" ] + }, { + title: "fas fa-volume-off", + searchTerms: [ "audio", "mute", "sound", "music" ] + }, { + title: "fas fa-volume-up", + searchTerms: [ "audio", "higher", "louder", "sound", "music" ] + }, { + title: "fab fa-vuejs", + searchTerms: [] + }, { + title: "fas fa-warehouse", + searchTerms: [] + }, { + title: "fab fa-weibo", + searchTerms: [] + }, { + title: "fas fa-weight", + searchTerms: [ "scale" ] + }, { + title: "fab fa-weixin", + searchTerms: [] + }, { + title: "fab fa-whatsapp", + searchTerms: [] + }, { + title: "fab fa-whatsapp-square", + searchTerms: [] + }, { + title: "fas fa-wheelchair", + searchTerms: [ "handicap", "person" ] + }, { + title: "fab fa-whmcs", + searchTerms: [] + }, { + title: "fas fa-wifi", + searchTerms: [] + }, { + title: "fab fa-wikipedia-w", + searchTerms: [] + }, { + title: "fas fa-window-close", + searchTerms: [] + }, { + title: "far fa-window-close", + searchTerms: [] + }, { + title: "fas fa-window-maximize", + searchTerms: [] + }, { + title: "far fa-window-maximize", + searchTerms: [] + }, { + title: "fas fa-window-minimize", + searchTerms: [] + }, { + title: "far fa-window-minimize", + searchTerms: [] + }, { + title: "fas fa-window-restore", + searchTerms: [] + }, { + title: "far fa-window-restore", + searchTerms: [] + }, { + title: "fab fa-windows", + searchTerms: [ "microsoft" ] + }, { + title: "fas fa-won-sign", + searchTerms: [ "krw", "krw" ] + }, { + title: "fab fa-wordpress", + searchTerms: [] + }, { + title: "fab fa-wordpress-simple", + searchTerms: [] + }, { + title: "fab fa-wpbeginner", + searchTerms: [] + }, { + title: "fab fa-wpexplorer", + searchTerms: [] + }, { + title: "fab fa-wpforms", + searchTerms: [] + }, { + title: "fas fa-wrench", + searchTerms: [ "settings", "fix", "update", "spanner", "tool" ] + }, { + title: "fab fa-xbox", + searchTerms: [] + }, { + title: "fab fa-xing", + searchTerms: [] + }, { + title: "fab fa-xing-square", + searchTerms: [] + }, { + title: "fab fa-y-combinator", + searchTerms: [] + }, { + title: "fab fa-yahoo", + searchTerms: [] + }, { + title: "fab fa-yandex", + searchTerms: [] + }, { + title: "fab fa-yandex-international", + searchTerms: [] + }, { + title: "fab fa-yelp", + searchTerms: [] + }, { + title: "fas fa-yen-sign", + searchTerms: [ "jpy", "jpy" ] + }, { + title: "fab fa-yoast", + searchTerms: [] + }, { + title: "fab fa-youtube", + searchTerms: [ "video", "film", "youtube-play", "youtube-square" ] + }, { + title: "fab fa-youtube-square", + searchTerms: [] + } ] + }); }); \ No newline at end of file diff --git a/lib/fontawesome-iconpicker/dist/js/fontawesome-iconpicker.min.js b/lib/fontawesome-iconpicker/dist/js/fontawesome-iconpicker.min.js index aec7d68..2fe5d1f 100644 --- a/lib/fontawesome-iconpicker/dist/js/fontawesome-iconpicker.min.js +++ b/lib/fontawesome-iconpicker/dist/js/fontawesome-iconpicker.min.js @@ -1,2 +1,20 @@ -!function(a,b){function c(a,b,c){return[parseFloat(a[0])*(n.test(a[0])?b/100:1),parseFloat(a[1])*(n.test(a[1])?c/100:1)]}function d(b,c){return parseInt(a.css(b,c),10)||0}function e(b){var c=b[0];return 9===c.nodeType?{width:b.width(),height:b.height(),offset:{top:0,left:0}}:a.isWindow(c)?{width:b.width(),height:b.height(),offset:{top:b.scrollTop(),left:b.scrollLeft()}}:c.preventDefault?{width:0,height:0,offset:{top:c.pageY,left:c.pageX}}:{width:b.outerWidth(),height:b.outerHeight(),offset:b.offset()}}a.ui=a.ui||{};var f,g=Math.max,h=Math.abs,i=Math.round,j=/left|center|right/,k=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,m=/^\w+/,n=/%$/,o=a.fn.pos;a.pos={scrollbarWidth:function(){if(f!==b)return f;var c,d,e=a("
"),g=e.children()[0];return a("body").append(e),c=g.offsetWidth,e.css("overflow","scroll"),d=g.offsetWidth,c===d&&(d=e[0].clientWidth),e.remove(),f=c-d},getScrollInfo:function(b){var c=b.isWindow||b.isDocument?"":b.element.css("overflow-x"),d=b.isWindow||b.isDocument?"":b.element.css("overflow-y"),e="scroll"===c||"auto"===c&&b.width0?"right":"center",vertical:f<0?"top":e>0?"bottom":"middle"};ng(h(e),h(f))?i.important="horizontal":i.important="vertical",b.using.call(this,a,i)}),k.offset(a.extend(A,{using:j}))})},a.ui.pos={_trigger:function(a,b,c,d){b.elem&&b.elem.trigger({type:c,position:a,positionData:b,triggered:d})},fit:{left:function(b,c){a.ui.pos._trigger(b,c,"posCollide","fitLeft");var d,e=c.within,f=e.isWindow?e.scrollLeft:e.offset.left,h=e.width,i=b.left-c.collisionPosition.marginLeft,j=f-i,k=i+c.collisionWidth-h-f;c.collisionWidth>h?j>0&&k<=0?(d=b.left+j+c.collisionWidth-h-f,b.left+=j-d):k>0&&j<=0?b.left=f:j>k?b.left=f+h-c.collisionWidth:b.left=f:j>0?b.left+=j:k>0?b.left-=k:b.left=g(b.left-i,b.left),a.ui.pos._trigger(b,c,"posCollided","fitLeft")},top:function(b,c){a.ui.pos._trigger(b,c,"posCollide","fitTop");var d,e=c.within,f=e.isWindow?e.scrollTop:e.offset.top,h=c.within.height,i=b.top-c.collisionPosition.marginTop,j=f-i,k=i+c.collisionHeight-h-f;c.collisionHeight>h?j>0&&k<=0?(d=b.top+j+c.collisionHeight-h-f,b.top+=j-d):k>0&&j<=0?b.top=f:j>k?b.top=f+h-c.collisionHeight:b.top=f:j>0?b.top+=j:k>0?b.top-=k:b.top=g(b.top-i,b.top),a.ui.pos._trigger(b,c,"posCollided","fitTop")}},flip:{left:function(b,c){a.ui.pos._trigger(b,c,"posCollide","flipLeft");var d,e,f=c.within,g=f.offset.left+f.scrollLeft,i=f.width,j=f.isWindow?f.scrollLeft:f.offset.left,k=b.left-c.collisionPosition.marginLeft,l=k-j,m=k+c.collisionWidth-i-j,n="left"===c.my[0]?-c.elemWidth:"right"===c.my[0]?c.elemWidth:0,o="left"===c.at[0]?c.targetWidth:"right"===c.at[0]?-c.targetWidth:0,p=-2*c.offset[0];l<0?(d=b.left+n+o+p+c.collisionWidth-i-g,(d<0||d0&&(e=b.left-c.collisionPosition.marginLeft+n+o+p-j,(e>0||h(e)l&&(e<0||e0&&(d=b.top-c.collisionPosition.marginTop+o+p+q-j,b.top+o+p+q>m&&(d>0||h(d)10&&e<11,b.innerHTML="",c.removeChild(b)}()}(jQuery),function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):window.jQuery&&!window.jQuery.fn.iconpicker&&a(window.jQuery)}(function(a){"use strict";var b={isEmpty:function(a){return a===!1||""===a||null===a||void 0===a},isEmptyObject:function(a){return this.isEmpty(a)===!0||0===a.length},isElement:function(b){return a(b).length>0},isString:function(a){return"string"==typeof a||a instanceof String},isArray:function(b){return a.isArray(b)},inArray:function(b,c){return a.inArray(b,c)!==-1},throwError:function(a){throw"Font Awesome Icon Picker Exception: "+a}},c=function(d,e){this._id=c._idCounter++,this.element=a(d).addClass("iconpicker-element"),this._trigger("iconpickerCreate"),this.options=a.extend({},c.defaultOptions,this.element.data(),e),this.options.templates=a.extend({},c.defaultOptions.templates,this.options.templates),this.options.originalPlacement=this.options.placement,this.container=!!b.isElement(this.options.container)&&a(this.options.container),this.container===!1&&(this.element.is(".dropdown-toggle")?this.container=a("~ .dropdown-menu:first",this.element):this.container=this.element.is("input,textarea,button,.btn")?this.element.parent():this.element),this.container.addClass("iconpicker-container"),this.isDropdownMenu()&&(this.options.templates.search=!1,this.options.templates.buttons=!1,this.options.placement="inline"),this.input=!!this.element.is("input,textarea")&&this.element.addClass("iconpicker-input"),this.input===!1&&(this.input=this.container.find(this.options.input),this.input.is("input,textarea")||(this.input=!1)),this.component=this.isDropdownMenu()?this.container.parent().find(this.options.component):this.container.find(this.options.component),0===this.component.length?this.component=!1:this.component.find("i").addClass("iconpicker-component"),this._createPopover(),this._createIconpicker(),0===this.getAcceptButton().length&&(this.options.mustAccept=!1),this.isInputGroup()?this.container.parent().append(this.popover):this.container.append(this.popover),this._bindElementEvents(),this._bindWindowEvents(),this.update(this.options.selected),this.isInline()&&this.show(),this._trigger("iconpickerCreated")};c._idCounter=0,c.defaultOptions={title:!1,selected:!1,defaultValue:!1,placement:"bottom",collision:"none",animation:!0,hideOnSelect:!1,showFooter:!1,searchInFooter:!1,mustAccept:!1,selectedCustomClass:"bg-primary",icons:[],fullClassFormatter:function(a){return"fa "+a},input:"input,.iconpicker-input",inputSearch:!1,container:!1,component:".input-group-addon,.iconpicker-component",templates:{popover:'
',footer:'',buttons:' ',search:'',iconpicker:'
',iconpickerItem:''}},c.batch=function(b,c){var d=Array.prototype.slice.call(arguments,2);return a(b).each(function(){var b=a(this).data("iconpicker");b&&b[c].apply(b,d)})},c.prototype={constructor:c,options:{},_id:0,_trigger:function(b,c){c=c||{},this.element.trigger(a.extend({type:b,iconpickerInstance:this},c))},_createPopover:function(){this.popover=a(this.options.templates.popover);var c=this.popover.find(".popover-title");if(this.options.title&&c.append(a('
'+this.options.title+"
")),this.hasSeparatedSearchInput()&&!this.options.searchInFooter?c.append(this.options.templates.search):this.options.title||c.remove(),this.options.showFooter&&!b.isEmpty(this.options.templates.footer)){var d=a(this.options.templates.footer);this.hasSeparatedSearchInput()&&this.options.searchInFooter&&d.append(a(this.options.templates.search)),b.isEmpty(this.options.templates.buttons)||d.append(a(this.options.templates.buttons)),this.popover.append(d)}return this.options.animation===!0&&this.popover.addClass("fade"),this.popover},_createIconpicker:function(){var b=this;this.iconpicker=a(this.options.templates.iconpicker);var c=function(c){var d=a(this);return d.is("i")&&(d=d.parent()),b._trigger("iconpickerSelect",{iconpickerItem:d,iconpickerValue:b.iconpickerValue}),b.options.mustAccept===!1?(b.update(d.data("iconpickerValue")),b._trigger("iconpickerSelected",{iconpickerItem:this,iconpickerValue:b.iconpickerValue})):b.update(d.data("iconpickerValue"),!0),b.options.hideOnSelect&&b.options.mustAccept===!1&&b.hide(),c.preventDefault(),!1};for(var d in this.options.icons)if("string"==typeof this.options.icons[d]){var e=a(this.options.templates.iconpickerItem);e.find("i").addClass(this.options.fullClassFormatter(this.options.icons[d])),e.data("iconpickerValue",this.options.icons[d]).on("click.iconpicker",c),this.iconpicker.find(".iconpicker-items").append(e.attr("title","."+this.options.icons[d]))}return this.popover.find(".popover-content").append(this.iconpicker),this.iconpicker},_isEventInsideIconpicker:function(b){var c=a(b.target);return!((!c.hasClass("iconpicker-element")||c.hasClass("iconpicker-element")&&!c.is(this.element))&&0===c.parents(".iconpicker-popover").length)},_bindElementEvents:function(){var c=this;this.getSearchInput().on("keyup.iconpicker",function(){c.filter(a(this).val().toLowerCase())}),this.getAcceptButton().on("click.iconpicker",function(){var a=c.iconpicker.find(".iconpicker-selected").get(0);c.update(c.iconpickerValue),c._trigger("iconpickerSelected",{iconpickerItem:a,iconpickerValue:c.iconpickerValue}),c.isInline()||c.hide()}),this.getCancelButton().on("click.iconpicker",function(){c.isInline()||c.hide()}),this.element.on("focus.iconpicker",function(a){c.show(),a.stopPropagation()}),this.hasComponent()&&this.component.on("click.iconpicker",function(){c.toggle()}),this.hasInput()&&this.input.on("keyup.iconpicker",function(d){b.inArray(d.keyCode,[38,40,37,39,16,17,18,9,8,91,93,20,46,186,190,46,78,188,44,86])?c._updateFormGroupStatus(c.getValid(this.value)!==!1):c.update(),c.options.inputSearch===!0&&c.filter(a(this).val().toLowerCase())})},_bindWindowEvents:function(){var b=a(window.document),c=this,d=".iconpicker.inst"+this._id;return a(window).on("resize.iconpicker"+d+" orientationchange.iconpicker"+d,function(a){c.popover.hasClass("in")&&c.updatePlacement()}),c.isInline()||b.on("mouseup"+d,function(a){return c._isEventInsideIconpicker(a)||c.isInline()||c.hide(),a.stopPropagation(),a.preventDefault(),!1}),!1},_unbindElementEvents:function(){this.popover.off(".iconpicker"),this.element.off(".iconpicker"),this.hasInput()&&this.input.off(".iconpicker"),this.hasComponent()&&this.component.off(".iconpicker"),this.hasContainer()&&this.container.off(".iconpicker")},_unbindWindowEvents:function(){a(window).off(".iconpicker.inst"+this._id),a(window.document).off(".iconpicker.inst"+this._id)},updatePlacement:function(b,c){b=b||this.options.placement,this.options.placement=b,c=c||this.options.collision,c=c===!0?"flip":c;var d={at:"right bottom",my:"right top",of:this.hasInput()&&!this.isInputGroup()?this.input:this.container,collision:c===!0?"flip":c,within:window};if(this.popover.removeClass("inline topLeftCorner topLeft top topRight topRightCorner rightTop right rightBottom bottomRight bottomRightCorner bottom bottomLeft bottomLeftCorner leftBottom left leftTop"),"object"==typeof b)return this.popover.pos(a.extend({},d,b));switch(b){case"inline":d=!1;break;case"topLeftCorner":d.my="right bottom",d.at="left top";break;case"topLeft":d.my="left bottom",d.at="left top";break;case"top":d.my="center bottom",d.at="center top";break;case"topRight":d.my="right bottom",d.at="right top";break;case"topRightCorner":d.my="left bottom",d.at="right top";break;case"rightTop":d.my="left bottom",d.at="right center";break;case"right":d.my="left center",d.at="right center";break;case"rightBottom":d.my="left top",d.at="right center";break;case"bottomRightCorner":d.my="left top",d.at="right bottom";break;case"bottomRight":d.my="right top",d.at="right bottom";break;case"bottom":d.my="center top",d.at="center bottom";break;case"bottomLeft":d.my="left top",d.at="left bottom";break;case"bottomLeftCorner":d.my="right top",d.at="left bottom";break;case"leftBottom":d.my="right top",d.at="left center";break;case"left":d.my="right center",d.at="left center";break;case"leftTop":d.my="right bottom",d.at="left center";break;default:return!1}return this.popover.css({display:"inline"===this.options.placement?"":"block"}),d!==!1?this.popover.pos(d).css("maxWidth",a(window).width()-this.container.offset().left-5):this.popover.css({top:"auto",right:"auto",bottom:"auto",left:"auto",maxWidth:"none"}),this.popover.addClass(this.options.placement),!0},_updateComponents:function(){if(this.iconpicker.find(".iconpicker-item.iconpicker-selected").removeClass("iconpicker-selected "+this.options.selectedCustomClass),this.iconpickerValue&&this.iconpicker.find("."+this.options.fullClassFormatter(this.iconpickerValue).replace(/ /g,".")).parent().addClass("iconpicker-selected "+this.options.selectedCustomClass),this.hasComponent()){var a=this.component.find("i");a.length>0?a.attr("class",this.options.fullClassFormatter(this.iconpickerValue)):this.component.html(this.getHtml())}},_updateFormGroupStatus:function(a){return!!this.hasInput()&&(a!==!1?this.input.parents(".form-group:first").removeClass("has-error"):this.input.parents(".form-group:first").addClass("has-error"),!0)},getValid:function(c){b.isString(c)||(c="");var d=""===c;return c=a.trim(c),!(!b.inArray(c,this.options.icons)&&!d)&&c},setValue:function(a){var b=this.getValid(a);return b!==!1?(this.iconpickerValue=b,this._trigger("iconpickerSetValue",{iconpickerValue:b}),this.iconpickerValue):(this._trigger("iconpickerInvalid",{iconpickerValue:a}),!1)},getHtml:function(){return''},setSourceValue:function(a){return a=this.setValue(a),a!==!1&&""!==a&&(this.hasInput()?this.input.val(this.iconpickerValue):this.element.data("iconpickerValue",this.iconpickerValue),this._trigger("iconpickerSetSourceValue",{iconpickerValue:a})),a},getSourceValue:function(a){a=a||this.options.defaultValue;var b=a;return b=this.hasInput()?this.input.val():this.element.data("iconpickerValue"),void 0!==b&&""!==b&&null!==b&&b!==!1||(b=a),b},hasInput:function(){return this.input!==!1},isInputSearch:function(){return this.hasInput()&&this.options.inputSearch===!0},isInputGroup:function(){return this.container.is(".input-group")},isDropdownMenu:function(){return this.container.is(".dropdown-menu")},hasSeparatedSearchInput:function(){return this.options.templates.search!==!1&&!this.isInputSearch()},hasComponent:function(){return this.component!==!1},hasContainer:function(){return this.container!==!1},getAcceptButton:function(){return this.popover.find(".iconpicker-btn-accept")},getCancelButton:function(){return this.popover.find(".iconpicker-btn-cancel")},getSearchInput:function(){return this.popover.find(".iconpicker-search")},filter:function(c){if(b.isEmpty(c))return this.iconpicker.find(".iconpicker-item").show(),a(!1);var d=[];return this.iconpicker.find(".iconpicker-item").each(function(){var b=a(this),e=b.attr("title").toLowerCase(),f=!1;try{f=new RegExp(c,"g")}catch(a){f=!1}f!==!1&&e.match(f)?(d.push(b),b.show()):b.hide()}),d},show:function(){return!this.popover.hasClass("in")&&(a.iconpicker.batch(a(".iconpicker-popover.in:not(.inline)").not(this.popover),"hide"),this._trigger("iconpickerShow"),this.updatePlacement(),this.popover.addClass("in"),void setTimeout(a.proxy(function(){this.popover.css("display",this.isInline()?"":"block"),this._trigger("iconpickerShown")},this),this.options.animation?300:1))},hide:function(){return!!this.popover.hasClass("in")&&(this._trigger("iconpickerHide"),this.popover.removeClass("in"),void setTimeout(a.proxy(function(){this.popover.css("display","none"),this.getSearchInput().val(""),this.filter(""),this._trigger("iconpickerHidden")},this),this.options.animation?300:1))},toggle:function(){this.popover.is(":visible")?this.hide():this.show(!0)},update:function(a,b){return a=a?a:this.getSourceValue(this.iconpickerValue),this._trigger("iconpickerUpdate"),b===!0?a=this.setValue(a):(a=this.setSourceValue(a),this._updateFormGroupStatus(a!==!1)),a!==!1&&this._updateComponents(),this._trigger("iconpickerUpdated"),a},destroy:function(){this._trigger("iconpickerDestroy"),this.element.removeData("iconpicker").removeData("iconpickerValue").removeClass("iconpicker-element"),this._unbindElementEvents(),this._unbindWindowEvents(),a(this.popover).remove(),this._trigger("iconpickerDestroyed")},disable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!0),!0)},enable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!1),!0)},isDisabled:function(){return!!this.hasInput()&&this.input.prop("disabled")===!0},isInline:function(){return"inline"===this.options.placement||this.popover.hasClass("inline")}},a.iconpicker=c,a.fn.iconpicker=function(b){return this.each(function(){var d=a(this);d.data("iconpicker")||d.data("iconpicker",new c(this,"object"==typeof b?b:{}))})},c.defaultOptions.icons=["fa-500px","fa-address-book","fa-address-book-o","fa-address-card","fa-address-card-o","fa-adjust","fa-adn","fa-align-center","fa-align-justify","fa-align-left","fa-align-right","fa-amazon","fa-ambulance","fa-american-sign-language-interpreting","fa-anchor","fa-android","fa-angellist","fa-angle-double-down","fa-angle-double-left","fa-angle-double-right","fa-angle-double-up","fa-angle-down","fa-angle-left","fa-angle-right","fa-angle-up","fa-apple","fa-archive","fa-area-chart","fa-arrow-circle-down","fa-arrow-circle-left","fa-arrow-circle-o-down","fa-arrow-circle-o-left","fa-arrow-circle-o-right","fa-arrow-circle-o-up","fa-arrow-circle-right","fa-arrow-circle-up","fa-arrow-down","fa-arrow-left","fa-arrow-right","fa-arrow-up","fa-arrows","fa-arrows-alt","fa-arrows-h","fa-arrows-v","fa-asl-interpreting","fa-assistive-listening-systems","fa-asterisk","fa-at","fa-audio-description","fa-automobile","fa-backward","fa-balance-scale","fa-ban","fa-bandcamp","fa-bank","fa-bar-chart","fa-bar-chart-o","fa-barcode","fa-bars","fa-bath","fa-bathtub","fa-battery","fa-battery-0","fa-battery-1","fa-battery-2","fa-battery-3","fa-battery-4","fa-battery-empty","fa-battery-full","fa-battery-half","fa-battery-quarter","fa-battery-three-quarters","fa-bed","fa-beer","fa-behance","fa-behance-square","fa-bell","fa-bell-o","fa-bell-slash","fa-bell-slash-o","fa-bicycle","fa-binoculars","fa-birthday-cake","fa-bitbucket","fa-bitbucket-square","fa-bitcoin","fa-black-tie","fa-blind","fa-bluetooth","fa-bluetooth-b","fa-bold","fa-bolt","fa-bomb","fa-book","fa-bookmark","fa-bookmark-o","fa-braille","fa-briefcase","fa-btc","fa-bug","fa-building","fa-building-o","fa-bullhorn","fa-bullseye","fa-bus","fa-buysellads","fa-cab","fa-calculator","fa-calendar","fa-calendar-check-o","fa-calendar-minus-o","fa-calendar-o","fa-calendar-plus-o","fa-calendar-times-o","fa-camera","fa-camera-retro","fa-car","fa-caret-down","fa-caret-left","fa-caret-right","fa-caret-square-o-down","fa-caret-square-o-left","fa-caret-square-o-right","fa-caret-square-o-up","fa-caret-up","fa-cart-arrow-down","fa-cart-plus","fa-cc","fa-cc-amex","fa-cc-diners-club","fa-cc-discover","fa-cc-jcb","fa-cc-mastercard","fa-cc-paypal","fa-cc-stripe","fa-cc-visa","fa-certificate","fa-chain","fa-chain-broken","fa-check","fa-check-circle","fa-check-circle-o","fa-check-square","fa-check-square-o","fa-chevron-circle-down","fa-chevron-circle-left","fa-chevron-circle-right","fa-chevron-circle-up","fa-chevron-down","fa-chevron-left","fa-chevron-right","fa-chevron-up","fa-child","fa-chrome","fa-circle","fa-circle-o","fa-circle-o-notch","fa-circle-thin","fa-clipboard","fa-clock-o","fa-clone","fa-close","fa-cloud","fa-cloud-download","fa-cloud-upload","fa-cny","fa-code","fa-code-fork","fa-codepen","fa-codiepie","fa-coffee","fa-cog","fa-cogs","fa-columns","fa-comment","fa-comment-o","fa-commenting","fa-commenting-o","fa-comments","fa-comments-o","fa-compass","fa-compress","fa-connectdevelop","fa-contao","fa-copy","fa-copyright","fa-creative-commons","fa-credit-card","fa-credit-card-alt","fa-crop","fa-crosshairs","fa-css3","fa-cube","fa-cubes","fa-cut","fa-cutlery","fa-dashboard","fa-dashcube","fa-database","fa-deaf","fa-deafness","fa-dedent","fa-delicious","fa-desktop","fa-deviantart","fa-diamond","fa-digg","fa-dollar","fa-dot-circle-o","fa-download","fa-dribbble","fa-drivers-license","fa-drivers-license-o","fa-dropbox","fa-drupal","fa-edge","fa-edit","fa-eercast","fa-eject","fa-ellipsis-h","fa-ellipsis-v","fa-empire","fa-envelope","fa-envelope-o","fa-envelope-open","fa-envelope-open-o","fa-envelope-square","fa-envira","fa-eraser","fa-etsy","fa-eur","fa-euro","fa-exchange","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-expand","fa-expeditedssl","fa-external-link","fa-external-link-square","fa-eye","fa-eye-slash","fa-eyedropper","fa-fa","fa-facebook","fa-facebook-f","fa-facebook-official","fa-facebook-square","fa-fast-backward","fa-fast-forward","fa-fax","fa-feed","fa-female","fa-fighter-jet","fa-file","fa-file-archive-o","fa-file-audio-o","fa-file-code-o","fa-file-excel-o","fa-file-image-o","fa-file-movie-o","fa-file-o","fa-file-pdf-o","fa-file-photo-o","fa-file-picture-o","fa-file-powerpoint-o","fa-file-sound-o","fa-file-text","fa-file-text-o","fa-file-video-o","fa-file-word-o","fa-file-zip-o","fa-files-o","fa-film","fa-filter","fa-fire","fa-fire-extinguisher","fa-firefox","fa-first-order","fa-flag","fa-flag-checkered","fa-flag-o","fa-flash","fa-flask","fa-flickr","fa-floppy-o","fa-folder","fa-folder-o","fa-folder-open","fa-folder-open-o","fa-font","fa-font-awesome","fa-fonticons","fa-fort-awesome","fa-forumbee","fa-forward","fa-foursquare","fa-free-code-camp","fa-frown-o","fa-futbol-o","fa-gamepad","fa-gavel","fa-gbp","fa-ge","fa-gear","fa-gears","fa-genderless","fa-get-pocket","fa-gg","fa-gg-circle","fa-gift","fa-git","fa-git-square","fa-github","fa-github-alt","fa-github-square","fa-gitlab","fa-gittip","fa-glass","fa-glide","fa-glide-g","fa-globe","fa-google","fa-google-plus","fa-google-plus-circle","fa-google-plus-official","fa-google-plus-square","fa-google-wallet","fa-graduation-cap","fa-gratipay","fa-grav","fa-group","fa-h-square","fa-hacker-news","fa-hand-grab-o","fa-hand-lizard-o","fa-hand-o-down","fa-hand-o-left","fa-hand-o-right","fa-hand-o-up","fa-hand-paper-o","fa-hand-peace-o","fa-hand-pointer-o","fa-hand-rock-o","fa-hand-scissors-o","fa-hand-spock-o","fa-hand-stop-o","fa-handshake-o","fa-hard-of-hearing","fa-hashtag","fa-hdd-o","fa-header","fa-headphones","fa-heart","fa-heart-o","fa-heartbeat","fa-history","fa-home","fa-hospital-o","fa-hotel","fa-hourglass","fa-hourglass-1","fa-hourglass-2","fa-hourglass-3","fa-hourglass-end","fa-hourglass-half","fa-hourglass-o","fa-hourglass-start","fa-houzz","fa-html5","fa-i-cursor","fa-id-badge","fa-id-card","fa-id-card-o","fa-ils","fa-image","fa-imdb","fa-inbox","fa-indent","fa-industry","fa-info","fa-info-circle","fa-inr","fa-instagram","fa-institution","fa-internet-explorer","fa-intersex","fa-ioxhost","fa-italic","fa-joomla","fa-jpy","fa-jsfiddle","fa-key","fa-keyboard-o","fa-krw","fa-language","fa-laptop","fa-lastfm","fa-lastfm-square","fa-leaf","fa-leanpub","fa-legal","fa-lemon-o","fa-level-down","fa-level-up","fa-life-bouy","fa-life-buoy","fa-life-ring","fa-life-saver","fa-lightbulb-o","fa-line-chart","fa-link","fa-linkedin","fa-linkedin-square","fa-linode","fa-linux","fa-list","fa-list-alt","fa-list-ol","fa-list-ul","fa-location-arrow","fa-lock","fa-long-arrow-down","fa-long-arrow-left","fa-long-arrow-right","fa-long-arrow-up","fa-low-vision","fa-magic","fa-magnet","fa-mail-forward","fa-mail-reply","fa-mail-reply-all","fa-male","fa-map","fa-map-marker","fa-map-o","fa-map-pin","fa-map-signs","fa-mars","fa-mars-double","fa-mars-stroke","fa-mars-stroke-h","fa-mars-stroke-v","fa-maxcdn","fa-meanpath","fa-medium","fa-medkit","fa-meetup","fa-meh-o","fa-mercury","fa-microchip","fa-microphone","fa-microphone-slash","fa-minus","fa-minus-circle","fa-minus-square","fa-minus-square-o","fa-mixcloud","fa-mobile","fa-mobile-phone","fa-modx","fa-money","fa-moon-o","fa-mortar-board","fa-motorcycle","fa-mouse-pointer","fa-music","fa-navicon","fa-neuter","fa-newspaper-o","fa-object-group","fa-object-ungroup","fa-odnoklassniki","fa-odnoklassniki-square","fa-opencart","fa-openid","fa-opera","fa-optin-monster","fa-outdent","fa-pagelines","fa-paint-brush","fa-paper-plane","fa-paper-plane-o","fa-paperclip","fa-paragraph","fa-paste","fa-pause","fa-pause-circle","fa-pause-circle-o","fa-paw","fa-paypal","fa-pencil","fa-pencil-square","fa-pencil-square-o","fa-percent","fa-phone","fa-phone-square","fa-photo","fa-picture-o","fa-pie-chart","fa-pied-piper","fa-pied-piper-alt","fa-pied-piper-pp","fa-pinterest","fa-pinterest-p","fa-pinterest-square","fa-plane","fa-play","fa-play-circle","fa-play-circle-o","fa-plug","fa-plus","fa-plus-circle","fa-plus-square","fa-plus-square-o","fa-podcast","fa-power-off","fa-print","fa-product-hunt","fa-puzzle-piece","fa-qq","fa-qrcode","fa-question","fa-question-circle","fa-question-circle-o","fa-quora","fa-quote-left","fa-quote-right","fa-ra","fa-random","fa-ravelry","fa-rebel","fa-recycle","fa-reddit","fa-reddit-alien","fa-reddit-square","fa-refresh","fa-registered","fa-remove","fa-renren","fa-reorder","fa-repeat","fa-reply","fa-reply-all","fa-resistance","fa-retweet","fa-rmb","fa-road","fa-rocket","fa-rotate-left","fa-rotate-right","fa-rouble","fa-rss","fa-rss-square","fa-rub","fa-ruble","fa-rupee","fa-s15","fa-safari","fa-save","fa-scissors","fa-scribd","fa-search","fa-search-minus","fa-search-plus","fa-sellsy","fa-send","fa-send-o","fa-server","fa-share","fa-share-alt","fa-share-alt-square","fa-share-square","fa-share-square-o","fa-shekel","fa-sheqel","fa-shield","fa-ship","fa-shirtsinbulk","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-shower","fa-sign-in","fa-sign-language","fa-sign-out","fa-signal","fa-signing","fa-simplybuilt","fa-sitemap","fa-skyatlas","fa-skype","fa-slack","fa-sliders","fa-slideshare","fa-smile-o","fa-snapchat","fa-snapchat-ghost","fa-snapchat-square","fa-snowflake-o","fa-soccer-ball-o","fa-sort","fa-sort-alpha-asc","fa-sort-alpha-desc","fa-sort-amount-asc","fa-sort-amount-desc","fa-sort-asc","fa-sort-desc","fa-sort-down","fa-sort-numeric-asc","fa-sort-numeric-desc","fa-sort-up","fa-soundcloud","fa-space-shuttle","fa-spinner","fa-spoon","fa-spotify","fa-square","fa-square-o","fa-stack-exchange","fa-stack-overflow","fa-star","fa-star-half","fa-star-half-empty","fa-star-half-full","fa-star-half-o","fa-star-o","fa-steam","fa-steam-square","fa-step-backward","fa-step-forward","fa-stethoscope","fa-sticky-note","fa-sticky-note-o","fa-stop","fa-stop-circle","fa-stop-circle-o","fa-street-view","fa-strikethrough","fa-stumbleupon","fa-stumbleupon-circle","fa-subscript","fa-subway","fa-suitcase","fa-sun-o","fa-superpowers","fa-superscript","fa-support","fa-table","fa-tablet","fa-tachometer","fa-tag","fa-tags","fa-tasks","fa-taxi","fa-telegram","fa-television","fa-tencent-weibo","fa-terminal","fa-text-height","fa-text-width","fa-th","fa-th-large","fa-th-list","fa-themeisle","fa-thermometer","fa-thermometer-0","fa-thermometer-1","fa-thermometer-2","fa-thermometer-3","fa-thermometer-4","fa-thermometer-empty","fa-thermometer-full","fa-thermometer-half","fa-thermometer-quarter","fa-thermometer-three-quarters","fa-thumb-tack","fa-thumbs-down","fa-thumbs-o-down","fa-thumbs-o-up","fa-thumbs-up","fa-ticket","fa-times","fa-times-circle","fa-times-circle-o","fa-times-rectangle","fa-times-rectangle-o","fa-tint","fa-toggle-down","fa-toggle-left","fa-toggle-off","fa-toggle-on","fa-toggle-right","fa-toggle-up","fa-trademark","fa-train","fa-transgender","fa-transgender-alt","fa-trash","fa-trash-o","fa-tree","fa-trello","fa-tripadvisor","fa-trophy","fa-truck","fa-try","fa-tty","fa-tumblr","fa-tumblr-square","fa-turkish-lira","fa-tv","fa-twitch","fa-twitter","fa-twitter-square","fa-umbrella","fa-underline","fa-undo","fa-universal-access","fa-university","fa-unlink","fa-unlock","fa-unlock-alt","fa-unsorted","fa-upload","fa-usb","fa-usd","fa-user","fa-user-circle","fa-user-circle-o","fa-user-md","fa-user-o","fa-user-plus","fa-user-secret","fa-user-times","fa-users","fa-vcard","fa-vcard-o","fa-venus","fa-venus-double","fa-venus-mars","fa-viacoin","fa-viadeo","fa-viadeo-square","fa-video-camera","fa-vimeo","fa-vimeo-square","fa-vine","fa-vk","fa-volume-control-phone","fa-volume-down","fa-volume-off","fa-volume-up","fa-warning","fa-wechat","fa-weibo","fa-weixin","fa-whatsapp","fa-wheelchair","fa-wheelchair-alt","fa-wifi","fa-wikipedia-w","fa-window-close","fa-window-close-o","fa-window-maximize","fa-window-minimize","fa-window-restore","fa-windows","fa-won","fa-wordpress","fa-wpbeginner","fa-wpexplorer","fa-wpforms","fa-wrench","fa-xing","fa-xing-square","fa-y-combinator","fa-y-combinator-square","fa-yahoo","fa-yc","fa-yc-square","fa-yelp","fa-yen","fa-yoast","fa-youtube","fa-youtube-play","fa-youtube-square"]; -}); \ No newline at end of file +/*! + * Font Awesome Icon Picker + * https://farbelous.github.io/fontawesome-iconpicker/ + * + * Originally written by (c) 2016 Javi Aguilar + * Licensed under the MIT License + * https://github.com/farbelous/fontawesome-iconpicker/blob/master/LICENSE + * + */ +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){a.ui=a.ui||{};a.ui.version="1.12.1";/*! + * jQuery UI Position 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/position/ + */ +!function(){function b(a,b,c){return[parseFloat(a[0])*(l.test(a[0])?b/100:1),parseFloat(a[1])*(l.test(a[1])?c/100:1)]}function c(b,c){return parseInt(a.css(b,c),10)||0}function d(b){var c=b[0];return 9===c.nodeType?{width:b.width(),height:b.height(),offset:{top:0,left:0}}:a.isWindow(c)?{width:b.width(),height:b.height(),offset:{top:b.scrollTop(),left:b.scrollLeft()}}:c.preventDefault?{width:0,height:0,offset:{top:c.pageY,left:c.pageX}}:{width:b.outerWidth(),height:b.outerHeight(),offset:b.offset()}}var e,f=Math.max,g=Math.abs,h=/left|center|right/,i=/top|center|bottom/,j=/[\+\-]\d+(\.[\d]+)?%?/,k=/^\w+/,l=/%$/,m=a.fn.pos;a.pos={scrollbarWidth:function(){if(void 0!==e)return e;var b,c,d=a("
"),f=d.children()[0];return a("body").append(d),b=f.offsetWidth,d.css("overflow","scroll"),c=f.offsetWidth,b===c&&(c=d[0].clientWidth),d.remove(),e=b-c},getScrollInfo:function(b){var c=b.isWindow||b.isDocument?"":b.element.css("overflow-x"),d=b.isWindow||b.isDocument?"":b.element.css("overflow-y"),e="scroll"===c||"auto"===c&&b.width0?"right":"center",vertical:h<0?"top":d>0?"bottom":"middle"};nf(g(d),g(h))?l.important="horizontal":l.important="vertical",e.using.call(this,a,l)}),i.offset(a.extend(z,{using:h}))})},a.ui.pos={_trigger:function(a,b,c,d){b.elem&&b.elem.trigger({type:c,position:a,positionData:b,triggered:d})},fit:{left:function(b,c){a.ui.pos._trigger(b,c,"posCollide","fitLeft");var d,e=c.within,g=e.isWindow?e.scrollLeft:e.offset.left,h=e.width,i=b.left-c.collisionPosition.marginLeft,j=g-i,k=i+c.collisionWidth-h-g;c.collisionWidth>h?j>0&&k<=0?(d=b.left+j+c.collisionWidth-h-g,b.left+=j-d):b.left=k>0&&j<=0?g:j>k?g+h-c.collisionWidth:g:j>0?b.left+=j:k>0?b.left-=k:b.left=f(b.left-i,b.left),a.ui.pos._trigger(b,c,"posCollided","fitLeft")},top:function(b,c){a.ui.pos._trigger(b,c,"posCollide","fitTop");var d,e=c.within,g=e.isWindow?e.scrollTop:e.offset.top,h=c.within.height,i=b.top-c.collisionPosition.marginTop,j=g-i,k=i+c.collisionHeight-h-g;c.collisionHeight>h?j>0&&k<=0?(d=b.top+j+c.collisionHeight-h-g,b.top+=j-d):b.top=k>0&&j<=0?g:j>k?g+h-c.collisionHeight:g:j>0?b.top+=j:k>0?b.top-=k:b.top=f(b.top-i,b.top),a.ui.pos._trigger(b,c,"posCollided","fitTop")}},flip:{left:function(b,c){a.ui.pos._trigger(b,c,"posCollide","flipLeft");var d,e,f=c.within,h=f.offset.left+f.scrollLeft,i=f.width,j=f.isWindow?f.scrollLeft:f.offset.left,k=b.left-c.collisionPosition.marginLeft,l=k-j,m=k+c.collisionWidth-i-j,n="left"===c.my[0]?-c.elemWidth:"right"===c.my[0]?c.elemWidth:0,o="left"===c.at[0]?c.targetWidth:"right"===c.at[0]?-c.targetWidth:0,p=-2*c.offset[0];l<0?((d=b.left+n+o+p+c.collisionWidth-i-h)<0||d0&&((e=b.left-c.collisionPosition.marginLeft+n+o+p-j)>0||g(e)0&&((d=b.top-c.collisionPosition.marginTop+o+p+q-j)>0||g(d)10&&e<11,b.innerHTML="",c.removeChild(b)}()}();a.ui.position}),function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):window.jQuery&&!window.jQuery.fn.iconpicker&&a(window.jQuery)}(function(a){"use strict";var b={isEmpty:function(a){return!1===a||""===a||null===a||void 0===a},isEmptyObject:function(a){return!0===this.isEmpty(a)||0===a.length},isElement:function(b){return a(b).length>0},isString:function(a){return"string"==typeof a||a instanceof String},isArray:function(b){return a.isArray(b)},inArray:function(b,c){return-1!==a.inArray(b,c)},throwError:function(a){throw"Font Awesome Icon Picker Exception: "+a}},c=function(d,e){this._id=c._idCounter++,this.element=a(d).addClass("iconpicker-element"),this._trigger("iconpickerCreate",{iconpickerValue:this.iconpickerValue}),this.options=a.extend({},c.defaultOptions,this.element.data(),e),this.options.templates=a.extend({},c.defaultOptions.templates,this.options.templates),this.options.originalPlacement=this.options.placement,this.container=!!b.isElement(this.options.container)&&a(this.options.container),!1===this.container&&(this.element.is(".dropdown-toggle")?this.container=a("~ .dropdown-menu:first",this.element):this.container=this.element.is("input,textarea,button,.btn")?this.element.parent():this.element),this.container.addClass("iconpicker-container"),this.isDropdownMenu()&&(this.options.placement="inline"),this.input=!!this.element.is("input,textarea")&&this.element.addClass("iconpicker-input"),!1===this.input&&(this.input=this.container.find(this.options.input),this.input.is("input,textarea")||(this.input=!1)),this.component=this.isDropdownMenu()?this.container.parent().find(this.options.component):this.container.find(this.options.component),0===this.component.length?this.component=!1:this.component.find("i").addClass("iconpicker-component"),this._createPopover(),this._createIconpicker(),0===this.getAcceptButton().length&&(this.options.mustAccept=!1),this.isInputGroup()?this.container.parent().append(this.popover):this.container.append(this.popover),this._bindElementEvents(),this._bindWindowEvents(),this.update(this.options.selected),this.isInline()&&this.show(),this._trigger("iconpickerCreated",{iconpickerValue:this.iconpickerValue})};c._idCounter=0,c.defaultOptions={title:!1,selected:!1,defaultValue:!1,placement:"bottom",collision:"none",animation:!0,hideOnSelect:!1,showFooter:!1,searchInFooter:!1,mustAccept:!1,selectedCustomClass:"bg-primary",icons:[],fullClassFormatter:function(a){return a},input:"input,.iconpicker-input",inputSearch:!1,container:!1,component:".input-group-addon,.iconpicker-component",templates:{popover:'
',footer:'',buttons:' ',search:'',iconpicker:'
',iconpickerItem:''}},c.batch=function(b,c){var d=Array.prototype.slice.call(arguments,2);return a(b).each(function(){var b=a(this).data("iconpicker");b&&b[c].apply(b,d)})},c.prototype={constructor:c,options:{},_id:0,_trigger:function(b,c){c=c||{},this.element.trigger(a.extend({type:b,iconpickerInstance:this},c))},_createPopover:function(){this.popover=a(this.options.templates.popover);var c=this.popover.find(".popover-title");if(this.options.title&&c.append(a('
'+this.options.title+"
")),this.hasSeparatedSearchInput()&&!this.options.searchInFooter?c.append(this.options.templates.search):this.options.title||c.remove(),this.options.showFooter&&!b.isEmpty(this.options.templates.footer)){var d=a(this.options.templates.footer);this.hasSeparatedSearchInput()&&this.options.searchInFooter&&d.append(a(this.options.templates.search)),b.isEmpty(this.options.templates.buttons)||d.append(a(this.options.templates.buttons)),this.popover.append(d)}return!0===this.options.animation&&this.popover.addClass("fade"),this.popover},_createIconpicker:function(){var b=this;this.iconpicker=a(this.options.templates.iconpicker);var c=function(c){var d=a(this);d.is("i")&&(d=d.parent()),b._trigger("iconpickerSelect",{iconpickerItem:d,iconpickerValue:b.iconpickerValue}),!1===b.options.mustAccept?(b.update(d.data("iconpickerValue")),b._trigger("iconpickerSelected",{iconpickerItem:this,iconpickerValue:b.iconpickerValue})):b.update(d.data("iconpickerValue"),!0),b.options.hideOnSelect&&!1===b.options.mustAccept&&b.hide()};for(var d in this.options.icons)if("string"==typeof this.options.icons[d].title){var e=a(this.options.templates.iconpickerItem);if(e.find("i").addClass(this.options.fullClassFormatter(this.options.icons[d].title)),e.data("iconpickerValue",this.options.icons[d].title).on("click.iconpicker",c),this.iconpicker.find(".iconpicker-items").append(e.attr("title","."+this.options.icons[d].title)),this.options.icons[d].searchTerms.length>0){for(var f="",g=0;g0?a.attr("class",this.options.fullClassFormatter(this.iconpickerValue)):this.component.html(this.getHtml())}},_updateFormGroupStatus:function(a){return!!this.hasInput()&&(!1!==a?this.input.parents(".form-group:first").removeClass("has-error"):this.input.parents(".form-group:first").addClass("has-error"),!0)},getValid:function(c){b.isString(c)||(c="");var d=""===c;c=a.trim(c);for(var e=!1,f=0;f
'},setSourceValue:function(a){return a=this.setValue(a),!1!==a&&""!==a&&(this.hasInput()?this.input.val(this.iconpickerValue):this.element.data("iconpickerValue",this.iconpickerValue),this._trigger("iconpickerSetSourceValue",{iconpickerValue:a})),a},getSourceValue:function(a){a=a||this.options.defaultValue;var b=a;return b=this.hasInput()?this.input.val():this.element.data("iconpickerValue"),void 0!==b&&""!==b&&null!==b&&!1!==b||(b=a),b},hasInput:function(){return!1!==this.input},isInputSearch:function(){return this.hasInput()&&!0===this.options.inputSearch},isInputGroup:function(){return this.container.is(".input-group")},isDropdownMenu:function(){return this.container.is(".dropdown-menu")},hasSeparatedSearchInput:function(){return!1!==this.options.templates.search&&!this.isInputSearch()},hasComponent:function(){return!1!==this.component},hasContainer:function(){return!1!==this.container},getAcceptButton:function(){return this.popover.find(".iconpicker-btn-accept")},getCancelButton:function(){return this.popover.find(".iconpicker-btn-cancel")},getSearchInput:function(){return this.popover.find(".iconpicker-search")},filter:function(c){if(b.isEmpty(c))return this.iconpicker.find(".iconpicker-item").show(),a(!1);var d=[];return this.iconpicker.find(".iconpicker-item").each(function(){var b=a(this),e=b.attr("title").toLowerCase();e=e+" "+(b.attr("data-search-terms")?b.attr("data-search-terms").toLowerCase():"");var f=!1;try{f=new RegExp("(^|\\W)"+c,"g")}catch(a){f=!1}!1!==f&&e.match(f)?(d.push(b),b.show()):b.hide()}),d},show:function(){if(this.popover.hasClass("in"))return!1;a.iconpicker.batch(a(".iconpicker-popover.in:not(.inline)").not(this.popover),"hide"),this._trigger("iconpickerShow",{iconpickerValue:this.iconpickerValue}),this.updatePlacement(),this.popover.addClass("in"),setTimeout(a.proxy(function(){this.popover.css("display",this.isInline()?"":"block"),this._trigger("iconpickerShown",{iconpickerValue:this.iconpickerValue})},this),this.options.animation?300:1)},hide:function(){if(!this.popover.hasClass("in"))return!1;this._trigger("iconpickerHide",{iconpickerValue:this.iconpickerValue}),this.popover.removeClass("in"),setTimeout(a.proxy(function(){this.popover.css("display","none"),this.getSearchInput().val(""),this.filter(""),this._trigger("iconpickerHidden",{iconpickerValue:this.iconpickerValue})},this),this.options.animation?300:1)},toggle:function(){this.popover.is(":visible")?this.hide():this.show(!0)},update:function(a,b){return a=a||this.getSourceValue(this.iconpickerValue),this._trigger("iconpickerUpdate",{iconpickerValue:this.iconpickerValue}),!0===b?a=this.setValue(a):(a=this.setSourceValue(a),this._updateFormGroupStatus(!1!==a)),!1!==a&&this._updateComponents(),this._trigger("iconpickerUpdated",{iconpickerValue:this.iconpickerValue}),a},destroy:function(){this._trigger("iconpickerDestroy",{iconpickerValue:this.iconpickerValue}),this.element.removeData("iconpicker").removeData("iconpickerValue").removeClass("iconpicker-element"),this._unbindElementEvents(),this._unbindWindowEvents(),a(this.popover).remove(),this._trigger("iconpickerDestroyed",{iconpickerValue:this.iconpickerValue})},disable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!0),!0)},enable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!1),!0)},isDisabled:function(){return!!this.hasInput()&&!0===this.input.prop("disabled")},isInline:function(){return"inline"===this.options.placement||this.popover.hasClass("inline")}},a.iconpicker=c,a.fn.iconpicker=function(b){return this.each(function(){var d=a(this);d.data("iconpicker")||d.data("iconpicker",new c(this,"object"==typeof b?b:{}))})},c.defaultOptions=a.extend(c.defaultOptions,{icons:[{title:"fab fa-500px",searchTerms:[]},{title:"fab fa-accessible-icon",searchTerms:["accessibility","wheelchair","handicap","person","wheelchair-alt"]},{title:"fab fa-accusoft",searchTerms:[]},{title:"fas fa-address-book",searchTerms:[]},{title:"far fa-address-book",searchTerms:[]},{title:"fas fa-address-card",searchTerms:[]},{title:"far fa-address-card",searchTerms:[]},{title:"fas fa-adjust",searchTerms:["contrast"]},{title:"fab fa-adn",searchTerms:[]},{title:"fab fa-adversal",searchTerms:[]},{title:"fab fa-affiliatetheme",searchTerms:[]},{title:"fab fa-algolia",searchTerms:[]},{title:"fas fa-align-center",searchTerms:["middle","text"]},{title:"fas fa-align-justify",searchTerms:["text"]},{title:"fas fa-align-left",searchTerms:["text"]},{title:"fas fa-align-right",searchTerms:["text"]},{title:"fab fa-amazon",searchTerms:[]},{title:"fab fa-amazon-pay",searchTerms:[]},{title:"fas fa-ambulance",searchTerms:["vehicle","support","help"]},{title:"fas fa-american-sign-language-interpreting",searchTerms:[]},{title:"fab fa-amilia",searchTerms:[]},{title:"fas fa-anchor",searchTerms:["link"]},{title:"fab fa-android",searchTerms:["robot"]},{title:"fab fa-angellist",searchTerms:[]},{title:"fas fa-angle-double-down",searchTerms:["arrows"]},{title:"fas fa-angle-double-left",searchTerms:["laquo","quote","previous","back","arrows"]},{title:"fas fa-angle-double-right",searchTerms:["raquo","quote","next","forward","arrows"]},{title:"fas fa-angle-double-up",searchTerms:["arrows"]},{title:"fas fa-angle-down",searchTerms:["arrow"]},{title:"fas fa-angle-left",searchTerms:["previous","back","arrow"]},{title:"fas fa-angle-right",searchTerms:["next","forward","arrow"]},{title:"fas fa-angle-up",searchTerms:["arrow"]},{title:"fab fa-angrycreative",searchTerms:[]},{title:"fab fa-angular",searchTerms:[]},{title:"fab fa-app-store",searchTerms:[]},{title:"fab fa-app-store-ios",searchTerms:[]},{title:"fab fa-apper",searchTerms:[]},{title:"fab fa-apple",searchTerms:["osx","food"]},{title:"fab fa-apple-pay",searchTerms:[]},{title:"fas fa-archive",searchTerms:["box","storage","package"]},{title:"fas fa-arrow-alt-circle-down",searchTerms:["download","arrow-circle-o-down"]},{title:"far fa-arrow-alt-circle-down",searchTerms:["download","arrow-circle-o-down"]},{title:"fas fa-arrow-alt-circle-left",searchTerms:["previous","back","arrow-circle-o-left"]},{title:"far fa-arrow-alt-circle-left",searchTerms:["previous","back","arrow-circle-o-left"]},{title:"fas fa-arrow-alt-circle-right",searchTerms:["next","forward","arrow-circle-o-right"]},{title:"far fa-arrow-alt-circle-right",searchTerms:["next","forward","arrow-circle-o-right"]},{title:"fas fa-arrow-alt-circle-up",searchTerms:["arrow-circle-o-up"]},{title:"far fa-arrow-alt-circle-up",searchTerms:["arrow-circle-o-up"]},{title:"fas fa-arrow-circle-down",searchTerms:["download"]},{title:"fas fa-arrow-circle-left",searchTerms:["previous","back"]},{title:"fas fa-arrow-circle-right",searchTerms:["next","forward"]},{title:"fas fa-arrow-circle-up",searchTerms:[]},{title:"fas fa-arrow-down",searchTerms:["download"]},{title:"fas fa-arrow-left",searchTerms:["previous","back"]},{title:"fas fa-arrow-right",searchTerms:["next","forward"]},{title:"fas fa-arrow-up",searchTerms:[]},{title:"fas fa-arrows-alt",searchTerms:["expand","enlarge","fullscreen","bigger","move","reorder","resize","arrow","arrows"]},{title:"fas fa-arrows-alt-h",searchTerms:["resize","arrows-h"]},{title:"fas fa-arrows-alt-v",searchTerms:["resize","arrows-v"]},{title:"fas fa-assistive-listening-systems",searchTerms:[]},{title:"fas fa-asterisk",searchTerms:["details"]},{title:"fab fa-asymmetrik",searchTerms:[]},{title:"fas fa-at",searchTerms:["email","e-mail"]},{title:"fab fa-audible",searchTerms:[]},{title:"fas fa-audio-description",searchTerms:[]},{title:"fab fa-autoprefixer",searchTerms:[]},{title:"fab fa-avianex",searchTerms:[]},{title:"fab fa-aviato",searchTerms:[]},{title:"fab fa-aws",searchTerms:[]},{title:"fas fa-backward",searchTerms:["rewind","previous"]},{title:"fas fa-balance-scale",searchTerms:[]},{title:"fas fa-ban",searchTerms:["delete","remove","trash","hide","block","stop","abort","cancel","ban","prohibit"]},{title:"fas fa-band-aid",searchTerms:["bandage","ouch","boo boo"]},{title:"fab fa-bandcamp",searchTerms:[]},{title:"fas fa-barcode",searchTerms:["scan"]},{title:"fas fa-bars",searchTerms:["menu","drag","reorder","settings","list","ul","ol","checklist","todo","list","hamburger"]},{title:"fas fa-baseball-ball",searchTerms:[]},{title:"fas fa-basketball-ball",searchTerms:[]},{title:"fas fa-bath",searchTerms:[]},{title:"fas fa-battery-empty",searchTerms:["power","status"]},{title:"fas fa-battery-full",searchTerms:["power","status"]},{title:"fas fa-battery-half",searchTerms:["power","status"]},{title:"fas fa-battery-quarter",searchTerms:["power","status"]},{title:"fas fa-battery-three-quarters",searchTerms:["power","status"]},{title:"fas fa-bed",searchTerms:["travel"]},{title:"fas fa-beer",searchTerms:["alcohol","stein","drink","mug","bar","liquor"]},{title:"fab fa-behance",searchTerms:[]},{title:"fab fa-behance-square",searchTerms:[]},{title:"fas fa-bell",searchTerms:["alert","reminder","notification"]},{title:"far fa-bell",searchTerms:["alert","reminder","notification"]},{title:"fas fa-bell-slash",searchTerms:[]},{title:"far fa-bell-slash",searchTerms:[]},{title:"fas fa-bicycle",searchTerms:["vehicle","bike","gears"]},{title:"fab fa-bimobject",searchTerms:[]},{title:"fas fa-binoculars",searchTerms:[]},{title:"fas fa-birthday-cake",searchTerms:[]},{title:"fab fa-bitbucket",searchTerms:["git","bitbucket-square"]},{title:"fab fa-bitcoin",searchTerms:[]},{title:"fab fa-bity",searchTerms:[]},{title:"fab fa-black-tie",searchTerms:[]},{title:"fab fa-blackberry",searchTerms:[]},{title:"fas fa-blind",searchTerms:[]},{title:"fab fa-blogger",searchTerms:[]},{title:"fab fa-blogger-b",searchTerms:[]},{title:"fab fa-bluetooth",searchTerms:[]},{title:"fab fa-bluetooth-b",searchTerms:[]},{title:"fas fa-bold",searchTerms:[]},{title:"fas fa-bolt",searchTerms:["lightning","weather"]},{title:"fas fa-bomb",searchTerms:[]},{title:"fas fa-book",searchTerms:["read","documentation"]},{title:"fas fa-bookmark",searchTerms:["save"]},{title:"far fa-bookmark",searchTerms:["save"]},{title:"fas fa-bowling-ball",searchTerms:[]},{title:"fas fa-box",searchTerms:[]},{title:"fas fa-boxes",searchTerms:[]},{title:"fas fa-braille",searchTerms:[]},{title:"fas fa-briefcase",searchTerms:["work","business","office","luggage","bag"]},{title:"fab fa-btc",searchTerms:[]},{title:"fas fa-bug",searchTerms:["report","insect"]},{title:"fas fa-building",searchTerms:["work","business","apartment","office","company"]},{title:"far fa-building",searchTerms:["work","business","apartment","office","company"]},{title:"fas fa-bullhorn",searchTerms:["announcement","share","broadcast","louder","megaphone"]},{title:"fas fa-bullseye",searchTerms:["target"]},{title:"fab fa-buromobelexperte",searchTerms:[]},{title:"fas fa-bus",searchTerms:["vehicle"]},{title:"fab fa-buysellads",searchTerms:[]},{title:"fas fa-calculator",searchTerms:[]},{title:"fas fa-calendar",searchTerms:["date","time","when","event","calendar-o"]},{title:"far fa-calendar",searchTerms:["date","time","when","event","calendar-o"]},{title:"fas fa-calendar-alt",searchTerms:["date","time","when","event","calendar"]},{title:"far fa-calendar-alt",searchTerms:["date","time","when","event","calendar"]},{title:"fas fa-calendar-check",searchTerms:["ok"]},{title:"far fa-calendar-check",searchTerms:["ok"]},{title:"fas fa-calendar-minus",searchTerms:[]},{title:"far fa-calendar-minus",searchTerms:[]},{title:"fas fa-calendar-plus",searchTerms:[]},{title:"far fa-calendar-plus",searchTerms:[]},{title:"fas fa-calendar-times",searchTerms:[]},{title:"far fa-calendar-times",searchTerms:[]},{title:"fas fa-camera",searchTerms:["photo","picture","record"]},{title:"fas fa-camera-retro",searchTerms:["photo","picture","record"]},{title:"fas fa-car",searchTerms:["vehicle"]},{title:"fas fa-caret-down",searchTerms:["more","dropdown","menu","triangle down","arrow"]},{title:"fas fa-caret-left",searchTerms:["previous","back","triangle left","arrow"]},{title:"fas fa-caret-right",searchTerms:["next","forward","triangle right","arrow"]},{title:"fas fa-caret-square-down",searchTerms:["more","dropdown","menu","caret-square-o-down"]},{title:"far fa-caret-square-down",searchTerms:["more","dropdown","menu","caret-square-o-down"]},{title:"fas fa-caret-square-left",searchTerms:["previous","back","caret-square-o-left"]},{title:"far fa-caret-square-left",searchTerms:["previous","back","caret-square-o-left"]},{title:"fas fa-caret-square-right",searchTerms:["next","forward","caret-square-o-right"]},{title:"far fa-caret-square-right",searchTerms:["next","forward","caret-square-o-right"]},{title:"fas fa-caret-square-up",searchTerms:["caret-square-o-up"]},{title:"far fa-caret-square-up",searchTerms:["caret-square-o-up"]},{title:"fas fa-caret-up",searchTerms:["triangle up","arrow"]},{title:"fas fa-cart-arrow-down",searchTerms:["shopping"]},{title:"fas fa-cart-plus",searchTerms:["add","shopping"]},{title:"fab fa-cc-amazon-pay",searchTerms:[]},{title:"fab fa-cc-amex",searchTerms:["amex"]},{title:"fab fa-cc-apple-pay",searchTerms:[]},{title:"fab fa-cc-diners-club",searchTerms:[]},{title:"fab fa-cc-discover",searchTerms:[]},{title:"fab fa-cc-jcb",searchTerms:[]},{title:"fab fa-cc-mastercard",searchTerms:[]},{title:"fab fa-cc-paypal",searchTerms:[]},{title:"fab fa-cc-stripe",searchTerms:[]},{title:"fab fa-cc-visa",searchTerms:[]},{title:"fab fa-centercode",searchTerms:[]},{title:"fas fa-certificate",searchTerms:["badge","star"]},{title:"fas fa-chart-area",searchTerms:["graph","analytics","area-chart"]},{title:"fas fa-chart-bar",searchTerms:["graph","analytics","bar-chart"]},{title:"far fa-chart-bar",searchTerms:["graph","analytics","bar-chart"]},{title:"fas fa-chart-line",searchTerms:["graph","analytics","line-chart","dashboard"]},{title:"fas fa-chart-pie",searchTerms:["graph","analytics","pie-chart"]},{title:"fas fa-check",searchTerms:["checkmark","done","todo","agree","accept","confirm","tick","ok","select"]},{title:"fas fa-check-circle",searchTerms:["todo","done","agree","accept","confirm","ok","select"]},{title:"far fa-check-circle",searchTerms:["todo","done","agree","accept","confirm","ok","select"]},{title:"fas fa-check-square",searchTerms:["checkmark","done","todo","agree","accept","confirm","ok","select"]},{title:"far fa-check-square",searchTerms:["checkmark","done","todo","agree","accept","confirm","ok","select"]},{title:"fas fa-chess",searchTerms:[]},{title:"fas fa-chess-bishop",searchTerms:[]},{title:"fas fa-chess-board",searchTerms:[]},{title:"fas fa-chess-king",searchTerms:[]},{title:"fas fa-chess-knight",searchTerms:[]},{title:"fas fa-chess-pawn",searchTerms:[]},{title:"fas fa-chess-queen",searchTerms:[]},{title:"fas fa-chess-rook",searchTerms:[]},{title:"fas fa-chevron-circle-down",searchTerms:["more","dropdown","menu","arrow"]},{title:"fas fa-chevron-circle-left",searchTerms:["previous","back","arrow"]},{title:"fas fa-chevron-circle-right",searchTerms:["next","forward","arrow"]},{title:"fas fa-chevron-circle-up",searchTerms:["arrow"]},{title:"fas fa-chevron-down",searchTerms:[]},{title:"fas fa-chevron-left",searchTerms:["bracket","previous","back"]},{title:"fas fa-chevron-right",searchTerms:["bracket","next","forward"]},{title:"fas fa-chevron-up",searchTerms:[]},{title:"fas fa-child",searchTerms:[]},{title:"fab fa-chrome",searchTerms:["browser"]},{title:"fas fa-circle",searchTerms:["dot","notification","circle-thin"]},{title:"far fa-circle",searchTerms:["dot","notification","circle-thin"]},{title:"fas fa-circle-notch",searchTerms:["circle-o-notch"]},{title:"fas fa-clipboard",searchTerms:["paste"]},{title:"far fa-clipboard",searchTerms:["paste"]},{title:"fas fa-clipboard-check",searchTerms:[]},{title:"fas fa-clipboard-list",searchTerms:[]},{title:"fas fa-clock",searchTerms:["watch","timer","late","timestamp","date"]},{title:"far fa-clock",searchTerms:["watch","timer","late","timestamp","date"]},{title:"fas fa-clone",searchTerms:["copy"]},{title:"far fa-clone",searchTerms:["copy"]},{title:"fas fa-closed-captioning",searchTerms:["cc"]},{title:"far fa-closed-captioning",searchTerms:["cc"]},{title:"fas fa-cloud",searchTerms:["save"]},{title:"fas fa-cloud-download-alt",searchTerms:["cloud-download"]},{title:"fas fa-cloud-upload-alt",searchTerms:["cloud-upload"]},{title:"fab fa-cloudscale",searchTerms:[]},{title:"fab fa-cloudsmith",searchTerms:[]},{title:"fab fa-cloudversify",searchTerms:[]},{title:"fas fa-code",searchTerms:["html","brackets"]},{title:"fas fa-code-branch",searchTerms:["git","fork","vcs","svn","github","rebase","version","branch","code-fork"]},{title:"fab fa-codepen",searchTerms:[]},{title:"fab fa-codiepie",searchTerms:[]},{title:"fas fa-coffee",searchTerms:["morning","mug","breakfast","tea","drink","cafe"]},{title:"fas fa-cog",searchTerms:["settings"]},{title:"fas fa-cogs",searchTerms:["settings","gears"]},{title:"fas fa-columns",searchTerms:["split","panes","dashboard"]},{title:"fas fa-comment",searchTerms:["speech","notification","note","chat","bubble","feedback","message","texting","sms","conversation"]},{title:"far fa-comment",searchTerms:["speech","notification","note","chat","bubble","feedback","message","texting","sms","conversation"]},{title:"fas fa-comment-alt",searchTerms:["speech","notification","note","chat","bubble","feedback","message","texting","sms","conversation","commenting","commenting"]},{title:"far fa-comment-alt",searchTerms:["speech","notification","note","chat","bubble","feedback","message","texting","sms","conversation","commenting","commenting"]},{title:"fas fa-comments",searchTerms:["speech","notification","note","chat","bubble","feedback","message","texting","sms","conversation"]},{title:"far fa-comments",searchTerms:["speech","notification","note","chat","bubble","feedback","message","texting","sms","conversation"]},{title:"fas fa-compass",searchTerms:["safari","directory","menu","location"]},{title:"far fa-compass",searchTerms:["safari","directory","menu","location"]},{title:"fas fa-compress",searchTerms:["collapse","combine","contract","merge","smaller"]},{title:"fab fa-connectdevelop",searchTerms:[]},{title:"fab fa-contao",searchTerms:[]},{title:"fas fa-copy",searchTerms:["duplicate","clone","file","files-o"]},{title:"far fa-copy",searchTerms:["duplicate","clone","file","files-o"]},{title:"fas fa-copyright",searchTerms:[]},{title:"far fa-copyright",searchTerms:[]},{title:"fab fa-cpanel",searchTerms:[]},{title:"fab fa-creative-commons",searchTerms:[]},{title:"fas fa-credit-card",searchTerms:["money","buy","debit","checkout","purchase","payment","credit-card-alt"]},{title:"far fa-credit-card",searchTerms:["money","buy","debit","checkout","purchase","payment","credit-card-alt"]},{title:"fas fa-crop",searchTerms:["design"]},{title:"fas fa-crosshairs",searchTerms:["picker","gpd"]},{title:"fab fa-css3",searchTerms:["code"]},{title:"fab fa-css3-alt",searchTerms:[]},{title:"fas fa-cube",searchTerms:["package"]},{title:"fas fa-cubes",searchTerms:["packages"]},{title:"fas fa-cut",searchTerms:["scissors","scissors"]},{title:"fab fa-cuttlefish",searchTerms:[]},{title:"fab fa-d-and-d",searchTerms:[]},{title:"fab fa-dashcube",searchTerms:[]},{title:"fas fa-database",searchTerms:[]},{title:"fas fa-deaf",searchTerms:[]},{title:"fab fa-delicious",searchTerms:[]},{title:"fab fa-deploydog",searchTerms:[]},{title:"fab fa-deskpro",searchTerms:[]},{title:"fas fa-desktop",searchTerms:["monitor","screen","desktop","computer","demo","device","pc"]},{title:"fab fa-deviantart",searchTerms:[]},{title:"fab fa-digg",searchTerms:[]},{title:"fab fa-digital-ocean",searchTerms:[]},{title:"fab fa-discord",searchTerms:[]},{title:"fab fa-discourse",searchTerms:[]},{title:"fas fa-dna",searchTerms:["double helix","helix"]},{title:"fab fa-dochub",searchTerms:[]},{title:"fab fa-docker",searchTerms:[]},{title:"fas fa-dollar-sign",searchTerms:["usd","price"]},{title:"fas fa-dolly",searchTerms:[]},{title:"fas fa-dolly-flatbed",searchTerms:[]},{title:"fas fa-dot-circle",searchTerms:["target","bullseye","notification"]},{title:"far fa-dot-circle",searchTerms:["target","bullseye","notification"]},{title:"fas fa-download",searchTerms:["import"]},{title:"fab fa-draft2digital",searchTerms:[]},{title:"fab fa-dribbble",searchTerms:[]},{title:"fab fa-dribbble-square",searchTerms:[]},{title:"fab fa-dropbox",searchTerms:[]},{title:"fab fa-drupal",searchTerms:[]},{title:"fab fa-dyalog",searchTerms:[]},{title:"fab fa-earlybirds",searchTerms:[]},{title:"fab fa-edge",searchTerms:["browser","ie"]},{title:"fas fa-edit",searchTerms:["write","edit","update","pencil","pen"]},{title:"far fa-edit",searchTerms:["write","edit","update","pencil","pen"]},{title:"fas fa-eject",searchTerms:[]},{title:"fab fa-elementor",searchTerms:[]},{title:"fas fa-ellipsis-h",searchTerms:["dots"]},{title:"fas fa-ellipsis-v",searchTerms:["dots"]},{title:"fab fa-ember",searchTerms:[]},{title:"fab fa-empire",searchTerms:[]},{title:"fas fa-envelope",searchTerms:["email","e-mail","letter","support","mail","message","notification"]},{title:"far fa-envelope",searchTerms:["email","e-mail","letter","support","mail","message","notification"]},{title:"fas fa-envelope-open",searchTerms:["email","e-mail","letter","support","mail","message","notification"]},{title:"far fa-envelope-open",searchTerms:["email","e-mail","letter","support","mail","message","notification"]},{title:"fas fa-envelope-square",searchTerms:["email","e-mail","letter","support","mail","message","notification"]},{title:"fab fa-envira",searchTerms:["leaf"]},{title:"fas fa-eraser",searchTerms:["remove","delete"]},{title:"fab fa-erlang",searchTerms:[]},{title:"fab fa-ethereum",searchTerms:[]},{title:"fab fa-etsy",searchTerms:[]},{title:"fas fa-euro-sign",searchTerms:["eur","eur"]},{title:"fas fa-exchange-alt",searchTerms:["transfer","arrows","arrow","exchange","swap"]},{title:"fas fa-exclamation",searchTerms:["warning","error","problem","notification","notify","alert","danger"]},{title:"fas fa-exclamation-circle",searchTerms:["warning","error","problem","notification","notify","alert","danger"]},{title:"fas fa-exclamation-triangle",searchTerms:["warning","error","problem","notification","notify","alert","danger"]},{title:"fas fa-expand",searchTerms:["enlarge","bigger","resize"]},{title:"fas fa-expand-arrows-alt",searchTerms:["enlarge","bigger","resize","move","arrows-alt"]},{title:"fab fa-expeditedssl",searchTerms:[]},{title:"fas fa-external-link-alt",searchTerms:["open","new","external-link"]},{title:"fas fa-external-link-square-alt",searchTerms:["open","new","external-link-square"]},{title:"fas fa-eye",searchTerms:["show","visible","views"]},{title:"fas fa-eye-dropper",searchTerms:["eyedropper"]},{title:"fas fa-eye-slash",searchTerms:["toggle","show","hide","visible","visiblity","views"]},{title:"far fa-eye-slash",searchTerms:["toggle","show","hide","visible","visiblity","views"]},{title:"fab fa-facebook",searchTerms:["social network","facebook-official"]},{title:"fab fa-facebook-f",searchTerms:["facebook"]},{title:"fab fa-facebook-messenger",searchTerms:[]},{title:"fab fa-facebook-square",searchTerms:["social network"]},{title:"fas fa-fast-backward",searchTerms:["rewind","previous","beginning","start","first"]},{title:"fas fa-fast-forward",searchTerms:["next","end","last"]},{title:"fas fa-fax",searchTerms:[]},{title:"fas fa-female",searchTerms:["woman","human","user","person","profile"]},{title:"fas fa-fighter-jet",searchTerms:["fly","plane","airplane","quick","fast","travel"]},{title:"fas fa-file",searchTerms:["new","page","pdf","document"]},{title:"far fa-file",searchTerms:["new","page","pdf","document"]},{title:"fas fa-file-alt",searchTerms:["new","page","pdf","document","file-text"]},{title:"far fa-file-alt",searchTerms:["new","page","pdf","document","file-text"]},{title:"fas fa-file-archive",searchTerms:[]},{title:"far fa-file-archive",searchTerms:[]},{title:"fas fa-file-audio",searchTerms:[]},{title:"far fa-file-audio",searchTerms:[]},{title:"fas fa-file-code",searchTerms:[]},{title:"far fa-file-code",searchTerms:[]},{title:"fas fa-file-excel",searchTerms:[]},{title:"far fa-file-excel",searchTerms:[]},{title:"fas fa-file-image",searchTerms:[]},{title:"far fa-file-image",searchTerms:[]},{title:"fas fa-file-pdf",searchTerms:[]},{title:"far fa-file-pdf",searchTerms:[]},{title:"fas fa-file-powerpoint",searchTerms:[]},{title:"far fa-file-powerpoint",searchTerms:[]},{title:"fas fa-file-video",searchTerms:[]},{title:"far fa-file-video",searchTerms:[]},{title:"fas fa-file-word",searchTerms:[]},{title:"far fa-file-word",searchTerms:[]},{title:"fas fa-film",searchTerms:["movie"]},{title:"fas fa-filter",searchTerms:["funnel","options"]},{title:"fas fa-fire",searchTerms:["flame","hot","popular"]},{title:"fas fa-fire-extinguisher",searchTerms:[]},{title:"fab fa-firefox",searchTerms:["browser"]},{title:"fas fa-first-aid",searchTerms:[]},{title:"fab fa-first-order",searchTerms:[]},{title:"fab fa-firstdraft",searchTerms:[]},{title:"fas fa-flag",searchTerms:["report","notification","notify"]},{title:"far fa-flag",searchTerms:["report","notification","notify"]},{title:"fas fa-flag-checkered",searchTerms:["report","notification","notify"]},{title:"fas fa-flask",searchTerms:["science","beaker","experimental","labs"]},{title:"fab fa-flickr",searchTerms:[]},{title:"fab fa-flipboard",searchTerms:[]},{title:"fab fa-fly",searchTerms:[]},{title:"fas fa-folder",searchTerms:[]},{title:"far fa-folder",searchTerms:[]},{title:"fas fa-folder-open",searchTerms:[]},{title:"far fa-folder-open",searchTerms:[]},{title:"fas fa-font",searchTerms:["text"]},{title:"fab fa-font-awesome",searchTerms:["meanpath"]},{title:"fab fa-font-awesome-alt",searchTerms:[]},{title:"fab fa-font-awesome-flag",searchTerms:[]},{title:"fab fa-fonticons",searchTerms:[]},{title:"fab fa-fonticons-fi",searchTerms:[]},{title:"fas fa-football-ball",searchTerms:[]},{title:"fab fa-fort-awesome",searchTerms:["castle"]},{title:"fab fa-fort-awesome-alt",searchTerms:["castle"]},{title:"fab fa-forumbee",searchTerms:[]},{title:"fas fa-forward",searchTerms:["forward","next"]},{title:"fab fa-foursquare",searchTerms:[]},{title:"fab fa-free-code-camp",searchTerms:[]},{title:"fab fa-freebsd",searchTerms:[]},{title:"fas fa-frown",searchTerms:["face","emoticon","sad","disapprove","rating"]},{title:"far fa-frown",searchTerms:["face","emoticon","sad","disapprove","rating"]},{title:"fas fa-futbol",searchTerms:[]},{title:"far fa-futbol",searchTerms:[]},{title:"fas fa-gamepad",searchTerms:["controller"]},{title:"fas fa-gavel",searchTerms:["judge","lawyer","opinion","hammer"]},{title:"fas fa-gem",searchTerms:["diamond"]},{title:"far fa-gem",searchTerms:["diamond"]},{title:"fas fa-genderless",searchTerms:[]},{title:"fab fa-get-pocket",searchTerms:[]},{title:"fab fa-gg",searchTerms:[]},{title:"fab fa-gg-circle",searchTerms:[]},{title:"fas fa-gift",searchTerms:["present"]},{title:"fab fa-git",searchTerms:[]},{title:"fab fa-git-square",searchTerms:[]},{title:"fab fa-github",searchTerms:["octocat"]},{title:"fab fa-github-alt",searchTerms:["octocat"]},{title:"fab fa-github-square",searchTerms:["octocat"]},{title:"fab fa-gitkraken",searchTerms:[]},{title:"fab fa-gitlab",searchTerms:["Axosoft"]},{title:"fab fa-gitter",searchTerms:[]},{title:"fas fa-glass-martini",searchTerms:["martini","drink","bar","alcohol","liquor","glass"]},{title:"fab fa-glide",searchTerms:[]},{title:"fab fa-glide-g",searchTerms:[]},{title:"fas fa-globe",searchTerms:["world","planet","map","place","travel","earth","global","translate","all","language","localize","location","coordinates","country","gps"]},{title:"fab fa-gofore",searchTerms:[]},{title:"fas fa-golf-ball",searchTerms:[]},{title:"fab fa-goodreads",searchTerms:[]},{title:"fab fa-goodreads-g",searchTerms:[]},{title:"fab fa-google",searchTerms:[]},{title:"fab fa-google-drive",searchTerms:[]},{title:"fab fa-google-play",searchTerms:[]},{title:"fab fa-google-plus",searchTerms:["google-plus-circle","google-plus-official"]},{title:"fab fa-google-plus-g",searchTerms:["social network","google-plus"]},{title:"fab fa-google-plus-square",searchTerms:["social network"]},{title:"fab fa-google-wallet",searchTerms:[]},{title:"fas fa-graduation-cap",searchTerms:["learning","school","student"]},{title:"fab fa-gratipay",searchTerms:["heart","like","favorite","love"]},{title:"fab fa-grav",searchTerms:[]},{title:"fab fa-gripfire",searchTerms:[]},{title:"fab fa-grunt",searchTerms:[]},{title:"fab fa-gulp",searchTerms:[]},{title:"fas fa-h-square",searchTerms:["hospital","hotel"]},{title:"fab fa-hacker-news",searchTerms:[]},{title:"fab fa-hacker-news-square",searchTerms:[]},{title:"fas fa-hand-lizard",searchTerms:[]},{title:"far fa-hand-lizard",searchTerms:[]},{title:"fas fa-hand-paper",searchTerms:["stop"]},{title:"far fa-hand-paper",searchTerms:["stop"]},{title:"fas fa-hand-peace",searchTerms:[]},{title:"far fa-hand-peace",searchTerms:[]},{title:"fas fa-hand-point-down",searchTerms:["point","finger","hand-o-down"]},{title:"far fa-hand-point-down",searchTerms:["point","finger","hand-o-down"]},{title:"fas fa-hand-point-left",searchTerms:["point","left","previous","back","finger","hand-o-left"]},{title:"far fa-hand-point-left",searchTerms:["point","left","previous","back","finger","hand-o-left"]},{title:"fas fa-hand-point-right",searchTerms:["point","right","next","forward","finger","hand-o-right"]},{title:"far fa-hand-point-right",searchTerms:["point","right","next","forward","finger","hand-o-right"]},{title:"fas fa-hand-point-up",searchTerms:["point","finger","hand-o-up"]},{title:"far fa-hand-point-up",searchTerms:["point","finger","hand-o-up"]},{title:"fas fa-hand-pointer",searchTerms:["select"]},{title:"far fa-hand-pointer",searchTerms:["select"]},{title:"fas fa-hand-rock",searchTerms:[]},{title:"far fa-hand-rock",searchTerms:[]},{title:"fas fa-hand-scissors",searchTerms:[]},{title:"far fa-hand-scissors",searchTerms:[]},{title:"fas fa-hand-spock",searchTerms:[]},{title:"far fa-hand-spock",searchTerms:[]},{title:"fas fa-handshake",searchTerms:[]},{title:"far fa-handshake",searchTerms:[]},{title:"fas fa-hashtag",searchTerms:[]},{title:"fas fa-hdd",searchTerms:["harddrive","hard drive","storage","save"]},{title:"far fa-hdd",searchTerms:["harddrive","hard drive","storage","save"]},{title:"fas fa-heading",searchTerms:["header","header"]},{title:"fas fa-headphones",searchTerms:["sound","listen","music","audio"]},{title:"fas fa-heart",searchTerms:["love","like","favorite"]},{title:"far fa-heart",searchTerms:["love","like","favorite"]},{title:"fas fa-heartbeat",searchTerms:["ekg","vital signs"]},{title:"fab fa-hips",searchTerms:[]},{title:"fab fa-hire-a-helper",searchTerms:[]},{title:"fas fa-history",searchTerms:[]},{title:"fas fa-hockey-puck",searchTerms:[]},{title:"fas fa-home",searchTerms:["main","house"]},{title:"fab fa-hooli",searchTerms:[]},{title:"fas fa-hospital",searchTerms:["building","medical center","emergency room"]},{title:"far fa-hospital",searchTerms:["building","medical center","emergency room"]},{title:"fas fa-hospital-symbol",searchTerms:[]},{title:"fab fa-hotjar",searchTerms:[]},{title:"fas fa-hourglass",searchTerms:[]},{title:"far fa-hourglass",searchTerms:[]},{title:"fas fa-hourglass-end",searchTerms:[]},{title:"fas fa-hourglass-half",searchTerms:[]},{title:"fas fa-hourglass-start",searchTerms:[]},{title:"fab fa-houzz",searchTerms:[]},{title:"fab fa-html5",searchTerms:[]},{title:"fab fa-hubspot",searchTerms:[]},{title:"fas fa-i-cursor",searchTerms:[]},{title:"fas fa-id-badge",searchTerms:[]},{title:"far fa-id-badge",searchTerms:[]},{title:"fas fa-id-card",searchTerms:[]},{title:"far fa-id-card",searchTerms:[]},{title:"fas fa-image",searchTerms:["photo","album","picture","picture"]},{title:"far fa-image",searchTerms:["photo","album","picture","picture"]},{title:"fas fa-images",searchTerms:["photo","album","picture"]},{title:"far fa-images",searchTerms:["photo","album","picture"]},{title:"fab fa-imdb",searchTerms:[]},{title:"fas fa-inbox",searchTerms:[]},{title:"fas fa-indent",searchTerms:[]},{title:"fas fa-industry",searchTerms:["factory"]},{title:"fas fa-info",searchTerms:["help","information","more","details"]},{title:"fas fa-info-circle",searchTerms:["help","information","more","details"]},{title:"fab fa-instagram",searchTerms:[]},{title:"fab fa-internet-explorer",searchTerms:["browser","ie"]},{title:"fab fa-ioxhost",searchTerms:[]},{title:"fas fa-italic",searchTerms:["italics"]},{title:"fab fa-itunes",searchTerms:[]},{title:"fab fa-itunes-note",searchTerms:[]},{title:"fab fa-jenkins",searchTerms:[]},{title:"fab fa-joget",searchTerms:[]},{title:"fab fa-joomla",searchTerms:[]},{title:"fab fa-js",searchTerms:[]},{title:"fab fa-js-square",searchTerms:[]},{title:"fab fa-jsfiddle",searchTerms:[]},{title:"fas fa-key",searchTerms:["unlock","password"]},{title:"fas fa-keyboard",searchTerms:["type","input"]},{title:"far fa-keyboard",searchTerms:["type","input"]},{title:"fab fa-keycdn",searchTerms:[]},{title:"fab fa-kickstarter",searchTerms:[]},{title:"fab fa-kickstarter-k",searchTerms:[]},{title:"fab fa-korvue",searchTerms:[]},{title:"fas fa-language",searchTerms:[]},{title:"fas fa-laptop",searchTerms:["demo","computer","device","pc"]},{title:"fab fa-laravel",searchTerms:[]},{title:"fab fa-lastfm",searchTerms:[]},{title:"fab fa-lastfm-square",searchTerms:[]},{title:"fas fa-leaf",searchTerms:["eco","nature","plant"]},{title:"fab fa-leanpub",searchTerms:[]},{title:"fas fa-lemon",searchTerms:["food"]},{title:"far fa-lemon",searchTerms:["food"]},{title:"fab fa-less",searchTerms:[]},{title:"fas fa-level-down-alt",searchTerms:["level-down"]},{title:"fas fa-level-up-alt",searchTerms:["level-up"]},{title:"fas fa-life-ring",searchTerms:["support"]},{title:"far fa-life-ring",searchTerms:["support"]},{title:"fas fa-lightbulb",searchTerms:["idea","inspiration"]},{title:"far fa-lightbulb",searchTerms:["idea","inspiration"]},{title:"fab fa-line",searchTerms:[]},{title:"fas fa-link",searchTerms:["chain"]},{title:"fab fa-linkedin",searchTerms:["linkedin-square"]},{title:"fab fa-linkedin-in",searchTerms:["linkedin"]},{title:"fab fa-linode",searchTerms:[]},{title:"fab fa-linux",searchTerms:["tux"]},{title:"fas fa-lira-sign",searchTerms:["try","turkish","try"]},{title:"fas fa-list",searchTerms:["ul","ol","checklist","finished","completed","done","todo"]},{title:"fas fa-list-alt",searchTerms:["ul","ol","checklist","finished","completed","done","todo"]},{title:"far fa-list-alt",searchTerms:["ul","ol","checklist","finished","completed","done","todo"]},{title:"fas fa-list-ol",searchTerms:["ul","ol","checklist","list","todo","list","numbers"]},{title:"fas fa-list-ul",searchTerms:["ul","ol","checklist","todo","list"]},{title:"fas fa-location-arrow",searchTerms:["map","coordinates","location","address","place","where","gps"]},{title:"fas fa-lock",searchTerms:["protect","admin","security"]},{title:"fas fa-lock-open",searchTerms:["protect","admin","password","lock","open"]},{title:"fas fa-long-arrow-alt-down",searchTerms:["long-arrow-down"]},{title:"fas fa-long-arrow-alt-left",searchTerms:["previous","back","long-arrow-left"]},{title:"fas fa-long-arrow-alt-right",searchTerms:["long-arrow-right"]},{title:"fas fa-long-arrow-alt-up",searchTerms:["long-arrow-up"]},{title:"fas fa-low-vision",searchTerms:[]},{title:"fab fa-lyft",searchTerms:[]},{title:"fab fa-magento",searchTerms:[]},{title:"fas fa-magic",searchTerms:["wizard","automatic","autocomplete"]},{title:"fas fa-magnet",searchTerms:[]},{title:"fas fa-male",searchTerms:["man","human","user","person","profile"]},{title:"fas fa-map",searchTerms:[]},{title:"far fa-map",searchTerms:[]},{title:"fas fa-map-marker",searchTerms:["map","pin","location","coordinates","localize","address","travel","where","place","gps"]},{title:"fas fa-map-marker-alt",searchTerms:["map-marker","gps"]},{title:"fas fa-map-pin",searchTerms:[]},{title:"fas fa-map-signs",searchTerms:[]},{title:"fas fa-mars",searchTerms:["male"]},{title:"fas fa-mars-double",searchTerms:[]},{title:"fas fa-mars-stroke",searchTerms:[]},{title:"fas fa-mars-stroke-h",searchTerms:[]},{title:"fas fa-mars-stroke-v",searchTerms:[]},{title:"fab fa-maxcdn",searchTerms:[]},{title:"fab fa-medapps",searchTerms:[]},{title:"fab fa-medium",searchTerms:[]},{title:"fab fa-medium-m",searchTerms:[]},{title:"fas fa-medkit",searchTerms:["first aid","firstaid","help","support","health"]},{title:"fab fa-medrt",searchTerms:[]},{title:"fab fa-meetup",searchTerms:[]},{title:"fas fa-meh",searchTerms:["face","emoticon","rating","neutral"]},{title:"far fa-meh",searchTerms:["face","emoticon","rating","neutral"]},{title:"fas fa-mercury",searchTerms:["transgender"]},{title:"fas fa-microchip",searchTerms:[]},{title:"fas fa-microphone",searchTerms:["record","voice","sound"]},{title:"fas fa-microphone-slash",searchTerms:["record","voice","sound","mute"]},{title:"fab fa-microsoft",searchTerms:[]},{title:"fas fa-minus",searchTerms:["hide","minify","delete","remove","trash","hide","collapse"]},{title:"fas fa-minus-circle",searchTerms:["delete","remove","trash","hide"]},{title:"fas fa-minus-square",searchTerms:["hide","minify","delete","remove","trash","hide","collapse"]},{title:"far fa-minus-square",searchTerms:["hide","minify","delete","remove","trash","hide","collapse"]},{title:"fab fa-mix",searchTerms:[]},{title:"fab fa-mixcloud",searchTerms:[]},{title:"fab fa-mizuni",searchTerms:[]},{title:"fas fa-mobile",searchTerms:["cell phone","cellphone","text","call","iphone","number","telephone"]},{title:"fas fa-mobile-alt",searchTerms:["mobile"]},{title:"fab fa-modx",searchTerms:[]},{title:"fab fa-monero",searchTerms:[]},{title:"fas fa-money-bill-alt",searchTerms:["cash","money","buy","checkout","purchase","payment","price"]},{title:"far fa-money-bill-alt",searchTerms:["cash","money","buy","checkout","purchase","payment","price"]},{title:"fas fa-moon",searchTerms:["night","darker","contrast"]},{title:"far fa-moon",searchTerms:["night","darker","contrast"]},{title:"fas fa-motorcycle",searchTerms:["vehicle","bike"]},{title:"fas fa-mouse-pointer",searchTerms:["select"]},{title:"fas fa-music",searchTerms:["note","sound"]},{title:"fab fa-napster",searchTerms:[]},{title:"fas fa-neuter",searchTerms:[]},{title:"fas fa-newspaper",searchTerms:["press","article"]},{title:"far fa-newspaper",searchTerms:["press","article"]},{title:"fab fa-nintendo-switch",searchTerms:[]},{title:"fab fa-node",searchTerms:[]},{title:"fab fa-node-js",searchTerms:[]},{title:"fab fa-npm",searchTerms:[]},{title:"fab fa-ns8",searchTerms:[]},{title:"fab fa-nutritionix",searchTerms:[]},{title:"fas fa-object-group",searchTerms:["design"]},{title:"far fa-object-group",searchTerms:["design"]},{title:"fas fa-object-ungroup",searchTerms:["design"]},{title:"far fa-object-ungroup",searchTerms:["design"]},{title:"fab fa-odnoklassniki",searchTerms:[]},{title:"fab fa-odnoklassniki-square",searchTerms:[]},{title:"fab fa-opencart",searchTerms:[]},{title:"fab fa-openid",searchTerms:[]},{title:"fab fa-opera",searchTerms:[]},{title:"fab fa-optin-monster",searchTerms:[]},{title:"fab fa-osi",searchTerms:[]},{title:"fas fa-outdent",searchTerms:[]},{title:"fab fa-page4",searchTerms:[]},{title:"fab fa-pagelines",searchTerms:["leaf","leaves","tree","plant","eco","nature"]},{title:"fas fa-paint-brush",searchTerms:[]},{title:"fab fa-palfed",searchTerms:[]},{title:"fas fa-pallet",searchTerms:[]},{title:"fas fa-paper-plane",searchTerms:[]},{title:"far fa-paper-plane",searchTerms:[]},{title:"fas fa-paperclip",searchTerms:["attachment"]},{title:"fas fa-paragraph",searchTerms:[]},{title:"fas fa-paste",searchTerms:["copy","clipboard"]},{title:"fab fa-patreon",searchTerms:[]},{title:"fas fa-pause",searchTerms:["wait"]},{title:"fas fa-pause-circle",searchTerms:[]},{title:"far fa-pause-circle",searchTerms:[]},{title:"fas fa-paw",searchTerms:["pet"]},{title:"fab fa-paypal",searchTerms:[]},{title:"fas fa-pen-square",searchTerms:["write","edit","update","pencil-square"]},{title:"fas fa-pencil-alt",searchTerms:["write","edit","update","pencil","design"]},{title:"fas fa-percent",searchTerms:[]},{title:"fab fa-periscope",searchTerms:[]},{title:"fab fa-phabricator",searchTerms:[]},{title:"fab fa-phoenix-framework",searchTerms:[]},{title:"fas fa-phone",searchTerms:["call","voice","number","support","earphone","telephone"]},{title:"fas fa-phone-square",searchTerms:["call","voice","number","support","telephone"]},{title:"fas fa-phone-volume",searchTerms:["telephone","volume-control-phone"]},{title:"fab fa-php",searchTerms:[]},{title:"fab fa-pied-piper",searchTerms:[]},{title:"fab fa-pied-piper-alt",searchTerms:[]},{title:"fab fa-pied-piper-pp",searchTerms:[]},{title:"fas fa-pills",searchTerms:["medicine","drugs"]},{title:"fab fa-pinterest",searchTerms:[]},{title:"fab fa-pinterest-p",searchTerms:[]},{title:"fab fa-pinterest-square",searchTerms:[]},{title:"fas fa-plane",searchTerms:["travel","trip","location","destination","airplane","fly","mode"]},{title:"fas fa-play",searchTerms:["start","playing","music","sound"]},{title:"fas fa-play-circle",searchTerms:["start","playing"]},{title:"far fa-play-circle",searchTerms:["start","playing"]},{title:"fab fa-playstation",searchTerms:[]},{title:"fas fa-plug",searchTerms:["power","connect"]},{title:"fas fa-plus",searchTerms:["add","new","create","expand"]},{title:"fas fa-plus-circle",searchTerms:["add","new","create","expand"]},{title:"fas fa-plus-square",searchTerms:["add","new","create","expand"]},{title:"far fa-plus-square",searchTerms:["add","new","create","expand"]},{title:"fas fa-podcast",searchTerms:[]},{title:"fas fa-pound-sign",searchTerms:["gbp","gbp"]},{title:"fas fa-power-off",searchTerms:["on"]},{title:"fas fa-print",searchTerms:[]},{title:"fab fa-product-hunt",searchTerms:[]},{title:"fab fa-pushed",searchTerms:[]},{title:"fas fa-puzzle-piece",searchTerms:["addon","add-on","section"]},{title:"fab fa-python",searchTerms:[]},{title:"fab fa-qq",searchTerms:[]},{title:"fas fa-qrcode",searchTerms:["scan"]},{title:"fas fa-question",searchTerms:["help","information","unknown","support"]},{title:"fas fa-question-circle",searchTerms:["help","information","unknown","support"]},{title:"far fa-question-circle",searchTerms:["help","information","unknown","support"]},{title:"fas fa-quidditch",searchTerms:[]},{title:"fab fa-quinscape",searchTerms:[]},{title:"fab fa-quora",searchTerms:[]},{title:"fas fa-quote-left",searchTerms:[]},{title:"fas fa-quote-right",searchTerms:[]},{title:"fas fa-random",searchTerms:["sort","shuffle"]},{title:"fab fa-ravelry",searchTerms:[]},{title:"fab fa-react",searchTerms:[]},{title:"fab fa-rebel",searchTerms:[]},{title:"fas fa-recycle",searchTerms:[]},{title:"fab fa-red-river",searchTerms:[]},{title:"fab fa-reddit",searchTerms:[]},{title:"fab fa-reddit-alien",searchTerms:[]},{title:"fab fa-reddit-square",searchTerms:[]},{title:"fas fa-redo",searchTerms:["forward","repeat","repeat"]},{title:"fas fa-redo-alt",searchTerms:["forward","repeat"]},{title:"fas fa-registered",searchTerms:[]},{title:"far fa-registered",searchTerms:[]},{title:"fab fa-rendact",searchTerms:[]},{title:"fab fa-renren",searchTerms:[]},{title:"fas fa-reply",searchTerms:[]},{title:"fas fa-reply-all",searchTerms:[]},{title:"fab fa-replyd",searchTerms:[]},{title:"fab fa-resolving",searchTerms:[]},{title:"fas fa-retweet",searchTerms:["refresh","reload","share","swap"]},{title:"fas fa-road",searchTerms:["street"]},{title:"fas fa-rocket",searchTerms:["app"]},{title:"fab fa-rocketchat",searchTerms:[]},{title:"fab fa-rockrms",searchTerms:[]},{title:"fas fa-rss",searchTerms:["blog"]},{title:"fas fa-rss-square",searchTerms:["feed","blog"]},{title:"fas fa-ruble-sign",searchTerms:["rub","rub"]},{title:"fas fa-rupee-sign",searchTerms:["indian","inr"]},{title:"fab fa-safari",searchTerms:["browser"]},{title:"fab fa-sass",searchTerms:[]},{title:"fas fa-save",searchTerms:["floppy","floppy-o"]},{title:"far fa-save",searchTerms:["floppy","floppy-o"]},{title:"fab fa-schlix",searchTerms:[]},{title:"fab fa-scribd",searchTerms:[]},{title:"fas fa-search",searchTerms:["magnify","zoom","enlarge","bigger"]},{title:"fas fa-search-minus",searchTerms:["magnify","minify","zoom","smaller"]},{title:"fas fa-search-plus",searchTerms:["magnify","zoom","enlarge","bigger"]},{title:"fab fa-searchengin",searchTerms:[]},{title:"fab fa-sellcast",searchTerms:["eercast"]},{title:"fab fa-sellsy",searchTerms:[]},{title:"fas fa-server",searchTerms:[]},{title:"fab fa-servicestack",searchTerms:[]},{title:"fas fa-share",searchTerms:[]},{title:"fas fa-share-alt",searchTerms:[]},{title:"fas fa-share-alt-square",searchTerms:[]},{title:"fas fa-share-square",searchTerms:["social","send"]},{title:"far fa-share-square",searchTerms:["social","send"]},{title:"fas fa-shekel-sign",searchTerms:["ils","ils"]},{title:"fas fa-shield-alt",searchTerms:["shield"]},{title:"fas fa-ship",searchTerms:["boat","sea"]},{title:"fas fa-shipping-fast",searchTerms:[]},{title:"fab fa-shirtsinbulk",searchTerms:[]},{title:"fas fa-shopping-bag",searchTerms:[]},{title:"fas fa-shopping-basket",searchTerms:[]},{title:"fas fa-shopping-cart",searchTerms:["checkout","buy","purchase","payment"]},{title:"fas fa-shower",searchTerms:[]},{title:"fas fa-sign-in-alt",searchTerms:["enter","join","log in","login","sign up","sign in","signin","signup","arrow","sign-in"]},{title:"fas fa-sign-language",searchTerms:[]},{title:"fas fa-sign-out-alt",searchTerms:["log out","logout","leave","exit","arrow","sign-out"]},{title:"fas fa-signal",searchTerms:["graph","bars","status"]},{title:"fab fa-simplybuilt",searchTerms:[]},{title:"fab fa-sistrix",searchTerms:[]},{title:"fas fa-sitemap",searchTerms:["directory","hierarchy","organization"]},{title:"fab fa-skyatlas",searchTerms:[]},{title:"fab fa-skype",searchTerms:[]},{title:"fab fa-slack",searchTerms:["hashtag","anchor","hash"]},{title:"fab fa-slack-hash",searchTerms:["hashtag","anchor","hash"]},{title:"fas fa-sliders-h",searchTerms:["settings","sliders"]},{title:"fab fa-slideshare",searchTerms:[]},{title:"fas fa-smile",searchTerms:["face","emoticon","happy","approve","satisfied","rating"]},{title:"far fa-smile",searchTerms:["face","emoticon","happy","approve","satisfied","rating"]},{title:"fab fa-snapchat",searchTerms:[]},{title:"fab fa-snapchat-ghost",searchTerms:[]},{title:"fab fa-snapchat-square",searchTerms:[]},{title:"fas fa-snowflake",searchTerms:[]},{title:"far fa-snowflake",searchTerms:[]},{title:"fas fa-sort",searchTerms:["order"]},{title:"fas fa-sort-alpha-down",searchTerms:["sort-alpha-asc"]},{title:"fas fa-sort-alpha-up",searchTerms:["sort-alpha-desc"]},{title:"fas fa-sort-amount-down",searchTerms:["sort-amount-asc"]},{title:"fas fa-sort-amount-up",searchTerms:["sort-amount-desc"]},{title:"fas fa-sort-down",searchTerms:["arrow","descending","sort-desc"]},{title:"fas fa-sort-numeric-down",searchTerms:["numbers","sort-numeric-asc"]},{title:"fas fa-sort-numeric-up",searchTerms:["numbers","sort-numeric-desc"]},{title:"fas fa-sort-up",searchTerms:["arrow","ascending","sort-asc"]},{title:"fab fa-soundcloud",searchTerms:[]},{title:"fas fa-space-shuttle",searchTerms:[]},{title:"fab fa-speakap",searchTerms:[]},{title:"fas fa-spinner",searchTerms:["loading","progress"]},{title:"fab fa-spotify",searchTerms:[]},{title:"fas fa-square",searchTerms:["block","box"]},{title:"far fa-square",searchTerms:["block","box"]},{title:"fas fa-square-full",searchTerms:[]},{title:"fab fa-stack-exchange",searchTerms:[]},{title:"fab fa-stack-overflow",searchTerms:[]},{title:"fas fa-star",searchTerms:["award","achievement","night","rating","score","favorite"]},{title:"far fa-star",searchTerms:["award","achievement","night","rating","score","favorite"]},{title:"fas fa-star-half",searchTerms:["award","achievement","rating","score","star-half-empty","star-half-full"]},{title:"far fa-star-half",searchTerms:["award","achievement","rating","score","star-half-empty","star-half-full"]},{title:"fab fa-staylinked",searchTerms:[]},{title:"fab fa-steam",searchTerms:[]},{title:"fab fa-steam-square",searchTerms:[]},{title:"fab fa-steam-symbol",searchTerms:[]},{title:"fas fa-step-backward",searchTerms:["rewind","previous","beginning","start","first"]},{title:"fas fa-step-forward",searchTerms:["next","end","last"]},{title:"fas fa-stethoscope",searchTerms:[]},{title:"fab fa-sticker-mule",searchTerms:[]},{title:"fas fa-sticky-note",searchTerms:[]},{title:"far fa-sticky-note",searchTerms:[]},{title:"fas fa-stop",searchTerms:["block","box","square"]},{title:"fas fa-stop-circle",searchTerms:[]},{title:"far fa-stop-circle",searchTerms:[]},{title:"fas fa-stopwatch",searchTerms:["time"]},{title:"fab fa-strava",searchTerms:[]},{title:"fas fa-street-view",searchTerms:["map"]},{title:"fas fa-strikethrough",searchTerms:[]},{title:"fab fa-stripe",searchTerms:[]},{title:"fab fa-stripe-s",searchTerms:[]},{title:"fab fa-studiovinari",searchTerms:[]},{title:"fab fa-stumbleupon",searchTerms:[]},{title:"fab fa-stumbleupon-circle",searchTerms:[]},{title:"fas fa-subscript",searchTerms:[]},{title:"fas fa-subway",searchTerms:[]},{title:"fas fa-suitcase",searchTerms:["trip","luggage","travel","move","baggage"]},{title:"fas fa-sun",searchTerms:["weather","contrast","lighter","brighten","day"]},{title:"far fa-sun",searchTerms:["weather","contrast","lighter","brighten","day"]},{title:"fab fa-superpowers",searchTerms:[]},{title:"fas fa-superscript",searchTerms:["exponential"]},{title:"fab fa-supple",searchTerms:[]},{title:"fas fa-sync",searchTerms:["reload","refresh","refresh"]},{title:"fas fa-sync-alt",searchTerms:["reload","refresh"]},{title:"fas fa-syringe",searchTerms:["immunizations","needle"]},{title:"fas fa-table",searchTerms:["data","excel","spreadsheet"]},{title:"fas fa-table-tennis",searchTerms:[]},{title:"fas fa-tablet",searchTerms:["ipad","device"]},{title:"fas fa-tablet-alt",searchTerms:["tablet"]},{title:"fas fa-tachometer-alt",searchTerms:["tachometer","dashboard"]},{title:"fas fa-tag",searchTerms:["label"]},{title:"fas fa-tags",searchTerms:["labels"]},{title:"fas fa-tasks",searchTerms:["progress","loading","downloading","downloads","settings"]},{title:"fas fa-taxi",searchTerms:["vehicle"]},{title:"fab fa-telegram",searchTerms:[]},{title:"fab fa-telegram-plane",searchTerms:[]},{title:"fab fa-tencent-weibo",searchTerms:[]},{title:"fas fa-terminal",searchTerms:["command","prompt","code"]},{title:"fas fa-text-height",searchTerms:[]},{title:"fas fa-text-width",searchTerms:[]},{title:"fas fa-th",searchTerms:["blocks","squares","boxes","grid"]},{title:"fas fa-th-large",searchTerms:["blocks","squares","boxes","grid"]},{title:"fas fa-th-list",searchTerms:["ul","ol","checklist","finished","completed","done","todo"]},{title:"fab fa-themeisle",searchTerms:[]},{title:"fas fa-thermometer",searchTerms:["temperature","fever"]},{title:"fas fa-thermometer-empty",searchTerms:["status"]},{title:"fas fa-thermometer-full",searchTerms:["status"]},{title:"fas fa-thermometer-half",searchTerms:["status"]},{title:"fas fa-thermometer-quarter",searchTerms:["status"]},{title:"fas fa-thermometer-three-quarters",searchTerms:["status"]},{title:"fas fa-thumbs-down",searchTerms:["dislike","disapprove","disagree","hand","thumbs-o-down"]},{title:"far fa-thumbs-down",searchTerms:["dislike","disapprove","disagree","hand","thumbs-o-down"]},{title:"fas fa-thumbs-up",searchTerms:["like","favorite","approve","agree","hand","thumbs-o-up"]},{title:"far fa-thumbs-up",searchTerms:["like","favorite","approve","agree","hand","thumbs-o-up"]},{title:"fas fa-thumbtack",searchTerms:["marker","pin","location","coordinates","thumb-tack"]},{title:"fas fa-ticket-alt",searchTerms:["ticket"]},{title:"fas fa-times",searchTerms:["close","exit","x","cross"]},{title:"fas fa-times-circle",searchTerms:["close","exit","x"]},{title:"far fa-times-circle",searchTerms:["close","exit","x"]},{title:"fas fa-tint",searchTerms:["raindrop","waterdrop","drop","droplet"]},{title:"fas fa-toggle-off",searchTerms:["switch"]},{title:"fas fa-toggle-on",searchTerms:["switch"]},{title:"fas fa-trademark",searchTerms:[]},{title:"fas fa-train",searchTerms:[]},{title:"fas fa-transgender",searchTerms:["intersex"]},{title:"fas fa-transgender-alt",searchTerms:[]},{title:"fas fa-trash",searchTerms:["garbage","delete","remove","hide"]},{title:"fas fa-trash-alt",searchTerms:["garbage","delete","remove","hide","trash","trash-o"]},{title:"far fa-trash-alt",searchTerms:["garbage","delete","remove","hide","trash","trash-o"]},{title:"fas fa-tree",searchTerms:[]},{title:"fab fa-trello",searchTerms:[]},{title:"fab fa-tripadvisor",searchTerms:[]},{title:"fas fa-trophy",searchTerms:["award","achievement","cup","winner","game"]},{title:"fas fa-truck",searchTerms:["shipping"]},{title:"fas fa-tty",searchTerms:[]},{title:"fab fa-tumblr",searchTerms:[]},{title:"fab fa-tumblr-square",searchTerms:[]},{title:"fas fa-tv",searchTerms:["display","computer","monitor","television"]},{title:"fab fa-twitch",searchTerms:[]},{title:"fab fa-twitter",searchTerms:["tweet","social network"]},{title:"fab fa-twitter-square",searchTerms:["tweet","social network"]},{title:"fab fa-typo3",searchTerms:[]},{title:"fab fa-uber",searchTerms:[]},{title:"fab fa-uikit",searchTerms:[]},{title:"fas fa-umbrella",searchTerms:[]},{title:"fas fa-underline",searchTerms:[]},{title:"fas fa-undo",searchTerms:["back"]},{title:"fas fa-undo-alt",searchTerms:["back"]},{title:"fab fa-uniregistry",searchTerms:[]},{title:"fas fa-universal-access",searchTerms:[]},{title:"fas fa-university",searchTerms:["bank","institution"]},{title:"fas fa-unlink",searchTerms:["remove","chain","chain-broken"]},{title:"fas fa-unlock",searchTerms:["protect","admin","password","lock"]},{title:"fas fa-unlock-alt",searchTerms:["protect","admin","password","lock"]},{title:"fab fa-untappd",searchTerms:[]},{title:"fas fa-upload",searchTerms:["import"]},{title:"fab fa-usb",searchTerms:[]},{title:"fas fa-user",searchTerms:["person","man","head","profile","account"]},{title:"far fa-user",searchTerms:["person","man","head","profile","account"]},{title:"fas fa-user-circle",searchTerms:["person","man","head","profile","account"]},{title:"far fa-user-circle",searchTerms:["person","man","head","profile","account"]},{title:"fas fa-user-md",searchTerms:["doctor","profile","medical","nurse","job","occupation"]},{title:"fas fa-user-plus",searchTerms:["sign up","signup"]},{title:"fas fa-user-secret",searchTerms:["whisper","spy","incognito","privacy"]},{title:"fas fa-user-times",searchTerms:[]},{title:"fas fa-users",searchTerms:["people","profiles","persons"]},{title:"fab fa-ussunnah",searchTerms:[]},{title:"fas fa-utensil-spoon",searchTerms:["spoon"]},{title:"fas fa-utensils",searchTerms:["food","restaurant","spoon","knife","dinner","eat","cutlery"]},{title:"fab fa-vaadin",searchTerms:[]},{title:"fas fa-venus",searchTerms:["female"]},{title:"fas fa-venus-double",searchTerms:[]},{title:"fas fa-venus-mars",searchTerms:[]},{title:"fab fa-viacoin",searchTerms:[]},{title:"fab fa-viadeo",searchTerms:[]},{title:"fab fa-viadeo-square",searchTerms:[]},{title:"fab fa-viber",searchTerms:[]},{title:"fas fa-video",searchTerms:["film","movie","record","camera","video-camera"]},{title:"fab fa-vimeo",searchTerms:[]},{title:"fab fa-vimeo-square",searchTerms:[]},{title:"fab fa-vimeo-v",searchTerms:["vimeo"]},{title:"fab fa-vine",searchTerms:[]},{title:"fab fa-vk",searchTerms:[]},{title:"fab fa-vnv",searchTerms:[]},{title:"fas fa-volleyball-ball",searchTerms:[]},{title:"fas fa-volume-down",searchTerms:["audio","lower","quieter","sound","music"]},{title:"fas fa-volume-off",searchTerms:["audio","mute","sound","music"]},{title:"fas fa-volume-up",searchTerms:["audio","higher","louder","sound","music"]},{title:"fab fa-vuejs",searchTerms:[]},{title:"fas fa-warehouse",searchTerms:[]},{title:"fab fa-weibo",searchTerms:[]},{title:"fas fa-weight",searchTerms:["scale"]},{title:"fab fa-weixin",searchTerms:[]},{title:"fab fa-whatsapp",searchTerms:[]},{title:"fab fa-whatsapp-square",searchTerms:[]},{title:"fas fa-wheelchair",searchTerms:["handicap","person"]},{title:"fab fa-whmcs",searchTerms:[]},{title:"fas fa-wifi",searchTerms:[]},{title:"fab fa-wikipedia-w",searchTerms:[]},{title:"fas fa-window-close",searchTerms:[]},{title:"far fa-window-close",searchTerms:[]},{title:"fas fa-window-maximize",searchTerms:[]},{title:"far fa-window-maximize",searchTerms:[]},{title:"fas fa-window-minimize",searchTerms:[]},{title:"far fa-window-minimize",searchTerms:[]},{title:"fas fa-window-restore",searchTerms:[]},{title:"far fa-window-restore",searchTerms:[]},{title:"fab fa-windows",searchTerms:["microsoft"]},{title:"fas fa-won-sign",searchTerms:["krw","krw"]},{title:"fab fa-wordpress",searchTerms:[]},{title:"fab fa-wordpress-simple",searchTerms:[]},{title:"fab fa-wpbeginner",searchTerms:[]},{title:"fab fa-wpexplorer",searchTerms:[]},{title:"fab fa-wpforms",searchTerms:[]},{title:"fas fa-wrench",searchTerms:["settings","fix","update","spanner","tool"]},{title:"fab fa-xbox",searchTerms:[]},{title:"fab fa-xing",searchTerms:[]},{title:"fab fa-xing-square",searchTerms:[]},{title:"fab fa-y-combinator",searchTerms:[]},{title:"fab fa-yahoo",searchTerms:[]},{title:"fab fa-yandex",searchTerms:[]},{title:"fab fa-yandex-international",searchTerms:[]},{title:"fab fa-yelp",searchTerms:[]},{title:"fas fa-yen-sign",searchTerms:["jpy","jpy"]},{title:"fab fa-yoast",searchTerms:[]},{title:"fab fa-youtube",searchTerms:["video","film","youtube-play","youtube-square"]},{title:"fab fa-youtube-square",searchTerms:[]}]})}); \ No newline at end of file diff --git a/lib/fontawesome-iconpicker/index.html b/lib/fontawesome-iconpicker/index.html index 9da1e0a..41f8e38 100644 --- a/lib/fontawesome-iconpicker/index.html +++ b/lib/fontawesome-iconpicker/index.html @@ -1,272 +1,303 @@ - - - Font Awesome Icon Picker plugin for Bootstrap - - - - - - - + + + Font Awesome Icon Picker plugin for Bootstrap + + + + + + + + + + + + +
+

Font Awesome Icon Picker

+ +

+ Font Awesome Icon Picker is a fully customizable plugin for Twitter Bootstrap, + with a powerful base API, based on + Bootstrap Popover Picker +

+ +

+ You can use Font Awesome or another font icon set of your choice (icon options and items are customizable). +

+
+
+

Demos

+
+

-You can use Font Awesome or another font icon set of your choice (icon options and items are customizable). +

-
-
-

Demos

-
-
-

- -

-
-
-
- - -
-
- +
+
+
+ + +
+
+ -
- - -
-
-
- - -
-
- -
- - -
-
- - - -
-


- Note: In dropdowns the placement is controlled by the Bootstrap dropdown plugin -

-
-
- -
+
+ + +
+
+
+ + +
+
+ +
+ + +
+
+ + +
-
-
- -
-
+                        


+ Note: In dropdowns the placement is controlled by the Bootstrap dropdown plugin +

+
+
+ +
+
+
+
+ +
+
 {
     //...
     title: 'With custom options',
-    icons: ['fa-github', 'fa-heart', 'fa-html5', 'fa-css3'],
+    icons: [
+        {
+            title: "fab fa-github",
+            searchTerms: ['repository', 'code']
+        },
+        {
+            title: "fas fa-heart",
+            searchTerms: ['love']
+        },
+        {
+            title: "fab fa-html5",
+            searchTerms: ['web']
+        },
+        {
+            title: "fab fa-css3",
+            searchTerms: ['style']
+        }
+    ],
     selectedCustomClass: 'label label-success',
     mustAccept:true,
     placement:'bottomRight',
     showFooter:true,
     //... (see the source code of this page)
 }
-
-
- -
-
-{
-    //...
-    title: 'Prepending glypghicons',
-    icons: $.merge([
-        'glyphicon-home', 
-        'glyphicon-repeat',
-        'glyphicon-search',
-        'glyphicon-arrow-left',
-        'glyphicon-arrow-right',
-        'glyphicon-star'],
-        $.iconpicker.defaultOptions.icons),
-    fullClassFormatter: function(val){
-        if(val.match(/^fa-/)){
-            return 'fa '+val;
-        }else{
-            return 'glyphicon '+val;
-        }
-    }
-    //...              
-}
-
-
+


+ Tip: You can use any font library of your choice and add the icons this way, + mix them up with Font Awesome icons, etc. +

-
- - - - - + + + - + $('.icp-opts').iconpicker({ + title: 'With custom options', + icons: [ + { + title: "fab fa-github", + searchTerms: ['repository', 'code'] + }, + { + title: "fas fa-heart", + searchTerms: ['love'] + }, + { + title: "fab fa-html5", + searchTerms: ['web'] + }, + { + title: "fab fa-css3", + searchTerms: ['style'] + } + ], + selectedCustomClass: 'label label-success', + mustAccept: true, + placement: 'bottomRight', + showFooter: true, + // note that this is ignored cause we have an accept button: + hideOnSelect: true, + // fontAwesome5: true, + templates: { + footer: '' + } + }).data('iconpicker').show(); + }).trigger('click'); + + + // Events sample: + // This event is only triggered when the actual input value is changed + // by user interaction + $('.icp').on('iconpickerSelected', function (e) { + $('.lead .picker-target').get(0).className = 'picker-target fa-3x ' + + e.iconpickerInstance.options.iconBaseClass + ' ' + + e.iconpickerInstance.options.fullClassFormatter(e.iconpickerValue); + }); + }); + + diff --git a/lib/fontawesome-iconpicker/package.json b/lib/fontawesome-iconpicker/package.json index d1126ef..c9ac56e 100644 --- a/lib/fontawesome-iconpicker/package.json +++ b/lib/fontawesome-iconpicker/package.json @@ -1,15 +1,17 @@ { "name": "fontawesome-iconpicker", - "version": "1.3.0", + "version": "3.0.0", "description": "Font Awesome Icon Picker plugin for Twitter Bootstrap", - "homepage": "https://itsjavi.com/fontawesome-iconpicker/", + "homepage": "https://farbelous.github.io/fontawesome-iconpicker/", "repository": { "type": "git", - "url": "git@github.com:itsjavi/fontawesome-iconpicker.git" + "url": "git@github.com:farbelous/fontawesome-iconpicker.git" }, + "author": "Javi Aguilar", + "license": "MIT", "main": "dist/js/fontawesome-iconpicker.js", "bugs": { - "url": "https://github.com/itsjavi/fontawesome-iconpicker/issues" + "url": "https://github.com/farbelous/fontawesome-iconpicker/issues" }, "keywords": [ "bootstrap", @@ -18,21 +20,17 @@ "popover", "picker" ], - "author": "Javi Aguilar", - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/itsjavi/fontawesome-iconpicker/blob/master/LICENSE" - } - ], "devDependencies": { "grunt": "~0.4.5", "grunt-contrib-clean": "~0.5.0", + "grunt-contrib-concat": "~0.4.0", "grunt-contrib-jshint": "~0.10.0", "grunt-contrib-less": "~0.11.2", "grunt-contrib-uglify": "~0.5.0", - "grunt-contrib-concat": "~0.4.0", + "grunt-contrib-watch": "~0.6.1", + "grunt-http-download": "^0.1.0", "grunt-jsbeautifier": "~0.2.7", - "grunt-contrib-watch": "~0.6.1" + "grunt-string-replace": "^1.3.1", + "grunt-yaml": "^0.4.2" } } diff --git a/lib/fontawesome-iconpicker/src/js/iconpicker.js b/lib/fontawesome-iconpicker/src/js/iconpicker.js index 1f62fa9..7f9169f 100644 --- a/lib/fontawesome-iconpicker/src/js/iconpicker.js +++ b/lib/fontawesome-iconpicker/src/js/iconpicker.js @@ -1,10 +1,10 @@ -/*! +/* * Font Awesome Icon Picker - * https://itsjavi.com/fontawesome-iconpicker/ + * https://farbelous.github.io/fontawesome-iconpicker/ * * Originally written by (c) 2016 Javi Aguilar * Licensed under the MIT License - * https://github.com/itsjavi/fontawesome-iconpicker/blob/master/LICENSE + * https://github.com/farbelous/fontawesome-iconpicker/blob/master/LICENSE * */ @@ -46,11 +46,12 @@ var Iconpicker = function(element, options) { this._id = Iconpicker._idCounter++; this.element = $(element).addClass('iconpicker-element'); - this._trigger('iconpickerCreate'); + this._trigger('iconpickerCreate', { + iconpickerValue: this.iconpickerValue + }); this.options = $.extend({}, Iconpicker.defaultOptions, this.element.data(), options); this.options.templates = $.extend({}, Iconpicker.defaultOptions.templates, this.options.templates); this.options.originalPlacement = this.options.placement; - // Iconpicker container element this.container = (_helpers.isElement(this.options.container) ? $(this.options.container) : false); if (this.container === false) { @@ -63,14 +64,10 @@ this.container.addClass('iconpicker-container'); if (this.isDropdownMenu()) { - // if you try to click the dropdown, it is closed, because of that - // we'll hide some picker controls - this.options.templates.search = false; - this.options.templates.buttons = false; this.options.placement = 'inline'; } - // Is the element an input? Should we search inside for any input? + // Is the element an input? Should we search inside for any input? this.input = (this.element.is('input,textarea') ? this.element.addClass('iconpicker-input') : false); if (this.input === false) { this.input = (this.container.find(this.options.input)); @@ -114,7 +111,9 @@ this.show(); } - this._trigger('iconpickerCreated'); + this._trigger('iconpickerCreated', { + iconpickerValue: this.iconpickerValue + }); }; // Instance identifier counter @@ -135,7 +134,7 @@ selectedCustomClass: 'bg-primary', // Appends this class when to the selected item icons: [], // list of icon classes (declared at the bottom of this script for maintainability) fullClassFormatter: function(val) { - return 'fa ' + val; + return val; }, input: 'input,.iconpicker-input', // children input selector inputSearch: false, // use the input as a search box too? @@ -212,6 +211,7 @@ _createIconpicker: function() { var _self = this; this.iconpicker = $(this.options.templates.iconpicker); + console.log('---------------'); var itemClickFn = function(e) { var $this = $(this); @@ -238,19 +238,29 @@ // only hide when the accept button is not present _self.hide(); } - e.preventDefault(); - return false; }; for (var i in this.options.icons) { - if (typeof this.options.icons[i] === 'string') { + console.log('+++++++++++++++++'); + console.log(this.options.icons); + if (typeof this.options.icons[i].title === 'string') { var itemElement = $(this.options.templates.iconpickerItem); itemElement.find('i') - .addClass(this.options.fullClassFormatter(this.options.icons[i])); - itemElement.data('iconpickerValue', this.options.icons[i]) + .addClass(this.options.fullClassFormatter(this.options.icons[i].title)); + itemElement.data('iconpickerValue', this.options.icons[i].title) .on('click.iconpicker', itemClickFn); this.iconpicker.find('.iconpicker-items').append(itemElement - .attr('title', '.' + this.options.icons[i])); + .attr('title', '.' + this.options.icons[i].title)); + + if (this.options.icons[i].searchTerms.length > 0) { + var searchTerms = ''; + for (var j = 0; j < this.options.icons[i].searchTerms.length; j++) { + searchTerms = searchTerms + this.options.icons[i].searchTerms[j] + ' '; + } + this.iconpicker.find('.iconpicker-items').append(itemElement + .attr('data-search-terms', searchTerms)); + } + } } @@ -260,7 +270,7 @@ }, _isEventInsideIconpicker: function(e) { var _t = $(e.target); - if ((!_t.hasClass('iconpicker-element')  || + if ((!_t.hasClass('iconpicker-element') || (_t.hasClass('iconpicker-element') && !_t.is(this.element))) && (_t.parents('.iconpicker-popover').length === 0)) { return false; @@ -340,13 +350,8 @@ if (!_self._isEventInsideIconpicker(e) && !_self.isInline()) { _self.hide(); } - e.stopPropagation(); - e.preventDefault(); - return false; }); } - - return false; }, _unbindElementEvents: function() { this.popover.off('.iconpicker'); @@ -384,7 +389,7 @@ my: "right top", // of: Which element to position against. of: (this.hasInput() && !this.isInputGroup()) ? this.input : this.container, - // collision: When the positioned element overflows the window (or within element) + // collision: When the positioned element overflows the window (or within element) // in some direction, move it to an alternative position. collision: (collision === true ? 'flip' : collision), // within: Element to position within, affecting collision detection. @@ -590,8 +595,15 @@ // trim string val = $.trim(val); + var e = false; + for (var i = 0; i < this.options.icons.length; i++) { + if (this.options.icons[i].title === val) { + e = true; + break; + }; + } - if (_helpers.inArray(val, this.options.icons) || isEmpty) { + if (e || isEmpty) { return val; } return false; @@ -697,9 +709,11 @@ this.iconpicker.find('.iconpicker-item').each(function() { var $this = $(this); var text = $this.attr('title').toLowerCase(); + var searchTerms = $this.attr('data-search-terms') ? $this.attr('data-search-terms').toLowerCase() : ''; + text = text + ' ' + searchTerms; var regex = false; try { - regex = new RegExp(filterText, 'g'); + regex = new RegExp('(^|\\W)' + filterText, 'g'); } catch (e) { regex = false; } @@ -720,25 +734,33 @@ // hide other non-inline pickers $.iconpicker.batch($('.iconpicker-popover.in:not(.inline)').not(this.popover), 'hide'); - this._trigger('iconpickerShow'); + this._trigger('iconpickerShow', { + iconpickerValue: this.iconpickerValue + }); this.updatePlacement(); this.popover.addClass('in'); setTimeout($.proxy(function() { this.popover.css('display', this.isInline() ? '' : 'block'); - this._trigger('iconpickerShown'); + this._trigger('iconpickerShown', { + iconpickerValue: this.iconpickerValue + }); }, this), this.options.animation ? 300 : 1); // animation duration }, hide: function() { if (!this.popover.hasClass('in')) { return false; } - this._trigger('iconpickerHide'); + this._trigger('iconpickerHide', { + iconpickerValue: this.iconpickerValue + }); this.popover.removeClass('in'); setTimeout($.proxy(function() { this.popover.css('display', 'none'); this.getSearchInput().val(''); this.filter(''); // clear filter - this._trigger('iconpickerHidden'); + this._trigger('iconpickerHidden', { + iconpickerValue: this.iconpickerValue + }); }, this), this.options.animation ? 300 : 1); }, toggle: function() { @@ -749,10 +771,12 @@ } }, update: function(val, updateOnlyInternal) { - val = (val ? val :  this.getSourceValue(this.iconpickerValue)); + val = (val ? val : this.getSourceValue(this.iconpickerValue)); // reads the input or element value again and tries to update the plugin // fallback to the current selected item value - this._trigger('iconpickerUpdate'); + this._trigger('iconpickerUpdate', { + iconpickerValue: this.iconpickerValue + }); if (updateOnlyInternal === true) { val = this.setValue(val); @@ -765,11 +789,15 @@ this._updateComponents(); } - this._trigger('iconpickerUpdated'); + this._trigger('iconpickerUpdated', { + iconpickerValue: this.iconpickerValue + }); return val; }, destroy: function() { - this._trigger('iconpickerDestroy'); + this._trigger('iconpickerDestroy', { + iconpickerValue: this.iconpickerValue + }); // unbinds events and resets everything to the initial state, // including component mode @@ -780,7 +808,9 @@ $(this.popover).remove(); - this._trigger('iconpickerDestroyed'); + this._trigger('iconpickerDestroyed', { + iconpickerValue: this.iconpickerValue + }); }, disable: function() { if (this.hasInput()) { @@ -821,114 +851,8 @@ }; // List of all Font Awesome icons without class prefix - Iconpicker.defaultOptions.icons = [ - 'fa-500px', 'fa-address-book', 'fa-address-book-o', 'fa-address-card', 'fa-address-card-o', 'fa-adjust', 'fa-adn', - 'fa-align-center', 'fa-align-justify', 'fa-align-left', 'fa-align-right', 'fa-amazon', 'fa-ambulance', - 'fa-american-sign-language-interpreting', 'fa-anchor', 'fa-android', 'fa-angellist', 'fa-angle-double-down', - 'fa-angle-double-left', 'fa-angle-double-right', 'fa-angle-double-up', 'fa-angle-down', 'fa-angle-left', 'fa-angle-right', - 'fa-angle-up', 'fa-apple', 'fa-archive', 'fa-area-chart', 'fa-arrow-circle-down', 'fa-arrow-circle-left', - 'fa-arrow-circle-o-down', 'fa-arrow-circle-o-left', 'fa-arrow-circle-o-right', 'fa-arrow-circle-o-up', - 'fa-arrow-circle-right', 'fa-arrow-circle-up', 'fa-arrow-down', 'fa-arrow-left', 'fa-arrow-right', 'fa-arrow-up', 'fa-arrows', - 'fa-arrows-alt', 'fa-arrows-h', 'fa-arrows-v', 'fa-asl-interpreting', 'fa-assistive-listening-systems', 'fa-asterisk', - 'fa-at', 'fa-audio-description', 'fa-automobile', 'fa-backward', 'fa-balance-scale', 'fa-ban', 'fa-bandcamp', 'fa-bank', - 'fa-bar-chart', 'fa-bar-chart-o', 'fa-barcode', 'fa-bars', 'fa-bath', 'fa-bathtub', 'fa-battery', 'fa-battery-0', - 'fa-battery-1', 'fa-battery-2', 'fa-battery-3', 'fa-battery-4', 'fa-battery-empty', 'fa-battery-full', 'fa-battery-half', - 'fa-battery-quarter', 'fa-battery-three-quarters', 'fa-bed', 'fa-beer', 'fa-behance', 'fa-behance-square', 'fa-bell', - 'fa-bell-o', 'fa-bell-slash', 'fa-bell-slash-o', 'fa-bicycle', 'fa-binoculars', 'fa-birthday-cake', 'fa-bitbucket', - 'fa-bitbucket-square', 'fa-bitcoin', 'fa-black-tie', 'fa-blind', 'fa-bluetooth', 'fa-bluetooth-b', 'fa-bold', 'fa-bolt', - 'fa-bomb', 'fa-book', 'fa-bookmark', 'fa-bookmark-o', 'fa-braille', 'fa-briefcase', 'fa-btc', 'fa-bug', 'fa-building', - 'fa-building-o', 'fa-bullhorn', 'fa-bullseye', 'fa-bus', 'fa-buysellads', 'fa-cab', 'fa-calculator', 'fa-calendar', - 'fa-calendar-check-o', 'fa-calendar-minus-o', 'fa-calendar-o', 'fa-calendar-plus-o', 'fa-calendar-times-o', 'fa-camera', - 'fa-camera-retro', 'fa-car', 'fa-caret-down', 'fa-caret-left', 'fa-caret-right', 'fa-caret-square-o-down', - 'fa-caret-square-o-left', 'fa-caret-square-o-right', 'fa-caret-square-o-up', 'fa-caret-up', 'fa-cart-arrow-down', - 'fa-cart-plus', 'fa-cc', 'fa-cc-amex', 'fa-cc-diners-club', 'fa-cc-discover', 'fa-cc-jcb', 'fa-cc-mastercard', 'fa-cc-paypal', - 'fa-cc-stripe', 'fa-cc-visa', 'fa-certificate', 'fa-chain', 'fa-chain-broken', 'fa-check', 'fa-check-circle', - 'fa-check-circle-o', 'fa-check-square', 'fa-check-square-o', 'fa-chevron-circle-down', 'fa-chevron-circle-left', - 'fa-chevron-circle-right', 'fa-chevron-circle-up', 'fa-chevron-down', 'fa-chevron-left', 'fa-chevron-right', 'fa-chevron-up', - 'fa-child', 'fa-chrome', 'fa-circle', 'fa-circle-o', 'fa-circle-o-notch', 'fa-circle-thin', 'fa-clipboard', 'fa-clock-o', - 'fa-clone', 'fa-close', 'fa-cloud', 'fa-cloud-download', 'fa-cloud-upload', 'fa-cny', 'fa-code', 'fa-code-fork', 'fa-codepen', - 'fa-codiepie', 'fa-coffee', 'fa-cog', 'fa-cogs', 'fa-columns', 'fa-comment', 'fa-comment-o', 'fa-commenting', - 'fa-commenting-o', 'fa-comments', 'fa-comments-o', 'fa-compass', 'fa-compress', 'fa-connectdevelop', 'fa-contao', 'fa-copy', - 'fa-copyright', 'fa-creative-commons', 'fa-credit-card', 'fa-credit-card-alt', 'fa-crop', 'fa-crosshairs', 'fa-css3', - 'fa-cube', 'fa-cubes', 'fa-cut', 'fa-cutlery', 'fa-dashboard', 'fa-dashcube', 'fa-database', 'fa-deaf', 'fa-deafness', - 'fa-dedent', 'fa-delicious', 'fa-desktop', 'fa-deviantart', 'fa-diamond', 'fa-digg', 'fa-dollar', 'fa-dot-circle-o', - 'fa-download', 'fa-dribbble', 'fa-drivers-license', 'fa-drivers-license-o', 'fa-dropbox', 'fa-drupal', 'fa-edge', 'fa-edit', - 'fa-eercast', 'fa-eject', 'fa-ellipsis-h', 'fa-ellipsis-v', 'fa-empire', 'fa-envelope', 'fa-envelope-o', 'fa-envelope-open', - 'fa-envelope-open-o', 'fa-envelope-square', 'fa-envira', 'fa-eraser', 'fa-etsy', 'fa-eur', 'fa-euro', 'fa-exchange', - 'fa-exclamation', 'fa-exclamation-circle', 'fa-exclamation-triangle', 'fa-expand', 'fa-expeditedssl', 'fa-external-link', - 'fa-external-link-square', 'fa-eye', 'fa-eye-slash', 'fa-eyedropper', 'fa-fa', 'fa-facebook', 'fa-facebook-f', - 'fa-facebook-official', 'fa-facebook-square', 'fa-fast-backward', 'fa-fast-forward', 'fa-fax', 'fa-feed', 'fa-female', - 'fa-fighter-jet', 'fa-file', 'fa-file-archive-o', 'fa-file-audio-o', 'fa-file-code-o', 'fa-file-excel-o', 'fa-file-image-o', - 'fa-file-movie-o', 'fa-file-o', 'fa-file-pdf-o', 'fa-file-photo-o', 'fa-file-picture-o', 'fa-file-powerpoint-o', - 'fa-file-sound-o', 'fa-file-text', 'fa-file-text-o', 'fa-file-video-o', 'fa-file-word-o', 'fa-file-zip-o', 'fa-files-o', - 'fa-film', 'fa-filter', 'fa-fire', 'fa-fire-extinguisher', 'fa-firefox', 'fa-first-order', 'fa-flag', 'fa-flag-checkered', - 'fa-flag-o', 'fa-flash', 'fa-flask', 'fa-flickr', 'fa-floppy-o', 'fa-folder', 'fa-folder-o', 'fa-folder-open', - 'fa-folder-open-o', 'fa-font', 'fa-font-awesome', 'fa-fonticons', 'fa-fort-awesome', 'fa-forumbee', 'fa-forward', - 'fa-foursquare', 'fa-free-code-camp', 'fa-frown-o', 'fa-futbol-o', 'fa-gamepad', 'fa-gavel', 'fa-gbp', 'fa-ge', 'fa-gear', - 'fa-gears', 'fa-genderless', 'fa-get-pocket', 'fa-gg', 'fa-gg-circle', 'fa-gift', 'fa-git', 'fa-git-square', 'fa-github', - 'fa-github-alt', 'fa-github-square', 'fa-gitlab', 'fa-gittip', 'fa-glass', 'fa-glide', 'fa-glide-g', 'fa-globe', 'fa-google', - 'fa-google-plus', 'fa-google-plus-circle', 'fa-google-plus-official', 'fa-google-plus-square', 'fa-google-wallet', - 'fa-graduation-cap', 'fa-gratipay', 'fa-grav', 'fa-group', 'fa-h-square', 'fa-hacker-news', 'fa-hand-grab-o', - 'fa-hand-lizard-o', 'fa-hand-o-down', 'fa-hand-o-left', 'fa-hand-o-right', 'fa-hand-o-up', 'fa-hand-paper-o', - 'fa-hand-peace-o', 'fa-hand-pointer-o', 'fa-hand-rock-o', 'fa-hand-scissors-o', 'fa-hand-spock-o', 'fa-hand-stop-o', - 'fa-handshake-o', 'fa-hard-of-hearing', 'fa-hashtag', 'fa-hdd-o', 'fa-header', 'fa-headphones', 'fa-heart', 'fa-heart-o', - 'fa-heartbeat', 'fa-history', 'fa-home', 'fa-hospital-o', 'fa-hotel', 'fa-hourglass', 'fa-hourglass-1', 'fa-hourglass-2', - 'fa-hourglass-3', 'fa-hourglass-end', 'fa-hourglass-half', 'fa-hourglass-o', 'fa-hourglass-start', 'fa-houzz', 'fa-html5', - 'fa-i-cursor', 'fa-id-badge', 'fa-id-card', 'fa-id-card-o', 'fa-ils', 'fa-image', 'fa-imdb', 'fa-inbox', 'fa-indent', - 'fa-industry', 'fa-info', 'fa-info-circle', 'fa-inr', 'fa-instagram', 'fa-institution', 'fa-internet-explorer', 'fa-intersex', - 'fa-ioxhost', 'fa-italic', 'fa-joomla', 'fa-jpy', 'fa-jsfiddle', 'fa-key', 'fa-keyboard-o', 'fa-krw', 'fa-language', - 'fa-laptop', 'fa-lastfm', 'fa-lastfm-square', 'fa-leaf', 'fa-leanpub', 'fa-legal', 'fa-lemon-o', 'fa-level-down', - 'fa-level-up', 'fa-life-bouy', 'fa-life-buoy', 'fa-life-ring', 'fa-life-saver', 'fa-lightbulb-o', 'fa-line-chart', 'fa-link', - 'fa-linkedin', 'fa-linkedin-square', 'fa-linode', 'fa-linux', 'fa-list', 'fa-list-alt', 'fa-list-ol', 'fa-list-ul', - 'fa-location-arrow', 'fa-lock', 'fa-long-arrow-down', 'fa-long-arrow-left', 'fa-long-arrow-right', 'fa-long-arrow-up', - 'fa-low-vision', 'fa-magic', 'fa-magnet', 'fa-mail-forward', 'fa-mail-reply', 'fa-mail-reply-all', 'fa-male', 'fa-map', - 'fa-map-marker', 'fa-map-o', 'fa-map-pin', 'fa-map-signs', 'fa-mars', 'fa-mars-double', 'fa-mars-stroke', 'fa-mars-stroke-h', - 'fa-mars-stroke-v', 'fa-maxcdn', 'fa-meanpath', 'fa-medium', 'fa-medkit', 'fa-meetup', 'fa-meh-o', 'fa-mercury', - 'fa-microchip', 'fa-microphone', 'fa-microphone-slash', 'fa-minus', 'fa-minus-circle', 'fa-minus-square', 'fa-minus-square-o', - 'fa-mixcloud', 'fa-mobile', 'fa-mobile-phone', 'fa-modx', 'fa-money', 'fa-moon-o', 'fa-mortar-board', 'fa-motorcycle', - 'fa-mouse-pointer', 'fa-music', 'fa-navicon', 'fa-neuter', 'fa-newspaper-o', 'fa-object-group', 'fa-object-ungroup', - 'fa-odnoklassniki', 'fa-odnoklassniki-square', 'fa-opencart', 'fa-openid', 'fa-opera', 'fa-optin-monster', 'fa-outdent', - 'fa-pagelines', 'fa-paint-brush', 'fa-paper-plane', 'fa-paper-plane-o', 'fa-paperclip', 'fa-paragraph', 'fa-paste', - 'fa-pause', 'fa-pause-circle', 'fa-pause-circle-o', 'fa-paw', 'fa-paypal', 'fa-pencil', 'fa-pencil-square', - 'fa-pencil-square-o', 'fa-percent', 'fa-phone', 'fa-phone-square', 'fa-photo', 'fa-picture-o', 'fa-pie-chart', - 'fa-pied-piper', 'fa-pied-piper-alt', 'fa-pied-piper-pp', 'fa-pinterest', 'fa-pinterest-p', 'fa-pinterest-square', 'fa-plane', - 'fa-play', 'fa-play-circle', 'fa-play-circle-o', 'fa-plug', 'fa-plus', 'fa-plus-circle', 'fa-plus-square', 'fa-plus-square-o', - 'fa-podcast', 'fa-power-off', 'fa-print', 'fa-product-hunt', 'fa-puzzle-piece', 'fa-qq', 'fa-qrcode', 'fa-question', - 'fa-question-circle', 'fa-question-circle-o', 'fa-quora', 'fa-quote-left', 'fa-quote-right', 'fa-ra', 'fa-random', - 'fa-ravelry', 'fa-rebel', 'fa-recycle', 'fa-reddit', 'fa-reddit-alien', 'fa-reddit-square', 'fa-refresh', 'fa-registered', - 'fa-remove', 'fa-renren', 'fa-reorder', 'fa-repeat', 'fa-reply', 'fa-reply-all', 'fa-resistance', 'fa-retweet', 'fa-rmb', - 'fa-road', 'fa-rocket', 'fa-rotate-left', 'fa-rotate-right', 'fa-rouble', 'fa-rss', 'fa-rss-square', 'fa-rub', 'fa-ruble', - 'fa-rupee', 'fa-s15', 'fa-safari', 'fa-save', 'fa-scissors', 'fa-scribd', 'fa-search', 'fa-search-minus', 'fa-search-plus', - 'fa-sellsy', 'fa-send', 'fa-send-o', 'fa-server', 'fa-share', 'fa-share-alt', 'fa-share-alt-square', 'fa-share-square', - 'fa-share-square-o', 'fa-shekel', 'fa-sheqel', 'fa-shield', 'fa-ship', 'fa-shirtsinbulk', 'fa-shopping-bag', - 'fa-shopping-basket', 'fa-shopping-cart', 'fa-shower', 'fa-sign-in', 'fa-sign-language', 'fa-sign-out', 'fa-signal', - 'fa-signing', 'fa-simplybuilt', 'fa-sitemap', 'fa-skyatlas', 'fa-skype', 'fa-slack', 'fa-sliders', 'fa-slideshare', - 'fa-smile-o', 'fa-snapchat', 'fa-snapchat-ghost', 'fa-snapchat-square', 'fa-snowflake-o', 'fa-soccer-ball-o', 'fa-sort', - 'fa-sort-alpha-asc', 'fa-sort-alpha-desc', 'fa-sort-amount-asc', 'fa-sort-amount-desc', 'fa-sort-asc', 'fa-sort-desc', - 'fa-sort-down', 'fa-sort-numeric-asc', 'fa-sort-numeric-desc', 'fa-sort-up', 'fa-soundcloud', 'fa-space-shuttle', - 'fa-spinner', 'fa-spoon', 'fa-spotify', 'fa-square', 'fa-square-o', 'fa-stack-exchange', 'fa-stack-overflow', 'fa-star', - 'fa-star-half', 'fa-star-half-empty', 'fa-star-half-full', 'fa-star-half-o', 'fa-star-o', 'fa-steam', 'fa-steam-square', - 'fa-step-backward', 'fa-step-forward', 'fa-stethoscope', 'fa-sticky-note', 'fa-sticky-note-o', 'fa-stop', 'fa-stop-circle', - 'fa-stop-circle-o', 'fa-street-view', 'fa-strikethrough', 'fa-stumbleupon', 'fa-stumbleupon-circle', 'fa-subscript', - 'fa-subway', 'fa-suitcase', 'fa-sun-o', 'fa-superpowers', 'fa-superscript', 'fa-support', 'fa-table', 'fa-tablet', - 'fa-tachometer', 'fa-tag', 'fa-tags', 'fa-tasks', 'fa-taxi', 'fa-telegram', 'fa-television', 'fa-tencent-weibo', - 'fa-terminal', 'fa-text-height', 'fa-text-width', 'fa-th', 'fa-th-large', 'fa-th-list', 'fa-themeisle', 'fa-thermometer', - 'fa-thermometer-0', 'fa-thermometer-1', 'fa-thermometer-2', 'fa-thermometer-3', 'fa-thermometer-4', 'fa-thermometer-empty', - 'fa-thermometer-full', 'fa-thermometer-half', 'fa-thermometer-quarter', 'fa-thermometer-three-quarters', 'fa-thumb-tack', - 'fa-thumbs-down', 'fa-thumbs-o-down', 'fa-thumbs-o-up', 'fa-thumbs-up', 'fa-ticket', 'fa-times', 'fa-times-circle', - 'fa-times-circle-o', 'fa-times-rectangle', 'fa-times-rectangle-o', 'fa-tint', 'fa-toggle-down', 'fa-toggle-left', - 'fa-toggle-off', 'fa-toggle-on', 'fa-toggle-right', 'fa-toggle-up', 'fa-trademark', 'fa-train', 'fa-transgender', - 'fa-transgender-alt', 'fa-trash', 'fa-trash-o', 'fa-tree', 'fa-trello', 'fa-tripadvisor', 'fa-trophy', 'fa-truck', 'fa-try', - 'fa-tty', 'fa-tumblr', 'fa-tumblr-square', 'fa-turkish-lira', 'fa-tv', 'fa-twitch', 'fa-twitter', 'fa-twitter-square', - 'fa-umbrella', 'fa-underline', 'fa-undo', 'fa-universal-access', 'fa-university', 'fa-unlink', 'fa-unlock', 'fa-unlock-alt', - 'fa-unsorted', 'fa-upload', 'fa-usb', 'fa-usd', 'fa-user', 'fa-user-circle', 'fa-user-circle-o', 'fa-user-md', 'fa-user-o', - 'fa-user-plus', 'fa-user-secret', 'fa-user-times', 'fa-users', 'fa-vcard', 'fa-vcard-o', 'fa-venus', 'fa-venus-double', - 'fa-venus-mars', 'fa-viacoin', 'fa-viadeo', 'fa-viadeo-square', 'fa-video-camera', 'fa-vimeo', 'fa-vimeo-square', 'fa-vine', - 'fa-vk', 'fa-volume-control-phone', 'fa-volume-down', 'fa-volume-off', 'fa-volume-up', 'fa-warning', 'fa-wechat', 'fa-weibo', - 'fa-weixin', 'fa-whatsapp', 'fa-wheelchair', 'fa-wheelchair-alt', 'fa-wifi', 'fa-wikipedia-w', 'fa-window-close', - 'fa-window-close-o', 'fa-window-maximize', 'fa-window-minimize', 'fa-window-restore', 'fa-windows', 'fa-won', 'fa-wordpress', - 'fa-wpbeginner', 'fa-wpexplorer', 'fa-wpforms', 'fa-wrench', 'fa-xing', 'fa-xing-square', 'fa-y-combinator', - 'fa-y-combinator-square', 'fa-yahoo', 'fa-yc', 'fa-yc-square', 'fa-yelp', 'fa-yen', 'fa-yoast', 'fa-youtube', - 'fa-youtube-play', 'fa-youtube-square' - ]; + Iconpicker.defaultOptions = $.extend( + Iconpicker.defaultOptions, + //###REPLACE-WITH-FONT-AWESOME-5-FONTS### + ); })); diff --git a/lib/fontawesome-iconpicker/src/js/jquery.ui.pos.js b/lib/fontawesome-iconpicker/src/js/jquery.ui.pos.js index 5c92f5a..ce3eb9e 100644 --- a/lib/fontawesome-iconpicker/src/js/jquery.ui.pos.js +++ b/lib/fontawesome-iconpicker/src/js/jquery.ui.pos.js @@ -1,532 +1,576 @@ -/*! - * .pos() plugin based on jQuery UI Position 1.10.4, renamed to avoid - * problems with jQuery native .position(), and added some triggers when position - * collapses - * - * http://jqueryui.com - * - * Copyright 2014 jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/position/ - */ -(function($, undefined) { +(function(factory) { + if (typeof define === "function" && define.amd) { - $.ui = $.ui || {}; + // AMD. Register as an anonymous module. + define(["jquery"], factory); + } else { - var cachedScrollbarWidth, - max = Math.max, - abs = Math.abs, - round = Math.round, - rhorizontal = /left|center|right/, - rvertical = /top|center|bottom/, - roffset = /[\+\-]\d+(\.[\d]+)?%?/, - rposition = /^\w+/, - rpercent = /%$/, - _position = $.fn.pos; - - function getOffsets(offsets, width, height) { - return [ - parseFloat(offsets[0]) * (rpercent.test(offsets[0]) ? width / 100 : 1), - parseFloat(offsets[1]) * (rpercent.test(offsets[1]) ? height / 100 : 1) - ]; + // Browser globals + factory(jQuery); } +}(function($) { - function parseCss(element, property) { - return parseInt($.css(element, property), 10) || 0; - } + $.ui = $.ui || {}; - function getDimensions(elem) { - var raw = elem[0]; - if (raw.nodeType === 9) { - return { - width: elem.width(), - height: elem.height(), - offset: { - top: 0, - left: 0 - } - }; - } - if ($.isWindow(raw)) { - return { - width: elem.width(), - height: elem.height(), - offset: { - top: elem.scrollTop(), - left: elem.scrollLeft() - } - }; - } - if (raw.preventDefault) { - return { - width: 0, - height: 0, - offset: { - top: raw.pageY, - left: raw.pageX - } - }; - } - return { - width: elem.outerWidth(), - height: elem.outerHeight(), - offset: elem.offset() - }; - } + var version = $.ui.version = "1.12.1"; - $.pos = { - scrollbarWidth: function() { - if (cachedScrollbarWidth !== undefined) { - return cachedScrollbarWidth; - } - var w1, w2, - div = $("
"), - innerDiv = div.children()[0]; - $("body").append(div); - w1 = innerDiv.offsetWidth; - div.css("overflow", "scroll"); + /*! + * jQuery UI Position 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/position/ + */ - w2 = innerDiv.offsetWidth; + //>>label: Position + //>>group: Core + //>>description: Positions elements relative to other elements. + //>>docs: http://api.jqueryui.com/position/ + //>>demos: http://jqueryui.com/position/ - if (w1 === w2) { - w2 = div[0].clientWidth; - } - div.remove(); - - return (cachedScrollbarWidth = w1 - w2); - }, - getScrollInfo: function(within) { - var overflowX = within.isWindow || within.isDocument ? "" : - within.element.css("overflow-x"), - overflowY = within.isWindow || within.isDocument ? "" : - within.element.css("overflow-y"), - hasOverflowX = overflowX === "scroll" || - (overflowX === "auto" && within.width < within.element[0].scrollWidth), - hasOverflowY = overflowY === "scroll" || - (overflowY === "auto" && within.height < within.element[0].scrollHeight); - return { - width: hasOverflowY ? $.pos.scrollbarWidth() : 0, - height: hasOverflowX ? $.pos.scrollbarWidth() : 0 - }; - }, - getWithinInfo: function(element) { - var withinElement = $(element || window), - isWindow = $.isWindow(withinElement[0]), - isDocument = !!withinElement[0] && withinElement[0].nodeType === 9; + (function() { + var cachedScrollbarWidth, + max = Math.max, + abs = Math.abs, + rhorizontal = /left|center|right/, + rvertical = /top|center|bottom/, + roffset = /[\+\-]\d+(\.[\d]+)?%?/, + rposition = /^\w+/, + rpercent = /%$/, + _position = $.fn.pos; + + function getOffsets(offsets, width, height) { + return [ + parseFloat(offsets[0]) * (rpercent.test(offsets[0]) ? width / 100 : 1), + parseFloat(offsets[1]) * (rpercent.test(offsets[1]) ? height / 100 : 1) + ]; + } + + function parseCss(element, property) { + return parseInt($.css(element, property), 10) || 0; + } + + function getDimensions(elem) { + var raw = elem[0]; + if (raw.nodeType === 9) { + return { + width: elem.width(), + height: elem.height(), + offset: { + top: 0, + left: 0 + } + }; + } + if ($.isWindow(raw)) { + return { + width: elem.width(), + height: elem.height(), + offset: { + top: elem.scrollTop(), + left: elem.scrollLeft() + } + }; + } + if (raw.preventDefault) { + return { + width: 0, + height: 0, + offset: { + top: raw.pageY, + left: raw.pageX + } + }; + } return { - element: withinElement, - isWindow: isWindow, - isDocument: isDocument, - offset: withinElement.offset() || { - left: 0, - top: 0 - }, - scrollLeft: withinElement.scrollLeft(), - scrollTop: withinElement.scrollTop(), - width: isWindow ? withinElement.width() : withinElement.outerWidth(), - height: isWindow ? withinElement.height() : withinElement.outerHeight() + width: elem.outerWidth(), + height: elem.outerHeight(), + offset: elem.offset() }; } - }; - $.fn.pos = function(options) { - if (!options || !options.of) { - return _position.apply(this, arguments); - } + $.pos = { + scrollbarWidth: function() { + if (cachedScrollbarWidth !== undefined) { + return cachedScrollbarWidth; + } + var w1, w2, + div = $("
" + + "
"), + innerDiv = div.children()[0]; - // make a copy, we don't want to modify arguments - options = $.extend({}, options); + $("body").append(div); + w1 = innerDiv.offsetWidth; + div.css("overflow", "scroll"); - var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, - target = $(options.of), - within = $.pos.getWithinInfo(options.within), - scrollInfo = $.pos.getScrollInfo(within), - collision = (options.collision || "flip").split(" "), - offsets = {}; + w2 = innerDiv.offsetWidth; - dimensions = getDimensions(target); - if (target[0].preventDefault) { - // force left top to allow flipping - options.at = "left top"; - } - targetWidth = dimensions.width; - targetHeight = dimensions.height; - targetOffset = dimensions.offset; - // clone to reuse original targetOffset later - basePosition = $.extend({}, targetOffset); - - // force my and at to have valid horizontal and vertical positions - // if a value is missing or invalid, it will be converted to center - $.each(["my", "at"], function() { - var pos = (options[this] || "").split(" "), - horizontalOffset, - verticalOffset; - - if (pos.length === 1) { - pos = rhorizontal.test(pos[0]) ? - pos.concat(["center"]) : - rvertical.test(pos[0]) ? ["center"].concat(pos) : ["center", "center"]; + if (w1 === w2) { + w2 = div[0].clientWidth; + } + + div.remove(); + + return (cachedScrollbarWidth = w1 - w2); + }, + getScrollInfo: function(within) { + var overflowX = within.isWindow || within.isDocument ? "" : + within.element.css("overflow-x"), + overflowY = within.isWindow || within.isDocument ? "" : + within.element.css("overflow-y"), + hasOverflowX = overflowX === "scroll" || + (overflowX === "auto" && within.width < within.element[0].scrollWidth), + hasOverflowY = overflowY === "scroll" || + (overflowY === "auto" && within.height < within.element[0].scrollHeight); + return { + width: hasOverflowY ? $.pos.scrollbarWidth() : 0, + height: hasOverflowX ? $.pos.scrollbarWidth() : 0 + }; + }, + getWithinInfo: function(element) { + var withinElement = $(element || window), + isWindow = $.isWindow(withinElement[0]), + isDocument = !!withinElement[0] && withinElement[0].nodeType === 9, + hasOffset = !isWindow && !isDocument; + return { + element: withinElement, + isWindow: isWindow, + isDocument: isDocument, + offset: hasOffset ? $(element).offset() : { + left: 0, + top: 0 + }, + scrollLeft: withinElement.scrollLeft(), + scrollTop: withinElement.scrollTop(), + width: withinElement.outerWidth(), + height: withinElement.outerHeight() + }; } - pos[0] = rhorizontal.test(pos[0]) ? pos[0] : "center"; - pos[1] = rvertical.test(pos[1]) ? pos[1] : "center"; - - // calculate offsets - horizontalOffset = roffset.exec(pos[0]); - verticalOffset = roffset.exec(pos[1]); - offsets[this] = [ - horizontalOffset ? horizontalOffset[0] : 0, - verticalOffset ? verticalOffset[0] : 0 - ]; + }; - // reduce to just the positions without the offsets - options[this] = [ - rposition.exec(pos[0])[0], - rposition.exec(pos[1])[0] - ]; - }); + $.fn.pos = function(options) { + if (!options || !options.of) { + return _position.apply(this, arguments); + } - // normalize collision option - if (collision.length === 1) { - collision[1] = collision[0]; - } + // Make a copy, we don't want to modify arguments + options = $.extend({}, options); - if (options.at[0] === "right") { - basePosition.left += targetWidth; - } else if (options.at[0] === "center") { - basePosition.left += targetWidth / 2; - } + var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, + target = $(options.of), + within = $.pos.getWithinInfo(options.within), + scrollInfo = $.pos.getScrollInfo(within), + collision = (options.collision || "flip").split(" "), + offsets = {}; - if (options.at[1] === "bottom") { - basePosition.top += targetHeight; - } else if (options.at[1] === "center") { - basePosition.top += targetHeight / 2; - } + dimensions = getDimensions(target); + if (target[0].preventDefault) { - atOffset = getOffsets(offsets.at, targetWidth, targetHeight); - basePosition.left += atOffset[0]; - basePosition.top += atOffset[1]; - - return this.each(function() { - var collisionPosition, using, - elem = $(this), - elemWidth = elem.outerWidth(), - elemHeight = elem.outerHeight(), - marginLeft = parseCss(this, "marginLeft"), - marginTop = parseCss(this, "marginTop"), - collisionWidth = elemWidth + marginLeft + parseCss(this, "marginRight") + scrollInfo.width, - collisionHeight = elemHeight + marginTop + parseCss(this, "marginBottom") + scrollInfo.height, - position = $.extend({}, basePosition), - myOffset = getOffsets(offsets.my, elem.outerWidth(), elem.outerHeight()); - - if (options.my[0] === "right") { - position.left -= elemWidth; - } else if (options.my[0] === "center") { - position.left -= elemWidth / 2; + // Force left top to allow flipping + options.at = "left top"; } + targetWidth = dimensions.width; + targetHeight = dimensions.height; + targetOffset = dimensions.offset; + + // Clone to reuse original targetOffset later + basePosition = $.extend({}, targetOffset); + + // Force my and at to have valid horizontal and vertical positions + // if a value is missing or invalid, it will be converted to center + $.each(["my", "at"], function() { + var pos = (options[this] || "").split(" "), + horizontalOffset, + verticalOffset; + + if (pos.length === 1) { + pos = rhorizontal.test(pos[0]) ? + pos.concat(["center"]) : + rvertical.test(pos[0]) ? ["center"].concat(pos) : ["center", "center"]; + } + pos[0] = rhorizontal.test(pos[0]) ? pos[0] : "center"; + pos[1] = rvertical.test(pos[1]) ? pos[1] : "center"; + + // Calculate offsets + horizontalOffset = roffset.exec(pos[0]); + verticalOffset = roffset.exec(pos[1]); + offsets[this] = [ + horizontalOffset ? horizontalOffset[0] : 0, + verticalOffset ? verticalOffset[0] : 0 + ]; + + // Reduce to just the positions without the offsets + options[this] = [ + rposition.exec(pos[0])[0], + rposition.exec(pos[1])[0] + ]; + }); - if (options.my[1] === "bottom") { - position.top -= elemHeight; - } else if (options.my[1] === "center") { - position.top -= elemHeight / 2; + // Normalize collision option + if (collision.length === 1) { + collision[1] = collision[0]; } - position.left += myOffset[0]; - position.top += myOffset[1]; + if (options.at[0] === "right") { + basePosition.left += targetWidth; + } else if (options.at[0] === "center") { + basePosition.left += targetWidth / 2; + } - // if the browser doesn't support fractions, then round for consistent results - if (!$.support.offsetFractions) { - position.left = round(position.left); - position.top = round(position.top); + if (options.at[1] === "bottom") { + basePosition.top += targetHeight; + } else if (options.at[1] === "center") { + basePosition.top += targetHeight / 2; } - collisionPosition = { - marginLeft: marginLeft, - marginTop: marginTop - }; + atOffset = getOffsets(offsets.at, targetWidth, targetHeight); + basePosition.left += atOffset[0]; + basePosition.top += atOffset[1]; + + return this.each(function() { + var collisionPosition, using, + elem = $(this), + elemWidth = elem.outerWidth(), + elemHeight = elem.outerHeight(), + marginLeft = parseCss(this, "marginLeft"), + marginTop = parseCss(this, "marginTop"), + collisionWidth = elemWidth + marginLeft + parseCss(this, "marginRight") + + scrollInfo.width, + collisionHeight = elemHeight + marginTop + parseCss(this, "marginBottom") + + scrollInfo.height, + position = $.extend({}, basePosition), + myOffset = getOffsets(offsets.my, elem.outerWidth(), elem.outerHeight()); + + if (options.my[0] === "right") { + position.left -= elemWidth; + } else if (options.my[0] === "center") { + position.left -= elemWidth / 2; + } - $.each(["left", "top"], function(i, dir) { - if ($.ui.pos[collision[i]]) { - $.ui.pos[collision[i]][dir](position, { - targetWidth: targetWidth, - targetHeight: targetHeight, - elemWidth: elemWidth, - elemHeight: elemHeight, - collisionPosition: collisionPosition, - collisionWidth: collisionWidth, - collisionHeight: collisionHeight, - offset: [atOffset[0] + myOffset[0], atOffset[1] + myOffset[1]], - my: options.my, - at: options.at, - within: within, - elem: elem - }); + if (options.my[1] === "bottom") { + position.top -= elemHeight; + } else if (options.my[1] === "center") { + position.top -= elemHeight / 2; } - }); - if (options.using) { - // adds feedback as second argument to using callback, if present - using = function(props) { - var left = targetOffset.left - position.left, - right = left + targetWidth - elemWidth, - top = targetOffset.top - position.top, - bottom = top + targetHeight - elemHeight, - feedback = { - target: { - element: target, - left: targetOffset.left, - top: targetOffset.top, - width: targetWidth, - height: targetHeight - }, - element: { - element: elem, - left: position.left, - top: position.top, - width: elemWidth, - height: elemHeight - }, - horizontal: right < 0 ? "left" : left > 0 ? "right" : "center", - vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle" - }; - if (targetWidth < elemWidth && abs(left + right) < targetWidth) { - feedback.horizontal = "center"; - } - if (targetHeight < elemHeight && abs(top + bottom) < targetHeight) { - feedback.vertical = "middle"; - } - if (max(abs(left), abs(right)) > max(abs(top), abs(bottom))) { - feedback.important = "horizontal"; - } else { - feedback.important = "vertical"; - } - options.using.call(this, props, feedback); + position.left += myOffset[0]; + position.top += myOffset[1]; + + collisionPosition = { + marginLeft: marginLeft, + marginTop: marginTop }; - } - elem.offset($.extend(position, { - using: using - })); - }); - }; - - $.ui.pos = { - _trigger: function(position, data, name, triggered) { - if (data.elem) { - data.elem.trigger({ - 'type': name, - 'position': position, - 'positionData': data, - 'triggered': triggered + $.each(["left", "top"], function(i, dir) { + if ($.ui.pos[collision[i]]) { + $.ui.pos[collision[i]][dir](position, { + targetWidth: targetWidth, + targetHeight: targetHeight, + elemWidth: elemWidth, + elemHeight: elemHeight, + collisionPosition: collisionPosition, + collisionWidth: collisionWidth, + collisionHeight: collisionHeight, + offset: [atOffset[0] + myOffset[0], atOffset[1] + myOffset[1]], + my: options.my, + at: options.at, + within: within, + elem: elem + }); + } }); - } - }, - fit: { - left: function(position, data) { - $.ui.pos._trigger(position, data, 'posCollide', 'fitLeft'); - var within = data.within, - withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, - outerWidth = within.width, - collisionPosLeft = position.left - data.collisionPosition.marginLeft, - overLeft = withinOffset - collisionPosLeft, - overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, - newOverRight; - - // element is wider than within - if (data.collisionWidth > outerWidth) { - // element is initially over the left side of within - if (overLeft > 0 && overRight <= 0) { - newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset; - position.left += overLeft - newOverRight; - // element is initially over right side of within - } else if (overRight > 0 && overLeft <= 0) { - position.left = withinOffset; - // element is initially over both left and right sides of within - } else { - if (overLeft > overRight) { - position.left = withinOffset + outerWidth - data.collisionWidth; + + if (options.using) { + + // Adds feedback as second argument to using callback, if present + using = function(props) { + var left = targetOffset.left - position.left, + right = left + targetWidth - elemWidth, + top = targetOffset.top - position.top, + bottom = top + targetHeight - elemHeight, + feedback = { + target: { + element: target, + left: targetOffset.left, + top: targetOffset.top, + width: targetWidth, + height: targetHeight + }, + element: { + element: elem, + left: position.left, + top: position.top, + width: elemWidth, + height: elemHeight + }, + horizontal: right < 0 ? "left" : left > 0 ? "right" : "center", + vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle" + }; + if (targetWidth < elemWidth && abs(left + right) < targetWidth) { + feedback.horizontal = "center"; + } + if (targetHeight < elemHeight && abs(top + bottom) < targetHeight) { + feedback.vertical = "middle"; + } + if (max(abs(left), abs(right)) > max(abs(top), abs(bottom))) { + feedback.important = "horizontal"; } else { - position.left = withinOffset; + feedback.important = "vertical"; } - } - // too far left -> align with left edge - } else if (overLeft > 0) { - position.left += overLeft; - // too far right -> align with right edge - } else if (overRight > 0) { - position.left -= overRight; - // adjust based on position and margin - } else { - position.left = max(position.left - collisionPosLeft, position.left); + options.using.call(this, props, feedback); + }; + } + + elem.offset($.extend(position, { + using: using + })); + }); + }; + + $.ui.pos = { + _trigger: function(position, data, name, triggered) { + if (data.elem) { + data.elem.trigger({ + 'type': name, + 'position': position, + 'positionData': data, + 'triggered': triggered + }); } - $.ui.pos._trigger(position, data, 'posCollided', 'fitLeft'); }, - top: function(position, data) { - $.ui.pos._trigger(position, data, 'posCollide', 'fitTop'); - var within = data.within, - withinOffset = within.isWindow ? within.scrollTop : within.offset.top, - outerHeight = data.within.height, - collisionPosTop = position.top - data.collisionPosition.marginTop, - overTop = withinOffset - collisionPosTop, - overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, - newOverBottom; - - // element is taller than within - if (data.collisionHeight > outerHeight) { - // element is initially over the top of within - if (overTop > 0 && overBottom <= 0) { - newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset; - position.top += overTop - newOverBottom; - // element is initially over bottom of within - } else if (overBottom > 0 && overTop <= 0) { - position.top = withinOffset; - // element is initially over both top and bottom of within - } else { - if (overTop > overBottom) { - position.top = withinOffset + outerHeight - data.collisionHeight; + fit: { + left: function(position, data) { + $.ui.pos._trigger(position, data, 'posCollide', 'fitLeft'); + var within = data.within, + withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, + outerWidth = within.width, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = withinOffset - collisionPosLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, + newOverRight; + + // Element is wider than within + if (data.collisionWidth > outerWidth) { + + // Element is initially over the left side of within + if (overLeft > 0 && overRight <= 0) { + newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - + withinOffset; + position.left += overLeft - newOverRight; + + // Element is initially over right side of within + } else if (overRight > 0 && overLeft <= 0) { + position.left = withinOffset; + + // Element is initially over both left and right sides of within } else { + if (overLeft > overRight) { + position.left = withinOffset + outerWidth - data.collisionWidth; + } else { + position.left = withinOffset; + } + } + + // Too far left -> align with left edge + } else if (overLeft > 0) { + position.left += overLeft; + + // Too far right -> align with right edge + } else if (overRight > 0) { + position.left -= overRight; + + // Adjust based on position and margin + } else { + position.left = max(position.left - collisionPosLeft, position.left); + } + $.ui.pos._trigger(position, data, 'posCollided', 'fitLeft'); + }, + top: function(position, data) { + $.ui.pos._trigger(position, data, 'posCollide', 'fitTop'); + var within = data.within, + withinOffset = within.isWindow ? within.scrollTop : within.offset.top, + outerHeight = data.within.height, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = withinOffset - collisionPosTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, + newOverBottom; + + // Element is taller than within + if (data.collisionHeight > outerHeight) { + + // Element is initially over the top of within + if (overTop > 0 && overBottom <= 0) { + newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - + withinOffset; + position.top += overTop - newOverBottom; + + // Element is initially over bottom of within + } else if (overBottom > 0 && overTop <= 0) { position.top = withinOffset; + + // Element is initially over both top and bottom of within + } else { + if (overTop > overBottom) { + position.top = withinOffset + outerHeight - data.collisionHeight; + } else { + position.top = withinOffset; + } } + + // Too far up -> align with top + } else if (overTop > 0) { + position.top += overTop; + + // Too far down -> align with bottom edge + } else if (overBottom > 0) { + position.top -= overBottom; + + // Adjust based on position and margin + } else { + position.top = max(position.top - collisionPosTop, position.top); } - // too far up -> align with top - } else if (overTop > 0) { - position.top += overTop; - // too far down -> align with bottom edge - } else if (overBottom > 0) { - position.top -= overBottom; - // adjust based on position and margin - } else { - position.top = max(position.top - collisionPosTop, position.top); + $.ui.pos._trigger(position, data, 'posCollided', 'fitTop'); } - $.ui.pos._trigger(position, data, 'posCollided', 'fitTop'); - } - }, - flip: { - left: function(position, data) { - $.ui.pos._trigger(position, data, 'posCollide', 'flipLeft'); - var within = data.within, - withinOffset = within.offset.left + within.scrollLeft, - outerWidth = within.width, - offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, - collisionPosLeft = position.left - data.collisionPosition.marginLeft, - overLeft = collisionPosLeft - offsetLeft, - overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, - myOffset = data.my[0] === "left" ? - -data.elemWidth : - data.my[0] === "right" ? - data.elemWidth : - 0, - atOffset = data.at[0] === "left" ? - data.targetWidth : - data.at[0] === "right" ? - -data.targetWidth : - 0, - offset = -2 * data.offset[0], - newOverRight, - newOverLeft; - - if (overLeft < 0) { - newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset; - if (newOverRight < 0 || newOverRight < abs(overLeft)) { - position.left += myOffset + atOffset + offset; + }, + flip: { + left: function(position, data) { + $.ui.pos._trigger(position, data, 'posCollide', 'flipLeft'); + var within = data.within, + withinOffset = within.offset.left + within.scrollLeft, + outerWidth = within.width, + offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = collisionPosLeft - offsetLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, + myOffset = data.my[0] === "left" ? + -data.elemWidth : + data.my[0] === "right" ? + data.elemWidth : + 0, + atOffset = data.at[0] === "left" ? + data.targetWidth : + data.at[0] === "right" ? + -data.targetWidth : + 0, + offset = -2 * data.offset[0], + newOverRight, + newOverLeft; + + if (overLeft < 0) { + newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - + outerWidth - withinOffset; + if (newOverRight < 0 || newOverRight < abs(overLeft)) { + position.left += myOffset + atOffset + offset; + } + } else if (overRight > 0) { + newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + + atOffset + offset - offsetLeft; + if (newOverLeft > 0 || abs(newOverLeft) < overRight) { + position.left += myOffset + atOffset + offset; + } } - } else if (overRight > 0) { - newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft; - if (newOverLeft > 0 || abs(newOverLeft) < overRight) { - position.left += myOffset + atOffset + offset; + $.ui.pos._trigger(position, data, 'posCollided', 'flipLeft'); + }, + top: function(position, data) { + $.ui.pos._trigger(position, data, 'posCollide', 'flipTop'); + var within = data.within, + withinOffset = within.offset.top + within.scrollTop, + outerHeight = within.height, + offsetTop = within.isWindow ? within.scrollTop : within.offset.top, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = collisionPosTop - offsetTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, + top = data.my[1] === "top", + myOffset = top ? + -data.elemHeight : + data.my[1] === "bottom" ? + data.elemHeight : + 0, + atOffset = data.at[1] === "top" ? + data.targetHeight : + data.at[1] === "bottom" ? + -data.targetHeight : + 0, + offset = -2 * data.offset[1], + newOverTop, + newOverBottom; + if (overTop < 0) { + newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - + outerHeight - withinOffset; + if (newOverBottom < 0 || newOverBottom < abs(overTop)) { + position.top += myOffset + atOffset + offset; + } + } else if (overBottom > 0) { + newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + + offset - offsetTop; + if (newOverTop > 0 || abs(newOverTop) < overBottom) { + position.top += myOffset + atOffset + offset; + } } + $.ui.pos._trigger(position, data, 'posCollided', 'flipTop'); } - $.ui.pos._trigger(position, data, 'posCollided', 'flipLeft'); }, - top: function(position, data) { - $.ui.pos._trigger(position, data, 'posCollide', 'flipTop'); - var within = data.within, - withinOffset = within.offset.top + within.scrollTop, - outerHeight = within.height, - offsetTop = within.isWindow ? within.scrollTop : within.offset.top, - collisionPosTop = position.top - data.collisionPosition.marginTop, - overTop = collisionPosTop - offsetTop, - overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, - top = data.my[1] === "top", - myOffset = top ? - -data.elemHeight : - data.my[1] === "bottom" ? - data.elemHeight : - 0, - atOffset = data.at[1] === "top" ? - data.targetHeight : - data.at[1] === "bottom" ? - -data.targetHeight : - 0, - offset = -2 * data.offset[1], - newOverTop, - newOverBottom; - if (overTop < 0) { - newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset; - if ((position.top + myOffset + atOffset + offset) > overTop && (newOverBottom < 0 || newOverBottom < abs(overTop))) { - position.top += myOffset + atOffset + offset; - } - } else if (overBottom > 0) { - newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop; - if ((position.top + myOffset + atOffset + offset) > overBottom && (newOverTop > 0 || abs(newOverTop) < overBottom)) { - position.top += myOffset + atOffset + offset; - } + flipfit: { + left: function() { + $.ui.pos.flip.left.apply(this, arguments); + $.ui.pos.fit.left.apply(this, arguments); + }, + top: function() { + $.ui.pos.flip.top.apply(this, arguments); + $.ui.pos.fit.top.apply(this, arguments); } - $.ui.pos._trigger(position, data, 'posCollided', 'flipTop'); } - }, - flipfit: { - left: function() { - $.ui.pos.flip.left.apply(this, arguments); - $.ui.pos.fit.left.apply(this, arguments); - }, - top: function() { - $.ui.pos.flip.top.apply(this, arguments); - $.ui.pos.fit.top.apply(this, arguments); + }; + // fraction support test + (function() { + var testElement, testElementParent, testElementStyle, offsetLeft, i, + body = document.getElementsByTagName("body")[0], + div = document.createElement("div"); + + //Create a "fake body" for testing based on method used in jQuery.support + testElement = document.createElement(body ? "div" : "body"); + testElementStyle = { + visibility: "hidden", + width: 0, + height: 0, + border: 0, + margin: 0, + background: "none" + }; + if (body) { + $.extend(testElementStyle, { + position: "absolute", + left: "-1000px", + top: "-1000px" + }); } - } - }; + for (i in testElementStyle) { + testElement.style[i] = testElementStyle[i]; + } + testElement.appendChild(div); + testElementParent = body || document.documentElement; + testElementParent.insertBefore(testElement, testElementParent.firstChild); - // fraction support test - (function() { - var testElement, testElementParent, testElementStyle, offsetLeft, i, - body = document.getElementsByTagName("body")[0], - div = document.createElement("div"); - - //Create a "fake body" for testing based on method used in jQuery.support - testElement = document.createElement(body ? "div" : "body"); - testElementStyle = { - visibility: "hidden", - width: 0, - height: 0, - border: 0, - margin: 0, - background: "none" - }; - if (body) { - $.extend(testElementStyle, { - position: "absolute", - left: "-1000px", - top: "-1000px" - }); - } - for (i in testElementStyle) { - testElement.style[i] = testElementStyle[i]; - } - testElement.appendChild(div); - testElementParent = body || document.documentElement; - testElementParent.insertBefore(testElement, testElementParent.firstChild); + div.style.cssText = "position: absolute; left: 10.7432222px;"; - div.style.cssText = "position: absolute; left: 10.7432222px;"; + offsetLeft = $(div).offset().left; + $.support.offsetFractions = offsetLeft > 10 && offsetLeft < 11; - offsetLeft = $(div).offset().left; - $.support.offsetFractions = offsetLeft > 10 && offsetLeft < 11; + testElement.innerHTML = ""; + testElementParent.removeChild(testElement); + })(); - testElement.innerHTML = ""; - testElementParent.removeChild(testElement); })(); -}(jQuery)); + var position = $.ui.position; + + + + +})); diff --git a/lib/fontawesome-iconpicker/src/js/license.js b/lib/fontawesome-iconpicker/src/js/license.js new file mode 100644 index 0000000..4dff88f --- /dev/null +++ b/lib/fontawesome-iconpicker/src/js/license.js @@ -0,0 +1,10 @@ +/*! + * Font Awesome Icon Picker + * https://farbelous.github.io/fontawesome-iconpicker/ + * + * Originally written by (c) 2016 Javi Aguilar + * Licensed under the MIT License + * https://github.com/farbelous/fontawesome-iconpicker/blob/master/LICENSE + * + */ +// TODO: refactor project using ES6 imports, gulp, babel, webpack, etc diff --git a/lib/fontawesome-iconpicker/src/less/iconpicker.less b/lib/fontawesome-iconpicker/src/less/iconpicker.less index 5895d5b..7cafe46 100644 --- a/lib/fontawesome-iconpicker/src/less/iconpicker.less +++ b/lib/fontawesome-iconpicker/src/less/iconpicker.less @@ -1,77 +1,78 @@ /*! * Font Awesome Icon Picker - * https://itsjavi.com/fontawesome-iconpicker/ + * https://farbelous.github.io/fontawesome-iconpicker/ * * Originally written by (c) 2016 Javi Aguilar * Licensed under the MIT License - * https://github.com/itsjavi/fontawesome-iconpicker/blob/master/LICENSE + * https://github.com/farbelous/fontawesome-iconpicker/blob/master/LICENSE * */ @import 'variables.less'; @import 'popovers.less'; -.iconpicker{ - *{ - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - position: relative; - } +.iconpicker { + * { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + position: relative; + } + position: relative; + .clearfix(); + text-align: left; + text-shadow: none; + line-height: 0; + display: block; + margin: 0; + overflow: hidden; + + .iconpicker-items { position: relative; .clearfix(); - text-align:left; - text-shadow:none; - line-height:0; - display:block; - margin:0; - overflow:hidden; + clear: both; + float: none; + padding: @base_spacing 0 0 @base_spacing; + background: #fff; + //margin:0 -@base_spacing -@base_spacing 0; + //width:@picker_width - (@base_spacing*2); + margin: 0; + overflow: hidden; + overflow-y: auto; + min-height: @row_outer_height; + max-height: (@row_outer_height * @num_rows) + 1; - .iconpicker-items{ - position: relative; - .clearfix(); - clear:both; - float:none; - padding:@base_spacing 0 0 @base_spacing; - background:#fff; - //margin:0 -@base_spacing -@base_spacing 0; - //width:@picker_width - (@base_spacing*2); - margin:0; - overflow:hidden; - overflow-y: auto; - min-height: @row_outer_height; - max-height: (@row_outer_height * @num_rows) + 1; + } + .iconpicker-item { + float: left; + width: @item_size; + height: @item_size; + padding: @base_spacing; + margin: 0 @base_spacing @base_spacing 0; + text-align: center; + cursor: pointer; + border-radius: 3px; + font-size: @item_size; + .outer-border(); + color: inherit; + &:hover:not(.iconpicker-selected) { + background-color: @hover_bg; } - - .iconpicker-item{ - float:left; - width:@item_size; - height:@item_size; - padding: @base_spacing; - margin:0 @base_spacing @base_spacing 0; - text-align:center; - cursor:pointer; - border-radius:3px; - font-size:@item_size; - .outer-border(); - color:inherit; - &:hover:not(.iconpicker-selected){ - background-color:@hover_bg; - } - &.iconpicker-selected{ - box-shadow: none; - color:#fff; - } - /*&:nth-child(4n+4) { - margin-right: 0; - } - &:nth-last-child(-n+4) { - margin-bottom: 0; - }*/ - //box-shadow:0; + &.iconpicker-selected { + box-shadow: none; + color: #fff; + background: #000; + } + /*&:nth-child(4n+4) { + margin-right: 0; } + &:nth-last-child(-n+4) { + margin-bottom: 0; + }*/ + //box-shadow:0; + } } -.iconpicker-component{ - cursor:pointer; -} \ No newline at end of file +.iconpicker-component { + cursor: pointer; +} diff --git a/lib/fontawesome-iconpicker/src/less/popovers.less b/lib/fontawesome-iconpicker/src/less/popovers.less index 421711b..fc37939 100644 --- a/lib/fontawesome-iconpicker/src/less/popovers.less +++ b/lib/fontawesome-iconpicker/src/less/popovers.less @@ -1,104 +1,103 @@ -/* - * Font Awesome Icon Picker - * https://itsjavi.com/fontawesome-iconpicker/ - * - * Originally written by (c) 2016 Javi Aguilar - * Licensed under the MIT License - * https://github.com/itsjavi/fontawesome-iconpicker/blob/master/LICENSE - * - */ - // // Popovers // -------------------------------------------------- - .iconpicker-popover.popover { - position: absolute; - top: 0; - left: 0; - display: none; - max-width: none; - padding: 1px; - text-align: left; - width: @picker_width + @num_cols; - background:@popover-title-bg; - - // Offset the popover to account for the popover arrow - &.top, &.topLeftCorner, &.topLeft, &.topRight, &.topRightCorner { margin-top: -@popover-arrow-width; } - &.right, &.rightTop, &.rightBottom { margin-left: @popover-arrow-width; } - &.bottom, &.bottomRightCorner, &.bottomRight, &.bottomLeft, &.bottomLeftCorner { margin-top: @popover-arrow-width; } - &.left, &.leftBottom, &.leftTop { margin-left: -@popover-arrow-width; } - - &.inline{ - > .arrow{ - display:none; - } - margin: 0 0 @base_spacing 0; - position: relative; - display:inline-block; - opacity:1; - top:auto; - left:auto; - bottom:auto; - right:auto; - max-width: 100%; - box-shadow: none; - z-index:auto; - vertical-align: top; - } + position: absolute; + top: 0; + left: 0; + display: none; + max-width: none; + padding: 1px; + text-align: left; + width: @picker_width + @num_cols; + background: @popover-title-bg; + z-index: 9; + + // Offset the popover to account for the popover arrow + &.top, &.topLeftCorner, &.topLeft, &.topRight, &.topRightCorner { + margin-top: -@popover-arrow-width; + } + &.right, &.rightTop, &.rightBottom { + margin-left: @popover-arrow-width; + } + &.bottom, &.bottomRightCorner, &.bottomRight, &.bottomLeft, &.bottomLeftCorner { + margin-top: @popover-arrow-width; + } + &.left, &.leftBottom, &.leftTop { + margin-left: -@popover-arrow-width; + } + + &.inline { + > .arrow { + display: none; + } + margin: 0 0 @base_spacing 0; + position: relative; + display: inline-block; + opacity: 1; + top: auto; + left: auto; + bottom: auto; + right: auto; + max-width: 100%; + box-shadow: none; + z-index: auto; + vertical-align: top; + } } -.dropdown-menu .iconpicker-popover.inline{ - margin:0; - border:none; +.dropdown-menu .iconpicker-popover.inline { + margin: 0; + border: none; } -.dropdown-menu.iconpicker-container{ - padding:0; +.dropdown-menu.iconpicker-container { + padding: 0; } .iconpicker-popover.popover .popover-title { - //padding: 8px 14px; - //border-radius: 5px 5px 0 0; - padding:@base_spacing; - font-size:@title_size; - line-height:@title_size + 2px; - border-bottom:1px solid darken(@popover-title-bg, 5%); - background-color: @popover-title-bg; - - input[type=search].iconpicker-search{ - margin: 0 0 2px 0; - } + //padding: 8px 14px; + //border-radius: 5px 5px 0 0; + padding: @base_spacing; + font-size: @title_size; + line-height: @title_size + 2px; + border-bottom: 1px solid darken(@popover-title-bg, 5%); + background-color: @popover-title-bg; + + input[type=search].iconpicker-search { + margin: 0 0 2px 0; + } } -.iconpicker-popover.popover .popover-title-text ~ input[type=search].iconpicker-search{ - margin-top: @base_spacing; + +.iconpicker-popover.popover .popover-title-text ~ input[type=search].iconpicker-search { + margin-top: @base_spacing; } .iconpicker-popover.popover .popover-content { - //padding: 9px 14px; - padding:0px; - text-align: center; - //overflow:hidden; + //padding: 9px 14px; + padding: 0px; + text-align: center; + //overflow:hidden; } -.iconpicker-popover .popover-footer{ - .clearfix(); - float:none; - clear:both; - padding:@base_spacing; - text-align:right; - margin:0; - border-top:1px solid darken(@popover-title-bg, 5%); - background-color: @popover-title-bg; - .iconpicker-btn{ - margin-left: 10px; - } - input[type=search].iconpicker-search{ - /*width:auto; - float:left;*/ - margin-bottom: @base_spacing; - } +.iconpicker-popover .popover-footer { + .clearfix(); + float: none; + clear: both; + padding: @base_spacing; + text-align: right; + margin: 0; + border-top: 1px solid darken(@popover-title-bg, 5%); + background-color: @popover-title-bg; + .iconpicker-btn { + margin-left: 10px; + } + input[type=search].iconpicker-search { + /*width:auto; + float:left;*/ + margin-bottom: @base_spacing; + } } // Arrows @@ -106,131 +105,133 @@ // .arrow is outer, .arrow:after is inner .iconpicker-popover.popover > .arrow { - &, - &:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; - } + &, + &:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + } } + .iconpicker-popover.popover > .arrow { - border-width: @popover-arrow-outer-width; + border-width: @popover-arrow-outer-width; } + .iconpicker-popover.popover > .arrow:after { - border-width: @popover-arrow-width; - content: ""; + border-width: @popover-arrow-width; + content: ""; } .iconpicker-popover.popover { - &.top, &.topLeft, &.topRight{ - > .arrow { - left: 50%; - margin-left: -@popover-arrow-outer-width; - border-bottom-width: 0; - border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback - border-top-color: @popover-arrow-outer-color; - bottom: -@popover-arrow-outer-width; - &:after { - content: " "; - bottom: 1px; - margin-left: -@popover-arrow-width; - border-bottom-width: 0; - border-top-color: @popover-arrow-color; - } - } - } - &.topLeft > .arrow{ - left:@arrow_position; - margin-left:0; - } - &.topRight > .arrow{ - left:auto; - right:@arrow_position; - margin-left:0; - } - &.right, &.rightTop, &.rightBottom{ - > .arrow { - top: 50%; - left: -@popover-arrow-outer-width; - margin-top: -@popover-arrow-outer-width; - border-left-width: 0; - border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback - border-right-color: @popover-arrow-outer-color; - &:after { - content: " "; - left: 1px; - bottom: -@popover-arrow-width; - border-left-width: 0; - border-right-color: @popover-arrow-color; - } - } - } - - &.rightTop > .arrow{ - top:auto; - bottom:@arrow_position; - margin-top:0; - } - &.rightBottom > .arrow{ - top:@arrow_position; - margin-top:0; - } - - &.bottom, &.bottomRight, &.bottomLeft{ - > .arrow { - left: 50%; - margin-left: -@popover-arrow-outer-width; - border-top-width: 0; - border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback - border-bottom-color: @popover-arrow-outer-color; - top: -@popover-arrow-outer-width; - &:after { - content: " "; - top: 1px; - margin-left: -@popover-arrow-width; - border-top-width: 0; - border-bottom-color: @popover-arrow-color; - } - } - } - &.bottomLeft > .arrow{ - left:@arrow_position; - margin-left:0; - } - &.bottomRight > .arrow{ - left:auto; - right:@arrow_position; - margin-left:0; - } - - &.left, &.leftBottom, &.leftTop{ - > .arrow { - top: 50%; - right: -@popover-arrow-outer-width; - margin-top: -@popover-arrow-outer-width; - border-right-width: 0; - border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback - border-left-color: @popover-arrow-outer-color; - &:after { - content: " "; - right: 1px; - border-right-width: 0; - border-left-color: @popover-arrow-color; - bottom: -@popover-arrow-width; - } - } - } - - &.leftBottom > .arrow{ - top:@arrow_position; - margin-top:0; - } - &.leftTop > .arrow{ - top:auto; - bottom:@arrow_position; - margin-top:0; - } + &.top, &.topLeft, &.topRight { + > .arrow { + left: 50%; + margin-left: -@popover-arrow-outer-width; + border-bottom-width: 0; + border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback + border-top-color: @popover-arrow-outer-color; + bottom: -@popover-arrow-outer-width; + &:after { + content: " "; + bottom: 1px; + margin-left: -@popover-arrow-width; + border-bottom-width: 0; + border-top-color: @popover-arrow-color; + } + } + } + &.topLeft > .arrow { + left: @arrow_position; + margin-left: 0; + } + &.topRight > .arrow { + left: auto; + right: @arrow_position; + margin-left: 0; + } + &.right, &.rightTop, &.rightBottom { + > .arrow { + top: 50%; + left: -@popover-arrow-outer-width; + margin-top: -@popover-arrow-outer-width; + border-left-width: 0; + border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback + border-right-color: @popover-arrow-outer-color; + &:after { + content: " "; + left: 1px; + bottom: -@popover-arrow-width; + border-left-width: 0; + border-right-color: @popover-arrow-color; + } + } + } + + &.rightTop > .arrow { + top: auto; + bottom: @arrow_position; + margin-top: 0; + } + &.rightBottom > .arrow { + top: @arrow_position; + margin-top: 0; + } + + &.bottom, &.bottomRight, &.bottomLeft { + > .arrow { + left: 50%; + margin-left: -@popover-arrow-outer-width; + border-top-width: 0; + border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback + border-bottom-color: @popover-arrow-outer-color; + top: -@popover-arrow-outer-width; + &:after { + content: " "; + top: 1px; + margin-left: -@popover-arrow-width; + border-top-width: 0; + border-bottom-color: @popover-arrow-color; + } + } + } + &.bottomLeft > .arrow { + left: @arrow_position; + margin-left: 0; + } + &.bottomRight > .arrow { + left: auto; + right: @arrow_position; + margin-left: 0; + } + + &.left, &.leftBottom, &.leftTop { + > .arrow { + top: 50%; + right: -@popover-arrow-outer-width; + margin-top: -@popover-arrow-outer-width; + border-right-width: 0; + border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback + border-left-color: @popover-arrow-outer-color; + &:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-color: @popover-arrow-color; + bottom: -@popover-arrow-width; + } + } + } + + &.leftBottom > .arrow { + top: @arrow_position; + margin-top: 0; + } + &.leftTop > .arrow { + top: auto; + bottom: @arrow_position; + margin-top: 0; + } } diff --git a/lib/fontawesome-iconpicker/src/less/variables.less b/lib/fontawesome-iconpicker/src/less/variables.less index ab4b0f3..4013d39 100644 --- a/lib/fontawesome-iconpicker/src/less/variables.less +++ b/lib/fontawesome-iconpicker/src/less/variables.less @@ -1,20 +1,11 @@ -/* - * Font Awesome Icon Picker - * https://itsjavi.com/fontawesome-iconpicker/ - * - * Originally written by (c) 2016 Javi Aguilar - * Licensed under the MIT License - * https://github.com/itsjavi/fontawesome-iconpicker/blob/master/LICENSE - * - */ - // Iconpicker variables: -@item_size:14px; -@hover_bg:#eee; +@item_size: 14px; +@hover_bg: #eee; @num_cols: 4; @num_rows: 5; @base_spacing: 12px; -@picker_width: (@item_size * @num_cols) + (@num_cols * @base_spacing * (@num_cols - 1)) + @base_spacing; +@scrollbar_compensation: @base_spacing + 6px; +@picker_width: (@item_size * @num_cols) + (@num_cols * @base_spacing * (@num_cols - 1)) + @base_spacing + @scrollbar_compensation; @row_outer_height: (@item_size + (@base_spacing * 3)) - 1px; @title_size: (@base_spacing + @item_size) / 2; @border_color: #ddd; @@ -25,29 +16,28 @@ //## //** Popover body background color -@popover-bg: #fff; +@popover-bg: #fff; //** Popover maximum width -@popover-max-width: 276px; +@popover-max-width: 276px; //** Popover border color -@popover-border-color: rgba(0,0,0,.2); +@popover-border-color: rgba(0, 0, 0, .2); //** Popover fallback border color -@popover-fallback-border-color: #ccc; +@popover-fallback-border-color: #ccc; //** Popover title background color -@popover-title-bg: darken(@popover-bg, 3%); +@popover-title-bg: darken(@popover-bg, 3%); //** Popover arrow width -@popover-arrow-width: 10px; +@popover-arrow-width: 10px; //** Popover arrow color -@popover-arrow-color: #fff; +@popover-arrow-color: #fff; //** Popover outer arrow width -@popover-arrow-outer-width: (@popover-arrow-width + 1); +@popover-arrow-outer-width: (@popover-arrow-width + 1); //** Popover outer arrow color -@popover-arrow-outer-color: fadein(@popover-border-color, 5%); +@popover-arrow-outer-color: fadein(@popover-border-color, 5%); //** Popover outer arrow fallback color -@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%); - +@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%); // Clearfix // @@ -62,53 +52,50 @@ // Source: http://nicolasgallagher.com/micro-clearfix-hack/ .clearfix() { - &:before, - &:after { - content: " "; // 1 - display: table; // 2 - } - &:after { - clear: both; - } + &:before, + &:after { + content: " "; // 1 + display: table; // 2 + } + &:after { + clear: both; + } } -.outer-border(){ - box-shadow: 0 0 0 1px @border_color; +.outer-border() { + box-shadow: 0 0 0 1px @border_color; } - // // Other Bootstrap Variables: // -------------------------------------------------- - //== Colors // //## Gray and brand colors for use across Bootstrap. -@gray-darker: lighten(#000, 13.5%); // #222 -@gray-dark: lighten(#000, 20%); // #333 -@gray: lighten(#000, 33.5%); // #555 -@gray-light: lighten(#000, 60%); // #999 -@gray-lighter: lighten(#000, 93.5%); // #eee - -@brand-primary: #428bca; -@brand-success: #5cb85c; -@brand-info: #5bc0de; -@brand-warning: #f0ad4e; -@brand-danger: #d9534f; +@gray-darker: lighten(#000, 13.5%); // #222 +@gray-dark: lighten(#000, 20%); // #333 +@gray: lighten(#000, 33.5%); // #555 +@gray-light: lighten(#000, 60%); // #999 +@gray-lighter: lighten(#000, 93.5%); // #eee +@brand-primary: #428bca; +@brand-success: #5cb85c; +@brand-info: #5bc0de; +@brand-warning: #f0ad4e; +@brand-danger: #d9534f; //== Scaffolding // // ## Settings for some of the most global styles. //** Background color for ``. -@body-bg: #fff; +@body-bg: #fff; //** Global text color on ``. -@text-color: @gray-dark; +@text-color: @gray-dark; //** Global textual link color. -@link-color: @brand-primary; +@link-color: @brand-primary; //** Link hover color set via `darken()` function. -@link-hover-color: darken(@link-color, 15%); +@link-hover-color: darken(@link-color, 15%); diff --git a/package.json b/package.json index e8fbc86..63bfd64 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": " ", "devDependencies": { "font-awesome": "4.7.0", - "fontawesome-iconpicker": "1.3.0", + "fontawesome-iconpicker": "3.0.0", "grunt": "^1.0.1", "grunt-contrib-copy": "^1.0.0", "load-grunt-tasks": "^3.5.2" diff --git a/yarn.lock b/yarn.lock index 6e40ea3..a283a04 100644 --- a/yarn.lock +++ b/yarn.lock @@ -154,9 +154,9 @@ font-awesome@4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" -fontawesome-iconpicker@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fontawesome-iconpicker/-/fontawesome-iconpicker-1.3.0.tgz#26187d4f8c0a0eeeaeb4b161601d0ab6f6d2fc91" +fontawesome-iconpicker@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fontawesome-iconpicker/-/fontawesome-iconpicker-3.0.0.tgz#689be496bf6ab8df539b849f2c2f6be3e209590e" fs.realpath@^1.0.0: version "1.0.0"