@ng-select/ng-select 7.4.0 → 8.0.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 (49) 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} +507 -303
  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 +3 -0
  23. package/lib/console.service.d.ts +3 -0
  24. package/lib/ng-dropdown-panel.component.d.ts +4 -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 +11 -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/bundles/ng-select-ng-select.umd.js +0 -3508
  36. package/bundles/ng-select-ng-select.umd.js.map +0 -1
  37. package/esm2015/lib/config.service.js +0 -19
  38. package/esm2015/lib/console.service.js +0 -12
  39. package/esm2015/lib/items-list.js +0 -356
  40. package/esm2015/lib/ng-dropdown-panel.component.js +0 -370
  41. package/esm2015/lib/ng-dropdown-panel.service.js +0 -65
  42. package/esm2015/lib/ng-option.component.js +0 -53
  43. package/esm2015/lib/ng-select.component.js +0 -861
  44. package/esm2015/lib/ng-select.module.js +0 -54
  45. package/esm2015/lib/ng-templates.directive.js +0 -145
  46. package/esm2015/ng-select-ng-select.js +0 -11
  47. package/esm2015/public-api.js +0 -7
  48. package/fesm2015/ng-select-ng-select.js.map +0 -1
  49. 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,9 +1466,11 @@ 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
1475
  const CSS_POSITIONS = ['top', 'right', 'bottom', 'left'];
1474
1476
  const SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;
@@ -1787,12 +1789,28 @@ class NgDropdownPanelComponent {
1787
1789
  });
1788
1790
  }
1789
1791
  }
1790
- NgDropdownPanelComponent.decorators = [
1791
- { type: Component, args: [{
1792
- changeDetection: ChangeDetectionStrategy.OnPush,
1793
- encapsulation: ViewEncapsulation.None,
1794
- selector: 'ng-dropdown-panel',
1795
- 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: `
1796
1814
  <div *ngIf="headerTemplate" class="ng-dropdown-header">
1797
1815
  <ng-container [ngTemplateOutlet]="headerTemplate" [ngTemplateOutletContext]="{ searchTerm: filterValue }"></ng-container>
1798
1816
  </div>
@@ -1806,33 +1824,50 @@ NgDropdownPanelComponent.decorators = [
1806
1824
  <ng-container [ngTemplateOutlet]="footerTemplate" [ngTemplateOutletContext]="{ searchTerm: filterValue }"></ng-container>
1807
1825
  </div>
1808
1826
  `
1809
- },] }
1810
- ];
1811
- NgDropdownPanelComponent.ctorParameters = () => [
1812
- { type: Renderer2 },
1813
- { type: NgZone },
1814
- { type: NgDropdownPanelService },
1815
- { type: ElementRef },
1816
- { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] }
1817
- ];
1818
- NgDropdownPanelComponent.propDecorators = {
1819
- items: [{ type: Input }],
1820
- markedItem: [{ type: Input }],
1821
- position: [{ type: Input }],
1822
- appendTo: [{ type: Input }],
1823
- bufferAmount: [{ type: Input }],
1824
- virtualScroll: [{ type: Input }],
1825
- headerTemplate: [{ type: Input }],
1826
- footerTemplate: [{ type: Input }],
1827
- filterValue: [{ type: Input }],
1828
- update: [{ type: Output }],
1829
- scroll: [{ type: Output }],
1830
- scrollToEnd: [{ type: Output }],
1831
- outsideClick: [{ type: Output }],
1832
- contentElementRef: [{ type: ViewChild, args: ['content', { read: ElementRef, static: true },] }],
1833
- scrollElementRef: [{ type: ViewChild, args: ['scroll', { read: ElementRef, static: true },] }],
1834
- paddingElementRef: [{ type: ViewChild, args: ['padding', { read: ElementRef, static: true },] }]
1835
- };
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
+ }] } });
1836
1871
 
