sr-list

An web component list-group abstraction with pre-defined handling methods


Keywords
polymer, web, component, web-components
License
MIT
Install
bower install sr-list

Documentation

=========

An (polymer) web component list-group abstraction with pre-defined handling methods

About

At some point you've needed a simple vertical menu or list step by step. When it is necessary in a webapp, we sometimes add, remove, disable, dynamically update these items, and do something minimally serviceable, uses a time abstracting and creating code.

The idea <sr-list> just give the basics of what we need to have some time without restricting its customization.

Image example

Image of example below

Demo

Online demo in here!

Support

Lastest Firefox and Chrome (Impementing)

Custom Element Framework Compatibility

Use Suggestions

As the technology of web components is recent, it is recommended a controllable environment, such as node-webkit.

How to use

Overview

<h2> As list-group </h2>
<aside role="complementary">

  <sr-list type="vertical">
      <sr-item>Normal</sr-item>
      <sr-item selected>Selected</sr-item>
      <sr-item disabled>Disabled</sr-item>
      <sr-item separator></sr-item>
      <sr-item icon="icon.png">With icon</sr-item>
      <sr-item icon-class="fa-plus">With icon-class</sr-item>
      <sr-item separator></sr-item>
  	<sr-item href="index.html">With href (please, mouseover me)</sr-item>
  </sr-list>

</aside>

Attributes

Note: strikethrough -> not implemented

sr-list
Attribute Options Default Description
disable Disable it
sr-item
Attribute Options Default Description
icon image address Add a icon image in left of the text
icon-class css's class Class of image src. Like as Font Awesome
disable Disable it
selected Select it
href javascript:function(), an_address.html As a[type=href] attribute. Use to redirect page or add javascript methods
selected Select it
separator Separator divider (only works on sr-list[vertical])

Handling

sr-list
Method Description Return / Param Param description
add(label, attributes, position) Add a sr-item in the menu return <sr-item> generated
                | `label`                                   | `String`                     | Item label
                | `attributes`                              | `Object`                     | `{"attribute-name": "value"}`
                | `position`                                | `Integer`                    | Position where item will be added
                | `position`                                | `undefined`                  | Last position

get(index) | Return the item with this 'index' | return <sr-item> | | index | Integer | Index of item getItems() | Return all the children nodes | return [<sr-item>, ...] | remove(index) | Remove and return item in the 'index' position | return <sr-item> | | index | Integer | Index position. -1 for last getSelected() | Return the first element with state seleted | return <sr-item> | getSelectedAll() | Return all the elements with state seleted | return [<sr-item>, ...] | disable(state) | Change state to disabled/enabled | | | state | undefined | Change state to disabled
| state | boolean | Change state to disabled/enabled

sr-item
Method Description Return / Param Param description
isSelected This item is selected? return boolean
select(state) Change state to select/unselect
                 | `state`                                             | `undefined`    | Change state to selected
                 | `state`                                             | `boolean`      | Change state to boolean value

isDisabled() | This item is disables? | return boolean | disable(state) | Change state to disabled/enabled | | | state | undefined | Change state to disabled | state | boolean | Change state to boolean value getIndex() | Return the index of the element or -1 if not found | |

Customing design

You can edit style! Try:

sr-list {
	background-color:
}
sr-item {
	background-color:
}
sr-item[selected] {
	background-color:
}
sr-item[selected]:hover {
	background-color:
}
sr-item[disabled] {
	background-color:
}
sr-item[selected][disabled] {
	background-color:
}
sr-item:hover {
	background-color:
}

/* Buggy */
sr-item:focus {
	background-color:
}
sr-item:active {
	background-color:
}