#CluedIn Widget Management
This is the project for creating and managing widgets in CluedIn.
##Widget
###Class
A widget is a simple React class. Nothing more but providers you extra-API built by CluedIn in order to get the integration in CluedIn for free.
###Dependencies
Each widget MUST define a config.js.
{
name: "onBoarding",
mixins: [ 'isClosable' ],
stores: [ 'boarding', 'mostconnected' ],
components: ['widget', 'cluedinbutton', 'cluedinprogress']
}
####name
The name of the component.
####mixins
Mixins to be applied on the component ( in order to add extra parameter or extra methods ).
####stores
The High-level store that you need to your component. See the list of stores. By default, the CORE store will always be available.
####Components
List of generic components provided by CluedIn to build the widget and have the style already set.
####Dependencies
List of widget that you must have in order to run that specific component. The tree of dependencies is handled by the API.
###Composition
A widget can be composed by multiple widgets. This means the API will loop through all of them in order to build the appropriate scripts that would be run on the browser.
##CORE
The core is the files that would be loaded for each for the widget whatever the dependencies it has.
This means you can rely on that API to be available even for an 'empty' component.
###Styles
The CORE provides a default style, mainly the structure for the component. The CORE style provides a basic grid systems, basic styling for your text, your headers,...
COMING SOON: You can 'white-label' the style by padding appropriates properties to our CSS Handlers.
###Actions
Basic actions that a component can throw which are shared. For example, redirect to a page.
###Stores
a basic stores to get the initial data for a given Users wherever is place the widget. Basically, it handles authentication and authorization.
##API
Methods used by CluedIn for building your widgets.
##build(widgetName)