1837
1872
  class NgOptionComponent {
1838
1873
  constructor(elementRef) {
@@ -1870,20 +1905,20 @@ class NgOptionComponent {
1870
1905
  return value != null && `${value}` !== 'false';
1871
1906
  }
1872
1907
  }
1873
- NgOptionComponent.decorators = [
1874
- { type: Component, args: [{
1875
- selector: 'ng-option',
1876
- changeDetection: ChangeDetectionStrategy.OnPush,
1877
- template: `<ng-content></ng-content>`
1878
- },] }
1879
- ];
1880
- NgOptionComponent.ctorParameters = () => [
1881
- { type: ElementRef }
1882
- ];
1883
- NgOptionComponent.propDecorators = {
1884
- value: [{ type: Input }],
1885
- disabled: [{ type: Input }]
1886
- };
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
+ }] } });
1887
1922
 
1888
1923
  class NgSelectConfig {
1889
1924
  constructor() {
@@ -1897,10 +1932,24 @@ class NgSelectConfig {
1897
1932
  this.appearance = 'underline';
1898
1933
  }
1899
1934
  }
1900
- NgSelectConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function NgSelectConfig_Factory() { return new NgSelectConfig(); }, token: NgSelectConfig, providedIn: "root" });
1901
- NgSelectConfig.decorators = [
1902
- { type: Injectable, args: [{ providedIn: 'root' },] }
1903
- ];
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
+ }] });
1904
1953
 
1905
1954
  const SELECTION_MODEL_FACTORY = new InjectionToken('ng-select-selection-model');
