interface IconDefinitionInterface

Interface for icon definition.

@internal This API is experimental.

Hierarchy

Expanded class hierarchy of IconDefinitionInterface

All classes that implement IconDefinitionInterface

7 files declare their use of IconDefinitionInterface
ExtractorTest.php in core/tests/Drupal/Tests/Core/Theme/Icon/Plugin/ExtractorTest.php
IconPackManager.php in core/lib/Drupal/Core/Theme/Icon/Plugin/IconPackManager.php
IconPackManagerInterface.php in core/lib/Drupal/Core/Theme/Icon/Plugin/IconPackManagerInterface.php
IconPackManagerKernelTest.php in core/tests/Drupal/KernelTests/Core/Theme/Icon/IconPackManagerKernelTest.php
IconTestTrait.php in core/tests/Drupal/Tests/Core/Theme/Icon/IconTestTrait.php

... See full list

File

core/lib/Drupal/Core/Theme/Icon/IconDefinitionInterface.php, line 15

Namespace

Drupal\Core\Theme\Icon
View source
interface IconDefinitionInterface {
    
    /**
     * Create an icon definition.
     *
     * @param string $pack_id
     *   The id of the icon pack.
     * @param string $icon_id
     *   The id of the icon.
     * @param string $template
     *   The icon template from definition.
     * @param string|null $source
     *   The source, url or path of the icon.
     * @param string|null $group
     *   The group of the icon.
     * @param array $data
     *   The additional data of the icon. Used by extractors to dynamically add
     *   any needed value.
     *
     * @return self
     *   The icon definition.
     */
    public static function create(string $pack_id, string $icon_id, string $template, ?string $source = NULL, ?string $group = NULL, array $data = []) : self;
    
    /**
     * Create an icon full id.
     *
     * @param string $pack_id
     *   The id of the icon pack.
     * @param string $icon_id
     *   The id of the icon.
     *
     * @return string
     *   The icon full id.
     */
    public static function createIconId(string $pack_id, string $icon_id) : string;
    
    /**
     * Get icon id and pack id from an icon full id.
     *
     * @param string $icon_full_id
     *   The id of the icon including the pack.
     *
     * @return array|null
     *   The icon data as keyed with `pack_id` and `icon_id`.
     */
    public static function getIconDataFromId(string $icon_full_id) : ?array;
    
    /**
     * Get the icon renderable element array.
     *
     * Shortcut to use icon element quickly without check if the icon id is valid,
     * then the element will simply be empty.
     *
     * @param string $icon_full_id
     *   The id of the icon including the pack.
     * @param array $settings
     *   Settings to pass to the renderable for context. Can be indexed by the
     *   icon pack id for lookup.
     *
     * @return array|null
     *   The icon renderable.
     */
    public static function getRenderable(string $icon_full_id, array $settings = []) : ?array;
    
    /**
     * Get the icon label as human friendly.
     *
     * @return string
     *   The icon label.
     */
    public function getLabel() : string;
    
    /**
     * Get the full icon id.
     *
     * @return string
     *   The icon id as pack_id:icon_id.
     */
    public function getId() : string;
    
    /**
     * Get the icon id.
     *
     * @return string
     *   The icon id as icon_id.
     */
    public function getIconId() : string;
    
    /**
     * Get the icon Pack id.
     *
     * @return string
     *   The icon Pack id.
     */
    public function getPackId() : string;
    
    /**
     * Get the icon source, path or url.
     *
     * @return string|null
     *   The icon source.
     */
    public function getSource() : ?string;
    
    /**
     * Get the icon Group.
     *
     * @return string|null
     *   The icon Group.
     */
    public function getGroup() : ?string;
    
    /**
     * Get the icon Twig template.
     *
     * @return string
     *   The icon template.
     */
    public function getTemplate() : string;
    
    /**
     * Get the icon pack label.
     *
     * @return \Drupal\Core\StringTranslation\TranslatableMarkup|null
     *   The icon pack label.
     */
    public function getPackLabel() : ?TranslatableMarkup;
    
    /**
     * Get the icon Twig library.
     *
     * @return string|null
     *   The icon library.
     */
    public function getLibrary() : ?string;
    
    /**
     * Get all icon data.
     *
     * Icon data is injected by extractors and can be used to set any values
     * needed for the extractor loadIcon() method.
     * The data is then injected in the Twig template of the icon.
     *
     * @return array
     *   All the icon data.
     */
    public function getAllData() : array;
    
    /**
     * Get a specific icon data.
     *
     * @param string $key
     *   The data key to retrieve.
     *
     * @return mixed
     *   The icon specific data if exist or null. The data being added as an array
     *   by extractors, there is no specific type enforced.
     */
    public function getData(string $key) : mixed;

}

Members

Title Sort descending Modifiers Object type Summary Overrides
IconDefinitionInterface::create public static function Create an icon definition. 1
IconDefinitionInterface::createIconId public static function Create an icon full id. 1
IconDefinitionInterface::getAllData public function Get all icon data. 1
IconDefinitionInterface::getData public function Get a specific icon data. 1
IconDefinitionInterface::getGroup public function Get the icon Group. 1
IconDefinitionInterface::getIconDataFromId public static function Get icon id and pack id from an icon full id. 1
IconDefinitionInterface::getIconId public function Get the icon id. 1
IconDefinitionInterface::getId public function Get the full icon id. 1
IconDefinitionInterface::getLabel public function Get the icon label as human friendly. 1
IconDefinitionInterface::getLibrary public function Get the icon Twig library. 1
IconDefinitionInterface::getPackId public function Get the icon Pack id. 1
IconDefinitionInterface::getPackLabel public function Get the icon pack label. 1
IconDefinitionInterface::getRenderable public static function Get the icon renderable element array. 1
IconDefinitionInterface::getSource public function Get the icon source, path or url. 1
IconDefinitionInterface::getTemplate public function Get the icon Twig template. 1

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.