@ng-select/ng-select 7.2.0 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +2 -1
  2. package/esm2020/lib/config.service.mjs +21 -0
  3. package/esm2020/lib/console.service.mjs +14 -0
  4. package/{esm2015/lib/id.js → esm2020/lib/id.mjs} +3 -3
  5. package/esm2020/lib/items-list.mjs +356 -0
  6. package/esm2020/lib/ng-dropdown-panel.component.mjs +403 -0
  7. package/esm2020/lib/ng-dropdown-panel.service.mjs +68 -0
  8. package/esm2020/lib/ng-option.component.mjs +54 -0
  9. package/esm2020/lib/ng-select.component.mjs +991 -0
  10. package/esm2020/lib/ng-select.module.mjs +87 -0
  11. package/{esm2015/lib/ng-select.types.js → esm2020/lib/ng-select.types.mjs} +1 -1
  12. package/esm2020/lib/ng-templates.directive.mjs +157 -0
  13. package/{esm2015/lib/search-helper.js → esm2020/lib/search-helper.mjs} +2 -4
  14. package/{esm2015/lib/selection-model.js → esm2020/lib/selection-model.mjs} +0 -0
  15. package/{esm2015/lib/value-utils.js → esm2020/lib/value-utils.mjs} +5 -5
  16. package/esm2020/ng-select-ng-select.mjs +5 -0
  17. package/esm2020/public-api.mjs +9 -0
  18. package/fesm2015/{ng-select-ng-select.js → ng-select-ng-select.mjs} +531 -315
  19. package/fesm2015/ng-select-ng-select.mjs.map +1 -0
  20. package/fesm2020/ng-select-ng-select.mjs +3088 -0
  21. package/fesm2020/ng-select-ng-select.mjs.map +1 -0
  22. package/lib/config.service.d.ts +4 -0
  23. package/lib/console.service.d.ts +3 -0
  24. package/lib/ng-dropdown-panel.component.d.ts +5 -1
  25. package/lib/ng-dropdown-panel.service.d.ts +3 -0
  26. package/lib/ng-option.component.d.ts +3 -0
  27. package/lib/ng-select.component.d.ts +12 -8
  28. package/lib/ng-select.module.d.ts +9 -0
  29. package/lib/ng-select.types.d.ts +2 -1
  30. package/lib/ng-templates.directive.d.ts +25 -0
  31. package/lib/value-utils.d.ts +1 -1
  32. package/ng-select-ng-select.d.ts +1 -6
  33. package/package.json +24 -12
  34. package/public-api.d.ts +4 -2
  35. package/scss/ant.design.theme.scss +15 -2
  36. package/scss/default.theme.scss +64 -15
  37. package/scss/material.theme.scss +13 -2
  38. package/themes/ant.design.theme.css +1 -1
  39. package/themes/default.theme.css +1 -1
  40. package/themes/material.theme.css +1 -1
  41. package/bundles/ng-select-ng-select.umd.js +0 -3497
  42. package/bundles/ng-select-ng-select.umd.js.map +0 -1
  43. package/esm2015/lib/config.service.js +0 -19
  44. package/esm2015/lib/console.service.js +0 -12
  45. package/esm2015/lib/items-list.js +0 -356
  46. package/esm2015/lib/ng-dropdown-panel.component.js +0 -367
  47. package/esm2015/lib/ng-dropdown-panel.service.js +0 -65
  48. package/esm2015/lib/ng-option.component.js +0 -53
  49. package/esm2015/lib/ng-select.component.js +0 -852
  50. package/esm2015/lib/ng-select.module.js +0 -54
  51. package/esm2015/lib/ng-templates.directive.js +0 -145
  52. package/esm2015/ng-select-ng-select.js +0 -11
  53. package/esm2015/public-api.js +0 -7
  54. package/fesm2015/ng-select-ng-select.js.map +0 -1
  55. package/ng-select-ng-select.metadata.json +0 -1
@@ -1,8 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, ElementRef, Input, TemplateRef, Injectable, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Renderer2, NgZone, Optional, Inject, Output, ViewChild, InjectionToken, forwardRef, Attribute, ChangeDetectorRef, HostBinding, ContentChild, ContentChildren, HostListener, NgModule } from '@angular/core';
2
+ import { Directive, Input, Injectable, EventEmitter, ElementRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, Output, ViewChild, InjectionToken, forwardRef, TemplateRef, Attribute, HostBinding, ContentChild, ContentChildren, HostListener, NgModule } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { takeUntil, auditTime, startWith, tap, debounceTime, filter, map } from 'rxjs/operators';
5
5
  import { animationFrameScheduler, asapScheduler, Subject, fromEvent, merge } from 'rxjs';
6
+ import * as i4 from '@angular/common';
6
7
  import { DOCUMENT, CommonModule } from '@angular/common';
7
8
 
8
9
  const unescapedHTMLExp = /[&<>"']/g;
@@ -14,10 +15,10 @@ const htmlEscapes = {
14
15
  '"': '&quot;',
15
16
  '\'': '&#39;'
16
17
  };
17
- function escapeHTML(string) {
18
- return (string && hasUnescapedHTMLExp.test(string)) ?
19
- string.replace(unescapedHTMLExp, chr => htmlEscapes[chr]) :
20
- string;
18
+ function escapeHTML(value) {
19
+ return (value && hasUnescapedHTMLExp.test(value)) ?
20
+ value.replace(unescapedHTMLExp, chr => htmlEscapes[chr]) :
21
+ value;
21
22
  }
22
23
  function isDefined(value) {
23
24
  return value !== undefined && value !== null;
@@ -43,152 +44,153 @@ class NgItemLabelDirective {
43
44
  this.ngItemLabel;
44
45
  }
45
46
  }
46
- NgItemLabelDirective.decorators = [
47
- { type: Directive, args: [{ selector: '[ngItemLabel]' },] }
48
- ];
49
- NgItemLabelDirective.ctorParameters = () => [
50
- { type: ElementRef }
51
- ];
52
- NgItemLabelDirective.propDecorators = {
53
- ngItemLabel: [{ type: Input }],
54
- escape: [{ type: Input }]
55
- };
47
+ NgItemLabelDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgItemLabelDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
48
+ NgItemLabelDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: NgItemLabelDirective, selector: "[ngItemLabel]", inputs: { ngItemLabel: "ngItemLabel", escape: "escape" }, usesOnChanges: true, ngImport: i0 });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgItemLabelDirective, decorators: [{
50
+ type: Directive,
51
+ args: [{ selector: '[ngItemLabel]' }]
52
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { ngItemLabel: [{
53
+ type: Input
54
+ }], escape: [{
55
+ type: Input
56
+ }] } });
57
+ // eslint-disable-next-line @angular-eslint/directive-selector
56
58
  class NgOptionTemplateDirective {
57
59
  constructor(template) {
58
60
  this.template = template;
59
61
  }
60
62
  }
