Icon

Definition

<cst-icon>
<sub-theme/>
<sub-font/>
<sub-style/>
<sub-access/>
<sub-icon-name/>
<sub-subscript/>
<sub-superscript/>
<sub-feature-flag/>
</cst-icon>

Example

<cst-icon id="" value="">
<sub-theme name="" clr-var1="" clr-var2=""/>
<sub-font name="" font-var1="" font-var2=""/>
<sub-style name="" width="" height=""/>
<sub-access can-view="" can-modify=""/>
<sub-icon-name name=""/>
<sub-subscript text=""/>
<sub-superscript text=""/>
<sub-feature-flag>
</cst-input>

OR

<cst-element name="icon" schema="" schema-prop=""/>

Attributes

AttributeValueDescription
idstring typeIdentifier for component.
disabledboolean typeSpecifies if component should be disabled.(aurelia ext attribute)
classSpecifies class to be applied(Multiple classes can be given with space).

sub-theme

object typeSpecifies theme to be used for component.

sub-font

object typeSpecifies fonts to be used for component.

sub-style

object typeSpecifies style to be applied to component.

sub-access

object typeSpecifies access of the component.

sub-icon-name

object typeSpecifies icon name.

sub-subscript

object typeSpecifies subscript displayed.

sub-superscript

object typeSpecifies superscript displayed.

sub-feature-flag

objectSpecifies what features to enable/disable.
otherany typeAny other info.
schemaobject type Specifies JSON schema.
schema-propstring typeSpecifies property to be used to pick schema.

Sub element attributes

sub-theme

PropertyValueDescription
nameprimary(default)/secondary/customName of the theme.
clr-labelstring typeIf custom then specific/ named color variables

sub-font

PropertyValueDescription
nameroboto (default)/customName of the font
font-textstring typeIf custom then specific/ named font variables.
font-labelstring type
font-errorstring type

sub-style

PropertyValueDescription
namematerial/font-awesomeName of design to be used.
widthpercentage/pixels/string(x-small,small,medium,large,x-large)Gives width/any other prop value

sub-icon-name

PropertyValueDescription
namestring typeName of icon to be shown. (Aurelia ext attribute)

sub-subscript

PropertyValueDescription
textstring typeText to be shown as subscript

sub-superscript

PropertyValueDescription
textstring typeText to be shown as superscript

sub-feature-flag

PropertyValueDescription

Schema Examples

Full schema

Fetch appropriate based on schemaProp

let schema = {
type: "object",
required: [""], //= required
properties: {
closeIcon: {
type: "string",
cstAttr: {
raw:{ //loop & add to element
disabled : true,
class:'outline cst-class1'
},
subIcon: {
name: ''
tooltip:'',
superScript:'',
subScript:''
},
others:{
},
subStyle:{ //loop & add to element style
name: '',
width:'',
height:'',
fontSize:''
},
subFeatureFlag: {
charCountHide: true
},
subTheme:{
name:'',
clrLabel:''
},
subFont:{
name:'',
fontText:'',
fontLabel:'',
fontError:''
},
subSubscript: {
text:""
},
subSuperscript: {
text: ""
},
subIconName: {
name:""
}
}
}
}
}
let schemaProp = 'closeIcon';
let finalSchema = schemaProp ? schema.properties[schemaProp] : schema;

Exact schema

let schema = {
type: "string", //= type 'text'
cstAttr: {
}
}
let schemaProp = '';
let finalSchema = schemaProp ? schema.properties[schemaProp] : schema;

Nested object

Nested object schemaProp

let schema = {};
let schemaProp = 'EMDDetails.closeIcon';
let value = 'CLOSE'
var finalSchema = schema;
let schemaPropSplits = schemaProp.split('.');
for(let prop of schemaPropSplits){
finalSchema = finalSchema.properties[schemaProp];
}

Material Measurement Guidelines

  • Total Width = 48px
  • Total Height = 48px

Events

AttributeDescription
onclickFires when the element is clicked.
onhoverFires when the element is hovered.

Event Method signature

method(parentRefObj, evtObj, elm, others)

Parameters description

ParameterValueDescription
parentRefObj
parentRefObj = {
parentContext,
loopParentContext,
doubleLoopParentContext
}
Parent Context references
evtObjobjectEvent object
elmobjectElement value
othersanyOther value

OverRidable Classes

  • cst-ovr-icon-elm
  • cst-ovr-icon

Unit Test Screenshots

Responsiveness Test Screenshots

Design Images

Demo link

Points

  • event callback consistency (evtObj, elm, others,...) //check other libs
  • over-rideable classes (cst-ovr-elm) for label, textbox, icons, helper text, error text //check other libs
  • fonts (text - Subtitle 1 - Regular 16, Label - Caption - Regular 12)
  • EXT trigger cases
  • Check logging, security, performance & flexibility