1906
1955
  class NgSelectComponent {
@@ -1946,11 +1995,11 @@ class NgSelectComponent {
1946
1995
  this.removeEvent = new EventEmitter();
1947
1996
  this.scroll = new EventEmitter();
1948
1997
  this.scrollToEnd = new EventEmitter();
1998
+ this.useDefaultClass = true;
1949
1999
  this.viewPortItems = [];
1950
2000
  this.searchTerm = null;
1951
2001
  this.dropdownId = newId();
1952
2002
  this.escapeHTML = true;
1953
- this.useDefaultClass = true;
1954
2003
  this._items = [];
1955
2004
  this._defaultLabel = 'label';
1956
2005
  this._pressedKeys = [];
@@ -2008,6 +2057,8 @@ class NgSelectComponent {
2008
2057
  ;
2009
2058
  get filtered() { return (!!this.searchTerm && this.searchable || this._isComposing); }
2010
2059
  ;
2060
+ get single() { return !this.multiple; }
2061
+ ;
2011
2062
  get _editableSearchTerm() {
2012
2063
  return this.editableSearchTerm && !this.multiple;
2013
2064
  }
@@ -2647,107 +2698,227 @@ class NgSelectComponent {
2647
2698
  this.appearance = this.appearance || config.appearance;
2648
2699
  }
2649
2700
  }
2650
- NgSelectComponent.decorators = [
2651
- { type: Component, args: [{
2652
- selector: 'ng-select',
2653
- 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",
2654
- providers: [{
2655
- provide: NG_VALUE_ACCESSOR,
2656
- useExisting: forwardRef(() => NgSelectComponent),
2657
- multi: true
2658
- }, NgDropdownPanelService],
2659
- encapsulation: ViewEncapsulation.None,
2660
- changeDetection: ChangeDetectionStrategy.OnPush,
2661
- host: {
2662
- '[class.ng-select]': 'useDefaultClass',
2663
- '[class.ng-select-single]': '!multiple',
2664
- },
2665
- styles: [".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{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.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:bold;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"]
2666
- },] }
2667
- ];
2668
- NgSelectComponent.ctorParameters = () => [
2669
- { type: String, decorators: [{ type: Attribute, args: ['class',] }] },
2670
- { type: undefined, decorators: [{ type: Attribute, args: ['autofocus',] }] },
2671
- { type: NgSelectConfig },
2672
- { type: undefined, decorators: [{ type: Inject, args: [SELECTION_MODEL_FACTORY,] }] },
2673
- { type: ElementRef },
2674
- { type: ChangeDetectorRef },
2675
- { type: ConsoleService }
2676
- ];
2677
- NgSelectComponent.propDecorators = {
2678
- bindLabel: [{ type: Input }],
2679
- bindValue: [{ type: Input }],
2680
- markFirst: [{ type: Input }],
2681
- placeholder: [{ type: Input }],
2682
- notFoundText: [{ type: Input }],
2683
- typeToSearchText: [{ type: Input }],
2684
- addTagText: [{ type: Input }],
2685
- loadingText: [{ type: Input }],
2686
- clearAllText: [{ type: Input }],
2687
- appearance: [{ type: Input }],
2688
- dropdownPosition: [{ type: Input }],
2689
- appendTo: [{ type: Input }],
2690
- loading: [{ type: Input }],
2691
- closeOnSelect: [{ type: Input }],
2692
- hideSelected: [{ type: Input }],
2693
- selectOnTab: [{ type: Input }],
2694
- openOnEnter: [{ type: Input }],
2695
- maxSelectedItems: [{ type: Input }],
2696
- groupBy: [{ type: Input }],
2697
- groupValue: [{ type: Input }],
2698
- bufferAmount: [{ type: Input }],
2699
- virtualScroll: [{ type: Input }],
2700
- selectableGroup: [{ type: Input }],
2701
- selectableGroupAsModel: [{ type: Input }],
2702
- searchFn: [{ type: Input }],
2703
- trackByFn: [{ type: Input }],
2704
- clearOnBackspace: [{ type: Input }],
2705
- labelForId: [{ type: Input }],
2706
- inputAttrs: [{ type: Input }],
2707
- tabIndex: [{ type: Input }],
2708
- readonly: [{ type: Input }],
2709
- searchWhileComposing: [{ type: Input }],
2710
- minTermLength: [{ type: Input }],
2711
- editableSearchTerm: [{ type: Input }],
2712
- keyDownFn: [{ type: Input }],
2713
- typeahead: [{ type: Input }, { type: HostBinding, args: ['class.ng-select-typeahead',] }],
2714
- multiple: [{ type: Input }, { type: HostBinding, args: ['class.ng-select-multiple',] }],
2715
- addTag: [{ type: Input }, { type: HostBinding, args: ['class.ng-select-taggable',] }],
2716
- searchable: [{ type: Input }, { type: HostBinding, args: ['class.ng-select-searchable',] }],
2717
- clearable: [{ type: Input }, { type: HostBinding, args: ['class.ng-select-clearable',] }],
2718
- isOpen: [{ type: Input }, { type: HostBinding, args: ['class.ng-select-opened',] }],
2719
- items: [{ type: Input }],
2720
- compareWith: [{ type: Input }],
2721
- clearSearchOnAdd: [{ type: Input }],
2722
- blurEvent: [{ type: Output, args: ['blur',] }],
2723
- focusEvent: [{ type: Output, args: ['focus',] }],
2724
- changeEvent: [{ type: Output, args: ['change',] }],
2725
- openEvent: [{ type: Output, args: ['open',] }],
2726
- closeEvent: [{ type: Output, args: ['close',] }],
2727
- searchEvent: [{ type: Output, args: ['search',] }],
2728
- clearEvent: [{ type: Output, args: ['clear',] }],
2729
- addEvent: [{ type: Output, args: ['add',] }],
2730
- removeEvent: [{ type: Output, args: ['remove',] }],
2731
- scroll: [{ type: Output, args: ['scroll',] }],
2732
- scrollToEnd: [{ type: Output, args: ['scrollToEnd',] }],
2733
- optionTemplate: [{ type: ContentChild, args: [NgOptionTemplateDirective, { read: TemplateRef },] }],
2734
- optgroupTemplate: [{ type: ContentChild, args: [NgOptgroupTemplateDirective, { read: TemplateRef },] }],
2735
- labelTemplate: [{ type: ContentChild, args: [NgLabelTemplateDirective, { read: TemplateRef },] }],
2736
- multiLabelTemplate: [{ type: ContentChild, args: [NgMultiLabelTemplateDirective, { read: TemplateRef },] }],
2737
- headerTemplate: [{ type: ContentChild, args: [NgHeaderTemplateDirective, { read: TemplateRef },] }],
2738
- footerTemplate: [{ type: ContentChild, args: [NgFooterTemplateDirective, { read: TemplateRef },] }],
2739
- notFoundTemplate: [{ type: ContentChild, args: [NgNotFoundTemplateDirective, { read: TemplateRef },] }],
2740
- typeToSearchTemplate: [{ type: ContentChild, args: [NgTypeToSearchTemplateDirective, { read: TemplateRef },] }],
2741
- loadingTextTemplate: [{ type: ContentChild, args: [NgLoadingTextTemplateDirective, { read: TemplateRef },] }],
2742
- tagTemplate: [{ type: ContentChild, args: [NgTagTemplateDirective, { read: TemplateRef },] }],
2743
- loadingSpinnerTemplate: [{ type: ContentChild, args: [NgLoadingSpinnerTemplateDirective, { read: TemplateRef },] }],
2744
- dropdownPanel: [{ type: ViewChild, args: [forwardRef(() => NgDropdownPanelComponent),] }],
2745
- searchInput: [{ type: ViewChild, args: ['searchInput', { static: true },] }],
2746
- ngOptions: [{ type: ContentChildren, args: [NgOptionComponent, { descendants: true },] }],
2747
- disabled: [{ type: HostBinding, args: ['class.ng-select-disabled',] }],
2748
- filtered: [{ type: HostBinding, args: ['class.ng-select-filtered',] }],
2749
- handleKeyDown: [{ type: HostListener, args: ['keydown', ['$event'],] }]
2750
- };
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
+ }] } });
2751
2922
 
