@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.
- package/README.md +177 -3
- package/esm2020/index.mjs +5 -0
- package/esm2020/lib/animations/animations.mjs +30 -0
- package/esm2020/lib/directives/clickOutside.directive.mjs +31 -0
- package/esm2020/lib/interfaces/multiSelectDefault.mjs +2 -0
- package/esm2020/lib/model/ruc-multi-select.model.mjs +11 -0
- package/esm2020/lib/pipes/filter.pipe.mjs +28 -0
- package/esm2020/lib/pipes/sort.pipe.mjs +38 -0
- package/esm2020/lib/ruclib-multi-select/ruclib-multi-select.component.mjs +361 -0
- package/esm2020/lib/ruclib-multi-select.module.mjs +72 -0
- package/esm2020/ruc-lib-multi-select.mjs +5 -0
- package/fesm2015/ruc-lib-multi-select.mjs +557 -0
- package/fesm2015/ruc-lib-multi-select.mjs.map +1 -0
- package/fesm2020/ruc-lib-multi-select.mjs +558 -0
- package/fesm2020/ruc-lib-multi-select.mjs.map +1 -0
- package/index.d.ts +4 -207
- package/lib/animations/animations.d.ts +1 -0
- package/lib/directives/clickOutside.directive.d.ts +10 -0
- package/lib/interfaces/multiSelectDefault.d.ts +64 -0
- package/lib/model/ruc-multi-select.model.d.ts +9 -0
- package/lib/pipes/filter.pipe.d.ts +7 -0
- package/lib/pipes/sort.pipe.d.ts +9 -0
- package/lib/ruclib-multi-select/ruclib-multi-select.component.d.ts +118 -0
- package/lib/ruclib-multi-select.module.d.ts +20 -0
- package/package.json +26 -13
- package/fesm2022/ruc-lib-multi-select.mjs +0 -519
- package/fesm2022/ruc-lib-multi-select.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
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/animations/animations.ts","../../src/lib/directives/clickOutside.directive.ts","../../src/lib/ruclib-multi-select/ruclib-multi-select.component.ts","../../src/lib/ruclib-multi-select/ruclib-multi-select.component.html","../../src/lib/ruclib-multi-select.module.ts","../../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})\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})\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 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 {Directive, ElementRef, Output, EventEmitter, HostListener} from '@angular/core';\r\n \r\n@Directive({\r\n selector: '[clickOutside]'\r\n})\r\nexport class ClickOutsideDirective {\r\n constructor(private _elementRef: ElementRef) {\r\n }\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 = this._elementRef.nativeElement.contains(targetElement);\r\n if (!clickedInside) {\r\n this.clickOutside.emit(event);\r\n }\r\n }\r\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n OnInit,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewChild,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTable } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { ListItem } from '../model/ruc-multi-select.model';\r\nimport { FilterPipe } from '../pipes/filter.pipe';\r\nimport { SortPipe } from '../pipes/sort.pipe';\r\nimport { DropDownAnimation } from '../animations/animations';\r\nimport { DefaultConfig } from '../interfaces/multiSelectDefault';\r\n\r\n@Component({\r\n selector: 'uxp-ruclib-multi-select',\r\n templateUrl: './ruclib-multi-select.component.html',\r\n styleUrls: ['./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=\"main\">\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 <mat-chip-row *ngFor=\"let item of selectedItems\" (removed)=\"removeItem(item)\">\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 <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 <mat-icon\r\n *ngIf=\"selectedItems.length\"\r\n (click)=\"clearSelectedMenu()\"\r\n matSuffix\r\n >clear</mat-icon\r\n >\r\n <mat-icon *ngIf=\"!selectedItems.length && !showdropdown\" matSuffix\r\n >expand_more</mat-icon\r\n >\r\n <mat-icon *ngIf=\"!selectedItems.length && showdropdown\" matSuffix\r\n >expand_less</mat-icon\r\n >\r\n </mat-form-field>\r\n\r\n <div\r\n *ngIf=\"searchText && filteredItem.length < 1\"\r\n class=\"margin-2-top-bottom\"\r\n >\r\n <div>No option found</div>\r\n </div>\r\n\r\n <div class=\"box-border-option\">\r\n <div\r\n *ngIf=\"showdropdown\"\r\n class=\"option-header\"\r\n role=\"options\"\r\n tabindex=\"-1\"\r\n [@dropDownMenu]\r\n >\r\n <ng-container *ngIf=\"!singleSelection\">\r\n <div *ngIf=\"showSelectAll\">\r\n <div *ngIf=\"limitSelection === null\">\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 </div>\r\n <mat-checkbox\r\n *ngIf=\"showSelected\"\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 <mat-slide-toggle\r\n *ngIf=\"sortObj['sortBy']\"\r\n class=\"option mat-primary\"\r\n (click)=\"onSortToggle()\"\r\n >Sort\r\n </mat-slide-toggle>\r\n <mat-divider></mat-divider>\r\n </ng-container>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"showdropdown\"\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 <div *ngIf=\"!singleSelection\" [@dropDownMenu]>\r\n <!-- for grouped -->\r\n <div *ngFor=\"let item of filteredItem\">\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 </div>\r\n <!-- for single selection case -->\r\n <div *ngIf=\"singleSelection\">\r\n <div *ngFor=\"let item of filteredItem\">\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 </div>\r\n </ng-container>\r\n </div>\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 <mat-option\r\n *ngFor=\"let itemObj of item.childItem\"\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 <mat-icon *ngIf=\"itemObj.icon\">{{ itemObj.icon }}</mat-icon>\r\n {{ itemObj.text }}\r\n </mat-option>\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 <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\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 <mat-optgroup\r\n *ngFor=\"let item of filteredItem\"\r\n [label]=\"item.text\"\r\n [disabled]=\"item.isDisabled\"\r\n >\r\n <mat-option\r\n *ngFor=\"let itemObj of item.childItem\"\r\n [value]=\"itemObj.id\"\r\n disabled=\"{{ itemObj.isDisable }}\"\r\n (click)=\"onSelection(itemObj)\"\r\n >\r\n <mat-icon *ngIf=\"itemObj.icon\">{{ itemObj.icon }}</mat-icon>\r\n {{ itemObj.text }}\r\n </mat-option>\r\n </mat-optgroup>\r\n </ng-template>\r\n\r\n <!-- for single selection non group case -->\r\n <ng-template #singleNonGroupedCase let-item=\"item\">\r\n <span\r\n class=\"option mat-primary\"\r\n (click)=\"onSelection(item)\"\r\n *ngFor=\"let item of filteredItem; let index = index\"\r\n >\r\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\r\n {{ item.text }}\r\n </span>\r\n </ng-template>\r\n </div>\r\n</div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RuclibMultiSelectComponent } from './ruclib-multi-select/ruclib-multi-select.component';\r\n\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { FilterPipe } from './pipes/filter.pipe';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { ClickOutsideDirective } from './directives/clickOutside.directive';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { SortPipe } from './pipes/sort.pipe';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\n@NgModule({\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 ],\r\n declarations: [\r\n RuclibMultiSelectComponent,\r\n FilterPipe,\r\n SortPipe,\r\n ClickOutsideDirective\r\n ],\r\n exports: [\r\n RuclibMultiSelectComponent\r\n ]\r\n})\r\nexport class RuclibMultiSelectModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.FilterPipe","i2.SortPipe","i12.ClickOutsideDirective"],"mappings":"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"}
|