0.1.0 • Published 3 years ago
nested-choice v0.1.0
Nested Choice
Nested Choice is an angular component, for nested selections with a virtual offset, Angular Material is also built in.
Demo Stackblitz 📌
Get started 🚀
- Install library
npm i nested-choice
- Add the module to your application
import { NgModule } from "@angular/core";
import { AppComponent } from "./app.component";
import { NestedChoiceModule } from "nested-choice";
@NgModule({
declarations: [AppComponent],
imports: [
...
NestedChoiceModule
...
],
providers: [],
bootstrap: [AppComponent],
})
export class AppModule {}
- Basic example HTML component
<nested-choice-field
[required]="true"
[labelText]="'Select an option'"
[placeholderSearch]="'Search'"
[data]="data"
></nested-choice-field>
- Template options example
<ng-template #optionTpl let-option> {{ option.label }} </ng-template>
- Data example
data = [
{
label: "Company",
icon: "",
id: 1,
children: [
{
label: "Process",
icon: "",
id: 3,
children: [
{
label: "Home",
icon: "home",
id: 5,
},
{
label: "Statistics",
icon:
"https://cdn4.iconfinder.com/data/icons/simplicio/128x128/piechart.png",
id: 6,
},
],
},
{
label: "Human resources",
icon:
"https://cdn4.iconfinder.com/data/icons/top-search-7/128/_contact_book_contacts-_address_phonebook_human_list_profile_resources-256.png",
id: 4,
},
],
},
{
label: "Financial",
icon: "",
id: 2,
},
];
If you don't already have Angular Material installed in your project 📦
ng add @angular/material
API 🖇️
@Input list
Property | type | Description |
---|---|---|
labelKey | string | It allows customizing access to the label property, which can be defined by the user, the default value is label |
idKey | string | It allows customizing access to the id property, which can be defined by the user, the default value is id |
iconKey | string | It allows customizing access to the icon property, which can be defined by the user, the default value is icon |
visibleOptions | number | Determine the number of elements visible on the virtual scroll, this property is required |
data | Array | Option list |
currentOption | object, number, string | Option selected |
optionTpl | TemplateRef | show list in custom template |
required | boolean | Add the asterisk to the label |
searchbox | boolean | Hide or show input search, the default value is true |
placeholderSearch | string | Placeholder for input search, the default value is Search |
textNoOptions | string | Message to indicate that there are no options in the list, the default value is No options |
labelText | string | Text for show in floating label |
width | number, string | Width component, the default value id 200px |
disabled | boolean | Disable component |
hidden | boolean | Hidden component |
@Output list
Property | type | Description |
---|---|---|
selectChange | EventEmitter | Notify when selecting a modified or selected option for the first time, returns the object of the selected item |
opened | EventEmitter | Notify when select list is opened |
closed | EventEmitter | Notify when select list is closed |
Built with 🛠️
- Angular - Web Framework
- Angular Material - Component Library
Author ✒️
- Jeison Nisperuza - jnisperuza - jnisperuza.github.io