61
- NgOptionTemplateDirective.decorators = [
62
- { type: Directive, args: [{ selector: '[ng-option-tmp]' },] }
63
- ];
64
- NgOptionTemplateDirective.ctorParameters = () => [
65
- { type: TemplateRef }
66
- ];
63
+ NgOptionTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgOptionTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
64
+ NgOptionTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: NgOptionTemplateDirective, selector: "[ng-option-tmp]", ngImport: i0 });
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgOptionTemplateDirective, decorators: [{
66
+ type: Directive,
67
+ args: [{ selector: '[ng-option-tmp]' }]
68
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
69
+ // eslint-disable-next-line @angular-eslint/directive-selector
67
70
  class NgOptgroupTemplateDirective {
68
71
  constructor(template) {
69
72
  this.template = template;
70
73
  }
71
74
  }
72
- NgOptgroupTemplateDirective.decorators = [
73
- { type: Directive, args: [{ selector: '[ng-optgroup-tmp]' },] }
74
- ];
75
- NgOptgroupTemplateDirective.ctorParameters = () => [
76
- { type: TemplateRef }
77
- ];
75
+ NgOptgroupTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgOptgroupTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
76
+ NgOptgroupTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: NgOptgroupTemplateDirective, selector: "[ng-optgroup-tmp]", ngImport: i0 });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgOptgroupTemplateDirective, decorators: [{
78
+ type: Directive,
79
+ args: [{ selector: '[ng-optgroup-tmp]' }]
80
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
81
+ // eslint-disable-next-line @angular-eslint/directive-selector
78
82
  class NgLabelTemplateDirective {
79
83
  constructor(template) {
80
84
  this.template = template;
81
85
  }
82
86
  }
83
- NgLabelTemplateDirective.decorators = [
84
- { type: Directive, args: [{ selector: '[ng-label-tmp]' },] }
85
- ];
86
- NgLabelTemplateDirective.ctorParameters = () => [
87
- { type: TemplateRef }
88
- ];
87
+ NgLabelTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgLabelTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
88
+ NgLabelTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: NgLabelTemplateDirective, selector: "[ng-label-tmp]", ngImport: i0 });
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgLabelTemplateDirective, decorators: [{
90
+ type: Directive,
91
+ args: [{ selector: '[ng-label-tmp]' }]
92
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
93
+ // eslint-disable-next-line @angular-eslint/directive-selector
89
94
  class NgMultiLabelTemplateDirective {
90
95
  constructor(template) {
91
96
  this.template = template;
92
97
  }
93
98
  }
94
- NgMultiLabelTemplateDirective.decorators = [
95
- { type: Directive, args: [{ selector: '[ng-multi-label-tmp]' },] }
96
- ];
97
- NgMultiLabelTemplateDirective.ctorParameters = () => [
98
- { type: TemplateRef }
99
- ];
99
+ NgMultiLabelTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgMultiLabelTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
100
+ NgMultiLabelTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]", ngImport: i0 });
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgMultiLabelTemplateDirective, decorators: [{
102
+ type: Directive,
103
+ args: [{ selector: '[ng-multi-label-tmp]' }]
104
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
105
+ // eslint-disable-next-line @angular-eslint/directive-selector
100
106
  class NgHeaderTemplateDirective {
101
107
  constructor(template) {
102
108
  this.template = template;
103
109
  }
104
110
  }
105
- NgHeaderTemplateDirective.decorators = [
106
- { type: Directive, args: [{ selector: '[ng-header-tmp]' },] }
107
- ];
108
- NgHeaderTemplateDirective.ctorParameters = () => [
109
- { type: TemplateRef }
110
- ];
111
+ NgHeaderTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgHeaderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
112
+ NgHeaderTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: NgHeaderTemplateDirective, selector: "[ng-header-tmp]", ngImport: i0 });
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgHeaderTemplateDirective, decorators: [{
114
+ type: Directive,
115
+ args: [{ selector: '[ng-header-tmp]' }]
116
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
117
+ // eslint-disable-next-line @angular-eslint/directive-selector
111
118
  class NgFooterTemplateDirective {
112
119
  constructor(template) {
113
120
  this.template = template;
114
121
  }
115
122
  }
116
- NgFooterTemplateDirective.decorators = [
117
- { type: Directive, args: [{ selector: '[ng-footer-tmp]' },] }
118
- ];
119
- NgFooterTemplateDirective.ctorParameters = () => [
120
- { type: TemplateRef }
121
- ];
123
+ NgFooterTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgFooterTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
124
+ NgFooterTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: NgFooterTemplateDirective, selector: "[ng-footer-tmp]", ngImport: i0 });
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgFooterTemplateDirective, decorators: [{
126
+ type: Directive,
127
+ args: [{ selector: '[ng-footer-tmp]' }]
128
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
129
+ // eslint-disable-next-line @angular-eslint/directive-selector
122
130
  class NgNotFoundTemplateDirective {
123
131
  constructor(template) {
124
132
  this.template = template;
125
133
  }
126
134
  }
127
- NgNotFoundTemplateDirective.decorators = [
128
- { type: Directive, args: [{ selector: '[ng-notfound-tmp]' },] }
129
- ];
130
- NgNotFoundTemplateDirective.ctorParameters = () => [
131
- { type: TemplateRef }
132
- ];
135
+ NgNotFoundTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgNotFoundTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
136
+ NgNotFoundTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: NgNotFoundTemplateDirective, selector: "[ng-notfound-tmp]", ngImport: i0 });
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgNotFoundTemplateDirective, decorators: [{
138
+ type: Directive,
139
+ args: [{ selector: '[ng-notfound-tmp]' }]
140
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
141
+ // eslint-disable-next-line @angular-eslint/directive-selector
133
142
  class NgTypeToSearchTemplateDirective {
134
143
  constructor(template) {
135
144
  this.template = template;
136
145
  }
137
146
  }
138
- NgTypeToSearchTemplateDirective.decorators = [
139
- { type: Directive, args: [{ selector: '[ng-typetosearch-tmp]' },] }
140
- ];
141
- NgTypeToSearchTemplateDirective.ctorParameters = () => [
142
- { type: TemplateRef }
143
- ];
147
+ NgTypeToSearchTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgTypeToSearchTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
148
+ NgTypeToSearchTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: NgTypeToSearchTemplateDirective, selector: "[ng-typetosearch-tmp]", ngImport: i0 });
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgTypeToSearchTemplateDirective, decorators: [{
150
+ type: Directive,
151
+ args: [{ selector: '[ng-typetosearch-tmp]' }]
152
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
153
+ // eslint-disable-next-line @angular-eslint/directive-selector
144
154
  class NgLoadingTextTemplateDirective {
145
155
  constructor(template) {
146
156
  this.template = template;
147
157
  }
148
158
  }
149
- NgLoadingTextTemplateDirective.decorators = [
150
- { type: Directive, args: [{ selector: '[ng-loadingtext-tmp]' },] }
151
- ];
152
- NgLoadingTextTemplateDirective.ctorParameters = () => [
153
- { type: TemplateRef }
154
- ];
159
+ NgLoadingTextTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgLoadingTextTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
160
+ NgLoadingTextTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: NgLoadingTextTemplateDirective, selector: "[ng-loadingtext-tmp]", ngImport: i0 });
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgLoadingTextTemplateDirective, decorators: [{
162
+ type: Directive,
163
+ args: [{ selector: '[ng-loadingtext-tmp]' }]
164
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
165
+ // eslint-disable-next-line @angular-eslint/directive-selector
155
166
  class NgTagTemplateDirective {
156
167
  constructor(template) {
157
168
  this.template = template;
158
169
  }
159
170
  }
160
- NgTagTemplateDirective.decorators = [
161
- { type: Directive, args: [{ selector: '[ng-tag-tmp]' },] }
162
- ];
163
- NgTagTemplateDirective.ctorParameters = () => [
164
- { type: TemplateRef }
165
- ];
171
+ NgTagTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgTagTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
172
+ NgTagTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: NgTagTemplateDirective, selector: "[ng-tag-tmp]", ngImport: i0 });
173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgTagTemplateDirective, decorators: [{
174
+ type: Directive,
175
+ args: [{ selector: '[ng-tag-tmp]' }]
176
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
177
+ // eslint-disable-next-line @angular-eslint/directive-selector
166
178
  class NgLoadingSpinnerTemplateDirective {
167
179
  constructor(template) {
168
180
  this.template = template;
169
181
  }
170
182
  }
171
- NgLoadingSpinnerTemplateDirective.decorators = [
172
- { type: Directive, args: [{ selector: '[ng-loadingspinner-tmp]' },] }
173
- ];
174
- NgLoadingSpinnerTemplateDirective.ctorParameters = () => [
175
- { type: TemplateRef }
176
- ];
177
-
178
- class ConsoleService {
179
- warn(message) {
180
- console.warn(message);
181
- }
182
- }
183
- ConsoleService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ConsoleService_Factory() { return new ConsoleService(); }, token: ConsoleService, providedIn: "root" });
184
- ConsoleService.decorators = [
185
- { type: Injectable, args: [{ providedIn: 'root' },] }
186
- ];
183
+ NgLoadingSpinnerTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgLoadingSpinnerTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
184
+ NgLoadingSpinnerTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: NgLoadingSpinnerTemplateDirective, selector: "[ng-loadingspinner-tmp]", ngImport: i0 });
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgLoadingSpinnerTemplateDirective, decorators: [{
186
+ type: Directive,
187
+ args: [{ selector: '[ng-loadingspinner-tmp]' }]
188
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
187
189
 
188
190
  function newId() {
189
191
  // First character is an 'a', it's good practice to tag id to begin with a letter
190
- return 'axxxxxxxxxxx'.replace(/[x]/g, function (_) {
191
- // tslint:disable-next-line:no-bitwise
192
+ return 'axxxxxxxxxxx'.replace(/[x]/g, () => {
193
+ // eslint-disable-next-line no-bitwise
192
194
  const val = Math.random() * 16 | 0;
193
195
  return val.toString(16);
194
196
  });
@@ -1036,9 +1038,7 @@ const diacritics = {
1036
1038
  '\u03C2': '\u03C3'
1037
1039
  };
1038
1040
  function stripSpecialChars(text) {
1039
- const match = (a) => {
1040
- return diacritics[a] || a;
1041
- };
1041
+ const match = (a) => diacritics[a] || a;
1042
1042
  return text.replace(/[^\u0000-\u007E]/g, match);
1043
1043
  }
1044
1044
 
@@ -1074,7 +1074,7 @@ class ItemsList {
1074
1074
  get lastSelectedItem() {
1075
1075
  let i = this.selectedItems.length - 1;
1076
1076
  for (; i >= 0; i--) {
1077
- let item = this.selectedItems[i];
1077
+ const item = this.selectedItems[i];
1078
1078
  if (!item.disabled) {
1079
1079
  return item;
1080
1080
  }
@@ -1225,7 +1225,7 @@ class ItemsList {
1225
1225
  return option[key];
1226
1226
  }
1227
1227
  else {
1228
- let keys = key.split('.');
1228
+ const keys = key.split('.');
1229
1229
  let value = option;
1230
1230
  for (let i = 0, len = keys.length; i < len; ++i) {
1231
1231
  if (value == null) {
@@ -1240,9 +1240,9 @@ class ItemsList {
1240
1240
  const label = isDefined(item.$ngOptionLabel) ? item.$ngOptionLabel : this.resolveNested(item, this._ngSelect.bindLabel);
1241
1241
  const value = isDefined(item.$ngOptionValue) ? item.$ngOptionValue : item;
1242
1242
  return {
1243
- index: index,
1243
+ index,
1244
1244
  label: isDefined(label) ? label.toString() : '',
1245
- value: value,
1245
+ value,
1246
1246
  disabled: item.disabled,
1247
1247
  htmlId: `${this._ngSelect.dropdownId}-${index}`,
1248
1248
  };
@@ -1335,12 +1335,12 @@ class ItemsList {
1335
1335
  }
1336
1336
  const isFnKey = isFunction(this._ngSelect.groupBy);
1337
1337
  const keyFn = (item) => {
1338
- let key = isFnKey ? prop(item.value) : item.value[prop];
1338
+ const key = isFnKey ? prop(item.value) : item.value[prop];
1339
1339
  return isDefined(key) ? key : undefined;
1340
1340
  };
1341
1341
  // Group items by key.
1342
1342
  for (const item of items) {
1343
- let key = keyFn(item);
1343
+ const key = keyFn(item);
1344
1344
  const group = groups.get(key);
1345
1345
  if (group) {
1346
1346
  group.push(item);
@@ -1466,12 +1466,13 @@ class NgDropdownPanelService {
1466
1466
  return null;
1467
1467
  }
1468
1468
  }
1469
- NgDropdownPanelService.decorators = [
1470
- { type: Injectable }
1471
- ];
1469
+ NgDropdownPanelService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgDropdownPanelService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1470
+ NgDropdownPanelService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgDropdownPanelService });
1471
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgDropdownPanelService, decorators: [{
1472
+ type: Injectable
1473
+ }] });
1472
1474
 
1473
- const TOP_CSS_CLASS = 'ng-select-top';
1474
- const BOTTOM_CSS_CLASS = 'ng-select-bottom';
1475
+ const CSS_POSITIONS = ['top', 'right', 'bottom', 'left'];
1475
1476
  const SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;
1476
1477
  class NgDropdownPanelComponent {
1477
1478
  constructor(_renderer, _zone, _panelService, _elementRef, _document) {
@@ -1568,23 +1569,27 @@ class NgDropdownPanelComponent {
1568
1569
  }
1569
1570
  _handleDropdownPosition() {
1570
1571
  this._currentPosition = this._calculateCurrentPosition(this._dropdown);
1571
- if (this._currentPosition === 'top') {
1572
- this._renderer.addClass(this._dropdown, TOP_CSS_CLASS);
1573
- this._renderer.removeClass(this._dropdown, BOTTOM_CSS_CLASS);
1574
- this._renderer.addClass(this._select, TOP_CSS_CLASS);
1575
- this._renderer.removeClass(this._select, BOTTOM_CSS_CLASS);
1572
+ if (CSS_POSITIONS.includes(this._currentPosition)) {
1573
+ this._updateDropdownClass(this._currentPosition);
1576
1574
  }
1577
1575
  else {
1578
- this._renderer.addClass(this._dropdown, BOTTOM_CSS_CLASS);
1579
- this._renderer.removeClass(this._dropdown, TOP_CSS_CLASS);
1580
- this._renderer.addClass(this._select, BOTTOM_CSS_CLASS);
1581
- this._renderer.removeClass(this._select, TOP_CSS_CLASS);
1576
+ this._updateDropdownClass('bottom');
1582
1577
  }
1583
1578
  if (this.appendTo) {
1584
1579
  this._updateYPosition();
1585
1580
  }
1586
1581
  this._dropdown.style.opacity = '1';
1587
1582
  }
1583
+ _updateDropdownClass(currentPosition) {
1584
+ CSS_POSITIONS.forEach((position) => {
1585
+ const REMOVE_CSS_CLASS = `ng-select-${position}`;
1586
+ this._renderer.removeClass(this._dropdown, REMOVE_CSS_CLASS);
1587
+ this._renderer.removeClass(this._select, REMOVE_CSS_CLASS);
1588
+ });
1589
+ const ADD_CSS_CLASS = `ng-select-${currentPosition}`;
1590
+ this._renderer.addClass(this._dropdown, ADD_CSS_CLASS);
1591
+ this._renderer.addClass(this._select, ADD_CSS_CLASS);
1592
+ }
1588
1593
  _handleScroll() {
1589
1594
  this._zone.runOutsideAngular(() => {
1590
1595
  fromEvent(this.scrollElementRef.nativeElement, 'scroll')
@@ -1784,12 +1789,28 @@ class NgDropdownPanelComponent {
1784
1789
  });
1785
1790
  }
1786
1791
  }
1787
- NgDropdownPanelComponent.decorators = [
1788
- { type: Component, args: [{
1789
- changeDetection: ChangeDetectionStrategy.OnPush,
1790
- encapsulation: ViewEncapsulation.None,
1791
- selector: 'ng-dropdown-panel',
1792
- template: `
1792
+ NgDropdownPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgDropdownPanelComponent, deps: [{ token: i0.Renderer2 }, { token: i0.NgZone }, { token: NgDropdownPanelService }, { token: i0.ElementRef }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1793
+ NgDropdownPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: NgDropdownPanelComponent, selector: "ng-dropdown-panel", inputs: { items: "items", markedItem: "markedItem", position: "position", appendTo: "appendTo", bufferAmount: "bufferAmount", virtualScroll: "virtualScroll", headerTemplate: "headerTemplate", footerTemplate: "footerTemplate", filterValue: "filterValue" }, outputs: { update: "update", scroll: "scroll", scrollToEnd: "scrollToEnd", outsideClick: "outsideClick" }, viewQueries: [{ propertyName: "contentElementRef", first: true, predicate: ["content"], descendants: true, read: ElementRef, static: true }, { propertyName: "scrollElementRef", first: true, predicate: ["scroll"], descendants: true, read: ElementRef, static: true }, { propertyName: "paddingElementRef", first: true, predicate: ["padding"], descendants: true, read: ElementRef, static: true }], usesOnChanges: true, ngImport: i0, template: `
1794
+ <div *ngIf="headerTemplate" class="ng-dropdown-header">
1795
+ <ng-container [ngTemplateOutlet]="headerTemplate" [ngTemplateOutletContext]="{ searchTerm: filterValue }"></ng-container>
1796
+ </div>
1797
+ <div #scroll class="ng-dropdown-panel-items scroll-host">
1798
+ <div #padding [class.total-padding]="virtualScroll"></div>
1799
+ <div #content [class.scrollable-content]="virtualScroll && items.length">
1800
+ <ng-content></ng-content>
1801
+ </div>
1802
+ </div>
1803
+ <div *ngIf="footerTemplate" class="ng-dropdown-footer">
1804
+ <ng-container [ngTemplateOutlet]="footerTemplate" [ngTemplateOutletContext]="{ searchTerm: filterValue }"></ng-container>
1805
+ </div>
1806
+ `, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1807
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgDropdownPanelComponent, decorators: [{
1808
+ type: Component,
1809
+ args: [{
1810
+ changeDetection: ChangeDetectionStrategy.OnPush,
1811
+ encapsulation: ViewEncapsulation.None,
1812
+ selector: 'ng-dropdown-panel',
1813
+ template: `
1793
1814
  <div *ngIf="headerTemplate" class="ng-dropdown-header">
1794
1815
  <ng-container [ngTemplateOutlet]="headerTemplate" [ngTemplateOutletContext]="{ searchTerm: filterValue }"></ng-container>
1795
1816
  </div>
@@ -1803,33 +1824,50 @@ NgDropdownPanelComponent.decorators = [
1803
1824
  <ng-container [ngTemplateOutlet]="footerTemplate" [ngTemplateOutletContext]="{ searchTerm: filterValue }"></ng-container>
1804
1825
  </div>
1805
1826
  `
1806
- },] }
1807
- ];
1808
- NgDropdownPanelComponent.ctorParameters = () => [
1809
- { type: Renderer2 },
1810
- { type: NgZone },
1811
- { type: NgDropdownPanelService },
1812
- { type: ElementRef },
1813
- { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] }
1814
- ];
1815
- NgDropdownPanelComponent.propDecorators = {
1816
- items: [{ type: Input }],
1817
- markedItem: [{ type: Input }],
1818
- position: [{ type: Input }],
1819
- appendTo: [{ type: Input }],
1820
- bufferAmount: [{ type: Input }],
1821
- virtualScroll: [{ type: Input }],
1822
- headerTemplate: [{ type: Input }],
1823
- footerTemplate: [{ type: Input }],
1824
- filterValue: [{ type: Input }],
1825
- update: [{ type: Output }],
1826
- scroll: [{ type: Output }],
1827
- scrollToEnd: [{ type: Output }],
1828
- outsideClick: [{ type: Output }],
1829
- contentElementRef: [{ type: ViewChild, args: ['content', { read: ElementRef, static: true },] }],
1830
- scrollElementRef: [{ type: ViewChild, args: ['scroll', { read: ElementRef, static: true },] }],
1831
- paddingElementRef: [{ type: ViewChild, args: ['padding', { read: ElementRef, static: true },] }]
1832
- };
1827
+ }]
1828
+ }], ctorParameters: function () {
1829
+ return [{ type: i0.Renderer2 }, { type: i0.NgZone }, { type: NgDropdownPanelService }, { type: i0.ElementRef }, { type: undefined, decorators: [{
1830
+ type: Optional
1831
+ }, {
1832
+ type: Inject,
1833
+ args: [DOCUMENT]
1834
+ }] }];
1835
+ }, propDecorators: { items: [{
1836
+ type: Input
1837
+ }], markedItem: [{
1838
+ type: Input
1839
+ }], position: [{
1840
+ type: Input
1841
+ }], appendTo: [{
1842
+ type: Input
1843
+ }], bufferAmount: [{
1844
+ type: Input
1845
+ }], virtualScroll: [{
1846
+ type: Input
1847
+ }], headerTemplate: [{
1848
+ type: Input
1849
+ }], footerTemplate: [{
1850
+ type: Input
1851
+ }], filterValue: [{
1852
+ type: Input
1853
+ }], update: [{
1854
+ type: Output
1855
+ }], scroll: [{
1856
+ type: Output
1857
+ }], scrollToEnd: [{
1858
+ type: Output
1859
+ }], outsideClick: [{
1860
+ type: Output
1861
+ }], contentElementRef: [{
1862
+ type: ViewChild,
1863
+ args: ['content', { read: ElementRef, static: true }]
1864
+ }], scrollElementRef: [{
1865
+ type: ViewChild,
1866
+ args: ['scroll', { read: ElementRef, static: true }]
1867
+ }], paddingElementRef: [{
1868
+ type: ViewChild,
1869
+ args: ['padding', { read: ElementRef, static: true }]
1870
+ }] } });
1833
1871
 
1834
1872
  class NgOptionComponent {
1835
1873
  constructor(elementRef) {
@@ -1867,20 +1905,20 @@ class NgOptionComponent {
1867
1905
  return value != null && `${value}` !== 'false';
1868
1906
  }
1869
1907
  }
1870
- NgOptionComponent.decorators = [
1871
- { type: Component, args: [{
1872
- selector: 'ng-option',
1873
- changeDetection: ChangeDetectionStrategy.OnPush,
1874
- template: `<ng-content></ng-content>`
1875
- },] }
1876
- ];
1877
- NgOptionComponent.ctorParameters = () => [
1878
- { type: ElementRef }
1879
- ];
1880
- NgOptionComponent.propDecorators = {
1881
- value: [{ type: Input }],
1882
- disabled: [{ type: Input }]
1883
- };
1908
+ NgOptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgOptionComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1909
+ NgOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: NgOptionComponent, selector: "ng-option", inputs: { value: "value", disabled: "disabled" }, usesOnChanges: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1910
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgOptionComponent, decorators: [{
1911
+ type: Component,
1912
+ args: [{
1913
+ selector: 'ng-option',
1914
+ changeDetection: ChangeDetectionStrategy.OnPush,
1915
+ template: `<ng-content></ng-content>`
1916
+ }]
1917
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { value: [{
1918
+ type: Input
1919
+ }], disabled: [{
1920
+ type: Input
1921
+ }] } });
1884
1922
 
1885
1923
  class NgSelectConfig {
1886
1924
  constructor() {
@@ -1894,16 +1932,31 @@ class NgSelectConfig {
1894
1932
  this.appearance = 'underline';
1895
1933
  }
1896
1934
  }
1897
- NgSelectConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function NgSelectConfig_Factory() { return new NgSelectConfig(); }, token: NgSelectConfig, providedIn: "root" });
1898
- NgSelectConfig.decorators = [
1899
- { type: Injectable, args: [{ providedIn: 'root' },] }
1900
- ];
1935
+ NgSelectConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgSelectConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1936
+ NgSelectConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgSelectConfig, providedIn: 'root' });
1937
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgSelectConfig, decorators: [{
1938
+ type: Injectable,
1939
+ args: [{ providedIn: 'root' }]
1940
+ }] });
1941
+
1942
+ class ConsoleService {
1943
+ warn(message) {
1944
+ console.warn(message);
1945
+ }
1946
+ }
1947
+ ConsoleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ConsoleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1948
+ ConsoleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ConsoleService, providedIn: 'root' });
1949
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ConsoleService, decorators: [{
1950
+ type: Injectable,
1951
+ args: [{ providedIn: 'root' }]
1952
+ }] });
1901
1953
 
1902
1954
  const SELECTION_MODEL_FACTORY = new InjectionToken('ng-select-selection-model');
1903
1955
  class NgSelectComponent {
1904
1956
  constructor(classes, autoFocus, config, newSelectionModel, _elementRef, _cd, _console) {
1905
1957
  this.classes = classes;
1906
1958
  this.autoFocus = autoFocus;
1959
+ this.config = config;
1907
1960
  this._cd = _cd;
1908
1961
  this._console = _console;
1909
1962
  this.markFirst = true;
@@ -1942,11 +1995,11 @@ class NgSelectComponent {
1942
1995
  this.removeEvent = new EventEmitter();
1943
1996
  this.scroll = new EventEmitter();
1944
1997
  this.scrollToEnd = new EventEmitter();
1998
+ this.useDefaultClass = true;
1945
1999
  this.viewPortItems = [];
1946
2000
  this.searchTerm = null;
1947
2001
  this.dropdownId = newId();
1948
2002
  this.escapeHTML = true;
1949
- this.useDefaultClass = true;
1950
2003
  this._items = [];
1951
2004
  this._defaultLabel = 'label';
1952
2005
  this._pressedKeys = [];
@@ -1986,7 +2039,15 @@ class NgSelectComponent {
1986
2039
  }
1987
2040
  this._compareWith = fn;
1988
2041
  }
1989
- get clearSearchOnAdd() { return isDefined(this._clearSearchOnAdd) ? this._clearSearchOnAdd : this.closeOnSelect; }
2042
+ get clearSearchOnAdd() {
2043
+ if (isDefined(this._clearSearchOnAdd)) {
2044
+ return this._clearSearchOnAdd;
2045
+ }
2046
+ else if (isDefined(this.config.clearSearchOnAdd)) {
2047
+ return this.config.clearSearchOnAdd;
2048
+ }
2049
+ return this.closeOnSelect;
2050
+ }
1990
2051
  ;
1991
2052
  set clearSearchOnAdd(value) {
1992
2053
  this._clearSearchOnAdd = value;
@@ -1996,6 +2057,8 @@ class NgSelectComponent {
1996
2057
  ;
1997
2058
  get filtered() { return (!!this.searchTerm && this.searchable || this._isComposing); }
1998
2059
  ;
2060
+ get single() { return !this.multiple; }
2061
+ ;
1999
2062
  get _editableSearchTerm() {
2000
2063
  return this.editableSearchTerm && !this.multiple;
2001
2064
  }
@@ -2635,107 +2698,227 @@ class NgSelectComponent {
2635
2698
  this.appearance = this.appearance || config.appearance;
2636
2699
  }
2637
2700
  }
2638
- NgSelectComponent.decorators = [
2639
- { type: Component, args: [{
2640
- selector: 'ng-select',
2641
- template: "<div\n (mousedown)=\"handleMousedown($event)\"\n [class.ng-appearance-outline]=\"appearance === 'outline'\"\n [class.ng-has-value]=\"hasValue\"\n class=\"ng-select-container\">\n\n <div class=\"ng-value-container\">\n <div class=\"ng-placeholder\">{{placeholder}}</div>\n\n <ng-container *ngIf=\"(!multiLabelTemplate || !multiple ) && selectedItems.length > 0\">\n <div [class.ng-value-disabled]=\"item.disabled\" class=\"ng-value\" *ngFor=\"let item of selectedItems; trackBy: trackByOption\">\n <ng-template #defaultLabelTemplate>\n <span class=\"ng-value-icon left\" (click)=\"unselect(item);\" aria-hidden=\"true\">\u00D7</span>\n <span class=\"ng-value-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"labelTemplate || defaultLabelTemplate\"\n [ngTemplateOutletContext]=\"{ item: item.value, clear: clearItem, label: item.label }\">\n </ng-template>\n </div>\n </ng-container>\n\n <ng-template *ngIf=\"multiple && multiLabelTemplate && selectedValues.length > 0\"\n [ngTemplateOutlet]=\"multiLabelTemplate\"\n [ngTemplateOutletContext]=\"{ items: selectedValues, clear: clearItem }\">\n </ng-template>\n\n <div class=\"ng-input\"\n role=\"combobox\" \n [attr.aria-expanded]=\"isOpen\" \n [attr.aria-owns]=\"isOpen ? dropdownId : null\" \n aria-haspopup=\"listbox\">\n\n <input #searchInput\n [attr.id]=\"labelForId\"\n [attr.tabindex]=\"tabIndex\"\n [readOnly]=\"!searchable || itemsList.maxItemsSelected\"\n [disabled]=\"disabled\"\n [value]=\"searchTerm ? searchTerm : ''\"\n (input)=\"filter(searchInput.value)\"\n (compositionstart)=\"onCompositionStart()\"\n (compositionend)=\"onCompositionEnd(searchInput.value)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"$event.stopPropagation()\"\n [attr.aria-activedescendant]=\"isOpen ? itemsList?.markedItem?.htmlId : null\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"isOpen ? dropdownId : null\">\n </div>\n </div>\n\n <ng-container *ngIf=\"loading\">\n <ng-template #defaultLoadingSpinnerTemplate>\n <div class=\"ng-spinner-loader\"></div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"loadingSpinnerTemplate || defaultLoadingSpinnerTemplate\">\n </ng-template>\n </ng-container>\n\n <span *ngIf=\"showClear()\" class=\"ng-clear-wrapper\" title=\"{{clearAllText}}\">\n <span class=\"ng-clear\" aria-hidden=\"true\">\u00D7</span>\n </span>\n\n <span class=\"ng-arrow-wrapper\">\n <span class=\"ng-arrow\"></span>\n </span>\n</div>\n\n<ng-dropdown-panel *ngIf=\"isOpen\"\n class=\"ng-dropdown-panel\"\n [virtualScroll]=\"virtualScroll\"\n [bufferAmount]=\"bufferAmount\"\n [appendTo]=\"appendTo\"\n [position]=\"dropdownPosition\"\n [headerTemplate]=\"headerTemplate\"\n [footerTemplate]=\"footerTemplate\"\n [filterValue]=\"searchTerm\"\n [items]=\"itemsList.filteredItems\"\n [markedItem]=\"itemsList.markedItem\"\n (update)=\"viewPortItems = $event\"\n (scroll)=\"scroll.emit($event)\"\n (scrollToEnd)=\"scrollToEnd.emit($event)\"\n (outsideClick)=\"close()\"\n [class.ng-select-multiple]=\"multiple\"\n [ngClass]=\"appendTo ? classes : null\"\n [id]=\"dropdownId\"\n role=\"listbox\"\n aria-label=\"Options list\">\n\n <ng-container>\n <div class=\"ng-option\" [attr.role]=\"item.children ? 'group' : 'option'\" (click)=\"toggleItem(item)\" (mouseover)=\"onItemHover(item)\"\n *ngFor=\"let item of viewPortItems; trackBy: trackByOption\"\n [class.ng-option-disabled]=\"item.disabled\"\n [class.ng-option-selected]=\"item.selected\"\n [class.ng-optgroup]=\"item.children\"\n [class.ng-option]=\"!item.children\"\n [class.ng-option-child]=\"!!item.parent\"\n [class.ng-option-marked]=\"item === itemsList.markedItem\"\n [attr.aria-selected]=\"item.selected\"\n [attr.id]=\"item?.htmlId\">\n\n <ng-template #defaultOptionTemplate>\n <span class=\"ng-option-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"item.children ? (optgroupTemplate || defaultOptionTemplate) : (optionTemplate || defaultOptionTemplate)\"\n [ngTemplateOutletContext]=\"{ item: item.value, item$:item, index: item.index, searchTerm: searchTerm }\">\n </ng-template>\n </div>\n\n <div class=\"ng-option\" [class.ng-option-marked]=\"!itemsList.markedItem\" (mouseover)=\"itemsList.unmarkItem()\" role=\"option\" (click)=\"selectTag()\" *ngIf=\"showAddTag\">\n <ng-template #defaultTagTemplate>\n <span><span class=\"ng-tag-label\">{{addTagText}}</span>\"{{searchTerm}}\"</span>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"tagTemplate || defaultTagTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"showNoItemsFound()\">\n <ng-template #defaultNotFoundTemplate>\n <div class=\"ng-option ng-option-disabled\">{{notFoundText}}</div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"notFoundTemplate || defaultNotFoundTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"showTypeToSearch()\">\n <ng-template #defaultTypeToSearchTemplate>\n <div class=\"ng-option ng-option-disabled\">{{typeToSearchText}}</div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"typeToSearchTemplate || defaultTypeToSearchTemplate\">\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"loading && itemsList.filteredItems.length === 0\">\n <ng-template #defaultLoadingTextTemplate>\n <div class=\"ng-option ng-option-disabled\">{{loadingText}}</div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"loadingTextTemplate || defaultLoadingTextTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </ng-container>\n\n</ng-dropdown-panel>\n",
2642
- providers: [{
2643
- provide: NG_VALUE_ACCESSOR,
2644
- useExisting: forwardRef(() => NgSelectComponent),
2645
- multi: true
2646
- }, NgDropdownPanelService],
2647
- encapsulation: ViewEncapsulation.None,
2648
- changeDetection: ChangeDetectionStrategy.OnPush,
2649
- host: {
2650
- '[class.ng-select]': 'useDefaultClass',
2651
- '[class.ng-select-single]': '!multiple',
2652
- },
2653
- styles: [".ng-select{position:relative;display:block}.ng-select,.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border:2px solid rgba(66,66,66,.2);border-left-color:#424242;transform:translateZ(0);-webkit-animation:load8 .8s linear infinite;animation:load8 .8s linear infinite}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@-webkit-keyframes load8{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes load8{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:\"\\200b\"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}"]
2654
- },] }
2655
- ];
2656
- NgSelectComponent.ctorParameters = () => [
2657
- { type: String, decorators: [{ type: Attribute, args: ['class',] }] },
2658
- { type: undefined, decorators: [{ type: Attribute, args: ['autofocus',] }] },
2659
- { type: NgSelectConfig },
2660
- { type: undefined, decorators: [{ type: Inject, args: [SELECTION_MODEL_FACTORY,] }] },
2661
- { type: ElementRef },
2662
- { type: ChangeDetectorRef },
2663
- { type: ConsoleService }
2664
- ];
2665
- NgSelectComponent.propDecorators = {
2666
- bindLabel: [{ type: Input }],
2667
- bindValue: [{ type: Input }],
2668
- markFirst: [{ type: Input }],
2669
- placeholder: [{ type: Input }],
2670
- notFoundText: [{ type: Input }],
2671
- typeToSearchText: [{ type: Input }],
2672
- addTagText: [{ type: Input }],
2673
- loadingText: [{ type: Input }],
2674
- clearAllText: [{ type: Input }],
2675
- appearance: [{ type: Input }],
2676
- dropdownPosition: [{ type: Input }],
2677
- appendTo: [{ type: Input }],
2678
- loading: [{ type: Input }],
2679
- closeOnSelect: [{ type: Input }],
2680
- hideSelected: [{ type: Input }],
2681
- selectOnTab: [{ type: Input }],
2682
- openOnEnter: [{ type: Input }],
2683
- maxSelectedItems: [{ type: Input }],
2684
- groupBy: [{ type: Input }],
2685
- groupValue: [{ type: Input }],
2686
- bufferAmount: [{ type: Input }],
2687
- virtualScroll: [{ type: Input }],
2688
- selectableGroup: [{ type: Input }],
2689
- selectableGroupAsModel: [{ type: Input }],
2690
- searchFn: [{ type: Input }],
2691
- trackByFn: [{ type: Input }],
2692
- clearOnBackspace: [{ type: Input }],
2693
- labelForId: [{ type: Input }],
2694
- inputAttrs: [{ type: Input }],
2695
- tabIndex: [{ type: Input }],
2696
- readonly: [{ type: Input }],
2697
- searchWhileComposing: [{ type: Input }],
2698
- minTermLength: [{ type: Input }],
2699
- editableSearchTerm: [{ type: Input }],
2700
- keyDownFn: [{ type: Input }],
2701
- typeahead: [{ type: Input }, { type: HostBinding, args: ['class.ng-select-typeahead',] }],
2702
- multiple: [{ type: Input }, { type: HostBinding, args: ['class.ng-select-multiple',] }],
2703
- addTag: [{ type: Input }, { type: HostBinding, args: ['class.ng-select-taggable',] }],
2704
- searchable: [{ type: Input }, { type: HostBinding, args: ['class.ng-select-searchable',] }],
2705
- clearable: [{ type: Input }, { type: HostBinding, args: ['class.ng-select-clearable',] }],
2706
- isOpen: [{ type: Input }, { type: HostBinding, args: ['class.ng-select-opened',] }],
2707
- items: [{ type: Input }],
2708
- compareWith: [{ type: Input }],
2709
- clearSearchOnAdd: [{ type: Input }],
2710
- blurEvent: [{ type: Output, args: ['blur',] }],
2711
- focusEvent: [{ type: Output, args: ['focus',] }],
2712
- changeEvent: [{ type: Output, args: ['change',] }],
2713
- openEvent: [{ type: Output, args: ['open',] }],
2714
- closeEvent: [{ type: Output, args: ['close',] }],
2715
- searchEvent: [{ type: Output, args: ['search',] }],
2716
- clearEvent: [{ type: Output, args: ['clear',] }],
2717
- addEvent: [{ type: Output, args: ['add',] }],
2718
- removeEvent: [{ type: Output, args: ['remove',] }],
2719
- scroll: [{ type: Output, args: ['scroll',] }],
2720
- scrollToEnd: [{ type: Output, args: ['scrollToEnd',] }],
2721
- optionTemplate: [{ type: ContentChild, args: [NgOptionTemplateDirective, { read: TemplateRef },] }],
2722
- optgroupTemplate: [{ type: ContentChild, args: [NgOptgroupTemplateDirective, { read: TemplateRef },] }],
2723
- labelTemplate: [{ type: ContentChild, args: [NgLabelTemplateDirective, { read: TemplateRef },] }],
2724
- multiLabelTemplate: [{ type: ContentChild, args: [NgMultiLabelTemplateDirective, { read: TemplateRef },] }],
2725
- headerTemplate: [{ type: ContentChild, args: [NgHeaderTemplateDirective, { read: TemplateRef },] }],
2726
- footerTemplate: [{ type: ContentChild, args: [NgFooterTemplateDirective, { read: TemplateRef },] }],
2727
- notFoundTemplate: [{ type: ContentChild, args: [NgNotFoundTemplateDirective, { read: TemplateRef },] }],
2728
- typeToSearchTemplate: [{ type: ContentChild, args: [NgTypeToSearchTemplateDirective, { read: TemplateRef },] }],
2729
- loadingTextTemplate: [{ type: ContentChild, args: [NgLoadingTextTemplateDirective, { read: TemplateRef },] }],
2730
- tagTemplate: [{ type: ContentChild, args: [NgTagTemplateDirective, { read: TemplateRef },] }],
2731
- loadingSpinnerTemplate: [{ type: ContentChild, args: [NgLoadingSpinnerTemplateDirective, { read: TemplateRef },] }],
2732
- dropdownPanel: [{ type: ViewChild, args: [forwardRef(() => NgDropdownPanelComponent),] }],
2733
- searchInput: [{ type: ViewChild, args: ['searchInput', { static: true },] }],
2734
- ngOptions: [{ type: ContentChildren, args: [NgOptionComponent, { descendants: true },] }],
2735
- disabled: [{ type: HostBinding, args: ['class.ng-select-disabled',] }],
2736
- filtered: [{ type: HostBinding, args: ['class.ng-select-filtered',] }],
2737
- handleKeyDown: [{ type: HostListener, args: ['keydown', ['$event'],] }]
2738
- };
2701
+ NgSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgSelectComponent, deps: [{ token: 'class', attribute: true }, { token: 'autofocus', attribute: true }, { token: NgSelectConfig }, { token: SELECTION_MODEL_FACTORY }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: ConsoleService }], target: i0.ɵɵFactoryTarget.Component });
2702
+ NgSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: NgSelectComponent, selector: "ng-select", inputs: { bindLabel: "bindLabel", bindValue: "bindValue", markFirst: "markFirst", placeholder: "placeholder", notFoundText: "notFoundText", typeToSearchText: "typeToSearchText", addTagText: "addTagText", loadingText: "loadingText", clearAllText: "clearAllText", appearance: "appearance", dropdownPosition: "dropdownPosition", appendTo: "appendTo", loading: "loading", closeOnSelect: "closeOnSelect", hideSelected: "hideSelected", selectOnTab: "selectOnTab", openOnEnter: "openOnEnter", maxSelectedItems: "maxSelectedItems", groupBy: "groupBy", groupValue: "groupValue", bufferAmount: "bufferAmount", virtualScroll: "virtualScroll", selectableGroup: "selectableGroup", selectableGroupAsModel: "selectableGroupAsModel", searchFn: "searchFn", trackByFn: "trackByFn", clearOnBackspace: "clearOnBackspace", labelForId: "labelForId", inputAttrs: "inputAttrs", tabIndex: "tabIndex", readonly: "readonly", searchWhileComposing: "searchWhileComposing", minTermLength: "minTermLength", editableSearchTerm: "editableSearchTerm", keyDownFn: "keyDownFn", typeahead: "typeahead", multiple: "multiple", addTag: "addTag", searchable: "searchable", clearable: "clearable", isOpen: "isOpen", items: "items", compareWith: "compareWith", clearSearchOnAdd: "clearSearchOnAdd" }, outputs: { blurEvent: "blur", focusEvent: "focus", changeEvent: "change", openEvent: "open", closeEvent: "close", searchEvent: "search", clearEvent: "clear", addEvent: "add", removeEvent: "remove", scroll: "scroll", scrollToEnd: "scrollToEnd" }, host: { listeners: { "keydown": "handleKeyDown($event)" }, properties: { "class.ng-select-typeahead": "this.typeahead", "class.ng-select-multiple": "this.multiple", "class.ng-select-taggable": "this.addTag", "class.ng-select-searchable": "this.searchable", "class.ng-select-clearable": "this.clearable", "class.ng-select-opened": "this.isOpen", "class.ng-select": "this.useDefaultClass", "class.ng-select-disabled": "this.disabled", "class.ng-select-filtered": "this.filtered", "class.ng-select-single": "this.single" } }, providers: [{
2703
+ provide: NG_VALUE_ACCESSOR,
2704
+ useExisting: forwardRef(() => NgSelectComponent),
2705
+ multi: true
2706
+ }, NgDropdownPanelService], queries: [{ propertyName: "optionTemplate", first: true, predicate: NgOptionTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "optgroupTemplate", first: true, predicate: NgOptgroupTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "labelTemplate", first: true, predicate: NgLabelTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "multiLabelTemplate", first: true, predicate: NgMultiLabelTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "headerTemplate", first: true, predicate: NgHeaderTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "footerTemplate", first: true, predicate: NgFooterTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "notFoundTemplate", first: true, predicate: NgNotFoundTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "typeToSearchTemplate", first: true, predicate: NgTypeToSearchTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "loadingTextTemplate", first: true, predicate: NgLoadingTextTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "tagTemplate", first: true, predicate: NgTagTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "loadingSpinnerTemplate", first: true, predicate: NgLoadingSpinnerTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "ngOptions", predicate: NgOptionComponent, descendants: true }], viewQueries: [{ propertyName: "dropdownPanel", first: true, predicate: i0.forwardRef(function () { return NgDropdownPanelComponent; }), descendants: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div\n (mousedown)=\"handleMousedown($event)\"\n [class.ng-appearance-outline]=\"appearance === 'outline'\"\n [class.ng-has-value]=\"hasValue\"\n class=\"ng-select-container\">\n\n <div class=\"ng-value-container\">\n <div class=\"ng-placeholder\">{{placeholder}}</div>\n\n <ng-container *ngIf=\"(!multiLabelTemplate || !multiple ) && selectedItems.length > 0\">\n <div [class.ng-value-disabled]=\"item.disabled\" class=\"ng-value\" *ngFor=\"let item of selectedItems; trackBy: trackByOption\">\n <ng-template #defaultLabelTemplate>\n <span class=\"ng-value-icon left\" (click)=\"unselect(item);\" aria-hidden=\"true\">\u00D7</span>\n <span class=\"ng-value-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"labelTemplate || defaultLabelTemplate\"\n [ngTemplateOutletContext]=\"{ item: item.value, clear: clearItem, label: item.label }\">\n </ng-template>\n </div>\n </ng-container>\n\n <ng-template *ngIf=\"multiple && multiLabelTemplate && selectedValues.length > 0\"\n [ngTemplateOutlet]=\"multiLabelTemplate\"\n [ngTemplateOutletContext]=\"{ items: selectedValues, clear: clearItem }\">\n </ng-template>\n\n <div class=\"ng-input\"\n role=\"combobox\" \n [attr.aria-expanded]=\"isOpen\" \n [attr.aria-owns]=\"isOpen ? dropdownId : null\" \n aria-haspopup=\"listbox\">\n\n <input #searchInput\n [attr.id]=\"labelForId\"\n [attr.tabindex]=\"tabIndex\"\n [readOnly]=\"!searchable || itemsList.maxItemsSelected\"\n [disabled]=\"disabled\"\n [value]=\"searchTerm ? searchTerm : ''\"\n (input)=\"filter(searchInput.value)\"\n (compositionstart)=\"onCompositionStart()\"\n (compositionend)=\"onCompositionEnd(searchInput.value)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"$event.stopPropagation()\"\n [attr.aria-activedescendant]=\"isOpen ? itemsList?.markedItem?.htmlId : null\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"isOpen ? dropdownId : null\">\n </div>\n </div>\n\n <ng-container *ngIf=\"loading\">\n <ng-template #defaultLoadingSpinnerTemplate>\n <div class=\"ng-spinner-loader\"></div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"loadingSpinnerTemplate || defaultLoadingSpinnerTemplate\">\n </ng-template>\n </ng-container>\n\n <span *ngIf=\"showClear()\" class=\"ng-clear-wrapper\" title=\"{{clearAllText}}\">\n <span class=\"ng-clear\" aria-hidden=\"true\">\u00D7</span>\n </span>\n\n <span class=\"ng-arrow-wrapper\">\n <span class=\"ng-arrow\"></span>\n </span>\n</div>\n\n<ng-dropdown-panel *ngIf=\"isOpen\"\n class=\"ng-dropdown-panel\"\n [virtualScroll]=\"virtualScroll\"\n [bufferAmount]=\"bufferAmount\"\n [appendTo]=\"appendTo\"\n [position]=\"dropdownPosition\"\n [headerTemplate]=\"headerTemplate\"\n [footerTemplate]=\"footerTemplate\"\n [filterValue]=\"searchTerm\"\n [items]=\"itemsList.filteredItems\"\n [markedItem]=\"itemsList.markedItem\"\n (update)=\"viewPortItems = $event\"\n (scroll)=\"scroll.emit($event)\"\n (scrollToEnd)=\"scrollToEnd.emit($event)\"\n (outsideClick)=\"close()\"\n [class.ng-select-multiple]=\"multiple\"\n [ngClass]=\"appendTo ? classes : null\"\n [id]=\"dropdownId\"\n role=\"listbox\"\n aria-label=\"Options list\">\n\n <ng-container>\n <div class=\"ng-option\" [attr.role]=\"item.children ? 'group' : 'option'\" (click)=\"toggleItem(item)\" (mouseover)=\"onItemHover(item)\"\n *ngFor=\"let item of viewPortItems; trackBy: trackByOption\"\n [class.ng-option-disabled]=\"item.disabled\"\n [class.ng-option-selected]=\"item.selected\"\n [class.ng-optgroup]=\"item.children\"\n [class.ng-option]=\"!item.children\"\n [class.ng-option-child]=\"!!item.parent\"\n [class.ng-option-marked]=\"item === itemsList.markedItem\"\n [attr.aria-selected]=\"item.selected\"\n [attr.id]=\"item?.htmlId\">\n\n <ng-template #defaultOptionTemplate>\n <span class=\"ng-option-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"item.children ? (optgroupTemplate || defaultOptionTemplate) : (optionTemplate || defaultOptionTemplate)\"\n [ngTemplateOutletContext]=\"{ item: item.value, item$:item, index: item.index, searchTerm: searchTerm }\">\n </ng-template>\n </div>\n\n <div class=\"ng-option\" [class.ng-option-marked]=\"!itemsList.markedItem\" (mouseover)=\"itemsList.unmarkItem()\" role=\"option\" (click)=\"selectTag()\" *ngIf=\"showAddTag\">\n <ng-template #defaultTagTemplate>\n <span><span class=\"ng-tag-label\">{{addTagText}}</span>\"{{searchTerm}}\"</span>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"tagTemplate || defaultTagTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"showNoItemsFound()\">\n <ng-template #defaultNotFoundTemplate>\n <div class=\"ng-option ng-option-disabled\">{{notFoundText}}</div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"notFoundTemplate || defaultNotFoundTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"showTypeToSearch()\">\n <ng-template #defaultTypeToSearchTemplate>\n <div class=\"ng-option ng-option-disabled\">{{typeToSearchText}}</div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"typeToSearchTemplate || defaultTypeToSearchTemplate\">\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"loading && itemsList.filteredItems.length === 0\">\n <ng-template #defaultLoadingTextTemplate>\n <div class=\"ng-option ng-option-disabled\">{{loadingText}}</div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"loadingTextTemplate || defaultLoadingTextTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </ng-container>\n\n</ng-dropdown-panel>\n", styles: ["@charset \"UTF-8\";.ng-select{position:relative;display:block;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@keyframes load8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:\"\\200b\"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\n"], components: [{ type: NgDropdownPanelComponent, selector: "ng-dropdown-panel", inputs: ["items", "markedItem", "position", "appendTo", "bufferAmount", "virtualScroll", "headerTemplate", "footerTemplate", "filterValue"], outputs: ["update", "scroll", "scrollToEnd", "outsideClick"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: NgItemLabelDirective, selector: "[ngItemLabel]", inputs: ["ngItemLabel", "escape"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2707
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgSelectComponent, decorators: [{
2708
+ type: Component,
2709
+ args: [{ selector: 'ng-select', providers: [{
2710
+ provide: NG_VALUE_ACCESSOR,
2711
+ useExisting: forwardRef(() => NgSelectComponent),
2712
+ multi: true
2713
+ }, NgDropdownPanelService], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n (mousedown)=\"handleMousedown($event)\"\n [class.ng-appearance-outline]=\"appearance === 'outline'\"\n [class.ng-has-value]=\"hasValue\"\n class=\"ng-select-container\">\n\n <div class=\"ng-value-container\">\n <div class=\"ng-placeholder\">{{placeholder}}</div>\n\n <ng-container *ngIf=\"(!multiLabelTemplate || !multiple ) && selectedItems.length > 0\">\n <div [class.ng-value-disabled]=\"item.disabled\" class=\"ng-value\" *ngFor=\"let item of selectedItems; trackBy: trackByOption\">\n <ng-template #defaultLabelTemplate>\n <span class=\"ng-value-icon left\" (click)=\"unselect(item);\" aria-hidden=\"true\">\u00D7</span>\n <span class=\"ng-value-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"labelTemplate || defaultLabelTemplate\"\n [ngTemplateOutletContext]=\"{ item: item.value, clear: clearItem, label: item.label }\">\n </ng-template>\n </div>\n </ng-container>\n\n <ng-template *ngIf=\"multiple && multiLabelTemplate && selectedValues.length > 0\"\n [ngTemplateOutlet]=\"multiLabelTemplate\"\n [ngTemplateOutletContext]=\"{ items: selectedValues, clear: clearItem }\">\n </ng-template>\n\n <div class=\"ng-input\"\n role=\"combobox\" \n [attr.aria-expanded]=\"isOpen\" \n [attr.aria-owns]=\"isOpen ? dropdownId : null\" \n aria-haspopup=\"listbox\">\n\n <input #searchInput\n [attr.id]=\"labelForId\"\n [attr.tabindex]=\"tabIndex\"\n [readOnly]=\"!searchable || itemsList.maxItemsSelected\"\n [disabled]=\"disabled\"\n [value]=\"searchTerm ? searchTerm : ''\"\n (input)=\"filter(searchInput.value)\"\n (compositionstart)=\"onCompositionStart()\"\n (compositionend)=\"onCompositionEnd(searchInput.value)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"$event.stopPropagation()\"\n [attr.aria-activedescendant]=\"isOpen ? itemsList?.markedItem?.htmlId : null\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"isOpen ? dropdownId : null\">\n </div>\n </div>\n\n <ng-container *ngIf=\"loading\">\n <ng-template #defaultLoadingSpinnerTemplate>\n <div class=\"ng-spinner-loader\"></div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"loadingSpinnerTemplate || defaultLoadingSpinnerTemplate\">\n </ng-template>\n </ng-container>\n\n <span *ngIf=\"showClear()\" class=\"ng-clear-wrapper\" title=\"{{clearAllText}}\">\n <span class=\"ng-clear\" aria-hidden=\"true\">\u00D7</span>\n </span>\n\n <span class=\"ng-arrow-wrapper\">\n <span class=\"ng-arrow\"></span>\n </span>\n</div>\n\n<ng-dropdown-panel *ngIf=\"isOpen\"\n class=\"ng-dropdown-panel\"\n [virtualScroll]=\"virtualScroll\"\n [bufferAmount]=\"bufferAmount\"\n [appendTo]=\"appendTo\"\n [position]=\"dropdownPosition\"\n [headerTemplate]=\"headerTemplate\"\n [footerTemplate]=\"footerTemplate\"\n [filterValue]=\"searchTerm\"\n [items]=\"itemsList.filteredItems\"\n [markedItem]=\"itemsList.markedItem\"\n (update)=\"viewPortItems = $event\"\n (scroll)=\"scroll.emit($event)\"\n (scrollToEnd)=\"scrollToEnd.emit($event)\"\n (outsideClick)=\"close()\"\n [class.ng-select-multiple]=\"multiple\"\n [ngClass]=\"appendTo ? classes : null\"\n [id]=\"dropdownId\"\n role=\"listbox\"\n aria-label=\"Options list\">\n\n <ng-container>\n <div class=\"ng-option\" [attr.role]=\"item.children ? 'group' : 'option'\" (click)=\"toggleItem(item)\" (mouseover)=\"onItemHover(item)\"\n *ngFor=\"let item of viewPortItems; trackBy: trackByOption\"\n [class.ng-option-disabled]=\"item.disabled\"\n [class.ng-option-selected]=\"item.selected\"\n [class.ng-optgroup]=\"item.children\"\n [class.ng-option]=\"!item.children\"\n [class.ng-option-child]=\"!!item.parent\"\n [class.ng-option-marked]=\"item === itemsList.markedItem\"\n [attr.aria-selected]=\"item.selected\"\n [attr.id]=\"item?.htmlId\">\n\n <ng-template #defaultOptionTemplate>\n <span class=\"ng-option-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"item.children ? (optgroupTemplate || defaultOptionTemplate) : (optionTemplate || defaultOptionTemplate)\"\n [ngTemplateOutletContext]=\"{ item: item.value, item$:item, index: item.index, searchTerm: searchTerm }\">\n </ng-template>\n </div>\n\n <div class=\"ng-option\" [class.ng-option-marked]=\"!itemsList.markedItem\" (mouseover)=\"itemsList.unmarkItem()\" role=\"option\" (click)=\"selectTag()\" *ngIf=\"showAddTag\">\n <ng-template #defaultTagTemplate>\n <span><span class=\"ng-tag-label\">{{addTagText}}</span>\"{{searchTerm}}\"</span>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"tagTemplate || defaultTagTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"showNoItemsFound()\">\n <ng-template #defaultNotFoundTemplate>\n <div class=\"ng-option ng-option-disabled\">{{notFoundText}}</div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"notFoundTemplate || defaultNotFoundTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"showTypeToSearch()\">\n <ng-template #defaultTypeToSearchTemplate>\n <div class=\"ng-option ng-option-disabled\">{{typeToSearchText}}</div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"typeToSearchTemplate || defaultTypeToSearchTemplate\">\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"loading && itemsList.filteredItems.length === 0\">\n <ng-template #defaultLoadingTextTemplate>\n <div class=\"ng-option ng-option-disabled\">{{loadingText}}</div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"loadingTextTemplate || defaultLoadingTextTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </ng-container>\n\n</ng-dropdown-panel>\n", styles: ["@charset \"UTF-8\";.ng-select{position:relative;display:block;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@keyframes load8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:\"\\200b\"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\n"] }]
2714
+ }], ctorParameters: function () {
2715
+ return [{ type: undefined, decorators: [{
2716
+ type: Attribute,
2717
+ args: ['class']
2718
+ }] }, { type: undefined, decorators: [{
2719
+ type: Attribute,
2720
+ args: ['autofocus']
2721
+ }] }, { type: NgSelectConfig }, { type: undefined, decorators: [{
2722
+ type: Inject,
2723
+ args: [SELECTION_MODEL_FACTORY]
2724
+ }] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: ConsoleService }];
2725
+ }, propDecorators: { bindLabel: [{
2726
+ type: Input
2727
+ }], bindValue: [{
2728
+ type: Input
2729
+ }], markFirst: [{
2730
+ type: Input
2731
+ }], placeholder: [{
2732
+ type: Input
2733
+ }], notFoundText: [{
2734
+ type: Input
2735
+ }], typeToSearchText: [{
2736
+ type: Input
2737
+ }], addTagText: [{
2738
+ type: Input
2739
+ }], loadingText: [{
2740
+ type: Input
2741
+ }], clearAllText: [{
2742
+ type: Input
2743
+ }], appearance: [{
2744
+ type: Input
2745
+ }], dropdownPosition: [{
2746
+ type: Input
2747
+ }], appendTo: [{
2748
+ type: Input
2749
+ }], loading: [{
2750
+ type: Input
2751
+ }], closeOnSelect: [{
2752
+ type: Input
2753
+ }], hideSelected: [{
2754
+ type: Input
2755
+ }], selectOnTab: [{
2756
+ type: Input
2757
+ }], openOnEnter: [{
2758
+ type: Input
2759
+ }], maxSelectedItems: [{
2760
+ type: Input
2761
+ }], groupBy: [{
2762
+ type: Input
2763
+ }], groupValue: [{
2764
+ type: Input
2765
+ }], bufferAmount: [{
2766
+ type: Input
2767
+ }], virtualScroll: [{
2768
+ type: Input
2769
+ }], selectableGroup: [{
2770
+ type: Input
2771
+ }], selectableGroupAsModel: [{
2772
+ type: Input
2773
+ }], searchFn: [{
2774
+ type: Input
2775
+ }], trackByFn: [{
2776
+ type: Input
2777
+ }], clearOnBackspace: [{
2778
+ type: Input
2779
+ }], labelForId: [{
2780
+ type: Input
2781
+ }], inputAttrs: [{
2782
+ type: Input
2783
+ }], tabIndex: [{
2784
+ type: Input
2785
+ }], readonly: [{
2786
+ type: Input
2787
+ }], searchWhileComposing: [{
2788
+ type: Input
2789
+ }], minTermLength: [{
2790
+ type: Input
2791
+ }], editableSearchTerm: [{
2792
+ type: Input
2793
+ }], keyDownFn: [{
2794
+ type: Input
2795
+ }], typeahead: [{
2796
+ type: Input
2797
+ }, {
2798
+ type: HostBinding,
2799
+ args: ['class.ng-select-typeahead']
2800
+ }], multiple: [{
2801
+ type: Input
2802
+ }, {
2803
+ type: HostBinding,
2804
+ args: ['class.ng-select-multiple']
2805
+ }], addTag: [{
2806
+ type: Input
2807
+ }, {
2808
+ type: HostBinding,
2809
+ args: ['class.ng-select-taggable']
2810
+ }], searchable: [{
2811
+ type: Input
2812
+ }, {
2813
+ type: HostBinding,
2814
+ args: ['class.ng-select-searchable']
2815
+ }], clearable: [{
2816
+ type: Input
2817
+ }, {
2818
+ type: HostBinding,
2819
+ args: ['class.ng-select-clearable']
2820
+ }], isOpen: [{
2821
+ type: Input
2822
+ }, {
2823
+ type: HostBinding,
2824
+ args: ['class.ng-select-opened']
2825
+ }], items: [{
2826
+ type: Input
2827
+ }], compareWith: [{
2828
+ type: Input
2829
+ }], clearSearchOnAdd: [{
2830
+ type: Input
2831
+ }], blurEvent: [{
2832
+ type: Output,
2833
+ args: ['blur']
2834
+ }], focusEvent: [{
2835
+ type: Output,
2836
+ args: ['focus']
2837
+ }], changeEvent: [{
2838
+ type: Output,
2839
+ args: ['change']
2840
+ }], openEvent: [{
2841
+ type: Output,
2842
+ args: ['open']
2843
+ }], closeEvent: [{
2844
+ type: Output,
2845
+ args: ['close']
2846
+ }], searchEvent: [{
2847
+ type: Output,
2848
+ args: ['search']
2849
+ }], clearEvent: [{
2850
+ type: Output,
2851
+ args: ['clear']
2852
+ }], addEvent: [{
2853
+ type: Output,
2854
+ args: ['add']
2855
+ }], removeEvent: [{
2856
+ type: Output,
2857
+ args: ['remove']
2858
+ }], scroll: [{
2859
+ type: Output,
2860
+ args: ['scroll']
2861
+ }], scrollToEnd: [{
2862
+ type: Output,
2863
+ args: ['scrollToEnd']
2864
+ }], optionTemplate: [{
2865
+ type: ContentChild,
2866
+ args: [NgOptionTemplateDirective, { read: TemplateRef }]
2867
+ }], optgroupTemplate: [{
2868
+ type: ContentChild,
2869
+ args: [NgOptgroupTemplateDirective, { read: TemplateRef }]
2870
+ }], labelTemplate: [{
2871
+ type: ContentChild,
2872
+ args: [NgLabelTemplateDirective, { read: TemplateRef }]
2873
+ }], multiLabelTemplate: [{
2874
+ type: ContentChild,
2875
+ args: [NgMultiLabelTemplateDirective, { read: TemplateRef }]
2876
+ }], headerTemplate: [{
2877
+ type: ContentChild,
2878
+ args: [NgHeaderTemplateDirective, { read: TemplateRef }]
2879
+ }], footerTemplate: [{
2880
+ type: ContentChild,
2881
+ args: [NgFooterTemplateDirective, { read: TemplateRef }]
2882
+ }], notFoundTemplate: [{
2883
+ type: ContentChild,
2884
+ args: [NgNotFoundTemplateDirective, { read: TemplateRef }]
2885
+ }], typeToSearchTemplate: [{
2886
+ type: ContentChild,
2887
+ args: [NgTypeToSearchTemplateDirective, { read: TemplateRef }]
2888
+ }], loadingTextTemplate: [{
2889
+ type: ContentChild,
2890
+ args: [NgLoadingTextTemplateDirective, { read: TemplateRef }]
2891
+ }], tagTemplate: [{
2892
+ type: ContentChild,
2893
+ args: [NgTagTemplateDirective, { read: TemplateRef }]
2894
+ }], loadingSpinnerTemplate: [{
2895
+ type: ContentChild,
2896
+ args: [NgLoadingSpinnerTemplateDirective, { read: TemplateRef }]
2897
+ }], dropdownPanel: [{
2898
+ type: ViewChild,
2899
+ args: [forwardRef(() => NgDropdownPanelComponent)]
2900
+ }], searchInput: [{
2901
+ type: ViewChild,
2902
+ args: ['searchInput', { static: true }]
2903
+ }], ngOptions: [{
2904
+ type: ContentChildren,
2905
+ args: [NgOptionComponent, { descendants: true }]
2906
+ }], useDefaultClass: [{
2907
+ type: HostBinding,
2908
+ args: ['class.ng-select']
2909
+ }], disabled: [{
2910
+ type: HostBinding,
2911
+ args: ['class.ng-select-disabled']
2912
+ }], filtered: [{
2913
+ type: HostBinding,
2914
+ args: ['class.ng-select-filtered']
2915
+ }], single: [{
2916
+ type: HostBinding,
2917
+ args: ['class.ng-select-single']
2918
+ }], handleKeyDown: [{
2919
+ type: HostListener,
2920
+ args: ['keydown', ['$event']]
2921
+ }] } });
2739
2922
 
2740
2923
  function DefaultSelectionModelFactory() {
2741
2924
  return new DefaultSelectionModel();
@@ -2812,51 +2995,84 @@ class DefaultSelectionModel {
2812
2995
  }
2813
2996
  }
2814
2997
 
2815
- const ɵ0 = DefaultSelectionModelFactory;
2816
2998
  class NgSelectModule {
2817
2999
  }
2818
- NgSelectModule.decorators = [
2819
- { type: NgModule, args: [{
2820
- declarations: [
2821
- NgDropdownPanelComponent,
2822
- NgOptionComponent,
2823
- NgSelectComponent,
2824
- NgOptgroupTemplateDirective,
2825
- NgOptionTemplateDirective,
2826
- NgLabelTemplateDirective,
2827
- NgMultiLabelTemplateDirective,
2828
- NgHeaderTemplateDirective,
2829
- NgFooterTemplateDirective,
2830
- NgNotFoundTemplateDirective,
2831
- NgTypeToSearchTemplateDirective,
2832
- NgLoadingTextTemplateDirective,
2833
- NgTagTemplateDirective,
2834
- NgLoadingSpinnerTemplateDirective,
2835
- NgItemLabelDirective
2836
- ],
2837
- imports: [
2838
- CommonModule
2839
- ],
2840
- exports: [
2841
- NgSelectComponent,
2842
- NgOptionComponent,
2843
- NgOptgroupTemplateDirective,
2844
- NgOptionTemplateDirective,
2845
- NgLabelTemplateDirective,
2846
- NgMultiLabelTemplateDirective,
2847
- NgHeaderTemplateDirective,
2848
- NgFooterTemplateDirective,
2849
- NgNotFoundTemplateDirective,
2850
- NgTypeToSearchTemplateDirective,
2851
- NgLoadingTextTemplateDirective,
2852
- NgTagTemplateDirective,
2853
- NgLoadingSpinnerTemplateDirective
2854
- ],
2855
- providers: [
2856
- { provide: SELECTION_MODEL_FACTORY, useValue: ɵ0 }
2857
- ]
2858
- },] }
2859
- ];
3000
+ NgSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3001
+ NgSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgSelectModule, declarations: [NgDropdownPanelComponent,
3002
+ NgOptionComponent,
3003
+ NgSelectComponent,
3004
+ NgOptgroupTemplateDirective,
3005
+ NgOptionTemplateDirective,
3006
+ NgLabelTemplateDirective,
3007
+ NgMultiLabelTemplateDirective,
3008
+ NgHeaderTemplateDirective,
3009
+ NgFooterTemplateDirective,
3010
+ NgNotFoundTemplateDirective,
3011
+ NgTypeToSearchTemplateDirective,
3012
+ NgLoadingTextTemplateDirective,
3013
+ NgTagTemplateDirective,
3014
+ NgLoadingSpinnerTemplateDirective,
3015
+ NgItemLabelDirective], imports: [CommonModule], exports: [NgSelectComponent,
3016
+ NgOptionComponent,
3017
+ NgOptgroupTemplateDirective,
3018
+ NgOptionTemplateDirective,
3019
+ NgLabelTemplateDirective,
3020
+ NgMultiLabelTemplateDirective,
3021
+ NgHeaderTemplateDirective,
3022
+ NgFooterTemplateDirective,
3023
+ NgNotFoundTemplateDirective,
3024
+ NgTypeToSearchTemplateDirective,
3025
+ NgLoadingTextTemplateDirective,
3026
+ NgTagTemplateDirective,
3027
+ NgLoadingSpinnerTemplateDirective] });
3028
+ NgSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgSelectModule, providers: [
3029
+ { provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory }
3030
+ ], imports: [[
3031
+ CommonModule
3032
+ ]] });
3033
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgSelectModule, decorators: [{
3034
+ type: NgModule,
3035
+ args: [{
3036
+ declarations: [
3037
+ NgDropdownPanelComponent,
3038
+ NgOptionComponent,
3039
+ NgSelectComponent,
3040
+ NgOptgroupTemplateDirective,
3041
+ NgOptionTemplateDirective,
3042
+ NgLabelTemplateDirective,
3043
+ NgMultiLabelTemplateDirective,
3044
+ NgHeaderTemplateDirective,
3045
+ NgFooterTemplateDirective,
3046
+ NgNotFoundTemplateDirective,
3047
+ NgTypeToSearchTemplateDirective,
3048
+ NgLoadingTextTemplateDirective,
3049
+ NgTagTemplateDirective,
3050
+ NgLoadingSpinnerTemplateDirective,
3051
+ NgItemLabelDirective
3052
+ ],
3053
+ imports: [
3054
+ CommonModule
3055
+ ],
3056
+ exports: [
3057
+ NgSelectComponent,
3058
+ NgOptionComponent,
3059
+ NgOptgroupTemplateDirective,
3060
+ NgOptionTemplateDirective,
3061
+ NgLabelTemplateDirective,
3062
+ NgMultiLabelTemplateDirective,
3063
+ NgHeaderTemplateDirective,
3064
+ NgFooterTemplateDirective,
3065
+ NgNotFoundTemplateDirective,
3066
+ NgTypeToSearchTemplateDirective,
3067
+ NgLoadingTextTemplateDirective,
3068
+ NgTagTemplateDirective,
3069
+ NgLoadingSpinnerTemplateDirective
3070
+ ],
3071
+ providers: [
3072
+ { provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory }
3073
+ ]
3074
+ }]
3075
+ }] });
2860
3076
 
2861
3077
  /*
2862
3078
  * Public API Surface of ng-select
@@ -2866,5 +3082,5 @@ NgSelectModule.decorators = [
2866
3082
  * Generated bundle index. Do not edit.
2867
3083
  */
2868
3084
 
2869
- export { NgSelectComponent, NgSelectConfig, NgSelectModule, SELECTION_MODEL_FACTORY, DefaultSelectionModelFactory as ɵb, DefaultSelectionModel as ɵc, NgDropdownPanelService as ɵd, NgItemLabelDirective as ɵe, NgOptionTemplateDirective as ɵf, NgOptgroupTemplateDirective as ɵg, NgLabelTemplateDirective as ɵh, NgMultiLabelTemplateDirective as ɵi, NgHeaderTemplateDirective as ɵj, NgFooterTemplateDirective as ɵk, NgNotFoundTemplateDirective as ɵl, NgTypeToSearchTemplateDirective as ɵm, NgLoadingTextTemplateDirective as ɵn, NgTagTemplateDirective as ɵo, NgLoadingSpinnerTemplateDirective as ɵp, NgDropdownPanelComponent as ɵq, NgOptionComponent as ɵr, ConsoleService as ɵs };
2870
- //# sourceMappingURL=ng-select-ng-select.js.map
3085
+ export { NgFooterTemplateDirective, NgHeaderTemplateDirective, NgItemLabelDirective, NgLabelTemplateDirective, NgLoadingSpinnerTemplateDirective, NgLoadingTextTemplateDirective, NgMultiLabelTemplateDirective, NgNotFoundTemplateDirective, NgOptgroupTemplateDirective, NgOptionComponent, NgOptionTemplateDirective, NgSelectComponent, NgSelectConfig, NgSelectModule, NgTagTemplateDirective, NgTypeToSearchTemplateDirective, SELECTION_MODEL_FACTORY };
3086
+ //# sourceMappingURL=ng-select-ng-select.mjs.map