UNPKG

angular-dropdown-select

Version:

<p>Multiple Dropdown Select - <b>You can use this angular-dropdown-select apart from data tables as well.</b></p> <br/>

1 lines 9.86 kB
{"version":3,"file":"angular-dropdown-select.mjs","sources":["../../../projects/angular-dropdown-select/src/lib/angular-dropdown-select.service.ts","../../../projects/angular-dropdown-select/src/lib/angular-dropdown-select.component.ts","../../../projects/angular-dropdown-select/src/lib/angular-dropdown-select.component.html","../../../projects/angular-dropdown-select/src/lib/angular-dropdown-select.module.ts","../../../projects/angular-dropdown-select/src/public-api.ts","../../../projects/angular-dropdown-select/src/angular-dropdown-select.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AngularDropdownSelectService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-angular-dropdown-select',\r\n templateUrl:'./angular-dropdown-select.component.html',\r\n styleUrl: './angular-dropdown-select.component.css'\r\n})\r\nexport class AngularDropdownSelectComponent {\r\n\r\n @Input() headings: any;\r\n @Input() extras: any;\r\n @Output() onCheckBoxStatusChanged = new EventEmitter<{ id: number, checked: boolean }>();\r\n @Output() onUnselectAll = new EventEmitter<Boolean>();\r\n\r\n dropdownOpen = false;\r\n items: any;\r\n selectedCount: number = 0;\r\n selectAll: boolean = false;\r\n extra: any;\r\n uncheckAllStatus: boolean = false;\r\n dropdownButtonText : string = '';\r\n\r\n constructor(){}\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n const target = event.target as HTMLElement; \r\n if (!target.nextElementSibling?.classList.contains('show')) {\r\n this.dropdownOpen = false;\r\n }\r\n }\r\n\r\n ngOnInit(){\r\n this.items = this.headings;\r\n this.extra = this.extras;\r\n this.uncheckAllStatus = this.extra.uncheckAllStatus;\r\n this.dropdownButtonText = this.extra.dropdownButtonText ? this.extra.dropdownButtonText : 'Table Columns';\r\n this.countOfSelectedCheckboxes();\r\n this.iterateForSelectAllChecked();\r\n this.iterateForSelectAllUnChecked();\r\n }\r\n\r\n iterateForSelectAllChecked(){\r\n this.selectAll = Object.values(this.items).every((item:any) => item.checked === true)\r\n }\r\n\r\n iterateForSelectAllUnChecked(){\r\n this.uncheckAllStatus = Object.values(this.headings).every((item:any) => item.checked === false)\r\n if(this.uncheckAllStatus === true){\r\n this.onUnselectAll.emit(true);\r\n }else{\r\n this.onUnselectAll.emit(false);\r\n }\r\n }\r\n\r\n countOfSelectedCheckboxes(){\r\n this.selectedCount = 0;\r\n this.items.forEach((element: any) => {\r\n element.checked === true ? this.selectedCount++ : null;\r\n });\r\n }\r\n\r\n toggleDropdown(): void {\r\n this.dropdownOpen = !this.dropdownOpen;\r\n }\r\n\r\n onSelectAll(event: Event): void { \r\n const checkbox = event.target as HTMLInputElement;\r\n \r\n this.items.forEach((item:any) => {\r\n item.checked = checkbox.checked;\r\n this.onCheckBoxStatusChanged.emit(item);\r\n });\r\n\r\n this.countOfSelectedCheckboxes();\r\n this.iterateForSelectAllChecked();\r\n this.iterateForSelectAllUnChecked();\r\n }\r\n\r\n onItemSelected(item: any): void {\r\n this.countOfSelectedCheckboxes();\r\n this.onCheckBoxStatusChanged.emit(item);\r\n this.iterateForSelectAllChecked();\r\n this.iterateForSelectAllUnChecked();\r\n }\r\n}\r\n","<div class=\"dropdown\" (click)=\"toggleDropdown()\" tabindex=\"0\">\r\n <button class=\"dropdown-toggle\">\r\n {{ dropdownButtonText }} <span class=\"count-background-color\">{{ selectedCount }}</span>\r\n </button>\r\n <div class=\"dropdown-menu\" [class.show]=\"dropdownOpen\">\r\n <div class=\"dropdown-item\">\r\n <input type=\"checkbox\" class=\"checkbox-input\" (change)=\"onSelectAll($event)\" [(ngModel)]=\"selectAll\">\r\n <span class=\"checkbox-label\">Select All</span>\r\n </div>\r\n <div *ngFor=\"let item of items\" class=\"dropdown-item\">\r\n <input type=\"checkbox\" class=\"checkbox-input\" [(ngModel)]=\"item.checked\" (change)=\"onItemSelected(item)\">\r\n <span class=\"checkbox-label\">{{ item.name }}</span>\r\n </div>\r\n </div>\r\n</div>","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { AngularDropdownSelectComponent } from './angular-dropdown-select.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\n\r\n@NgModule({\r\n declarations: [\r\n AngularDropdownSelectComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n FormsModule\r\n ],\r\n exports: [\r\n AngularDropdownSelectComponent\r\n ],\r\n schemas: [ CUSTOM_ELEMENTS_SCHEMA ]\r\n})\r\nexport class AngularDropdownSelectModule { }\r\n","/*\r\n * Public API Surface of angular-dropdown-select\r\n */\r\n\r\nexport * from './lib/angular-dropdown-select.service';\r\nexport * from './lib/angular-dropdown-select.component';\r\nexport * from './lib/angular-dropdown-select.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}