@ng-select/ng-select 13.2.1 → 13.4.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.
- package/esm2022/lib/config.service.mjs +1 -1
- package/esm2022/lib/console.service.mjs +1 -1
- package/esm2022/lib/id.mjs +2 -2
- package/esm2022/lib/items-list.mjs +31 -31
- package/esm2022/lib/ng-dropdown-panel.component.mjs +41 -42
- package/esm2022/lib/ng-dropdown-panel.service.mjs +6 -6
- package/esm2022/lib/ng-option.component.mjs +5 -5
- package/esm2022/lib/ng-select.component.mjs +65 -55
- package/esm2022/lib/ng-select.module.mjs +7 -13
- package/esm2022/lib/ng-select.types.mjs +1 -1
- package/esm2022/lib/ng-templates.directive.mjs +2 -4
- package/esm2022/lib/search-helper.mjs +2 -2
- package/esm2022/lib/selection-model.mjs +11 -11
- package/esm2022/lib/value-utils.mjs +3 -5
- package/esm2022/public-api.mjs +2 -2
- package/fesm2022/ng-select-ng-select.mjs +159 -160
- package/fesm2022/ng-select-ng-select.mjs.map +1 -1
- package/lib/ng-select.component.d.ts +4 -2
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/scss/_mixins.scss +3 -3
- package/scss/ant.design.theme.scss +333 -333
- package/scss/default.theme.scss +355 -351
- package/scss/material.theme.scss +353 -338
- package/scss/ng-select.component.scss +293 -293
- package/themes/ant.design.theme.css +1 -1
- package/themes/default.theme.css +1 -1
- package/themes/material.theme.css +1 -1
|
@@ -13,12 +13,10 @@ const htmlEscapes = {
|
|
|
13
13
|
'<': '<',
|
|
14
14
|
'>': '>',
|
|
15
15
|
'"': '"',
|
|
16
|
-
'
|
|
16
|
+
"'": ''',
|
|
17
17
|
};
|
|
18
18
|
function escapeHTML(value) {
|
|
19
|
-
return
|
|
20
|
-
value.replace(unescapedHTMLExp, chr => htmlEscapes[chr]) :
|
|
21
|
-
value;
|
|
19
|
+
return value && hasUnescapedHTMLExp.test(value) ? value.replace(unescapedHTMLExp, (chr) => htmlEscapes[chr]) : value;
|
|
22
20
|
}
|
|
23
21
|
function isDefined(value) {
|
|
24
22
|
return value !== undefined && value !== null;
|
|
@@ -39,9 +37,7 @@ class NgItemLabelDirective {
|
|
|
39
37
|
this.escape = true;
|
|
40
38
|
}
|
|
41
39
|
ngOnChanges(changes) {
|
|
42
|
-
this.element.nativeElement.innerHTML = this.escape ?
|
|
43
|
-
escapeHTML(this.ngItemLabel) :
|
|
44
|
-
this.ngItemLabel;
|
|
40
|
+
this.element.nativeElement.innerHTML = this.escape ? escapeHTML(this.ngItemLabel) : this.ngItemLabel;
|
|
45
41
|
}
|
|
46
42
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgItemLabelDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
47
43
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: NgItemLabelDirective, selector: "[ngItemLabel]", inputs: { ngItemLabel: "ngItemLabel", escape: "escape" }, usesOnChanges: true, ngImport: i0 }); }
|
|
@@ -191,7 +187,7 @@ function newId() {
|
|
|
191
187
|
// First character is an 'a', it's good practice to tag id to begin with a letter
|
|
192
188
|
return 'axxxxxxxxxxx'.replace(/[x]/g, () => {
|
|
193
189
|
// eslint-disable-next-line no-bitwise
|
|
194
|
-
const val = Math.random() * 16 | 0;
|
|
190
|
+
const val = (Math.random() * 16) | 0;
|
|
195
191
|
return val.toString(16);
|
|
196
192
|
});
|
|
197
193
|
}
|
|
@@ -1035,7 +1031,7 @@ const diacritics = {
|
|
|
1035
1031
|
'\u03CB': '\u03C5',
|
|
1036
1032
|
'\u03B0': '\u03C5',
|
|
1037
1033
|
'\u03C9': '\u03C9',
|
|
1038
|
-
'\u03C2': '\u03C3'
|
|
1034
|
+
'\u03C2': '\u03C3',
|
|
1039
1035
|
};
|
|
1040
1036
|
function stripSpecialChars(text) {
|
|
1041
1037
|
const match = (a) => diacritics[a] || a;
|
|
@@ -1118,16 +1114,15 @@ class ItemsList {
|
|
|
1118
1114
|
findItem(value) {
|
|
1119
1115
|
let findBy;
|
|
1120
1116
|
if (this._ngSelect.compareWith) {
|
|
1121
|
-
findBy = item => this._ngSelect.compareWith(item.value, value);
|
|
1117
|
+
findBy = (item) => this._ngSelect.compareWith(item.value, value);
|
|
1122
1118
|
}
|
|
1123
1119
|
else if (this._ngSelect.bindValue) {
|
|
1124
|
-
findBy = item => !item.children && this.resolveNested(item.value, this._ngSelect.bindValue) === value;
|
|
1120
|
+
findBy = (item) => !item.children && this.resolveNested(item.value, this._ngSelect.bindValue) === value;
|
|
1125
1121
|
}
|
|
1126
1122
|
else {
|
|
1127
|
-
findBy = item => item.value === value ||
|
|
1128
|
-
!item.children && item.label && item.label === this.resolveNested(value, this._ngSelect.bindLabel);
|
|
1123
|
+
findBy = (item) => item.value === value || (!item.children && item.label && item.label === this.resolveNested(value, this._ngSelect.bindLabel));
|
|
1129
1124
|
}
|
|
1130
|
-
return this._items.find(item => findBy(item));
|
|
1125
|
+
return this._items.find((item) => findBy(item));
|
|
1131
1126
|
}
|
|
1132
1127
|
addItem(item) {
|
|
1133
1128
|
const option = this.mapItem(item, this._items.length);
|
|
@@ -1137,7 +1132,7 @@ class ItemsList {
|
|
|
1137
1132
|
}
|
|
1138
1133
|
clearSelected(keepDisabled = false) {
|
|
1139
1134
|
this._selectionModel.clear(keepDisabled);
|
|
1140
|
-
this._items.forEach(item => {
|
|
1135
|
+
this._items.forEach((item) => {
|
|
1141
1136
|
item.selected = keepDisabled && item.selected && item.disabled;
|
|
1142
1137
|
item.marked = false;
|
|
1143
1138
|
});
|
|
@@ -1147,7 +1142,7 @@ class ItemsList {
|
|
|
1147
1142
|
}
|
|
1148
1143
|
findByLabel(term) {
|
|
1149
1144
|
term = stripSpecialChars(term).toLocaleLowerCase();
|
|
1150
|
-
return this.filteredItems.find(item => {
|
|
1145
|
+
return this.filteredItems.find((item) => {
|
|
1151
1146
|
const label = stripSpecialChars(item.label).toLocaleLowerCase();
|
|
1152
1147
|
return label.substr(0, term.length) === term;
|
|
1153
1148
|
});
|
|
@@ -1164,7 +1159,7 @@ class ItemsList {
|
|
|
1164
1159
|
for (const key of Array.from(this._groups.keys())) {
|
|
1165
1160
|
const matchedItems = [];
|
|
1166
1161
|
for (const item of this._groups.get(key)) {
|
|
1167
|
-
if (hideSelected && (item.parent && item.parent.selected || item.selected)) {
|
|
1162
|
+
if (hideSelected && ((item.parent && item.parent.selected) || item.selected)) {
|
|
1168
1163
|
continue;
|
|
1169
1164
|
}
|
|
1170
1165
|
const searchItem = this._ngSelect.searchFn ? item.value : item;
|
|
@@ -1175,7 +1170,7 @@ class ItemsList {
|
|
|
1175
1170
|
if (matchedItems.length > 0) {
|
|
1176
1171
|
const [last] = matchedItems.slice(-1);
|
|
1177
1172
|
if (last.parent) {
|
|
1178
|
-
const head = this._items.find(x => x === last.parent);
|
|
1173
|
+
const head = this._items.find((x) => x === last.parent);
|
|
1179
1174
|
this._filteredItems.push(head);
|
|
1180
1175
|
}
|
|
1181
1176
|
this._filteredItems.push(...matchedItems);
|
|
@@ -1187,7 +1182,7 @@ class ItemsList {
|
|
|
1187
1182
|
return;
|
|
1188
1183
|
}
|
|
1189
1184
|
if (this._ngSelect.hideSelected && this.selectedItems.length > 0) {
|
|
1190
|
-
this._filteredItems = this._items.filter(x => !x.selected);
|
|
1185
|
+
this._filteredItems = this._items.filter((x) => !x.selected);
|
|
1191
1186
|
}
|
|
1192
1187
|
else {
|
|
1193
1188
|
this._filteredItems = this._items;
|
|
@@ -1214,7 +1209,7 @@ class ItemsList {
|
|
|
1214
1209
|
this._markedIndex = lastMarkedIndex;
|
|
1215
1210
|
}
|
|
1216
1211
|
else {
|
|
1217
|
-
this._markedIndex = markDefault ? this.filteredItems.findIndex(x => !x.disabled) : -1;
|
|
1212
|
+
this._markedIndex = markDefault ? this.filteredItems.findIndex((x) => !x.disabled) : -1;
|
|
1218
1213
|
}
|
|
1219
1214
|
}
|
|
1220
1215
|
resolveNested(option, key) {
|
|
@@ -1256,14 +1251,14 @@ class ItemsList {
|
|
|
1256
1251
|
this._selectionModel.select(item || selected, multiple, this._ngSelect.selectableGroupAsModel);
|
|
1257
1252
|
}
|
|
1258
1253
|
if (this._ngSelect.hideSelected) {
|
|
1259
|
-
this._filteredItems = this.filteredItems.filter(x => this.selectedItems.indexOf(x) === -1);
|
|
1254
|
+
this._filteredItems = this.filteredItems.filter((x) => this.selectedItems.indexOf(x) === -1);
|
|
1260
1255
|
}
|
|
1261
1256
|
}
|
|
1262
1257
|
_showSelected(item) {
|
|
1263
1258
|
this._filteredItems.push(item);
|
|
1264
1259
|
if (item.parent) {
|
|
1265
1260
|
const parent = item.parent;
|
|
1266
|
-
const parentExists = this._filteredItems.find(x => x === parent);
|
|
1261
|
+
const parentExists = this._filteredItems.find((x) => x === parent);
|
|
1267
1262
|
if (!parentExists) {
|
|
1268
1263
|
this._filteredItems.push(parent);
|
|
1269
1264
|
}
|
|
@@ -1274,18 +1269,18 @@ class ItemsList {
|
|
|
1274
1269
|
this._filteredItems.push(child);
|
|
1275
1270
|
}
|
|
1276
1271
|
}
|
|
1277
|
-
this._filteredItems = [...this._filteredItems.sort((a, b) =>
|
|
1272
|
+
this._filteredItems = [...this._filteredItems.sort((a, b) => a.index - b.index)];
|
|
1278
1273
|
}
|
|
1279
1274
|
_hideSelected(item) {
|
|
1280
|
-
this._filteredItems = this._filteredItems.filter(x => x !== item);
|
|
1275
|
+
this._filteredItems = this._filteredItems.filter((x) => x !== item);
|
|
1281
1276
|
if (item.parent) {
|
|
1282
1277
|
const children = item.parent.children;
|
|
1283
|
-
if (children.every(x => x.selected)) {
|
|
1284
|
-
this._filteredItems = this._filteredItems.filter(x => x !== item.parent);
|
|
1278
|
+
if (children.every((x) => x.selected)) {
|
|
1279
|
+
this._filteredItems = this._filteredItems.filter((x) => x !== item.parent);
|
|
1285
1280
|
}
|
|
1286
1281
|
}
|
|
1287
1282
|
else if (item.children) {
|
|
1288
|
-
this._filteredItems = this.filteredItems.filter(x => x.parent !== item);
|
|
1283
|
+
this._filteredItems = this.filteredItems.filter((x) => x.parent !== item);
|
|
1289
1284
|
}
|
|
1290
1285
|
}
|
|
1291
1286
|
_defaultSearchFn(search, opt) {
|
|
@@ -1294,12 +1289,12 @@ class ItemsList {
|
|
|
1294
1289
|
}
|
|
1295
1290
|
_getNextItemIndex(steps) {
|
|
1296
1291
|
if (steps > 0) {
|
|
1297
|
-
return
|
|
1292
|
+
return this._markedIndex >= this._filteredItems.length - 1 ? 0 : this._markedIndex + 1;
|
|
1298
1293
|
}
|
|
1299
|
-
return
|
|
1294
|
+
return this._markedIndex <= 0 ? this._filteredItems.length - 1 : this._markedIndex - 1;
|
|
1300
1295
|
}
|
|
1301
1296
|
_stepToItem(steps) {
|
|
1302
|
-
if (this._filteredItems.length === 0 || this._filteredItems.every(x => x.disabled)) {
|
|
1297
|
+
if (this._filteredItems.length === 0 || this._filteredItems.every((x) => x.disabled)) {
|
|
1303
1298
|
return;
|
|
1304
1299
|
}
|
|
1305
1300
|
this._markedIndex = this._getNextItemIndex(steps);
|
|
@@ -1358,7 +1353,7 @@ class ItemsList {
|
|
|
1358
1353
|
let i = items.length;
|
|
1359
1354
|
if (key === undefined) {
|
|
1360
1355
|
const withoutGroup = groups.get(undefined) || [];
|
|
1361
|
-
items.push(...withoutGroup.map(x => {
|
|
1356
|
+
items.push(...withoutGroup.map((x) => {
|
|
1362
1357
|
x.index = i++;
|
|
1363
1358
|
return x;
|
|
1364
1359
|
}));
|
|
@@ -1374,20 +1369,21 @@ class ItemsList {
|
|
|
1374
1369
|
htmlId: newId(),
|
|
1375
1370
|
};
|
|
1376
1371
|
const groupKey = isGroupByFn ? this._ngSelect.bindLabel : this._ngSelect.groupBy;
|
|
1377
|
-
const groupValue = this._ngSelect.groupValue ||
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1372
|
+
const groupValue = this._ngSelect.groupValue ||
|
|
1373
|
+
(() => {
|
|
1374
|
+
if (isObjectKey) {
|
|
1375
|
+
return key.value;
|
|
1376
|
+
}
|
|
1377
|
+
return { [groupKey]: key };
|
|
1378
|
+
});
|
|
1379
|
+
const children = groups.get(key).map((x) => {
|
|
1384
1380
|
x.parent = parent;
|
|
1385
1381
|
x.children = undefined;
|
|
1386
1382
|
x.index = i++;
|
|
1387
1383
|
return x;
|
|
1388
1384
|
});
|
|
1389
1385
|
parent.children = children;
|
|
1390
|
-
parent.value = groupValue(key, children.map(x => x.value));
|
|
1386
|
+
parent.value = groupValue(key, children.map((x) => x.value));
|
|
1391
1387
|
items.push(parent);
|
|
1392
1388
|
items.push(...children);
|
|
1393
1389
|
}
|
|
@@ -1411,7 +1407,7 @@ class NgDropdownPanelService {
|
|
|
1411
1407
|
this._dimensions = {
|
|
1412
1408
|
itemHeight: 0,
|
|
1413
1409
|
panelHeight: 0,
|
|
1414
|
-
itemsPerViewport: 0
|
|
1410
|
+
itemsPerViewport: 0,
|
|
1415
1411
|
};
|
|
1416
1412
|
}
|
|
1417
1413
|
get dimensions() {
|
|
@@ -1421,12 +1417,12 @@ class NgDropdownPanelService {
|
|
|
1421
1417
|
const d = this._dimensions;
|
|
1422
1418
|
const scrollHeight = d.itemHeight * itemsLength;
|
|
1423
1419
|
const scrollTop = Math.max(0, scrollPos);
|
|
1424
|
-
const indexByScrollTop = scrollTop / scrollHeight * itemsLength;
|
|
1420
|
+
const indexByScrollTop = (scrollTop / scrollHeight) * itemsLength;
|
|
1425
1421
|
let end = Math.min(itemsLength, Math.ceil(indexByScrollTop) + (d.itemsPerViewport + 1));
|
|
1426
1422
|
const maxStartEnd = end;
|
|
1427
1423
|
const maxStart = Math.max(0, maxStartEnd - d.itemsPerViewport);
|
|
1428
1424
|
let start = Math.min(maxStart, Math.floor(indexByScrollTop));
|
|
1429
|
-
let topPadding = d.itemHeight * Math.ceil(start) -
|
|
1425
|
+
let topPadding = d.itemHeight * Math.ceil(start) - d.itemHeight * Math.min(start, buffer);
|
|
1430
1426
|
topPadding = !isNaN(topPadding) ? topPadding : 0;
|
|
1431
1427
|
start = !isNaN(start) ? start : -1;
|
|
1432
1428
|
end = !isNaN(end) ? end : -1;
|
|
@@ -1438,7 +1434,7 @@ class NgDropdownPanelService {
|
|
|
1438
1434
|
topPadding,
|
|
1439
1435
|
scrollHeight,
|
|
1440
1436
|
start,
|
|
1441
|
-
end
|
|
1437
|
+
end,
|
|
1442
1438
|
};
|
|
1443
1439
|
}
|
|
1444
1440
|
setDimensions(itemHeight, panelHeight) {
|
|
@@ -1446,7 +1442,7 @@ class NgDropdownPanelService {
|
|
|
1446
1442
|
this._dimensions = {
|
|
1447
1443
|
itemHeight,
|
|
1448
1444
|
panelHeight,
|
|
1449
|
-
itemsPerViewport
|
|
1445
|
+
itemsPerViewport,
|
|
1450
1446
|
};
|
|
1451
1447
|
}
|
|
1452
1448
|
getScrollTo(itemTop, itemHeight, lastScroll) {
|
|
@@ -1596,7 +1592,7 @@ class NgDropdownPanelComponent {
|
|
|
1596
1592
|
.pipe(takeUntil(this._destroy$), auditTime(0, SCROLL_SCHEDULER))
|
|
1597
1593
|
.subscribe((e) => {
|
|
1598
1594
|
const path = e.path || (e.composedPath && e.composedPath());
|
|
1599
|
-
if (!path || path.length === 0 && !e.target) {
|
|
1595
|
+
if (!path || (path.length === 0 && !e.target)) {
|
|
1600
1596
|
return;
|
|
1601
1597
|
}
|
|
1602
1598
|
const scrollTop = !path || path.length === 0 ? e.target.scrollTop : path[0].scrollTop;
|
|
@@ -1609,8 +1605,9 @@ class NgDropdownPanelComponent {
|
|
|
1609
1605
|
return;
|
|
1610
1606
|
}
|
|
1611
1607
|
this._zone.runOutsideAngular(() => {
|
|
1612
|
-
merge(fromEvent(this._document, 'touchstart', { capture: true }), fromEvent(this._document, 'click', { capture: true }))
|
|
1613
|
-
.
|
|
1608
|
+
merge(fromEvent(this._document, 'touchstart', { capture: true }), fromEvent(this._document, 'click', { capture: true }))
|
|
1609
|
+
.pipe(takeUntil(this._destroy$))
|
|
1610
|
+
.subscribe(($event) => this._checkToClose($event));
|
|
1614
1611
|
});
|
|
1615
1612
|
}
|
|
1616
1613
|
_checkToClose($event) {
|
|
@@ -1720,9 +1717,7 @@ class NgDropdownPanelComponent {
|
|
|
1720
1717
|
if (this._scrollToEndFired || scrollTop === 0) {
|
|
1721
1718
|
return;
|
|
1722
1719
|
}
|
|
1723
|
-
const padding = this.virtualScroll ?
|
|
1724
|
-
this._virtualPadding :
|
|
1725
|
-
this._contentPanel;
|
|
1720
|
+
const padding = this.virtualScroll ? this._virtualPadding : this._contentPanel;
|
|
1726
1721
|
if (scrollTop + this._dropdown.clientHeight >= padding.clientHeight - 1) {
|
|
1727
1722
|
this._zone.run(() => this.scrollToEnd.emit());
|
|
1728
1723
|
this._scrollToEndFired = true;
|
|
@@ -1793,23 +1788,23 @@ class NgDropdownPanelComponent {
|
|
|
1793
1788
|
}
|
|
1794
1789
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgDropdownPanelComponent, deps: [{ token: i0.Renderer2 }, { token: i0.NgZone }, { token: NgDropdownPanelService }, { token: i0.ElementRef }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1795
1790
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: NgDropdownPanelComponent, selector: "ng-dropdown-panel", inputs: { items: "items", markedItem: "markedItem", position: "position", appendTo: "appendTo", bufferAmount: "bufferAmount", virtualScroll: ["virtualScroll", "virtualScroll", booleanAttribute], 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: `
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1791
|
+
@if (headerTemplate) {
|
|
1792
|
+
<div class="ng-dropdown-header">
|
|
1793
|
+
<ng-container [ngTemplateOutlet]="headerTemplate" [ngTemplateOutletContext]="{ searchTerm: filterValue }"></ng-container>
|
|
1794
|
+
</div>
|
|
1795
|
+
}
|
|
1796
|
+
<div #scroll role="listbox" class="ng-dropdown-panel-items scroll-host">
|
|
1797
|
+
<div #padding [class.total-padding]="virtualScroll"></div>
|
|
1798
|
+
<div #content [class.scrollable-content]="virtualScroll && items.length">
|
|
1799
|
+
<ng-content></ng-content>
|
|
1800
|
+
</div>
|
|
1801
|
+
</div>
|
|
1802
|
+
@if (footerTemplate) {
|
|
1803
|
+
<div class="ng-dropdown-footer">
|
|
1804
|
+
<ng-container [ngTemplateOutlet]="footerTemplate" [ngTemplateOutletContext]="{ searchTerm: filterValue }"></ng-container>
|
|
1805
|
+
</div>
|
|
1806
|
+
}
|
|
1807
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1813
1808
|
}
|
|
1814
1809
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgDropdownPanelComponent, decorators: [{
|
|
1815
1810
|
type: Component,
|
|
@@ -1818,23 +1813,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
1818
1813
|
encapsulation: ViewEncapsulation.None,
|
|
1819
1814
|
selector: 'ng-dropdown-panel',
|
|
1820
1815
|
template: `
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1816
|
+
@if (headerTemplate) {
|
|
1817
|
+
<div class="ng-dropdown-header">
|
|
1818
|
+
<ng-container [ngTemplateOutlet]="headerTemplate" [ngTemplateOutletContext]="{ searchTerm: filterValue }"></ng-container>
|
|
1819
|
+
</div>
|
|
1820
|
+
}
|
|
1821
|
+
<div #scroll role="listbox" class="ng-dropdown-panel-items scroll-host">
|
|
1822
|
+
<div #padding [class.total-padding]="virtualScroll"></div>
|
|
1823
|
+
<div #content [class.scrollable-content]="virtualScroll && items.length">
|
|
1824
|
+
<ng-content></ng-content>
|
|
1825
|
+
</div>
|
|
1826
|
+
</div>
|
|
1827
|
+
@if (footerTemplate) {
|
|
1828
|
+
<div class="ng-dropdown-footer">
|
|
1829
|
+
<ng-container [ngTemplateOutlet]="footerTemplate" [ngTemplateOutletContext]="{ searchTerm: filterValue }"></ng-container>
|
|
1830
|
+
</div>
|
|
1831
|
+
}
|
|
1832
|
+
`,
|
|
1838
1833
|
}]
|
|
1839
1834
|
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.NgZone }, { type: NgDropdownPanelService }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
1840
1835
|
type: Optional
|
|
@@ -1892,7 +1887,7 @@ class NgOptionComponent {
|
|
|
1892
1887
|
if (changes.disabled) {
|
|
1893
1888
|
this.stateChange$.next({
|
|
1894
1889
|
value: this.value,
|
|
1895
|
-
disabled: this.disabled
|
|
1890
|
+
disabled: this.disabled,
|
|
1896
1891
|
});
|
|
1897
1892
|
}
|
|
1898
1893
|
}
|
|
@@ -1902,7 +1897,7 @@ class NgOptionComponent {
|
|
|
1902
1897
|
this.stateChange$.next({
|
|
1903
1898
|
value: this.value,
|
|
1904
1899
|
disabled: this.disabled,
|
|
1905
|
-
label: this.elementRef.nativeElement.innerHTML
|
|
1900
|
+
label: this.elementRef.nativeElement.innerHTML,
|
|
1906
1901
|
});
|
|
1907
1902
|
}
|
|
1908
1903
|
}
|
|
@@ -1917,7 +1912,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
1917
1912
|
args: [{
|
|
1918
1913
|
selector: 'ng-option',
|
|
1919
1914
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1920
|
-
template: `<ng-content></ng-content
|
|
1915
|
+
template: `<ng-content></ng-content>`,
|
|
1921
1916
|
}]
|
|
1922
1917
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { value: [{
|
|
1923
1918
|
type: Input
|
|
@@ -1959,14 +1954,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
1959
1954
|
|
|
1960
1955
|
const SELECTION_MODEL_FACTORY = new InjectionToken('ng-select-selection-model');
|
|
1961
1956
|
class NgSelectComponent {
|
|
1962
|
-
get items() {
|
|
1963
|
-
|
|
1957
|
+
get items() {
|
|
1958
|
+
return this._items;
|
|
1959
|
+
}
|
|
1964
1960
|
set items(value) {
|
|
1965
1961
|
this._itemsAreUsed = true;
|
|
1966
1962
|
this._items = value ?? [];
|
|
1967
1963
|
}
|
|
1968
|
-
|
|
1969
|
-
|
|
1964
|
+
get compareWith() {
|
|
1965
|
+
return this._compareWith;
|
|
1966
|
+
}
|
|
1970
1967
|
set compareWith(fn) {
|
|
1971
1968
|
if (fn !== undefined && fn !== null && !isFunction(fn)) {
|
|
1972
1969
|
throw Error('`compareWith` must be a function.');
|
|
@@ -1982,11 +1979,9 @@ class NgSelectComponent {
|
|
|
1982
1979
|
}
|
|
1983
1980
|
return this.closeOnSelect;
|
|
1984
1981
|
}
|
|
1985
|
-
;
|
|
1986
1982
|
set clearSearchOnAdd(value) {
|
|
1987
1983
|
this._clearSearchOnAdd = value;
|
|
1988
1984
|
}
|
|
1989
|
-
;
|
|
1990
1985
|
get deselectOnClick() {
|
|
1991
1986
|
if (isDefined(this._deselectOnClick)) {
|
|
1992
1987
|
return this._deselectOnClick;
|
|
@@ -1996,17 +1991,21 @@ class NgSelectComponent {
|
|
|
1996
1991
|
}
|
|
1997
1992
|
return this.multiple;
|
|
1998
1993
|
}
|
|
1999
|
-
;
|
|
2000
1994
|
set deselectOnClick(value) {
|
|
2001
1995
|
this._deselectOnClick = value;
|
|
2002
1996
|
}
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
get
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
1997
|
+
get dropdownPanelStaticClasses() {
|
|
1998
|
+
return this.appendTo && this.classes ? `ng-dropdown-panel ${this.classes}` : 'ng-dropdown-panel';
|
|
1999
|
+
}
|
|
2000
|
+
get disabled() {
|
|
2001
|
+
return this.readonly || this._disabled;
|
|
2002
|
+
}
|
|
2003
|
+
get filtered() {
|
|
2004
|
+
return (!!this.searchTerm && this.searchable) || this._isComposing;
|
|
2005
|
+
}
|
|
2006
|
+
get single() {
|
|
2007
|
+
return !this.multiple;
|
|
2008
|
+
}
|
|
2010
2009
|
get _editableSearchTerm() {
|
|
2011
2010
|
return this.editableSearchTerm && !this.multiple;
|
|
2012
2011
|
}
|
|
@@ -2035,6 +2034,7 @@ class NgSelectComponent {
|
|
|
2035
2034
|
this.minTermLength = 0;
|
|
2036
2035
|
this.editableSearchTerm = false;
|
|
2037
2036
|
this.keyDownFn = (_) => true;
|
|
2037
|
+
this.ngClass = null;
|
|
2038
2038
|
this.multiple = false;
|
|
2039
2039
|
this.addTag = false;
|
|
2040
2040
|
this.searchable = true;
|
|
@@ -2066,7 +2066,7 @@ class NgSelectComponent {
|
|
|
2066
2066
|
this._onChange = (_) => { };
|
|
2067
2067
|
this._onTouched = () => { };
|
|
2068
2068
|
this.clearItem = (item) => {
|
|
2069
|
-
const option = this.selectedItems.find(x => x.value === item);
|
|
2069
|
+
const option = this.selectedItems.find((x) => x.value === item);
|
|
2070
2070
|
this.unselect(option);
|
|
2071
2071
|
};
|
|
2072
2072
|
this.trackByOption = (_, item) => {
|
|
@@ -2083,7 +2083,7 @@ class NgSelectComponent {
|
|
|
2083
2083
|
return this.itemsList.selectedItems;
|
|
2084
2084
|
}
|
|
2085
2085
|
get selectedValues() {
|
|
2086
|
-
return this.selectedItems.map(x => x.value);
|
|
2086
|
+
return this.selectedItems.map((x) => x.value);
|
|
2087
2087
|
}
|
|
2088
2088
|
get hasValue() {
|
|
2089
2089
|
return this.selectedItems.length > 0;
|
|
@@ -2336,9 +2336,9 @@ class NgSelectComponent {
|
|
|
2336
2336
|
else {
|
|
2337
2337
|
tag = this._primitive ? this.searchTerm : { [this.bindLabel]: this.searchTerm };
|
|
2338
2338
|
}
|
|
2339
|
-
const handleTag = (item) => this._isTypeahead || !this.isOpen ? this.itemsList.mapItem(item, null) : this.itemsList.addItem(item);
|
|
2339
|
+
const handleTag = (item) => (this._isTypeahead || !this.isOpen ? this.itemsList.mapItem(item, null) : this.itemsList.addItem(item));
|
|
2340
2340
|
if (isPromise(tag)) {
|
|
2341
|
-
tag.then(item => this.select(handleTag(item))).catch(() => { });
|
|
2341
|
+
tag.then((item) => this.select(handleTag(item))).catch(() => { });
|
|
2342
2342
|
}
|
|
2343
2343
|
else if (tag) {
|
|
2344
2344
|
this.select(handleTag(tag));
|
|
@@ -2358,16 +2358,15 @@ class NgSelectComponent {
|
|
|
2358
2358
|
return false;
|
|
2359
2359
|
}
|
|
2360
2360
|
const term = this.searchTerm.toLowerCase().trim();
|
|
2361
|
-
return this.addTag &&
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
!this.loading;
|
|
2361
|
+
return (this.addTag &&
|
|
2362
|
+
!this.itemsList.filteredItems.some((x) => x.label.toLowerCase() === term) &&
|
|
2363
|
+
((!this.hideSelected && this.isOpen) || !this.selectedItems.some((x) => x.label.toLowerCase() === term)) &&
|
|
2364
|
+
!this.loading);
|
|
2365
2365
|
}
|
|
2366
2366
|
showNoItemsFound() {
|
|
2367
2367
|
const empty = this.itemsList.filteredItems.length === 0;
|
|
2368
|
-
return ((empty && !this._isTypeahead && !this.loading) ||
|
|
2369
|
-
|
|
2370
|
-
!this.showAddTag;
|
|
2368
|
+
return (((empty && !this._isTypeahead && !this.loading) || (empty && this._isTypeahead && this._validTerm && !this.loading)) &&
|
|
2369
|
+
!this.showAddTag);
|
|
2371
2370
|
}
|
|
2372
2371
|
showTypeToSearch() {
|
|
2373
2372
|
const empty = this.itemsList.filteredItems.length === 0;
|
|
@@ -2397,7 +2396,7 @@ class NgSelectComponent {
|
|
|
2397
2396
|
this.itemsList.markSelectedOrDefault(this.markFirst);
|
|
2398
2397
|
}
|
|
2399
2398
|
}
|
|
2400
|
-
this.searchEvent.emit({ term, items: this.itemsList.filteredItems.map(x => x.value) });
|
|
2399
|
+
this.searchEvent.emit({ term, items: this.itemsList.filteredItems.map((x) => x.value) });
|
|
2401
2400
|
this.open();
|
|
2402
2401
|
}
|
|
2403
2402
|
onInputFocus($event) {
|
|
@@ -2454,10 +2453,10 @@ class NgSelectComponent {
|
|
|
2454
2453
|
}
|
|
2455
2454
|
_setItemsFromNgOptions() {
|
|
2456
2455
|
const mapNgOptions = (options) => {
|
|
2457
|
-
this.items = options.map(option => ({
|
|
2456
|
+
this.items = options.map((option) => ({
|
|
2458
2457
|
$ngOptionValue: option.value,
|
|
2459
2458
|
$ngOptionLabel: option.elementRef.nativeElement.innerHTML,
|
|
2460
|
-
disabled: option.disabled
|
|
2459
|
+
disabled: option.disabled,
|
|
2461
2460
|
}));
|
|
2462
2461
|
this.itemsList.setItems(this.items);
|
|
2463
2462
|
if (this.hasValue) {
|
|
@@ -2467,25 +2466,23 @@ class NgSelectComponent {
|
|
|
2467
2466
|
};
|
|
2468
2467
|
const handleOptionChange = () => {
|
|
2469
2468
|
const changedOrDestroyed = merge(this.ngOptions.changes, this._destroy$);
|
|
2470
|
-
merge(...this.ngOptions.map(option => option.stateChange$))
|
|
2469
|
+
merge(...this.ngOptions.map((option) => option.stateChange$))
|
|
2471
2470
|
.pipe(takeUntil(changedOrDestroyed))
|
|
2472
|
-
.subscribe(option => {
|
|
2471
|
+
.subscribe((option) => {
|
|
2473
2472
|
const item = this.itemsList.findItem(option.value);
|
|
2474
2473
|
item.disabled = option.disabled;
|
|
2475
2474
|
item.label = option.label || item.label;
|
|
2476
2475
|
this._cd.detectChanges();
|
|
2477
2476
|
});
|
|
2478
2477
|
};
|
|
2479
|
-
this.ngOptions.changes
|
|
2480
|
-
.pipe(startWith(this.ngOptions), takeUntil(this._destroy$))
|
|
2481
|
-
.subscribe(options => {
|
|
2478
|
+
this.ngOptions.changes.pipe(startWith(this.ngOptions), takeUntil(this._destroy$)).subscribe((options) => {
|
|
2482
2479
|
this.bindLabel = this._defaultLabel;
|
|
2483
2480
|
mapNgOptions(options);
|
|
2484
2481
|
handleOptionChange();
|
|
2485
2482
|
});
|
|
2486
2483
|
}
|
|
2487
2484
|
_isValidWriteValue(value) {
|
|
2488
|
-
if (!isDefined(value) || (this.multiple && value === '') || Array.isArray(value) && value.length === 0) {
|
|
2485
|
+
if (!isDefined(value) || (this.multiple && value === '') || (Array.isArray(value) && value.length === 0)) {
|
|
2489
2486
|
return false;
|
|
2490
2487
|
}
|
|
2491
2488
|
const validateBinding = (item) => {
|
|
@@ -2500,7 +2497,7 @@ class NgSelectComponent {
|
|
|
2500
2497
|
this._console.warn('Multiple select ngModel should be array.');
|
|
2501
2498
|
return false;
|
|
2502
2499
|
}
|
|
2503
|
-
return value.every(item => validateBinding(item));
|
|
2500
|
+
return value.every((item) => validateBinding(item));
|
|
2504
2501
|
}
|
|
2505
2502
|
else {
|
|
2506
2503
|
return validateBinding(value);
|
|
@@ -2518,20 +2515,20 @@ class NgSelectComponent {
|
|
|
2518
2515
|
else {
|
|
2519
2516
|
const isValObject = isObject(val);
|
|
2520
2517
|
const isPrimitive = !isValObject && !this.bindValue;
|
|
2521
|
-
if (
|
|
2518
|
+
if (isValObject || isPrimitive) {
|
|
2522
2519
|
this.itemsList.select(this.itemsList.mapItem(val, null));
|
|
2523
2520
|
}
|
|
2524
2521
|
else if (this.bindValue) {
|
|
2525
2522
|
item = {
|
|
2526
2523
|
[this.bindLabel]: null,
|
|
2527
|
-
[this.bindValue]: val
|
|
2524
|
+
[this.bindValue]: val,
|
|
2528
2525
|
};
|
|
2529
2526
|
this.itemsList.select(this.itemsList.mapItem(item, null));
|
|
2530
2527
|
}
|
|
2531
2528
|
}
|
|
2532
2529
|
};
|
|
2533
2530
|
if (this.multiple) {
|
|
2534
|
-
ngModel.forEach(item => select(item));
|
|
2531
|
+
ngModel.forEach((item) => select(item));
|
|
2535
2532
|
}
|
|
2536
2533
|
else {
|
|
2537
2534
|
select(ngModel);
|
|
@@ -2542,8 +2539,8 @@ class NgSelectComponent {
|
|
|
2542
2539
|
return;
|
|
2543
2540
|
}
|
|
2544
2541
|
this._keyPress$
|
|
2545
|
-
.pipe(takeUntil(this._destroy$), tap(letter => this._pressedKeys.push(letter)), debounceTime(200), filter(() => this._pressedKeys.length > 0), map(() => this._pressedKeys.join('')))
|
|
2546
|
-
.subscribe(term => {
|
|
2542
|
+
.pipe(takeUntil(this._destroy$), tap((letter) => this._pressedKeys.push(letter)), debounceTime(200), filter(() => this._pressedKeys.length > 0), map(() => this._pressedKeys.join('')))
|
|
2543
|
+
.subscribe((term) => {
|
|
2547
2544
|
const item = this.itemsList.findByLabel(term);
|
|
2548
2545
|
if (item) {
|
|
2549
2546
|
if (this.isOpen) {
|
|
@@ -2565,7 +2562,7 @@ class NgSelectComponent {
|
|
|
2565
2562
|
autocorrect: 'off',
|
|
2566
2563
|
autocapitalize: 'off',
|
|
2567
2564
|
autocomplete: this.labelForId ? 'off' : this.dropdownId,
|
|
2568
|
-
...this.inputAttrs
|
|
2565
|
+
...this.inputAttrs,
|
|
2569
2566
|
};
|
|
2570
2567
|
for (const key of Object.keys(attributes)) {
|
|
2571
2568
|
input.setAttribute(key, attributes[key]);
|
|
@@ -2589,7 +2586,7 @@ class NgSelectComponent {
|
|
|
2589
2586
|
model.push(item.value);
|
|
2590
2587
|
}
|
|
2591
2588
|
}
|
|
2592
|
-
const selected = this.selectedItems.map(x => x.value);
|
|
2589
|
+
const selected = this.selectedItems.map((x) => x.value);
|
|
2593
2590
|
if (this.multiple) {
|
|
2594
2591
|
this._onChange(model);
|
|
2595
2592
|
this.changeEvent.emit(selected);
|
|
@@ -2711,9 +2708,7 @@ class NgSelectComponent {
|
|
|
2711
2708
|
}
|
|
2712
2709
|
_nextItemIsTag(nextStep) {
|
|
2713
2710
|
const nextIndex = this.itemsList.markedIndex + nextStep;
|
|
2714
|
-
return this.addTag && this.searchTerm
|
|
2715
|
-
&& this.itemsList.markedItem
|
|
2716
|
-
&& (nextIndex < 0 || nextIndex === this.itemsList.filteredItems.length);
|
|
2711
|
+
return (this.addTag && this.searchTerm && this.itemsList.markedItem && (nextIndex < 0 || nextIndex === this.itemsList.filteredItems.length));
|
|
2717
2712
|
}
|
|
2718
2713
|
_handleBackspace() {
|
|
2719
2714
|
if (this.searchTerm || !this.clearable || !this.clearOnBackspace || !this.hasValue) {
|
|
@@ -2742,7 +2737,9 @@ class NgSelectComponent {
|
|
|
2742
2737
|
this.clearAllText = this.clearAllText || config.clearAllText;
|
|
2743
2738
|
this.virtualScroll = isDefined(this.virtualScroll)
|
|
2744
2739
|
? this.virtualScroll
|
|
2745
|
-
: isDefined(config.disableVirtualScroll)
|
|
2740
|
+
: isDefined(config.disableVirtualScroll)
|
|
2741
|
+
? !config.disableVirtualScroll
|
|
2742
|
+
: false;
|
|
2746
2743
|
this.openOnEnter = isDefined(this.openOnEnter) ? this.openOnEnter : config.openOnEnter;
|
|
2747
2744
|
this.appendTo = this.appendTo || config.appendTo;
|
|
2748
2745
|
this.bindValue = this.bindValue || config.bindValue;
|
|
@@ -2750,19 +2747,25 @@ class NgSelectComponent {
|
|
|
2750
2747
|
this.appearance = this.appearance || config.appearance;
|
|
2751
2748
|
}
|
|
2752
2749
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", 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 }); }
|
|
2753
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: NgSelectComponent, selector: "ng-select", inputs: { bindLabel: "bindLabel", bindValue: "bindValue", markFirst: ["markFirst", "markFirst", booleanAttribute], placeholder: "placeholder", notFoundText: "notFoundText", typeToSearchText: "typeToSearchText", addTagText: "addTagText", loadingText: "loadingText", clearAllText: "clearAllText", appearance: "appearance", dropdownPosition: "dropdownPosition", appendTo: "appendTo", loading: ["loading", "loading", booleanAttribute], closeOnSelect: ["closeOnSelect", "closeOnSelect", booleanAttribute], hideSelected: ["hideSelected", "hideSelected", booleanAttribute], selectOnTab: ["selectOnTab", "selectOnTab", booleanAttribute], openOnEnter: ["openOnEnter", "openOnEnter", booleanAttribute], maxSelectedItems: ["maxSelectedItems", "maxSelectedItems", numberAttribute], groupBy: "groupBy", groupValue: "groupValue", bufferAmount: ["bufferAmount", "bufferAmount", numberAttribute], virtualScroll: ["virtualScroll", "virtualScroll", booleanAttribute], selectableGroup: ["selectableGroup", "selectableGroup", booleanAttribute], selectableGroupAsModel: ["selectableGroupAsModel", "selectableGroupAsModel", booleanAttribute], searchFn: "searchFn", trackByFn: "trackByFn", clearOnBackspace: ["clearOnBackspace", "clearOnBackspace", booleanAttribute], labelForId: "labelForId", inputAttrs: "inputAttrs", tabIndex: ["tabIndex", "tabIndex", numberAttribute], readonly: ["readonly", "readonly", booleanAttribute], searchWhileComposing: ["searchWhileComposing", "searchWhileComposing", booleanAttribute], minTermLength: ["minTermLength", "minTermLength", numberAttribute], editableSearchTerm: ["editableSearchTerm", "editableSearchTerm", booleanAttribute], keyDownFn: "keyDownFn", typeahead: "typeahead", multiple: ["multiple", "multiple", booleanAttribute], addTag: "addTag", searchable: ["searchable", "searchable", booleanAttribute], clearable: ["clearable", "clearable", booleanAttribute], isOpen: "isOpen", items: "items", compareWith: "compareWith", clearSearchOnAdd: "clearSearchOnAdd", deselectOnClick: "deselectOnClick" }, 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: [
|
|
2750
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: NgSelectComponent, selector: "ng-select", inputs: { bindLabel: "bindLabel", bindValue: "bindValue", markFirst: ["markFirst", "markFirst", booleanAttribute], placeholder: "placeholder", notFoundText: "notFoundText", typeToSearchText: "typeToSearchText", addTagText: "addTagText", loadingText: "loadingText", clearAllText: "clearAllText", appearance: "appearance", dropdownPosition: "dropdownPosition", appendTo: "appendTo", loading: ["loading", "loading", booleanAttribute], closeOnSelect: ["closeOnSelect", "closeOnSelect", booleanAttribute], hideSelected: ["hideSelected", "hideSelected", booleanAttribute], selectOnTab: ["selectOnTab", "selectOnTab", booleanAttribute], openOnEnter: ["openOnEnter", "openOnEnter", booleanAttribute], maxSelectedItems: ["maxSelectedItems", "maxSelectedItems", numberAttribute], groupBy: "groupBy", groupValue: "groupValue", bufferAmount: ["bufferAmount", "bufferAmount", numberAttribute], virtualScroll: ["virtualScroll", "virtualScroll", booleanAttribute], selectableGroup: ["selectableGroup", "selectableGroup", booleanAttribute], selectableGroupAsModel: ["selectableGroupAsModel", "selectableGroupAsModel", booleanAttribute], searchFn: "searchFn", trackByFn: "trackByFn", clearOnBackspace: ["clearOnBackspace", "clearOnBackspace", booleanAttribute], labelForId: "labelForId", inputAttrs: "inputAttrs", tabIndex: ["tabIndex", "tabIndex", numberAttribute], readonly: ["readonly", "readonly", booleanAttribute], searchWhileComposing: ["searchWhileComposing", "searchWhileComposing", booleanAttribute], minTermLength: ["minTermLength", "minTermLength", numberAttribute], editableSearchTerm: ["editableSearchTerm", "editableSearchTerm", booleanAttribute], keyDownFn: "keyDownFn", ngClass: "ngClass", typeahead: "typeahead", multiple: ["multiple", "multiple", booleanAttribute], addTag: "addTag", searchable: ["searchable", "searchable", booleanAttribute], clearable: ["clearable", "clearable", booleanAttribute], isOpen: "isOpen", items: "items", compareWith: "compareWith", clearSearchOnAdd: "clearSearchOnAdd", deselectOnClick: "deselectOnClick" }, 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: [
|
|
2751
|
+
{
|
|
2754
2752
|
provide: NG_VALUE_ACCESSOR,
|
|
2755
2753
|
useExisting: forwardRef(() => NgSelectComponent),
|
|
2756
|
-
multi: true
|
|
2757
|
-
}, 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(() => NgDropdownPanelComponent), descendants: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, static: true }, { propertyName: "clearButton", first: true, predicate: ["clearButton"], descendants: 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 @if ((!multiLabelTemplate || !multiple) && selectedItems.length > 0) {\n @for (item of selectedItems; track trackByOption($index, item)) {\n <div [class.ng-value-disabled]=\"item.disabled\" class=\"ng-value\">\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 <ng-template\n [ngTemplateOutlet]=\"labelTemplate || defaultLabelTemplate\"\n [ngTemplateOutletContext]=\"{ item: item.value, clear: clearItem, label: item.label }\">\n </ng-template>\n </div>\n }\n }\n\n @if (multiple && multiLabelTemplate && selectedValues.length > 0) {\n <ng-template\n [ngTemplateOutlet]=\"multiLabelTemplate\"\n [ngTemplateOutletContext]=\"{ items: selectedValues, clear: clearItem }\">\n </ng-template>\n }\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 @if (loading) {\n <ng-template #defaultLoadingSpinnerTemplate>\n <div class=\"ng-spinner-loader\"></div>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"loadingSpinnerTemplate || defaultLoadingSpinnerTemplate\">\n </ng-template>\n }\n\n @if (showClear()) {\n <span class=\"ng-clear-wrapper\" tabindex=\"0\" title=\"{{clearAllText}}\" #clearButton>\n <span class=\"ng-clear\" aria-hidden=\"true\">\u00D7</span>\n </span>\n }\n\n <span class=\"ng-arrow-wrapper\">\n <span class=\"ng-arrow\"></span>\n </span>\n</div>\n\n@if (isOpen) {\n <ng-dropdown-panel\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 <ng-container>\n @for (item of viewPortItems; track trackByOption($index, item)) {\n <div class=\"ng-option\" [attr.role]=\"item.children ? 'group' : 'option'\" (click)=\"toggleItem(item)\"\n (mouseover)=\"onItemHover(item)\"\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 <ng-template #defaultOptionTemplate>\n <span class=\"ng-option-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n </ng-template>\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 @if (showAddTag) {\n <div class=\"ng-option\" [class.ng-option-marked]=\"!itemsList.markedItem\"\n (mouseover)=\"itemsList.unmarkItem()\" role=\"option\" (click)=\"selectTag()\">\n <ng-template #defaultTagTemplate>\n <span><span class=\"ng-tag-label\">{{ addTagText }}</span>\"{{ searchTerm }}\"</span>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"tagTemplate || defaultTagTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </div>\n }\n </ng-container>\n @if (showNoItemsFound()) {\n <ng-template #defaultNotFoundTemplate>\n <div class=\"ng-option ng-option-disabled\">{{ notFoundText }}</div>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"notFoundTemplate || defaultNotFoundTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n }\n @if (showTypeToSearch()) {\n <ng-template #defaultTypeToSearchTemplate>\n <div class=\"ng-option ng-option-disabled\">{{ typeToSearchText }}</div>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"typeToSearchTemplate || defaultTypeToSearchTemplate\">\n </ng-template>\n }\n @if (loading && itemsList.filteredItems.length === 0) {\n <ng-template #defaultLoadingTextTemplate>\n <div class=\"ng-option ng-option-disabled\">{{ loadingText }}</div>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"loadingTextTemplate || defaultLoadingTextTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n }\n </ng-dropdown-panel>\n}\n", styles: ["@charset \"UTF-8\";.ng-select{position:relative;display:block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);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;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NgDropdownPanelComponent, selector: "ng-dropdown-panel", inputs: ["items", "markedItem", "position", "appendTo", "bufferAmount", "virtualScroll", "headerTemplate", "footerTemplate", "filterValue"], outputs: ["update", "scroll", "scrollToEnd", "outsideClick"] }, { kind: "directive", type: NgItemLabelDirective, selector: "[ngItemLabel]", inputs: ["ngItemLabel", "escape"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2754
|
+
multi: true,
|
|
2755
|
+
},
|
|
2756
|
+
NgDropdownPanelService,
|
|
2757
|
+
], 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(() => NgDropdownPanelComponent), descendants: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, static: true }, { propertyName: "clearButton", first: true, predicate: ["clearButton"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n\t(mousedown)=\"handleMousedown($event)\"\n\t[class.ng-appearance-outline]=\"appearance === 'outline'\"\n\t[class.ng-has-value]=\"hasValue\"\n\tclass=\"ng-select-container\">\n\t<div class=\"ng-value-container\">\n\t\t<div class=\"ng-placeholder\">{{ placeholder }}</div>\n\n\t\t@if ((!multiLabelTemplate || !multiple) && selectedItems.length > 0) {\n\t\t\t@for (item of selectedItems; track trackByOption($index, item)) {\n\t\t\t\t<div [class.ng-value-disabled]=\"item.disabled\" class=\"ng-value\">\n\t\t\t\t\t<ng-template #defaultLabelTemplate>\n\t\t\t\t\t\t<span class=\"ng-value-icon left\" (click)=\"unselect(item)\" aria-hidden=\"true\">\u00D7</span>\n\t\t\t\t\t\t<span class=\"ng-value-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate || defaultLabelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: item.value, clear: clearItem, label: item.label }\">\n\t\t\t\t\t</ng-template>\n\t\t\t\t</div>\n\t\t\t}\n\t\t}\n\n\t\t@if (multiple && multiLabelTemplate && selectedValues.length > 0) {\n\t\t\t<ng-template [ngTemplateOutlet]=\"multiLabelTemplate\" [ngTemplateOutletContext]=\"{ items: selectedValues, clear: clearItem }\">\n\t\t\t</ng-template>\n\t\t}\n\n\t\t<div\n\t\t\tclass=\"ng-input\"\n\t\t\trole=\"combobox\"\n\t\t\t[attr.aria-expanded]=\"isOpen\"\n\t\t\t[attr.aria-owns]=\"isOpen ? dropdownId : null\"\n\t\t\taria-haspopup=\"listbox\">\n\t\t\t<input\n\t\t\t\t#searchInput\n\t\t\t\t[attr.id]=\"labelForId\"\n\t\t\t\t[attr.tabindex]=\"tabIndex\"\n\t\t\t\t[readOnly]=\"!searchable || itemsList.maxItemsSelected\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[value]=\"searchTerm ? searchTerm : ''\"\n\t\t\t\t(input)=\"filter(searchInput.value)\"\n\t\t\t\t(compositionstart)=\"onCompositionStart()\"\n\t\t\t\t(compositionend)=\"onCompositionEnd(searchInput.value)\"\n\t\t\t\t(focus)=\"onInputFocus($event)\"\n\t\t\t\t(blur)=\"onInputBlur($event)\"\n\t\t\t\t(change)=\"$event.stopPropagation()\"\n\t\t\t\t[attr.aria-activedescendant]=\"isOpen ? itemsList?.markedItem?.htmlId : null\"\n\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\t[attr.aria-controls]=\"isOpen ? dropdownId : null\" />\n\t\t</div>\n\t</div>\n\n\t@if (loading) {\n\t\t<ng-template #defaultLoadingSpinnerTemplate>\n\t\t\t<div class=\"ng-spinner-loader\"></div>\n\t\t</ng-template>\n\t\t<ng-template [ngTemplateOutlet]=\"loadingSpinnerTemplate || defaultLoadingSpinnerTemplate\"> </ng-template>\n\t}\n\n\t@if (showClear()) {\n\t\t<span class=\"ng-clear-wrapper\" tabindex=\"0\" title=\"{{ clearAllText }}\" #clearButton>\n\t\t\t<span class=\"ng-clear\" aria-hidden=\"true\">\u00D7</span>\n\t\t</span>\n\t}\n\n\t<span class=\"ng-arrow-wrapper\">\n\t\t<span class=\"ng-arrow\"></span>\n\t</span>\n</div>\n\n@if (isOpen) {\n\t<ng-dropdown-panel\n\t\t[class]=\"dropdownPanelStaticClasses\"\n\t\t[virtualScroll]=\"virtualScroll\"\n\t\t[bufferAmount]=\"bufferAmount\"\n\t\t[appendTo]=\"appendTo\"\n\t\t[position]=\"dropdownPosition\"\n\t\t[headerTemplate]=\"headerTemplate\"\n\t\t[footerTemplate]=\"footerTemplate\"\n\t\t[filterValue]=\"searchTerm\"\n\t\t[items]=\"itemsList.filteredItems\"\n\t\t[markedItem]=\"itemsList.markedItem\"\n\t\t(update)=\"viewPortItems = $event\"\n\t\t(scroll)=\"scroll.emit($event)\"\n\t\t(scrollToEnd)=\"scrollToEnd.emit($event)\"\n\t\t(outsideClick)=\"close()\"\n\t\t[class.ng-select-multiple]=\"multiple\"\n\t\t[ngClass]=\"appendTo ? ngClass : null\"\n\t\t[id]=\"dropdownId\"\n\t\trole=\"listbox\"\n\t\taria-label=\"Options list\">\n\t\t<ng-container>\n\t\t\t@for (item of viewPortItems; track trackByOption($index, item)) {\n\t\t\t\t<div\n\t\t\t\t\tclass=\"ng-option\"\n\t\t\t\t\t[attr.role]=\"item.children ? 'group' : 'option'\"\n\t\t\t\t\t(click)=\"toggleItem(item)\"\n\t\t\t\t\t(mouseover)=\"onItemHover(item)\"\n\t\t\t\t\t[class.ng-option-disabled]=\"item.disabled\"\n\t\t\t\t\t[class.ng-option-selected]=\"item.selected\"\n\t\t\t\t\t[class.ng-optgroup]=\"item.children\"\n\t\t\t\t\t[class.ng-option]=\"!item.children\"\n\t\t\t\t\t[class.ng-option-child]=\"!!item.parent\"\n\t\t\t\t\t[class.ng-option-marked]=\"item === itemsList.markedItem\"\n\t\t\t\t\t[attr.aria-selected]=\"item.selected\"\n\t\t\t\t\t[attr.id]=\"item?.htmlId\">\n\t\t\t\t\t<ng-template #defaultOptionTemplate>\n\t\t\t\t\t\t<span class=\"ng-option-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"\n\t\t\t\t\t\t\titem.children ? optgroupTemplate || defaultOptionTemplate : optionTemplate || defaultOptionTemplate\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: item.value, item$: item, index: item.index, searchTerm: searchTerm }\">\n\t\t\t\t\t</ng-template>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@if (showAddTag) {\n\t\t\t\t<div\n\t\t\t\t\tclass=\"ng-option\"\n\t\t\t\t\t[class.ng-option-marked]=\"!itemsList.markedItem\"\n\t\t\t\t\t(mouseover)=\"itemsList.unmarkItem()\"\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\t(click)=\"selectTag()\">\n\t\t\t\t\t<ng-template #defaultTagTemplate>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t><span class=\"ng-tag-label\">{{ addTagText }}</span\n\t\t\t\t\t\t\t>\"{{ searchTerm }}\"</span\n\t\t\t\t\t\t>\n\t\t\t\t\t</ng-template>\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"tagTemplate || defaultTagTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n\t\t\t\t\t</ng-template>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ng-container>\n\t\t@if (showNoItemsFound()) {\n\t\t\t<ng-template #defaultNotFoundTemplate>\n\t\t\t\t<div class=\"ng-option ng-option-disabled\">{{ notFoundText }}</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"notFoundTemplate || defaultNotFoundTemplate\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n\t\t\t</ng-template>\n\t\t}\n\t\t@if (showTypeToSearch()) {\n\t\t\t<ng-template #defaultTypeToSearchTemplate>\n\t\t\t\t<div class=\"ng-option ng-option-disabled\">{{ typeToSearchText }}</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template [ngTemplateOutlet]=\"typeToSearchTemplate || defaultTypeToSearchTemplate\"> </ng-template>\n\t\t}\n\t\t@if (loading && itemsList.filteredItems.length === 0) {\n\t\t\t<ng-template #defaultLoadingTextTemplate>\n\t\t\t\t<div class=\"ng-option ng-option-disabled\">{{ loadingText }}</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"loadingTextTemplate || defaultLoadingTextTemplate\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n\t\t\t</ng-template>\n\t\t}\n\t</ng-dropdown-panel>\n}\n", styles: ["@charset \"UTF-8\";.ng-select{position:relative;display:block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);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;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NgDropdownPanelComponent, selector: "ng-dropdown-panel", inputs: ["items", "markedItem", "position", "appendTo", "bufferAmount", "virtualScroll", "headerTemplate", "footerTemplate", "filterValue"], outputs: ["update", "scroll", "scrollToEnd", "outsideClick"] }, { kind: "directive", type: NgItemLabelDirective, selector: "[ngItemLabel]", inputs: ["ngItemLabel", "escape"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2758
2758
|
}
|
|
2759
2759
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgSelectComponent, decorators: [{
|
|
2760
2760
|
type: Component,
|
|
2761
|
-
args: [{ selector: 'ng-select', providers: [
|
|
2761
|
+
args: [{ selector: 'ng-select', providers: [
|
|
2762
|
+
{
|
|
2762
2763
|
provide: NG_VALUE_ACCESSOR,
|
|
2763
2764
|
useExisting: forwardRef(() => NgSelectComponent),
|
|
2764
|
-
multi: true
|
|
2765
|
-
}, 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 @if ((!multiLabelTemplate || !multiple) && selectedItems.length > 0) {\n @for (item of selectedItems; track trackByOption($index, item)) {\n <div [class.ng-value-disabled]=\"item.disabled\" class=\"ng-value\">\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 <ng-template\n [ngTemplateOutlet]=\"labelTemplate || defaultLabelTemplate\"\n [ngTemplateOutletContext]=\"{ item: item.value, clear: clearItem, label: item.label }\">\n </ng-template>\n </div>\n }\n }\n\n @if (multiple && multiLabelTemplate && selectedValues.length > 0) {\n <ng-template\n [ngTemplateOutlet]=\"multiLabelTemplate\"\n [ngTemplateOutletContext]=\"{ items: selectedValues, clear: clearItem }\">\n </ng-template>\n }\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 @if (loading) {\n <ng-template #defaultLoadingSpinnerTemplate>\n <div class=\"ng-spinner-loader\"></div>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"loadingSpinnerTemplate || defaultLoadingSpinnerTemplate\">\n </ng-template>\n }\n\n @if (showClear()) {\n <span class=\"ng-clear-wrapper\" tabindex=\"0\" title=\"{{clearAllText}}\" #clearButton>\n <span class=\"ng-clear\" aria-hidden=\"true\">\u00D7</span>\n </span>\n }\n\n <span class=\"ng-arrow-wrapper\">\n <span class=\"ng-arrow\"></span>\n </span>\n</div>\n\n@if (isOpen) {\n <ng-dropdown-panel\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 <ng-container>\n @for (item of viewPortItems; track trackByOption($index, item)) {\n <div class=\"ng-option\" [attr.role]=\"item.children ? 'group' : 'option'\" (click)=\"toggleItem(item)\"\n (mouseover)=\"onItemHover(item)\"\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 <ng-template #defaultOptionTemplate>\n <span class=\"ng-option-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n </ng-template>\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 @if (showAddTag) {\n <div class=\"ng-option\" [class.ng-option-marked]=\"!itemsList.markedItem\"\n (mouseover)=\"itemsList.unmarkItem()\" role=\"option\" (click)=\"selectTag()\">\n <ng-template #defaultTagTemplate>\n <span><span class=\"ng-tag-label\">{{ addTagText }}</span>\"{{ searchTerm }}\"</span>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"tagTemplate || defaultTagTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </div>\n }\n </ng-container>\n @if (showNoItemsFound()) {\n <ng-template #defaultNotFoundTemplate>\n <div class=\"ng-option ng-option-disabled\">{{ notFoundText }}</div>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"notFoundTemplate || defaultNotFoundTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n }\n @if (showTypeToSearch()) {\n <ng-template #defaultTypeToSearchTemplate>\n <div class=\"ng-option ng-option-disabled\">{{ typeToSearchText }}</div>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"typeToSearchTemplate || defaultTypeToSearchTemplate\">\n </ng-template>\n }\n @if (loading && itemsList.filteredItems.length === 0) {\n <ng-template #defaultLoadingTextTemplate>\n <div class=\"ng-option ng-option-disabled\">{{ loadingText }}</div>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"loadingTextTemplate || defaultLoadingTextTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n }\n </ng-dropdown-panel>\n}\n", styles: ["@charset \"UTF-8\";.ng-select{position:relative;display:block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);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;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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"] }]
|
|
2765
|
+
multi: true,
|
|
2766
|
+
},
|
|
2767
|
+
NgDropdownPanelService,
|
|
2768
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n\t(mousedown)=\"handleMousedown($event)\"\n\t[class.ng-appearance-outline]=\"appearance === 'outline'\"\n\t[class.ng-has-value]=\"hasValue\"\n\tclass=\"ng-select-container\">\n\t<div class=\"ng-value-container\">\n\t\t<div class=\"ng-placeholder\">{{ placeholder }}</div>\n\n\t\t@if ((!multiLabelTemplate || !multiple) && selectedItems.length > 0) {\n\t\t\t@for (item of selectedItems; track trackByOption($index, item)) {\n\t\t\t\t<div [class.ng-value-disabled]=\"item.disabled\" class=\"ng-value\">\n\t\t\t\t\t<ng-template #defaultLabelTemplate>\n\t\t\t\t\t\t<span class=\"ng-value-icon left\" (click)=\"unselect(item)\" aria-hidden=\"true\">\u00D7</span>\n\t\t\t\t\t\t<span class=\"ng-value-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate || defaultLabelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: item.value, clear: clearItem, label: item.label }\">\n\t\t\t\t\t</ng-template>\n\t\t\t\t</div>\n\t\t\t}\n\t\t}\n\n\t\t@if (multiple && multiLabelTemplate && selectedValues.length > 0) {\n\t\t\t<ng-template [ngTemplateOutlet]=\"multiLabelTemplate\" [ngTemplateOutletContext]=\"{ items: selectedValues, clear: clearItem }\">\n\t\t\t</ng-template>\n\t\t}\n\n\t\t<div\n\t\t\tclass=\"ng-input\"\n\t\t\trole=\"combobox\"\n\t\t\t[attr.aria-expanded]=\"isOpen\"\n\t\t\t[attr.aria-owns]=\"isOpen ? dropdownId : null\"\n\t\t\taria-haspopup=\"listbox\">\n\t\t\t<input\n\t\t\t\t#searchInput\n\t\t\t\t[attr.id]=\"labelForId\"\n\t\t\t\t[attr.tabindex]=\"tabIndex\"\n\t\t\t\t[readOnly]=\"!searchable || itemsList.maxItemsSelected\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[value]=\"searchTerm ? searchTerm : ''\"\n\t\t\t\t(input)=\"filter(searchInput.value)\"\n\t\t\t\t(compositionstart)=\"onCompositionStart()\"\n\t\t\t\t(compositionend)=\"onCompositionEnd(searchInput.value)\"\n\t\t\t\t(focus)=\"onInputFocus($event)\"\n\t\t\t\t(blur)=\"onInputBlur($event)\"\n\t\t\t\t(change)=\"$event.stopPropagation()\"\n\t\t\t\t[attr.aria-activedescendant]=\"isOpen ? itemsList?.markedItem?.htmlId : null\"\n\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\t[attr.aria-controls]=\"isOpen ? dropdownId : null\" />\n\t\t</div>\n\t</div>\n\n\t@if (loading) {\n\t\t<ng-template #defaultLoadingSpinnerTemplate>\n\t\t\t<div class=\"ng-spinner-loader\"></div>\n\t\t</ng-template>\n\t\t<ng-template [ngTemplateOutlet]=\"loadingSpinnerTemplate || defaultLoadingSpinnerTemplate\"> </ng-template>\n\t}\n\n\t@if (showClear()) {\n\t\t<span class=\"ng-clear-wrapper\" tabindex=\"0\" title=\"{{ clearAllText }}\" #clearButton>\n\t\t\t<span class=\"ng-clear\" aria-hidden=\"true\">\u00D7</span>\n\t\t</span>\n\t}\n\n\t<span class=\"ng-arrow-wrapper\">\n\t\t<span class=\"ng-arrow\"></span>\n\t</span>\n</div>\n\n@if (isOpen) {\n\t<ng-dropdown-panel\n\t\t[class]=\"dropdownPanelStaticClasses\"\n\t\t[virtualScroll]=\"virtualScroll\"\n\t\t[bufferAmount]=\"bufferAmount\"\n\t\t[appendTo]=\"appendTo\"\n\t\t[position]=\"dropdownPosition\"\n\t\t[headerTemplate]=\"headerTemplate\"\n\t\t[footerTemplate]=\"footerTemplate\"\n\t\t[filterValue]=\"searchTerm\"\n\t\t[items]=\"itemsList.filteredItems\"\n\t\t[markedItem]=\"itemsList.markedItem\"\n\t\t(update)=\"viewPortItems = $event\"\n\t\t(scroll)=\"scroll.emit($event)\"\n\t\t(scrollToEnd)=\"scrollToEnd.emit($event)\"\n\t\t(outsideClick)=\"close()\"\n\t\t[class.ng-select-multiple]=\"multiple\"\n\t\t[ngClass]=\"appendTo ? ngClass : null\"\n\t\t[id]=\"dropdownId\"\n\t\trole=\"listbox\"\n\t\taria-label=\"Options list\">\n\t\t<ng-container>\n\t\t\t@for (item of viewPortItems; track trackByOption($index, item)) {\n\t\t\t\t<div\n\t\t\t\t\tclass=\"ng-option\"\n\t\t\t\t\t[attr.role]=\"item.children ? 'group' : 'option'\"\n\t\t\t\t\t(click)=\"toggleItem(item)\"\n\t\t\t\t\t(mouseover)=\"onItemHover(item)\"\n\t\t\t\t\t[class.ng-option-disabled]=\"item.disabled\"\n\t\t\t\t\t[class.ng-option-selected]=\"item.selected\"\n\t\t\t\t\t[class.ng-optgroup]=\"item.children\"\n\t\t\t\t\t[class.ng-option]=\"!item.children\"\n\t\t\t\t\t[class.ng-option-child]=\"!!item.parent\"\n\t\t\t\t\t[class.ng-option-marked]=\"item === itemsList.markedItem\"\n\t\t\t\t\t[attr.aria-selected]=\"item.selected\"\n\t\t\t\t\t[attr.id]=\"item?.htmlId\">\n\t\t\t\t\t<ng-template #defaultOptionTemplate>\n\t\t\t\t\t\t<span class=\"ng-option-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"\n\t\t\t\t\t\t\titem.children ? optgroupTemplate || defaultOptionTemplate : optionTemplate || defaultOptionTemplate\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: item.value, item$: item, index: item.index, searchTerm: searchTerm }\">\n\t\t\t\t\t</ng-template>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@if (showAddTag) {\n\t\t\t\t<div\n\t\t\t\t\tclass=\"ng-option\"\n\t\t\t\t\t[class.ng-option-marked]=\"!itemsList.markedItem\"\n\t\t\t\t\t(mouseover)=\"itemsList.unmarkItem()\"\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\t(click)=\"selectTag()\">\n\t\t\t\t\t<ng-template #defaultTagTemplate>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t><span class=\"ng-tag-label\">{{ addTagText }}</span\n\t\t\t\t\t\t\t>\"{{ searchTerm }}\"</span\n\t\t\t\t\t\t>\n\t\t\t\t\t</ng-template>\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"tagTemplate || defaultTagTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n\t\t\t\t\t</ng-template>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ng-container>\n\t\t@if (showNoItemsFound()) {\n\t\t\t<ng-template #defaultNotFoundTemplate>\n\t\t\t\t<div class=\"ng-option ng-option-disabled\">{{ notFoundText }}</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"notFoundTemplate || defaultNotFoundTemplate\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n\t\t\t</ng-template>\n\t\t}\n\t\t@if (showTypeToSearch()) {\n\t\t\t<ng-template #defaultTypeToSearchTemplate>\n\t\t\t\t<div class=\"ng-option ng-option-disabled\">{{ typeToSearchText }}</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template [ngTemplateOutlet]=\"typeToSearchTemplate || defaultTypeToSearchTemplate\"> </ng-template>\n\t\t}\n\t\t@if (loading && itemsList.filteredItems.length === 0) {\n\t\t\t<ng-template #defaultLoadingTextTemplate>\n\t\t\t\t<div class=\"ng-option ng-option-disabled\">{{ loadingText }}</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"loadingTextTemplate || defaultLoadingTextTemplate\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n\t\t\t</ng-template>\n\t\t}\n\t</ng-dropdown-panel>\n}\n", styles: ["@charset \"UTF-8\";.ng-select{position:relative;display:block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);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;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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"] }]
|
|
2766
2769
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
2767
2770
|
type: Attribute,
|
|
2768
2771
|
args: ['class']
|
|
@@ -2859,6 +2862,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
2859
2862
|
args: [{ transform: booleanAttribute }]
|
|
2860
2863
|
}], keyDownFn: [{
|
|
2861
2864
|
type: Input
|
|
2865
|
+
}], ngClass: [{
|
|
2866
|
+
type: Input
|
|
2862
2867
|
}], typeahead: [{
|
|
2863
2868
|
type: Input
|
|
2864
2869
|
}, {
|
|
@@ -3013,30 +3018,30 @@ class DefaultSelectionModel {
|
|
|
3013
3018
|
if (multiple) {
|
|
3014
3019
|
if (item.parent) {
|
|
3015
3020
|
const childrenCount = item.parent.children.length;
|
|
3016
|
-
const selectedCount = item.parent.children.filter(x => x.selected).length;
|
|
3021
|
+
const selectedCount = item.parent.children.filter((x) => x.selected).length;
|
|
3017
3022
|
item.parent.selected = childrenCount === selectedCount;
|
|
3018
3023
|
}
|
|
3019
3024
|
else if (item.children) {
|
|
3020
3025
|
this._setChildrenSelectedState(item.children, true);
|
|
3021
3026
|
this._removeChildren(item);
|
|
3022
3027
|
if (groupAsModel && this._activeChildren(item)) {
|
|
3023
|
-
this._selected = [...this._selected.filter(x => x.parent !== item), item];
|
|
3028
|
+
this._selected = [...this._selected.filter((x) => x.parent !== item), item];
|
|
3024
3029
|
}
|
|
3025
3030
|
else {
|
|
3026
|
-
this._selected = [...this._selected, ...item.children.filter(x => !x.disabled)];
|
|
3031
|
+
this._selected = [...this._selected, ...item.children.filter((x) => !x.disabled)];
|
|
3027
3032
|
}
|
|
3028
3033
|
}
|
|
3029
3034
|
}
|
|
3030
3035
|
}
|
|
3031
3036
|
unselect(item, multiple) {
|
|
3032
|
-
this._selected = this._selected.filter(x => x !== item);
|
|
3037
|
+
this._selected = this._selected.filter((x) => x !== item);
|
|
3033
3038
|
item.selected = false;
|
|
3034
3039
|
if (multiple) {
|
|
3035
3040
|
if (item.parent && item.parent.selected) {
|
|
3036
3041
|
const children = item.parent.children;
|
|
3037
3042
|
this._removeParent(item.parent);
|
|
3038
3043
|
this._removeChildren(item.parent);
|
|
3039
|
-
this._selected.push(...children.filter(x => x !== item && !x.disabled));
|
|
3044
|
+
this._selected.push(...children.filter((x) => x !== item && !x.disabled));
|
|
3040
3045
|
item.parent.selected = false;
|
|
3041
3046
|
}
|
|
3042
3047
|
else if (item.children) {
|
|
@@ -3046,7 +3051,7 @@ class DefaultSelectionModel {
|
|
|
3046
3051
|
}
|
|
3047
3052
|
}
|
|
3048
3053
|
clear(keepDisabled) {
|
|
3049
|
-
this._selected = keepDisabled ? this._selected.filter(x => x.disabled) : [];
|
|
3054
|
+
this._selected = keepDisabled ? this._selected.filter((x) => x.disabled) : [];
|
|
3050
3055
|
}
|
|
3051
3056
|
_setChildrenSelectedState(children, selected) {
|
|
3052
3057
|
for (const child of children) {
|
|
@@ -3058,15 +3063,15 @@ class DefaultSelectionModel {
|
|
|
3058
3063
|
}
|
|
3059
3064
|
_removeChildren(parent) {
|
|
3060
3065
|
this._selected = [
|
|
3061
|
-
...this._selected.filter(x => x.parent !== parent),
|
|
3062
|
-
...parent.children.filter(x => x.parent === parent && x.disabled && x.selected)
|
|
3066
|
+
...this._selected.filter((x) => x.parent !== parent),
|
|
3067
|
+
...parent.children.filter((x) => x.parent === parent && x.disabled && x.selected),
|
|
3063
3068
|
];
|
|
3064
3069
|
}
|
|
3065
3070
|
_removeParent(parent) {
|
|
3066
|
-
this._selected = this._selected.filter(x => x !== parent);
|
|
3071
|
+
this._selected = this._selected.filter((x) => x !== parent);
|
|
3067
3072
|
}
|
|
3068
3073
|
_activeChildren(item) {
|
|
3069
|
-
return item.children.every(x => !x.disabled || x.selected);
|
|
3074
|
+
return item.children.every((x) => !x.disabled || x.selected);
|
|
3070
3075
|
}
|
|
3071
3076
|
}
|
|
3072
3077
|
|
|
@@ -3099,9 +3104,7 @@ class NgSelectModule {
|
|
|
3099
3104
|
NgLoadingTextTemplateDirective,
|
|
3100
3105
|
NgTagTemplateDirective,
|
|
3101
3106
|
NgLoadingSpinnerTemplateDirective] }); }
|
|
3102
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgSelectModule, providers: [
|
|
3103
|
-
{ provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory }
|
|
3104
|
-
], imports: [CommonModule] }); }
|
|
3107
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgSelectModule, providers: [{ provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory }], imports: [CommonModule] }); }
|
|
3105
3108
|
}
|
|
3106
3109
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgSelectModule, decorators: [{
|
|
3107
3110
|
type: NgModule,
|
|
@@ -3121,11 +3124,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
3121
3124
|
NgLoadingTextTemplateDirective,
|
|
3122
3125
|
NgTagTemplateDirective,
|
|
3123
3126
|
NgLoadingSpinnerTemplateDirective,
|
|
3124
|
-
NgItemLabelDirective
|
|
3125
|
-
],
|
|
3126
|
-
imports: [
|
|
3127
|
-
CommonModule
|
|
3127
|
+
NgItemLabelDirective,
|
|
3128
3128
|
],
|
|
3129
|
+
imports: [CommonModule],
|
|
3129
3130
|
exports: [
|
|
3130
3131
|
NgSelectComponent,
|
|
3131
3132
|
NgOptionComponent,
|
|
@@ -3139,11 +3140,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
3139
3140
|
NgTypeToSearchTemplateDirective,
|
|
3140
3141
|
NgLoadingTextTemplateDirective,
|
|
3141
3142
|
NgTagTemplateDirective,
|
|
3142
|
-
NgLoadingSpinnerTemplateDirective
|
|
3143
|
+
NgLoadingSpinnerTemplateDirective,
|
|
3143
3144
|
],
|
|
3144
|
-
providers: [
|
|
3145
|
-
{ provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory }
|
|
3146
|
-
]
|
|
3145
|
+
providers: [{ provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory }],
|
|
3147
3146
|
}]
|
|
3148
3147
|
}] });
|
|
3149
3148
|
|