ng-jvx-multiselect 20.0.4 → 20.0.5
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/fesm2022/ng-jvx-multiselect.mjs +52 -37
- package/fesm2022/ng-jvx-multiselect.mjs.map +1 -1
- package/index.d.ts +25 -20
- package/package.json +1 -1
|
@@ -520,7 +520,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
520
520
|
}] } });
|
|
521
521
|
|
|
522
522
|
class NgJvxMultiselectComponent {
|
|
523
|
-
static { this.nextId = 0; }
|
|
524
523
|
get invalid() {
|
|
525
524
|
return this.errorState;
|
|
526
525
|
}
|
|
@@ -604,6 +603,8 @@ class NgJvxMultiselectComponent {
|
|
|
604
603
|
this.selectionContainer = viewChild.required('selectionContainer');
|
|
605
604
|
this.menuFooter = viewChild('menuFooter', ...(ngDevMode ? [{ debugName: "menuFooter" }] : []));
|
|
606
605
|
this.multiContainer = viewChild.required('multiContainer');
|
|
606
|
+
this.sentinelElement = viewChild.required('sentinelElement');
|
|
607
|
+
this.optionContainer = viewChild.required('optionContainer');
|
|
607
608
|
this.optionsTemplate = null;
|
|
608
609
|
this.selectionTemplate = null;
|
|
609
610
|
this.groupHeaderTemplate = null;
|
|
@@ -717,6 +718,29 @@ class NgJvxMultiselectComponent {
|
|
|
717
718
|
selectionValue: new UntypedFormControl(this.selectionValue)
|
|
718
719
|
});
|
|
719
720
|
}
|
|
721
|
+
// ngOnChanges(changes: SimpleChanges): void {
|
|
722
|
+
// if (changes.options) {
|
|
723
|
+
// // this.setSelectableOptions(this.options).subscribe(noop);
|
|
724
|
+
// this.selectableOptions = [...this.options];
|
|
725
|
+
// }
|
|
726
|
+
// }
|
|
727
|
+
get selectionValue() {
|
|
728
|
+
return this.value.map((v) => {
|
|
729
|
+
return v[this.itemValue];
|
|
730
|
+
});
|
|
731
|
+
}
|
|
732
|
+
get empty() {
|
|
733
|
+
const n = this.parts.value;
|
|
734
|
+
return !n.area && !n.exchange && !n.subscriber && !this.isPlaceholderActive;
|
|
735
|
+
}
|
|
736
|
+
get stateChange$() {
|
|
737
|
+
return this.stateChanges.asObservable();
|
|
738
|
+
}
|
|
739
|
+
static { this.nextId = 0; }
|
|
740
|
+
// Metodo richiesto da ControlValueAccessor
|
|
741
|
+
setDisabledState(isDisabled) {
|
|
742
|
+
this.disabled = isDisabled;
|
|
743
|
+
}
|
|
720
744
|
// ngDoCheck(): void {
|
|
721
745
|
// this.isPlaceholderActiveSubject.next(this.placeholderContainer?.nativeElement?.hasChildNodes());
|
|
722
746
|
// }
|
|
@@ -828,21 +852,6 @@ class NgJvxMultiselectComponent {
|
|
|
828
852
|
this.changeDetectorRef.markForCheck();
|
|
829
853
|
})).subscribe(noop);
|
|
830
854
|
}
|
|
831
|
-
// ngOnChanges(changes: SimpleChanges): void {
|
|
832
|
-
// if (changes.options) {
|
|
833
|
-
// // this.setSelectableOptions(this.options).subscribe(noop);
|
|
834
|
-
// this.selectableOptions = [...this.options];
|
|
835
|
-
// }
|
|
836
|
-
// }
|
|
837
|
-
get selectionValue() {
|
|
838
|
-
return this.value.map((v) => {
|
|
839
|
-
return v[this.itemValue];
|
|
840
|
-
});
|
|
841
|
-
}
|
|
842
|
-
get empty() {
|
|
843
|
-
const n = this.parts.value;
|
|
844
|
-
return !n.area && !n.exchange && !n.subscriber && !this.isPlaceholderActive;
|
|
845
|
-
}
|
|
846
855
|
onCLickOnMenu(e) {
|
|
847
856
|
if (this.multi || this.closeOnClick === false) {
|
|
848
857
|
e.stopPropagation();
|
|
@@ -1002,8 +1011,11 @@ class NgJvxMultiselectComponent {
|
|
|
1002
1011
|
}));
|
|
1003
1012
|
}
|
|
1004
1013
|
onScrolled(e) {
|
|
1005
|
-
|
|
1006
|
-
|
|
1014
|
+
const sentinelElementPosition = this.sentinelElement().nativeElement.getBoundingClientRect().height
|
|
1015
|
+
+ this.sentinelElement().nativeElement.getBoundingClientRect().top;
|
|
1016
|
+
const containerPosition = this.optionContainer().nativeElement.getBoundingClientRect().height
|
|
1017
|
+
+ this.optionContainer().nativeElement.getBoundingClientRect().top;
|
|
1018
|
+
if ((sentinelElementPosition - 10) <= containerPosition && !this.isLoading()) {
|
|
1007
1019
|
this.scrollEnd.emit();
|
|
1008
1020
|
if (this.url && this.url.length > 0 && !this.ignorePagination && this.shouldLoadMore) {
|
|
1009
1021
|
this.getList().subscribe(noop);
|
|
@@ -1013,6 +1025,12 @@ class NgJvxMultiselectComponent {
|
|
|
1013
1025
|
onMenuOpened() {
|
|
1014
1026
|
this.jvxMultiselectOpened.emit();
|
|
1015
1027
|
}
|
|
1028
|
+
onSentinelVisible() {
|
|
1029
|
+
this.scrollEnd.emit();
|
|
1030
|
+
// if (this.url && this.url.length > 0 && !this.ignorePagination && this.shouldLoadMore && !this.isLoading()) {
|
|
1031
|
+
// this.getList().subscribe(noop);
|
|
1032
|
+
// }
|
|
1033
|
+
}
|
|
1016
1034
|
onMenuClosed() {
|
|
1017
1035
|
if ((!this.url || this.url.length === 0) && this.searchMode === 'client') {
|
|
1018
1036
|
this.searchValueSubject.next('');
|
|
@@ -1049,9 +1067,6 @@ class NgJvxMultiselectComponent {
|
|
|
1049
1067
|
// this.elementRef.nativeElement.querySelector('input').focus();
|
|
1050
1068
|
// }
|
|
1051
1069
|
}
|
|
1052
|
-
get stateChange$() {
|
|
1053
|
-
return this.stateChanges.asObservable();
|
|
1054
|
-
}
|
|
1055
1070
|
updateOrderedOptions(options) {
|
|
1056
1071
|
let obs = of(options);
|
|
1057
1072
|
if (this.groupBy) {
|
|
@@ -1113,13 +1128,13 @@ class NgJvxMultiselectComponent {
|
|
|
1113
1128
|
this.changeDetectorRef.markForCheck();
|
|
1114
1129
|
}
|
|
1115
1130
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: NgJvxMultiselectComponent, deps: [{ token: i1$2.UntypedFormBuilder }, { token: NgJvxMultiselectService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$2.NgControl, optional: true, self: true }, { token: i1$2.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1116
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.1", type: NgJvxMultiselectComponent, isStandalone: true, selector: "ng-jvx-multiselect", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: false, isRequired: false, transformFunction: null },
|
|
1131
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.1", type: NgJvxMultiselectComponent, isStandalone: true, selector: "ng-jvx-multiselect", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: false, isRequired: false, transformFunction: null }, multi: { classPropertyName: "multi", publicName: "multi", isSignal: false, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: false, isRequired: false, transformFunction: null }, requestType: { classPropertyName: "requestType", publicName: "requestType", isSignal: false, isRequired: false, transformFunction: null }, itemValue: { classPropertyName: "itemValue", publicName: "itemValue", isSignal: false, isRequired: false, transformFunction: null }, itemText: { classPropertyName: "itemText", publicName: "itemText", isSignal: false, isRequired: false, transformFunction: null }, ignorePagination: { classPropertyName: "ignorePagination", publicName: "ignorePagination", isSignal: false, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: false, isRequired: false, transformFunction: null }, closeOnClick: { classPropertyName: "closeOnClick", publicName: "closeOnClick", isSignal: false, isRequired: false, transformFunction: null }, hasErrors: { classPropertyName: "hasErrors", publicName: "hasErrors", isSignal: false, isRequired: false, transformFunction: null }, searchMode: { classPropertyName: "searchMode", publicName: "searchMode", isSignal: false, isRequired: false, transformFunction: null }, searchInput: { classPropertyName: "searchInput", publicName: "searchInput", isSignal: false, isRequired: false, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: false, isRequired: false, transformFunction: null }, listProp: { classPropertyName: "listProp", publicName: "listProp", isSignal: false, isRequired: false, transformFunction: null }, totalRowsProp: { classPropertyName: "totalRowsProp", publicName: "totalRowsProp", isSignal: false, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: false, isRequired: false, transformFunction: null }, searchProp: { classPropertyName: "searchProp", publicName: "searchProp", isSignal: false, isRequired: false, transformFunction: null }, closeButton: { classPropertyName: "closeButton", publicName: "closeButton", isSignal: false, isRequired: false, transformFunction: null }, mapper: { classPropertyName: "mapper", publicName: "mapper", isSignal: false, isRequired: false, transformFunction: null }, multiMapper: { classPropertyName: "multiMapper", publicName: "multiMapper", isSignal: false, isRequired: false, transformFunction: null }, searchMapper: { classPropertyName: "searchMapper", publicName: "searchMapper", isSignal: false, isRequired: false, transformFunction: null }, groupBy: { classPropertyName: "groupBy", publicName: "groupBy", isSignal: false, isRequired: false, transformFunction: null }, requestHeaders: { classPropertyName: "requestHeaders", publicName: "requestHeaders", isSignal: false, isRequired: false, transformFunction: null }, postPayload: { classPropertyName: "postPayload", publicName: "postPayload", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", jvxMultiselectOpen: "jvxMultiselectOpen", jvxMultiselectOpened: "jvxMultiselectOpened", jvxMultiselectClose: "jvxMultiselectClose", jvxMultiselectClosed: "jvxMultiselectClosed", scrollEnd: "scrollEnd" }, host: { properties: { "class.has-errors": "this.invalid", "class.floating": "this.shouldLabelFloat", "id": "this.id" } }, providers: [
|
|
1117
1132
|
// {
|
|
1118
1133
|
// provide: MatFormFieldControl,
|
|
1119
1134
|
// useExisting: forwardRef(() => NgJvxMultiselectComponent),
|
|
1120
1135
|
// multi: true,
|
|
1121
1136
|
// }
|
|
1122
|
-
], queries: [{ propertyName: "optionsTemplate", first: true, predicate: NgJvxOptionsTemplateDirective, descendants: true }, { propertyName: "selectionTemplate", first: true, predicate: NgJvxSelectionTemplateDirective, descendants: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: NgJvxGroupHeaderDirective, descendants: true }], viewQueries: [{ propertyName: "jvxMultiselect", first: true, predicate: ["jvxMultiselect"], descendants: true, isSignal: true }, { propertyName: "selectionContainer", first: true, predicate: ["selectionContainer"], descendants: true, isSignal: true }, { propertyName: "menuFooter", first: true, predicate: ["menuFooter"], descendants: true, isSignal: true }, { propertyName: "multiContainer", first: true, predicate: ["multiContainer"], descendants: true, isSignal: true }, { propertyName: "valueContainer", first: true, predicate: ["valueContainer"], descendants: true, static: true }, { propertyName: "trigger", first: true, predicate: MenuTriggerDirective, descendants: true, static: true }, { propertyName: "scrollbar", first: true, predicate: ["scrollbar"], descendants: true }, { propertyName: "placeholderContainer", first: true, predicate: ["placeholderContainer"], descendants: true }, { propertyName: "optionComp", predicate: NgJvxOptionComponent, descendants: true }], ngImport: i0, template: "\r\n<div class=\"ng-jvx-multiselect\" [class.disabled]=\"disabled\" [class.has-errors]=\"hasErrors\" #jvxMultiselect>\r\n <!-- START MENU -->\r\n <div [libMenuTriggerFor]=\"menuRef\" (onMenuOpen)=\"onMenuOpen()\" (menuOpened)=\"onMenuOpened()\"\r\n #trigger\r\n (onMenuClose)=\"onMenuClose()\" (menuClosed)=\"onMenuClosed()\"\r\n >\r\n <lib-panel #menuRef [class]=\"['jvx-multiselect-panel', panelClass].join(' ')\" [multi]=\"multi\" [formGroup]=\"form\"\r\n [yPosition]=\"yPosition()\">\r\n @if (closeButton) {\r\n <div class=\"closeMenuButton\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n <div style=\"display: flex; flex-direction: column\"\r\n [ngStyle]=\"{'overflow-y': 'hidden', 'width': listContainerSize().width, 'min-width.px': 112, 'max-height': '300px', 'height': listContainerSize().height}\">\r\n <div class=\"menu-list-container\"\r\n [style.flex]=\"'1 1 0'\"\r\n #menuLIstContainer\r\n >\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\r\n [ngStyle]=\"{height: searchInput && selectionContainer.clientHeight > 220 || selectionContainer.clientHeight > 300? 300 - (searchInput? 40 : 0) - menuFooter.offsetHeight + '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 <div #selection\r\n *ngIf=\"showList\"\r\n [ngStyle]=\"{'padding': 0, 'width': listContainerSize().width, 'min-width.px': 112}\"\r\n ngDefaultControl\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\r\n [ngTemplateOutlet]=\"groupHeaderTemplate? groupHeaderTemplate.template: defaultGroupHeaderTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: opt}\"></ng-container>\r\n\r\n <ng-jvx-option *ngFor=\"let option of opt.options\" [value]=\"option[itemValue]\"\r\n [isSelected]=\"isOptionSelected(option)\" (click)=\"clickOnOption(option)\">\r\n <!-- <ng-container [ngTemplateOutlet]=\"optionsTemplate\" [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>-->\r\n <div class=\"ng-jvx-option-wrapper\" style=\"min-height:48px\">\r\n <ng-container [ngTemplateOutlet]=\"optionsTemplate? optionsTemplate.template : defaultTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>\r\n </div>\r\n </ng-jvx-option>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!groupBy || ( typeof groupBy === 'string' && groupBy.length === 0)\">\r\n <ng-jvx-option *ngFor=\"let option of selectableOptions\" [value]=\"option[itemValue]\"\r\n [isSelected]=\"isOptionSelected(option)\" (click)=\"clickOnOption(option)\">\r\n <div class=\"ng-jvx-option-wrapper\" style=\"min-height:48px\">\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 </div>\r\n </ng-jvx-option>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n </div>\r\n\r\n </div>\r\n <div class=\"menu-footer\" #menuFooter>\r\n <ng-content select=\"[ng-jvx-footer]\"></ng-content>\r\n </div>\r\n </div>\r\n </lib-panel>\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 @if (value.length === 0) {\r\n <div class=\"ng-jvx-multiselect__placeholder\" #placeholderContainer>\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 <ng-container [ngTemplateOutlet]=\"selectionTemplate? selectionTemplate.template : defaultMultiSelectionTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: value}\"></ng-container>\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>\r\n </div>\r\n </div>\r\n @if (clearable && value.length > 0) {\r\n <div class=\"ng-jvx-multiselect__remove-button\" (click)=\"clear($event)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"#000000\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n <div class=\"ng-jvx-multiselect-arrow\">\r\n @if (!isLoading()) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"#000000\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z\"></path>\r\n </svg>\r\n } @else {\r\n <div class=\"lds-ring\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <!-- END INPUT -->\r\n</div>\r\n<ng-template #defaultTemplate let-option>\r\n <div style=\"min-height: 48px; height: 100%; display: flex; align-items: center\">\r\n <div style=\"max-width: 100%;\r\n padding-inline: .3rem;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\">{{ option[itemText] }}\r\n </div>\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 <div style=\"display: flex; gap: 0.3rem; flex-wrap: wrap;\">\r\n @for (val of value; track val[itemValue]) {\r\n <ng-jvx-multiselect-chip [value]=\"val\" class=\"ng-jvx-multiselect-chip\" [disabled]=\"this.disabled\" >\r\n {{ val[itemText] }}\r\n </ng-jvx-multiselect-chip>\r\n }\r\n </div>\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", styles: ["ng-jvx-multiselect{display:flex;align-items:center;width:100%}ng-jvx-multiselect .ng-jvx-multiselect{width:100%;display:flex;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container{width:100%;display:flex;cursor:pointer;position:relative;justify-content:space-between;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect__placeholder{height:100%;display:flex;align-items:center;position:absolute}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-value{flex:1 1 100%;max-width:calc(100% - 28px);display:flex;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect__remove-button{display:flex;height:100%;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow{width:24px;padding-right:4px;display:flex;align-items:center;height:24px}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow svg{transition:transform .3s ease-in-out}@keyframes lds-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring{display:inline-block;position:relative;width:24px;height:24px}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div{box-sizing:border-box;display:block;position:absolute;width:6px;height:16px;margin:4px;border:2px solid;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--jvx-multiselect-accent) transparent transparent transparent}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div:nth-child(1){animation-delay:-.45s}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div:nth-child(2){animation-delay:-.3s}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div:nth-child(3){animation-delay:-.15s}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container.is-open .ng-jvx-multiselect-arrow svg{transform:rotate(180deg)}ng-jvx-multiselect .ng-jvx-multiselect.disabled{pointer-events:none}ng-jvx-multiselect .ng-jvx-multiselect.disabled .ng-jvx-multiselect-arrow svg{opacity:.3}ng-jvx-multiselect .ng-jvx-multiselect.has-errors{color:red}ng-jvx-multiselect .ng-jvx-multiselect.has-errors .ng-jvx-multiselect-value.single-value-container{color:red}ng-jvx-multiselect .ng-jvx-multiselect.has-errors .ng-jvx-multiselect-value.multi-value-container{width:100%}ng-jvx-multiselect .ng-jvx-multiselect.has-errors .ng-jvx-multiselect-arrow svg{color:red}.menu-list-container{flex:1 1 0;max-height:300px;display:flex;flex-direction:column}.menu-footer{overflow:hidden}.cdk-overlay-pane .closeMenuButton{height:22px;width:22px;background-color:var(--jvx-multiselect-primary);position:absolute;top:-11px;right:11px;border-radius:100%;cursor:pointer;color:#fff;z-index:10}.cdk-overlay-pane .closeMenuButton svg{fill:var(--jvx-multiselect-on-primary);font-size:15px;height:100%;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: NgJvxMultisectChipComponent, selector: "ng-jvx-multiselect-chip", inputs: ["value", "disabled"], outputs: ["removed"] }, { kind: "component", type: NgScrollbar, selector: "ng-scrollbar", inputs: ["disabled", "sensorDisabled", "pointerEventsDisabled", "viewportPropagateMouseMove", "autoHeightDisabled", "autoWidthDisabled", "viewClass", "trackClass", "thumbClass", "minThumbSize", "trackClickScrollDuration", "pointerEventsMethod", "track", "visibility", "appearance", "position", "sensorDebounce", "scrollAuditTime"], outputs: ["updated"], exportAs: ["ngScrollbar"] }, { kind: "component", type: PanelComponent, selector: "lib-panel", inputs: ["trigger", "yPosition", "multi"], outputs: ["onClose", "onClosed", "onOpened"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MenuTriggerDirective, selector: "[lib-menu-trigger-for], [libMenuTriggerFor]", inputs: ["libMenuTriggerFor"], outputs: ["closed", "onMenuOpen", "menuOpened", "onMenuClose", "menuClosed"] }, { kind: "component", type: NgJvxOptionComponent, selector: "ng-jvx-option", inputs: ["value", "disabled", "isSelected"], outputs: ["clickOnOption"] }, { kind: "directive", type: NgJvxFocusDirective, selector: "[ngJvxFocus]", inputs: ["ngJvxFocus"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1137
|
+
], queries: [{ propertyName: "optionsTemplate", first: true, predicate: NgJvxOptionsTemplateDirective, descendants: true }, { propertyName: "selectionTemplate", first: true, predicate: NgJvxSelectionTemplateDirective, descendants: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: NgJvxGroupHeaderDirective, descendants: true }], viewQueries: [{ propertyName: "jvxMultiselect", first: true, predicate: ["jvxMultiselect"], descendants: true, isSignal: true }, { propertyName: "selectionContainer", first: true, predicate: ["selectionContainer"], descendants: true, isSignal: true }, { propertyName: "menuFooter", first: true, predicate: ["menuFooter"], descendants: true, isSignal: true }, { propertyName: "multiContainer", first: true, predicate: ["multiContainer"], descendants: true, isSignal: true }, { propertyName: "sentinelElement", first: true, predicate: ["sentinelElement"], descendants: true, isSignal: true }, { propertyName: "optionContainer", first: true, predicate: ["optionContainer"], descendants: true, isSignal: true }, { propertyName: "valueContainer", first: true, predicate: ["valueContainer"], descendants: true, static: true }, { propertyName: "trigger", first: true, predicate: MenuTriggerDirective, descendants: true, static: true }, { propertyName: "scrollbar", first: true, predicate: ["scrollbar"], descendants: true }, { propertyName: "placeholderContainer", first: true, predicate: ["placeholderContainer"], descendants: true }, { propertyName: "optionComp", predicate: NgJvxOptionComponent, descendants: true }], ngImport: i0, template: "\r\n<div class=\"ng-jvx-multiselect\" [class.disabled]=\"disabled\" [class.has-errors]=\"hasErrors\" #jvxMultiselect>\r\n <!-- START MENU -->\r\n <div [libMenuTriggerFor]=\"menuRef\" (onMenuOpen)=\"onMenuOpen()\" (menuOpened)=\"onMenuOpened()\"\r\n #trigger\r\n (onMenuClose)=\"onMenuClose()\" (menuClosed)=\"onMenuClosed()\"\r\n >\r\n <lib-panel #menuRef [class]=\"['jvx-multiselect-panel', panelClass].join(' ')\" [multi]=\"multi\" [formGroup]=\"form\"\r\n [yPosition]=\"yPosition()\">\r\n @if (closeButton) {\r\n <div class=\"closeMenuButton\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n <div style=\"display: flex; flex-direction: column\"\r\n [ngStyle]=\"{'overflow-y': 'hidden', 'width': listContainerSize().width, 'min-width.px': 112, 'max-height': '300px', 'height': listContainerSize().height}\">\r\n <div class=\"menu-list-container\"\r\n [style.flex]=\"'1 1 0'\"\r\n #menuListContainer\r\n >\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\r\n #optionContainer\r\n [ngStyle]=\"{height: searchInput && selectionContainer.clientHeight > 220 || selectionContainer.clientHeight > 300? 300 - (searchInput? 40 : 0) - menuFooter.children[0].clientHeight + '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 <div #selection\r\n *ngIf=\"showList\"\r\n [ngStyle]=\"{'padding': 0, 'width': listContainerSize().width, 'min-width.px': 112}\"\r\n ngDefaultControl\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\r\n [ngTemplateOutlet]=\"groupHeaderTemplate? groupHeaderTemplate.template: defaultGroupHeaderTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: opt}\"></ng-container>\r\n\r\n <ng-jvx-option *ngFor=\"let option of opt.options\" [value]=\"option[itemValue]\"\r\n [isSelected]=\"isOptionSelected(option)\" (click)=\"clickOnOption(option)\">\r\n <!-- <ng-container [ngTemplateOutlet]=\"optionsTemplate\" [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>-->\r\n <div class=\"ng-jvx-option-wrapper\" style=\"min-height:48px\">\r\n <ng-container [ngTemplateOutlet]=\"optionsTemplate? optionsTemplate.template : defaultTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>\r\n </div>\r\n </ng-jvx-option>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!groupBy || ( typeof groupBy === 'string' && groupBy.length === 0)\">\r\n <ng-jvx-option *ngFor=\"let option of selectableOptions\" [value]=\"option[itemValue]\"\r\n [isSelected]=\"isOptionSelected(option)\" (click)=\"clickOnOption(option)\">\r\n <div class=\"ng-jvx-option-wrapper\" style=\"min-height:48px\">\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 </div>\r\n </ng-jvx-option>\r\n </ng-container>\r\n <div #sentinelElement [style]=\"'pointer-events: none; position: absolute; height: 20px; top:'+ (selectionContainer.clientHeight - 20) + 'px' \">zum zum</div>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n </div>\r\n\r\n </div>\r\n <div class=\"menu-footer\" #menuFooter>\r\n <ng-content select=\"[ng-jvx-footer]\"></ng-content>\r\n </div>\r\n </div>\r\n </lib-panel>\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 @if (value.length === 0) {\r\n <div class=\"ng-jvx-multiselect__placeholder\" #placeholderContainer>\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 <ng-container [ngTemplateOutlet]=\"selectionTemplate? selectionTemplate.template : defaultMultiSelectionTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: value}\"></ng-container>\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>\r\n </div>\r\n </div>\r\n @if (clearable && value.length > 0) {\r\n <div class=\"ng-jvx-multiselect__remove-button\" (click)=\"clear($event)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"#000000\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n <div class=\"ng-jvx-multiselect-arrow\">\r\n @if (!isLoading()) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"#000000\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z\"></path>\r\n </svg>\r\n } @else {\r\n <div class=\"lds-ring\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <!-- END INPUT -->\r\n</div>\r\n<ng-template #defaultTemplate let-option>\r\n <div style=\"min-height: 48px; height: 100%; display: flex; align-items: center\">\r\n <div style=\"max-width: 100%;\r\n padding-inline: .3rem;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\">{{ option[itemText] }}\r\n </div>\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 <div style=\"display: flex; gap: 0.3rem; flex-wrap: wrap;\">\r\n @for (val of value; track val[itemValue]) {\r\n <ng-jvx-multiselect-chip [value]=\"val\" class=\"ng-jvx-multiselect-chip\" [disabled]=\"this.disabled\" >\r\n {{ val[itemText] }}\r\n </ng-jvx-multiselect-chip>\r\n }\r\n </div>\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", styles: ["ng-jvx-multiselect{display:flex;align-items:center;width:100%}ng-jvx-multiselect .ng-jvx-multiselect{width:100%;display:flex;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container{width:100%;display:flex;cursor:pointer;position:relative;justify-content:space-between;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect__placeholder{height:100%;display:flex;align-items:center;position:absolute}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-value{flex:1 1 100%;max-width:calc(100% - 28px);display:flex;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect__remove-button{display:flex;height:100%;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow{width:24px;padding-right:4px;display:flex;align-items:center;height:24px}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow svg{transition:transform .3s ease-in-out}@keyframes lds-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring{display:inline-block;position:relative;width:24px;height:24px}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div{box-sizing:border-box;display:block;position:absolute;width:6px;height:16px;margin:4px;border:2px solid;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--jvx-multiselect-accent) transparent transparent transparent}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div:nth-child(1){animation-delay:-.45s}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div:nth-child(2){animation-delay:-.3s}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div:nth-child(3){animation-delay:-.15s}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container.is-open .ng-jvx-multiselect-arrow svg{transform:rotate(180deg)}ng-jvx-multiselect .ng-jvx-multiselect.disabled{pointer-events:none}ng-jvx-multiselect .ng-jvx-multiselect.disabled .ng-jvx-multiselect-arrow svg{opacity:.3}ng-jvx-multiselect .ng-jvx-multiselect.has-errors{color:red}ng-jvx-multiselect .ng-jvx-multiselect.has-errors .ng-jvx-multiselect-value.single-value-container{color:red}ng-jvx-multiselect .ng-jvx-multiselect.has-errors .ng-jvx-multiselect-value.multi-value-container{width:100%}ng-jvx-multiselect .ng-jvx-multiselect.has-errors .ng-jvx-multiselect-arrow svg{color:red}.menu-list-container{flex:1 1 0;max-height:300px;display:flex;flex-direction:column}.menu-footer{overflow:hidden}.cdk-overlay-pane .closeMenuButton{height:22px;width:22px;background-color:var(--jvx-multiselect-primary);position:absolute;top:-11px;right:11px;border-radius:100%;cursor:pointer;color:#fff;z-index:10}.cdk-overlay-pane .closeMenuButton svg{fill:var(--jvx-multiselect-on-primary);font-size:15px;height:100%;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: NgJvxMultisectChipComponent, selector: "ng-jvx-multiselect-chip", inputs: ["value", "disabled"], outputs: ["removed"] }, { kind: "component", type: NgScrollbar, selector: "ng-scrollbar", inputs: ["disabled", "sensorDisabled", "pointerEventsDisabled", "viewportPropagateMouseMove", "autoHeightDisabled", "autoWidthDisabled", "viewClass", "trackClass", "thumbClass", "minThumbSize", "trackClickScrollDuration", "pointerEventsMethod", "track", "visibility", "appearance", "position", "sensorDebounce", "scrollAuditTime"], outputs: ["updated"], exportAs: ["ngScrollbar"] }, { kind: "component", type: PanelComponent, selector: "lib-panel", inputs: ["trigger", "yPosition", "multi"], outputs: ["onClose", "onClosed", "onOpened"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MenuTriggerDirective, selector: "[lib-menu-trigger-for], [libMenuTriggerFor]", inputs: ["libMenuTriggerFor"], outputs: ["closed", "onMenuOpen", "menuOpened", "onMenuClose", "menuClosed"] }, { kind: "component", type: NgJvxOptionComponent, selector: "ng-jvx-option", inputs: ["value", "disabled", "isSelected"], outputs: ["clickOnOption"] }, { kind: "directive", type: NgJvxFocusDirective, selector: "[ngJvxFocus]", inputs: ["ngJvxFocus"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1123
1138
|
}
|
|
1124
1139
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: NgJvxMultiselectComponent, decorators: [{
|
|
1125
1140
|
type: Component,
|
|
@@ -1139,19 +1154,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
1139
1154
|
NgJvxOptionComponent,
|
|
1140
1155
|
NgJvxFocusDirective,
|
|
1141
1156
|
FormsModule
|
|
1142
|
-
], standalone: true, template: "\r\n<div class=\"ng-jvx-multiselect\" [class.disabled]=\"disabled\" [class.has-errors]=\"hasErrors\" #jvxMultiselect>\r\n <!-- START MENU -->\r\n <div [libMenuTriggerFor]=\"menuRef\" (onMenuOpen)=\"onMenuOpen()\" (menuOpened)=\"onMenuOpened()\"\r\n #trigger\r\n (onMenuClose)=\"onMenuClose()\" (menuClosed)=\"onMenuClosed()\"\r\n >\r\n <lib-panel #menuRef [class]=\"['jvx-multiselect-panel', panelClass].join(' ')\" [multi]=\"multi\" [formGroup]=\"form\"\r\n [yPosition]=\"yPosition()\">\r\n @if (closeButton) {\r\n <div class=\"closeMenuButton\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n <div style=\"display: flex; flex-direction: column\"\r\n [ngStyle]=\"{'overflow-y': 'hidden', 'width': listContainerSize().width, 'min-width.px': 112, 'max-height': '300px', 'height': listContainerSize().height}\">\r\n <div class=\"menu-list-container\"\r\n [style.flex]=\"'1 1 0'\"\r\n #menuLIstContainer\r\n >\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\r\n [ngStyle]=\"{height: searchInput && selectionContainer.clientHeight > 220 || selectionContainer.clientHeight > 300? 300 - (searchInput? 40 : 0) - menuFooter.offsetHeight + '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 <div #selection\r\n *ngIf=\"showList\"\r\n [ngStyle]=\"{'padding': 0, 'width': listContainerSize().width, 'min-width.px': 112}\"\r\n ngDefaultControl\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\r\n [ngTemplateOutlet]=\"groupHeaderTemplate? groupHeaderTemplate.template: defaultGroupHeaderTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: opt}\"></ng-container>\r\n\r\n <ng-jvx-option *ngFor=\"let option of opt.options\" [value]=\"option[itemValue]\"\r\n [isSelected]=\"isOptionSelected(option)\" (click)=\"clickOnOption(option)\">\r\n <!-- <ng-container [ngTemplateOutlet]=\"optionsTemplate\" [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>-->\r\n <div class=\"ng-jvx-option-wrapper\" style=\"min-height:48px\">\r\n <ng-container [ngTemplateOutlet]=\"optionsTemplate? optionsTemplate.template : defaultTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>\r\n </div>\r\n </ng-jvx-option>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!groupBy || ( typeof groupBy === 'string' && groupBy.length === 0)\">\r\n <ng-jvx-option *ngFor=\"let option of selectableOptions\" [value]=\"option[itemValue]\"\r\n [isSelected]=\"isOptionSelected(option)\" (click)=\"clickOnOption(option)\">\r\n <div class=\"ng-jvx-option-wrapper\" style=\"min-height:48px\">\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 </div>\r\n </ng-jvx-option>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n </div>\r\n\r\n </div>\r\n <div class=\"menu-footer\" #menuFooter>\r\n <ng-content select=\"[ng-jvx-footer]\"></ng-content>\r\n </div>\r\n </div>\r\n </lib-panel>\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 @if (value.length === 0) {\r\n <div class=\"ng-jvx-multiselect__placeholder\" #placeholderContainer>\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 <ng-container [ngTemplateOutlet]=\"selectionTemplate? selectionTemplate.template : defaultMultiSelectionTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: value}\"></ng-container>\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>\r\n </div>\r\n </div>\r\n @if (clearable && value.length > 0) {\r\n <div class=\"ng-jvx-multiselect__remove-button\" (click)=\"clear($event)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"#000000\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n <div class=\"ng-jvx-multiselect-arrow\">\r\n @if (!isLoading()) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"#000000\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z\"></path>\r\n </svg>\r\n } @else {\r\n <div class=\"lds-ring\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <!-- END INPUT -->\r\n</div>\r\n<ng-template #defaultTemplate let-option>\r\n <div style=\"min-height: 48px; height: 100%; display: flex; align-items: center\">\r\n <div style=\"max-width: 100%;\r\n padding-inline: .3rem;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\">{{ option[itemText] }}\r\n </div>\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 <div style=\"display: flex; gap: 0.3rem; flex-wrap: wrap;\">\r\n @for (val of value; track val[itemValue]) {\r\n <ng-jvx-multiselect-chip [value]=\"val\" class=\"ng-jvx-multiselect-chip\" [disabled]=\"this.disabled\" >\r\n {{ val[itemText] }}\r\n </ng-jvx-multiselect-chip>\r\n }\r\n </div>\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", styles: ["ng-jvx-multiselect{display:flex;align-items:center;width:100%}ng-jvx-multiselect .ng-jvx-multiselect{width:100%;display:flex;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container{width:100%;display:flex;cursor:pointer;position:relative;justify-content:space-between;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect__placeholder{height:100%;display:flex;align-items:center;position:absolute}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-value{flex:1 1 100%;max-width:calc(100% - 28px);display:flex;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect__remove-button{display:flex;height:100%;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow{width:24px;padding-right:4px;display:flex;align-items:center;height:24px}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow svg{transition:transform .3s ease-in-out}@keyframes lds-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring{display:inline-block;position:relative;width:24px;height:24px}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div{box-sizing:border-box;display:block;position:absolute;width:6px;height:16px;margin:4px;border:2px solid;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--jvx-multiselect-accent) transparent transparent transparent}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div:nth-child(1){animation-delay:-.45s}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div:nth-child(2){animation-delay:-.3s}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div:nth-child(3){animation-delay:-.15s}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container.is-open .ng-jvx-multiselect-arrow svg{transform:rotate(180deg)}ng-jvx-multiselect .ng-jvx-multiselect.disabled{pointer-events:none}ng-jvx-multiselect .ng-jvx-multiselect.disabled .ng-jvx-multiselect-arrow svg{opacity:.3}ng-jvx-multiselect .ng-jvx-multiselect.has-errors{color:red}ng-jvx-multiselect .ng-jvx-multiselect.has-errors .ng-jvx-multiselect-value.single-value-container{color:red}ng-jvx-multiselect .ng-jvx-multiselect.has-errors .ng-jvx-multiselect-value.multi-value-container{width:100%}ng-jvx-multiselect .ng-jvx-multiselect.has-errors .ng-jvx-multiselect-arrow svg{color:red}.menu-list-container{flex:1 1 0;max-height:300px;display:flex;flex-direction:column}.menu-footer{overflow:hidden}.cdk-overlay-pane .closeMenuButton{height:22px;width:22px;background-color:var(--jvx-multiselect-primary);position:absolute;top:-11px;right:11px;border-radius:100%;cursor:pointer;color:#fff;z-index:10}.cdk-overlay-pane .closeMenuButton svg{fill:var(--jvx-multiselect-on-primary);font-size:15px;height:100%;width:100%}\n"] }]
|
|
1157
|
+
], standalone: true, template: "\r\n<div class=\"ng-jvx-multiselect\" [class.disabled]=\"disabled\" [class.has-errors]=\"hasErrors\" #jvxMultiselect>\r\n <!-- START MENU -->\r\n <div [libMenuTriggerFor]=\"menuRef\" (onMenuOpen)=\"onMenuOpen()\" (menuOpened)=\"onMenuOpened()\"\r\n #trigger\r\n (onMenuClose)=\"onMenuClose()\" (menuClosed)=\"onMenuClosed()\"\r\n >\r\n <lib-panel #menuRef [class]=\"['jvx-multiselect-panel', panelClass].join(' ')\" [multi]=\"multi\" [formGroup]=\"form\"\r\n [yPosition]=\"yPosition()\">\r\n @if (closeButton) {\r\n <div class=\"closeMenuButton\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n <div style=\"display: flex; flex-direction: column\"\r\n [ngStyle]=\"{'overflow-y': 'hidden', 'width': listContainerSize().width, 'min-width.px': 112, 'max-height': '300px', 'height': listContainerSize().height}\">\r\n <div class=\"menu-list-container\"\r\n [style.flex]=\"'1 1 0'\"\r\n #menuListContainer\r\n >\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\r\n #optionContainer\r\n [ngStyle]=\"{height: searchInput && selectionContainer.clientHeight > 220 || selectionContainer.clientHeight > 300? 300 - (searchInput? 40 : 0) - menuFooter.children[0].clientHeight + '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 <div #selection\r\n *ngIf=\"showList\"\r\n [ngStyle]=\"{'padding': 0, 'width': listContainerSize().width, 'min-width.px': 112}\"\r\n ngDefaultControl\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\r\n [ngTemplateOutlet]=\"groupHeaderTemplate? groupHeaderTemplate.template: defaultGroupHeaderTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: opt}\"></ng-container>\r\n\r\n <ng-jvx-option *ngFor=\"let option of opt.options\" [value]=\"option[itemValue]\"\r\n [isSelected]=\"isOptionSelected(option)\" (click)=\"clickOnOption(option)\">\r\n <!-- <ng-container [ngTemplateOutlet]=\"optionsTemplate\" [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>-->\r\n <div class=\"ng-jvx-option-wrapper\" style=\"min-height:48px\">\r\n <ng-container [ngTemplateOutlet]=\"optionsTemplate? optionsTemplate.template : defaultTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>\r\n </div>\r\n </ng-jvx-option>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!groupBy || ( typeof groupBy === 'string' && groupBy.length === 0)\">\r\n <ng-jvx-option *ngFor=\"let option of selectableOptions\" [value]=\"option[itemValue]\"\r\n [isSelected]=\"isOptionSelected(option)\" (click)=\"clickOnOption(option)\">\r\n <div class=\"ng-jvx-option-wrapper\" style=\"min-height:48px\">\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 </div>\r\n </ng-jvx-option>\r\n </ng-container>\r\n <div #sentinelElement [style]=\"'pointer-events: none; position: absolute; height: 20px; top:'+ (selectionContainer.clientHeight - 20) + 'px' \">zum zum</div>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n </div>\r\n\r\n </div>\r\n <div class=\"menu-footer\" #menuFooter>\r\n <ng-content select=\"[ng-jvx-footer]\"></ng-content>\r\n </div>\r\n </div>\r\n </lib-panel>\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 @if (value.length === 0) {\r\n <div class=\"ng-jvx-multiselect__placeholder\" #placeholderContainer>\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 <ng-container [ngTemplateOutlet]=\"selectionTemplate? selectionTemplate.template : defaultMultiSelectionTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: value}\"></ng-container>\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>\r\n </div>\r\n </div>\r\n @if (clearable && value.length > 0) {\r\n <div class=\"ng-jvx-multiselect__remove-button\" (click)=\"clear($event)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"#000000\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n <div class=\"ng-jvx-multiselect-arrow\">\r\n @if (!isLoading()) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"#000000\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z\"></path>\r\n </svg>\r\n } @else {\r\n <div class=\"lds-ring\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <!-- END INPUT -->\r\n</div>\r\n<ng-template #defaultTemplate let-option>\r\n <div style=\"min-height: 48px; height: 100%; display: flex; align-items: center\">\r\n <div style=\"max-width: 100%;\r\n padding-inline: .3rem;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\">{{ option[itemText] }}\r\n </div>\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 <div style=\"display: flex; gap: 0.3rem; flex-wrap: wrap;\">\r\n @for (val of value; track val[itemValue]) {\r\n <ng-jvx-multiselect-chip [value]=\"val\" class=\"ng-jvx-multiselect-chip\" [disabled]=\"this.disabled\" >\r\n {{ val[itemText] }}\r\n </ng-jvx-multiselect-chip>\r\n }\r\n </div>\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", styles: ["ng-jvx-multiselect{display:flex;align-items:center;width:100%}ng-jvx-multiselect .ng-jvx-multiselect{width:100%;display:flex;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container{width:100%;display:flex;cursor:pointer;position:relative;justify-content:space-between;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect__placeholder{height:100%;display:flex;align-items:center;position:absolute}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-value{flex:1 1 100%;max-width:calc(100% - 28px);display:flex;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect__remove-button{display:flex;height:100%;align-items:center}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow{width:24px;padding-right:4px;display:flex;align-items:center;height:24px}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow svg{transition:transform .3s ease-in-out}@keyframes lds-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring{display:inline-block;position:relative;width:24px;height:24px}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div{box-sizing:border-box;display:block;position:absolute;width:6px;height:16px;margin:4px;border:2px solid;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--jvx-multiselect-accent) transparent transparent transparent}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div:nth-child(1){animation-delay:-.45s}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div:nth-child(2){animation-delay:-.3s}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container .ng-jvx-multiselect-arrow .lds-ring div:nth-child(3){animation-delay:-.15s}ng-jvx-multiselect .ng-jvx-multiselect .ng-jvx-multiselect-value-container.is-open .ng-jvx-multiselect-arrow svg{transform:rotate(180deg)}ng-jvx-multiselect .ng-jvx-multiselect.disabled{pointer-events:none}ng-jvx-multiselect .ng-jvx-multiselect.disabled .ng-jvx-multiselect-arrow svg{opacity:.3}ng-jvx-multiselect .ng-jvx-multiselect.has-errors{color:red}ng-jvx-multiselect .ng-jvx-multiselect.has-errors .ng-jvx-multiselect-value.single-value-container{color:red}ng-jvx-multiselect .ng-jvx-multiselect.has-errors .ng-jvx-multiselect-value.multi-value-container{width:100%}ng-jvx-multiselect .ng-jvx-multiselect.has-errors .ng-jvx-multiselect-arrow svg{color:red}.menu-list-container{flex:1 1 0;max-height:300px;display:flex;flex-direction:column}.menu-footer{overflow:hidden}.cdk-overlay-pane .closeMenuButton{height:22px;width:22px;background-color:var(--jvx-multiselect-primary);position:absolute;top:-11px;right:11px;border-radius:100%;cursor:pointer;color:#fff;z-index:10}.cdk-overlay-pane .closeMenuButton svg{fill:var(--jvx-multiselect-on-primary);font-size:15px;height:100%;width:100%}\n"] }]
|
|
1143
1158
|
}], ctorParameters: () => [{ type: i1$2.UntypedFormBuilder }, { type: NgJvxMultiselectService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$2.NgControl, decorators: [{
|
|
1144
1159
|
type: Optional
|
|
1145
1160
|
}, {
|
|
1146
1161
|
type: Self
|
|
1147
|
-
}] }, { type: i1$2.UntypedFormBuilder }], propDecorators: {
|
|
1148
|
-
type: HostBinding
|
|
1149
|
-
}], invalid: [{
|
|
1162
|
+
}] }, { type: i1$2.UntypedFormBuilder }], propDecorators: { invalid: [{
|
|
1150
1163
|
type: HostBinding,
|
|
1151
1164
|
args: ['class.has-errors']
|
|
1152
1165
|
}], shouldLabelFloat: [{
|
|
1153
1166
|
type: HostBinding,
|
|
1154
1167
|
args: ['class.floating']
|
|
1168
|
+
}], options: [{
|
|
1169
|
+
type: Input
|
|
1170
|
+
}], value: [{
|
|
1171
|
+
type: Input
|
|
1172
|
+
}], required: [{
|
|
1173
|
+
type: Input
|
|
1174
|
+
}], disabled: [{
|
|
1175
|
+
type: Input
|
|
1176
|
+
}], pageSize: [{
|
|
1177
|
+
type: Input
|
|
1178
|
+
}], id: [{
|
|
1179
|
+
type: HostBinding
|
|
1155
1180
|
}], valueContainer: [{
|
|
1156
1181
|
type: ViewChild,
|
|
1157
1182
|
args: ['valueContainer', { static: true }]
|
|
@@ -1176,8 +1201,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
1176
1201
|
}], groupHeaderTemplate: [{
|
|
1177
1202
|
type: ContentChild,
|
|
1178
1203
|
args: [NgJvxGroupHeaderDirective]
|
|
1179
|
-
}], options: [{
|
|
1180
|
-
type: Input
|
|
1181
1204
|
}], multi: [{
|
|
1182
1205
|
type: Input
|
|
1183
1206
|
}], url: [{
|
|
@@ -1220,16 +1243,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
1220
1243
|
type: Input
|
|
1221
1244
|
}], groupBy: [{
|
|
1222
1245
|
type: Input
|
|
1223
|
-
}], value: [{
|
|
1224
|
-
type: Input
|
|
1225
1246
|
}], requestHeaders: [{
|
|
1226
1247
|
type: Input
|
|
1227
|
-
}], required: [{
|
|
1228
|
-
type: Input
|
|
1229
|
-
}], disabled: [{
|
|
1230
|
-
type: Input
|
|
1231
|
-
}], pageSize: [{
|
|
1232
|
-
type: Input
|
|
1233
1248
|
}], valueChange: [{
|
|
1234
1249
|
type: Output
|
|
1235
1250
|
}], jvxMultiselectOpen: [{
|
|
@@ -1 +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/utils.ts","../../../projects/ng-jvx-multiselect/src/lib/ng-jvx-multiselect.service.ts","../../../projects/ng-jvx-multiselect/src/lib/panel/menu-trigger/menu-trigger.directive.ts","../../../projects/ng-jvx-multiselect/src/lib/chiplist/chip/chip.component.ts","../../../projects/ng-jvx-multiselect/src/lib/chiplist/chip/chip.component.html","../../../projects/ng-jvx-multiselect/src/lib/panel/panel.component.ts","../../../projects/ng-jvx-multiselect/src/lib/panel/panel.component.html","../../../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-multiselect.module.ts","../../../projects/ng-jvx-multiselect/src/public-api.ts","../../../projects/ng-jvx-multiselect/src/ng-jvx-multiselect.ts"],"sourcesContent":["import {Component, DoCheck, EventEmitter, input, Input, OnInit, Output, ViewChild, ViewEncapsulation} from '@angular/core';\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 encapsulation: ViewEncapsulation.None\r\n})\r\nexport class NgJvxOptionComponent {\r\n @Output() clickOnOption = new EventEmitter<any>();\r\n value = input<any>();\r\n disabled = input<boolean>(false);\r\n isSelected = input<boolean>(false);\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","<div class=\"option ng-jvx-option\" [class.ng-jvx-single-selected-option]=\" isSelected()\" #listOption\r\n(click)=\"clickOnOption.emit()\">\r\n <div class=\"option-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"list-option-background\"></div>\r\n</div>\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 private restore = 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 fromEvent(this.el.nativeElement, 'click').pipe(takeUntil(this.restore), takeUntil(this.unsubs)).subscribe((e: MouseEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n });\r\n } else {\r\n this.el.nativeElement.style.opacity = this.originalOpacity;\r\n this.restore.next();\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 }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubs.next();\r\n this.unsubs.complete();\r\n }\r\n}\r\n","import { HttpContext, HttpContextToken } from '@angular/common/http';\r\n\r\nexport const JVXMULTISELECT = new HttpContextToken<boolean>(() => false);\r\nexport const setJvxCall = (): any => new HttpContext().set(JVXMULTISELECT, true);\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs';\r\nimport {HttpClient, HttpParams} from '@angular/common/http';\r\nimport {setJvxCall} from './utils';\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 if (requestType === 'get') {\r\n const options = {\r\n mode: 'no-cors' as RequestMode, // cors\r\n headers: requestHeaders,\r\n context: setJvxCall(),\r\n // withCredentials: true,\r\n // credentials: 'same-origin', // cache: 'default',\r\n params\r\n };\r\n return this.http.get(url, options);\r\n } else {\r\n const options = {\r\n mode: 'no-cors' as RequestMode, // cors\r\n headers: requestHeaders,\r\n context: setJvxCall(),\r\n // withCredentials: true,\r\n // credentials: 'same-origin', // cache: 'default',\r\n };\r\n const postParams: any = {};\r\n\r\n // Aggiungi search solo se presente\r\n if (search && search.length > 0) {\r\n postParams[searchProp] = search;\r\n }\r\n\r\n // Gestisci paginazione come nella GET\r\n if (!ignorePagination) {\r\n postParams.paging = {\r\n page: currentPage.toString(),\r\n size: pageSize.toString(),\r\n sort: '',\r\n ignorePagination: false\r\n };\r\n } else {\r\n postParams.paging = {\r\n sort: '',\r\n ignorePagination: true\r\n };\r\n }\r\n const payload = {\r\n ...postParams,\r\n ...data\r\n };\r\n return this.http.post(url, payload, options);\r\n }\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n} from '@angular/core';\r\nimport {Overlay} from '@angular/cdk/overlay';\r\nimport {fromEvent, noop, Subject, takeUntil, tap} from 'rxjs';\r\nimport {PanelComponent} from '../panel.component';\r\n\r\n@Directive({\r\n selector: '[lib-menu-trigger-for], [libMenuTriggerFor]'\r\n})\r\nexport class MenuTriggerDirective implements OnDestroy, AfterViewInit {\r\n private unsubscribe = new Subject<void>();\r\n\r\n @Output() closed = new EventEmitter<void>();\r\n @Output() onMenuOpen = new EventEmitter<void>();\r\n @Output() menuOpened = new EventEmitter<void>();\r\n @Output() onMenuClose = new EventEmitter<void>();\r\n @Output() menuClosed = new EventEmitter<void>();\r\n\r\n /** References the menu instance that the trigger is associated with. */\r\n get menu(): PanelComponent | null {\r\n return this._menu;\r\n }\r\n\r\n @Input()\r\n set libMenuTriggerFor(menu: PanelComponent | null) {\r\n this._menu = menu;\r\n }\r\n\r\n // tslint:disable-next-line:variable-name\r\n private _menu: PanelComponent | null = null;\r\n\r\n\r\n constructor(private el: ElementRef, private overlay: Overlay) {\r\n fromEvent(this.el.nativeElement, 'click')\r\n .pipe(\r\n takeUntil(this.unsubscribe),\r\n tap(() => {\r\n if (this.menu) {\r\n this.openMenu();\r\n }\r\n })\r\n )\r\n .subscribe(noop);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.menu) {\r\n this.menu.onOpened.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\r\n this.menuOpened.emit();\r\n });\r\n this.menu.onClose.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\r\n this.onMenuClose.emit();\r\n });\r\n this.menu.onClosed.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\r\n this.menuClosed.emit();\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe.next();\r\n this.unsubscribe.complete();\r\n }\r\n\r\n closeMenu(): void {\r\n this.menu.close();\r\n }\r\n\r\n openMenu(): void {\r\n this.menu.trigger = this.el;\r\n this.menu.open();\r\n this.onMenuOpen.emit();\r\n this.menu.open();\r\n }\r\n}\r\n","import {Component, forwardRef, inject, input, output, ViewEncapsulation} from '@angular/core';\r\nimport {NgJvxMultiselectComponent} from '../../ng-jvx-multiselect.component';\r\n\r\n@Component({\r\n selector: 'ng-jvx-multiselect-chip',\r\n templateUrl: './chip.component.html',\r\n styleUrl: './chip.component.scss',\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class NgJvxMultisectChipComponent {\r\n removed = output<any>();\r\n value = input<any>();\r\n disabled = input<boolean>(false);\r\n container = inject(NgJvxMultiselectComponent, {optional: true});\r\n\r\n clickOnRemove(e: MouseEvent): void {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n if (this.container && !this.container.disabled){\r\n this.container.deselect(this.value());\r\n }\r\n }\r\n}\r\n","<div [class.disabled]=\"disabled()\"><span class=\"chip-text\">\r\n <ng-content></ng-content>\r\n</span>\r\n <svg class=\"remove-button\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"currentColor\" viewBox=\"0 0 256 256\" (click)=\"clickOnRemove($event)\"><path\r\n d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm37.66,130.34a8,8,0,0,1-11.32,11.32L128,139.31l-26.34,26.35a8,8,0,0,1-11.32-11.32L116.69,128,90.34,101.66a8,8,0,0,1,11.32-11.32L128,116.69l26.34-26.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"></path></svg>\r\n\r\n</div>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n input,\r\n Input,\r\n InputSignal,\r\n OnDestroy,\r\n Output,\r\n signal,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {CdkConnectedOverlay} from '@angular/cdk/overlay';\r\nimport {fromEvent, Subject, timer} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {animate, query, style, transition, trigger} from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'lib-panel',\r\n imports: [\r\n CdkConnectedOverlay\r\n ],\r\n templateUrl: './panel.component.html',\r\n styleUrl: './panel.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [\r\n trigger('animation', [\r\n transition(':enter', [\r\n query('.ng-jvx-panel.below-panel', [\r\n style({\r\n opacity: 0,\r\n transform: 'scaleY(0.8)',\r\n transformOrigin: 'top',\r\n }),\r\n animate('0.08s ease-in-out', style({\r\n opacity: 1,\r\n transform: 'scaleY(1)',\r\n transformOrigin: 'top',\r\n }))], {optional: true}),\r\n query('.ng-jvx-panel.above-panel', [\r\n style({\r\n opacity: 0,\r\n transform: 'scaleY(0.8)',\r\n transformOrigin: 'bottom',\r\n }),\r\n animate('0.08s ease-in-out', style({\r\n opacity: 1,\r\n transform: 'scaleY(1)',\r\n transformOrigin: 'bottom',\r\n }))], {optional: true})\r\n ]),\r\n transition(':leave', [\r\n query('.ng-jvx-panel.below-panel', [\r\n style({\r\n opacity: 1,\r\n transform: 'scaleY(1)',\r\n transformOrigin: 'top'\r\n }),\r\n animate('.08s ease-in-out', style({\r\n opacity: 0,\r\n transform: 'scaleY(0.8)',\r\n transformOrigin: 'top'\r\n })),\r\n ], {optional: true}),\r\n query('.ng-jvx-panel.above-panel', [\r\n style({\r\n opacity: 1,\r\n transform: 'scaleY(1)',\r\n transformOrigin: 'bottom'\r\n }),\r\n animate('.08s ease-in-out', style({\r\n opacity: 0,\r\n transform: 'scaleY(0.8)',\r\n transformOrigin: 'bottom'\r\n })),\r\n ], {optional: true})])\r\n ]),\r\n ]\r\n})\r\nexport class PanelComponent implements OnDestroy {\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Accessors\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Refs\r\n // -----------------------------------------------------------------------------------------------------\r\n @ViewChild('menuTemplate', {static: true})\r\n menuTemplate!: TemplateRef<any>;\r\n\r\n protected isOpen = signal(false);\r\n private unsubscribe = new Subject<void>();\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Inputs\r\n // -----------------------------------------------------------------------------------------------------\r\n @Input() trigger!: ElementRef<any>;\r\n yPosition: InputSignal<'above' | 'below'> = input('above');\r\n multi = input.required<boolean>();\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Outputs\r\n // -----------------------------------------------------------------------------------------------------\r\n @Output() onClose = new EventEmitter<void>();\r\n @Output() onClosed = new EventEmitter<void>();\r\n @Output() onOpened = new EventEmitter<void>();\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ lifecycle Hooks\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n constructor() {\r\n fromEvent(window, 'resize')\r\n .pipe(takeUntil(this.unsubscribe))\r\n .subscribe(() => {\r\n this.close();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe.next();\r\n this.unsubscribe.complete();\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Public Methods\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n open(): void {\r\n this.isOpen.set(true);\r\n timer(800).subscribe(() => {\r\n this.onOpened.emit();\r\n });\r\n }\r\n\r\n close(): void {\r\n this.isOpen.set(false);\r\n this.onClose.emit();\r\n timer(200).subscribe(() => {\r\n this.onClosed.emit();\r\n });\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ protected Methods\r\n // -----------------------------------------------------------------------------------------------------\r\n protected clickOnMenu(): void {\r\n if (!this.multi()) {\r\n this.close();\r\n }\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Private Methods\r\n // -----------------------------------------------------------------------------------------------------\r\n}\r\n","<ng-template #menuTemplate cdkConnectedOverlay\r\n (backdropClick)=\"close()\"\r\n [cdkConnectedOverlayPositions]=\"[\r\n {\r\n originX: 'start',\r\n originY: yPosition() === 'below'? 'center': 'top',\r\n overlayX: 'start',\r\n overlayY: yPosition() === 'below'? 'top': 'bottom'\r\n }\r\n ]\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayPanelClass]=\"'ng-jvx-multiselect-panel'\"\r\n [cdkConnectedOverlayDisposeOnNavigation]=\"true\"\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n [cdkConnectedOverlayDisableClose]=\"false\"\r\n [cdkConnectedOverlayBackdropClass]=\"'ng-jvx-panel-overlay'\"\r\n [cdkConnectedOverlayOpen]=\"isOpen()\">\r\n <div [@animation]=\"isOpen()\">\r\n <div class=\"ng-jvx-panel\" [class]=\"yPosition()+'-panel'\" [class.opening]=\"isOpen()\" [class.closing]=\"!isOpen()\"\r\n (click)=\"clickOnMenu()\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\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,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n computed,\r\n ContentChild,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n input,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n QueryList,\r\n Self,\r\n signal,\r\n viewChild,\r\n ViewChild,\r\n ViewChildren,\r\n ViewEncapsulation,\r\n WritableSignal\r\n} from '@angular/core';\r\nimport {NgJvxOptionsTemplateDirective} from './directives/ng-jvx-options-template.directive';\r\nimport {\r\n ControlValueAccessor,\r\n FormsModule,\r\n NgControl,\r\n ReactiveFormsModule,\r\n UntypedFormBuilder,\r\n UntypedFormControl,\r\n UntypedFormGroup\r\n} from '@angular/forms';\r\nimport {NgJvxOptionComponent} from './ng-jvx-option/ng-jvx-option.component';\r\nimport {NgJvxMultiselectService} from './ng-jvx-multiselect.service';\r\nimport {HttpHeaders} from '@angular/common/http';\r\nimport {NgScrollbar} from 'ngx-scrollbar';\r\nimport {catchError, debounceTime, distinctUntilChanged, map, switchMap, takeUntil, tap} from 'rxjs/operators';\r\nimport {BehaviorSubject, forkJoin, interval, noop, Observable, of, Subject, throwError, timer} from 'rxjs';\r\nimport {NgJvxMultiOptionMapper, NgJvxOptionMapper} from './interfaces/ng-jvx-option-mapper';\r\nimport {NgJvxSelectionTemplateDirective} from './directives/ng-jvx-selection-template.directive';\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\nimport {MenuTriggerDirective} from './panel/menu-trigger/menu-trigger.directive';\r\nimport {NgJvxMultisectChipComponent} from './chiplist/chip/chip.component';\r\nimport {CommonModule} from '@angular/common';\r\nimport {PanelComponent} from './panel/panel.component';\r\nimport {NgJvxFocusDirective} from './directives/ng-jvx-focus.directive';\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 encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n // {\r\n // provide: MatFormFieldControl,\r\n // useExisting: forwardRef(() => NgJvxMultiselectComponent),\r\n // multi: true,\r\n // }\r\n ],\r\n imports: [\r\n CommonModule,\r\n NgJvxMultisectChipComponent,\r\n NgScrollbar,\r\n PanelComponent,\r\n ReactiveFormsModule,\r\n MenuTriggerDirective,\r\n NgJvxOptionComponent,\r\n NgJvxFocusDirective,\r\n FormsModule\r\n ],\r\n standalone: true\r\n})\r\nexport class NgJvxMultiselectComponent implements OnInit, OnDestroy, AfterViewInit,\r\n ControlValueAccessor {\r\n static nextId = 0;\r\n @HostBinding() id = `jvx-multiselect-${NgJvxMultiselectComponent.nextId++}`;\r\n\r\n @HostBinding('class.has-errors')\r\n get invalid(): boolean {\r\n return this.errorState;\r\n }\r\n\r\n @HostBinding('class.floating')\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty || this.value.length > 0 || !!this.isPlaceholderActive;\r\n }\r\n\r\n jvxMultiselect = viewChild.required<ElementRef>('jvxMultiselect');\r\n @ViewChild('valueContainer', {static: true}) valueContainer: ElementRef;\r\n selectionContainer = viewChild.required<ElementRef>('selectionContainer');\r\n menuFooter = viewChild<ElementRef>('menuFooter');\r\n // @ViewChild('selection', {static: true}) selection: MatSelectionList;\r\n @ViewChild(MenuTriggerDirective, {static: true}) trigger: MenuTriggerDirective;\r\n @ViewChild('scrollbar', {static: false}) scrollbar: NgScrollbar;\r\n multiContainer = viewChild.required<ElementRef>('multiContainer');\r\n @ViewChild('placeholderContainer', {static: false}) placeholderContainer: 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() set options(v: any[]) {\r\n if (v) {\r\n this.selectableOptions = [...v];\r\n } else {\r\n this.selectableOptions = [];\r\n }\r\n this._options = v;\r\n }\r\n\r\n get options(): any[] {\r\n return this._options;\r\n }\r\n\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() closeButton = false;\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() multiMapper: NgJvxMultiOptionMapper<any> = {\r\n mapOptions(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 if (!this.areArraysEqual(value, this.pValue)) {\r\n this.pValue = value ?? [];\r\n this.showList = !this.showList;\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.changeDetectorRef.detectChanges();\r\n this.showList = !this.showList;\r\n this.stateChanges.next();\r\n }\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 postPayload = input<object>();\r\n // tslint:disable-next-line:variable-name\r\n private _required = false;\r\n private _jvxWidth = signal(0);\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.set(coerceBooleanProperty(value));\r\n this._disabled() ? this.parts.disable() : this.parts.enable();\r\n this.stateChanges.next();\r\n }\r\n\r\n @Input()\r\n get pageSize(): number {\r\n return this.intPageSize;\r\n }\r\n\r\n set pageSize(val: number) {\r\n if (val < 15) {\r\n this.intPageSize = 15;\r\n } else {\r\n this.intPageSize = val;\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:variable-name\r\n private _disabled = signal(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 private _options = [];\r\n public controlType = 'ng-jvx-multiselect';\r\n public document = document;\r\n public window = window;\r\n public form: UntypedFormGroup;\r\n public isOpen = signal(false);\r\n public isLoading = signal(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: WritableSignal<'above' | 'below'> = signal('below');\r\n\r\n public stateChanges = new Subject<void>();\r\n public currentPage = 0;\r\n\r\n public listContainerSize = computed(() => {\r\n if (this.isOpen() && this.menuFooter() && this.menuFooter().nativeElement) {\r\n return {\r\n height: this.selectionContainer().nativeElement.offsetHeight > 300 ? '300px' : 'auto',\r\n minHeight: this.selectionContainer().nativeElement.offsetHeight <= 300 ?\r\n this.selectionContainer().nativeElement.offsetHeight + 'px' : '300px',\r\n width: this._jvxWidth() + 'px'\r\n };\r\n } else {\r\n return {\r\n height: 'auto',\r\n minHeight: '300px',\r\n width: this._jvxWidth() + 'px'\r\n };\r\n }\r\n });\r\n public parts: UntypedFormGroup;\r\n\r\n public touched = false;\r\n\r\n public placeholder: string;\r\n public focused = false;\r\n public multiContainerWidth = computed(() => {\r\n return this.multiContainer()?.nativeElement?.offsetWidth ?? 100;\r\n });\r\n private isPlaceholderActiveSubject = new BehaviorSubject<boolean>(false);\r\n private isPlaceholderActive = false;\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 unsubscribe = new Subject<void>();\r\n private unsubscribe$ = this.unsubscribe.asObservable();\r\n private intPageSize = 15;\r\n public onTouched = () => {\r\n };\r\n\r\n\r\n constructor(private formBuilder: UntypedFormBuilder, private service: NgJvxMultiselectService,\r\n private elementRef: ElementRef,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n @Optional() @Self() public ngControl: NgControl, fb: UntypedFormBuilder) {\r\n\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 this.isPlaceholderActiveSubject.pipe(takeUntil(this.unsubscribe), debounceTime(0)).subscribe((v) => {\r\n this.isPlaceholderActive = v;\r\n this.stateChanges.next();\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 UntypedFormControl(this.selectionValue)\r\n });\r\n }\r\n\r\n // ngDoCheck(): void {\r\n // this.isPlaceholderActiveSubject.next(this.placeholderContainer?.nativeElement?.hasChildNodes());\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.setSelectableOptions(this.options).subscribe(noop);\r\n this.selectableOptions = [...this.options];\r\n this.updateOrderedOptions(this.selectableOptions).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 areArraysEqual(arr1: any[] | null, arr2: any[] | null): boolean {\r\n // Se entrambi sono null o undefined, sono uguali\r\n if (!arr1 && !arr2) {\r\n return true;\r\n }\r\n // Se solo uno dei due è null/undefined, sono diversi\r\n if (!arr1 || !arr2) {\r\n return false;\r\n }\r\n // Se hanno lunghezza diversa, sono diversi\r\n if (arr1.length !== arr2.length) {\r\n return false;\r\n }\r\n\r\n // Verifica che ogni elemento di arr1 abbia una corrispondenza in arr2\r\n return arr1.every(item1 => {\r\n return arr2.some(item2 => {\r\n if (typeof item1 === 'object' && item1 !== null) {\r\n // Se gli elementi sono oggetti, confronta i valori itemValue\r\n return item1[this.itemValue] === item2[this.itemValue];\r\n }\r\n // Altrimenti confronta direttamente i valori\r\n return item1 === item2;\r\n });\r\n }) &&\r\n // Verifica anche il contrario per assicurarsi che non ci siano elementi extra\r\n arr2.every(item2 => {\r\n return arr1.some(item1 => {\r\n if (typeof item2 === 'object' && item2 !== null) {\r\n return item2[this.itemValue] === item1[this.itemValue];\r\n }\r\n return item2 === item1;\r\n });\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)), switchMap((res) => {\r\n // return this.setSelectableOptions(res);\r\n this.selectableOptions = [];\r\n this.selectableOptions.push(...res);\r\n return this.updateOrderedOptions(this.selectableOptions);\r\n }\r\n ));\r\n }\r\n\r\n private setSelectableOptions(options: any[]): Observable<any> {\r\n this.selectableOptions = [];\r\n const obs: Observable<any>[] = options.reduce((acc, curr) => {\r\n acc.push(this.mapper.mapOption(curr));\r\n return acc;\r\n }, []);\r\n\r\n // this.mapper.mapOption(option);\r\n\r\n return forkJoin([...obs]).pipe(switchMap((val) => {\r\n this.selectableOptions.push(...val);\r\n return 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\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(300).pipe(tap(() => {\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.setSelectableOptions(this.options).subscribe(noop);\r\n // this.selectableOptions = [...this.options];\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 && !this.isPlaceholderActive;\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: any): void {\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 const selectableIds = this.selectableOptions.map(s => s[this.itemValue]);\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 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.yPosition.set(window.innerHeight - this.jvxMultiselect()?.nativeElement?.getBoundingClientRect()?.top < 300 ? 'above' : 'below');\r\n this._jvxWidth.set(this.jvxMultiselect().nativeElement.offsetWidth);\r\n this.isOpen.set(true);\r\n this.jvxMultiselectOpen.emit();\r\n const stopInterval = new Subject<void>();\r\n interval(10).pipe(takeUntil(stopInterval)).subscribe(() => {\r\n this.changeDetectorRef.detectChanges();\r\n });\r\n timer(200).subscribe(() => {\r\n stopInterval.next();\r\n });\r\n }\r\n\r\n onMenuClose(): void {\r\n this.isOpen.set(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[this.itemValue]));\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\r\n }\r\n\r\n clickOnMenuTrigger(e: MouseEvent): void {\r\n if (!this.disabled && !this.isLoading()) {\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.set(true);\r\n return this.service.getList({\r\n url: this.url,\r\n requestType: this.requestType,\r\n data: this.postPayload() ?? {},\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.intPageSize\r\n }).pipe(\r\n map((val) => {\r\n return val ?? [];\r\n }),\r\n switchMap((val) => this.multiMapper.mapOptions(val)), switchMap((val) => {\r\n let result = [];\r\n if (!val) {\r\n result = [];\r\n } else 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.set(false);\r\n return of([]);\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.set(false);\r\n this.trigger.openMenu();\r\n this.setSelectionContainerSize();\r\n return val;\r\n }),\r\n tap(() => {\r\n this.changeDetectorRef.markForCheck();\r\n }),\r\n catchError((error) => {\r\n this.isLoading.set(false);\r\n this.changeDetectorRef.markForCheck();\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n onScrolled(e: any): void {\r\n if (e.target.scrollTop + 260 + ((this.searchInput ? 0 : 1) * 40) - this.menuFooter().nativeElement.offsetHeight === 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 public isOptionSelected(option: any): boolean {\r\n return this.form.get('selectionValue').value.some(s => s === option[this.itemValue]);\r\n }\r\n\r\n clickOnOption(option: any): void {\r\n if (this.isOptionSelected(option)) {\r\n this.deselect(option);\r\n } else {\r\n this.select(option);\r\n }\r\n }\r\n\r\n select(option: any): void {\r\n if (!this.multi) {\r\n this.form.get('selectionValue').reset([]);\r\n this.value = [];\r\n }\r\n this.value.push(option);\r\n\r\n this.value.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 const val = this.form.get('selectionValue').value.concat([option[this.itemValue]]);\r\n val.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 this.form.get('selectionValue').setValue(val);\r\n this.propagateChange(this.value);\r\n this.valueChange.emit(this.value);\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n}\r\n","\r\n<div class=\"ng-jvx-multiselect\" [class.disabled]=\"disabled\" [class.has-errors]=\"hasErrors\" #jvxMultiselect>\r\n <!-- START MENU -->\r\n <div [libMenuTriggerFor]=\"menuRef\" (onMenuOpen)=\"onMenuOpen()\" (menuOpened)=\"onMenuOpened()\"\r\n #trigger\r\n (onMenuClose)=\"onMenuClose()\" (menuClosed)=\"onMenuClosed()\"\r\n >\r\n <lib-panel #menuRef [class]=\"['jvx-multiselect-panel', panelClass].join(' ')\" [multi]=\"multi\" [formGroup]=\"form\"\r\n [yPosition]=\"yPosition()\">\r\n @if (closeButton) {\r\n <div class=\"closeMenuButton\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n <div style=\"display: flex; flex-direction: column\"\r\n [ngStyle]=\"{'overflow-y': 'hidden', 'width': listContainerSize().width, 'min-width.px': 112, 'max-height': '300px', 'height': listContainerSize().height}\">\r\n <div class=\"menu-list-container\"\r\n [style.flex]=\"'1 1 0'\"\r\n #menuLIstContainer\r\n >\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\r\n [ngStyle]=\"{height: searchInput && selectionContainer.clientHeight > 220 || selectionContainer.clientHeight > 300? 300 - (searchInput? 40 : 0) - menuFooter.offsetHeight + '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 <div #selection\r\n *ngIf=\"showList\"\r\n [ngStyle]=\"{'padding': 0, 'width': listContainerSize().width, 'min-width.px': 112}\"\r\n ngDefaultControl\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\r\n [ngTemplateOutlet]=\"groupHeaderTemplate? groupHeaderTemplate.template: defaultGroupHeaderTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: opt}\"></ng-container>\r\n\r\n <ng-jvx-option *ngFor=\"let option of opt.options\" [value]=\"option[itemValue]\"\r\n [isSelected]=\"isOptionSelected(option)\" (click)=\"clickOnOption(option)\">\r\n <!-- <ng-container [ngTemplateOutlet]=\"optionsTemplate\" [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>-->\r\n <div class=\"ng-jvx-option-wrapper\" style=\"min-height:48px\">\r\n <ng-container [ngTemplateOutlet]=\"optionsTemplate? optionsTemplate.template : defaultTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>\r\n </div>\r\n </ng-jvx-option>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!groupBy || ( typeof groupBy === 'string' && groupBy.length === 0)\">\r\n <ng-jvx-option *ngFor=\"let option of selectableOptions\" [value]=\"option[itemValue]\"\r\n [isSelected]=\"isOptionSelected(option)\" (click)=\"clickOnOption(option)\">\r\n <div class=\"ng-jvx-option-wrapper\" style=\"min-height:48px\">\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 </div>\r\n </ng-jvx-option>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n </div>\r\n\r\n </div>\r\n <div class=\"menu-footer\" #menuFooter>\r\n <ng-content select=\"[ng-jvx-footer]\"></ng-content>\r\n </div>\r\n </div>\r\n </lib-panel>\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 @if (value.length === 0) {\r\n <div class=\"ng-jvx-multiselect__placeholder\" #placeholderContainer>\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 <ng-container [ngTemplateOutlet]=\"selectionTemplate? selectionTemplate.template : defaultMultiSelectionTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: value}\"></ng-container>\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>\r\n </div>\r\n </div>\r\n @if (clearable && value.length > 0) {\r\n <div class=\"ng-jvx-multiselect__remove-button\" (click)=\"clear($event)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"#000000\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n <div class=\"ng-jvx-multiselect-arrow\">\r\n @if (!isLoading()) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"#000000\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z\"></path>\r\n </svg>\r\n } @else {\r\n <div class=\"lds-ring\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <!-- END INPUT -->\r\n</div>\r\n<ng-template #defaultTemplate let-option>\r\n <div style=\"min-height: 48px; height: 100%; display: flex; align-items: center\">\r\n <div style=\"max-width: 100%;\r\n padding-inline: .3rem;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\">{{ option[itemText] }}\r\n </div>\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 <div style=\"display: flex; gap: 0.3rem; flex-wrap: wrap;\">\r\n @for (val of value; track val[itemValue]) {\r\n <ng-jvx-multiselect-chip [value]=\"val\" class=\"ng-jvx-multiselect-chip\" [disabled]=\"this.disabled\" >\r\n {{ val[itemText] }}\r\n </ng-jvx-multiselect-chip>\r\n }\r\n </div>\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","import {NgModule} from '@angular/core';\r\nimport {NgJvxMultiselectComponent} from './ng-jvx-multiselect.component';\r\nimport {NgJvxOptionComponent} from './ng-jvx-option/ng-jvx-option.component';\r\nimport {NgJvxOptionsTemplateDirective} from './directives/ng-jvx-options-template.directive';\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 {NgJvxMultisectChipComponent} from './chiplist/chip/chip.component';\r\n\r\n@NgModule({\r\n imports: [\r\n NgJvxMultiselectComponent,\r\n NgJvxOptionComponent,\r\n NgJvxOptionsTemplateDirective,\r\n NgJvxSelectionTemplateDirective,\r\n NgJvxDisabledOptionDirective,\r\n NgJvxMultisectChipComponent,\r\n NgJvxGroupHeaderDirective\r\n ],\r\n exports: [NgJvxMultiselectComponent,\r\n NgJvxOptionComponent,\r\n NgJvxOptionsTemplateDirective,\r\n NgJvxSelectionTemplateDirective,\r\n NgJvxDisabledOptionDirective,\r\n NgJvxMultisectChipComponent,\r\n 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\nexport * from './lib/chiplist/chip/chip.component';\r\nexport * from './lib/utils';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["takeUntil","i1","tap","i2.NgJvxMultiselectService"],"mappings":"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"}
|
|
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/utils.ts","../../../projects/ng-jvx-multiselect/src/lib/ng-jvx-multiselect.service.ts","../../../projects/ng-jvx-multiselect/src/lib/panel/menu-trigger/menu-trigger.directive.ts","../../../projects/ng-jvx-multiselect/src/lib/chiplist/chip/chip.component.ts","../../../projects/ng-jvx-multiselect/src/lib/chiplist/chip/chip.component.html","../../../projects/ng-jvx-multiselect/src/lib/panel/panel.component.ts","../../../projects/ng-jvx-multiselect/src/lib/panel/panel.component.html","../../../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-multiselect.module.ts","../../../projects/ng-jvx-multiselect/src/public-api.ts","../../../projects/ng-jvx-multiselect/src/ng-jvx-multiselect.ts"],"sourcesContent":["import {Component, DoCheck, EventEmitter, input, Input, OnInit, Output, ViewChild, ViewEncapsulation} from '@angular/core';\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 encapsulation: ViewEncapsulation.None\r\n})\r\nexport class NgJvxOptionComponent {\r\n @Output() clickOnOption = new EventEmitter<any>();\r\n value = input<any>();\r\n disabled = input<boolean>(false);\r\n isSelected = input<boolean>(false);\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","<div class=\"option ng-jvx-option\" [class.ng-jvx-single-selected-option]=\" isSelected()\" #listOption\r\n(click)=\"clickOnOption.emit()\">\r\n <div class=\"option-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"list-option-background\"></div>\r\n</div>\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 private restore = 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 fromEvent(this.el.nativeElement, 'click').pipe(takeUntil(this.restore), takeUntil(this.unsubs)).subscribe((e: MouseEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n });\r\n } else {\r\n this.el.nativeElement.style.opacity = this.originalOpacity;\r\n this.restore.next();\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 }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubs.next();\r\n this.unsubs.complete();\r\n }\r\n}\r\n","import { HttpContext, HttpContextToken } from '@angular/common/http';\r\n\r\nexport const JVXMULTISELECT = new HttpContextToken<boolean>(() => false);\r\nexport const setJvxCall = (): any => new HttpContext().set(JVXMULTISELECT, true);\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs';\r\nimport {HttpClient, HttpParams} from '@angular/common/http';\r\nimport {setJvxCall} from './utils';\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 if (requestType === 'get') {\r\n const options = {\r\n mode: 'no-cors' as RequestMode, // cors\r\n headers: requestHeaders,\r\n context: setJvxCall(),\r\n // withCredentials: true,\r\n // credentials: 'same-origin', // cache: 'default',\r\n params\r\n };\r\n return this.http.get(url, options);\r\n } else {\r\n const options = {\r\n mode: 'no-cors' as RequestMode, // cors\r\n headers: requestHeaders,\r\n context: setJvxCall(),\r\n // withCredentials: true,\r\n // credentials: 'same-origin', // cache: 'default',\r\n };\r\n const postParams: any = {};\r\n\r\n // Aggiungi search solo se presente\r\n if (search && search.length > 0) {\r\n postParams[searchProp] = search;\r\n }\r\n\r\n // Gestisci paginazione come nella GET\r\n if (!ignorePagination) {\r\n postParams.paging = {\r\n page: currentPage.toString(),\r\n size: pageSize.toString(),\r\n sort: '',\r\n ignorePagination: false\r\n };\r\n } else {\r\n postParams.paging = {\r\n sort: '',\r\n ignorePagination: true\r\n };\r\n }\r\n const payload = {\r\n ...postParams,\r\n ...data\r\n };\r\n return this.http.post(url, payload, options);\r\n }\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n} from '@angular/core';\r\nimport {Overlay} from '@angular/cdk/overlay';\r\nimport {fromEvent, noop, Subject, takeUntil, tap} from 'rxjs';\r\nimport {PanelComponent} from '../panel.component';\r\n\r\n@Directive({\r\n selector: '[lib-menu-trigger-for], [libMenuTriggerFor]'\r\n})\r\nexport class MenuTriggerDirective implements OnDestroy, AfterViewInit {\r\n private unsubscribe = new Subject<void>();\r\n\r\n @Output() closed = new EventEmitter<void>();\r\n @Output() onMenuOpen = new EventEmitter<void>();\r\n @Output() menuOpened = new EventEmitter<void>();\r\n @Output() onMenuClose = new EventEmitter<void>();\r\n @Output() menuClosed = new EventEmitter<void>();\r\n\r\n /** References the menu instance that the trigger is associated with. */\r\n get menu(): PanelComponent | null {\r\n return this._menu;\r\n }\r\n\r\n @Input()\r\n set libMenuTriggerFor(menu: PanelComponent | null) {\r\n this._menu = menu;\r\n }\r\n\r\n // tslint:disable-next-line:variable-name\r\n private _menu: PanelComponent | null = null;\r\n\r\n\r\n constructor(private el: ElementRef, private overlay: Overlay) {\r\n fromEvent(this.el.nativeElement, 'click')\r\n .pipe(\r\n takeUntil(this.unsubscribe),\r\n tap(() => {\r\n if (this.menu) {\r\n this.openMenu();\r\n }\r\n })\r\n )\r\n .subscribe(noop);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.menu) {\r\n this.menu.onOpened.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\r\n this.menuOpened.emit();\r\n });\r\n this.menu.onClose.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\r\n this.onMenuClose.emit();\r\n });\r\n this.menu.onClosed.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\r\n this.menuClosed.emit();\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe.next();\r\n this.unsubscribe.complete();\r\n }\r\n\r\n closeMenu(): void {\r\n this.menu.close();\r\n }\r\n\r\n openMenu(): void {\r\n this.menu.trigger = this.el;\r\n this.menu.open();\r\n this.onMenuOpen.emit();\r\n this.menu.open();\r\n }\r\n}\r\n","import {Component, forwardRef, inject, input, output, ViewEncapsulation} from '@angular/core';\r\nimport {NgJvxMultiselectComponent} from '../../ng-jvx-multiselect.component';\r\n\r\n@Component({\r\n selector: 'ng-jvx-multiselect-chip',\r\n templateUrl: './chip.component.html',\r\n styleUrl: './chip.component.scss',\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class NgJvxMultisectChipComponent {\r\n removed = output<any>();\r\n value = input<any>();\r\n disabled = input<boolean>(false);\r\n container = inject(NgJvxMultiselectComponent, {optional: true});\r\n\r\n clickOnRemove(e: MouseEvent): void {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n if (this.container && !this.container.disabled){\r\n this.container.deselect(this.value());\r\n }\r\n }\r\n}\r\n","<div [class.disabled]=\"disabled()\"><span class=\"chip-text\">\r\n <ng-content></ng-content>\r\n</span>\r\n <svg class=\"remove-button\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"currentColor\" viewBox=\"0 0 256 256\" (click)=\"clickOnRemove($event)\"><path\r\n d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm37.66,130.34a8,8,0,0,1-11.32,11.32L128,139.31l-26.34,26.35a8,8,0,0,1-11.32-11.32L116.69,128,90.34,101.66a8,8,0,0,1,11.32-11.32L128,116.69l26.34-26.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"></path></svg>\r\n\r\n</div>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n input,\r\n Input,\r\n InputSignal,\r\n OnDestroy,\r\n Output,\r\n signal,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {CdkConnectedOverlay} from '@angular/cdk/overlay';\r\nimport {fromEvent, Subject, timer} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {animate, query, style, transition, trigger} from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'lib-panel',\r\n imports: [\r\n CdkConnectedOverlay\r\n ],\r\n templateUrl: './panel.component.html',\r\n styleUrl: './panel.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [\r\n trigger('animation', [\r\n transition(':enter', [\r\n query('.ng-jvx-panel.below-panel', [\r\n style({\r\n opacity: 0,\r\n transform: 'scaleY(0.8)',\r\n transformOrigin: 'top',\r\n }),\r\n animate('0.08s ease-in-out', style({\r\n opacity: 1,\r\n transform: 'scaleY(1)',\r\n transformOrigin: 'top',\r\n }))], {optional: true}),\r\n query('.ng-jvx-panel.above-panel', [\r\n style({\r\n opacity: 0,\r\n transform: 'scaleY(0.8)',\r\n transformOrigin: 'bottom',\r\n }),\r\n animate('0.08s ease-in-out', style({\r\n opacity: 1,\r\n transform: 'scaleY(1)',\r\n transformOrigin: 'bottom',\r\n }))], {optional: true})\r\n ]),\r\n transition(':leave', [\r\n query('.ng-jvx-panel.below-panel', [\r\n style({\r\n opacity: 1,\r\n transform: 'scaleY(1)',\r\n transformOrigin: 'top'\r\n }),\r\n animate('.08s ease-in-out', style({\r\n opacity: 0,\r\n transform: 'scaleY(0.8)',\r\n transformOrigin: 'top'\r\n })),\r\n ], {optional: true}),\r\n query('.ng-jvx-panel.above-panel', [\r\n style({\r\n opacity: 1,\r\n transform: 'scaleY(1)',\r\n transformOrigin: 'bottom'\r\n }),\r\n animate('.08s ease-in-out', style({\r\n opacity: 0,\r\n transform: 'scaleY(0.8)',\r\n transformOrigin: 'bottom'\r\n })),\r\n ], {optional: true})])\r\n ]),\r\n ]\r\n})\r\nexport class PanelComponent implements OnDestroy {\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Accessors\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Refs\r\n // -----------------------------------------------------------------------------------------------------\r\n @ViewChild('menuTemplate', {static: true})\r\n menuTemplate!: TemplateRef<any>;\r\n\r\n protected isOpen = signal(false);\r\n private unsubscribe = new Subject<void>();\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Inputs\r\n // -----------------------------------------------------------------------------------------------------\r\n @Input() trigger!: ElementRef<any>;\r\n yPosition: InputSignal<'above' | 'below'> = input('above');\r\n multi = input.required<boolean>();\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Outputs\r\n // -----------------------------------------------------------------------------------------------------\r\n @Output() onClose = new EventEmitter<void>();\r\n @Output() onClosed = new EventEmitter<void>();\r\n @Output() onOpened = new EventEmitter<void>();\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ lifecycle Hooks\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n constructor() {\r\n fromEvent(window, 'resize')\r\n .pipe(takeUntil(this.unsubscribe))\r\n .subscribe(() => {\r\n this.close();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe.next();\r\n this.unsubscribe.complete();\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Public Methods\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n open(): void {\r\n this.isOpen.set(true);\r\n timer(800).subscribe(() => {\r\n this.onOpened.emit();\r\n });\r\n }\r\n\r\n close(): void {\r\n this.isOpen.set(false);\r\n this.onClose.emit();\r\n timer(200).subscribe(() => {\r\n this.onClosed.emit();\r\n });\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ protected Methods\r\n // -----------------------------------------------------------------------------------------------------\r\n protected clickOnMenu(): void {\r\n if (!this.multi()) {\r\n this.close();\r\n }\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Private Methods\r\n // -----------------------------------------------------------------------------------------------------\r\n}\r\n","<ng-template #menuTemplate cdkConnectedOverlay\r\n (backdropClick)=\"close()\"\r\n [cdkConnectedOverlayPositions]=\"[\r\n {\r\n originX: 'start',\r\n originY: yPosition() === 'below'? 'center': 'top',\r\n overlayX: 'start',\r\n overlayY: yPosition() === 'below'? 'top': 'bottom'\r\n }\r\n ]\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayPanelClass]=\"'ng-jvx-multiselect-panel'\"\r\n [cdkConnectedOverlayDisposeOnNavigation]=\"true\"\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n [cdkConnectedOverlayDisableClose]=\"false\"\r\n [cdkConnectedOverlayBackdropClass]=\"'ng-jvx-panel-overlay'\"\r\n [cdkConnectedOverlayOpen]=\"isOpen()\">\r\n <div [@animation]=\"isOpen()\">\r\n <div class=\"ng-jvx-panel\" [class]=\"yPosition()+'-panel'\" [class.opening]=\"isOpen()\" [class.closing]=\"!isOpen()\"\r\n (click)=\"clickOnMenu()\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\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,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n computed,\r\n ContentChild,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding, inject,\r\n input,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n QueryList,\r\n Self,\r\n signal,\r\n viewChild,\r\n ViewChild,\r\n ViewChildren,\r\n ViewEncapsulation,\r\n WritableSignal\r\n} from '@angular/core';\r\nimport {NgJvxOptionsTemplateDirective} from './directives/ng-jvx-options-template.directive';\r\nimport {\r\n ControlValueAccessor,\r\n FormsModule,\r\n NgControl,\r\n ReactiveFormsModule,\r\n UntypedFormBuilder,\r\n UntypedFormControl,\r\n UntypedFormGroup\r\n} from '@angular/forms';\r\nimport {NgJvxOptionComponent} from './ng-jvx-option/ng-jvx-option.component';\r\nimport {NgJvxMultiselectService} from './ng-jvx-multiselect.service';\r\nimport {HttpHeaders} from '@angular/common/http';\r\nimport {NgScrollbar} from 'ngx-scrollbar';\r\nimport {catchError, debounceTime, distinctUntilChanged, map, switchMap, takeUntil, tap} from 'rxjs/operators';\r\nimport {BehaviorSubject, forkJoin, interval, noop, Observable, of, Subject, throwError, timer} from 'rxjs';\r\nimport {NgJvxMultiOptionMapper, NgJvxOptionMapper} from './interfaces/ng-jvx-option-mapper';\r\nimport {NgJvxSelectionTemplateDirective} from './directives/ng-jvx-selection-template.directive';\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\nimport {MenuTriggerDirective} from './panel/menu-trigger/menu-trigger.directive';\r\nimport {NgJvxMultisectChipComponent} from './chiplist/chip/chip.component';\r\nimport {CommonModule} from '@angular/common';\r\nimport {PanelComponent} from './panel/panel.component';\r\nimport {NgJvxFocusDirective} from './directives/ng-jvx-focus.directive';\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 encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n // {\r\n // provide: MatFormFieldControl,\r\n // useExisting: forwardRef(() => NgJvxMultiselectComponent),\r\n // multi: true,\r\n // }\r\n ],\r\n imports: [\r\n CommonModule,\r\n NgJvxMultisectChipComponent,\r\n NgScrollbar,\r\n PanelComponent,\r\n ReactiveFormsModule,\r\n MenuTriggerDirective,\r\n NgJvxOptionComponent,\r\n NgJvxFocusDirective,\r\n FormsModule\r\n ],\r\n standalone: true\r\n})\r\nexport class NgJvxMultiselectComponent implements OnInit, OnDestroy, AfterViewInit,\r\n ControlValueAccessor {\r\n\r\n @HostBinding('class.has-errors')\r\n get invalid(): boolean {\r\n return this.errorState;\r\n }\r\n\r\n @HostBinding('class.floating')\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty || this.value.length > 0 || !!this.isPlaceholderActive;\r\n }\r\n // @ContentChild(NgJvxOptionComponent) optionComp: NgJvxOptionComponent;\r\n // @ContentChild(TemplateRef) optionsTemplate: TemplateRef<any> | null = null;\r\n @Input() set options(v: any[]) {\r\n if (v) {\r\n this.selectableOptions = [...v];\r\n } else {\r\n this.selectableOptions = [];\r\n }\r\n this._options = v;\r\n }\r\n\r\n get options(): any[] {\r\n return this._options;\r\n }\r\n\r\n @Input() set value(value: any[]) {\r\n if (!this.areArraysEqual(value, this.pValue)) {\r\n this.pValue = value ?? [];\r\n this.showList = !this.showList;\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.changeDetectorRef.detectChanges();\r\n this.showList = !this.showList;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n get value(): any[] {\r\n return this.pValue;\r\n }\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 @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.set(coerceBooleanProperty(value));\r\n this._disabled() ? this.parts.disable() : this.parts.enable();\r\n this.stateChanges.next();\r\n }\r\n\r\n @Input()\r\n get pageSize(): number {\r\n return this.intPageSize;\r\n }\r\n\r\n set pageSize(val: number) {\r\n if (val < 15) {\r\n this.intPageSize = 15;\r\n } else {\r\n this.intPageSize = val;\r\n }\r\n }\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\r\n constructor(private formBuilder: UntypedFormBuilder, private service: NgJvxMultiselectService,\r\n private elementRef: ElementRef,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n @Optional() @Self() public ngControl: NgControl, fb: UntypedFormBuilder) {\r\n\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 this.isPlaceholderActiveSubject.pipe(takeUntil(this.unsubscribe), debounceTime(0)).subscribe((v) => {\r\n this.isPlaceholderActive = v;\r\n this.stateChanges.next();\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 UntypedFormControl(this.selectionValue)\r\n });\r\n }\r\n\r\n // ngOnChanges(changes: SimpleChanges): void {\r\n // if (changes.options) {\r\n // // this.setSelectableOptions(this.options).subscribe(noop);\r\n // this.selectableOptions = [...this.options];\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 && !this.isPlaceholderActive;\r\n }\r\n\r\n private get stateChange$(): Observable<any> {\r\n return this.stateChanges.asObservable();\r\n }\r\n static nextId = 0;\r\n @HostBinding() id = `jvx-multiselect-${NgJvxMultiselectComponent.nextId++}`;\r\n\r\n jvxMultiselect = viewChild.required<ElementRef>('jvxMultiselect');\r\n @ViewChild('valueContainer', {static: true}) valueContainer: ElementRef;\r\n selectionContainer = viewChild.required<ElementRef>('selectionContainer');\r\n menuFooter = viewChild<ElementRef>('menuFooter');\r\n // @ViewChild('selection', {static: true}) selection: MatSelectionList;\r\n @ViewChild(MenuTriggerDirective, {static: true}) trigger: MenuTriggerDirective;\r\n @ViewChild('scrollbar', {static: false}) scrollbar: NgScrollbar;\r\n multiContainer = viewChild.required<ElementRef>('multiContainer');\r\n @ViewChild('placeholderContainer', {static: false}) placeholderContainer: ElementRef;\r\n sentinelElement = viewChild.required<ElementRef>('sentinelElement');\r\n optionContainer = viewChild.required<ElementRef>('optionContainer');\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\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() closeButton = false;\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() multiMapper: NgJvxMultiOptionMapper<any> = {\r\n mapOptions(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() requestHeaders: HttpHeaders = new HttpHeaders();\r\n\r\n postPayload = input<object>();\r\n // tslint:disable-next-line:variable-name\r\n private _required = false;\r\n private _jvxWidth = signal(0);\r\n\r\n // tslint:disable-next-line:variable-name\r\n private _disabled = signal(false);\r\n private observer: IntersectionObserver;\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 private _options = [];\r\n public controlType = 'ng-jvx-multiselect';\r\n public document = document;\r\n public window = window;\r\n public form: UntypedFormGroup;\r\n public isOpen = signal(false);\r\n public isLoading = signal(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: WritableSignal<'above' | 'below'> = signal('below');\r\n\r\n public stateChanges = new Subject<void>();\r\n public currentPage = 0;\r\n\r\n public listContainerSize = computed(() => {\r\n if (this.isOpen() && this.menuFooter() && this.menuFooter().nativeElement) {\r\n return {\r\n height: this.selectionContainer().nativeElement.offsetHeight > 300 ? '300px' : 'auto',\r\n minHeight: this.selectionContainer().nativeElement.offsetHeight <= 300 ?\r\n this.selectionContainer().nativeElement.offsetHeight + 'px' : '300px',\r\n width: this._jvxWidth() + 'px'\r\n };\r\n } else {\r\n return {\r\n height: 'auto',\r\n minHeight: '300px',\r\n width: this._jvxWidth() + 'px'\r\n };\r\n }\r\n });\r\n public parts: UntypedFormGroup;\r\n\r\n public touched = false;\r\n\r\n public placeholder: string;\r\n public focused = false;\r\n public multiContainerWidth = computed(() => {\r\n return this.multiContainer()?.nativeElement?.offsetWidth ?? 100;\r\n });\r\n private isPlaceholderActiveSubject = new BehaviorSubject<boolean>(false);\r\n private isPlaceholderActive = false;\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 unsubscribe = new Subject<void>();\r\n private unsubscribe$ = this.unsubscribe.asObservable();\r\n private intPageSize = 15;\r\n\r\n // Metodo richiesto da ControlValueAccessor\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n public onTouched = () => {\r\n }\r\n\r\n // ngDoCheck(): void {\r\n // this.isPlaceholderActiveSubject.next(this.placeholderContainer?.nativeElement?.hasChildNodes());\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.setSelectableOptions(this.options).subscribe(noop);\r\n this.selectableOptions = [...this.options];\r\n this.updateOrderedOptions(this.selectableOptions).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 areArraysEqual(arr1: any[] | null, arr2: any[] | null): boolean {\r\n // Se entrambi sono null o undefined, sono uguali\r\n if (!arr1 && !arr2) {\r\n return true;\r\n }\r\n // Se solo uno dei due è null/undefined, sono diversi\r\n if (!arr1 || !arr2) {\r\n return false;\r\n }\r\n // Se hanno lunghezza diversa, sono diversi\r\n if (arr1.length !== arr2.length) {\r\n return false;\r\n }\r\n\r\n // Verifica che ogni elemento di arr1 abbia una corrispondenza in arr2\r\n return arr1.every(item1 => {\r\n return arr2.some(item2 => {\r\n if (typeof item1 === 'object' && item1 !== null) {\r\n // Se gli elementi sono oggetti, confronta i valori itemValue\r\n return item1[this.itemValue] === item2[this.itemValue];\r\n }\r\n // Altrimenti confronta direttamente i valori\r\n return item1 === item2;\r\n });\r\n }) &&\r\n // Verifica anche il contrario per assicurarsi che non ci siano elementi extra\r\n arr2.every(item2 => {\r\n return arr1.some(item1 => {\r\n if (typeof item2 === 'object' && item2 !== null) {\r\n return item2[this.itemValue] === item1[this.itemValue];\r\n }\r\n return item2 === item1;\r\n });\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)), switchMap((res) => {\r\n // return this.setSelectableOptions(res);\r\n this.selectableOptions = [];\r\n this.selectableOptions.push(...res);\r\n return this.updateOrderedOptions(this.selectableOptions);\r\n }\r\n ));\r\n }\r\n\r\n private setSelectableOptions(options: any[]): Observable<any> {\r\n this.selectableOptions = [];\r\n const obs: Observable<any>[] = options.reduce((acc, curr) => {\r\n acc.push(this.mapper.mapOption(curr));\r\n return acc;\r\n }, []);\r\n\r\n // this.mapper.mapOption(option);\r\n\r\n return forkJoin([...obs]).pipe(switchMap((val) => {\r\n this.selectableOptions.push(...val);\r\n return 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\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(300).pipe(tap(() => {\r\n this.changeDetectorRef.markForCheck();\r\n })).subscribe(noop);\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: any): void {\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 const selectableIds = this.selectableOptions.map(s => s[this.itemValue]);\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 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.yPosition.set(window.innerHeight - this.jvxMultiselect()?.nativeElement?.getBoundingClientRect()?.top < 300 ? 'above' : 'below');\r\n this._jvxWidth.set(this.jvxMultiselect().nativeElement.offsetWidth);\r\n this.isOpen.set(true);\r\n this.jvxMultiselectOpen.emit();\r\n const stopInterval = new Subject<void>();\r\n interval(10).pipe(takeUntil(stopInterval)).subscribe(() => {\r\n this.changeDetectorRef.detectChanges();\r\n });\r\n timer(200).subscribe(() => {\r\n stopInterval.next();\r\n });\r\n }\r\n\r\n onMenuClose(): void {\r\n this.isOpen.set(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[this.itemValue]));\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\r\n }\r\n\r\n clickOnMenuTrigger(e: MouseEvent): void {\r\n if (!this.disabled && !this.isLoading()) {\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.set(true);\r\n return this.service.getList({\r\n url: this.url,\r\n requestType: this.requestType,\r\n data: this.postPayload() ?? {},\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.intPageSize\r\n }).pipe(\r\n map((val) => {\r\n return val ?? [];\r\n }),\r\n switchMap((val) => this.multiMapper.mapOptions(val)), switchMap((val) => {\r\n let result = [];\r\n if (!val) {\r\n result = [];\r\n } else 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.set(false);\r\n return of([]);\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.set(false);\r\n this.trigger.openMenu();\r\n this.setSelectionContainerSize();\r\n return val;\r\n }),\r\n tap(() => {\r\n this.changeDetectorRef.markForCheck();\r\n }),\r\n catchError((error) => {\r\n this.isLoading.set(false);\r\n this.changeDetectorRef.markForCheck();\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n onScrolled(e: any): void {\r\n const sentinelElementPosition = this.sentinelElement().nativeElement.getBoundingClientRect().height\r\n + this.sentinelElement().nativeElement.getBoundingClientRect().top;\r\n const containerPosition = this.optionContainer().nativeElement.getBoundingClientRect().height\r\n + this.optionContainer().nativeElement.getBoundingClientRect().top;\r\n\r\n if ((sentinelElementPosition - 10) <= containerPosition && !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\r\n onMenuOpened(): void {\r\n this.jvxMultiselectOpened.emit();\r\n\r\n }\r\n\r\n private onSentinelVisible(): void {\r\n this.scrollEnd.emit();\r\n // if (this.url && this.url.length > 0 && !this.ignorePagination && this.shouldLoadMore && !this.isLoading()) {\r\n // this.getList().subscribe(noop);\r\n // }\r\n }\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 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 public isOptionSelected(option: any): boolean {\r\n return this.form.get('selectionValue').value.some(s => s === option[this.itemValue]);\r\n }\r\n\r\n clickOnOption(option: any): void {\r\n if (this.isOptionSelected(option)) {\r\n this.deselect(option);\r\n } else {\r\n this.select(option);\r\n }\r\n }\r\n\r\n select(option: any): void {\r\n if (!this.multi) {\r\n this.form.get('selectionValue').reset([]);\r\n this.value = [];\r\n }\r\n this.value.push(option);\r\n\r\n this.value.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 const val = this.form.get('selectionValue').value.concat([option[this.itemValue]]);\r\n val.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 this.form.get('selectionValue').setValue(val);\r\n this.propagateChange(this.value);\r\n this.valueChange.emit(this.value);\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n}\r\n","\r\n<div class=\"ng-jvx-multiselect\" [class.disabled]=\"disabled\" [class.has-errors]=\"hasErrors\" #jvxMultiselect>\r\n <!-- START MENU -->\r\n <div [libMenuTriggerFor]=\"menuRef\" (onMenuOpen)=\"onMenuOpen()\" (menuOpened)=\"onMenuOpened()\"\r\n #trigger\r\n (onMenuClose)=\"onMenuClose()\" (menuClosed)=\"onMenuClosed()\"\r\n >\r\n <lib-panel #menuRef [class]=\"['jvx-multiselect-panel', panelClass].join(' ')\" [multi]=\"multi\" [formGroup]=\"form\"\r\n [yPosition]=\"yPosition()\">\r\n @if (closeButton) {\r\n <div class=\"closeMenuButton\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n <div style=\"display: flex; flex-direction: column\"\r\n [ngStyle]=\"{'overflow-y': 'hidden', 'width': listContainerSize().width, 'min-width.px': 112, 'max-height': '300px', 'height': listContainerSize().height}\">\r\n <div class=\"menu-list-container\"\r\n [style.flex]=\"'1 1 0'\"\r\n #menuListContainer\r\n >\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\r\n #optionContainer\r\n [ngStyle]=\"{height: searchInput && selectionContainer.clientHeight > 220 || selectionContainer.clientHeight > 300? 300 - (searchInput? 40 : 0) - menuFooter.children[0].clientHeight + '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 <div #selection\r\n *ngIf=\"showList\"\r\n [ngStyle]=\"{'padding': 0, 'width': listContainerSize().width, 'min-width.px': 112}\"\r\n ngDefaultControl\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\r\n [ngTemplateOutlet]=\"groupHeaderTemplate? groupHeaderTemplate.template: defaultGroupHeaderTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: opt}\"></ng-container>\r\n\r\n <ng-jvx-option *ngFor=\"let option of opt.options\" [value]=\"option[itemValue]\"\r\n [isSelected]=\"isOptionSelected(option)\" (click)=\"clickOnOption(option)\">\r\n <!-- <ng-container [ngTemplateOutlet]=\"optionsTemplate\" [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>-->\r\n <div class=\"ng-jvx-option-wrapper\" style=\"min-height:48px\">\r\n <ng-container [ngTemplateOutlet]=\"optionsTemplate? optionsTemplate.template : defaultTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: option}\"></ng-container>\r\n </div>\r\n </ng-jvx-option>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!groupBy || ( typeof groupBy === 'string' && groupBy.length === 0)\">\r\n <ng-jvx-option *ngFor=\"let option of selectableOptions\" [value]=\"option[itemValue]\"\r\n [isSelected]=\"isOptionSelected(option)\" (click)=\"clickOnOption(option)\">\r\n <div class=\"ng-jvx-option-wrapper\" style=\"min-height:48px\">\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 </div>\r\n </ng-jvx-option>\r\n </ng-container>\r\n <div #sentinelElement [style]=\"'pointer-events: none; position: absolute; height: 20px; top:'+ (selectionContainer.clientHeight - 20) + 'px' \">zum zum</div>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n </div>\r\n\r\n </div>\r\n <div class=\"menu-footer\" #menuFooter>\r\n <ng-content select=\"[ng-jvx-footer]\"></ng-content>\r\n </div>\r\n </div>\r\n </lib-panel>\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 @if (value.length === 0) {\r\n <div class=\"ng-jvx-multiselect__placeholder\" #placeholderContainer>\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 <ng-container [ngTemplateOutlet]=\"selectionTemplate? selectionTemplate.template : defaultMultiSelectionTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: value}\"></ng-container>\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>\r\n </div>\r\n </div>\r\n @if (clearable && value.length > 0) {\r\n <div class=\"ng-jvx-multiselect__remove-button\" (click)=\"clear($event)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"#000000\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n <div class=\"ng-jvx-multiselect-arrow\">\r\n @if (!isLoading()) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"#000000\" viewBox=\"0 0 256 256\">\r\n <path\r\n d=\"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z\"></path>\r\n </svg>\r\n } @else {\r\n <div class=\"lds-ring\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <!-- END INPUT -->\r\n</div>\r\n<ng-template #defaultTemplate let-option>\r\n <div style=\"min-height: 48px; height: 100%; display: flex; align-items: center\">\r\n <div style=\"max-width: 100%;\r\n padding-inline: .3rem;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\">{{ option[itemText] }}\r\n </div>\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 <div style=\"display: flex; gap: 0.3rem; flex-wrap: wrap;\">\r\n @for (val of value; track val[itemValue]) {\r\n <ng-jvx-multiselect-chip [value]=\"val\" class=\"ng-jvx-multiselect-chip\" [disabled]=\"this.disabled\" >\r\n {{ val[itemText] }}\r\n </ng-jvx-multiselect-chip>\r\n }\r\n </div>\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","import {NgModule} from '@angular/core';\r\nimport {NgJvxMultiselectComponent} from './ng-jvx-multiselect.component';\r\nimport {NgJvxOptionComponent} from './ng-jvx-option/ng-jvx-option.component';\r\nimport {NgJvxOptionsTemplateDirective} from './directives/ng-jvx-options-template.directive';\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 {NgJvxMultisectChipComponent} from './chiplist/chip/chip.component';\r\n\r\n@NgModule({\r\n imports: [\r\n NgJvxMultiselectComponent,\r\n NgJvxOptionComponent,\r\n NgJvxOptionsTemplateDirective,\r\n NgJvxSelectionTemplateDirective,\r\n NgJvxDisabledOptionDirective,\r\n NgJvxMultisectChipComponent,\r\n NgJvxGroupHeaderDirective\r\n ],\r\n exports: [NgJvxMultiselectComponent,\r\n NgJvxOptionComponent,\r\n NgJvxOptionsTemplateDirective,\r\n NgJvxSelectionTemplateDirective,\r\n NgJvxDisabledOptionDirective,\r\n NgJvxMultisectChipComponent,\r\n 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\nexport * from './lib/chiplist/chip/chip.component';\r\nexport * from './lib/utils';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["takeUntil","i1","tap","i2.NgJvxMultiselectService"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, TemplateRef, ElementRef, ViewContainerRef, OnInit, OnDestroy, InputSignal, AfterViewInit, QueryList, WritableSignal
|
|
2
|
+
import { EventEmitter, TemplateRef, ElementRef, ViewContainerRef, OnInit, OnDestroy, InputSignal, AfterViewInit, ChangeDetectorRef, QueryList, WritableSignal } from '@angular/core';
|
|
3
3
|
import { Observable, Subject } from 'rxjs';
|
|
4
4
|
import { HttpClient, HttpHeaders, HttpContextToken } from '@angular/common/http';
|
|
5
|
-
import { ControlValueAccessor, NgControl,
|
|
5
|
+
import { ControlValueAccessor, NgControl, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
|
|
6
6
|
import { NgScrollbar } from 'ngx-scrollbar';
|
|
7
7
|
import { Overlay } from '@angular/cdk/overlay';
|
|
8
8
|
|
|
@@ -151,10 +151,25 @@ declare class NgJvxMultiselectComponent implements OnInit, OnDestroy, AfterViewI
|
|
|
151
151
|
private elementRef;
|
|
152
152
|
private changeDetectorRef;
|
|
153
153
|
ngControl: NgControl;
|
|
154
|
-
static nextId: number;
|
|
155
|
-
id: string;
|
|
156
154
|
get invalid(): boolean;
|
|
157
155
|
get shouldLabelFloat(): boolean;
|
|
156
|
+
set options(v: any[]);
|
|
157
|
+
get options(): any[];
|
|
158
|
+
set value(value: any[]);
|
|
159
|
+
get value(): any[];
|
|
160
|
+
get required(): boolean;
|
|
161
|
+
set required(req: boolean);
|
|
162
|
+
get disabled(): boolean;
|
|
163
|
+
set disabled(value: boolean);
|
|
164
|
+
get pageSize(): number;
|
|
165
|
+
set pageSize(val: number);
|
|
166
|
+
get errorState(): boolean;
|
|
167
|
+
constructor(formBuilder: UntypedFormBuilder, service: NgJvxMultiselectService, elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, ngControl: NgControl, fb: UntypedFormBuilder);
|
|
168
|
+
get selectionValue(): any[];
|
|
169
|
+
get empty(): boolean;
|
|
170
|
+
private get stateChange$();
|
|
171
|
+
static nextId: number;
|
|
172
|
+
id: string;
|
|
158
173
|
jvxMultiselect: i0.Signal<ElementRef<any>>;
|
|
159
174
|
valueContainer: ElementRef;
|
|
160
175
|
selectionContainer: i0.Signal<ElementRef<any>>;
|
|
@@ -163,12 +178,12 @@ declare class NgJvxMultiselectComponent implements OnInit, OnDestroy, AfterViewI
|
|
|
163
178
|
scrollbar: NgScrollbar;
|
|
164
179
|
multiContainer: i0.Signal<ElementRef<any>>;
|
|
165
180
|
placeholderContainer: ElementRef;
|
|
181
|
+
sentinelElement: i0.Signal<ElementRef<any>>;
|
|
182
|
+
optionContainer: i0.Signal<ElementRef<any>>;
|
|
166
183
|
optionComp: QueryList<NgJvxOptionComponent>;
|
|
167
184
|
optionsTemplate: NgJvxOptionsTemplateDirective | null;
|
|
168
185
|
selectionTemplate: NgJvxSelectionTemplateDirective | null;
|
|
169
186
|
groupHeaderTemplate: NgJvxGroupHeaderDirective | null;
|
|
170
|
-
set options(v: any[]);
|
|
171
|
-
get options(): any[];
|
|
172
187
|
multi: boolean;
|
|
173
188
|
url: string;
|
|
174
189
|
requestType: 'get' | 'post';
|
|
@@ -190,20 +205,12 @@ declare class NgJvxMultiselectComponent implements OnInit, OnDestroy, AfterViewI
|
|
|
190
205
|
multiMapper: NgJvxMultiOptionMapper<any>;
|
|
191
206
|
searchMapper: NgJvxSearchMapper<any>;
|
|
192
207
|
groupBy: NgJvxGroupMapper<any> | string | null;
|
|
193
|
-
set value(value: any[]);
|
|
194
|
-
get value(): any[];
|
|
195
208
|
requestHeaders: HttpHeaders;
|
|
196
|
-
get required(): boolean;
|
|
197
|
-
set required(req: boolean);
|
|
198
209
|
postPayload: i0.InputSignal<object>;
|
|
199
210
|
private _required;
|
|
200
211
|
private _jvxWidth;
|
|
201
|
-
get disabled(): boolean;
|
|
202
|
-
set disabled(value: boolean);
|
|
203
|
-
get pageSize(): number;
|
|
204
|
-
set pageSize(val: number);
|
|
205
212
|
private _disabled;
|
|
206
|
-
|
|
213
|
+
private observer;
|
|
207
214
|
valueChange: EventEmitter<any[]>;
|
|
208
215
|
jvxMultiselectOpen: EventEmitter<void>;
|
|
209
216
|
jvxMultiselectOpened: EventEmitter<void>;
|
|
@@ -247,8 +254,8 @@ declare class NgJvxMultiselectComponent implements OnInit, OnDestroy, AfterViewI
|
|
|
247
254
|
private unsubscribe;
|
|
248
255
|
private unsubscribe$;
|
|
249
256
|
private intPageSize;
|
|
257
|
+
setDisabledState(isDisabled: boolean): void;
|
|
250
258
|
onTouched: () => void;
|
|
251
|
-
constructor(formBuilder: UntypedFormBuilder, service: NgJvxMultiselectService, elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, ngControl: NgControl, fb: UntypedFormBuilder);
|
|
252
259
|
ngOnInit(): void;
|
|
253
260
|
private areArraysEqual;
|
|
254
261
|
private clientSearch;
|
|
@@ -256,8 +263,6 @@ declare class NgJvxMultiselectComponent implements OnInit, OnDestroy, AfterViewI
|
|
|
256
263
|
private serverSearch;
|
|
257
264
|
ngOnDestroy(): void;
|
|
258
265
|
ngAfterViewInit(): void;
|
|
259
|
-
get selectionValue(): any[];
|
|
260
|
-
get empty(): boolean;
|
|
261
266
|
onCLickOnMenu(e: MouseEvent): void;
|
|
262
267
|
private propagateChange;
|
|
263
268
|
writeValue(obj: any[]): void;
|
|
@@ -274,20 +279,20 @@ declare class NgJvxMultiselectComponent implements OnInit, OnDestroy, AfterViewI
|
|
|
274
279
|
private getList;
|
|
275
280
|
onScrolled(e: any): void;
|
|
276
281
|
onMenuOpened(): void;
|
|
282
|
+
private onSentinelVisible;
|
|
277
283
|
onMenuClosed(): void;
|
|
278
284
|
onSearchInputClick(e: MouseEvent): void;
|
|
279
285
|
onSearchValueChange(e: any): void;
|
|
280
286
|
clear(e: Event): void;
|
|
281
287
|
setDescribedByIds(ids: string[]): void;
|
|
282
288
|
onContainerClick(event: MouseEvent): void;
|
|
283
|
-
private get stateChange$();
|
|
284
289
|
updateOrderedOptions(options: any): Observable<any>;
|
|
285
290
|
closeMenu(): void;
|
|
286
291
|
isOptionSelected(option: any): boolean;
|
|
287
292
|
clickOnOption(option: any): void;
|
|
288
293
|
select(option: any): void;
|
|
289
294
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgJvxMultiselectComponent, [null, null, null, null, { optional: true; self: true; }, null]>;
|
|
290
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgJvxMultiselectComponent, "ng-jvx-multiselect", never, { "options": { "alias": "options"; "required": false; }; "
|
|
295
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgJvxMultiselectComponent, "ng-jvx-multiselect", never, { "options": { "alias": "options"; "required": false; }; "value": { "alias": "value"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "multi": { "alias": "multi"; "required": false; }; "url": { "alias": "url"; "required": false; }; "requestType": { "alias": "requestType"; "required": false; }; "itemValue": { "alias": "itemValue"; "required": false; }; "itemText": { "alias": "itemText"; "required": false; }; "ignorePagination": { "alias": "ignorePagination"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "closeOnClick": { "alias": "closeOnClick"; "required": false; }; "hasErrors": { "alias": "hasErrors"; "required": false; }; "searchMode": { "alias": "searchMode"; "required": false; }; "searchInput": { "alias": "searchInput"; "required": false; }; "searchLabel": { "alias": "searchLabel"; "required": false; }; "listProp": { "alias": "listProp"; "required": false; }; "totalRowsProp": { "alias": "totalRowsProp"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "searchProp": { "alias": "searchProp"; "required": false; }; "closeButton": { "alias": "closeButton"; "required": false; }; "mapper": { "alias": "mapper"; "required": false; }; "multiMapper": { "alias": "multiMapper"; "required": false; }; "searchMapper": { "alias": "searchMapper"; "required": false; }; "groupBy": { "alias": "groupBy"; "required": false; }; "requestHeaders": { "alias": "requestHeaders"; "required": false; }; "postPayload": { "alias": "postPayload"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "jvxMultiselectOpen": "jvxMultiselectOpen"; "jvxMultiselectOpened": "jvxMultiselectOpened"; "jvxMultiselectClose": "jvxMultiselectClose"; "jvxMultiselectClosed": "jvxMultiselectClosed"; "scrollEnd": "scrollEnd"; }, ["optionsTemplate", "selectionTemplate", "groupHeaderTemplate"], ["*", "[ng-jvx-footer]", "[placeholder]"], true, never>;
|
|
291
296
|
}
|
|
292
297
|
|
|
293
298
|
declare class NgJvxMultisectChipComponent {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ng-jvx-multiselect",
|
|
3
|
-
"version": "20.0.
|
|
3
|
+
"version": "20.0.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ng-jvx-multiselect is a select for angular projects. It handles both single and multiple selections and allows to retrieves the options via asynchronous calls.",
|
|
6
6
|
"exports": {
|