{"version":3,"file":"angular-filter-dropdown.mjs","sources":["../../../projects/angular-filter-dropdown/src/lib/angular-filter-dropdown.service.ts","../../../projects/angular-filter-dropdown/src/lib/angular-filter-dropdown.component.ts","../../../projects/angular-filter-dropdown/src/lib/angular-filter-dropdown.component.html","../../../projects/angular-filter-dropdown/src/lib/angular-filter-dropdown.module.ts","../../../projects/angular-filter-dropdown/src/public-api.ts","../../../projects/angular-filter-dropdown/src/angular-filter-dropdown.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AngularFilterDropdownService {\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-filter-dropdown',\r\n  templateUrl: './angular-filter-dropdown.component.html',\r\n  styleUrl: './angular-filter-dropdown.component.css'\r\n})\r\nexport class AngularFilterDropdownComponent {\r\n\r\n  @Input() tableData: any;\r\n  @Input() columnName: 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  selectAll: boolean = false;\r\n  uncheckAllStatus: boolean = false;\r\n  dropdown: any;\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.tableData;\r\n   this.iterateForAddingCheckedField();\r\n   this.iterateForSelectAllChecked();\r\n   this.iterateForSelectAllUnChecked();\r\n  }\r\n\r\n  iterateForAddingCheckedField(){    \r\n    let result = this.items.map((item:any) => item[this.columnName])\r\n    result = [...new Set(result)];\r\n    \r\n    let output: any[] = [];\r\n    result.forEach((element:any) => {\r\n      output.push({\r\n          [`${this.columnName}`]: element,\r\n          checked: true\r\n        });\r\n    });\r\n\r\n    this.items = output;\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.items).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  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.onUnselectAll.emit(item.checked);\r\n    });\r\n\r\n    this.iterateForSelectAllChecked();\r\n    this.iterateForSelectAllUnChecked();\r\n  }\r\n\r\n  onItemSelected(item: any): void {\r\n    this.onCheckBoxStatusChanged.emit(item);\r\n    this.iterateForSelectAllChecked();\r\n    // this.iterateForSelectAllUnChecked();\r\n  }\r\n}\r\n","<div class=\"dropdown\" tabindex=\"0\" (click)=\"toggleDropdown()\">\r\n    <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAA7CAYAAACE0Y8MAAAACXBIWXMAAAWJAAAFiQFtaJ36AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJzSURBVHgB7ZyBbeMwDEU/boKMoBEygkboBqcN7jaoR+gGzgY3gke4buBukG7QmohTpI1oS7SUGPF/ABEksWSFlChLFANsj90gYZB2kH6Q4yAfo/wfPw8gxRHFP+O7wqekH68nBXA4KfTDIP1YnhjZI73Xa3Ic6yGZOCxX/qURHEgW4j40hbaDeJzmBoyv8v6AaXe0A0niGboS59yJg268BiSJmAJzJlSn1CGuiKNghoB473XIY6/UE0AmEf8e8/kWDgXrUvmDck8LaxUPG75CW3pcLPJChRusUax+e1exTf4XtvNs+w4b1nIp7MUAr9gGS0ZALb5034BzgIav0BbR9V88MAdc/+gWNtqCdW2GgHjPy91Qc0o9AWQS8dsxl9pj+Uq4B0miQbz3phhhD+4FLUZGgabEsx/3uN4NbSfKsPdn4sB4wN1hRGwFODAmvAoapBviOF7Pvf8KBJwWa3IO6FLhYpx2/J6KJ4QQQgghhBBiR1aVEgOVVeblVoCsPs9ZKU8gxbFkpQSQIkxFlbgDWZnfWL4HTyMY0U4U0wg3wEF3OzIiXnAdh5XJ9wDdCB1IMi3iSpQnHTdTVr7XjBdAZnHQlZ8a3HDgWRwzAXG345CHR9yQHmQS8dU/ldbCRqyuFzwwtTJkrEc5QoW2rEl63ChDxoqr2KY1SdUMmTeQOapmyCw51rGVIyHVM2Q4B8SlSoZMF7lRAxuxuh76KagEYtGYpR3yeIIyYYFMomWlcCV8QxrEe68o0M2U9eBe0GKsWSndRJkOJIsSCRE5I4dECGBE7O442GPCHaj8IoiPb5CXlfLQKfz34vxvtf+gZ6V4bJBP6wXsB4ujP5wAAAAASUVORK5CYII=\" alt=\"Base64 Image\" class=\"filter-icon-right\"/>\r\n    <div id=\"dropdown-box\" class=\"dropdown-menu dropdown-box-height\" [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 data of items\" class=\"dropdown-item\">\r\n            <input type=\"checkbox\" class=\"checkbox-input\" [(ngModel)]=\"data.checked\" (change)=\"onItemSelected(data)\">\r\n            <span class=\"checkbox-label\">{{ data[columnName] }}</span>\r\n        </div>\r\n    </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { AngularFilterDropdownComponent } from './angular-filter-dropdown.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    AngularFilterDropdownComponent\r\n  ],\r\n  imports: [\r\n    BrowserModule,\r\n    FormsModule\r\n  ],\r\n  exports: [\r\n    AngularFilterDropdownComponent\r\n  ]\r\n})\r\nexport class AngularFilterDropdownModule { }\r\n","/*\r\n * Public API Surface of angular-filter-dropdown\r\n */\r\n\r\nexport * from './lib/angular-filter-dropdown.service';\r\nexport * from './lib/angular-filter-dropdown.component';\r\nexport * from './lib/angular-filter-dropdown.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}