toggle-group
v1.0.5
Published
ToggleGroup - A map like data structure to handle multiple toggle(-able) elements
Downloads
1,337
Maintainers
Readme
Toggle Group
A map like data structure to handle multiple toggle(-able) elements
What's ToggleGroup and how is useful
ToggleGroup
is a simple class that encapsulate a collection key value pairs, yet value is always boolean, toggleable.It provides interface to access value of particular key, change it and perform bulk operations like
closeAll
which sets all internal pairs to be valuefalse
.It can be useful in many scenarios, for example
- You want to build a Tab switch structure - it does exactly that, you could initate it with unique tab keys and then utilize
dropOpen
method to switch (set totrue
) on one of them, while keeping (or dropping) rest tofalse
. - You want to implement expand/collapse structure - yet again it does exactly that. It allows you to switch on (termed
open
) one or more keys, and close likewise. Also you could collapse all by callingcloseAll
method and expand all by callingopenAll
method.
- You want to build a Tab switch structure - it does exactly that, you could initate it with unique tab keys and then utilize
I wrote this structure and found it useful in front-end Angular application. I use this to keep my views binded togathered and yet easily switched, based on state of ToggleGroup
object. Examples are shared at end.
Installation
npm install toggle-group
Basic Usage
Importing
NodeJS
const { ToggleGroup, Toggle } = require('toggle-group');
Typescript
import { ToggleGroup, Toggle } from 'toggle-group';
Creating object
const simple = new ToggleGroup(); // that's all
const tg = new ToggleGroup(['good', 'better'], false);
tg.createToggle('best', true);
console.log(tg);
/* output
ToggleGroup {
_toggles: [
{ key: 'good', value: false },
{ key: 'better', value: false },
{ key: 'best', value: true }
]
}
*/
const tg1 = new ToggleGroup(
[
{ key: 'good', value: true }, // maybe of type Toggle/IToggle
Toggle.from({ key: 'good', value: false }), // Toggle instance created from IToggle
new Toggle('good', false), // may include Toggle instances,
'str-key-1',
'str-key-2',
],
// string key's get value passed in 2nd param, or fallback to `false`
true
);
console.log(tg1.getValue('str-key-1'));
/* output
true
*/
Properties and methods (operations)
Please refer to docs here.
Demo
A simple live demo is available at Stackblitz here.
Contribution
Kind of contrbution like improving code, fixing bugs, improving docs is highly appreciated.