Skip to content

Icon Manager #37

@soumak77

Description

@soumak77

Create an angular service (IconManager) which will be responsible for configuring which icons to use in the application. Currently the framework supports a subset of icons from Iconic. The desire is to be able to use any icon library such as Ionicons or Material Icons (or others down the line). The framework should allow configuring which icon library to use via an IconManagerProvider. Ideally, the framework will lazy load the icon library files so that only libraries enabled are loaded.

The IconManagerProvider should provide the following functionality:

  • A configuration object for iconic
    • Enabled by default
    • See current implementation for Iconic provider for other configuration options
  • A configuration object for ionicons
    • Disabled by default
  • A configuration object for materialicons
    • Disabled by default

The IconManager should provide the following functionality:

  • Support icons from Iconic
    • See current implementation for Iconic service and zf-iconic directive
  • Support icons from Ionicons
  • Support icons from Material Icons
  • Allow lazy loading library files
    • See https://github.com/urish/angular-load
    • Path to files can be part of config object. By default the paths can be configured to point to a CDN where the files are hosted. The developer can choose to override this with local paths if they want to host their own files.
    • Once lazy loading is supported, it should still allow the developer to not lazy load the files, in the event they want to include the icon library source in their application source for backwards compatibility.

Add following directives:

  • ba-iconic
  • ba-ionicons
    • options should be similar to ba-iconic for consistency
  • ba-material-icons
    • options should be similar to ba-iconic for consistency

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions