diff --git a/config/optional/embed.button.icon_select.yml b/config/optional/embed.button.icon_select.yml
new file mode 100644
index 0000000..7dcdb25
--- /dev/null
+++ b/config/optional/embed.button.icon_select.yml
@@ -0,0 +1,25 @@
+status: true
+dependencies:
+  config:
+    - entity_browser.browser.icon_select_browser
+    - taxonomy.vocabulary.icons
+  module:
+    - entity_embed
+    - icon_select
+    - taxonomy
+label: 'Icon Select'
+id: icon_select
+type_id: entity
+type_settings:
+  entity_type: taxonomy_term
+  bundles:
+    - icons
+  display_plugins:
+    - 'entity_reference:icon_select_formatter_default'
+  entity_browser: icon_select_browser
+  entity_browser_settings:
+    display_review: false
+icon:
+  data: iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAArJJREFUeNq0lrF2EkEUhpecqLGCxpNOKDSkgkaTSmwCVKHRpBIbEytiI6mCjeADaFJFG8EqVsFKbQRfIFAl2rC+QJYnwC9czjLMLIvuJvfMzpm5d3buzD//vTORwWBghZNOp+v0nYeZjKd13got+wcH1NMcWINw0uv1rt1YoNDwHBDWwbOtbXFAw3NAhA8Qy7u7PiAUi0+eFoum3rbtu8llwInH4/VG4/fZKY2wZ9Bqt/tOv9Pt2PYf2mgqlb3E0MFaLj90djudSkdj0dGpBANEyq3FRRcZGneWkqpVTP8N0db2cxYbi0V/nZ5RayMdp7+0nKRm/If3hyOIGJfJPPBxoCIrv+Ejm899//pN9cG8KNXZg9NUsHq0saEq6aJ8WS6ryjk5t+sLN31KtVbT9rRTKlEnJjkjXTFNsAjDq8qeD0QZI0phEXUqlWJxtdob4RJdyRwTZA0G0etqFTQ02kgXkw5RAGm3f0qgQXbii1IorNMdbq57CbmIxa5lcz9aLVVJFyWmS8hFJyedfzRFwt8H/jJnXbFcuYN5NU02Gp+ECel0ingxc28AGZ0BuYUsptnIJ57XQLP5Ra7JacLiYO3YAWvP5vKkrc9HR5LE8Ud+JW2ZdwiBen91VTJgwthiz7YFg/GPbpLSSP2xXjczl5DdvQw0RtJFKVZ3tgsHaO+trJiMZhyB4+ng7bt9/qIcHzddvWgwqQ4CsggWcBkAwuPNTfC8uB5y+Wg0hhKTnip8IDLfCrIDGXx+7rB1wYQGXW3ACCJRsTtXy+yCpvna0f5nUtYHkjK7twNEgNOKeYzm/6ZoA0aB9mKnBHawmyeJUJDbA6bKxavDalkyzFM0k1+yk+gjPlQf0FzigMfPtIeT+uaYkU3FBxsicNQp2sMn1zQprBfGm56Z+jlwn+w/U/4KMADuGtNHDYPjyAAAAABJRU5ErkJggg==
+  uri: 'public://embed_buttons/icon-select.png'
+icon_uuid: null
diff --git a/config/optional/entity_browser.browser.icon_select_browser.yml b/config/optional/entity_browser.browser.icon_select_browser.yml
new file mode 100644
index 0000000..412ce99
--- /dev/null
+++ b/config/optional/entity_browser.browser.icon_select_browser.yml
@@ -0,0 +1,40 @@
+status: true
+dependencies:
+  config:
+    - views.view.icon_select
+  module:
+    - entity_browser_entity_form
+    - views
+name: icon_select_browser
+label: 'Icon Select browser'
+display: iframe
+display_configuration:
+  width: 100%
+  height: '500'
+  link_text: 'Select icon'
+  auto_open: true
+selection_display: no_display
+selection_display_configuration: {  }
+widget_selector: tabs
+widget_selector_configuration: {  }
+widgets:
+  34ae1210-bc5c-49ab-b2e6-aa812051ca84:
+    settings:
+      view: icon_select
+      view_display: icon_browser
+      submit_text: 'Select icon'
+      auto_select: false
+    uuid: 34ae1210-bc5c-49ab-b2e6-aa812051ca84
+    weight: 1
+    label: Library
+    id: view
+  1a355f16-6489-408c-b95f-53a2cec96674:
+    settings:
+      entity_type: taxonomy_term
+      bundle: icons
+      form_mode: default
+      submit_text: 'Save icon'
+    uuid: 1a355f16-6489-408c-b95f-53a2cec96674
+    weight: 2
+    label: 'New icon'
+    id: entity_form
diff --git a/config/optional/views.view.icon_select.yml b/config/optional/views.view.icon_select.yml
new file mode 100644
index 0000000..0bb9242
--- /dev/null
+++ b/config/optional/views.view.icon_select.yml
@@ -0,0 +1,548 @@
+status: true
+dependencies:
+  config:
+    - field.storage.taxonomy_term.field_symbol_id
+    - taxonomy.vocabulary.icons
+  module:
+    - entity_browser
+    - file
+    - taxonomy
+    - user
+id: icon_select
+label: Icons
+module: views
+description: ''
+tag: ''
+base_table: taxonomy_term_field_data
+base_field: tid
+display:
+  default:
+    display_plugin: default
+    id: default
+    display_title: Master
+    position: 0
+    display_options:
+      access:
+        type: perm
+        options:
+          perm: 'access icon_select_browser entity browser pages'
+      cache:
+        type: tag
+        options: {  }
+      query:
+        type: views_query
+        options:
+          disable_sql_rewrite: false
+          distinct: false
+          replica: false
+          query_comment: ''
+          query_tags: {  }
+      exposed_form:
+        type: basic
+        options:
+          submit_button: Apply
+          reset_button: false
+          reset_button_label: reset
+          exposed_sorts_label: 'Order by'
+          expose_sort_order: true
+          sort_asc_label: Asc
+          sort_desc_label: Desc
+      pager:
+        type: mini
+        options:
+          items_per_page: 10
+          offset: 0
+          id: 0
+          total_pages: null
+          expose:
+            items_per_page: false
+            items_per_page_label: 'Items per page'
+            items_per_page_options: '5, 10, 25, 50'
+            items_per_page_options_all: false
+            items_per_page_options_all_label: '- All -'
+            offset: false
+            offset_label: Offset
+          tags:
+            previous: ‹‹
+            next: ››
+      style:
+        type: default
+        options:
+          grouping: {  }
+          row_class: ''
+          default_row_class: true
+          uses_fields: false
+      row:
+        type: fields
+        options:
+          inline: {  }
+          separator: ''
+          hide_empty: false
+          default_field_elements: true
+      fields:
+        name:
+          id: name
+          table: taxonomy_term_field_data
+          field: name
+          entity_type: taxonomy_term
+          entity_field: name
+          label: ''
+          alter:
+            alter_text: false
+            make_link: false
+            absolute: false
+            trim: false
+            word_boundary: false
+            ellipsis: false
+            strip_tags: false
+            html: false
+          hide_empty: false
+          empty_zero: false
+          type: string
+          settings:
+            link_to_entity: true
+          plugin_id: term_name
+          relationship: none
+          group_type: group
+          admin_label: ''
+          exclude: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_alter_empty: true
+          click_sort_column: value
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          convert_spaces: false
+      filters:
+        status:
+          value: '1'
+          table: taxonomy_term_field_data
+          field: status
+          plugin_id: boolean
+          entity_type: taxonomy_term
+          entity_field: status
+          id: status
+          expose:
+            operator: ''
+            operator_limit_selection: false
+            operator_list: {  }
+          group: 1
+        vid:
+          id: vid
+          table: taxonomy_term_field_data
+          field: vid
+          value:
+            icons: icons
+          entity_type: taxonomy_term
+          entity_field: vid
+          plugin_id: bundle
+          expose:
+            operator_limit_selection: false
+            operator_list: {  }
+      sorts: {  }
+      header: {  }
+      footer: {  }
+      empty: {  }
+      relationships: {  }
+      arguments: {  }
+      display_extenders: {  }
+    cache_metadata:
+      max-age: -1
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url.query_args
+        - user.permissions
+      tags: {  }
+  icon_browser:
+    display_plugin: entity_browser
+    id: icon_browser
+    display_title: 'Icon browser'
+    position: 1
+    display_options:
+      display_extenders: {  }
+      display_description: ''
+      style:
+        type: grid
+        options:
+          grouping: {  }
+          columns: 4
+          automatic_width: true
+          alignment: horizontal
+          col_class_default: true
+          col_class_custom: ''
+          row_class_default: true
+          row_class_custom: ''
+      defaults:
+        style: false
+        row: false
+        fields: false
+        pager: false
+        empty: false
+        sorts: false
+        filters: false
+        filter_groups: false
+        css_class: false
+        relationships: false
+      row:
+        type: fields
+        options:
+          inline: {  }
+          separator: ''
+          hide_empty: false
+          default_field_elements: true
+      fields:
+        entity_browser_select:
+          id: entity_browser_select
+          table: taxonomy_term_data
+          field: entity_browser_select
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: false
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          use_field_cardinality: false
+          entity_type: taxonomy_term
+          plugin_id: entity_browser_select
+        name:
+          id: name
+          table: taxonomy_term_field_data
+          field: name
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: false
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: string
+          settings:
+            link_to_entity: false
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          convert_spaces: false
+          entity_type: taxonomy_term
+          entity_field: name
+          plugin_id: term_name
+        field_symbol_id:
+          id: field_symbol_id
+          table: taxonomy_term__field_symbol_id
+          field: field_symbol_id
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: false
+          alter:
+            alter_text: true
+            text: "{{ {\r\n  '#theme': 'icon_select_svg_icon',\r\n  '#symbol_id': field_symbol_id__value|trim,\r\n  '#attributes': {\r\n    'width': '200',\r\n    'height': '200',\r\n  },\r\n  '#attached': {'library': ['icon_select/drupal.icon_select_frontend']},\r\n}|render }}"
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: false
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: string
+          settings:
+            link_to_entity: false
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          plugin_id: field
+      pager:
+        type: full
+        options:
+          items_per_page: 8
+          offset: 0
+          id: 0
+          total_pages: null
+          tags:
+            previous: ‹‹
+            next: ››
+            first: '« First'
+            last: 'Last »'
+          expose:
+            items_per_page: false
+            items_per_page_label: 'Items per page'
+            items_per_page_options: '5, 10, 25, 50'
+            items_per_page_options_all: false
+            items_per_page_options_all_label: '- All -'
+            offset: false
+            offset_label: Offset
+          quantity: 9
+      empty:
+        area_text_custom:
+          id: area_text_custom
+          table: views
+          field: area_text_custom
+          relationship: none
+          group_type: group
+          admin_label: ''
+          empty: true
+          tokenize: false
+          content: 'There are no icons to display.'
+          plugin_id: text_custom
+      sorts:
+        weight:
+          id: weight
+          table: taxonomy_term_field_data
+          field: weight
+          relationship: none
+          group_type: group
+          admin_label: ''
+          order: ASC
+          exposed: false
+          expose:
+            label: ''
+          entity_type: taxonomy_term
+          entity_field: weight
+          plugin_id: standard
+        name:
+          id: name
+          table: taxonomy_term_field_data
+          field: name
+          relationship: none
+          group_type: group
+          admin_label: ''
+          order: ASC
+          exposed: false
+          expose:
+            label: ''
+          entity_type: taxonomy_term
+          entity_field: name
+          plugin_id: standard
+      filters:
+        status:
+          value: '1'
+          table: taxonomy_term_field_data
+          field: status
+          plugin_id: boolean
+          entity_type: taxonomy_term
+          entity_field: status
+          id: status
+          expose:
+            operator: ''
+            operator_limit_selection: false
+            operator_list: {  }
+          group: 1
+        vid:
+          id: vid
+          table: taxonomy_term_field_data
+          field: vid
+          value:
+            icons: icons
+          entity_type: taxonomy_term
+          entity_field: vid
+          plugin_id: bundle
+          expose:
+            operator_limit_selection: false
+            operator_list: {  }
+        name:
+          id: name
+          table: taxonomy_term_field_data
+          field: name
+          relationship: none
+          group_type: group
+          admin_label: ''
+          operator: allwords
+          value: ''
+          group: 1
+          exposed: true
+          expose:
+            operator_id: name_op
+            label: Nom
+            description: ''
+            use_operator: false
+            operator: name_op
+            operator_limit_selection: false
+            operator_list: {  }
+            identifier: name
+            required: false
+            remember: false
+            multiple: false
+            remember_roles:
+              authenticated: authenticated
+              anonymous: '0'
+              editor: '0'
+              seo_manager: '0'
+              site_manager: '0'
+              administrator: '0'
+            placeholder: ''
+          is_grouped: false
+          group_info:
+            label: ''
+            description: ''
+            identifier: ''
+            optional: true
+            widget: select
+            multiple: false
+            remember: false
+            default_group: All
+            default_group_multiple: {  }
+            group_items: {  }
+          entity_type: taxonomy_term
+          entity_field: name
+          plugin_id: string
+      filter_groups:
+        operator: AND
+        groups:
+          1: AND
+      css_class: editor-media-browser
+      relationships:
+        field_svg_file_target_id:
+          id: field_svg_file_target_id
+          table: taxonomy_term__field_svg_file
+          field: field_svg_file_target_id
+          relationship: none
+          group_type: group
+          admin_label: 'File from field_svg_file'
+          required: true
+          plugin_id: standard
+    cache_metadata:
+      max-age: -1
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url
+        - url.query_args
+        - user.permissions
+      tags:
+        - 'config:field.storage.taxonomy_term.field_symbol_id'
diff --git a/js/iconselect/plugin.js b/js/iconselect/plugin.js
new file mode 100644
index 0000000..ac8ba84
--- /dev/null
+++ b/js/iconselect/plugin.js
@@ -0,0 +1,127 @@
+/**
+ * @file
+ * Handle Icon Select preview.
+ */
+
+(function($, Drupal, CKEDITOR) {
+
+  "use strict";
+
+  var svgContent = null,
+    spriteRegex = /<symbol(\s+[^>]*id="([^"]+)"[^>]*)>((?:[\s\S](?!<symbol>))+?)<\/symbol>/g,
+    symbolAttributesRegex = /\b([^=]+)\b\s*=\s*"([^"]+)"/g;
+
+  CKEDITOR.plugins.add('iconselect', {
+    requires: 'drupalentity',
+
+    beforeInit: function(editor) {
+      if (svgContent === null && editor.config.hasOwnProperty('IconSelect_url')) {
+        $.get(editor.config.IconSelect_url, this.parseSvgSprite.bind(this));
+      }
+    },
+
+    init: function(editor) {
+      // Override the _loadPreview() method of "drupalentity" plugin, to handle
+      // the preview of SVG files. We cannot append the SVG sprite to the iframe
+      // body, as we do not want it to be saved.
+      if (editor.widgets.registered.hasOwnProperty('drupalentity') && typeof editor.widgets.registered.drupalentity._loadPreview === 'function') {
+        var originalLoadPreview = editor.widgets.registered.drupalentity._loadPreview;
+
+        // Wrap callback inside ours.
+        editor.widgets.registered.drupalentity._loadPreview = function(callback) {
+          var wrappedCallback = function(widget) {
+            var svgs = widget.element.find('svg'),
+              count = svgs.count(),
+              svg,
+              use,
+              symbol,
+              name;
+
+            if (count > 0) {
+              for (var i = 0; i < count; i++) {
+                svg = svgs.getItem(i);
+                use = svg.find('use');
+
+                if (use.count() > 0) {
+                  use = use.getItem(0);
+
+                  if (use.hasAttribute('xlink:href')) {
+                    var id = use.getAttribute('xlink:href').substring(1);
+
+                    if (svgContent.hasOwnProperty(id)) {
+                      symbol = svgContent[id];
+
+                      svg.setHtml(symbol.content);
+
+                      for (name in symbol.attributes) {
+                        if (symbol.attributes.hasOwnProperty(name)) {
+                          svg.setAttribute(name, symbol.attributes[name]);
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+
+            callback(widget);
+          };
+
+          originalLoadPreview.apply(this, [wrappedCallback]);
+        };
+      }
+    },
+
+    /**
+     * Parse the given SVG sprite to find all symbols.
+     *
+     * @param {String} data
+     *   The HTTP response.
+     */
+    parseSvgSprite: function(data) {
+      svgContent = {};
+
+      var match,
+        html = new XMLSerializer().serializeToString(data.documentElement);
+
+      // Do not use matchAll to ensure IE11 compatibility.
+      do {
+        if ((match = spriteRegex.exec(html))) {
+          svgContent[match[2]] = {
+            content: match[3],
+            attributes: this.parseSymbolAttributes(match[1])
+          };
+        }
+      } while (match);
+    },
+
+    /**
+     * Parse the HTML attributes of the given Symbol, ignoring the "id" attribute.
+     *
+     * @param {String} html
+     *
+     * @return {{}}
+     */
+    parseSymbolAttributes: function(html) {
+      var match,
+        attributes = {};
+
+      do {
+        if ((match = symbolAttributesRegex.exec(html)) && match[1] !== 'id') {
+          attributes[match[1]] = match[2];
+        }
+      } while (match);
+
+      return attributes;
+    }
+
+  });
+})(jQuery, Drupal, CKEDITOR);
+
+/**
+ * Defines the SVG Sprite URL.
+ *
+ * @cfg {String} [IconSelect_url=see source]
+ * @member CKEDITOR.config
+ */
+CKEDITOR.config.IconSelect_url = null;
diff --git a/src/Helper/SvgSpriteGenerator.php b/src/Helper/SvgSpriteGenerator.php
index d17771c..1b367be 100644
--- a/src/Helper/SvgSpriteGenerator.php
+++ b/src/Helper/SvgSpriteGenerator.php
@@ -115,4 +115,22 @@ class SvgSpriteGenerator {
     return $destination;
   }

+  /**
+   * Get the sprite URL, if applicable.
+   *
+   * @return string|null
+   */
+  public static function getUrl() {
+    $svg_path = static::getSpriteDestinationPath();
+
+    if (file_exists($svg_path)) {
+      $full_url = file_url_transform_relative(file_create_url($svg_path));
+      // Add a random string to disable caching of AJAX request.
+      $url = $full_url . '?hash=' . \Drupal::state()->get('icon_select_hash');
+      return $url;
+    }
+
+    return NULL;
+  }
+
 }
diff --git a/src/Plugin/CKEditorPlugin/IconSelect.php b/src/Plugin/CKEditorPlugin/IconSelect.php
new file mode 100644
index 0000000..eb9178c
--- /dev/null
+++ b/src/Plugin/CKEditorPlugin/IconSelect.php
@@ -0,0 +1,92 @@
+<?php
+
+namespace Drupal\icon_select\Plugin\CKEditorPlugin;
+
+use Drupal\Core\Plugin\PluginBase;
+use Drupal\editor\Entity\Editor;
+use Drupal\ckeditor\CKEditorPluginInterface;
+use Drupal\ckeditor\CKEditorPluginContextualInterface;
+use Drupal\icon_select\Helper\SvgSpriteGenerator;
+
+/**
+ * Defines the "Icon Select" plugin.
+ *
+ * @CKEditorPlugin(
+ *   id = "iconselect",
+ *   label = @Translation("Icon Select")
+ * )
+ */
+class IconSelect extends PluginBase implements CKEditorPluginInterface, CKEditorPluginContextualInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isInternal() {
+    return FALSE;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFile() {
+    return drupal_get_path('module', 'icon_select') . '/js/iconselect/plugin.js';
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isEnabled(Editor $editor) {
+    if (!$editor->hasAssociatedFilterFormat()) {
+      return FALSE;
+    }
+
+    $settings = $editor->getSettings();
+
+    if (!empty($settings['toolbar']['rows'])) {
+      foreach ($settings['toolbar']['rows'] as $groups) {
+        foreach ($groups as $items) {
+          if (in_array('icon_select', $items['items'])) {
+            return TRUE;
+          }
+        }
+      }
+    }
+
+    return FALSE;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getLibraries(Editor $editor) {
+    return [
+      'icon_select/drupal.icon_select_frontend',
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getConfig(Editor $editor) {
+    return [
+      'IconSelect_url' => SvgSpriteGenerator::getUrl(),
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDependencies(Editor $editor) {
+    return [
+      'drupalentity',
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getButtons() {
+    return [];
+  }
+
+}
