@ruc-lib/multi-select 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"file":"ruc-lib-multi-select.mjs","sources":["../../src/lib/model/ruc-multi-select.model.ts","../../src/lib/pipes/filter.pipe.ts","../../src/lib/pipes/sort.pipe.ts","../../src/lib/directives/clickOutside.directive.ts","../../src/lib/animations/animations.ts","../../src/lib/ruclib-multi-select/ruclib-multi-select.component.ts","../../src/lib/ruclib-multi-select/ruclib-multi-select.component.html","../../src/ruc-lib-multi-select.ts"],"sourcesContent":["export class ListItem {\r\n id: string | number;\r\n text: string;\r\n isDisabled?: boolean;\r\n icon? : string;\r\n childItem? : any;\r\n grouped? : any;\r\n public constructor (data: any){\r\n this.id = data.id;\r\n this.text = data.text;\r\n this.isDisabled = data.isDisabled;\r\n this.icon = data.icon;\r\n this.childItem = data.childItem;\r\n this.grouped = data.grouped;\r\n }\r\n }","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'filter',\r\n standalone: true\r\n})\r\nexport class FilterPipe implements PipeTransform {\r\n transform(items: any[], searchText: string, key?:string): any[] {\r\n if (!items) return [];\r\n if (!searchText) return items;\r\n searchText = searchText.toLowerCase();\r\n return items.filter(it => {\r\n if(!key){\r\n return it.toLowerCase().includes(searchText);\r\n } else {\r\n return it[key].toLowerCase().includes(searchText);\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\n\r\nexport type SortOrder = 'asc' | 'desc';\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: 'sort',\r\n standalone: true\r\n})\r\nexport class SortPipe implements PipeTransform {\r\n transform(\r\n value: any[],\r\n sortOrder: SortOrder | string = 'asc',\r\n sortKey = 'text'\r\n ): any {\r\n sortOrder = sortOrder && (sortOrder.toLowerCase() as any);\r\n\r\n if (!value || (sortOrder !== 'asc' && sortOrder !== 'desc')) return value;\r\n\r\n let numberArray = [];\r\n let stringArray = [];\r\n numberArray = value\r\n .filter((item) => typeof item[sortKey] === 'number')\r\n .sort((a, b) => a[sortKey] - b[sortKey]);\r\n stringArray = value\r\n .filter((item) => typeof item[sortKey] === 'string')\r\n .sort((a, b) => {\r\n if (a[sortKey] < b[sortKey]) return -1;\r\n else if (a[sortKey] > b[sortKey]) return 1;\r\n else return 0;\r\n });\r\n\r\n const sorted = numberArray.concat(stringArray);\r\n return sortOrder === 'asc' ? sorted : sorted.reverse();\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n Output,\r\n EventEmitter,\r\n HostListener,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[clickOutside]',\r\n standalone: true,\r\n})\r\nexport class ClickOutsideDirective {\r\n constructor(private _elementRef: ElementRef) {}\r\n\r\n @Output()\r\n public clickOutside = new EventEmitter<MouseEvent>();\r\n\r\n @HostListener('document:click', ['$event', '$event.target'])\r\n public onClick(event: MouseEvent, targetElement: HTMLElement): void {\r\n if (!targetElement) {\r\n return;\r\n }\r\n\r\n const clickedInside =\r\n this._elementRef.nativeElement.contains(targetElement);\r\n if (!clickedInside) {\r\n this.clickOutside.emit(event);\r\n }\r\n }\r\n}\r\n","import {\r\n animate,\r\n query,\r\n sequence,\r\n stagger,\r\n style,\r\n transition,\r\n trigger\r\n } from \"@angular/animations\";\r\n \r\n export const DropDownAnimation = trigger(\"dropDownMenu\", [\r\n transition(\":enter\", [\r\n style({ height: 0, overflow: \"hidden\" }),\r\n query(\".option\", [\r\n style({ opacity: 0, transform: \"translateY(-50px)\" })\r\n ]),\r\n sequence([\r\n animate(\"400ms\", style({ height: \"*\" })),\r\n query(\".option\", [\r\n stagger(50, [\r\n animate(\"200ms ease\", style({ opacity: 1, transform: \"none\" }))\r\n ])\r\n ])\r\n ])\r\n ]),\r\n \r\n transition(\":leave\", [\r\n style({ height: \"*\", overflow: \"hidden\" }),\r\n query(\".option\", [style({ opacity: 1, transform: \"none\" })]),\r\n sequence([\r\n query(\".option\", [\r\n stagger(-10, [\r\n animate(\r\n \"400ms ease\",\r\n style({ opacity: 0, transform: \"translateY(-50px)\" })\r\n )\r\n ])\r\n ]),\r\n animate(\"400ms\", style({ height: 0 }))\r\n ])\r\n ])\r\n ]);\r\n ","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ListItem } from '../model/ruc-multi-select.model';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTable } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport {\r\n MatFormFieldAppearance,\r\n MatFormFieldModule,\r\n} from '@angular/material/form-field';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { FilterPipe } from '../pipes/filter.pipe';\r\nimport { SortPipe } from '../pipes/sort.pipe';\r\nimport { DefaultConfig } from '../interfaces/multiSelectDefault';\r\n// import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { ClickOutsideDirective } from '../directives/clickOutside.directive';\r\nimport { DropDownAnimation } from '../animations/animations';\r\n\r\n@Component({\r\n selector: 'uxp-ruclib-multi-select',\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatIconModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDividerModule,\r\n MatSlideToggleModule,\r\n FilterPipe,\r\n SortPipe,\r\n ClickOutsideDirective,\r\n ],\r\n templateUrl: './ruclib-multi-select.component.html',\r\n styleUrl: './ruclib-multi-select.component.scss',\r\n animations: [DropDownAnimation],\r\n providers: [FilterPipe, SortPipe]\r\n})\r\nexport class RuclibMultiSelectComponent implements OnInit, OnChanges {\r\n public selectedItems!: Array<ListItem>;\r\n public filteredItem!: Array<ListItem>;\r\n readonly separatorKeysCodes = [ENTER, COMMA] as const;\r\n\r\n //local variables\r\n public sortToggle!: boolean;\r\n public multiSelectList!: FormControl;\r\n public addOnBlur!: boolean;\r\n public showdropdown!: boolean;\r\n public searchText!: string;\r\n public theme!: string;\r\n public isAllCheckboxSelected!: boolean;\r\n public isShowSelectedFilter!: boolean;\r\n public showSelectAll!: boolean;\r\n public showSelected!: boolean;\r\n\r\n sortObj: any;\r\n limitSelection: any;\r\n\r\n /* configurable fields */\r\n //public width: number; // width should be in % for responsive design.\r\n public height!: number; // max-height should be in px.\r\n public appearance!: string;\r\n public label!: string;\r\n public singleSelection!: boolean;\r\n public scroll!: boolean;\r\n public disabled!: boolean;\r\n public placeholder!: string;\r\n public maxDropdownHeight!: string;\r\n\r\n constructor(public filterPipe: FilterPipe, private sortPipe: SortPipe) {}\r\n\r\n @Output() rucEvent = new EventEmitter<any>();\r\n\r\n @Input() rucInputData!: DefaultConfig; /** config ruc input */\r\n @Input() customTheme!: string; /** custom theme */\r\n @Input() dataSource: Array<ListItem> = []; /** dropdwon data source */\r\n @ViewChild(MatPaginator) paginator!: MatPaginator;\r\n @ViewChild('matTable') matTable!: MatTable<any>;\r\n @ViewChild('matTable') matTableElementRef!: ElementRef;\r\n @ViewChild(MatSort) sort!: MatSort;\r\n\r\n /** getApperrance method to define appearance */\r\n getApperance(): MatFormFieldAppearance {\r\n if (this.appearance === 'fill') {\r\n return 'fill';\r\n }\r\n return 'outline';\r\n }\r\n\r\n ngOnInit(): void {\r\n this.filteredItem = [];\r\n this.selectedItems = [];\r\n this.sortToggle = false;\r\n this.addOnBlur = true;\r\n this.showdropdown = false;\r\n this.theme = 'primary';\r\n this.isAllCheckboxSelected = false;\r\n this.isShowSelectedFilter = false;\r\n this.limitSelection = null;\r\n this.scroll = false;\r\n this.disabled = false;\r\n this.limitSelection = null;\r\n\r\n this.dataSource = this.dataSource.map(\r\n (item: any) =>\r\n new ListItem({\r\n text: item.text,\r\n id: item.id,\r\n isDisabled: item.isDisable ? item.isDisable : false,\r\n childItem:\r\n item.childItem && item.childItem.length ? item.childItem : [],\r\n grouped: item.grouped ? true : false,\r\n icon: item.icon ? item.icon : '',\r\n })\r\n );\r\n this.filteredItem = this.dataSource;\r\n // this.width = this.rucInputData.width === \"\" || this.rucInputData.width === undefined ? 100: this.rucInputData.width; /** width in % */\r\n this.height =\r\n this.rucInputData?.maxHeight === undefined\r\n ? 150\r\n : this.rucInputData?.maxHeight; /** width in px */\r\n this.singleSelection =\r\n this.rucInputData?.singleSelection === undefined\r\n ? false\r\n : this.rucInputData?.singleSelection;\r\n this.label =\r\n this.rucInputData?.label === '' || this.rucInputData?.label === undefined\r\n ? 'Cities'\r\n : this.rucInputData?.label;\r\n this.appearance =\r\n this.rucInputData?.appearance === '' ||\r\n this.rucInputData?.appearance === undefined\r\n ? 'outline'\r\n : this.rucInputData?.appearance;\r\n this.limitSelection =\r\n this.rucInputData?.limit === undefined ? null : this.rucInputData?.limit;\r\n this.multiSelectList = new FormControl({\r\n value: '',\r\n disabled: !!this.rucInputData?.disabled,\r\n });\r\n this.scroll =\r\n this.rucInputData?.scroll === undefined ? true : this.rucInputData?.scroll;\r\n this.placeholder =\r\n this.rucInputData?.placeholder === '' ||\r\n this.rucInputData?.placeholder === undefined\r\n ? ''\r\n : this.rucInputData?.placeholder;\r\n this.maxDropdownHeight =\r\n this.rucInputData?.maxDropdownHeight === undefined\r\n ? ''\r\n : this.rucInputData?.maxDropdownHeight;\r\n this.sortObj = {\r\n sortBy:\r\n this.rucInputData?.sortBy === undefined ? '' : this.rucInputData?.sortBy,\r\n sortOrder:\r\n this.rucInputData?.sortOrder === undefined\r\n ? ''\r\n : this.rucInputData?.sortOrder,\r\n };\r\n this.showSelectAll =\r\n this.rucInputData?.showSelectAll === undefined\r\n ? true\r\n : this.rucInputData?.showSelectAll;\r\n this.showSelected =\r\n this.rucInputData?.showSelected === undefined\r\n ? true\r\n : this.rucInputData?.showSelected;\r\n }\r\n\r\n /**\r\n * Dynamic data change\r\n * @param changes input provide change detection\r\n * @return none\r\n */\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['dataSource'] && changes['dataSource'].currentValue) {\r\n this.dataSource = changes['dataSource'].currentValue.map(\r\n (item: any) =>\r\n new ListItem({\r\n id: item.id,\r\n text: item.text,\r\n isDisabled: item.isDisable,\r\n childItem:\r\n item.childItem && item.childItem.length ? item.childItem : [],\r\n grouped: item.grouped ? true : false,\r\n icon: item.icon ? item.icon : '',\r\n })\r\n );\r\n }\r\n this.filteredItem = this.dataSource;\r\n }\r\n /**\r\n * Select options checkbox\r\n * @param ListItem input provide whole list of data\r\n * @return none\r\n */\r\n onSelection(item: ListItem) {\r\n this.searchText = '';\r\n if (this.singleSelection === true) {\r\n if (this.selectedItems.length >= 0) {\r\n this.selectedItems = [];\r\n this.selectedItems.push(item);\r\n }\r\n } else {\r\n if (this.selectedItems.indexOf(item) > -1) {\r\n this.selectedItems = this.selectedItems.filter(\r\n (data) => data.id != item.id\r\n );\r\n } else {\r\n this.selectedItems.push(item);\r\n }\r\n this.rucEvent.emit({ eventName: 'onSelection', eventOutput: item });\r\n this.isAllSelected();\r\n if (this.selectedItems.length === 0) {\r\n this.isShowSelectedFilter = false;\r\n this.filteredItem = this.dataSource;\r\n }\r\n }\r\n }\r\n\r\n // disable other items as limit selection is there\r\n checkSelectedStatus(obj: any) {\r\n const index = this.selectedItems.findIndex((res) => res.id === obj.id);\r\n if (index === -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * clear selected Menu\r\n * @return none\r\n */\r\n clearSelectedMenu() {\r\n this.selectedItems = [];\r\n }\r\n\r\n /**\r\n * select all Checkbox options at once\r\n * @param ListItem input provide whole list of data\r\n * @return none\r\n */\r\n onAllSelection() {\r\n this.searchText = '';\r\n if (!this.isAllCheckboxSelected) {\r\n this.selectedItems = this.dataSource.filter((res) => {\r\n if (res.childItem && res.childItem.length > 0) {\r\n return res.childItem.filter((res1: any) => {\r\n return res1.isDisable != true;\r\n });\r\n } else {\r\n return res.isDisabled != true;\r\n }\r\n });\r\n } else {\r\n this.selectedItems = [];\r\n }\r\n this.rucEvent.emit({\r\n eventName: 'onAllSelection',\r\n eventOutput: this.selectedItems,\r\n });\r\n this.isAllCheckboxSelected = !this.isAllCheckboxSelected;\r\n if (\r\n this.isAllCheckboxSelected === false &&\r\n this.isShowSelectedFilter === true\r\n ) {\r\n this.filteredItem = this.dataSource;\r\n this.isShowSelectedFilter = false;\r\n }\r\n if (\r\n this.isAllCheckboxSelected === true &&\r\n this.isShowSelectedFilter === true\r\n ) {\r\n this.filteredItem = this.dataSource;\r\n }\r\n }\r\n\r\n /**\r\n * toggle dropdown\r\n */\r\n toggleDropdown() {\r\n this.showdropdown = !this.showdropdown;\r\n if (this.showdropdown) {\r\n this.rucEvent.emit({ eventName: 'onInputClick', eventOutput: null });\r\n }\r\n }\r\n\r\n /**\r\n * Remove the data based on the select input\r\n * @param ListItem input provide whole list of data\r\n * @return none\r\n */\r\n removeItem(item: ListItem) {\r\n if (this.selectedItems.indexOf(item) > -1) {\r\n this.selectedItems = this.selectedItems.filter(\r\n (data) => data.id != item.id\r\n );\r\n }\r\n this.rucEvent.emit({ eventName: 'onDeSelection', eventOutput: item });\r\n }\r\n\r\n /**\r\n * Filter the data based on the provided input\r\n * @param searchvalue input label provided in search box\r\n * @return none\r\n */\r\n filterData(searchvalue: any): any {\r\n /*Filter the data using filter pipe*/\r\n if (!this.showdropdown) {\r\n this.showdropdown = true;\r\n }\r\n\r\n this.filteredItem = this.filterPipe.transform(\r\n this.dataSource,\r\n searchvalue,\r\n 'text'\r\n );\r\n }\r\n\r\n /**\r\n * add and remove checked item\r\n * @param ListItem input provide whole list of data\r\n * @return boolean\r\n */\r\n isSelected(checkedItem: ListItem) {\r\n let found = false;\r\n this.selectedItems.forEach((item) => {\r\n if (item.childItem && item.childItem.length > 0) {\r\n item.childItem.forEach((item1: any) => {\r\n if (checkedItem.id === item1.id) {\r\n found = true;\r\n }\r\n });\r\n } else {\r\n if (checkedItem.id === item.id) {\r\n found = true;\r\n }\r\n }\r\n });\r\n return found;\r\n }\r\n\r\n /**\r\n * check if all checkbox selected or not\r\n * @return boolean\r\n */\r\n isAllSelected() {\r\n const totalLength = this.dataSource.filter(\r\n (data) => data.isDisabled != true\r\n );\r\n if (this.selectedItems.length === totalLength.length) {\r\n this.isAllCheckboxSelected = true;\r\n } else {\r\n this.isAllCheckboxSelected = false;\r\n }\r\n return this.isAllCheckboxSelected;\r\n }\r\n\r\n /**\r\n * check if show checkbox selected or not\r\n * @return boolean\r\n */\r\n isShowSelected() {\r\n return this.isShowSelectedFilter;\r\n }\r\n\r\n /**\r\n * check if show checkbox selected or not\r\n * @return boolean\r\n */\r\n onShowSelection() {\r\n this.isShowSelectedFilter = !this.isShowSelectedFilter;\r\n if (this.isShowSelectedFilter) {\r\n if (this.sortToggle) {\r\n const sortedArr = this.sortPipe.transform(\r\n this.selectedItems,\r\n this.rucInputData.sortOrder,\r\n this.rucInputData.sortBy\r\n );\r\n this.filteredItem = sortedArr;\r\n } else {\r\n this.filteredItem = this.selectedItems;\r\n }\r\n } else {\r\n this.isShowSelectedFilter = false;\r\n if (this.sortToggle) {\r\n const sortedArr = this.sortPipe.transform(\r\n this.dataSource,\r\n this.rucInputData.sortOrder,\r\n this.rucInputData.sortBy\r\n );\r\n this.filteredItem = sortedArr;\r\n } else {\r\n this.filteredItem = this.dataSource;\r\n }\r\n }\r\n }\r\n\r\n // pipe to toggle sort\r\n onSortToggle() {\r\n this.sortToggle = !this.sortToggle;\r\n if (this.sortToggle) {\r\n const sortedArr = this.sortPipe.transform(\r\n this.filteredItem,\r\n this.rucInputData.sortOrder,\r\n this.rucInputData.sortBy\r\n );\r\n this.filteredItem = sortedArr;\r\n } else {\r\n if (this.isShowSelectedFilter) {\r\n this.filteredItem = this.selectedItems;\r\n } else {\r\n this.filteredItem = this.dataSource;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * close popup when click outside of container\r\n */\r\n close() {\r\n this.showdropdown = false;\r\n }\r\n}\r\n","<div class=\"{{ customTheme }}\" (clickOutside)=\"close()\">\r\n <mat-form-field\r\n class=\"chip-list\"\r\n [ngStyle]=\"{ 'max-height.px': height, 'width.%': 100 }\"\r\n [appearance]=\"getApperance()\"\r\n >\r\n <mat-label>{{ label }}</mat-label>\r\n <mat-chip-grid\r\n matInput\r\n [formControl]=\"multiSelectList\"\r\n #chipGrid\r\n aria-label=\"Cities\"\r\n >\r\n @for (item of selectedItems; track item) {\r\n <mat-chip-row\r\n (removed)=\"removeItem(item)\"\r\n >\r\n {{ item.text }}\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip-row>\r\n }\r\n <input\r\n (click)=\"toggleDropdown()\"\r\n [placeholder]=\"placeholder\"\r\n [matChipInputFor]=\"chipGrid\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n (keyup)=\"filterData(searchText)\"\r\n [(ngModel)]=\"searchText\"\r\n />\r\n </mat-chip-grid>\r\n @if (selectedItems.length) {\r\n <mat-icon\r\n (click)=\"clearSelectedMenu()\"\r\n matSuffix\r\n >clear</mat-icon\r\n >\r\n }\r\n @if (!selectedItems.length && !showdropdown) {\r\n <mat-icon matSuffix\r\n >expand_more</mat-icon\r\n >\r\n }\r\n @if (!selectedItems.length && showdropdown) {\r\n <mat-icon matSuffix\r\n >expand_less</mat-icon\r\n >\r\n }\r\n </mat-form-field>\r\n\r\n @if (searchText && filteredItem.length < 1) {\r\n <div\r\n class=\"margin-2-top-bottom\"\r\n >\r\n <div>No option found</div>\r\n </div>\r\n }\r\n\r\n <div class=\"box-border-option\">\r\n @if (showdropdown) {\r\n <div\r\n class=\"option-header\"\r\n role=\"options\"\r\n tabindex=\"-1\"\r\n [@dropDownMenu]\r\n >\r\n @if (!singleSelection) {\r\n @if (showSelectAll) {\r\n <div>\r\n @if (limitSelection === null) {\r\n <div>\r\n <mat-checkbox\r\n class=\"option mat-primary\"\r\n role=\"option\"\r\n color=\"{{ theme }}\"\r\n [checked]=\"isAllSelected()\"\r\n (change)=\"onAllSelection()\"\r\n value=\"select-all\"\r\n >Select All\r\n </mat-checkbox>\r\n </div>\r\n }\r\n </div>\r\n }\r\n @if (showSelected) {\r\n <mat-checkbox\r\n class=\"option mat-primary\"\r\n role=\"option\"\r\n color=\"{{ theme }}\"\r\n [checked]=\"isShowSelected()\"\r\n (change)=\"onShowSelection()\"\r\n value=\"select-all\"\r\n >Show Selected\r\n </mat-checkbox>\r\n }\r\n @if (sortObj['sortBy']) {\r\n <mat-slide-toggle\r\n class=\"option mat-primary\"\r\n (click)=\"onSortToggle()\"\r\n >Sort\r\n </mat-slide-toggle>\r\n }\r\n <mat-divider></mat-divider>\r\n }\r\n </div>\r\n }\r\n\r\n @if (showdropdown) {\r\n <div\r\n [ngClass]=\"{\r\n 'scroll-option-container': scroll,\r\n 'option-container': '!scroll'\r\n }\"\r\n role=\"options\"\r\n [ngStyle]=\"{ 'max-height.px': maxDropdownHeight, 'width.%': 100 }\"\r\n tabindex=\"-1\"\r\n >\r\n <ng-container>\r\n @if (!singleSelection) {\r\n <div [@dropDownMenu]>\r\n <!-- for grouped -->\r\n @for (item of filteredItem; track item) {\r\n <div>\r\n <ng-container\r\n [ngTemplateOutlet]=\"\r\n (item.childItem && item.childItem.length > 0) || item.grouped\r\n ? multipleGroupedCase\r\n : multipleNonGroupedCase\r\n \"\r\n [ngTemplateOutletContext]=\"{ item: item }\"\r\n >\r\n </ng-container>\r\n </div>\r\n }\r\n </div>\r\n }\r\n <!-- for single selection case -->\r\n @if (singleSelection) {\r\n <div>\r\n @for (item of filteredItem; track item) {\r\n <div>\r\n <ng-container\r\n [ngTemplateOutlet]=\"\r\n item.childItem && item.childItem.length > 0\r\n ? singleGroupedCase\r\n : singleNonGroupedCase\r\n \"\r\n [ngTemplateOutletContext]=\"{ item: item }\"\r\n >\r\n </ng-container>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </ng-container>\r\n </div>\r\n }\r\n\r\n <!-- for multiple selected group case -->\r\n <ng-template #multipleGroupedCase let-item=\"item\">\r\n <mat-optgroup [label]=\"item.text\" [disabled]=\"item.isDisabled\">\r\n @for (itemObj of item.childItem; track itemObj) {\r\n <mat-option\r\n [value]=\"itemObj.id\"\r\n disabled=\"{{\r\n itemObj.isDisable ||\r\n (limitSelection !== null &&\r\n selectedItems.length >= limitSelection &&\r\n checkSelectedStatus(itemObj))\r\n }}\"\r\n >\r\n <mat-checkbox\r\n class=\"mat-primary\"\r\n role=\"option\"\r\n color=\"{{ theme }}\"\r\n [checked]=\"isSelected(itemObj)\"\r\n (change)=\"onSelection(itemObj)\"\r\n value=\"{{ itemObj.id }}\"\r\n disabled=\"{{\r\n itemObj.isDisable ||\r\n (limitSelection !== null &&\r\n selectedItems.length >= limitSelection &&\r\n checkSelectedStatus(itemObj))\r\n }}\"\r\n >\r\n </mat-checkbox>\r\n @if (itemObj.icon) {\r\n <mat-icon>{{ itemObj.icon }}</mat-icon>\r\n }\r\n {{ itemObj.text }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n </ng-template>\r\n\r\n <!-- for multiple selected non grouped case -->\r\n <ng-template #multipleNonGroupedCase let-item=\"item\">\r\n <mat-checkbox\r\n class=\"option mat-primary\"\r\n role=\"option\"\r\n color=\"{{ theme }}\"\r\n [checked]=\"isSelected(item)\"\r\n (change)=\"onSelection(item)\"\r\n value=\"{{ item.id }}\"\r\n disabled=\"{{\r\n item.isDisabled ||\r\n (limitSelection !== null &&\r\n selectedItems.length >= limitSelection &&\r\n checkSelectedStatus(item))\r\n }}\"\r\n >\r\n @if (item.icon) {\r\n <mat-icon>{{ item.icon }}</mat-icon>\r\n }\r\n {{ item.text }}\r\n </mat-checkbox>\r\n </ng-template>\r\n\r\n <!-- for single selection group case -->\r\n <ng-template #singleGroupedCase let-item=\"item\">\r\n @for (item of filteredItem; track item) {\r\n <mat-optgroup\r\n [label]=\"item.text\"\r\n [disabled]=\"item.isDisabled\"\r\n >\r\n @for (itemObj of item.childItem; track itemObj) {\r\n <mat-option\r\n [value]=\"itemObj.id\"\r\n disabled=\"{{ itemObj.isDisable }}\"\r\n (click)=\"onSelection(itemObj)\"\r\n >\r\n @if (itemObj.icon) {\r\n <mat-icon>{{ itemObj.icon }}</mat-icon>\r\n }\r\n {{ itemObj.text }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }\r\n </ng-template>\r\n\r\n <!-- for single selection non group case -->\r\n <ng-template #singleNonGroupedCase let-item=\"item\">\r\n @for (item of filteredItem; track item; let index = $index) {\r\n <span\r\n class=\"option mat-primary\"\r\n (click)=\"onSelection(item)\"\r\n >\r\n @if (item.icon) {\r\n <mat-icon>{{ item.icon }}</mat-icon>\r\n }\r\n {{ item.text }}\r\n </span>\r\n }\r\n </ng-template>\r\n </div>\r\n </div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.FilterPipe","i2.SortPipe"],"mappings":"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"}