ng-jvx-multiselect 1.1.28
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 +330 -0
- package/_index.scss +1 -0
- package/esm2020/lib/directives/ng-jvx-disabled-option.directive.mjs +49 -0
- package/esm2020/lib/directives/ng-jvx-focus.directive.mjs +29 -0
- package/esm2020/lib/directives/ng-jvx-group-header.directive.mjs +25 -0
- package/esm2020/lib/directives/ng-jvx-options-template.directive.mjs +26 -0
- package/esm2020/lib/directives/ng-jvx-selection-template.directive.mjs +25 -0
- package/esm2020/lib/interfaces/ng-jvx-group-mapper.mjs +2 -0
- package/esm2020/lib/interfaces/ng-jvx-option-mapper.mjs +2 -0
- package/esm2020/lib/interfaces/ng-jvx-search-mapper.mjs +2 -0
- package/esm2020/lib/ng-jvx-multiselect.component.mjs +589 -0
- package/esm2020/lib/ng-jvx-multiselect.module.mjs +92 -0
- package/esm2020/lib/ng-jvx-multiselect.service.mjs +42 -0
- package/esm2020/lib/ng-jvx-option/ng-jvx-option.component.mjs +31 -0
- package/esm2020/lib/ng-jvx-panel/ng-jvx-panel.component.mjs +41 -0
- package/esm2020/ng-jvx-multiselect.mjs +5 -0
- package/esm2020/public-api.mjs +15 -0
- package/fesm2015/ng-jvx-multiselect.mjs +924 -0
- package/fesm2015/ng-jvx-multiselect.mjs.map +1 -0
- package/fesm2020/ng-jvx-multiselect.mjs +918 -0
- package/fesm2020/ng-jvx-multiselect.mjs.map +1 -0
- package/lib/directives/ng-jvx-disabled-option.directive.d.ts +14 -0
- package/lib/directives/ng-jvx-disabled-option.directive.d.ts.map +1 -0
- package/lib/directives/ng-jvx-focus.directive.d.ts +11 -0
- package/lib/directives/ng-jvx-focus.directive.d.ts.map +1 -0
- package/lib/directives/ng-jvx-group-header.directive.d.ts +10 -0
- package/lib/directives/ng-jvx-group-header.directive.d.ts.map +1 -0
- package/lib/directives/ng-jvx-options-template.directive.d.ts +11 -0
- package/lib/directives/ng-jvx-options-template.directive.d.ts.map +1 -0
- package/lib/directives/ng-jvx-selection-template.directive.d.ts +10 -0
- package/lib/directives/ng-jvx-selection-template.directive.d.ts.map +1 -0
- package/lib/interfaces/ng-jvx-group-mapper.d.ts +8 -0
- package/lib/interfaces/ng-jvx-group-mapper.d.ts.map +1 -0
- package/lib/interfaces/ng-jvx-option-mapper.d.ts +7 -0
- package/lib/interfaces/ng-jvx-option-mapper.d.ts.map +1 -0
- package/lib/interfaces/ng-jvx-search-mapper.d.ts +7 -0
- package/lib/interfaces/ng-jvx-search-mapper.d.ts.map +1 -0
- package/lib/ng-jvx-multiselect.component.d.ts +144 -0
- package/lib/ng-jvx-multiselect.component.d.ts.map +1 -0
- package/lib/ng-jvx-multiselect.module.d.ts +26 -0
- package/lib/ng-jvx-multiselect.module.d.ts.map +1 -0
- package/lib/ng-jvx-multiselect.service.d.ts +20 -0
- package/lib/ng-jvx-multiselect.service.d.ts.map +1 -0
- package/lib/ng-jvx-option/ng-jvx-option.component.d.ts +14 -0
- package/lib/ng-jvx-option/ng-jvx-option.component.d.ts.map +1 -0
- package/lib/ng-jvx-panel/ng-jvx-panel.component.d.ts +16 -0
- package/lib/ng-jvx-panel/ng-jvx-panel.component.d.ts.map +1 -0
- package/ng-jvx-multiselect.d.ts +5 -0
- package/ng-jvx-multiselect.d.ts.map +1 -0
- package/package.json +48 -0
- package/public-api.d.ts +11 -0
- package/public-api.d.ts.map +1 -0
- package/src/lib/mixins.scss +6 -0
- package/src/lib/ng-jvx-multiselect.component.scss +234 -0
- package/src/lib/ng-jvx-option/ng-jvx-option.component.scss +40 -0
- package/src/lib/ng-jvx-panel/ng-jvx-panel.component.scss +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-jvx-multiselect.mjs","sources":["../../../projects/ng-jvx-multiselect/src/lib/ng-jvx-option/ng-jvx-option.component.ts","../../../projects/ng-jvx-multiselect/src/lib/ng-jvx-option/ng-jvx-option.component.html","../../../projects/ng-jvx-multiselect/src/lib/directives/ng-jvx-options-template.directive.ts","../../../projects/ng-jvx-multiselect/src/lib/directives/ng-jvx-selection-template.directive.ts","../../../projects/ng-jvx-multiselect/src/lib/directives/ng-jvx-group-header.directive.ts","../../../projects/ng-jvx-multiselect/src/lib/directives/ng-jvx-disabled-option.directive.ts","../../../projects/ng-jvx-multiselect/src/lib/ng-jvx-multiselect.service.ts","../../../projects/ng-jvx-multiselect/src/lib/directives/ng-jvx-focus.directive.ts","../../../projects/ng-jvx-multiselect/src/lib/ng-jvx-multiselect.component.ts","../../../projects/ng-jvx-multiselect/src/lib/ng-jvx-multiselect.component.html","../../../projects/ng-jvx-multiselect/src/lib/ng-jvx-panel/ng-jvx-panel.component.ts","../../../projects/ng-jvx-multiselect/src/lib/ng-jvx-panel/ng-jvx-panel.component.html","../../../projects/ng-jvx-multiselect/src/lib/ng-jvx-multiselect.module.ts","../../../projects/ng-jvx-multiselect/src/public-api.ts","../../../projects/ng-jvx-multiselect/src/ng-jvx-multiselect.ts"],"sourcesContent":["import {AfterViewChecked, Component, ContentChild, DoCheck, ElementRef, Input, OnInit, ViewChild} from '@angular/core';\r\nimport {MatListOption} from '@angular/material/list';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'ng-jvx-option',\r\n templateUrl: './ng-jvx-option.component.html',\r\n styleUrls: ['./ng-jvx-option.component.scss']\r\n})\r\nexport class NgJvxOptionComponent implements OnInit, DoCheck {\r\n @ViewChild('listOption', {static: true}) listOption: MatListOption;\r\n @Input() value: any;\r\n public isSelected = false;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (this.isSelected !== this.listOption.selected) {\r\n this.isSelected = this.listOption.selected;\r\n }\r\n }\r\n\r\n deselect(): void{\r\n this.listOption.selected = false;\r\n }\r\n}\r\n","<mat-list-option [value]=\"value\" [ngClass]=\"{'ng-jvx-option': true, 'mat-list-single-selected-option': isSelected}\" #listOption>\r\n <ng-content></ng-content>\r\n <div class=\"list-option-background\"></div>\r\n</mat-list-option>\r\n","import {Directive, ElementRef, HostListener, Input, TemplateRef, ViewContainerRef} from '@angular/core';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[ngJvxOptionsTemplate]'\r\n})\r\nexport class NgJvxOptionsTemplateDirective {\r\n\r\n constructor(\r\n private el: ElementRef,\r\n public template: TemplateRef<any>,\r\n private vcRef: ViewContainerRef) {\r\n }\r\n\r\n\r\n\r\n @Input() set ngJvxOptionsTemplateOf(source: Array<any[]>) {\r\n for (const item of source) {\r\n this.vcRef.createEmbeddedView(this.template, {$implicit: item});\r\n }\r\n }\r\n\r\n}\r\n","import {Directive, Input, TemplateRef, ViewContainerRef} from '@angular/core';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[ngJvxSelectionTemplate]'\r\n})\r\nexport class NgJvxSelectionTemplateDirective {\r\n\r\n constructor(\r\n public template: TemplateRef<any>,\r\n private vcRef: ViewContainerRef) {\r\n }\r\n\r\n @Input() set ngJvxSelectionTemplateOf(source: Array<any[]>) {\r\n for (const item of source) {\r\n this.vcRef.createEmbeddedView(this.template, {$implicit: item});\r\n }\r\n }\r\n\r\n}\r\n","import {Directive, Input, TemplateRef, ViewContainerRef} from '@angular/core';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[ngJvxGroupHeader]'\r\n})\r\nexport class NgJvxGroupHeaderDirective {\r\n\r\n constructor(\r\n public template: TemplateRef<any>,\r\n private vcRef: ViewContainerRef) {\r\n }\r\n\r\n @Input() set ngJvxGroupHeaderOf(source: Array<any[]>) {\r\n for (const item of source) {\r\n this.vcRef.createEmbeddedView(this.template, {$implicit: item});\r\n }\r\n }\r\n\r\n\r\n}\r\n","import {Directive, ElementRef, HostListener, Input, OnDestroy, OnInit} from '@angular/core';\r\nimport {fromEvent, Subject} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[ngJvxDisabledOption]'\r\n})\r\nexport class NgJvxDisabledOptionDirective implements OnInit, OnDestroy {\r\n private isDisabled = false;\r\n private originalOpacity = 1;\r\n\r\n private unsubs = new Subject<void>();\r\n\r\n @Input() set ngJvxDisabledOption(source: boolean) {\r\n this.isDisabled = source;\r\n if (this.isDisabled) {\r\n this.el.nativeElement.style.opacity = this.originalOpacity ? this.originalOpacity / 2 : 0.5;\r\n } else {\r\n this.el.nativeElement.style.opacity = this.originalOpacity;\r\n }\r\n }\r\n\r\n constructor(\r\n private el: ElementRef) {\r\n this.originalOpacity = el.nativeElement.style.opacity;\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n fromEvent(this.el.nativeElement.closest('.mat-list-item-content'), 'click', {\r\n capture: true,\r\n }).pipe(takeUntil(this.unsubs)).subscribe((e: MouseEvent) => {\r\n if (this.isDisabled) {\r\n e.stopImmediatePropagation();\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubs.next();\r\n this.unsubs.complete();\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs';\r\nimport {HttpClient, HttpParams} from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NgJvxMultiselectService {\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n getList({\r\n url,\r\n ignorePagination = false,\r\n currentPage,\r\n pageSize,\r\n requestType = 'get',\r\n requestHeaders,\r\n search,\r\n searchProp = 'search',\r\n data\r\n }: {\r\n url: string, ignorePagination: boolean,\r\n currentPage: number,\r\n pageSize: number,\r\n requestType: 'get' | 'post',\r\n requestHeaders: any,\r\n search?: string,\r\n searchProp?: string,\r\n data: any\r\n }): Observable<any> {\r\n let params = new HttpParams();\r\n if (search && search.length > 0) {\r\n params = params.set(searchProp, search);\r\n }\r\n if (!ignorePagination) {\r\n params = params.set('page', currentPage.toString())\r\n .set('size', pageSize.toString());\r\n }\r\n const options = {\r\n mode: 'no-cors', // cors\r\n headers: requestHeaders,\r\n // withCredentials: true,\r\n // credentials: 'same-origin', // cache: 'default',\r\n data,\r\n params\r\n };\r\n if (requestType === 'get') {\r\n return this.http.get(url, options);\r\n } else {\r\n return this.http.post(url, options);\r\n }\r\n }\r\n}\r\n","import {AfterContentInit, Directive, ElementRef, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\nimport {timer} from 'rxjs';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[ngJvxFocus]'\r\n})\r\nexport class NgJvxFocusDirective implements OnInit, OnChanges {\r\n @Input() ngJvxFocus: boolean;\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ngJvxFocus) {\r\n this.el.nativeElement.focus();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.hasOwnProperty('ngJvxFocus') && changes.ngJvxFocus.currentValue === true) {\r\n this.el.nativeElement.focus();\r\n }\r\n }\r\n}\r\n","import {\r\n AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ElementRef, EventEmitter, forwardRef, HostBinding,\r\n Input,\r\n OnChanges, OnDestroy,\r\n OnInit, Optional, Output, QueryList, Self,\r\n SimpleChanges,\r\n ViewChild, ViewChildren\r\n} from '@angular/core';\r\nimport {NgJvxOptionsTemplateDirective} from './directives/ng-jvx-options-template.directive';\r\nimport {ControlValueAccessor, FormBuilder, FormControl, FormGroup, NG_VALUE_ACCESSOR, NgControl} from '@angular/forms';\r\nimport {MatSelectionList, MatSelectionListChange} from '@angular/material/list';\r\nimport {NgJvxOptionComponent} from './ng-jvx-option/ng-jvx-option.component';\r\nimport {MatMenuTrigger} from '@angular/material/menu';\r\nimport {NgJvxMultiselectService} from './ng-jvx-multiselect.service';\r\nimport {HttpHeaders} from '@angular/common/http';\r\nimport {NgScrollbar} from 'ngx-scrollbar';\r\nimport {debounceTime, distinctUntilChanged, map, switchMap, takeUntil, tap} from 'rxjs/operators';\r\nimport {combineLatest, forkJoin, from, fromEvent, iif, noop, observable, Observable, of, Subject, timer} from 'rxjs';\r\nimport {NgJvxOptionMapper} from './interfaces/ng-jvx-option-mapper';\r\nimport {NgJvxSelectionTemplateDirective} from './directives/ng-jvx-selection-template.directive';\r\nimport {MatFormFieldControl} from '@angular/material/form-field';\r\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\r\nimport {NgJvxGroupHeaderDirective} from './directives/ng-jvx-group-header.directive';\r\nimport {NgJvxSearchMapper} from './interfaces/ng-jvx-search-mapper';\r\nimport {NgJvxGroup, NgJvxGroupMapper} from './interfaces/ng-jvx-group-mapper';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'ng-jvx-multiselect',\r\n templateUrl: './ng-jvx-multiselect.component.html',\r\n styleUrls: ['./ng-jvx-multiselect.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: MatFormFieldControl,\r\n useExisting: forwardRef(() => NgJvxMultiselectComponent),\r\n multi: true,\r\n }]\r\n})\r\nexport class NgJvxMultiselectComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges, MatFormFieldControl<any>, ControlValueAccessor {\r\n static nextId = 0;\r\n @HostBinding() id = `jvx-multiselect-${NgJvxMultiselectComponent.nextId++}`;\r\n\r\n @HostBinding('class.floating')\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n @ViewChild('jvxMultiselect', {static: true}) jvxMultiselect: ElementRef;\r\n @ViewChild('selectionContainer', {static: false}) selectionContainer: ElementRef;\r\n @ViewChild('selection', {static: true}) selection: MatSelectionList;\r\n @ViewChild('trigger', {static: true}) trigger: MatMenuTrigger;\r\n @ViewChild('scrollbar', {static: false}) scrollbar: NgScrollbar;\r\n @ViewChild('multiContainer', {static: false}) multiContainer: ElementRef;\r\n @ViewChildren(NgJvxOptionComponent) optionComp: QueryList<NgJvxOptionComponent>;\r\n @ContentChild(NgJvxOptionsTemplateDirective) optionsTemplate: NgJvxOptionsTemplateDirective | null = null;\r\n @ContentChild(NgJvxSelectionTemplateDirective) selectionTemplate: NgJvxSelectionTemplateDirective | null = null;\r\n @ContentChild(NgJvxGroupHeaderDirective) groupHeaderTemplate: NgJvxGroupHeaderDirective | null = null;\r\n // @ContentChild(NgJvxOptionComponent) optionComp: NgJvxOptionComponent;\r\n // @ContentChild(TemplateRef) optionsTemplate: TemplateRef<any> | null = null;\r\n @Input() options: any[] = [];\r\n @Input() multi = false;\r\n @Input() url = '';\r\n @Input() requestType: 'get' | 'post' = 'get';\r\n @Input() itemValue = 'value';\r\n @Input() itemText = 'text';\r\n @Input() ignorePagination = false;\r\n @Input() clearable = false;\r\n @Input() closeOnClick = true;\r\n @Input() hasErrors = false;\r\n @Input() searchMode: null | 'server' | 'client' = null;\r\n @Input() searchInput = false;\r\n @Input() searchLabel = 'search';\r\n @Input() listProp = '';\r\n @Input() totalRowsProp = '';\r\n @Input() panelClass = '';\r\n @Input() searchProp = 'search';\r\n @Input() mapper: NgJvxOptionMapper<any> = {\r\n mapOption(source: any): Observable<any> {\r\n return of(source);\r\n }\r\n };\r\n @Input() searchMapper: NgJvxSearchMapper<any> = {\r\n mapSearch: (source: string, options: any[]): Observable<any> => {\r\n return of(options.filter(o => o[this.itemText].toString().toLowerCase().includes(source.toString().toLowerCase())));\r\n }\r\n };\r\n @Input() groupBy: NgJvxGroupMapper<any> | string | null;\r\n\r\n @Input() set value(value: any[]) {\r\n this.pValue = value ?? [];\r\n if (value) {\r\n this.form.get('selectionValue').setValue(this.pValue.map(v => v[this.itemValue]));\r\n } else {\r\n this.form.get('selectionValue').setValue(value);\r\n }\r\n this.stateChanges.next();\r\n }\r\n\r\n get value(): any[] {\r\n return this.pValue;\r\n }\r\n\r\n @Input() requestHeaders: HttpHeaders = new HttpHeaders();\r\n\r\n @Input()\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n\r\n set required(req) {\r\n this._required = coerceBooleanProperty(req);\r\n this.stateChanges.next();\r\n }\r\n\r\n // tslint:disable-next-line:variable-name\r\n private _required = false;\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n this._disabled ? this.parts.disable() : this.parts.enable();\r\n this.stateChanges.next();\r\n }\r\n\r\n // tslint:disable-next-line:variable-name\r\n private _disabled = false;\r\n\r\n get errorState(): boolean {\r\n if (this.ngControl != null) {\r\n return this.ngControl.invalid && this.ngControl.touched;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n @Output() valueChange: EventEmitter<any[]> = new EventEmitter<any[]>();\r\n @Output() jvxMultiselectOpen: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() jvxMultiselectOpened: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() jvxMultiselectClose: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() jvxMultiselectClosed: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() scrollEnd: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n public controlType = 'ng-jvx-multiselect';\r\n public document = document;\r\n public window = window;\r\n public form: FormGroup;\r\n public isOpen = false;\r\n public isLoading = false;\r\n public showList = true;\r\n public asyncOptions: any = [];\r\n public selectableOptions = [];\r\n public orderedOptions: { group: any, options: any[] }[] = [];\r\n public searchValue = '';\r\n public yPosition: 'above' | 'below' = 'above';\r\n public stateChanges = new Subject<void>();\r\n public currentPage = 0;\r\n public listContainerSize: { height: string, minHeight: string, width: string } = {height: 'auto', minHeight: '0', width: '100%'};\r\n public parts: FormGroup;\r\n\r\n public touched = false;\r\n\r\n public placeholder: string;\r\n public focused = false;\r\n public multiContainerWidth = 100;\r\n\r\n private searchValueSubject = new Subject<string>();\r\n private searchValue$ = this.searchValueSubject.asObservable();\r\n private pValue: any[] = [];\r\n private shouldLoadMore = true;\r\n private pageSize = 15;\r\n private unsubscribe = new Subject<void>();\r\n private unsubscribe$ = this.unsubscribe.asObservable();\r\n public onTouched = () => {\r\n };\r\n\r\n\r\n constructor(private formBuilder: FormBuilder, private service: NgJvxMultiselectService,\r\n private elementRef: ElementRef,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n @Optional() @Self() public ngControl: NgControl, fb: FormBuilder) {\r\n if (this.ngControl != null) {\r\n // Setting the value accessor directly (instead of using\r\n // the providers) to avoid running into a circular import.\r\n this.ngControl.valueAccessor = this;\r\n }\r\n\r\n this.parts = fb.group({\r\n area: '',\r\n exchange: '',\r\n subscriber: '',\r\n });\r\n this.form = this.formBuilder.group({\r\n selectionValue: new FormControl(this.selectionValue)\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.stateChange$.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n this.selectableOptions = [...this.options];\r\n this.updateOrderedOptions(this.selectableOptions).subscribe(noop);\r\n fromEvent(window, 'resize').pipe(takeUntil(this.unsubscribe), debounceTime(100), map(() => {\r\n return this.listContainerSize.width = this.jvxMultiselect.nativeElement.offsetWidth + 'px';\r\n\r\n }), switchMap(() => timer(100)), tap(() => {\r\n this.multiContainerWidth = this.multiContainer?.nativeElement?.offsetWidth ?? 100;\r\n this.yPosition = window.innerHeight - this.jvxMultiselect.nativeElement?.getBoundingClientRect()?.top < 260 ? 'above' : 'below';\r\n this.changeDetectorRef.markForCheck();\r\n })).subscribe(noop);\r\n\r\n this.searchValue$.pipe(takeUntil(this.unsubscribe), debounceTime(300), distinctUntilChanged((prev, curr) => {\r\n return curr === this.searchValue;\r\n }), switchMap((val: string) => {\r\n this.searchValue = val;\r\n this.currentPage = 0;\r\n if (this.searchMode === 'client') {\r\n return this.clientSearch();\r\n } else if (this.url && this.url.length > 0) {\r\n return this.serverSearch();\r\n }\r\n }\r\n )\r\n ).subscribe((val: any[]) => {\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n private clientSearch(): Observable<any> {\r\n let obs: Observable<any>;\r\n if (this.url && this.url.length > 0) {\r\n this.selectableOptions = [];\r\n this.updateOrderedOptions(this.selectableOptions).subscribe(noop);\r\n this.shouldLoadMore = true;\r\n obs = this.getList().pipe(map(() => {\r\n return this.selectableOptions;\r\n }));\r\n } else {\r\n obs = of(this.options);\r\n }\r\n return obs.pipe(switchMap((val) => this.searchMapper.mapSearch(this.searchValue, val)), tap((res) => {\r\n this.selectableOptions = [];\r\n this.selectableOptions.push(...res);\r\n }), switchMap(() =>\r\n this.updateOrderedOptions(this.selectableOptions)\r\n ));\r\n }\r\n\r\n private serverSearch(): Observable<any> {\r\n this.shouldLoadMore = true;\r\n this.selectableOptions = [];\r\n this.shouldLoadMore = true;\r\n return this.getList();\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe.next();\r\n this.stateChanges.complete();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n timer(0).subscribe(() => {\r\n this.listContainerSize.width = this.jvxMultiselect.nativeElement.offsetWidth + 'px';\r\n });\r\n\r\n if (this.scrollbar) {\r\n this.scrollbar.scrolled.pipe(takeUntil(this.unsubscribe$)).subscribe((e: any) => {\r\n this.onScrolled(e);\r\n });\r\n }\r\n timer(0).pipe(tap(() => {\r\n this.multiContainerWidth = this.multiContainer?.nativeElement?.offsetWidth ?? 100;\r\n this.yPosition = window.innerHeight - this.jvxMultiselect.nativeElement?.getBoundingClientRect()?.top < 260 ? 'above' : 'below';\r\n this.changeDetectorRef.markForCheck();\r\n })).subscribe(noop);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.options) {\r\n this.selectableOptions = [...this.options];\r\n this.updateOrderedOptions(this.selectableOptions).subscribe(noop);\r\n }\r\n }\r\n\r\n\r\n get selectionValue(): any[] {\r\n return this.value.map((v) => {\r\n return v[this.itemValue];\r\n });\r\n }\r\n\r\n get empty(): boolean {\r\n const n = this.parts.value;\r\n return !n.area && !n.exchange && !n.subscriber;\r\n }\r\n\r\n onCLickOnMenu(e: MouseEvent): void {\r\n if (this.multi || this.closeOnClick === false) {\r\n e.stopPropagation();\r\n }\r\n }\r\n\r\n\r\n private propagateChange(_: any): any {\r\n }\r\n\r\n // this is the initial value set to the component\r\n public writeValue(obj: any[]): void {\r\n this.value = obj;\r\n }\r\n\r\n // registers 'fn' that will be fired when changes are made\r\n // this is how we emit the changes back to the form\r\n public registerOnChange(fn: any): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n onChange(e: MatSelectionListChange): void {\r\n\r\n let vals = e.source.selectedOptions.selected.map(o => o.value);\r\n vals = this.selectableOptions.filter(o => vals.includes(o[this.itemValue]));\r\n console.log(vals);\r\n const selectableIds = this.selectableOptions.map(s => s[this.itemValue]);\r\n console.log(selectableIds);\r\n if (this.multi) {\r\n // if search is active, probably some of the already selected values are not included in the selectable options,\r\n // so we have to push them in the selected values of the list;\r\n for (const v of this.value) {\r\n if (!selectableIds.includes(v[this.itemValue])) {\r\n vals = [v, ...vals];\r\n }\r\n }\r\n }\r\n vals.sort((a, b) => {\r\n return typeof a[this.itemValue] === 'string' ?\r\n a[this.itemValue].localeCompare(b[this.itemValue]) : a[this.itemValue] - b[this.itemValue];\r\n });\r\n console.log(vals);\r\n this.value = [...vals];\r\n this.form.get('selectionValue').setValue(this.value.map(v => v[this.itemValue]));\r\n\r\n this.valueChange.emit(this.value);\r\n this.propagateChange(this.value);\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n\r\n onFocusIn(event: FocusEvent): void {\r\n if (!this.focused) {\r\n this.focused = true;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onFocusOut(event: FocusEvent): void {\r\n if (!this.elementRef.nativeElement.contains(event.relatedTarget as Element)) {\r\n this.touched = true;\r\n this.focused = false;\r\n this.onTouched();\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onMenuOpen(): void {\r\n this.isOpen = true;\r\n\r\n this.jvxMultiselectOpen.emit();\r\n }\r\n\r\n onMenuClose(): void {\r\n this.isOpen = false;\r\n this.jvxMultiselectClose.emit();\r\n }\r\n\r\n deselect(val: any): void {\r\n this.value = [...this.value.filter(v => v[this.itemValue] !== val[this.itemValue])];\r\n // this.value.splice(this.value.findIndex(v => v[this.itemValue] === val[this.itemValue]), 1);\r\n this.form.get('selectionValue').setValue(this.value.map(m => m.value));\r\n this.valueChange.emit(this.value);\r\n this.propagateChange(this.value);\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n private setSelectionContainerSize(): void {\r\n timer(0).subscribe(() => {\r\n if (this.selectionContainer) {\r\n this.listContainerSize.height = this.selectionContainer.nativeElement.offsetHeight > 260 ? '260px' : 'auto';\r\n this.listContainerSize.minHeight = this.selectionContainer.nativeElement.offsetHeight <= 260 ?\r\n this.selectionContainer.nativeElement.offsetHeight + 'px' : '260px';\r\n this.listContainerSize.width = this.jvxMultiselect.nativeElement.offsetWidth + 'px';\r\n }\r\n this.changeDetectorRef.detectChanges();\r\n });\r\n }\r\n\r\n clickOnMenuTrigger(e: MouseEvent): void {\r\n if (!this.disabled) {\r\n this.showList = false;\r\n this.shouldLoadMore = true;\r\n timer(0).subscribe(() => {\r\n this.showList = true;\r\n if (this.url.length > 0) {\r\n e.preventDefault();\r\n\r\n this.selectableOptions.length = 0;\r\n this.updateOrderedOptions(this.selectableOptions);\r\n this.getList().subscribe(noop);\r\n this.setSelectionContainerSize();\r\n\r\n } else {\r\n this.trigger.openMenu();\r\n this.setSelectionContainerSize();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private getList(): Observable<any> {\r\n this.isLoading = true;\r\n return this.service.getList({\r\n url: this.url,\r\n requestType: this.requestType,\r\n data: {},\r\n currentPage: ++this.currentPage,\r\n ignorePagination: this.ignorePagination,\r\n requestHeaders: this.requestHeaders,\r\n search: this.searchValue,\r\n searchProp: this.searchProp,\r\n pageSize: this.pageSize\r\n }).pipe(switchMap((val) => {\r\n let result = [];\r\n if (this.listProp.length > 0) {\r\n result = [...val[this.listProp]];\r\n } else {\r\n result = [...val];\r\n }\r\n\r\n if (result.length === 0) {\r\n this.shouldLoadMore = false;\r\n this.isLoading = false;\r\n return forkJoin([]);\r\n } else {\r\n const newOptions = [];\r\n\r\n for (const opt of result) {\r\n const newOption = this.mapper.mapOption(opt);\r\n newOptions.push(newOption);\r\n }\r\n return forkJoin(newOptions);\r\n }\r\n }), switchMap((finVal: any) => {\r\n this.selectableOptions.push(...finVal);\r\n return this.updateOrderedOptions(this.selectableOptions);\r\n }), map((val) => {\r\n this.isLoading = false;\r\n this.trigger.openMenu();\r\n this.setSelectionContainerSize();\r\n this.changeDetectorRef.markForCheck();\r\n return val;\r\n }));\r\n }\r\n\r\n onScrolled(e: any): void {\r\n if (e.target.scrollTop + 220 + ((this.searchInput ? 0 : 1) * 40) === this.selectionContainer.nativeElement.offsetHeight\r\n && !this.isLoading) {\r\n this.scrollEnd.emit();\r\n if (this.url && this.url.length > 0 && !this.ignorePagination && this.shouldLoadMore) {\r\n this.getList().subscribe(noop);\r\n }\r\n }\r\n }\r\n\r\n onMenuOpened(): void {\r\n this.jvxMultiselectOpened.emit();\r\n }\r\n\r\n onMenuClosed(): void {\r\n if ((!this.url || this.url.length === 0) && this.searchMode === 'client') {\r\n this.searchValueSubject.next('');\r\n } else {\r\n this.searchValue = '';\r\n this.currentPage = 0;\r\n }\r\n this.jvxMultiselectClosed.emit();\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n onSearchInputClick(e: MouseEvent): void {\r\n e.stopPropagation();\r\n }\r\n\r\n onSearchValueChange(e: any): void {\r\n this.searchValueSubject.next(e.target.value);\r\n }\r\n\r\n clear(e: Event): void {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n this.value = [];\r\n this.form.get('selectionValue').setValue(this.value.map(v => v[this.itemValue]));\r\n this.propagateChange(this.value);\r\n this.valueChange.emit(this.value);\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n setDescribedByIds(ids: string[]): void {\r\n const controlElement = this.elementRef.nativeElement\r\n .querySelector('.ng-jvx-multiselect');\r\n controlElement.setAttribute('aria-describedby', ids.join(' '));\r\n }\r\n\r\n onContainerClick(event: MouseEvent): void {\r\n // if ((event.target as Element).tagName.toLowerCase() !== 'input') {\r\n // this.elementRef.nativeElement.querySelector('input').focus();\r\n // }\r\n }\r\n\r\n private get stateChange$(): Observable<any> {\r\n return this.stateChanges.asObservable();\r\n }\r\n\r\n updateOrderedOptions(options): Observable<any> {\r\n let obs = of(options);\r\n if (this.groupBy) {\r\n this.orderedOptions.length = 0;\r\n const obsArr = [];\r\n for (const option of options) {\r\n if (typeof this.groupBy !== 'string') {\r\n obsArr.push(this.groupBy.mapGroup(option));\r\n } else {\r\n obsArr.push(of({group: option[this.groupBy], option} as NgJvxGroup<any>));\r\n }\r\n }\r\n obs = forkJoin(obsArr).pipe(map((res: any) => {\r\n const groups = [...new Set(res.map(item => item.group))];\r\n for (const group of groups) {\r\n this.orderedOptions.push({\r\n group,\r\n options: res.filter(r => r.group === group).map(o => o.option)\r\n });\r\n }\r\n return this.orderedOptions;\r\n }));\r\n }\r\n return obs;\r\n }\r\n\r\n public closeMenu(): void {\r\n this.trigger.closeMenu();\r\n }\r\n}\r\n","<div class=\"ng-jvx-multiselect\" [ngClass]=\"{'disabled': disabled, 'has-errors': hasErrors}\" #jvxMultiselect>\r\n <!-- START MENU -->\r\n <div [matMenuTriggerFor]=\"menuRef\" (onMenuOpen)=\"onMenuOpen()\" (menuOpened)=\"onMenuOpened()\"\r\n (onMenuClose)=\"onMenuClose()\" (menuClosed)=\"onMenuClosed()\"\r\n #trigger=\"matMenuTrigger\">\r\n <mat-menu #menuRef=\"matMenu\" [class]=\"['jvx-multiselect-panel', panelClass].join(' ')\" [formGroup]=\"form\"\r\n\r\n [yPosition]=\"yPosition\">\r\n <div class=\"menu-list-container\"\r\n #menuLIstContainer\r\n [ngStyle]=\"{'overflow-y': 'hidden', 'width': listContainerSize.width, 'max-height': '260px', 'height': listContainerSize.height, 'min-height': listContainerSize.minHeight}\">\r\n <div class=\"search-input-container\" *ngIf=\"!!searchInput\" (click)=\"onSearchInputClick($event)\">\r\n <input type=\"text\" [placeholder]=\"searchLabel\" [ngModel]=\"searchValue\" [ngModelOptions]=\"{standalone: true}\"\r\n [ngJvxFocus]=\"isOpen\"\r\n (input)=\"onSearchValueChange($event)\"/>\r\n </div>\r\n <div [ngStyle]=\"{height: searchInput && selectionContainer.clientHeight > 220 || selectionContainer.clientHeight > 260? 260 - (searchInput? 40 : 0) + 'px': 'auto'}\">\r\n <ng-scrollbar style=\"width: 100%\"\r\n smoothScroll\r\n [visibility]=\"'hover'\"\r\n [appearance]=\"'compact'\"\r\n [sensorDisabled]=\"isLoading\"\r\n [autoHeightDisabled]=\"false\" #scrollbar>\r\n <div #selectionContainer (click)=\"onCLickOnMenu($event)\">\r\n <mat-selection-list #selection [multiple]=\"multi\"\r\n *ngIf=\"showList\"\r\n [ngStyle]=\"{'padding': 0, 'width': listContainerSize.width, 'min-width.px': 112}\"\r\n (selectionChange)=\"onChange($event)\"\r\n formControlName=\"selectionValue\">\r\n <ng-content></ng-content>\r\n <ng-container *ngIf=\"!!groupBy\">\r\n <ng-container *ngFor=\"let opt of orderedOptions\">\r\n <ng-container [ngTemplateOutlet]=\"groupHeaderTemplate? groupHeaderTemplate.template: defaultGroupHeaderTemplate\" [ngTemplateOutletContext]=\"{$implicit: opt}\"></ng-container>\r\n\r\n <ng-jvx-option *ngFor=\"let option of opt.options\" [value]=\"option[itemValue]\">\r\n <!-- <ng-container [ngTemplateOutlet]=\"optionsTemplate\" [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>-->\r\n <span style=\"padding-inline: 10px\">\r\n <ng-container [ngTemplateOutlet]=\"optionsTemplate? optionsTemplate.template : defaultTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>\r\n </span>\r\n </ng-jvx-option>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!groupBy || groupBy.length === 0\">\r\n <ng-jvx-option *ngFor=\"let option of selectableOptions\" [value]=\"option[itemValue]\">\r\n <!-- <ng-container [ngTemplateOutlet]=\"optionsTemplate\" [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>-->\r\n <ng-container [ngTemplateOutlet]=\"optionsTemplate? optionsTemplate.template : defaultTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>\r\n </ng-jvx-option>\r\n </ng-container>\r\n </mat-selection-list>\r\n </div>\r\n </ng-scrollbar>\r\n </div>\r\n\r\n </div>\r\n <div class=\"menu-footer\">\r\n <ng-content select=\"[ng-jvx-footer]\"></ng-content>\r\n </div>\r\n\r\n </mat-menu>\r\n </div>\r\n <!-- END MENU -->\r\n <!-- START INPUT -->\r\n <div [ngClass]=\"{'ng-jvx-multiselect-value-container': true, 'is-open': isOpen}\"\r\n (click)=\"clickOnMenuTrigger($event)\"\r\n #valueContainer>\r\n\r\n <div class=\"ng-jvx-multiselect__placeholder\" *ngIf=\"value.length === 0\">\r\n <ng-content select=\"[placeholder]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"ng-jvx-multiselect-value multi-value-container\" *ngIf=\"multi\" #multiContainer>\r\n\r\n <ng-container [ngTemplateOutlet]=\"selectionTemplate? selectionTemplate.template : defaultMultiSelectionTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: value}\"></ng-container>\r\n\r\n\r\n </div>\r\n\r\n <div class=\"ng-jvx-multiselect-value single-value-container\" *ngIf=\"!multi\">\r\n <div *ngFor=\"let val of value\" style=\"width: 100%;\">\r\n <ng-container [ngTemplateOutlet]=\"selectionTemplate? selectionTemplate.template : defaultSelectionTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: val}\"></ng-container></div>\r\n </div>\r\n <div class=\"ng-jvx-multiselect__remove-button\" *ngIf=\"clearable && value.length > 0\" (click)=\"clear($event)\">\r\n <mat-icon style=\"font-size: 18px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\">clear\r\n </mat-icon>\r\n </div>\r\n <div class=\"ng-jvx-multiselect-arrow\">\r\n <mat-icon *ngIf=\"!isLoading\">expand_more</mat-icon>\r\n <div *ngIf=\"isLoading\" class=\"lds-ring\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- END INPUT -->\r\n</div>\r\n<ng-template #defaultTemplate let-option>\r\n <div style=\"max-width: 100%;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\">{{option[itemText]}}\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultSelectionTemplate let-value>\r\n {{value[itemText]}}\r\n</ng-template>\r\n\r\n<ng-template #defaultMultiSelectionTemplate let-value>\r\n <mat-chip-list #chipList [disabled]=\"this.disabled\">\r\n <mat-chip [color]=\"'primary'\" selected *ngFor=\"let val of value\" [selectable]=\"false\"\r\n class=\"ng-jvx-multiselect-chip\"\r\n [removable]=\"true\" (removed)=\"deselect(val)\">\r\n <span class=\"chip-content\"\r\n [ngStyle]=\"{'max-width': multiContainerWidth - 50 +'px'}\">{{val[itemText]}}</span>\r\n\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n</ng-template>\r\n<ng-template #defaultGroupHeaderTemplate let-opt>\r\n <div style=\"padding-inline: 15px\"><strong>{{opt.group}}</strong></div>\r\n</ng-template>\r\n","/**\r\n * @license\r\n * Copyright Google LLC All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://angular.io/license\r\n */\r\n\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n Component, ContentChild, ContentChildren, Directive,\r\n ElementRef, EventEmitter,\r\n Inject, Input,\r\n NgZone, OnDestroy, OnInit, Output, QueryList, TemplateRef, ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n _MatMenuBase,\r\n MAT_MENU_CONTENT,\r\n MAT_MENU_DEFAULT_OPTIONS,\r\n MAT_MENU_PANEL,\r\n MatMenu,\r\n matMenuAnimations, MatMenuContent,\r\n MatMenuDefaultOptions, MatMenuItem, MatMenuPanel, MenuPositionX, MenuPositionY\r\n} from '@angular/material/menu';\r\nimport {FocusKeyManager, FocusOrigin} from '@angular/cdk/a11y';\r\nimport {startWith, switchMap, take} from 'rxjs/operators';\r\nimport {merge, Observable, Subject, Subscription} from 'rxjs';\r\nimport {MenuCloseReason} from '@angular/material/menu/menu';\r\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\r\nimport {throwMatMenuInvalidPositionX, throwMatMenuInvalidPositionY} from '@angular/material/menu/menu-errors';\r\nimport {Direction} from '@angular/cdk/bidi';\r\n\r\n\r\n\r\n\r\n/** @docs-public MatMenu */\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'ngJvxPanel',\r\n templateUrl: 'ng-jvx-panel.component.html',\r\n styleUrls: ['ng-jvx-panel.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'ngJvxPanel',\r\n // tslint:disable-next-line:no-host-metadata-property\r\n host: {\r\n '[attr.aria-label]': 'null',\r\n '[attr.aria-labelledby]': 'null',\r\n '[attr.aria-describedby]': 'null',\r\n },\r\n animations: [\r\n matMenuAnimations.transformMenu,\r\n matMenuAnimations.fadeInItems\r\n ],\r\n providers: [\r\n {provide: MAT_MENU_PANEL, useExisting: MatMenu},\r\n ]\r\n})\r\nexport class NgJvxPanelComponent extends _MatMenuBase {\r\n constructor(elementRef: ElementRef<HTMLElement>, ngZone: NgZone,\r\n @Inject(MAT_MENU_DEFAULT_OPTIONS) defaultOptions: MatMenuDefaultOptions) {\r\n super(elementRef, ngZone, defaultOptions);\r\n }\r\n}\r\n\r\n","<ng-template>\r\n <div\r\n class=\"mat-menu-panel\"\r\n [id]=\"panelId\"\r\n [ngClass]=\"_classList\"\r\n (keydown)=\"_handleKeydown($event)\"\r\n (click)=\"closed.emit('click')\"\r\n [@transformMenu]=\"_panelAnimationState\"\r\n (@transformMenu.start)=\"_onAnimationStart($event)\"\r\n (@transformMenu.done)=\"_onAnimationDone($event)\"\r\n tabindex=\"-1\"\r\n role=\"menu\"\r\n [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\r\n [attr.aria-describedby]=\"ariaDescribedby || null\">\r\n <div class=\"mat-menu-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import {NgModule} from '@angular/core';\r\nimport {NgJvxMultiselectComponent} from './ng-jvx-multiselect.component';\r\nimport {MatButtonModule} from '@angular/material/button';\r\nimport {MatOptionModule} from '@angular/material/core';\r\nimport {MatSelectModule} from '@angular/material/select';\r\nimport {CommonModule} from '@angular/common';\r\nimport {NgJvxOptionComponent} from './ng-jvx-option/ng-jvx-option.component';\r\nimport {MatMenuModule} from '@angular/material/menu';\r\nimport {NgJvxOptionsTemplateDirective} from './directives/ng-jvx-options-template.directive';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {NgJvxPanelComponent} from './ng-jvx-panel/ng-jvx-panel.component';\r\nimport {MatListModule} from '@angular/material/list';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport {MatChipsModule} from '@angular/material/chips';\r\nimport {HttpClientModule} from '@angular/common/http';\r\nimport {NgScrollbarModule} from 'ngx-scrollbar';\r\nimport {SmoothScrollModule} from 'ngx-scrollbar/smooth-scroll';\r\nimport {NgJvxSelectionTemplateDirective} from './directives/ng-jvx-selection-template.directive';\r\nimport {NgJvxDisabledOptionDirective} from './directives/ng-jvx-disabled-option.directive';\r\nimport { NgJvxGroupHeaderDirective } from './directives/ng-jvx-group-header.directive';\r\nimport { NgJvxFocusDirective } from './directives/ng-jvx-focus.directive';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n NgJvxMultiselectComponent,\r\n NgJvxOptionComponent,\r\n NgJvxOptionsTemplateDirective,\r\n NgJvxPanelComponent,\r\n NgJvxSelectionTemplateDirective,\r\n NgJvxDisabledOptionDirective,\r\n NgJvxGroupHeaderDirective,\r\n NgJvxFocusDirective],\r\n imports: [\r\n MatButtonModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatMenuModule,\r\n CommonModule,\r\n MatIconModule,\r\n MatListModule,\r\n MatChipsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n NgScrollbarModule,\r\n SmoothScrollModule,\r\n FormsModule\r\n ],\r\n exports: [NgJvxMultiselectComponent, NgJvxOptionComponent, NgJvxOptionsTemplateDirective, NgJvxSelectionTemplateDirective, NgJvxDisabledOptionDirective, NgJvxGroupHeaderDirective]\r\n})\r\nexport class NgJvxMultiselectModule {\r\n}\r\n","/*\r\n * Public API Surface of ng-jvx-multiselect\r\n */\r\n\r\nexport * from './lib/ng-jvx-option/ng-jvx-option.component';\r\nexport * from './lib/directives/ng-jvx-options-template.directive';\r\nexport * from './lib/directives/ng-jvx-selection-template.directive';\r\nexport * from './lib/directives/ng-jvx-group-header.directive';\r\nexport * from './lib/directives/ng-jvx-disabled-option.directive';\r\nexport * from './lib/ng-jvx-multiselect.service';\r\nexport * from './lib/ng-jvx-multiselect.component';\r\nexport * from './lib/ng-jvx-multiselect.module';\r\nexport * from './lib/interfaces/ng-jvx-option-mapper';\r\nexport * from './lib/interfaces/ng-jvx-search-mapper';\r\nexport * from './lib/interfaces/ng-jvx-group-mapper';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ElementRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class NgJvxDisabledOptionDirective implements OnInit, OnDestroy {
|
|
4
|
+
private el;
|
|
5
|
+
private isDisabled;
|
|
6
|
+
private originalOpacity;
|
|
7
|
+
private unsubs;
|
|
8
|
+
set ngJvxDisabledOption(source: boolean);
|
|
9
|
+
constructor(el: ElementRef);
|
|
10
|
+
ngOnInit(): void;
|
|
11
|
+
ngOnDestroy(): void;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgJvxDisabledOptionDirective, never>;
|
|
13
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgJvxDisabledOptionDirective, "[ngJvxDisabledOption]", never, { "ngJvxDisabledOption": "ngJvxDisabledOption"; }, {}, never>;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-jvx-disabled-option.directive.d.ts","sourceRoot":"","sources":["../../../../projects/ng-jvx-multiselect/src/lib/directives/ng-jvx-disabled-option.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,UAAU,EAAuB,SAAS,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;;AAI5F,qBAIa,4BAA6B,YAAW,MAAM,EAAE,SAAS;IAgBlE,OAAO,CAAC,EAAE;IAfZ,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAK;IAE5B,OAAO,CAAC,MAAM,CAAuB;IAErC,IAAa,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAO/C;gBAGS,EAAE,EAAE,UAAU;IAKxB,QAAQ,IAAI,IAAI;IAYhB,WAAW,IAAI,IAAI;yCAjCR,4BAA4B;2CAA5B,4BAA4B;CAqCxC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ElementRef, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class NgJvxFocusDirective implements OnInit, OnChanges {
|
|
4
|
+
private el;
|
|
5
|
+
ngJvxFocus: boolean;
|
|
6
|
+
constructor(el: ElementRef);
|
|
7
|
+
ngOnInit(): void;
|
|
8
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgJvxFocusDirective, never>;
|
|
10
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgJvxFocusDirective, "[ngJvxFocus]", never, { "ngJvxFocus": "ngJvxFocus"; }, {}, never>;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-jvx-focus.directive.d.ts","sourceRoot":"","sources":["../../../../projects/ng-jvx-multiselect/src/lib/directives/ng-jvx-focus.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,UAAU,EAAS,SAAS,EAAE,MAAM,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;;AAG/G,qBAIa,mBAAoB,YAAW,MAAM,EAAE,SAAS;IAG/C,OAAO,CAAC,EAAE;IAFb,UAAU,EAAE,OAAO,CAAC;gBAET,EAAE,EAAE,UAAU;IAGlC,QAAQ,IAAI,IAAI;IAMhB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;yCAZ9B,mBAAmB;2CAAnB,mBAAmB;CAiB/B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class NgJvxGroupHeaderDirective {
|
|
4
|
+
template: TemplateRef<any>;
|
|
5
|
+
private vcRef;
|
|
6
|
+
constructor(template: TemplateRef<any>, vcRef: ViewContainerRef);
|
|
7
|
+
set ngJvxGroupHeaderOf(source: Array<any[]>);
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgJvxGroupHeaderDirective, never>;
|
|
9
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgJvxGroupHeaderDirective, "[ngJvxGroupHeader]", never, { "ngJvxGroupHeaderOf": "ngJvxGroupHeaderOf"; }, {}, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-jvx-group-header.directive.d.ts","sourceRoot":"","sources":["../../../../projects/ng-jvx-multiselect/src/lib/directives/ng-jvx-group-header.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;;AAE9E,qBAIa,yBAAyB;IAG3B,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC;IACjC,OAAO,CAAC,KAAK;gBADN,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,EACzB,KAAK,EAAE,gBAAgB;IAGjC,IAAa,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAInD;yCAXU,yBAAyB;2CAAzB,yBAAyB;CAcrC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ElementRef, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class NgJvxOptionsTemplateDirective {
|
|
4
|
+
private el;
|
|
5
|
+
template: TemplateRef<any>;
|
|
6
|
+
private vcRef;
|
|
7
|
+
constructor(el: ElementRef, template: TemplateRef<any>, vcRef: ViewContainerRef);
|
|
8
|
+
set ngJvxOptionsTemplateOf(source: Array<any[]>);
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgJvxOptionsTemplateDirective, never>;
|
|
10
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgJvxOptionsTemplateDirective, "[ngJvxOptionsTemplate]", never, { "ngJvxOptionsTemplateOf": "ngJvxOptionsTemplateOf"; }, {}, never>;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-jvx-options-template.directive.d.ts","sourceRoot":"","sources":["../../../../projects/ng-jvx-multiselect/src/lib/directives/ng-jvx-options-template.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,UAAU,EAAuB,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;;AAExG,qBAIa,6BAA6B;IAGtC,OAAO,CAAC,EAAE;IACH,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC;IACjC,OAAO,CAAC,KAAK;gBAFL,EAAE,EAAE,UAAU,EACf,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,EACzB,KAAK,EAAE,gBAAgB;IAKjC,IAAa,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAIvD;yCAdU,6BAA6B;2CAA7B,6BAA6B;CAgBzC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class NgJvxSelectionTemplateDirective {
|
|
4
|
+
template: TemplateRef<any>;
|
|
5
|
+
private vcRef;
|
|
6
|
+
constructor(template: TemplateRef<any>, vcRef: ViewContainerRef);
|
|
7
|
+
set ngJvxSelectionTemplateOf(source: Array<any[]>);
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgJvxSelectionTemplateDirective, never>;
|
|
9
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgJvxSelectionTemplateDirective, "[ngJvxSelectionTemplate]", never, { "ngJvxSelectionTemplateOf": "ngJvxSelectionTemplateOf"; }, {}, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-jvx-selection-template.directive.d.ts","sourceRoot":"","sources":["../../../../projects/ng-jvx-multiselect/src/lib/directives/ng-jvx-selection-template.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;;AAE9E,qBAIa,+BAA+B;IAGjC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC;IACjC,OAAO,CAAC,KAAK;gBADN,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,EACzB,KAAK,EAAE,gBAAgB;IAGjC,IAAa,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAIzD;yCAXU,+BAA+B;2CAA/B,+BAA+B;CAa3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-jvx-group-mapper.d.ts","sourceRoot":"","sources":["../../../../projects/ng-jvx-multiselect/src/lib/interfaces/ng-jvx-group-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAU,MAAM,MAAM,CAAC;AAEzC,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,CAAC;CACX"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
/**
|
|
3
|
+
* Maps the option returned by the async call in an object of type T. When object is mapped the resulting object is returned in an observable
|
|
4
|
+
*/
|
|
5
|
+
export interface NgJvxOptionMapper<T> {
|
|
6
|
+
mapOption(source: any): Observable<T>;
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-jvx-option-mapper.d.ts","sourceRoot":"","sources":["../../../../projects/ng-jvx-multiselect/src/lib/interfaces/ng-jvx-option-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAU,MAAM,MAAM,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;CACvC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
/**
|
|
3
|
+
* Maps the option returned by the async call in an object of type T. When object is mapped the resulting object is returned in an observable
|
|
4
|
+
*/
|
|
5
|
+
export interface NgJvxSearchMapper<T> {
|
|
6
|
+
mapSearch(source: any, options: T): Observable<T>;
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-jvx-search-mapper.d.ts","sourceRoot":"","sources":["../../../../projects/ng-jvx-multiselect/src/lib/interfaces/ng-jvx-search-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAU,MAAM,MAAM,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;CACnD"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, QueryList, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { NgJvxOptionsTemplateDirective } from './directives/ng-jvx-options-template.directive';
|
|
3
|
+
import { ControlValueAccessor, FormBuilder, FormGroup, NgControl } from '@angular/forms';
|
|
4
|
+
import { MatSelectionList, MatSelectionListChange } from '@angular/material/list';
|
|
5
|
+
import { NgJvxOptionComponent } from './ng-jvx-option/ng-jvx-option.component';
|
|
6
|
+
import { MatMenuTrigger } from '@angular/material/menu';
|
|
7
|
+
import { NgJvxMultiselectService } from './ng-jvx-multiselect.service';
|
|
8
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
9
|
+
import { NgScrollbar } from 'ngx-scrollbar';
|
|
10
|
+
import { Observable, Subject } from 'rxjs';
|
|
11
|
+
import { NgJvxOptionMapper } from './interfaces/ng-jvx-option-mapper';
|
|
12
|
+
import { NgJvxSelectionTemplateDirective } from './directives/ng-jvx-selection-template.directive';
|
|
13
|
+
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
14
|
+
import { NgJvxGroupHeaderDirective } from './directives/ng-jvx-group-header.directive';
|
|
15
|
+
import { NgJvxSearchMapper } from './interfaces/ng-jvx-search-mapper';
|
|
16
|
+
import { NgJvxGroupMapper } from './interfaces/ng-jvx-group-mapper';
|
|
17
|
+
import * as i0 from "@angular/core";
|
|
18
|
+
export declare class NgJvxMultiselectComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges, MatFormFieldControl<any>, ControlValueAccessor {
|
|
19
|
+
private formBuilder;
|
|
20
|
+
private service;
|
|
21
|
+
private elementRef;
|
|
22
|
+
private changeDetectorRef;
|
|
23
|
+
ngControl: NgControl;
|
|
24
|
+
static nextId: number;
|
|
25
|
+
id: string;
|
|
26
|
+
get shouldLabelFloat(): boolean;
|
|
27
|
+
jvxMultiselect: ElementRef;
|
|
28
|
+
selectionContainer: ElementRef;
|
|
29
|
+
selection: MatSelectionList;
|
|
30
|
+
trigger: MatMenuTrigger;
|
|
31
|
+
scrollbar: NgScrollbar;
|
|
32
|
+
multiContainer: ElementRef;
|
|
33
|
+
optionComp: QueryList<NgJvxOptionComponent>;
|
|
34
|
+
optionsTemplate: NgJvxOptionsTemplateDirective | null;
|
|
35
|
+
selectionTemplate: NgJvxSelectionTemplateDirective | null;
|
|
36
|
+
groupHeaderTemplate: NgJvxGroupHeaderDirective | null;
|
|
37
|
+
options: any[];
|
|
38
|
+
multi: boolean;
|
|
39
|
+
url: string;
|
|
40
|
+
requestType: 'get' | 'post';
|
|
41
|
+
itemValue: string;
|
|
42
|
+
itemText: string;
|
|
43
|
+
ignorePagination: boolean;
|
|
44
|
+
clearable: boolean;
|
|
45
|
+
closeOnClick: boolean;
|
|
46
|
+
hasErrors: boolean;
|
|
47
|
+
searchMode: null | 'server' | 'client';
|
|
48
|
+
searchInput: boolean;
|
|
49
|
+
searchLabel: string;
|
|
50
|
+
listProp: string;
|
|
51
|
+
totalRowsProp: string;
|
|
52
|
+
panelClass: string;
|
|
53
|
+
searchProp: string;
|
|
54
|
+
mapper: NgJvxOptionMapper<any>;
|
|
55
|
+
searchMapper: NgJvxSearchMapper<any>;
|
|
56
|
+
groupBy: NgJvxGroupMapper<any> | string | null;
|
|
57
|
+
set value(value: any[]);
|
|
58
|
+
get value(): any[];
|
|
59
|
+
requestHeaders: HttpHeaders;
|
|
60
|
+
get required(): boolean;
|
|
61
|
+
set required(req: boolean);
|
|
62
|
+
private _required;
|
|
63
|
+
get disabled(): boolean;
|
|
64
|
+
set disabled(value: boolean);
|
|
65
|
+
private _disabled;
|
|
66
|
+
get errorState(): boolean;
|
|
67
|
+
valueChange: EventEmitter<any[]>;
|
|
68
|
+
jvxMultiselectOpen: EventEmitter<void>;
|
|
69
|
+
jvxMultiselectOpened: EventEmitter<void>;
|
|
70
|
+
jvxMultiselectClose: EventEmitter<void>;
|
|
71
|
+
jvxMultiselectClosed: EventEmitter<void>;
|
|
72
|
+
scrollEnd: EventEmitter<void>;
|
|
73
|
+
controlType: string;
|
|
74
|
+
document: Document;
|
|
75
|
+
window: Window & typeof globalThis;
|
|
76
|
+
form: FormGroup;
|
|
77
|
+
isOpen: boolean;
|
|
78
|
+
isLoading: boolean;
|
|
79
|
+
showList: boolean;
|
|
80
|
+
asyncOptions: any;
|
|
81
|
+
selectableOptions: any[];
|
|
82
|
+
orderedOptions: {
|
|
83
|
+
group: any;
|
|
84
|
+
options: any[];
|
|
85
|
+
}[];
|
|
86
|
+
searchValue: string;
|
|
87
|
+
yPosition: 'above' | 'below';
|
|
88
|
+
stateChanges: Subject<void>;
|
|
89
|
+
currentPage: number;
|
|
90
|
+
listContainerSize: {
|
|
91
|
+
height: string;
|
|
92
|
+
minHeight: string;
|
|
93
|
+
width: string;
|
|
94
|
+
};
|
|
95
|
+
parts: FormGroup;
|
|
96
|
+
touched: boolean;
|
|
97
|
+
placeholder: string;
|
|
98
|
+
focused: boolean;
|
|
99
|
+
multiContainerWidth: number;
|
|
100
|
+
private searchValueSubject;
|
|
101
|
+
private searchValue$;
|
|
102
|
+
private pValue;
|
|
103
|
+
private shouldLoadMore;
|
|
104
|
+
private pageSize;
|
|
105
|
+
private unsubscribe;
|
|
106
|
+
private unsubscribe$;
|
|
107
|
+
onTouched: () => void;
|
|
108
|
+
constructor(formBuilder: FormBuilder, service: NgJvxMultiselectService, elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, ngControl: NgControl, fb: FormBuilder);
|
|
109
|
+
ngOnInit(): void;
|
|
110
|
+
private clientSearch;
|
|
111
|
+
private serverSearch;
|
|
112
|
+
ngOnDestroy(): void;
|
|
113
|
+
ngAfterViewInit(): void;
|
|
114
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
115
|
+
get selectionValue(): any[];
|
|
116
|
+
get empty(): boolean;
|
|
117
|
+
onCLickOnMenu(e: MouseEvent): void;
|
|
118
|
+
private propagateChange;
|
|
119
|
+
writeValue(obj: any[]): void;
|
|
120
|
+
registerOnChange(fn: any): void;
|
|
121
|
+
registerOnTouched(fn: any): void;
|
|
122
|
+
onChange(e: MatSelectionListChange): void;
|
|
123
|
+
onFocusIn(event: FocusEvent): void;
|
|
124
|
+
onFocusOut(event: FocusEvent): void;
|
|
125
|
+
onMenuOpen(): void;
|
|
126
|
+
onMenuClose(): void;
|
|
127
|
+
deselect(val: any): void;
|
|
128
|
+
private setSelectionContainerSize;
|
|
129
|
+
clickOnMenuTrigger(e: MouseEvent): void;
|
|
130
|
+
private getList;
|
|
131
|
+
onScrolled(e: any): void;
|
|
132
|
+
onMenuOpened(): void;
|
|
133
|
+
onMenuClosed(): void;
|
|
134
|
+
onSearchInputClick(e: MouseEvent): void;
|
|
135
|
+
onSearchValueChange(e: any): void;
|
|
136
|
+
clear(e: Event): void;
|
|
137
|
+
setDescribedByIds(ids: string[]): void;
|
|
138
|
+
onContainerClick(event: MouseEvent): void;
|
|
139
|
+
private get stateChange$();
|
|
140
|
+
updateOrderedOptions(options: any): Observable<any>;
|
|
141
|
+
closeMenu(): void;
|
|
142
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgJvxMultiselectComponent, [null, null, null, null, { optional: true; self: true; }, null]>;
|
|
143
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgJvxMultiselectComponent, "ng-jvx-multiselect", never, { "options": "options"; "multi": "multi"; "url": "url"; "requestType": "requestType"; "itemValue": "itemValue"; "itemText": "itemText"; "ignorePagination": "ignorePagination"; "clearable": "clearable"; "closeOnClick": "closeOnClick"; "hasErrors": "hasErrors"; "searchMode": "searchMode"; "searchInput": "searchInput"; "searchLabel": "searchLabel"; "listProp": "listProp"; "totalRowsProp": "totalRowsProp"; "panelClass": "panelClass"; "searchProp": "searchProp"; "mapper": "mapper"; "searchMapper": "searchMapper"; "groupBy": "groupBy"; "value": "value"; "requestHeaders": "requestHeaders"; "required": "required"; "disabled": "disabled"; }, { "valueChange": "valueChange"; "jvxMultiselectOpen": "jvxMultiselectOpen"; "jvxMultiselectOpened": "jvxMultiselectOpened"; "jvxMultiselectClose": "jvxMultiselectClose"; "jvxMultiselectClosed": "jvxMultiselectClosed"; "scrollEnd": "scrollEnd"; }, ["optionsTemplate", "selectionTemplate", "groupHeaderTemplate"], ["*", "[ng-jvx-footer]", "[placeholder]"]>;
|
|
144
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-jvx-multiselect.component.d.ts","sourceRoot":"","sources":["../../../projects/ng-jvx-multiselect/src/lib/ng-jvx-multiselect.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./ng-jvx-multiselect.component";
|
|
3
|
+
import * as i2 from "./ng-jvx-option/ng-jvx-option.component";
|
|
4
|
+
import * as i3 from "./directives/ng-jvx-options-template.directive";
|
|
5
|
+
import * as i4 from "./ng-jvx-panel/ng-jvx-panel.component";
|
|
6
|
+
import * as i5 from "./directives/ng-jvx-selection-template.directive";
|
|
7
|
+
import * as i6 from "./directives/ng-jvx-disabled-option.directive";
|
|
8
|
+
import * as i7 from "./directives/ng-jvx-group-header.directive";
|
|
9
|
+
import * as i8 from "./directives/ng-jvx-focus.directive";
|
|
10
|
+
import * as i9 from "@angular/material/button";
|
|
11
|
+
import * as i10 from "@angular/material/core";
|
|
12
|
+
import * as i11 from "@angular/material/select";
|
|
13
|
+
import * as i12 from "@angular/material/menu";
|
|
14
|
+
import * as i13 from "@angular/common";
|
|
15
|
+
import * as i14 from "@angular/material/icon";
|
|
16
|
+
import * as i15 from "@angular/material/list";
|
|
17
|
+
import * as i16 from "@angular/material/chips";
|
|
18
|
+
import * as i17 from "@angular/forms";
|
|
19
|
+
import * as i18 from "@angular/common/http";
|
|
20
|
+
import * as i19 from "ngx-scrollbar";
|
|
21
|
+
import * as i20 from "ngx-scrollbar/smooth-scroll";
|
|
22
|
+
export declare class NgJvxMultiselectModule {
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgJvxMultiselectModule, never>;
|
|
24
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NgJvxMultiselectModule, [typeof i1.NgJvxMultiselectComponent, typeof i2.NgJvxOptionComponent, typeof i3.NgJvxOptionsTemplateDirective, typeof i4.NgJvxPanelComponent, typeof i5.NgJvxSelectionTemplateDirective, typeof i6.NgJvxDisabledOptionDirective, typeof i7.NgJvxGroupHeaderDirective, typeof i8.NgJvxFocusDirective], [typeof i9.MatButtonModule, typeof i10.MatOptionModule, typeof i11.MatSelectModule, typeof i12.MatMenuModule, typeof i13.CommonModule, typeof i14.MatIconModule, typeof i15.MatListModule, typeof i16.MatChipsModule, typeof i17.ReactiveFormsModule, typeof i18.HttpClientModule, typeof i19.NgScrollbarModule, typeof i20.SmoothScrollModule, typeof i17.FormsModule], [typeof i1.NgJvxMultiselectComponent, typeof i2.NgJvxOptionComponent, typeof i3.NgJvxOptionsTemplateDirective, typeof i5.NgJvxSelectionTemplateDirective, typeof i6.NgJvxDisabledOptionDirective, typeof i7.NgJvxGroupHeaderDirective]>;
|
|
25
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<NgJvxMultiselectModule>;
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-jvx-multiselect.module.d.ts","sourceRoot":"","sources":["../../../projects/ng-jvx-multiselect/src/lib/ng-jvx-multiselect.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuBA,qBA2Ba,sBAAsB;yCAAtB,sBAAsB;0CAAtB,sBAAsB;0CAAtB,sBAAsB;CAClC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class NgJvxMultiselectService {
|
|
5
|
+
private http;
|
|
6
|
+
constructor(http: HttpClient);
|
|
7
|
+
getList({ url, ignorePagination, currentPage, pageSize, requestType, requestHeaders, search, searchProp, data }: {
|
|
8
|
+
url: string;
|
|
9
|
+
ignorePagination: boolean;
|
|
10
|
+
currentPage: number;
|
|
11
|
+
pageSize: number;
|
|
12
|
+
requestType: 'get' | 'post';
|
|
13
|
+
requestHeaders: any;
|
|
14
|
+
search?: string;
|
|
15
|
+
searchProp?: string;
|
|
16
|
+
data: any;
|
|
17
|
+
}): Observable<any>;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgJvxMultiselectService, never>;
|
|
19
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<NgJvxMultiselectService>;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-jvx-multiselect.service.d.ts","sourceRoot":"","sources":["../../../projects/ng-jvx-multiselect/src/lib/ng-jvx-multiselect.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAChC,OAAO,EAAC,UAAU,EAAa,MAAM,sBAAsB,CAAC;;AAE5D,qBAGa,uBAAuB;IACtB,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAGpC,OAAO,CAAC,EACE,GAAG,EACH,gBAAwB,EACxB,WAAW,EACX,QAAQ,EACR,WAAmB,EACnB,cAAc,EACd,MAAM,EACN,UAAqB,EACrB,IAAI,EACL,EAAE;QACT,GAAG,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,OAAO,CAAC;QACvC,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,KAAK,GAAG,MAAM,CAAC;QAC5B,cAAc,EAAE,GAAG,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,GAAG,CAAA;KACV,GAAG,UAAU,CAAC,GAAG,CAAC;yCAvBR,uBAAuB;6CAAvB,uBAAuB;CA8CnC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DoCheck, OnInit } from '@angular/core';
|
|
2
|
+
import { MatListOption } from '@angular/material/list';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class NgJvxOptionComponent implements OnInit, DoCheck {
|
|
5
|
+
listOption: MatListOption;
|
|
6
|
+
value: any;
|
|
7
|
+
isSelected: boolean;
|
|
8
|
+
constructor();
|
|
9
|
+
ngOnInit(): void;
|
|
10
|
+
ngDoCheck(): void;
|
|
11
|
+
deselect(): void;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgJvxOptionComponent, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgJvxOptionComponent, "ng-jvx-option", never, { "value": "value"; }, {}, never, ["*"]>;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-jvx-option.component.d.ts","sourceRoot":"","sources":["../../../../projects/ng-jvx-multiselect/src/lib/ng-jvx-option/ng-jvx-option.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,OAAO,EAAqB,MAAM,EAAY,MAAM,eAAe,CAAC;AACvH,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;;AAErD,qBAMa,oBAAqB,YAAW,MAAM,EAAE,OAAO;IACjB,UAAU,EAAE,aAAa,CAAC;IAC1D,KAAK,EAAE,GAAG,CAAC;IACb,UAAU,UAAS;;IAK1B,QAAQ,IAAI,IAAI;IAIhB,SAAS,IAAI,IAAI;IAMjB,QAAQ,IAAI,IAAI;yCAlBL,oBAAoB;2CAApB,oBAAoB;CAqBhC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
import { ElementRef, NgZone } from '@angular/core';
|
|
9
|
+
import { _MatMenuBase, MatMenuDefaultOptions } from '@angular/material/menu';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
/** @docs-public MatMenu */
|
|
12
|
+
export declare class NgJvxPanelComponent extends _MatMenuBase {
|
|
13
|
+
constructor(elementRef: ElementRef<HTMLElement>, ngZone: NgZone, defaultOptions: MatMenuDefaultOptions);
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgJvxPanelComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgJvxPanelComponent, "ngJvxPanel", ["ngJvxPanel"], {}, {}, never, ["*"]>;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-jvx-panel.component.d.ts","sourceRoot":"","sources":["../../../../projects/ng-jvx-multiselect/src/lib/ng-jvx-panel/ng-jvx-panel.component.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAIL,UAAU,EAEV,MAAM,EAEP,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EAMZ,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;;AAYhC,2BAA2B;AAC3B,qBAsBa,mBAAoB,SAAQ,YAAY;gBACvC,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EACjB,cAAc,EAAE,qBAAqB;yCAFxE,mBAAmB;2CAAnB,mBAAmB;CAK/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-jvx-multiselect.d.ts","sourceRoot":"","sources":["../../projects/ng-jvx-multiselect/src/ng-jvx-multiselect.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,cAAc,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ng-jvx-multiselect",
|
|
3
|
+
"version": "1.1.28",
|
|
4
|
+
"description": "ng-jvx-multiselect is a select based on angular material. It handles both single and multiple selections and allows to retrieves the options via asynchronous calls.",
|
|
5
|
+
"exports": {
|
|
6
|
+
".": {
|
|
7
|
+
"sass": "./_index.scss",
|
|
8
|
+
"types": "./ng-jvx-multiselect.d.ts",
|
|
9
|
+
"esm2020": "./esm2020/ng-jvx-multiselect.mjs",
|
|
10
|
+
"es2020": "./fesm2020/ng-jvx-multiselect.mjs",
|
|
11
|
+
"es2015": "./fesm2015/ng-jvx-multiselect.mjs",
|
|
12
|
+
"node": "./fesm2015/ng-jvx-multiselect.mjs",
|
|
13
|
+
"default": "./fesm2020/ng-jvx-multiselect.mjs"
|
|
14
|
+
},
|
|
15
|
+
"./package.json": {
|
|
16
|
+
"default": "./package.json"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"peerDependencies": {
|
|
20
|
+
"@angular/common": "^13.3.11",
|
|
21
|
+
"@angular/core": "^13.3.11",
|
|
22
|
+
"@angular/material": "^13.3.9",
|
|
23
|
+
"ngx-scrollbar": "^9.0.2"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"tslib": "^2.0.0"
|
|
27
|
+
},
|
|
28
|
+
"umdModuleIds": {
|
|
29
|
+
"ngx-scrollbar": "ngx-scrollbar"
|
|
30
|
+
},
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "https://github.com/giovanni-venturelli/ng-jvx-multiselect"
|
|
34
|
+
},
|
|
35
|
+
"keywords": [
|
|
36
|
+
"multiselect",
|
|
37
|
+
"angular",
|
|
38
|
+
"material",
|
|
39
|
+
"async"
|
|
40
|
+
],
|
|
41
|
+
"module": "fesm2015/ng-jvx-multiselect.mjs",
|
|
42
|
+
"es2020": "fesm2020/ng-jvx-multiselect.mjs",
|
|
43
|
+
"esm2020": "esm2020/ng-jvx-multiselect.mjs",
|
|
44
|
+
"fesm2020": "fesm2020/ng-jvx-multiselect.mjs",
|
|
45
|
+
"fesm2015": "fesm2015/ng-jvx-multiselect.mjs",
|
|
46
|
+
"typings": "ng-jvx-multiselect.d.ts",
|
|
47
|
+
"sideEffects": false
|
|
48
|
+
}
|