2752
2923
  function DefaultSelectionModelFactory() {
2753
2924
  return new DefaultSelectionModel();
@@ -2824,51 +2995,84 @@ class DefaultSelectionModel {
2824
2995
  }
2825
2996
  }
2826
2997
 
2827
- const ɵ0 = DefaultSelectionModelFactory;
2828
2998
  class NgSelectModule {
2829
2999
  }
2830
- NgSelectModule.decorators = [
2831
- { type: NgModule, args: [{
2832
- declarations: [
2833
- NgDropdownPanelComponent,
2834
- NgOptionComponent,
2835
- NgSelectComponent,
2836
- NgOptgroupTemplateDirective,
2837
- NgOptionTemplateDirective,
2838
- NgLabelTemplateDirective,
2839
- NgMultiLabelTemplateDirective,
2840
- NgHeaderTemplateDirective,
2841
- NgFooterTemplateDirective,
2842
- NgNotFoundTemplateDirective,
2843
- NgTypeToSearchTemplateDirective,
2844
- NgLoadingTextTemplateDirective,
2845
- NgTagTemplateDirective,
2846
- NgLoadingSpinnerTemplateDirective,
2847
- NgItemLabelDirective
2848
- ],
2849
- imports: [
2850
- CommonModule
2851
- ],
2852
- exports: [
2853
- NgSelectComponent,
2854
- NgOptionComponent,
2855
- NgOptgroupTemplateDirective,
2856
- NgOptionTemplateDirective,
2857
- NgLabelTemplateDirective,
2858
- NgMultiLabelTemplateDirective,
2859
- NgHeaderTemplateDirective,
2860
- NgFooterTemplateDirective,
2861
- NgNotFoundTemplateDirective,
2862
- NgTypeToSearchTemplateDirective,
2863
- NgLoadingTextTemplateDirective,
2864
- NgTagTemplateDirective,
2865
- NgLoadingSpinnerTemplateDirective
2866
- ],
2867
- providers: [
2868
- { provide: SELECTION_MODEL_FACTORY, useValue: ɵ0 }
2869
- ]
2870
- },] }
2871
- ];
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
+ }] });
2872
3076
 
2873
3077
  /*
2874
3078
  * Public API Surface of ng-select
@@ -2878,5 +3082,5 @@ NgSelectModule.decorators = [
2878
3082
  * Generated bundle index. Do not edit.
2879
3083
  */
2880
3084
 
2881
- 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 };
2882
- //# 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