@anglr/select 14.0.0-beta.20250708083708 → 14.0.0-beta.20260209113815
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/changelog.md +17 -0
- package/es2022/material/src/components/basicDialogPopup/basicDialogPopup.component.js +3 -3
- package/es2022/material/src/directives/dialogPopup/dialogPopup.directive.js +3 -3
- package/es2022/material/src/directives/dialogPopup/dialogPopup.directive.js.map +1 -1
- package/es2022/material/src/modules/dialogPopup.module.js +4 -4
- package/es2022/material/src/modules/virtualEditPopup.module.js +4 -4
- package/es2022/material/src/plugins/popup/dialog/dialogPopup.component.js +3 -3
- package/es2022/material/src/plugins/popup/virtualEdit/virtualEditPopup.component.js +3 -3
- package/es2022/material/src/plugins/popup/virtualEdit/virtualEditPopup.component.js.map +1 -1
- package/es2022/src/components/option/optgroup.component.js +3 -3
- package/es2022/src/components/option/optgroup.component.js.map +1 -1
- package/es2022/src/components/option/option.component.js +3 -3
- package/es2022/src/components/option/option.component.js.map +1 -1
- package/es2022/src/components/select/select.component.js +3 -3
- package/es2022/src/components/select/select.component.js.map +1 -1
- package/es2022/src/directives/ngSelectAbsolute/ngSelectAbsolute.directive.js +3 -3
- package/es2022/src/directives/ngSelectEdit/ngSelectEdit.directive.js +3 -3
- package/es2022/src/directives/ngSelectPlaceholder/ngSelectPlaceholder.directive.js +3 -3
- package/es2022/src/directives/ngSelectPlaceholder/ngSelectPlaceholder.directive.js.map +1 -1
- package/es2022/src/misc/ngSelectControlValueAccessor.directive.js +3 -3
- package/es2022/src/misc/pluginBus/pluginBus.js +3 -3
- package/es2022/src/modules/ngSelect.module.js +4 -4
- package/es2022/src/modules/ngSelectDynamic.module.js +4 -4
- package/es2022/src/modules/ngSelectEdit.module.js +4 -4
- package/es2022/src/pipes/ngSelectHasValue.pipe.js +3 -3
- package/es2022/src/pipes/ngSelectValue.pipe.js +3 -3
- package/es2022/src/plugins/keyboardHandler/basic/basicKeyboardHandler.component.js +3 -3
- package/es2022/src/plugins/keyboardHandler/edit/editKeyboardHandler.component.js +3 -3
- package/es2022/src/plugins/liveSearch/basic/basicLiveSearch.component.js +4 -7
- package/es2022/src/plugins/liveSearch/basic/basicLiveSearch.component.js.map +1 -1
- package/es2022/src/plugins/liveSearch/edit/editLiveSearch.component.js +4 -7
- package/es2022/src/plugins/liveSearch/edit/editLiveSearch.component.js.map +1 -1
- package/es2022/src/plugins/liveSearch/no/noLiveSearch.component.js +3 -3
- package/es2022/src/plugins/normalState/basic/basicNormalState.component.js +3 -3
- package/es2022/src/plugins/normalState/edit/editNormalState.component.js +3 -3
- package/es2022/src/plugins/normalState/normalStateAbstract.component.js +4 -7
- package/es2022/src/plugins/normalState/normalStateAbstract.component.js.map +1 -1
- package/es2022/src/plugins/popup/basic/basicPopup.component.js +3 -3
- package/es2022/src/plugins/popup/edit/editPopup.component.js +3 -3
- package/es2022/src/plugins/popup/popupAbstract.component.js +4 -7
- package/es2022/src/plugins/popup/popupAbstract.component.js.map +1 -1
- package/es2022/src/plugins/positioner/default/defaultPositioner.component.js +3 -3
- package/es2022/src/plugins/positioner/no/noPositioner.component.js +3 -3
- package/es2022/src/plugins/valueHandler/basic/basicValueHandler.component.js +3 -3
- package/es2022/src/plugins/valueHandler/dynamic/dynamicValueHandler.component.js +3 -3
- package/es2022/src/plugins/valueHandler/valueHandlerBase.js +3 -3
- package/material/src/plugins/popup/dialog/dialogPopup.component.d.ts.map +1 -1
- package/package.json +30 -30
- package/src/plugins/keyboardHandler/basic/basicKeyboardHandler.component.d.ts.map +1 -1
- package/src/plugins/keyboardHandler/edit/editKeyboardHandler.component.d.ts.map +1 -1
- package/src/plugins/liveSearch/basic/basicLiveSearch.component.d.ts +0 -4
- package/src/plugins/liveSearch/basic/basicLiveSearch.component.d.ts.map +1 -1
- package/src/plugins/liveSearch/edit/editLiveSearch.component.d.ts +0 -4
- package/src/plugins/liveSearch/edit/editLiveSearch.component.d.ts.map +1 -1
- package/src/plugins/normalState/normalStateAbstract.component.d.ts +0 -5
- package/src/plugins/normalState/normalStateAbstract.component.d.ts.map +1 -1
- package/src/plugins/popup/popupAbstract.component.d.ts +0 -4
- package/src/plugins/popup/popupAbstract.component.d.ts.map +1 -1
- package/src/plugins/valueHandler/basic/basicValueHandler.component.d.ts.map +1 -1
- package/src/plugins/valueHandler/dynamic/dynamicValueHandler.component.d.ts.map +1 -1
- package/src/plugins/valueHandler/valueHandlerBase.d.ts.map +1 -1
- package/version.bak +1 -1
package/changelog.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Version 14.0.0 (2026-02-09)
|
|
4
|
+
|
|
5
|
+
### BREAKING CHANGES
|
|
6
|
+
|
|
7
|
+
- minimal supported version of `NodeJs` is `20`
|
|
8
|
+
- minimal supported version of `angular` is `21.1.3`
|
|
9
|
+
- minimal supported version of `@anglr/common` is `24.0.0`
|
|
10
|
+
- minimal supported version of `@jscrpt/common` is `7.1.0`
|
|
11
|
+
- updated `BasicLiveSearchComponent` component
|
|
12
|
+
- does not support automatic update of text when language has changed
|
|
13
|
+
- updated `EditLiveSearchComponent` component
|
|
14
|
+
- does not support automatic update of text when language has changed
|
|
15
|
+
- updated `NormalStateAbstractComponent` component
|
|
16
|
+
- does not support automatic update of text when language has changed
|
|
17
|
+
- updated `PopupAbstractComponent` component
|
|
18
|
+
- does not support automatic update of text when language has changed
|
|
19
|
+
|
|
3
20
|
## Version 12.1.1 (2025-07-08)
|
|
4
21
|
|
|
5
22
|
### Bug Fixes
|
|
@@ -60,10 +60,10 @@ export class BasicDialogPopupComponent {
|
|
|
60
60
|
invalidateVisuals() {
|
|
61
61
|
this._changeDetector.detectChanges();
|
|
62
62
|
}
|
|
63
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
64
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: BasicDialogPopupComponent, deps: [{ token: i1.MatDialogRef }, { token: i0.ChangeDetectorRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: BasicDialogPopupComponent, isStandalone: false, selector: "ng-select-basic-dialog-popup", ngImport: i0, template: " \r\n<ng-template #defaultOptionTextLook let-option>{{option?.text}}</ng-template>\r\n\r\n<div *ngFor=\"let option of selectOptions\"\r\n [ngClass]=\"options?.cssClasses?.optionItemDiv\"\r\n [class.selected]=\"option?.selected\"\r\n (click)=\"data?.pluginBus?.optionSelect?.emit(option)\">\r\n <div [ngClass]=\"options?.cssClasses?.optionItemTextDiv\">\r\n <ng-container *ngTemplateOutlet=\"data?.pluginBus?.selectOptions?.templateGatherer?.optionTemplate || defaultOptionTextLook; context: {$implicit: option, popup: this}\"></ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"option?.selected && data?.pluginBus?.selectOptions?.multiple\" [ngClass]=\"options?.cssClasses?.optionChecked\"></div>\r\n</div>", styles: [".option-item\r\n{\r\n padding: 3px 12px;\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.option-item .option-item-text\r\n{\r\n min-width: 0;\r\n flex: 1;\r\n white-space: nowrap;\r\n}\r\n\r\n.option-item .option-item-text:hover\r\n{\r\n cursor: pointer;\r\n}\r\n\r\n.option-item .fa-check\r\n{\r\n margin-left: 8px;\r\n}\r\n\r\n.option-item.selected,\r\n.option-item.active\r\n{\r\n background-color: #E8E8E8;\r\n background-image: linear-gradient(to bottom,#F5F5F5 0,#E8E8E8 100%);\r\n}\r\n\r\n.option-item:hover\r\n{\r\n background-color: #E8E8E8;\r\n background-image: linear-gradient(to bottom,#F5F5F5 0,#E8E8E8 100%);\r\n cursor: pointer;\r\n}"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
65
65
|
}
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: BasicDialogPopupComponent, decorators: [{
|
|
67
67
|
type: Component,
|
|
68
68
|
args: [{ selector: 'ng-select-basic-dialog-popup', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: " \r\n<ng-template #defaultOptionTextLook let-option>{{option?.text}}</ng-template>\r\n\r\n<div *ngFor=\"let option of selectOptions\"\r\n [ngClass]=\"options?.cssClasses?.optionItemDiv\"\r\n [class.selected]=\"option?.selected\"\r\n (click)=\"data?.pluginBus?.optionSelect?.emit(option)\">\r\n <div [ngClass]=\"options?.cssClasses?.optionItemTextDiv\">\r\n <ng-container *ngTemplateOutlet=\"data?.pluginBus?.selectOptions?.templateGatherer?.optionTemplate || defaultOptionTextLook; context: {$implicit: option, popup: this}\"></ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"option?.selected && data?.pluginBus?.selectOptions?.multiple\" [ngClass]=\"options?.cssClasses?.optionChecked\"></div>\r\n</div>", styles: [".option-item\r\n{\r\n padding: 3px 12px;\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.option-item .option-item-text\r\n{\r\n min-width: 0;\r\n flex: 1;\r\n white-space: nowrap;\r\n}\r\n\r\n.option-item .option-item-text:hover\r\n{\r\n cursor: pointer;\r\n}\r\n\r\n.option-item .fa-check\r\n{\r\n margin-left: 8px;\r\n}\r\n\r\n.option-item.selected,\r\n.option-item.active\r\n{\r\n background-color: #E8E8E8;\r\n background-image: linear-gradient(to bottom,#F5F5F5 0,#E8E8E8 100%);\r\n}\r\n\r\n.option-item:hover\r\n{\r\n background-color: #E8E8E8;\r\n background-image: linear-gradient(to bottom,#F5F5F5 0,#E8E8E8 100%);\r\n cursor: pointer;\r\n}"] }]
|
|
69
69
|
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
@@ -47,15 +47,15 @@ export class DialogPopupDirective {
|
|
|
47
47
|
}));
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
51
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: DialogPopupDirective, deps: [{ token: i1.NgSelectComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
51
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: DialogPopupDirective, isStandalone: true, selector: "ng-select[dialogPopup]", inputs: { popupType: ["dialogPopup", "popupType"], dialogPopupOptions: "dialogPopupOptions" }, providers: [
|
|
52
52
|
{
|
|
53
53
|
provide: POPUP_TYPE,
|
|
54
54
|
useValue: DialogPopupComponent
|
|
55
55
|
}
|
|
56
56
|
], usesOnChanges: true, ngImport: i0 }); }
|
|
57
57
|
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: DialogPopupDirective, decorators: [{
|
|
59
59
|
type: Directive,
|
|
60
60
|
args: [{
|
|
61
61
|
selector: 'ng-select[dialogPopup]',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialogPopup.directive.js","sourceRoot":"","sources":["../../../../../material/src/directives/dialogPopup/dialogPopup.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAiB,KAAK,EAA2B,MAAM,eAAe,CAAC;AAExF,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAsB,MAAM,eAAe,CAAC;AACjF,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;;;AAGpE;;GAEG;AAaH,MAAM,OAAO,oBAAoB;IAgB7B,iEAAiE;IACjE,YAAsB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;QAfhD,gFAAgF;QAEhF;;WAEG;QAEI,cAAS,GAA+C,IAAI,CAAC;QAEpE;;WAEG;QAEI,uBAAkB,GAAwB,IAAI,CAAC;IAKtD,CAAC;IAED,kGAAkG;IAElG;;OAEG;IACI,WAAW,CAAC,OAAsB;QAErC,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,IAAG,MAAM,CAAuB,WAAW,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,EACzE,CAAC;YACG,OAAO,GAAG,IAAI,CAAC;YAEf,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7C,CAAC;QAED,IAAG,MAAM,CAAuB,oBAAoB,CAAC,IAAI,OAAO,EAChE,CAAC;YACG,OAAO,GAAG,IAAI,CAAC;YAEf,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACpD,CAAC;QAED,IAAG,OAAO,EACV,CAAC;YACG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CACjC;gBACI,OAAO,EACP;oBACI,KAAK,EACL;wBACI,OAAO,EAAE,OAAO;qBACnB;iBACJ;aACJ,CAAC,CAAC,CAAC;QACR,CAAC;IACL,CAAC;8GA1DQ,oBAAoB;kGAApB,oBAAoB,oKAR7B;YAEI;gBACI,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,oBAAoB;aACjC;SACJ;;2FAEQ,oBAAoB;kBAZhC,SAAS;mBACV;oBACI,QAAQ,EAAE,wBAAwB;oBAClC,SAAS,EACT;wBAEI;4BACI,OAAO,EAAE,UAAU;4BACnB,QAAQ,EAAE,oBAAoB;yBACjC;qBACJ;iBACJ
|
|
1
|
+
{"version":3,"file":"dialogPopup.directive.js","sourceRoot":"","sources":["../../../../../material/src/directives/dialogPopup/dialogPopup.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAiB,KAAK,EAA2B,MAAM,eAAe,CAAC;AAExF,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAsB,MAAM,eAAe,CAAC;AACjF,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;;;AAGpE;;GAEG;AAaH,MAAM,OAAO,oBAAoB;IAgB7B,iEAAiE;IACjE,YAAsB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;QAfhD,gFAAgF;QAEhF;;WAEG;QAEI,cAAS,GAA+C,IAAI,CAAC;QAEpE;;WAEG;QAEI,uBAAkB,GAAwB,IAAI,CAAC;IAKtD,CAAC;IAED,kGAAkG;IAElG;;OAEG;IACI,WAAW,CAAC,OAAsB;QAErC,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,IAAG,MAAM,CAAuB,WAAW,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,EACzE,CAAC;YACG,OAAO,GAAG,IAAI,CAAC;YAEf,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7C,CAAC;QAED,IAAG,MAAM,CAAuB,oBAAoB,CAAC,IAAI,OAAO,EAChE,CAAC;YACG,OAAO,GAAG,IAAI,CAAC;YAEf,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACpD,CAAC;QAED,IAAG,OAAO,EACV,CAAC;YACG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CACjC;gBACI,OAAO,EACP;oBACI,KAAK,EACL;wBACI,OAAO,EAAE,OAAO;qBACnB;iBACJ;aACJ,CAAC,CAAC,CAAC;QACR,CAAC;IACL,CAAC;8GA1DQ,oBAAoB;kGAApB,oBAAoB,oKAR7B;YAEI;gBACI,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,oBAAoB;aACjC;SACJ;;2FAEQ,oBAAoB;kBAZhC,SAAS;mBACV;oBACI,QAAQ,EAAE,wBAAwB;oBAClC,SAAS,EACT;wBAEI;4BACI,OAAO,EAAE,UAAU;4BACnB,QAAQ,EAAE,oBAAoB;yBACjC;qBACJ;iBACJ;;sBAQI,KAAK;uBAAC,aAAa;;sBAMnB,KAAK","sourcesContent":["import {Directive, ValueProvider, Input, SimpleChanges, OnChanges} from '@angular/core';\nimport {ComponentType} from '@angular/cdk/portal';\nimport {POPUP_TYPE, NgSelectComponent, VisualPluginOptions} from '@anglr/select';\nimport {patchOptions} from '@anglr/select/extensions';\nimport {nameof} from '@jscrpt/common';\n\nimport {DialogPopupComponent} from '../../plugins/popup/components';\nimport {DialogPopupContentComponent, DialogPopupOptions} from '../../plugins/popup';\n\n/**\n * Directive that changes ng select popup to DialogPopup\n */\n@Directive(\n{\n selector: 'ng-select[dialogPopup]',\n providers:\n [\n <ValueProvider>\n {\n provide: POPUP_TYPE,\n useValue: DialogPopupComponent\n }\n ]\n})\nexport class DialogPopupDirective implements OnChanges\n{\n //######################### public properties - inputs #########################\n\n /**\n * Popup type that will be used\n */\n @Input('dialogPopup')\n public popupType: ComponentType<DialogPopupContentComponent> = null;\n\n /**\n * Dialog popup options\n */\n @Input()\n public dialogPopupOptions: VisualPluginOptions = null;\n\n //######################### constructor #########################\n constructor(protected _select: NgSelectComponent)\n {\n }\n\n //######################### public methods - implementation of OnChanges #########################\n\n /**\n * Called when input value changes\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n const options: DialogPopupOptions = {};\n let changed = false;\n\n if(nameof<DialogPopupDirective>('popupType') in changes && this.popupType)\n {\n changed = true;\n\n options.dialogComponent = this.popupType;\n }\n\n if(nameof<DialogPopupDirective>('dialogPopupOptions') in changes)\n {\n changed = true;\n\n options.dialogOptions = this.dialogPopupOptions;\n }\n\n if(changed)\n {\n this._select.execute(patchOptions(\n {\n plugins:\n {\n popup:\n {\n options: options\n }\n }\n }));\n }\n }\n}"]}
|
|
@@ -9,17 +9,17 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
* Module allows using of angular material dialog for select popup
|
|
10
10
|
*/
|
|
11
11
|
export class NgSelectDialogPopupModule {
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
13
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: NgSelectDialogPopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: NgSelectDialogPopupModule, declarations: [DialogPopupComponent,
|
|
14
14
|
BasicDialogPopupComponent], imports: [CommonModule,
|
|
15
15
|
MatDialogModule,
|
|
16
16
|
DialogPopupDirective], exports: [DialogPopupComponent,
|
|
17
17
|
DialogPopupDirective,
|
|
18
18
|
BasicDialogPopupComponent] }); }
|
|
19
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
19
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: NgSelectDialogPopupModule, imports: [CommonModule,
|
|
20
20
|
MatDialogModule] }); }
|
|
21
21
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: NgSelectDialogPopupModule, decorators: [{
|
|
23
23
|
type: NgModule,
|
|
24
24
|
args: [{
|
|
25
25
|
imports: [
|
|
@@ -7,13 +7,13 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
* Module for VirtualEditPopup components, can also by used for non edit version
|
|
8
8
|
*/
|
|
9
9
|
export class VirtualEditPopupModule {
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
11
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: VirtualEditPopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: VirtualEditPopupModule, declarations: [VirtualEditPopupComponent], imports: [CommonModule,
|
|
12
12
|
ScrollingModule], exports: [VirtualEditPopupComponent] }); }
|
|
13
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
13
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: VirtualEditPopupModule, imports: [CommonModule,
|
|
14
14
|
ScrollingModule] }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: VirtualEditPopupModule, decorators: [{
|
|
17
17
|
type: NgModule,
|
|
18
18
|
args: [{
|
|
19
19
|
imports: [
|
|
@@ -114,10 +114,10 @@ export class DialogPopupComponent {
|
|
|
114
114
|
toggleDialog() {
|
|
115
115
|
this._handleDialog(true);
|
|
116
116
|
}
|
|
117
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
118
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
117
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: DialogPopupComponent, deps: [{ token: NG_SELECT_PLUGIN_INSTANCES, optional: true }, { token: i1.PluginBus, optional: true }, { token: i0.ElementRef }, { token: i2.MatDialog }, { token: i0.ChangeDetectorRef }, { token: POPUP_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
118
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: DialogPopupComponent, isStandalone: false, selector: "div.ng-select-dialog-popup", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
119
119
|
}
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: DialogPopupComponent, decorators: [{
|
|
121
121
|
type: Component,
|
|
122
122
|
args: [{
|
|
123
123
|
selector: 'div.ng-select-dialog-popup',
|
|
@@ -76,10 +76,10 @@ export class VirtualEditPopupComponent extends EditPopupComponent {
|
|
|
76
76
|
// this.viewPort.elementRef.nativeElement.scrollTop = scrollTop;
|
|
77
77
|
// }
|
|
78
78
|
}
|
|
79
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
80
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
79
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: VirtualEditPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
80
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: VirtualEditPopupComponent, isStandalone: false, selector: "div.ng-select-virtual-edit-popup", viewQueries: [{ propertyName: "viewPort", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #defaultOptionTextLook let-option>{{option?.text}}</ng-template>\r\n\r\n<div #popupDiv \r\n *ngIf=\"options?.visible\"\r\n [ngClass]=\"options?.cssClasses?.popupDiv\">\r\n\r\n <cdk-virtual-scroll-viewport itemSize=\"28\" class=\"thin-scrollbar\">\r\n <div *cdkVirtualFor=\"let option of selectOptions\"\r\n #popupOptions\r\n [ngClass]=\"options?.cssClasses?.optionItemDiv\"\r\n [class.active]=\"option?.active\"\r\n [class.selected]=\"option?.selected\"\r\n (mouseenter)=\"handleMouseActivation(option)\"\r\n (click)=\"pluginBus?.optionSelect?.emit(option)\">\r\n <div [ngClass]=\"options?.cssClasses?.optionItemTextDiv\">\r\n <ng-container *ngTemplateOutlet=\"pluginBus?.selectOptions?.templateGatherer?.optionTemplate || defaultOptionTextLook; context: {$implicit: option, popup: this}\"></ng-container>\r\n </div>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n \r\n <div *ngIf=\"!selectOptions?.length\">{{texts?.noAvailableOptions}}</div>\r\n</div>", styles: [".popup-div\r\n{\r\n position: absolute;\r\n z-index: 1000;\r\n background-color: #FFFFFF;\r\n border-radius: 4px;\r\n border: 1px solid #BBBBBB;\r\n overflow: hidden;\r\n padding: 5px 0;\r\n box-shadow: 0 6px 12px rgba(0,0,0,.175);\r\n scrollbar-width: thin;\r\n}\r\n\r\ncdk-virtual-scroll-viewport\r\n{\r\n height: 290px;\r\n transition: width 200ms;\r\n}\r\n\r\n.popup-div::-webkit-scrollbar-thumb \r\n{\r\n background-color: #cdcdcd;\r\n}\r\n\r\n.popup-div::-webkit-scrollbar \r\n{\r\n width: 6px;\r\n background-color: #f0f0f0;\r\n}\r\n\r\n.option-item\r\n{\r\n padding: 3px 12px;\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.option-item .option-item-text\r\n{\r\n min-width: 0;\r\n flex: 1;\r\n white-space: nowrap;\r\n}\r\n\r\n.option-item .option-item-text:hover\r\n{\r\n cursor: pointer;\r\n}\r\n\r\n.option-item .fa-check\r\n{\r\n margin-left: 8px;\r\n}\r\n\r\n.option-item.selected,\r\n.option-item.active\r\n{\r\n background-color: #E8E8E8;\r\n background-image: linear-gradient(to bottom,#F5F5F5 0,#E8E8E8 100%);\r\n}\r\n\r\n.option-item:hover\r\n{\r\n background-color: #E8E8E8;\r\n background-image: linear-gradient(to bottom,#F5F5F5 0,#E8E8E8 100%);\r\n cursor: pointer;\r\n}"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
81
81
|
}
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: VirtualEditPopupComponent, decorators: [{
|
|
83
83
|
type: Component,
|
|
84
84
|
args: [{ selector: 'div.ng-select-virtual-edit-popup', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #defaultOptionTextLook let-option>{{option?.text}}</ng-template>\r\n\r\n<div #popupDiv \r\n *ngIf=\"options?.visible\"\r\n [ngClass]=\"options?.cssClasses?.popupDiv\">\r\n\r\n <cdk-virtual-scroll-viewport itemSize=\"28\" class=\"thin-scrollbar\">\r\n <div *cdkVirtualFor=\"let option of selectOptions\"\r\n #popupOptions\r\n [ngClass]=\"options?.cssClasses?.optionItemDiv\"\r\n [class.active]=\"option?.active\"\r\n [class.selected]=\"option?.selected\"\r\n (mouseenter)=\"handleMouseActivation(option)\"\r\n (click)=\"pluginBus?.optionSelect?.emit(option)\">\r\n <div [ngClass]=\"options?.cssClasses?.optionItemTextDiv\">\r\n <ng-container *ngTemplateOutlet=\"pluginBus?.selectOptions?.templateGatherer?.optionTemplate || defaultOptionTextLook; context: {$implicit: option, popup: this}\"></ng-container>\r\n </div>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n \r\n <div *ngIf=\"!selectOptions?.length\">{{texts?.noAvailableOptions}}</div>\r\n</div>", styles: [".popup-div\r\n{\r\n position: absolute;\r\n z-index: 1000;\r\n background-color: #FFFFFF;\r\n border-radius: 4px;\r\n border: 1px solid #BBBBBB;\r\n overflow: hidden;\r\n padding: 5px 0;\r\n box-shadow: 0 6px 12px rgba(0,0,0,.175);\r\n scrollbar-width: thin;\r\n}\r\n\r\ncdk-virtual-scroll-viewport\r\n{\r\n height: 290px;\r\n transition: width 200ms;\r\n}\r\n\r\n.popup-div::-webkit-scrollbar-thumb \r\n{\r\n background-color: #cdcdcd;\r\n}\r\n\r\n.popup-div::-webkit-scrollbar \r\n{\r\n width: 6px;\r\n background-color: #f0f0f0;\r\n}\r\n\r\n.option-item\r\n{\r\n padding: 3px 12px;\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.option-item .option-item-text\r\n{\r\n min-width: 0;\r\n flex: 1;\r\n white-space: nowrap;\r\n}\r\n\r\n.option-item .option-item-text:hover\r\n{\r\n cursor: pointer;\r\n}\r\n\r\n.option-item .fa-check\r\n{\r\n margin-left: 8px;\r\n}\r\n\r\n.option-item.selected,\r\n.option-item.active\r\n{\r\n background-color: #E8E8E8;\r\n background-image: linear-gradient(to bottom,#F5F5F5 0,#E8E8E8 100%);\r\n}\r\n\r\n.option-item:hover\r\n{\r\n background-color: #E8E8E8;\r\n background-image: linear-gradient(to bottom,#F5F5F5 0,#E8E8E8 100%);\r\n cursor: pointer;\r\n}"] }]
|
|
85
85
|
}], propDecorators: { viewPort: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualEditPopup.component.js","sourceRoot":"","sources":["../../../../../../material/src/plugins/popup/virtualEdit/virtualEditPopup.component.ts","../../../../../../material/src/plugins/popup/virtualEdit/virtualEditPopup.component.html"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"virtualEditPopup.component.js","sourceRoot":"","sources":["../../../../../../material/src/plugins/popup/virtualEdit/virtualEditPopup.component.ts","../../../../../../material/src/plugins/popup/virtualEdit/virtualEditPopup.component.html"],"names":[],"mappings":"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","sourcesContent":["import {ChangeDetectionStrategy, Component, ViewChild} from '@angular/core';\nimport {CdkVirtualScrollViewport} from '@angular/cdk/scrolling';\nimport {EditPopupComponent, NgSelectPlugin, ɵNgSelectOption} from '@anglr/select';\n\nimport {VirtualEditPopup, VirtualEditPopupOptions} from './virtualEditPopup.interface';\n\n//TODO - resize and scroll\n//TODO - too few items and height\n//TODO - dynamic width update and collision with viewport\n\n/**\n * Component used for rendering virtual edit popup with options\n */\n@Component(\n{\n selector: 'div.ng-select-virtual-edit-popup',\n templateUrl: 'virtualEditPopup.component.html',\n styleUrl: 'virtualEditPopup.component.scss',\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VirtualEditPopupComponent extends EditPopupComponent implements VirtualEditPopup, NgSelectPlugin<VirtualEditPopupOptions>\n{\n //######################### protected properties #########################\n\n /**\n * Currently stored max width of displayed popup\n */\n protected _maxWidth: number = 0;\n\n //######################### public properties - children #########################\n\n // /**\n // *\n // */\n // @ViewChildren('popupOptions')\n // public popupOptions: QueryList<ElementRef>;\n\n /**\n * View port that is used for virtual scrolling\n */\n @ViewChild(CdkVirtualScrollViewport)\n public viewPort: CdkVirtualScrollViewport;\n\n //######################### protected properties #########################\n\n /**\n * Gets currently available options\n */\n protected get availableOptions(): ɵNgSelectOption[]\n {\n return this.pluginBus.selectOptions.optionsGatherer.availableOptions;\n }\n\n //######################### public properties #########################\n\n public override invalidateVisuals()\n {\n super.invalidateVisuals();\n\n this._scrollToOption();\n }\n\n /**\n * Toggles popup visibility\n */\n protected override togglePopup(): void\n {\n super.togglePopup();\n\n if(this.viewPort)\n {\n this.viewPort.elementScrolled().subscribe(() =>\n {\n const viewportElement = this.viewPort?.getElementRef().nativeElement;\n\n if(viewportElement)\n {\n const width = viewportElement.children.item(0).clientWidth;\n\n if(width > this._maxWidth)\n {\n this._maxWidth = width;\n viewportElement.style.width = `${viewportElement.children.item(0).clientWidth}px`;\n }\n }\n });\n\n setTimeout(() =>\n {\n const viewportElement = this.viewPort?.getElementRef().nativeElement;\n\n viewportElement.style.width = `${viewportElement.children.item(0).clientWidth}px`;\n }, 0);\n\n this.viewPort.getElementRef().nativeElement.style.height = this.popupElement.style.maxHeight;\n this.viewPort.checkViewportSize();\n }\n else\n {\n this._maxWidth = 0;\n }\n }\n\n private _scrollToOption()\n {\n const activeOption = this.availableOptions.find(itm => itm.active);\n const index = activeOption ? this.availableOptions.indexOf(activeOption) : 0;\n\n this.viewPort?.scrollToIndex(index);\n\n // if (index === 0)\n // {\n // // scrollTop = 0;\n // }\n // else\n // {\n // // scrollTop = this._getOptionScrollPosition(this.viewPort.elementRef.nativeElement?.scrollTop);\n // }\n\n // console.log(scrollTop);\n\n // if (this.popupElement)\n // {\n // this.viewPort.elementRef.nativeElement.scrollTop = scrollTop;\n // }\n }\n\n // private _getOptionScrollPosition(currentScrollPosition: number)\n // {\n // const activeOptionsElement = this.popupOptions.toArray().find(el => el.nativeElement.classList.contains('active'))?.nativeElement;\n // const top = activeOptionsElement?.offsetTop;\n // const bottom = top + activeOptionsElement?.offsetHeight;\n\n // if (bottom > this.popupElement?.clientHeight + currentScrollPosition)\n // {\n // return Math.max(bottom - this.popupElement?.clientHeight);\n // }\n // else if (top < currentScrollPosition)\n // {\n // return Math.max(0, top);\n // }\n\n // return currentScrollPosition;\n // }\n}","<ng-template #defaultOptionTextLook let-option>{{option?.text}}</ng-template>\r\n\r\n<div #popupDiv \r\n *ngIf=\"options?.visible\"\r\n [ngClass]=\"options?.cssClasses?.popupDiv\">\r\n\r\n <cdk-virtual-scroll-viewport itemSize=\"28\" class=\"thin-scrollbar\">\r\n <div *cdkVirtualFor=\"let option of selectOptions\"\r\n #popupOptions\r\n [ngClass]=\"options?.cssClasses?.optionItemDiv\"\r\n [class.active]=\"option?.active\"\r\n [class.selected]=\"option?.selected\"\r\n (mouseenter)=\"handleMouseActivation(option)\"\r\n (click)=\"pluginBus?.optionSelect?.emit(option)\">\r\n <div [ngClass]=\"options?.cssClasses?.optionItemTextDiv\">\r\n <ng-container *ngTemplateOutlet=\"pluginBus?.selectOptions?.templateGatherer?.optionTemplate || defaultOptionTextLook; context: {$implicit: option, popup: this}\"></ng-container>\r\n </div>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n \r\n <div *ngIf=\"!selectOptions?.length\">{{texts?.noAvailableOptions}}</div>\r\n</div>"]}
|
|
@@ -34,10 +34,10 @@ export class OptGroupComponent {
|
|
|
34
34
|
this._optionsChange.emit();
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: OptGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: OptGroupComponent, isStandalone: false, selector: "ng-select>ng-optgroup", inputs: { text: "text" }, viewQueries: [{ propertyName: "optionsChildren", predicate: OptionComponent, descendants: true }], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39
39
|
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: OptGroupComponent, decorators: [{
|
|
41
41
|
type: Component,
|
|
42
42
|
args: [{
|
|
43
43
|
selector: 'ng-select>ng-optgroup',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optgroup.component.js","sourceRoot":"","sources":["../../../../src/components/option/optgroup.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAgB,MAAM,eAAe,CAAC;AAI9H,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;;AAEnD;;GAEG;AAQH,MAAM,OAAO,iBAAiB;IAP9B;QASI,oEAAoE;QAEpE;;WAEG;QACK,mBAAc,GAAuB,IAAI,YAAY,EAAQ,CAAC;KAiDzE;IA/CG,uEAAuE;IAEvE;;OAEG;IACH,IAAW,OAAO;QAEd,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,IAAW,aAAa;QAEpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAmBD,sGAAsG;IAEtG;;OAEG;IACI,eAAe;QAElB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;YAExC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;8GAvDQ,iBAAiB;kGAAjB,iBAAiB,gJAiCZ,eAAe,gDArCnB,EAAE;;2FAIH,iBAAiB;kBAP7B,SAAS;mBACV;oBACI,QAAQ,EAAE,uBAAuB;oBACjC,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD
|
|
1
|
+
{"version":3,"file":"optgroup.component.js","sourceRoot":"","sources":["../../../../src/components/option/optgroup.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAgB,MAAM,eAAe,CAAC;AAI9H,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;;AAEnD;;GAEG;AAQH,MAAM,OAAO,iBAAiB;IAP9B;QASI,oEAAoE;QAEpE;;WAEG;QACK,mBAAc,GAAuB,IAAI,YAAY,EAAQ,CAAC;KAiDzE;IA/CG,uEAAuE;IAEvE;;OAEG;IACH,IAAW,OAAO;QAEd,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,IAAW,aAAa;QAEpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAmBD,sGAAsG;IAEtG;;OAEG;IACI,eAAe;QAElB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;YAExC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;8GAvDQ,iBAAiB;kGAAjB,iBAAiB,gJAiCZ,eAAe,gDArCnB,EAAE;;2FAIH,iBAAiB;kBAP7B,SAAS;mBACV;oBACI,QAAQ,EAAE,uBAAuB;oBACjC,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD;;sBAkCI,YAAY;uBAAC,eAAe;;sBAQ5B,KAAK","sourcesContent":["import {Component, ChangeDetectionStrategy, Input, EventEmitter, QueryList, ViewChildren, AfterViewInit} from '@angular/core';\n\nimport {NgSelectOptGroup} from './optgroup.interface';\nimport {NgSelectOption} from './option.interface';\nimport {OptionComponent} from './option.component';\n\n/**\n * Component used for options group in select component\n */\n@Component(\n{\n selector: 'ng-select>ng-optgroup',\n template: '',\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OptGroupComponent<TValue = any> implements NgSelectOptGroup<TValue>, AfterViewInit\n{\n //######################### private fields #########################\n\n /**\n * Instance of event emitter for optionsChange\n */\n private _optionsChange: EventEmitter<void> = new EventEmitter<void>();\n\n //######################### public properties #########################\n\n /**\n * Options assigned to this options group\n */\n public get options(): NgSelectOption<TValue>[]\n {\n return this.optionsChildren.toArray();\n }\n\n /**\n * Occurs when options in this group change\n */\n public get optionsChange(): EventEmitter<void>\n {\n return this._optionsChange;\n }\n\n //######################### public properties - children #########################\n\n /**\n * Children options in this group\n * @internal\n */\n @ViewChildren(OptionComponent)\n public optionsChildren: QueryList<NgSelectOption<TValue>>;\n\n //######################### public properties - inputs #########################\n\n /**\n * Text that is displayed for this options group\n */\n @Input()\n public text: string;\n\n //######################### public methods - implementation of AfterViewInit #########################\n\n /**\n * Called when view was initialized\n */\n public ngAfterViewInit()\n {\n this.optionsChildren.changes.subscribe(() =>\n {\n this._optionsChange.emit();\n });\n }\n}"]}
|
|
@@ -20,10 +20,10 @@ export class OptionComponent {
|
|
|
20
20
|
*/
|
|
21
21
|
this.group = null;
|
|
22
22
|
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
24
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: OptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: OptionComponent, isStandalone: false, selector: "ng-option", inputs: { value: "value", text: "text" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: OptionComponent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
28
|
args: [{
|
|
29
29
|
selector: 'ng-option',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"option.component.js","sourceRoot":"","sources":["../../../../src/components/option/option.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAC,MAAM,eAAe,CAAC;;AAIxE;;GAEG;AAQH,MAAM,OAAO,eAAe;IAP5B;QASI,2FAA2F;QAE3F;;WAEG;QACI,WAAM,GAAY,KAAK,CAAC;QAE/B;;WAEG;QACI,aAAQ,GAAY,KAAK,CAAC;QAgBjC,uEAAuE;QAEvE;;WAEG;QACI,UAAK,GAAW,IAAI,CAAC;KAC/B;8GAlCY,eAAe;kGAAf,eAAe,gHAJd,EAAE;;2FAIH,eAAe;kBAP3B,SAAS;mBACV;oBACI,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD
|
|
1
|
+
{"version":3,"file":"option.component.js","sourceRoot":"","sources":["../../../../src/components/option/option.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAC,MAAM,eAAe,CAAC;;AAIxE;;GAEG;AAQH,MAAM,OAAO,eAAe;IAP5B;QASI,2FAA2F;QAE3F;;WAEG;QACI,WAAM,GAAY,KAAK,CAAC;QAE/B;;WAEG;QACI,aAAQ,GAAY,KAAK,CAAC;QAgBjC,uEAAuE;QAEvE;;WAEG;QACI,UAAK,GAAW,IAAI,CAAC;KAC/B;8GAlCY,eAAe;kGAAf,eAAe,gHAJd,EAAE;;2FAIH,eAAe;kBAP3B,SAAS;mBACV;oBACI,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD;;sBAoBI,KAAK;;sBAML,KAAK","sourcesContent":["import {Component, ChangeDetectionStrategy, Input} from '@angular/core';\n\nimport {NgSelectOption} from './option.interface';\n\n/**\n * Component used for options in select component\n */\n@Component(\n{\n selector: 'ng-option',\n template: '',\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OptionComponent<TValue = any> implements NgSelectOption<TValue>\n{\n //######################### public properties - template bindings #########################\n\n /**\n * Indication whether is item active\n */\n public active: boolean = false;\n\n /**\n * Indication whether this option is selected\n */\n public selected: boolean = false;\n\n //######################### public properties - inputs #########################\n\n /**\n * Value that will be used if this option will be selected\n */\n @Input()\n public value: TValue;\n\n /**\n * Text that is displayed if this value is selected\n */\n @Input()\n public text: string;\n\n //######################### public properties #########################\n\n /**\n * If specified this option will be displayed in group\n */\n public group: string = null;\n}"]}
|
|
@@ -500,8 +500,8 @@ export class NgSelectComponent {
|
|
|
500
500
|
this._selectOptions.plugins[pluginName].instanceCallback(plugin);
|
|
501
501
|
}
|
|
502
502
|
}
|
|
503
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
504
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
503
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: NgSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }, { token: i1.PluginBus }, { token: NG_SELECT_PLUGIN_INSTANCES }, { token: NG_SELECT_OPTIONS, optional: true }, { token: NORMAL_STATE_TYPE, optional: true }, { token: KEYBOARD_HANDLER_TYPE, optional: true }, { token: POPUP_TYPE, optional: true }, { token: POSITIONER_TYPE, optional: true }, { token: READONLY_STATE_TYPE, optional: true }, { token: VALUE_HANDLER_TYPE, optional: true }, { token: LIVE_SEARCH_TYPE, optional: true }, { token: 'readonly', attribute: true }, { token: 'disabled', attribute: true }, { token: 'multiple', attribute: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
504
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: NgSelectComponent, isStandalone: false, selector: "ng-select", inputs: { selectOptions: "selectOptions", disabled: "disabled", readonly: "readonly" }, providers: [
|
|
505
505
|
{
|
|
506
506
|
provide: NG_SELECT_PLUGIN_INSTANCES,
|
|
507
507
|
useFactory: () => { return {}; }
|
|
@@ -512,7 +512,7 @@ export class NgSelectComponent {
|
|
|
512
512
|
}
|
|
513
513
|
], queries: [{ propertyName: "normalStateTemplate", first: true, predicate: ["normalStateTemplate"], descendants: true }, { propertyName: "optionTemplate", first: true, predicate: ["optionTemplate"], descendants: true }, { propertyName: "optionsChildren", predicate: OptionComponent }, { propertyName: "optGroupsChildren", predicate: OptGroupComponent }], usesOnChanges: true, ngImport: i0, template: "<ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.liveSearch?.type\" (ngComponentOutletExCreated)=\"setLiveSearchComponent($event)\"></ng-template>\r\n<ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.positioner?.type\" (ngComponentOutletExCreated)=\"setPositionerComponent($event)\"></ng-template>\r\n<ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.keyboardHandler?.type\" (ngComponentOutletExCreated)=\"setKeyboardHandlerComponent($event)\"></ng-template>\r\n<ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.valueHandler?.type\" (ngComponentOutletExCreated)=\"setValueHandlerComponent($event)\"></ng-template>\r\n\r\n<div>\r\n <ng-template [ngIf]=\"!selectOptions?.readonly\">\r\n <ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.normalState?.type\" (ngComponentOutletExCreated)=\"setNormalStateComponent($event)\" [ngComponentOutletExContent]=\"liveSearchElement\"></ng-template>\r\n </ng-template>\r\n\r\n <ng-template [ngIf]=\"selectOptions?.readonly\">\r\n <ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.readonlyState?.type\" (ngComponentOutletExCreated)=\"setReadonlyStateComponent($event)\"></ng-template>\r\n </ng-template>\r\n\r\n <ng-template [ngIf]=\"!selectOptions?.absolute\">\r\n <ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.popup?.type\" (ngComponentOutletExCreated)=\"setPopupComponent($event)\" [ngComponentOutletExContent]=\"liveSearchElement\"></ng-template>\r\n </ng-template>\r\n</div>", styles: [":host\n {\n display: block;\n position: relative;\n }"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgComponentOutletEx, selector: "[ngComponentOutletEx]", inputs: ["ngComponentOutletEx", "ngComponentOutletExInjector", "ngComponentOutletExContent"], outputs: ["ngComponentOutletExCreated"], exportAs: ["ngComponentOutletEx"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
514
514
|
}
|
|
515
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
515
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: NgSelectComponent, decorators: [{
|
|
516
516
|
type: Component,
|
|
517
517
|
args: [{ selector: 'ng-select', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
518
518
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.component.js","sourceRoot":"","sources":["../../../../src/components/select/select.component.ts","../../../../src/components/select/select.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, FactoryProvider, Input, Inject, ChangeDetectorRef, Optional, Type, AfterViewInit, OnInit, ContentChildren, QueryList, EventEmitter, forwardRef, resolveForwardRef, ElementRef, OnChanges, SimpleChanges, Attribute, OnDestroy, TemplateRef, ContentChild, ComponentFactoryResolver, ApplicationRef, Injector, EmbeddedViewRef, ComponentRef, ClassProvider} from '@angular/core';\nimport {nameof, isBoolean, isPresent, isString, renderToBody} from '@jscrpt/common';\nimport {extend} from '@jscrpt/common/extend';\nimport {BehaviorSubject, Observable, Subscription} from 'rxjs';\n\nimport {NgSelectOptions, NgSelectPlugin, PluginDescription, NormalizeFunc, NgSelectPluginTypes} from '../../misc';\nimport {NG_SELECT_OPTIONS, KEYBOARD_HANDLER_TYPE, NORMAL_STATE_TYPE, POPUP_TYPE, POSITIONER_TYPE, READONLY_STATE_TYPE, VALUE_HANDLER_TYPE, LIVE_SEARCH_TYPE} from '../../misc/types';\nimport {NgSelect, NgSelectPluginInstances, NgSelectAction, NgSelectFunction} from './select.interface';\nimport {NG_SELECT_PLUGIN_INSTANCES} from './types';\nimport {KeyboardHandler} from '../../plugins/keyboardHandler';\nimport {BasicKeyboardHandlerComponent} from '../../plugins/keyboardHandler/components';\nimport {KEYBOARD_HANDLER} from '../../plugins/keyboardHandler/types';\nimport {NormalState, NormalStateContext} from '../../plugins/normalState';\nimport {NORMAL_STATE} from '../../plugins/normalState/types';\nimport {BasicNormalStateComponent} from '../../plugins/normalState/components';\nimport {Popup, PopupContext} from '../../plugins/popup';\nimport {POPUP} from '../../plugins/popup/types';\nimport {BasicPopupComponent} from '../../plugins/popup/component';\nimport {Positioner} from '../../plugins/positioner';\nimport {POSITIONER} from '../../plugins/positioner/types';\nimport {DefaultPositionerComponent} from '../../plugins/positioner/components';\nimport {ReadonlyState} from '../../plugins/readonlyState';\nimport {READONLY_STATE} from '../../plugins/readonlyState/types';\nimport {ValueHandler} from '../../plugins/valueHandler';\nimport {VALUE_HANDLER} from '../../plugins/valueHandler/types';\nimport {BasicValueHandlerComponent} from '../../plugins/valueHandler/components';\nimport {LiveSearch} from '../../plugins/liveSearch';\nimport {LIVE_SEARCH} from '../../plugins/liveSearch/types';\nimport {NoLiveSearchComponent} from '../../plugins/liveSearch/components';\nimport {NgSelectOption, NgSelectOptGroup} from '../option';\nimport {OptionComponent} from '../option/option.component';\nimport {OptGroupComponent} from '../option/optgroup.component';\nimport {PluginBus} from '../../misc/pluginBus/pluginBus';\nimport {PluginBusEvents} from '../../misc/pluginBus/pluginBus.interface';\n\n//TODO - dynamic change of absolute popup\n//TODO - dynamic change of options gatherer destroy called properly ?\n\n/**\n * Default 'NgSelectOptions'\n * @internal\n */\nconst defaultOptions: NgSelectOptions =\n{\n autoInitialize: true,\n absolute: false,\n forceValueCheckOnInit: false,\n multiple: false,\n readonly: false,\n valueComparer: (source, target) =>\n {\n return source === target;\n },\n liveSearchFilter: (query: string, normalizer: NormalizeFunc = value => value) =>\n {\n return itm => normalizer(itm.text).indexOf(normalizer(query)) >= 0;\n },\n normalizer: value =>\n {\n if(isString(value))\n {\n return value.toLowerCase();\n }\n\n return value;\n },\n cssClasses:\n {\n },\n plugins:\n {\n normalState: <PluginDescription<BasicNormalStateComponent>>\n {\n type: forwardRef(() => BasicNormalStateComponent)\n },\n liveSearch: <PluginDescription<NoLiveSearchComponent>>\n {\n type: forwardRef(() => NoLiveSearchComponent)\n },\n popup: <PluginDescription<BasicPopupComponent>>\n {\n type: forwardRef(() => BasicPopupComponent)\n },\n positioner: <PluginDescription<DefaultPositionerComponent>>\n {\n type: forwardRef(() => DefaultPositionerComponent)\n },\n keyboardHandler: <PluginDescription<BasicKeyboardHandlerComponent>>\n {\n type: forwardRef(() => BasicKeyboardHandlerComponent)\n },\n readonlyState: <PluginDescription<ReadonlyState>>\n {\n type: forwardRef(() => BasicNormalStateComponent)\n },\n valueHandler: <PluginDescription<BasicValueHandlerComponent>>\n {\n type: forwardRef(() => BasicValueHandlerComponent)\n }\n }\n};\n\n/**\n * Component that represents NgSelect itself, allows selection of value from options\n */\n@Component(\n{\n selector: 'ng-select',\n templateUrl: 'select.component.html',\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers:\n [\n <FactoryProvider>\n {\n provide: NG_SELECT_PLUGIN_INSTANCES,\n useFactory: () => {return {};}\n },\n <ClassProvider>\n {\n provide: PluginBus,\n useClass: PluginBus\n }\n ],\n styles: [\n `:host\n {\n display: block;\n position: relative;\n }`\n ]\n})\nexport class NgSelectComponent<TValue = any> implements NgSelect<TValue>, OnChanges, OnInit, AfterViewInit, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * NgSelect options\n */\n protected _selectOptions: NgSelectOptions<TValue>;\n\n /**\n * Subject used for indication that NgSelect was initialized\n */\n protected _initializedSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n /**\n * Occurs when array of provided options has changed\n */\n protected _optionsChange: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * Occurs when array of visible, displayed options has changed\n */\n protected _availableOptionsChange: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * Array of available options to be displayed\n */\n protected _availableOptions: NgSelectOption<TValue>[] = [];\n\n /**\n * Live search plugin currently used in NgSelect\n */\n protected _liveSearch: LiveSearch;\n\n /**\n * Subscription for changes of live search value\n */\n protected _searchValueChangeSubscription: Subscription;\n\n /**\n * Instance of component ref for absolute popup\n */\n protected _absolutePopup: ComponentRef<Popup>;\n\n /**\n * Instance of type that is used as absolute popup\n */\n protected _absolutePopupType: Type<Popup>;\n\n /**\n * Instance of html element that is used\n */\n protected _absolutePopupElement: HTMLElement;\n\n //######################### public properties - inputs #########################\n\n /**\n * Gets or sets NgSelect options\n */\n @Input()\n public get selectOptions(): NgSelectOptions<TValue>\n {\n return this._selectOptions;\n }\n public set selectOptions(options: NgSelectOptions<TValue>)\n {\n this._selectOptions = extend(true, this._selectOptions, options);\n this._pluginBus.selectOptions = this._selectOptions;\n }\n\n /**\n * Indication whether should be NgSelect disabled or not\n */\n @Input()\n public disabled: boolean;\n\n /**\n * Indication whether should be NgSelect readonly or not\n */\n @Input()\n public readonly: boolean;\n\n //######################### public properties - implementation of NgSelect #########################\n\n /**\n * Occurs every time when NgSelect is initialized or reinitialized, if value is false NgSelect was not initialized yet\n */\n public get initialized(): Observable<boolean>\n {\n return this._initializedSubject.asObservable();\n }\n\n /**\n * Gets current state of initialization\n */\n public isInitialized: boolean = false;\n\n //######################### public properties - implementation of TemplateGatherer #########################\n\n /**\n * Template used within normal state\n */\n @ContentChild('normalStateTemplate')\n public normalStateTemplate: TemplateRef<NormalStateContext>;\n\n /**\n * Template that is used within Popup as option\n * @internal\n */\n @ContentChild('optionTemplate')\n public optionTemplate?: TemplateRef<PopupContext>;\n\n //######################### public properties - implementation of OptionsGatherer #########################\n\n /**\n * Array of provided options for select\n */\n public get options(): NgSelectOption<TValue>[]\n {\n return this.optionsChildren.toArray();\n }\n\n /**\n * Occurs when array of provided options has changed\n */\n public get optionsChange(): EventEmitter<void>\n {\n return this._optionsChange;\n }\n\n /**\n * Array of visible, displayed options for select\n */\n public get availableOptions(): NgSelectOption<TValue>[]\n {\n return this._availableOptions;\n }\n\n /**\n * Occurs when array of visible, displayed options has changed\n */\n public get availableOptionsChange(): EventEmitter<void>\n {\n return this._availableOptionsChange;\n }\n\n /**\n * NgSelect plugin instances available for gatherer\n */\n public ngSelectPlugins: NgSelectPluginInstances;\n\n /**\n * Plugin bus used for inter plugin shared events\n */\n public pluginBus: PluginBus<TValue>;\n\n /**\n * Select element that implements default gatherers\n */\n public select: NgSelect<TValue>;\n\n //######################### public properties - template bindings #########################\n\n /**\n * Element used for live search\n */\n public liveSearchElement: HTMLElement[][];\n\n //######################### public properties - children #########################\n\n /**\n * Options children found inside ng-select\n */\n @ContentChildren(OptionComponent)\n public optionsChildren: QueryList<NgSelectOption>;\n\n //######################### public properties - children #########################\n\n /**\n * Options groups children found inside ng-select\n */\n @ContentChildren(OptGroupComponent)\n public optGroupsChildren: QueryList<NgSelectOptGroup>;\n\n //######################### constructors #########################\n constructor(protected _changeDetector: ChangeDetectorRef,\n protected _element: ElementRef<HTMLElement>,\n protected _componentFactoryResolver: ComponentFactoryResolver,\n protected _appRef: ApplicationRef,\n protected _injector: Injector,\n protected _pluginBus: PluginBus<TValue>,\n @Inject(NG_SELECT_PLUGIN_INSTANCES) protected _pluginInstances: NgSelectPluginInstances,\n @Inject(NG_SELECT_OPTIONS) @Optional() options?: NgSelectOptions<TValue>,\n @Inject(NORMAL_STATE_TYPE) @Optional() normalStateType?: Type<NormalState>,\n @Inject(KEYBOARD_HANDLER_TYPE) @Optional() keyboardHandlerType?: Type<KeyboardHandler>,\n @Inject(POPUP_TYPE) @Optional() popupType?: Type<Popup>,\n @Inject(POSITIONER_TYPE) @Optional() positionerType?: Type<Positioner>,\n @Inject(READONLY_STATE_TYPE) @Optional() readonlyStateType?: Type<ReadonlyState>,\n @Inject(VALUE_HANDLER_TYPE) @Optional() valueHandlerType?: Type<ValueHandler>,\n @Inject(LIVE_SEARCH_TYPE) @Optional() liveSearchType?: Type<LiveSearch>,\n @Attribute('readonly') readonly?: string,\n @Attribute('disabled') disabled?: string,\n @Attribute('multiple') multiple?: string)\n {\n //at least on of following is present (value is not important)\n const readonlyDefault = isPresent(readonly) || isPresent(disabled);\n const multipleDefault = isPresent(multiple);\n const opts: NgSelectOptions<TValue> = extend(true, {}, options);\n\n if(!opts.plugins)\n {\n opts.plugins = {};\n }\n\n if(keyboardHandlerType)\n {\n if(!opts.plugins.keyboardHandler)\n {\n opts.plugins.keyboardHandler = {};\n }\n\n opts.plugins.keyboardHandler.type = keyboardHandlerType;\n }\n\n if(normalStateType)\n {\n if(!opts.plugins.normalState)\n {\n opts.plugins.normalState = {};\n }\n\n opts.plugins.normalState.type = normalStateType;\n }\n\n if(popupType)\n {\n if(!opts.plugins.popup)\n {\n opts.plugins.popup = {};\n }\n\n opts.plugins.popup.type = popupType;\n }\n\n if(positionerType)\n {\n if(!opts.plugins.positioner)\n {\n opts.plugins.positioner = {};\n }\n\n opts.plugins.positioner.type = positionerType;\n }\n\n if(readonlyStateType)\n {\n if(!opts.plugins.readonlyState)\n {\n opts.plugins.readonlyState = {};\n }\n\n opts.plugins.readonlyState.type = readonlyStateType;\n }\n\n if(valueHandlerType)\n {\n if(!opts.plugins.valueHandler)\n {\n opts.plugins.valueHandler = {};\n }\n\n opts.plugins.valueHandler.type = valueHandlerType;\n }\n\n if(liveSearchType)\n {\n if(!opts.plugins.liveSearch)\n {\n opts.plugins.liveSearch = {};\n }\n\n opts.plugins.liveSearch.type = liveSearchType;\n }\n\n this._selectOptions = extend(true,\n <NgSelectOptions<TValue>>\n {\n optionsGatherer: this,\n templateGatherer: this,\n },\n defaultOptions,\n <NgSelectOptions<TValue>>\n {\n readonly: readonlyDefault,\n multiple: multipleDefault\n },\n opts);\n\n this._pluginBus.selectElement = this._element;\n this._pluginBus.selectOptions = this._selectOptions;\n }\n\n //######################### public methods - implementation of OnChanges #########################\n\n /**\n * Called when input value changes\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n const updateReadonly = (state: boolean, firstChange: boolean) =>\n {\n //update options\n this.selectOptions.readonly = state;\n\n if(!firstChange)\n {\n this.initOptions();\n this.initialize();\n }\n };\n\n if(nameof<NgSelectComponent<TValue>>('disabled') in changes && isBoolean(this.disabled))\n {\n updateReadonly(this.disabled, changes[nameof<NgSelectComponent<TValue>>('disabled')].firstChange);\n }\n\n if(nameof<NgSelectComponent<TValue>>('readonly') in changes && isBoolean(this.readonly))\n {\n updateReadonly(this.readonly, changes[nameof<NgSelectComponent<TValue>>('readonly')].firstChange);\n }\n }\n\n //######################### public methods - implementation of OnInit #########################\n\n /**\n * Initialize component\n */\n public ngOnInit()\n {\n this.initOptions();\n }\n\n //######################### public methods - implementation of AfterViewInit #########################\n\n /**\n * Called when view was initialized\n */\n public ngAfterViewInit()\n {\n this._availableOptions = this.options;\n\n this.optionsChildren.changes.subscribe(() =>\n {\n this._availableOptions = this.options;\n this._optionsChange.emit();\n this._availableOptionsChange.emit();\n });\n\n if(this._selectOptions.autoInitialize)\n {\n this.initialize();\n }\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * Called when component is destroyed\n */\n public ngOnDestroy()\n {\n this._searchValueChangeSubscription?.unsubscribe();\n this._searchValueChangeSubscription = null;\n\n this.selectOptions.optionsGatherer?.destroyGatherer();\n\n this._destroyAbsolutePopup();\n }\n\n //######################### public methods - implementation of OptionsGatherer #########################\n\n /**\n * Initialize gatherer during initialization phase\n */\n public initializeGatherer(): void\n {\n const liveSearch = this._pluginInstances[LIVE_SEARCH] as LiveSearch;\n\n if(this._liveSearch && this._liveSearch != liveSearch)\n {\n this._searchValueChangeSubscription.unsubscribe();\n this._searchValueChangeSubscription = null;\n\n this._liveSearch = null;\n }\n\n if(!this._liveSearch)\n {\n this._liveSearch = liveSearch;\n\n this._searchValueChangeSubscription = this._liveSearch.searchValueChange.subscribe(() =>\n {\n if(!this._liveSearch.searchValue)\n {\n this._availableOptions = this.options;\n this._availableOptionsChange.emit();\n\n return;\n }\n\n this._availableOptions = this.options.filter(this.selectOptions.liveSearchFilter(this._liveSearch.searchValue, this.selectOptions.normalizer));\n this._availableOptionsChange.emit();\n });\n }\n }\n\n /**\n * Called when gatherer needs to be destroyed\n */\n public destroyGatherer(): void\n {\n }\n\n //######################### public methods - template bindings #########################\n\n /**\n * Sets normal state component\n * @param normalState - Created normal state that is rendered\n * @internal\n */\n public setNormalStateComponent(normalState: NormalState)\n {\n this._registerNewPlugin(normalState, NORMAL_STATE, 'normalState');\n }\n\n /**\n * Sets keyboard handler component\n * @param keyboardHandler - Created keyboard handler that is rendered\n * @internal\n */\n public setKeyboardHandlerComponent(keyboardHandler: KeyboardHandler)\n {\n this._registerNewPlugin(keyboardHandler, KEYBOARD_HANDLER, 'keyboardHandler');\n }\n\n /**\n * Sets popup component\n * @param popup - Created popup that is rendered\n * @internal\n */\n public setPopupComponent(popup: Popup)\n {\n this._registerNewPlugin(popup, POPUP, 'popup');\n }\n\n /**\n * Sets positioner component\n * @param positioner - Created positioner that is rendered\n * @internal\n */\n public setPositionerComponent(positioner: Positioner)\n {\n this._registerNewPlugin(positioner, POSITIONER, 'positioner');\n }\n\n /**\n * Sets readonly state component\n * @param readonlyState - Created readonly state that is rendered\n * @internal\n */\n public setReadonlyStateComponent(readonlyState: ReadonlyState)\n {\n this._registerNewPlugin(readonlyState, READONLY_STATE, 'readonlyState');\n this._pluginInstances[NORMAL_STATE] = this._pluginInstances[READONLY_STATE];\n }\n\n /**\n * Sets value handler component\n * @param valueHandler - Created value handler that is rendered\n * @internal\n */\n public setValueHandlerComponent(valueHandler: ValueHandler<TValue>)\n {\n this._registerNewPlugin(valueHandler, VALUE_HANDLER, 'valueHandler');\n }\n\n /**\n * Sets live search component\n * @param liveSearch - Created live search that is rendered\n * @internal\n */\n public setLiveSearchComponent(liveSearch: LiveSearch)\n {\n this._registerNewPlugin(liveSearch, LIVE_SEARCH, 'liveSearch');\n }\n\n //######################### public methods #########################\n\n /**\n * Initialize component, automatically called once if not blocked by options\n */\n public initialize()\n {\n const liveSearchPlugin = this._pluginInstances[LIVE_SEARCH] as LiveSearch;\n this.liveSearchElement = [[liveSearchPlugin.liveSearchElement]];\n\n if(this.selectOptions.absolute)\n {\n this._appendPopupToBody(this._selectOptions.plugins.popup.type);\n }\n\n this._changeDetector.detectChanges();\n\n this.selectOptions.optionsGatherer.initializeGatherer();\n\n this._pluginInstances[LIVE_SEARCH].initialize();\n this._pluginInstances[KEYBOARD_HANDLER].initialize();\n this._pluginInstances[VALUE_HANDLER].initialize();\n this._pluginInstances[NORMAL_STATE]?.initialize();\n this._pluginInstances[READONLY_STATE]?.initialize();\n this._pluginInstances[POPUP].initialize();\n this._pluginInstances[POSITIONER].initialize();\n\n this.isInitialized = true;\n this._initializedSubject.next(true);\n }\n\n /**\n * Initialize options, automaticaly called during init phase, but can be used to reinitialize NgSelectOptions\n */\n public initOptions()\n {\n this.selectOptions.optionsGatherer.ngSelectPlugins = this._pluginInstances;\n this.selectOptions.optionsGatherer.pluginBus = this._pluginBus;\n this.selectOptions.optionsGatherer.select = this;\n\n const initOptionsPlugin = (pluginKey: string, pluginName: keyof NgSelectPluginTypes) =>\n {\n if(this._selectOptions.plugins[pluginName])\n {\n this._selectOptions.plugins[pluginName].type = resolveForwardRef(this._selectOptions.plugins[pluginName].type);\n\n if(this._pluginInstances[pluginKey])\n {\n if(this._selectOptions.plugins && this._selectOptions.plugins[pluginName] && this._selectOptions.plugins[pluginName].options)\n {\n this._pluginInstances[pluginKey].options = this._selectOptions.plugins[pluginName].options;\n }\n\n this._pluginInstances[pluginKey].initOptions();\n }\n }\n };\n\n if(this._selectOptions.plugins)\n {\n initOptionsPlugin(NORMAL_STATE, 'normalState');\n initOptionsPlugin(KEYBOARD_HANDLER, 'keyboardHandler');\n initOptionsPlugin(POPUP, 'popup');\n initOptionsPlugin(POSITIONER, 'positioner');\n initOptionsPlugin(READONLY_STATE, 'readonlyState');\n initOptionsPlugin(VALUE_HANDLER, 'valueHandler');\n initOptionsPlugin(LIVE_SEARCH, 'liveSearch');\n }\n }\n\n /**\n * Explicitly runs invalidation of content (change detection)\n */\n public invalidateVisuals(): void\n {\n this._changeDetector.detectChanges();\n }\n\n /**\n * Gets instance of plugin by its id\n * @param pluginId - Id of plugin, use constants\n */\n public getPlugin<PluginType extends NgSelectPlugin>(pluginId: string): PluginType\n {\n return this._pluginInstances[pluginId] as PluginType;\n }\n\n /**\n * Subscribes for event\n * @param eventName - Name of event that should be listened to\n * @param handler - Function used for handling event\n */\n public listenTo<TParam = void>(eventName: keyof PluginBusEvents, handler: (data: TParam) => void): Subscription\n {\n return this._pluginBus[eventName].subscribe(handler);\n }\n\n /**\n * Executes actions on NgSelect\n * @param actions - Array of actions that are executed over NgSelect\n */\n public execute(...actions: NgSelectAction<TValue>[])\n {\n if(!actions)\n {\n return;\n }\n\n actions.forEach(action => action(this));\n }\n\n /**\n * Executes function on NgSelect and returns result\n * @param func - Function that is executed and its result is returned\n */\n public executeAndReturn<TResult>(func: NgSelectFunction<TResult, TValue>): TResult\n {\n if(!func)\n {\n return null;\n }\n\n return func(this);\n }\n\n //######################### protected methods #########################\n\n /**\n * Appends popup component directly to body, allows absolute positioning over page body\n * @param component - Popup component type to be appended\n */\n protected _appendPopupToBody(component: Type<Popup>)\n {\n //do not reinitialize if already exists and nothing has changed\n if(this._absolutePopupType == component && this.liveSearchElement[0][0] == this._absolutePopupElement)\n {\n return;\n }\n\n // 0. Destroyes absolute popup if it exists\n this._destroyAbsolutePopup();\n\n if(!component)\n {\n return;\n }\n\n this._absolutePopupType = component;\n this._absolutePopupElement = this.liveSearchElement[0][0];\n\n // 1. Create a component reference from the component\n this._absolutePopup = this._componentFactoryResolver\n .resolveComponentFactory(component)\n .create(this._injector, this.liveSearchElement);\n\n // 2. Attach component to the appRef so that it's inside the ng component tree\n this._appRef.attachView(this._absolutePopup.hostView);\n\n // 3. Get DOM element from component\n const domElem = (this._absolutePopup.hostView as EmbeddedViewRef<any>)\n .rootNodes[0] as HTMLElement;\n\n // 4. Append DOM element to the body\n renderToBody(document, domElem, this._selectOptions.containerElement);\n\n this.setPopupComponent(this._absolutePopup.instance);\n }\n\n /**\n * Destroyes absolute popup if it exists\n */\n protected _destroyAbsolutePopup()\n {\n if(this._absolutePopup)\n {\n this._appRef.detachView(this._absolutePopup.hostView);\n this._absolutePopup.destroy();\n this._absolutePopup = null;\n this._absolutePopupType = null;\n this._absolutePopupElement = null;\n }\n }\n\n /**\n * Registers newly created plugin\n * @param plugin - Plugin to be registered\n * @param pluginKey - Key of plugin used for pluginInstances\n * @param pluginName - Name property for plugin from options\n */\n protected _registerNewPlugin(plugin: NgSelectPlugin, pluginKey: string, pluginName: keyof NgSelectPluginTypes)\n {\n if(!plugin)\n {\n this._pluginInstances[pluginKey] = null;\n\n return;\n }\n\n this._pluginInstances[pluginKey] = plugin;\n\n if(this._selectOptions.plugins && this._selectOptions.plugins[pluginName] && this._selectOptions.plugins[pluginName].options)\n {\n plugin.options = this._selectOptions.plugins[pluginName].options;\n }\n\n plugin.initOptions();\n\n if(this._selectOptions.plugins && this._selectOptions.plugins[pluginName] && this._selectOptions.plugins[pluginName].instanceCallback)\n {\n this._selectOptions.plugins[pluginName].instanceCallback(plugin);\n }\n }\n}","<ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.liveSearch?.type\" (ngComponentOutletExCreated)=\"setLiveSearchComponent($event)\"></ng-template>\r\n<ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.positioner?.type\" (ngComponentOutletExCreated)=\"setPositionerComponent($event)\"></ng-template>\r\n<ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.keyboardHandler?.type\" (ngComponentOutletExCreated)=\"setKeyboardHandlerComponent($event)\"></ng-template>\r\n<ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.valueHandler?.type\" (ngComponentOutletExCreated)=\"setValueHandlerComponent($event)\"></ng-template>\r\n\r\n<div>\r\n <ng-template [ngIf]=\"!selectOptions?.readonly\">\r\n <ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.normalState?.type\" (ngComponentOutletExCreated)=\"setNormalStateComponent($event)\" [ngComponentOutletExContent]=\"liveSearchElement\"></ng-template>\r\n </ng-template>\r\n\r\n <ng-template [ngIf]=\"selectOptions?.readonly\">\r\n <ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.readonlyState?.type\" (ngComponentOutletExCreated)=\"setReadonlyStateComponent($event)\"></ng-template>\r\n </ng-template>\r\n\r\n <ng-template [ngIf]=\"!selectOptions?.absolute\">\r\n <ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.popup?.type\" (ngComponentOutletExCreated)=\"setPopupComponent($event)\" [ngComponentOutletExContent]=\"liveSearchElement\"></ng-template>\r\n </ng-template>\r\n</div>"]}
|
|
1
|
+
{"version":3,"file":"select.component.js","sourceRoot":"","sources":["../../../../src/components/select/select.component.ts","../../../../src/components/select/select.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, FactoryProvider, Input, Inject, ChangeDetectorRef, Optional, Type, AfterViewInit, OnInit, ContentChildren, QueryList, EventEmitter, forwardRef, resolveForwardRef, ElementRef, OnChanges, SimpleChanges, Attribute, OnDestroy, TemplateRef, ContentChild, ComponentFactoryResolver, ApplicationRef, Injector, EmbeddedViewRef, ComponentRef, ClassProvider} from '@angular/core';\nimport {nameof, isBoolean, isPresent, isString, renderToBody} from '@jscrpt/common';\nimport {extend} from '@jscrpt/common/extend';\nimport {BehaviorSubject, Observable, Subscription} from 'rxjs';\n\nimport {NgSelectOptions, NgSelectPlugin, PluginDescription, NormalizeFunc, NgSelectPluginTypes} from '../../misc';\nimport {NG_SELECT_OPTIONS, KEYBOARD_HANDLER_TYPE, NORMAL_STATE_TYPE, POPUP_TYPE, POSITIONER_TYPE, READONLY_STATE_TYPE, VALUE_HANDLER_TYPE, LIVE_SEARCH_TYPE} from '../../misc/types';\nimport {NgSelect, NgSelectPluginInstances, NgSelectAction, NgSelectFunction} from './select.interface';\nimport {NG_SELECT_PLUGIN_INSTANCES} from './types';\nimport {KeyboardHandler} from '../../plugins/keyboardHandler';\nimport {BasicKeyboardHandlerComponent} from '../../plugins/keyboardHandler/components';\nimport {KEYBOARD_HANDLER} from '../../plugins/keyboardHandler/types';\nimport {NormalState, NormalStateContext} from '../../plugins/normalState';\nimport {NORMAL_STATE} from '../../plugins/normalState/types';\nimport {BasicNormalStateComponent} from '../../plugins/normalState/components';\nimport {Popup, PopupContext} from '../../plugins/popup';\nimport {POPUP} from '../../plugins/popup/types';\nimport {BasicPopupComponent} from '../../plugins/popup/component';\nimport {Positioner} from '../../plugins/positioner';\nimport {POSITIONER} from '../../plugins/positioner/types';\nimport {DefaultPositionerComponent} from '../../plugins/positioner/components';\nimport {ReadonlyState} from '../../plugins/readonlyState';\nimport {READONLY_STATE} from '../../plugins/readonlyState/types';\nimport {ValueHandler} from '../../plugins/valueHandler';\nimport {VALUE_HANDLER} from '../../plugins/valueHandler/types';\nimport {BasicValueHandlerComponent} from '../../plugins/valueHandler/components';\nimport {LiveSearch} from '../../plugins/liveSearch';\nimport {LIVE_SEARCH} from '../../plugins/liveSearch/types';\nimport {NoLiveSearchComponent} from '../../plugins/liveSearch/components';\nimport {NgSelectOption, NgSelectOptGroup} from '../option';\nimport {OptionComponent} from '../option/option.component';\nimport {OptGroupComponent} from '../option/optgroup.component';\nimport {PluginBus} from '../../misc/pluginBus/pluginBus';\nimport {PluginBusEvents} from '../../misc/pluginBus/pluginBus.interface';\n\n//TODO - dynamic change of absolute popup\n//TODO - dynamic change of options gatherer destroy called properly ?\n\n/**\n * Default 'NgSelectOptions'\n * @internal\n */\nconst defaultOptions: NgSelectOptions =\n{\n autoInitialize: true,\n absolute: false,\n forceValueCheckOnInit: false,\n multiple: false,\n readonly: false,\n valueComparer: (source, target) =>\n {\n return source === target;\n },\n liveSearchFilter: (query: string, normalizer: NormalizeFunc = value => value) =>\n {\n return itm => normalizer(itm.text).indexOf(normalizer(query)) >= 0;\n },\n normalizer: value =>\n {\n if(isString(value))\n {\n return value.toLowerCase();\n }\n\n return value;\n },\n cssClasses:\n {\n },\n plugins:\n {\n normalState: <PluginDescription<BasicNormalStateComponent>>\n {\n type: forwardRef(() => BasicNormalStateComponent)\n },\n liveSearch: <PluginDescription<NoLiveSearchComponent>>\n {\n type: forwardRef(() => NoLiveSearchComponent)\n },\n popup: <PluginDescription<BasicPopupComponent>>\n {\n type: forwardRef(() => BasicPopupComponent)\n },\n positioner: <PluginDescription<DefaultPositionerComponent>>\n {\n type: forwardRef(() => DefaultPositionerComponent)\n },\n keyboardHandler: <PluginDescription<BasicKeyboardHandlerComponent>>\n {\n type: forwardRef(() => BasicKeyboardHandlerComponent)\n },\n readonlyState: <PluginDescription<ReadonlyState>>\n {\n type: forwardRef(() => BasicNormalStateComponent)\n },\n valueHandler: <PluginDescription<BasicValueHandlerComponent>>\n {\n type: forwardRef(() => BasicValueHandlerComponent)\n }\n }\n};\n\n/**\n * Component that represents NgSelect itself, allows selection of value from options\n */\n@Component(\n{\n selector: 'ng-select',\n templateUrl: 'select.component.html',\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers:\n [\n <FactoryProvider>\n {\n provide: NG_SELECT_PLUGIN_INSTANCES,\n useFactory: () => {return {};}\n },\n <ClassProvider>\n {\n provide: PluginBus,\n useClass: PluginBus\n }\n ],\n styles: [\n `:host\n {\n display: block;\n position: relative;\n }`\n ]\n})\nexport class NgSelectComponent<TValue = any> implements NgSelect<TValue>, OnChanges, OnInit, AfterViewInit, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * NgSelect options\n */\n protected _selectOptions: NgSelectOptions<TValue>;\n\n /**\n * Subject used for indication that NgSelect was initialized\n */\n protected _initializedSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n /**\n * Occurs when array of provided options has changed\n */\n protected _optionsChange: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * Occurs when array of visible, displayed options has changed\n */\n protected _availableOptionsChange: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * Array of available options to be displayed\n */\n protected _availableOptions: NgSelectOption<TValue>[] = [];\n\n /**\n * Live search plugin currently used in NgSelect\n */\n protected _liveSearch: LiveSearch;\n\n /**\n * Subscription for changes of live search value\n */\n protected _searchValueChangeSubscription: Subscription;\n\n /**\n * Instance of component ref for absolute popup\n */\n protected _absolutePopup: ComponentRef<Popup>;\n\n /**\n * Instance of type that is used as absolute popup\n */\n protected _absolutePopupType: Type<Popup>;\n\n /**\n * Instance of html element that is used\n */\n protected _absolutePopupElement: HTMLElement;\n\n //######################### public properties - inputs #########################\n\n /**\n * Gets or sets NgSelect options\n */\n @Input()\n public get selectOptions(): NgSelectOptions<TValue>\n {\n return this._selectOptions;\n }\n public set selectOptions(options: NgSelectOptions<TValue>)\n {\n this._selectOptions = extend(true, this._selectOptions, options);\n this._pluginBus.selectOptions = this._selectOptions;\n }\n\n /**\n * Indication whether should be NgSelect disabled or not\n */\n @Input()\n public disabled: boolean;\n\n /**\n * Indication whether should be NgSelect readonly or not\n */\n @Input()\n public readonly: boolean;\n\n //######################### public properties - implementation of NgSelect #########################\n\n /**\n * Occurs every time when NgSelect is initialized or reinitialized, if value is false NgSelect was not initialized yet\n */\n public get initialized(): Observable<boolean>\n {\n return this._initializedSubject.asObservable();\n }\n\n /**\n * Gets current state of initialization\n */\n public isInitialized: boolean = false;\n\n //######################### public properties - implementation of TemplateGatherer #########################\n\n /**\n * Template used within normal state\n */\n @ContentChild('normalStateTemplate')\n public normalStateTemplate: TemplateRef<NormalStateContext>;\n\n /**\n * Template that is used within Popup as option\n * @internal\n */\n @ContentChild('optionTemplate')\n public optionTemplate?: TemplateRef<PopupContext>;\n\n //######################### public properties - implementation of OptionsGatherer #########################\n\n /**\n * Array of provided options for select\n */\n public get options(): NgSelectOption<TValue>[]\n {\n return this.optionsChildren.toArray();\n }\n\n /**\n * Occurs when array of provided options has changed\n */\n public get optionsChange(): EventEmitter<void>\n {\n return this._optionsChange;\n }\n\n /**\n * Array of visible, displayed options for select\n */\n public get availableOptions(): NgSelectOption<TValue>[]\n {\n return this._availableOptions;\n }\n\n /**\n * Occurs when array of visible, displayed options has changed\n */\n public get availableOptionsChange(): EventEmitter<void>\n {\n return this._availableOptionsChange;\n }\n\n /**\n * NgSelect plugin instances available for gatherer\n */\n public ngSelectPlugins: NgSelectPluginInstances;\n\n /**\n * Plugin bus used for inter plugin shared events\n */\n public pluginBus: PluginBus<TValue>;\n\n /**\n * Select element that implements default gatherers\n */\n public select: NgSelect<TValue>;\n\n //######################### public properties - template bindings #########################\n\n /**\n * Element used for live search\n */\n public liveSearchElement: HTMLElement[][];\n\n //######################### public properties - children #########################\n\n /**\n * Options children found inside ng-select\n */\n @ContentChildren(OptionComponent)\n public optionsChildren: QueryList<NgSelectOption>;\n\n //######################### public properties - children #########################\n\n /**\n * Options groups children found inside ng-select\n */\n @ContentChildren(OptGroupComponent)\n public optGroupsChildren: QueryList<NgSelectOptGroup>;\n\n //######################### constructors #########################\n constructor(protected _changeDetector: ChangeDetectorRef,\n protected _element: ElementRef<HTMLElement>,\n protected _componentFactoryResolver: ComponentFactoryResolver,\n protected _appRef: ApplicationRef,\n protected _injector: Injector,\n protected _pluginBus: PluginBus<TValue>,\n @Inject(NG_SELECT_PLUGIN_INSTANCES) protected _pluginInstances: NgSelectPluginInstances,\n @Inject(NG_SELECT_OPTIONS) @Optional() options?: NgSelectOptions<TValue>,\n @Inject(NORMAL_STATE_TYPE) @Optional() normalStateType?: Type<NormalState>,\n @Inject(KEYBOARD_HANDLER_TYPE) @Optional() keyboardHandlerType?: Type<KeyboardHandler>,\n @Inject(POPUP_TYPE) @Optional() popupType?: Type<Popup>,\n @Inject(POSITIONER_TYPE) @Optional() positionerType?: Type<Positioner>,\n @Inject(READONLY_STATE_TYPE) @Optional() readonlyStateType?: Type<ReadonlyState>,\n @Inject(VALUE_HANDLER_TYPE) @Optional() valueHandlerType?: Type<ValueHandler>,\n @Inject(LIVE_SEARCH_TYPE) @Optional() liveSearchType?: Type<LiveSearch>,\n @Attribute('readonly') readonly?: string,\n @Attribute('disabled') disabled?: string,\n @Attribute('multiple') multiple?: string)\n {\n //at least on of following is present (value is not important)\n const readonlyDefault = isPresent(readonly) || isPresent(disabled);\n const multipleDefault = isPresent(multiple);\n const opts: NgSelectOptions<TValue> = extend(true, {}, options);\n\n if(!opts.plugins)\n {\n opts.plugins = {};\n }\n\n if(keyboardHandlerType)\n {\n if(!opts.plugins.keyboardHandler)\n {\n opts.plugins.keyboardHandler = {};\n }\n\n opts.plugins.keyboardHandler.type = keyboardHandlerType;\n }\n\n if(normalStateType)\n {\n if(!opts.plugins.normalState)\n {\n opts.plugins.normalState = {};\n }\n\n opts.plugins.normalState.type = normalStateType;\n }\n\n if(popupType)\n {\n if(!opts.plugins.popup)\n {\n opts.plugins.popup = {};\n }\n\n opts.plugins.popup.type = popupType;\n }\n\n if(positionerType)\n {\n if(!opts.plugins.positioner)\n {\n opts.plugins.positioner = {};\n }\n\n opts.plugins.positioner.type = positionerType;\n }\n\n if(readonlyStateType)\n {\n if(!opts.plugins.readonlyState)\n {\n opts.plugins.readonlyState = {};\n }\n\n opts.plugins.readonlyState.type = readonlyStateType;\n }\n\n if(valueHandlerType)\n {\n if(!opts.plugins.valueHandler)\n {\n opts.plugins.valueHandler = {};\n }\n\n opts.plugins.valueHandler.type = valueHandlerType;\n }\n\n if(liveSearchType)\n {\n if(!opts.plugins.liveSearch)\n {\n opts.plugins.liveSearch = {};\n }\n\n opts.plugins.liveSearch.type = liveSearchType;\n }\n\n this._selectOptions = extend(true,\n <NgSelectOptions<TValue>>\n {\n optionsGatherer: this,\n templateGatherer: this,\n },\n defaultOptions,\n <NgSelectOptions<TValue>>\n {\n readonly: readonlyDefault,\n multiple: multipleDefault\n },\n opts);\n\n this._pluginBus.selectElement = this._element;\n this._pluginBus.selectOptions = this._selectOptions;\n }\n\n //######################### public methods - implementation of OnChanges #########################\n\n /**\n * Called when input value changes\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n const updateReadonly = (state: boolean, firstChange: boolean) =>\n {\n //update options\n this.selectOptions.readonly = state;\n\n if(!firstChange)\n {\n this.initOptions();\n this.initialize();\n }\n };\n\n if(nameof<NgSelectComponent<TValue>>('disabled') in changes && isBoolean(this.disabled))\n {\n updateReadonly(this.disabled, changes[nameof<NgSelectComponent<TValue>>('disabled')].firstChange);\n }\n\n if(nameof<NgSelectComponent<TValue>>('readonly') in changes && isBoolean(this.readonly))\n {\n updateReadonly(this.readonly, changes[nameof<NgSelectComponent<TValue>>('readonly')].firstChange);\n }\n }\n\n //######################### public methods - implementation of OnInit #########################\n\n /**\n * Initialize component\n */\n public ngOnInit()\n {\n this.initOptions();\n }\n\n //######################### public methods - implementation of AfterViewInit #########################\n\n /**\n * Called when view was initialized\n */\n public ngAfterViewInit()\n {\n this._availableOptions = this.options;\n\n this.optionsChildren.changes.subscribe(() =>\n {\n this._availableOptions = this.options;\n this._optionsChange.emit();\n this._availableOptionsChange.emit();\n });\n\n if(this._selectOptions.autoInitialize)\n {\n this.initialize();\n }\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * Called when component is destroyed\n */\n public ngOnDestroy()\n {\n this._searchValueChangeSubscription?.unsubscribe();\n this._searchValueChangeSubscription = null;\n\n this.selectOptions.optionsGatherer?.destroyGatherer();\n\n this._destroyAbsolutePopup();\n }\n\n //######################### public methods - implementation of OptionsGatherer #########################\n\n /**\n * Initialize gatherer during initialization phase\n */\n public initializeGatherer(): void\n {\n const liveSearch = this._pluginInstances[LIVE_SEARCH] as LiveSearch;\n\n if(this._liveSearch && this._liveSearch != liveSearch)\n {\n this._searchValueChangeSubscription.unsubscribe();\n this._searchValueChangeSubscription = null;\n\n this._liveSearch = null;\n }\n\n if(!this._liveSearch)\n {\n this._liveSearch = liveSearch;\n\n this._searchValueChangeSubscription = this._liveSearch.searchValueChange.subscribe(() =>\n {\n if(!this._liveSearch.searchValue)\n {\n this._availableOptions = this.options;\n this._availableOptionsChange.emit();\n\n return;\n }\n\n this._availableOptions = this.options.filter(this.selectOptions.liveSearchFilter(this._liveSearch.searchValue, this.selectOptions.normalizer));\n this._availableOptionsChange.emit();\n });\n }\n }\n\n /**\n * Called when gatherer needs to be destroyed\n */\n public destroyGatherer(): void\n {\n }\n\n //######################### public methods - template bindings #########################\n\n /**\n * Sets normal state component\n * @param normalState - Created normal state that is rendered\n * @internal\n */\n public setNormalStateComponent(normalState: NormalState)\n {\n this._registerNewPlugin(normalState, NORMAL_STATE, 'normalState');\n }\n\n /**\n * Sets keyboard handler component\n * @param keyboardHandler - Created keyboard handler that is rendered\n * @internal\n */\n public setKeyboardHandlerComponent(keyboardHandler: KeyboardHandler)\n {\n this._registerNewPlugin(keyboardHandler, KEYBOARD_HANDLER, 'keyboardHandler');\n }\n\n /**\n * Sets popup component\n * @param popup - Created popup that is rendered\n * @internal\n */\n public setPopupComponent(popup: Popup)\n {\n this._registerNewPlugin(popup, POPUP, 'popup');\n }\n\n /**\n * Sets positioner component\n * @param positioner - Created positioner that is rendered\n * @internal\n */\n public setPositionerComponent(positioner: Positioner)\n {\n this._registerNewPlugin(positioner, POSITIONER, 'positioner');\n }\n\n /**\n * Sets readonly state component\n * @param readonlyState - Created readonly state that is rendered\n * @internal\n */\n public setReadonlyStateComponent(readonlyState: ReadonlyState)\n {\n this._registerNewPlugin(readonlyState, READONLY_STATE, 'readonlyState');\n this._pluginInstances[NORMAL_STATE] = this._pluginInstances[READONLY_STATE];\n }\n\n /**\n * Sets value handler component\n * @param valueHandler - Created value handler that is rendered\n * @internal\n */\n public setValueHandlerComponent(valueHandler: ValueHandler<TValue>)\n {\n this._registerNewPlugin(valueHandler, VALUE_HANDLER, 'valueHandler');\n }\n\n /**\n * Sets live search component\n * @param liveSearch - Created live search that is rendered\n * @internal\n */\n public setLiveSearchComponent(liveSearch: LiveSearch)\n {\n this._registerNewPlugin(liveSearch, LIVE_SEARCH, 'liveSearch');\n }\n\n //######################### public methods #########################\n\n /**\n * Initialize component, automatically called once if not blocked by options\n */\n public initialize()\n {\n const liveSearchPlugin = this._pluginInstances[LIVE_SEARCH] as LiveSearch;\n this.liveSearchElement = [[liveSearchPlugin.liveSearchElement]];\n\n if(this.selectOptions.absolute)\n {\n this._appendPopupToBody(this._selectOptions.plugins.popup.type);\n }\n\n this._changeDetector.detectChanges();\n\n this.selectOptions.optionsGatherer.initializeGatherer();\n\n this._pluginInstances[LIVE_SEARCH].initialize();\n this._pluginInstances[KEYBOARD_HANDLER].initialize();\n this._pluginInstances[VALUE_HANDLER].initialize();\n this._pluginInstances[NORMAL_STATE]?.initialize();\n this._pluginInstances[READONLY_STATE]?.initialize();\n this._pluginInstances[POPUP].initialize();\n this._pluginInstances[POSITIONER].initialize();\n\n this.isInitialized = true;\n this._initializedSubject.next(true);\n }\n\n /**\n * Initialize options, automaticaly called during init phase, but can be used to reinitialize NgSelectOptions\n */\n public initOptions()\n {\n this.selectOptions.optionsGatherer.ngSelectPlugins = this._pluginInstances;\n this.selectOptions.optionsGatherer.pluginBus = this._pluginBus;\n this.selectOptions.optionsGatherer.select = this;\n\n const initOptionsPlugin = (pluginKey: string, pluginName: keyof NgSelectPluginTypes) =>\n {\n if(this._selectOptions.plugins[pluginName])\n {\n this._selectOptions.plugins[pluginName].type = resolveForwardRef(this._selectOptions.plugins[pluginName].type);\n\n if(this._pluginInstances[pluginKey])\n {\n if(this._selectOptions.plugins && this._selectOptions.plugins[pluginName] && this._selectOptions.plugins[pluginName].options)\n {\n this._pluginInstances[pluginKey].options = this._selectOptions.plugins[pluginName].options;\n }\n\n this._pluginInstances[pluginKey].initOptions();\n }\n }\n };\n\n if(this._selectOptions.plugins)\n {\n initOptionsPlugin(NORMAL_STATE, 'normalState');\n initOptionsPlugin(KEYBOARD_HANDLER, 'keyboardHandler');\n initOptionsPlugin(POPUP, 'popup');\n initOptionsPlugin(POSITIONER, 'positioner');\n initOptionsPlugin(READONLY_STATE, 'readonlyState');\n initOptionsPlugin(VALUE_HANDLER, 'valueHandler');\n initOptionsPlugin(LIVE_SEARCH, 'liveSearch');\n }\n }\n\n /**\n * Explicitly runs invalidation of content (change detection)\n */\n public invalidateVisuals(): void\n {\n this._changeDetector.detectChanges();\n }\n\n /**\n * Gets instance of plugin by its id\n * @param pluginId - Id of plugin, use constants\n */\n public getPlugin<PluginType extends NgSelectPlugin>(pluginId: string): PluginType\n {\n return this._pluginInstances[pluginId] as PluginType;\n }\n\n /**\n * Subscribes for event\n * @param eventName - Name of event that should be listened to\n * @param handler - Function used for handling event\n */\n public listenTo<TParam = void>(eventName: keyof PluginBusEvents, handler: (data: TParam) => void): Subscription\n {\n return this._pluginBus[eventName].subscribe(handler);\n }\n\n /**\n * Executes actions on NgSelect\n * @param actions - Array of actions that are executed over NgSelect\n */\n public execute(...actions: NgSelectAction<TValue>[])\n {\n if(!actions)\n {\n return;\n }\n\n actions.forEach(action => action(this));\n }\n\n /**\n * Executes function on NgSelect and returns result\n * @param func - Function that is executed and its result is returned\n */\n public executeAndReturn<TResult>(func: NgSelectFunction<TResult, TValue>): TResult\n {\n if(!func)\n {\n return null;\n }\n\n return func(this);\n }\n\n //######################### protected methods #########################\n\n /**\n * Appends popup component directly to body, allows absolute positioning over page body\n * @param component - Popup component type to be appended\n */\n protected _appendPopupToBody(component: Type<Popup>)\n {\n //do not reinitialize if already exists and nothing has changed\n if(this._absolutePopupType == component && this.liveSearchElement[0][0] == this._absolutePopupElement)\n {\n return;\n }\n\n // 0. Destroyes absolute popup if it exists\n this._destroyAbsolutePopup();\n\n if(!component)\n {\n return;\n }\n\n this._absolutePopupType = component;\n this._absolutePopupElement = this.liveSearchElement[0][0];\n\n // 1. Create a component reference from the component\n this._absolutePopup = this._componentFactoryResolver\n .resolveComponentFactory(component)\n .create(this._injector, this.liveSearchElement);\n\n // 2. Attach component to the appRef so that it's inside the ng component tree\n this._appRef.attachView(this._absolutePopup.hostView);\n\n // 3. Get DOM element from component\n const domElem = (this._absolutePopup.hostView as EmbeddedViewRef<any>)\n .rootNodes[0] as HTMLElement;\n\n // 4. Append DOM element to the body\n renderToBody(document, domElem, this._selectOptions.containerElement);\n\n this.setPopupComponent(this._absolutePopup.instance);\n }\n\n /**\n * Destroyes absolute popup if it exists\n */\n protected _destroyAbsolutePopup()\n {\n if(this._absolutePopup)\n {\n this._appRef.detachView(this._absolutePopup.hostView);\n this._absolutePopup.destroy();\n this._absolutePopup = null;\n this._absolutePopupType = null;\n this._absolutePopupElement = null;\n }\n }\n\n /**\n * Registers newly created plugin\n * @param plugin - Plugin to be registered\n * @param pluginKey - Key of plugin used for pluginInstances\n * @param pluginName - Name property for plugin from options\n */\n protected _registerNewPlugin(plugin: NgSelectPlugin, pluginKey: string, pluginName: keyof NgSelectPluginTypes)\n {\n if(!plugin)\n {\n this._pluginInstances[pluginKey] = null;\n\n return;\n }\n\n this._pluginInstances[pluginKey] = plugin;\n\n if(this._selectOptions.plugins && this._selectOptions.plugins[pluginName] && this._selectOptions.plugins[pluginName].options)\n {\n plugin.options = this._selectOptions.plugins[pluginName].options;\n }\n\n plugin.initOptions();\n\n if(this._selectOptions.plugins && this._selectOptions.plugins[pluginName] && this._selectOptions.plugins[pluginName].instanceCallback)\n {\n this._selectOptions.plugins[pluginName].instanceCallback(plugin);\n }\n }\n}","<ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.liveSearch?.type\" (ngComponentOutletExCreated)=\"setLiveSearchComponent($event)\"></ng-template>\r\n<ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.positioner?.type\" (ngComponentOutletExCreated)=\"setPositionerComponent($event)\"></ng-template>\r\n<ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.keyboardHandler?.type\" (ngComponentOutletExCreated)=\"setKeyboardHandlerComponent($event)\"></ng-template>\r\n<ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.valueHandler?.type\" (ngComponentOutletExCreated)=\"setValueHandlerComponent($event)\"></ng-template>\r\n\r\n<div>\r\n <ng-template [ngIf]=\"!selectOptions?.readonly\">\r\n <ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.normalState?.type\" (ngComponentOutletExCreated)=\"setNormalStateComponent($event)\" [ngComponentOutletExContent]=\"liveSearchElement\"></ng-template>\r\n </ng-template>\r\n\r\n <ng-template [ngIf]=\"selectOptions?.readonly\">\r\n <ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.readonlyState?.type\" (ngComponentOutletExCreated)=\"setReadonlyStateComponent($event)\"></ng-template>\r\n </ng-template>\r\n\r\n <ng-template [ngIf]=\"!selectOptions?.absolute\">\r\n <ng-template [ngComponentOutletEx]=\"selectOptions?.plugins?.popup?.type\" (ngComponentOutletExCreated)=\"setPopupComponent($event)\" [ngComponentOutletExContent]=\"liveSearchElement\"></ng-template>\r\n </ng-template>\r\n</div>"]}
|
|
@@ -13,10 +13,10 @@ export class NgSelectAbsoluteDirective {
|
|
|
13
13
|
absolute: true,
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
17
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: NgSelectAbsoluteDirective, deps: [{ token: i1.NgSelectComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
17
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: NgSelectAbsoluteDirective, isStandalone: true, selector: "ng-select[absolute]", ngImport: i0 }); }
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: NgSelectAbsoluteDirective, decorators: [{
|
|
20
20
|
type: Directive,
|
|
21
21
|
args: [{
|
|
22
22
|
selector: 'ng-select[absolute]',
|