igniteui-angular 12.3.39 → 12.3.41
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/bundles/igniteui-angular.umd.js +59 -22
- package/bundles/igniteui-angular.umd.js.map +1 -1
- package/esm2015/lib/combo/combo-dropdown.component.js +2 -2
- package/esm2015/lib/combo/combo.api.js +4 -1
- package/esm2015/lib/combo/combo.common.js +23 -2
- package/esm2015/lib/combo/combo.component.js +6 -3
- package/esm2015/lib/combo/combo.pipes.js +4 -3
- package/esm2015/lib/grids/toolbar/grid-toolbar.base.js +3 -6
- package/esm2015/lib/simple-combo/simple-combo.component.js +20 -12
- package/fesm2015/igniteui-angular.js +55 -22
- package/fesm2015/igniteui-angular.js.map +1 -1
- package/igniteui-angular.metadata.json +1 -1
- package/lib/combo/combo.common.d.ts +3 -0
- package/lib/simple-combo/simple-combo.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -39241,6 +39241,9 @@
|
|
|
39241
39241
|
};
|
|
39242
39242
|
IgxComboAPIService.prototype.set_selected_item = function (itemID, event) {
|
|
39243
39243
|
var selected = this.combo.isItemSelected(itemID);
|
|
39244
|
+
if (itemID === undefined) {
|
|
39245
|
+
return;
|
|
39246
|
+
}
|
|
39244
39247
|
if (!selected) {
|
|
39245
39248
|
this.combo.select([itemID], false, event);
|
|
39246
39249
|
}
|
|
@@ -39853,7 +39856,13 @@
|
|
|
39853
39856
|
return this._data;
|
|
39854
39857
|
},
|
|
39855
39858
|
set: function (val) {
|
|
39856
|
-
|
|
39859
|
+
// igxFor directive ignores undefined values
|
|
39860
|
+
// if the combo uses simple data and filtering is applied
|
|
39861
|
+
// an error will occur due to the mismatch of the length of the data
|
|
39862
|
+
// this can occur during filtering for the igx-combo and
|
|
39863
|
+
// during filtering & selection for the igx-simple-combo
|
|
39864
|
+
// since the simple combo's input is both a container for the selection and a filter
|
|
39865
|
+
this._data = (val) ? val.filter(function (x) { return x !== undefined; }) : [];
|
|
39857
39866
|
},
|
|
39858
39867
|
enumerable: false,
|
|
39859
39868
|
configurable: true
|
|
@@ -40163,6 +40172,13 @@
|
|
|
40163
40172
|
});
|
|
40164
40173
|
};
|
|
40165
40174
|
/** @hidden @internal */
|
|
40175
|
+
IgxComboBaseDirective.prototype.ngDoCheck = function () {
|
|
40176
|
+
var _a;
|
|
40177
|
+
if (((_a = this.data) === null || _a === void 0 ? void 0 : _a.length) && this.selection.length) {
|
|
40178
|
+
this._value = this.createDisplayText(this.selection, []);
|
|
40179
|
+
}
|
|
40180
|
+
};
|
|
40181
|
+
/** @hidden @internal */
|
|
40166
40182
|
IgxComboBaseDirective.prototype.ngOnDestroy = function () {
|
|
40167
40183
|
this.destroy$.next();
|
|
40168
40184
|
this.destroy$.complete();
|
|
@@ -40456,6 +40472,18 @@
|
|
|
40456
40472
|
this.registerRemoteEntries(removedItems, false);
|
|
40457
40473
|
return Object.keys(this._remoteSelection).map(function (e) { return _this._remoteSelection[e]; }).join(', ');
|
|
40458
40474
|
};
|
|
40475
|
+
Object.defineProperty(IgxComboBaseDirective.prototype, "required", {
|
|
40476
|
+
get: function () {
|
|
40477
|
+
if (this.ngControl && this.ngControl.control && this.ngControl.control.validator) {
|
|
40478
|
+
// Run the validation with empty object to check if required is enabled.
|
|
40479
|
+
var error = this.ngControl.control.validator({});
|
|
40480
|
+
return error && error.required;
|
|
40481
|
+
}
|
|
40482
|
+
return false;
|
|
40483
|
+
},
|
|
40484
|
+
enumerable: false,
|
|
40485
|
+
configurable: true
|
|
40486
|
+
});
|
|
40459
40487
|
return IgxComboBaseDirective;
|
|
40460
40488
|
}(DisplayDensityBase));
|
|
40461
40489
|
IgxComboBaseDirective.decorators = [
|
|
@@ -40672,7 +40700,7 @@
|
|
|
40672
40700
|
* @hidden
|
|
40673
40701
|
*/
|
|
40674
40702
|
IgxComboDropDownComponent.prototype.navigateFirst = function () {
|
|
40675
|
-
this.navigateItem(this.virtDir.igxForOf.findIndex(function (e) { return !e.isHeader; }));
|
|
40703
|
+
this.navigateItem(this.virtDir.igxForOf.findIndex(function (e) { return !(e === null || e === void 0 ? void 0 : e.isHeader); }));
|
|
40676
40704
|
};
|
|
40677
40705
|
/**
|
|
40678
40706
|
* @hidden
|
|
@@ -40811,8 +40839,8 @@
|
|
|
40811
40839
|
});
|
|
40812
40840
|
}
|
|
40813
40841
|
else {
|
|
40814
|
-
return collection.filter(function (e) { return filteringOptions.caseSensitive ? e.includes(searchTerm_1) :
|
|
40815
|
-
e.toString().toLowerCase().includes(searchTerm_1); });
|
|
40842
|
+
return collection.filter(function (e) { return filteringOptions.caseSensitive ? e === null || e === void 0 ? void 0 : e.includes(searchTerm_1) :
|
|
40843
|
+
e === null || e === void 0 ? void 0 : e.toString().toLowerCase().includes(searchTerm_1); });
|
|
40816
40844
|
}
|
|
40817
40845
|
}
|
|
40818
40846
|
};
|
|
@@ -40828,6 +40856,7 @@
|
|
|
40828
40856
|
}
|
|
40829
40857
|
IgxComboGroupingPipe.prototype.transform = function (collection, groupKey, valueKey) {
|
|
40830
40858
|
var _c;
|
|
40859
|
+
// TODO: should filteredData be changed here?
|
|
40831
40860
|
this.combo.filteredData = collection;
|
|
40832
40861
|
if ((!groupKey && groupKey !== 0) || !collection.length) {
|
|
40833
40862
|
return collection;
|
|
@@ -41017,7 +41046,7 @@
|
|
|
41017
41046
|
* @hidden @internal
|
|
41018
41047
|
*/
|
|
41019
41048
|
IgxComboComponent.prototype.writeValue = function (value) {
|
|
41020
|
-
var selection = Array.isArray(value) ? value : [];
|
|
41049
|
+
var selection = Array.isArray(value) ? value.filter(function (x) { return x !== undefined; }) : [];
|
|
41021
41050
|
var oldSelection = this.selection;
|
|
41022
41051
|
this.selectionService.select_items(this.id, selection, true);
|
|
41023
41052
|
this.cdr.markForCheck();
|
|
@@ -41135,6 +41164,9 @@
|
|
|
41135
41164
|
*/
|
|
41136
41165
|
IgxComboComponent.prototype.setSelectedItem = function (itemID, select, event) {
|
|
41137
41166
|
if (select === void 0) { select = true; }
|
|
41167
|
+
if (itemID === undefined) {
|
|
41168
|
+
return;
|
|
41169
|
+
}
|
|
41138
41170
|
if (select) {
|
|
41139
41171
|
this.select([itemID], false, event);
|
|
41140
41172
|
}
|
|
@@ -41220,7 +41252,7 @@
|
|
|
41220
41252
|
IgxComboComponent.decorators = [
|
|
41221
41253
|
{ type: i0.Component, args: [{
|
|
41222
41254
|
selector: 'igx-combo',
|
|
41223
|
-
template: "<igx-input-group #inputGroup [displayDensity]=\"displayDensity\" [type]=\"type\" (click)=\"onClick($event)\">\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-hint, [igxHint]\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </ng-container>\n <input igxInput #comboInput name=\"comboInput\" type=\"text\" [value]=\"value\" readonly [attr.placeholder]=\"placeholder\"\n [disabled]=\"disabled\" (blur)=\"onBlur()\" />\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix\"></ng-content>\n </ng-container>\n <igx-suffix *ngIf=\"value.length\" aria-label=\"Clear Selection\" class=\"igx-combo__clear-button\"\n (click)=\"handleClearItems($event)\">\n <ng-container *ngIf=\"clearIconTemplate\">\n <ng-container *ngTemplateOutlet=\"clearIconTemplate\"></ng-container>\n </ng-container>\n <igx-icon *ngIf=\"!clearIconTemplate\">\n clear\n </igx-icon>\n </igx-suffix>\n <igx-suffix class=\"igx-combo__toggle-button\">\n <ng-container *ngIf=\"toggleIconTemplate\">\n <ng-container *ngTemplateOutlet=\"toggleIconTemplate; context: {$implicit: this.collapsed}\"></ng-container>\n </ng-container>\n <igx-icon *ngIf=\"!toggleIconTemplate\">\n {{ dropdown.collapsed ? 'arrow_drop_down' : 'arrow_drop_up'}}\n </igx-icon>\n </igx-suffix>\n</igx-input-group>\n<igx-combo-drop-down #igxComboDropDown class=\"igx-combo__drop-down\" [displayDensity]=\"displayDensity\"\n [width]=\"itemsWidth || '100%'\" (opening)=\"handleOpening($event)\" (closing)=\"handleClosing($event)\"\n (opened)=\"handleOpened()\" (closed)=\"handleClosed()\">\n <igx-input-group *ngIf=\"displaySearchInput\" [displayDensity]=\"displayDensity\" theme=\"material\" class=\"igx-combo__search\">\n <input class=\"igx-combo-input\" igxInput #searchInput name=\"searchInput\" autocomplete=\"off\" type=\"text\"\n [(ngModel)]=\"searchValue\" (ngModelChange)=\"handleInputChange($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (focus)=\"dropdown.onBlur($event)\" [attr.placeholder]=\"searchPlaceholder\"\n aria-autocomplete=\"both\" [attr.aria-owns]=\"dropdown.id\" [attr.aria-labelledby]=\"ariaLabelledBy\" />\n <igx-suffix *ngIf=\"showSearchCaseIcon\">\n <igx-icon family=\"imx-icons\" name=\"case-sensitive\" [active]=\"filteringOptions.caseSensitive\"\n (click)=\"toggleCaseSensitive()\">\n </igx-icon>\n </igx-suffix>\n </igx-input-group>\n <ng-container *ngTemplateOutlet=\"headerTemplate\">\n </ng-container>\n <div #dropdownItemContainer class=\"igx-combo__content\" [style.overflow]=\"'hidden'\"\n [style.maxHeight.px]=\"itemsMaxHeight\" [igxDropDownItemNavigation]=\"dropdown\" (focus)=\"dropdown.onFocus()\"\n [tabindex]=\"dropdown.collapsed ? -1 : 0\" role=\"listbox\" [attr.id]=\"dropdown.id\">\n <igx-combo-item role=\"option\" [itemHeight]='itemHeight' *igxFor=\"let item of data\n | comboFiltering:filterValue:displayKey:filteringOptions:filterable\n | comboGrouping:groupKey:valueKey\n index as rowIndex; containerSize: itemsMaxHeight; scrollOrientation: 'vertical'; itemSize: itemHeight\"\n [value]=\"item\" [isHeader]=\"item
|
|
41255
|
+
template: "<igx-input-group #inputGroup [displayDensity]=\"displayDensity\" [type]=\"type\" (click)=\"onClick($event)\">\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-hint, [igxHint]\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </ng-container>\n <input igxInput #comboInput name=\"comboInput\" type=\"text\" [value]=\"value\" readonly [attr.placeholder]=\"placeholder\"\n [disabled]=\"disabled\" (blur)=\"onBlur()\" />\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix\"></ng-content>\n </ng-container>\n <igx-suffix *ngIf=\"value.length\" aria-label=\"Clear Selection\" class=\"igx-combo__clear-button\"\n (click)=\"handleClearItems($event)\">\n <ng-container *ngIf=\"clearIconTemplate\">\n <ng-container *ngTemplateOutlet=\"clearIconTemplate\"></ng-container>\n </ng-container>\n <igx-icon *ngIf=\"!clearIconTemplate\">\n clear\n </igx-icon>\n </igx-suffix>\n <igx-suffix class=\"igx-combo__toggle-button\">\n <ng-container *ngIf=\"toggleIconTemplate\">\n <ng-container *ngTemplateOutlet=\"toggleIconTemplate; context: {$implicit: this.collapsed}\"></ng-container>\n </ng-container>\n <igx-icon *ngIf=\"!toggleIconTemplate\">\n {{ dropdown.collapsed ? 'arrow_drop_down' : 'arrow_drop_up'}}\n </igx-icon>\n </igx-suffix>\n</igx-input-group>\n<igx-combo-drop-down #igxComboDropDown class=\"igx-combo__drop-down\" [displayDensity]=\"displayDensity\"\n [width]=\"itemsWidth || '100%'\" (opening)=\"handleOpening($event)\" (closing)=\"handleClosing($event)\"\n (opened)=\"handleOpened()\" (closed)=\"handleClosed()\">\n <igx-input-group *ngIf=\"displaySearchInput\" [displayDensity]=\"displayDensity\" theme=\"material\" class=\"igx-combo__search\">\n <input class=\"igx-combo-input\" igxInput #searchInput name=\"searchInput\" autocomplete=\"off\" type=\"text\"\n [(ngModel)]=\"searchValue\" (ngModelChange)=\"handleInputChange($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (focus)=\"dropdown.onBlur($event)\" [attr.placeholder]=\"searchPlaceholder\"\n aria-autocomplete=\"both\" [attr.aria-owns]=\"dropdown.id\" [attr.aria-labelledby]=\"ariaLabelledBy\" />\n <igx-suffix *ngIf=\"showSearchCaseIcon\">\n <igx-icon family=\"imx-icons\" name=\"case-sensitive\" [active]=\"filteringOptions.caseSensitive\"\n (click)=\"toggleCaseSensitive()\">\n </igx-icon>\n </igx-suffix>\n </igx-input-group>\n <ng-container *ngTemplateOutlet=\"headerTemplate\">\n </ng-container>\n <div #dropdownItemContainer class=\"igx-combo__content\" [style.overflow]=\"'hidden'\"\n [style.maxHeight.px]=\"itemsMaxHeight\" [igxDropDownItemNavigation]=\"dropdown\" (focus)=\"dropdown.onFocus()\"\n [tabindex]=\"dropdown.collapsed ? -1 : 0\" role=\"listbox\" [attr.id]=\"dropdown.id\">\n <igx-combo-item role=\"option\" [itemHeight]='itemHeight' *igxFor=\"let item of data\n | comboFiltering:filterValue:displayKey:filteringOptions:filterable\n | comboGrouping:groupKey:valueKey\n index as rowIndex; containerSize: itemsMaxHeight; scrollOrientation: 'vertical'; itemSize: itemHeight\"\n [value]=\"item\" [isHeader]=\"item?.isHeader\" [index]=\"rowIndex\">\n <ng-container *ngIf=\"item?.isHeader\">\n <ng-container\n *ngTemplateOutlet=\"headerItemTemplate ? headerItemTemplate : headerItemBase;\n context: {$implicit: item, data: data, valueKey: valueKey, groupKey: groupKey, displayKey: displayKey}\">\n </ng-container>\n </ng-container>\n <!-- if item is 'null' it should be displayed and !!(item?.isHeader) would resolve it to 'false' and not display it -->\n <ng-container *ngIf=\"!item?.isHeader\">\n <ng-container #listItem\n *ngTemplateOutlet=\"template; context: {$implicit: item, data: data, valueKey: valueKey, displayKey: displayKey};\">\n </ng-container>\n </ng-container>\n </igx-combo-item>\n </div>\n <div class=\"igx-combo__add\" *ngIf=\"filteredData.length === 0 || isAddButtonVisible()\">\n <div class=\"igx-combo__empty\" *ngIf=\"filteredData.length === 0\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate ? emptyTemplate : empty\">\n </ng-container>\n </div>\n <igx-combo-add-item [itemHeight]=\"itemHeight\" *ngIf=\"isAddButtonVisible()\"\n [tabindex]=\"dropdown.collapsed ? -1 : customValueFlag ? 1 : -1\" class=\"igx-combo__add-item\" role=\"button\"\n aria-label=\"Add Item\" [index]=\"virtualScrollContainer.igxForOf.length\">\n <ng-container *ngTemplateOutlet=\"addItemTemplate ? addItemTemplate : addItemDefault\">\n </ng-container>\n </igx-combo-add-item>\n </div>\n <ng-container *ngTemplateOutlet=\"footerTemplate\">\n </ng-container>\n</igx-combo-drop-down>\n<ng-template #complex let-display let-data=\"data\" let-key=\"displayKey\">\n {{display[key]}}\n</ng-template>\n<ng-template #primitive let-display>\n {{display}}\n</ng-template>\n<ng-template #empty>\n <span>{{resourceStrings.igx_combo_empty_message}}</span>\n</ng-template>\n<ng-template #addItemDefault let-control>\n <button igxButton=\"flat\" igxRipple>Add item</button>\n</ng-template>\n<ng-template #headerItemBase let-item let-key=\"valueKey\" let-groupKey=\"groupKey\">\n {{ item[key] }}\n</ng-template>\n",
|
|
41224
41256
|
providers: [
|
|
41225
41257
|
IgxComboAPIService,
|
|
41226
41258
|
{ provide: IGX_COMBO_COMPONENT, useExisting: IgxComboComponent },
|
|
@@ -41396,7 +41428,7 @@
|
|
|
41396
41428
|
* ```
|
|
41397
41429
|
*/
|
|
41398
41430
|
IgxSimpleComboComponent.prototype.select = function (item) {
|
|
41399
|
-
if (item !==
|
|
41431
|
+
if (item !== undefined) {
|
|
41400
41432
|
var newSelection = this.selectionService.add_items(this.id, item instanceof Array ? item : [item], true);
|
|
41401
41433
|
this.setSelection(newSelection);
|
|
41402
41434
|
}
|
|
@@ -41414,10 +41446,12 @@
|
|
|
41414
41446
|
};
|
|
41415
41447
|
/** @hidden @internal */
|
|
41416
41448
|
IgxSimpleComboComponent.prototype.writeValue = function (value) {
|
|
41449
|
+
var _a;
|
|
41417
41450
|
var oldSelection = this.selection;
|
|
41418
|
-
this.selectionService.select_items(this.id, value ? [value] : [], true);
|
|
41451
|
+
this.selectionService.select_items(this.id, this.isValid(value) ? [value] : [], true);
|
|
41419
41452
|
this.cdr.markForCheck();
|
|
41420
41453
|
this._value = this.createDisplayText(this.selection, oldSelection);
|
|
41454
|
+
this.filterValue = this._internalFilter = (_a = this._value) === null || _a === void 0 ? void 0 : _a.toString();
|
|
41421
41455
|
};
|
|
41422
41456
|
/** @hidden @internal */
|
|
41423
41457
|
IgxSimpleComboComponent.prototype.ngAfterViewInit = function () {
|
|
@@ -41425,7 +41459,7 @@
|
|
|
41425
41459
|
this.virtDir.contentSizeChange.pipe(operators.takeUntil(this.destroy$)).subscribe(function () {
|
|
41426
41460
|
if (_this.selection.length > 0) {
|
|
41427
41461
|
var index = _this.virtDir.igxForOf.findIndex(function (e) {
|
|
41428
|
-
var current = e[_this.valueKey];
|
|
41462
|
+
var current = e ? e[_this.valueKey] : undefined;
|
|
41429
41463
|
if (_this.valueKey === null || _this.valueKey === undefined) {
|
|
41430
41464
|
current = e;
|
|
41431
41465
|
}
|
|
@@ -41465,6 +41499,12 @@
|
|
|
41465
41499
|
this.dropdown.closed.pipe(operators.takeUntil(this.destroy$)).subscribe(function () {
|
|
41466
41500
|
_this.filterValue = _this._internalFilter = _this.comboInput.value;
|
|
41467
41501
|
});
|
|
41502
|
+
// in reactive form the control is not present initially
|
|
41503
|
+
// and sets the selection to an invalid value in writeValue method
|
|
41504
|
+
if (!this.isValid(this.selectedItem)) {
|
|
41505
|
+
this.selectionService.clear(this.id);
|
|
41506
|
+
this._value = '';
|
|
41507
|
+
}
|
|
41468
41508
|
_super.prototype.ngAfterViewInit.call(this);
|
|
41469
41509
|
};
|
|
41470
41510
|
/** @hidden @internal */
|
|
@@ -41615,17 +41655,12 @@
|
|
|
41615
41655
|
owner: this,
|
|
41616
41656
|
cancel: false
|
|
41617
41657
|
};
|
|
41618
|
-
|
|
41619
|
-
// as the event should emit when args.newSelection differs from args.oldSelection
|
|
41620
|
-
// however in this case both args.newSelection and args.oldSelection are 'undefined'
|
|
41621
|
-
if (args.newSelection !== args.oldSelection
|
|
41622
|
-
|| args.newSelection === undefined && (newSelection === null || newSelection === void 0 ? void 0 : newSelection.size) > 0
|
|
41623
|
-
|| args.oldSelection === undefined && oldSelectionAsArray.length > 0) {
|
|
41658
|
+
if (args.newSelection !== args.oldSelection) {
|
|
41624
41659
|
this.selectionChanging.emit(args);
|
|
41625
41660
|
}
|
|
41626
41661
|
// TODO: refactor below code as it sets the selection and the display text
|
|
41627
41662
|
if (!args.cancel) {
|
|
41628
|
-
var argsSelection = (newSelection
|
|
41663
|
+
var argsSelection = this.isValid(args.newSelection)
|
|
41629
41664
|
? args.newSelection
|
|
41630
41665
|
: [];
|
|
41631
41666
|
argsSelection = Array.isArray(argsSelection) ? argsSelection : [argsSelection];
|
|
@@ -41684,12 +41719,17 @@
|
|
|
41684
41719
|
this.close();
|
|
41685
41720
|
}
|
|
41686
41721
|
};
|
|
41722
|
+
IgxSimpleComboComponent.prototype.isValid = function (value) {
|
|
41723
|
+
return this.required
|
|
41724
|
+
? value !== null && value !== '' && value !== undefined
|
|
41725
|
+
: value !== undefined;
|
|
41726
|
+
};
|
|
41687
41727
|
return IgxSimpleComboComponent;
|
|
41688
41728
|
}(IgxComboBaseDirective));
|
|
41689
41729
|
IgxSimpleComboComponent.decorators = [
|
|
41690
41730
|
{ type: i0.Component, args: [{
|
|
41691
41731
|
selector: 'igx-simple-combo',
|
|
41692
|
-
template: "<igx-input-group #inputGroup [displayDensity]=\"displayDensity\" [suppressInputAutofocus]=\"true\" [type]=\"type\">\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-hint, [igxHint]\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </ng-container>\n\n <input #comboInput igxInput [value]=\"value\" (focus)=\"onFocus()\" (input)=\"handleInputChange($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (blur)=\"onBlur()\" [attr.placeholder]=\"placeholder\" aria-autocomplete=\"both\"\n [attr.aria-owns]=\"dropdown.id\" [attr.aria-labelledby]=\"ariaLabelledBy\" [disabled]=\"disabled\"\n [igxTextSelection]=\"!composing\" />\n\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix\"></ng-content>\n </ng-container>\n <igx-suffix *ngIf=\"comboInput.value.length\" aria-label=\"Clear Selection\" class=\"igx-combo__clear-button\"\n (click)=\"handleClear($event)\">\n <ng-container *ngIf=\"clearIconTemplate\">\n <ng-container *ngTemplateOutlet=\"clearIconTemplate\"></ng-container>\n </ng-container>\n <igx-icon *ngIf=\"!clearIconTemplate\">\n clear\n </igx-icon>\n </igx-suffix>\n <igx-suffix *ngIf=\"showSearchCaseIcon\">\n <igx-icon family=\"imx-icons\" name=\"case-sensitive\" [active]=\"filteringOptions.caseSensitive\"\n (click)=\"toggleCaseSensitive()\">\n </igx-icon>\n </igx-suffix>\n <igx-suffix class=\"igx-combo__toggle-button\">\n <ng-container *ngIf=\"toggleIconTemplate\">\n <ng-container *ngTemplateOutlet=\"toggleIconTemplate; context: {$implicit: collapsed}\"></ng-container>\n </ng-container>\n <igx-icon (click)=\"onClick($event)\" *ngIf=\"!toggleIconTemplate\">\n {{ dropdown.collapsed ? 'arrow_drop_down' : 'arrow_drop_up'}}\n </igx-icon>\n </igx-suffix>\n</igx-input-group>\n\n<igx-combo-drop-down #igxComboDropDown class=\"igx-combo__drop-down\" [displayDensity]=\"displayDensity\"\n [width]=\"itemsWidth || '100%'\" (opening)=\"handleOpening($event)\" (closing)=\"handleClosing($event)\"\n (opened)=\"handleOpened()\" (closed)=\"handleClosed()\" [singleMode]=\"true\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\">\n </ng-container>\n <div #dropdownItemContainer class=\"igx-combo__content\" [style.overflow]=\"'hidden'\"\n [style.maxHeight.px]=\"itemsMaxHeight\" [igxDropDownItemNavigation]=\"dropdown\" (focus)=\"dropdown.onFocus()\"\n [tabindex]=\"dropdown.collapsed ? -1 : 0\" role=\"listbox\" [attr.id]=\"dropdown.id\"\n (keydown)=\"handleItemKeyDown($event)\">\n <igx-combo-item role=\"option\" [singleMode]=\"true\" [itemHeight]='itemHeight' (click)=\"handleItemClick()\" *igxFor=\"let item of data\n | comboFiltering:filterValue:displayKey:filteringOptions:true\n | comboGrouping:groupKey:valueKey\n index as rowIndex; containerSize: itemsMaxHeight; scrollOrientation: 'vertical'; itemSize: itemHeight\"\n [value]=\"item\" [isHeader]=\"item
|
|
41732
|
+
template: "<igx-input-group #inputGroup [displayDensity]=\"displayDensity\" [suppressInputAutofocus]=\"true\" [type]=\"type\">\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-hint, [igxHint]\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </ng-container>\n\n <input #comboInput igxInput [value]=\"value\" (focus)=\"onFocus()\" (input)=\"handleInputChange($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (blur)=\"onBlur()\" [attr.placeholder]=\"placeholder\" aria-autocomplete=\"both\"\n [attr.aria-owns]=\"dropdown.id\" [attr.aria-labelledby]=\"ariaLabelledBy\" [disabled]=\"disabled\"\n [igxTextSelection]=\"!composing\" />\n\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix\"></ng-content>\n </ng-container>\n <igx-suffix *ngIf=\"comboInput.value.length\" aria-label=\"Clear Selection\" class=\"igx-combo__clear-button\"\n (click)=\"handleClear($event)\">\n <ng-container *ngIf=\"clearIconTemplate\">\n <ng-container *ngTemplateOutlet=\"clearIconTemplate\"></ng-container>\n </ng-container>\n <igx-icon *ngIf=\"!clearIconTemplate\">\n clear\n </igx-icon>\n </igx-suffix>\n <igx-suffix *ngIf=\"showSearchCaseIcon\">\n <igx-icon family=\"imx-icons\" name=\"case-sensitive\" [active]=\"filteringOptions.caseSensitive\"\n (click)=\"toggleCaseSensitive()\">\n </igx-icon>\n </igx-suffix>\n <igx-suffix class=\"igx-combo__toggle-button\">\n <ng-container *ngIf=\"toggleIconTemplate\">\n <ng-container *ngTemplateOutlet=\"toggleIconTemplate; context: {$implicit: collapsed}\"></ng-container>\n </ng-container>\n <igx-icon (click)=\"onClick($event)\" *ngIf=\"!toggleIconTemplate\">\n {{ dropdown.collapsed ? 'arrow_drop_down' : 'arrow_drop_up'}}\n </igx-icon>\n </igx-suffix>\n</igx-input-group>\n\n<igx-combo-drop-down #igxComboDropDown class=\"igx-combo__drop-down\" [displayDensity]=\"displayDensity\"\n [width]=\"itemsWidth || '100%'\" (opening)=\"handleOpening($event)\" (closing)=\"handleClosing($event)\"\n (opened)=\"handleOpened()\" (closed)=\"handleClosed()\" [singleMode]=\"true\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\">\n </ng-container>\n <div #dropdownItemContainer class=\"igx-combo__content\" [style.overflow]=\"'hidden'\"\n [style.maxHeight.px]=\"itemsMaxHeight\" [igxDropDownItemNavigation]=\"dropdown\" (focus)=\"dropdown.onFocus()\"\n [tabindex]=\"dropdown.collapsed ? -1 : 0\" role=\"listbox\" [attr.id]=\"dropdown.id\"\n (keydown)=\"handleItemKeyDown($event)\">\n <igx-combo-item role=\"option\" [singleMode]=\"true\" [itemHeight]='itemHeight' (click)=\"handleItemClick()\" *igxFor=\"let item of data\n | comboFiltering:filterValue:displayKey:filteringOptions:true\n | comboGrouping:groupKey:valueKey\n index as rowIndex; containerSize: itemsMaxHeight; scrollOrientation: 'vertical'; itemSize: itemHeight\"\n [value]=\"item\" [isHeader]=\"item?.isHeader\" [index]=\"rowIndex\">\n <ng-container *ngIf=\"item?.isHeader\">\n <ng-container\n *ngTemplateOutlet=\"headerItemTemplate ? headerItemTemplate : headerItemBase;\n context: {$implicit: item, data: data, valueKey: valueKey, groupKey: groupKey, displayKey: displayKey}\">\n </ng-container>\n </ng-container>\n <!-- if item is 'null' it should be displayed and !!(item?.isHeader) would resolve it to 'false' and not display it -->\n <ng-container *ngIf=\"!item?.isHeader\">\n <ng-container #listItem\n *ngTemplateOutlet=\"template; context: {$implicit: item, data: data, valueKey: valueKey, displayKey: displayKey};\">\n </ng-container>\n </ng-container>\n </igx-combo-item>\n </div>\n\n <div class=\"igx-combo__add\" *ngIf=\"filteredData.length === 0 || isAddButtonVisible()\">\n <div class=\"igx-combo__empty\" *ngIf=\"filteredData.length === 0\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate ? emptyTemplate : empty\">\n </ng-container>\n </div>\n <igx-combo-add-item #addItem [itemHeight]=\"itemHeight\" *ngIf=\"isAddButtonVisible()\"\n [tabindex]=\"dropdown.collapsed ? -1 : customValueFlag ? 1 : -1\" class=\"igx-combo__add-item\" role=\"button\"\n aria-label=\"Add Item\" [index]=\"virtualScrollContainer.igxForOf.length\">\n <ng-container *ngTemplateOutlet=\"addItemTemplate ? addItemTemplate : addItemDefault\">\n </ng-container>\n </igx-combo-add-item>\n </div>\n <ng-container *ngTemplateOutlet=\"footerTemplate\">\n </ng-container>\n</igx-combo-drop-down>\n\n<ng-template #complex let-display let-data=\"data\" let-key=\"displayKey\">\n {{display[key]}}\n</ng-template>\n<ng-template #primitive let-display>\n {{display}}\n</ng-template>\n<ng-template #empty>\n <span>{{resourceStrings.igx_combo_empty_message}}</span>\n</ng-template>\n<ng-template #addItemDefault let-control>\n <button igxButton=\"flat\" igxRipple>Add item</button>\n</ng-template>\n<ng-template #headerItemBase let-item let-key=\"valueKey\" let-groupKey=\"groupKey\">\n {{ item[key] }}\n</ng-template>\n",
|
|
41693
41733
|
providers: [
|
|
41694
41734
|
IgxComboAPIService,
|
|
41695
41735
|
{ provide: IGX_COMBO_COMPONENT, useExisting: IgxSimpleComboComponent },
|
|
@@ -71663,7 +71703,7 @@
|
|
|
71663
71703
|
BaseToolbarDirective.prototype.toggle = function (anchorElement, toggleRef, actions) {
|
|
71664
71704
|
var _this = this;
|
|
71665
71705
|
if (actions) {
|
|
71666
|
-
this._setupListeners(toggleRef);
|
|
71706
|
+
this._setupListeners(toggleRef, actions);
|
|
71667
71707
|
var setHeight = function () {
|
|
71668
71708
|
var _a;
|
|
71669
71709
|
return actions.columnsAreaMaxHeight = actions.columnsAreaMaxHeight !== '100%'
|
|
@@ -71684,10 +71724,7 @@
|
|
|
71684
71724
|
var _this = this;
|
|
71685
71725
|
if (actions) {
|
|
71686
71726
|
if (!this.$sub || this.$sub.closed) {
|
|
71687
|
-
this.$sub = actions.columnToggled.subscribe(function (event) { return _this.columnToggle.emit(event); });
|
|
71688
|
-
}
|
|
71689
|
-
else {
|
|
71690
|
-
this.$sub.unsubscribe();
|
|
71727
|
+
this.$sub = actions.columnToggled.pipe(operators.takeUntil(this.$destroyer)).subscribe(function (event) { return _this.columnToggle.emit(event); });
|
|
71691
71728
|
}
|
|
71692
71729
|
}
|
|
71693
71730
|
/** The if statement prevents emitting open and close events twice */
|