igniteui-angular 13.0.0-alpha.6 → 13.0.0-alpha.7
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/README.md +31 -30
- package/esm2020/lib/action-strip/grid-actions/grid-editing-actions.component.mjs +2 -2
- package/esm2020/lib/banner/banner.component.mjs +1 -1
- package/esm2020/lib/combo/combo-dropdown.component.mjs +12 -6
- package/esm2020/lib/combo/combo-item.component.mjs +5 -3
- package/esm2020/lib/combo/combo.api.mjs +3 -3
- package/esm2020/lib/combo/combo.common.mjs +1100 -2
- package/esm2020/lib/combo/combo.component.mjs +107 -1231
- package/esm2020/lib/combo/combo.directives.mjs +9 -25
- package/esm2020/lib/combo/combo.pipes.mjs +4 -6
- package/esm2020/lib/combo/public_api.mjs +5 -1
- package/esm2020/lib/core/utils.mjs +11 -1
- package/esm2020/lib/dialog/dialog.component.mjs +22 -10
- package/esm2020/lib/directives/focus-trap/focus-trap.directive.mjs +112 -0
- package/esm2020/lib/directives/for-of/for_of.directive.mjs +2 -2
- package/esm2020/lib/directives/radio/radio-group.directive.mjs +5 -13
- package/esm2020/lib/drop-down/drop-down-item.base.mjs +1 -5
- package/esm2020/lib/grids/column-actions/column-actions.component.mjs +4 -4
- package/esm2020/lib/grids/columns/column-layout.component.mjs +3 -3
- package/esm2020/lib/grids/columns/column.component.mjs +5 -5
- package/esm2020/lib/grids/common/crud.service.mjs +2 -2
- package/esm2020/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.mjs +2 -2
- package/esm2020/lib/grids/filtering/grid-filtering.service.mjs +9 -9
- package/esm2020/lib/grids/grid/grid.component.mjs +4 -8
- package/esm2020/lib/grids/grid-base.directive.mjs +82 -69
- package/esm2020/lib/grids/grid-public-row.mjs +3 -12
- package/esm2020/lib/grids/grouping/group-by-area.directive.mjs +2 -2
- package/esm2020/lib/grids/headers/grid-header-row.component.mjs +3 -3
- package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +4 -8
- package/esm2020/lib/grids/state.directive.mjs +2 -2
- package/esm2020/lib/grids/tree-grid/tree-grid.component.mjs +4 -8
- package/esm2020/lib/services/overlay/utilities.mjs +1 -1
- package/esm2020/lib/simple-combo/public_api.mjs +2 -0
- package/esm2020/lib/simple-combo/simple-combo.component.mjs +375 -0
- package/esm2020/lib/toast/toast.component.mjs +3 -6
- package/esm2020/public_api.mjs +3 -1
- package/fesm2015/igniteui-angular.mjs +1723 -1405
- package/fesm2015/igniteui-angular.mjs.map +1 -1
- package/fesm2020/igniteui-angular.mjs +1714 -1402
- package/fesm2020/igniteui-angular.mjs.map +1 -1
- package/lib/banner/banner.component.d.ts +1 -2
- package/lib/combo/combo-dropdown.component.d.ts +3 -1
- package/lib/combo/combo-item.component.d.ts +3 -1
- package/lib/combo/combo.common.d.ts +733 -4
- package/lib/combo/combo.component.d.ts +41 -799
- package/lib/combo/combo.pipes.d.ts +1 -1
- package/lib/combo/public_api.d.ts +4 -0
- package/lib/core/utils.d.ts +4 -0
- package/lib/dialog/dialog.component.d.ts +11 -2
- package/lib/directives/focus-trap/focus-trap.directive.d.ts +41 -0
- package/lib/directives/radio/radio-group.directive.d.ts +4 -4
- package/lib/grids/columns/column.component.d.ts +1 -1
- package/lib/grids/grid/grid.component.d.ts +2 -1
- package/lib/grids/grid-base.directive.d.ts +64 -8
- package/lib/grids/grid-public-row.d.ts +2 -3
- package/lib/grids/hierarchical-grid/hierarchical-grid.component.d.ts +2 -1
- package/lib/grids/tree-grid/tree-grid.component.d.ts +2 -1
- package/lib/services/overlay/utilities.d.ts +2 -1
- package/lib/simple-combo/public_api.d.ts +1 -0
- package/lib/simple-combo/simple-combo.component.d.ts +134 -0
- package/lib/toast/toast.component.d.ts +2 -0
- package/migrations/common/filterSourceDirs.d.ts +2 -2
- package/migrations/common/filterSourceDirs.js +2 -2
- package/migrations/update-13_0_0/changes/members.json +26 -0
- package/migrations/update-13_0_0/index.js +0 -31
- package/package.json +51 -43
- package/public_api.d.ts +2 -0
- package/src/lib/combo/README.md +14 -14
- package/src/lib/directives/focus-trap/README.md +17 -0
- package/src/lib/simple-combo/README.md +317 -0
- package/esm2020/lib/core/deprecateDecorators.mjs +0 -99
- package/lib/core/deprecateDecorators.d.ts +0 -20
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i1 from '@angular/animations';
|
|
2
2
|
import { style, animate, animation, keyframes, useAnimation, trigger, transition } from '@angular/animations';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { Injectable, Directive, Input, HostListener, NgModule, PLATFORM_ID, Inject, EventEmitter, ElementRef, Optional, Output, HostBinding, InjectionToken,
|
|
4
|
+
import { Injectable, Directive, Input, HostListener, NgModule, isDevMode, PLATFORM_ID, Inject, EventEmitter, ElementRef, Optional, Output, HostBinding, InjectionToken, Component, ViewContainerRef, ViewChild, ContentChildren, forwardRef, ContentChild, Self, SecurityContext, TemplateRef, Pipe, LOCALE_ID, QueryList, ViewChildren, Host, ChangeDetectionStrategy, inject, SimpleChange, CUSTOM_ELEMENTS_SCHEMA, SkipSelf } from '@angular/core';
|
|
5
5
|
import * as i12 from '@angular/forms';
|
|
6
6
|
import { NgModel, FormControlName, NG_VALUE_ACCESSOR, NG_VALIDATORS, CheckboxRequiredValidator, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';
|
|
7
7
|
import * as i4 from '@angular/common';
|
|
@@ -924,6 +924,15 @@ function clearImmediate(id) {
|
|
|
924
924
|
delete queue[id];
|
|
925
925
|
}
|
|
926
926
|
|
|
927
|
+
/**
|
|
928
|
+
* @hidden
|
|
929
|
+
*/
|
|
930
|
+
const showMessage = (message, isMessageShown) => {
|
|
931
|
+
if (!isMessageShown && isDevMode()) {
|
|
932
|
+
console.warn(message);
|
|
933
|
+
}
|
|
934
|
+
return true;
|
|
935
|
+
};
|
|
927
936
|
const mkenum = (x) => x;
|
|
928
937
|
/**
|
|
929
938
|
*
|
|
@@ -7517,104 +7526,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
7517
7526
|
}]
|
|
7518
7527
|
}] });
|
|
7519
7528
|
|
|
7520
|
-
/**
|
|
7521
|
-
* @hidden
|
|
7522
|
-
*/
|
|
7523
|
-
const DeprecateClass = (message) => {
|
|
7524
|
-
let isMessageShown = false;
|
|
7525
|
-
return (originalClass) => class extends originalClass {
|
|
7526
|
-
constructor(...args) {
|
|
7527
|
-
const target = originalClass;
|
|
7528
|
-
const targetName = typeof target === 'function' ? target.name : target.constructor.name;
|
|
7529
|
-
isMessageShown = showMessage(`${targetName}: ${message}`, isMessageShown);
|
|
7530
|
-
super(...args);
|
|
7531
|
-
}
|
|
7532
|
-
};
|
|
7533
|
-
};
|
|
7534
|
-
/**
|
|
7535
|
-
* @hidden
|
|
7536
|
-
*/
|
|
7537
|
-
function DeprecateMethod(message) {
|
|
7538
|
-
let isMessageShown = false;
|
|
7539
|
-
return function (target, key, descriptor) {
|
|
7540
|
-
if (descriptor && descriptor.value) {
|
|
7541
|
-
const originalMethod = descriptor.value;
|
|
7542
|
-
descriptor.value = function () {
|
|
7543
|
-
const targetName = typeof target === 'function' ? target.name : target.constructor.name;
|
|
7544
|
-
isMessageShown = showMessage(`${targetName}.${key}: ${message}`, isMessageShown);
|
|
7545
|
-
const args = [];
|
|
7546
|
-
for (const x of arguments) {
|
|
7547
|
-
args.push(x);
|
|
7548
|
-
}
|
|
7549
|
-
return originalMethod.call(this, ...args);
|
|
7550
|
-
};
|
|
7551
|
-
return descriptor;
|
|
7552
|
-
}
|
|
7553
|
-
};
|
|
7554
|
-
}
|
|
7555
|
-
/**
|
|
7556
|
-
* @hidden
|
|
7557
|
-
*/
|
|
7558
|
-
function DeprecateProperty(message) {
|
|
7559
|
-
return function (target, key) {
|
|
7560
|
-
let isMessageShown = false;
|
|
7561
|
-
const messageToDisplay = `${target.constructor.name}.${key}: ${message}`;
|
|
7562
|
-
// if the target already has the property defined
|
|
7563
|
-
const originalDescriptor = Object.getOwnPropertyDescriptor(target, key);
|
|
7564
|
-
if (originalDescriptor) {
|
|
7565
|
-
const getter = originalDescriptor.get;
|
|
7566
|
-
const setter = originalDescriptor.set;
|
|
7567
|
-
if (getter) {
|
|
7568
|
-
originalDescriptor.get = function () {
|
|
7569
|
-
isMessageShown = showMessage(messageToDisplay, isMessageShown);
|
|
7570
|
-
return getter.call(this);
|
|
7571
|
-
};
|
|
7572
|
-
}
|
|
7573
|
-
if (setter) {
|
|
7574
|
-
originalDescriptor.set = function (value) {
|
|
7575
|
-
isMessageShown = showMessage(messageToDisplay, isMessageShown);
|
|
7576
|
-
setter.call(this, value);
|
|
7577
|
-
};
|
|
7578
|
-
}
|
|
7579
|
-
return originalDescriptor;
|
|
7580
|
-
}
|
|
7581
|
-
// the target doesn't contain a descriptor for that property, so create one
|
|
7582
|
-
// use backing field to set/get the value of the property to ensure there won't be infinite recursive calls
|
|
7583
|
-
const newKey = generateUniqueKey(target, key);
|
|
7584
|
-
Object.defineProperty(target, key, {
|
|
7585
|
-
configurable: true,
|
|
7586
|
-
enumerable: true,
|
|
7587
|
-
set(value) {
|
|
7588
|
-
isMessageShown = showMessage(messageToDisplay, isMessageShown);
|
|
7589
|
-
this[newKey] = value;
|
|
7590
|
-
},
|
|
7591
|
-
get() {
|
|
7592
|
-
isMessageShown = showMessage(messageToDisplay, isMessageShown);
|
|
7593
|
-
return this[newKey];
|
|
7594
|
-
}
|
|
7595
|
-
});
|
|
7596
|
-
};
|
|
7597
|
-
}
|
|
7598
|
-
/**
|
|
7599
|
-
* @hidden
|
|
7600
|
-
*/
|
|
7601
|
-
const generateUniqueKey = (target, key) => {
|
|
7602
|
-
let newKey = '_' + key;
|
|
7603
|
-
while (target.hasOwnProperty(newKey)) {
|
|
7604
|
-
newKey = '_' + newKey;
|
|
7605
|
-
}
|
|
7606
|
-
return newKey;
|
|
7607
|
-
};
|
|
7608
|
-
/**
|
|
7609
|
-
* @hidden
|
|
7610
|
-
*/
|
|
7611
|
-
const showMessage = (message, isMessageShown) => {
|
|
7612
|
-
if (!isMessageShown && isDevMode()) {
|
|
7613
|
-
console.warn(message);
|
|
7614
|
-
}
|
|
7615
|
-
return true;
|
|
7616
|
-
};
|
|
7617
|
-
|
|
7618
7529
|
let NEXT_ID$u = 0;
|
|
7619
7530
|
/**
|
|
7620
7531
|
* The `<igx-drop-down-item>` is a container intended for row items in
|
|
@@ -7702,7 +7613,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
7702
7613
|
}] } });
|
|
7703
7614
|
|
|
7704
7615
|
let NEXT_ID$t = 0;
|
|
7705
|
-
let warningShown = false;
|
|
7706
7616
|
/**
|
|
7707
7617
|
* An abstract class defining a drop-down item:
|
|
7708
7618
|
* With properties / styles for selection, highlight, height
|
|
@@ -7767,8 +7677,6 @@ class IgxDropDownItemBaseDirective {
|
|
|
7767
7677
|
*/
|
|
7768
7678
|
get index() {
|
|
7769
7679
|
if (this._index === null) {
|
|
7770
|
-
warningShown = showMessage('IgxDropDownItemBaseDirective: Automatic index is deprecated.' +
|
|
7771
|
-
'Bind in the template instead using `<igx-drop-down-item [index]="i"` instead.`', warningShown);
|
|
7772
7680
|
return this.itemIndex;
|
|
7773
7681
|
}
|
|
7774
7682
|
return this._index;
|
|
@@ -9414,7 +9322,7 @@ class IgxForOfDirective {
|
|
|
9414
9322
|
this.dc.instance.scrollContainer = this.scrollComponent.nativeElement;
|
|
9415
9323
|
});
|
|
9416
9324
|
const destructor = takeUntil(this.destroy$);
|
|
9417
|
-
this.contentResizeNotify.pipe(
|
|
9325
|
+
this.contentResizeNotify.pipe(filter(() => this.igxForContainerSize && this.igxForOf && this.igxForOf.length > 0), throttleTime(40, undefined, { leading: true, trailing: true }), destructor).subscribe(() => this._zone.runTask(() => this.updateSizes()));
|
|
9418
9326
|
}
|
|
9419
9327
|
if (this.igxForScrollOrientation === 'horizontal') {
|
|
9420
9328
|
this.func = (evt) => this.onHScroll(evt);
|
|
@@ -15879,6 +15787,113 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
15879
15787
|
}]
|
|
15880
15788
|
}] });
|
|
15881
15789
|
|
|
15790
|
+
class IgxFocusTrapDirective {
|
|
15791
|
+
/** @hidden */
|
|
15792
|
+
constructor(elementRef, platformUtil) {
|
|
15793
|
+
this.elementRef = elementRef;
|
|
15794
|
+
this.platformUtil = platformUtil;
|
|
15795
|
+
this.destroy$ = new Subject();
|
|
15796
|
+
this._focusTrap = true;
|
|
15797
|
+
}
|
|
15798
|
+
/** @hidden */
|
|
15799
|
+
get element() {
|
|
15800
|
+
return this.elementRef.nativeElement;
|
|
15801
|
+
}
|
|
15802
|
+
/**
|
|
15803
|
+
* Sets whether the Tab key focus is trapped within the element.
|
|
15804
|
+
*
|
|
15805
|
+
* @example
|
|
15806
|
+
* ```html
|
|
15807
|
+
* <div igxFocusTrap="true"></div>
|
|
15808
|
+
* ```
|
|
15809
|
+
*/
|
|
15810
|
+
set focusTrap(focusTrap) {
|
|
15811
|
+
this._focusTrap = focusTrap;
|
|
15812
|
+
}
|
|
15813
|
+
/** @hidden */
|
|
15814
|
+
get focusTrap() {
|
|
15815
|
+
return this._focusTrap;
|
|
15816
|
+
}
|
|
15817
|
+
/** @hidden */
|
|
15818
|
+
ngAfterViewInit() {
|
|
15819
|
+
fromEvent(this.element, 'keydown')
|
|
15820
|
+
.pipe(takeUntil(this.destroy$))
|
|
15821
|
+
.subscribe((event) => {
|
|
15822
|
+
if (this._focusTrap && event.key === this.platformUtil.KEYMAP.TAB) {
|
|
15823
|
+
this.handleTab(event);
|
|
15824
|
+
}
|
|
15825
|
+
});
|
|
15826
|
+
}
|
|
15827
|
+
/** @hidden */
|
|
15828
|
+
ngOnDestroy() {
|
|
15829
|
+
this.destroy$.complete();
|
|
15830
|
+
}
|
|
15831
|
+
handleTab(event) {
|
|
15832
|
+
const elements = this.getFocusableElements(this.element);
|
|
15833
|
+
if (elements.length > 0) {
|
|
15834
|
+
const focusedElement = this.getFocusedElement();
|
|
15835
|
+
const focusedElementIndex = elements.findIndex((element) => element === focusedElement);
|
|
15836
|
+
const direction = event.shiftKey ? -1 : 1;
|
|
15837
|
+
let nextFocusableElementIndex = focusedElementIndex + direction;
|
|
15838
|
+
if (nextFocusableElementIndex < 0) {
|
|
15839
|
+
nextFocusableElementIndex = elements.length - 1;
|
|
15840
|
+
}
|
|
15841
|
+
if (nextFocusableElementIndex >= elements.length) {
|
|
15842
|
+
nextFocusableElementIndex = 0;
|
|
15843
|
+
}
|
|
15844
|
+
elements[nextFocusableElementIndex].focus();
|
|
15845
|
+
}
|
|
15846
|
+
else {
|
|
15847
|
+
this.element.focus();
|
|
15848
|
+
}
|
|
15849
|
+
event.preventDefault();
|
|
15850
|
+
}
|
|
15851
|
+
getFocusableElements(element) {
|
|
15852
|
+
return Array.from(element.querySelectorAll('a[href], button, input, textarea, select, details,[tabindex]:not([tabindex="-1"])')).filter(el => !el.hasAttribute('disabled') && !el.getAttribute('aria-hidden'));
|
|
15853
|
+
}
|
|
15854
|
+
getFocusedElement() {
|
|
15855
|
+
let activeElement = typeof document !== 'undefined' && document
|
|
15856
|
+
? document.activeElement
|
|
15857
|
+
: null;
|
|
15858
|
+
while (activeElement && activeElement.shadowRoot) {
|
|
15859
|
+
const newActiveElement = activeElement.shadowRoot.activeElement;
|
|
15860
|
+
if (newActiveElement === activeElement) {
|
|
15861
|
+
break;
|
|
15862
|
+
}
|
|
15863
|
+
else {
|
|
15864
|
+
activeElement = newActiveElement;
|
|
15865
|
+
}
|
|
15866
|
+
}
|
|
15867
|
+
return activeElement;
|
|
15868
|
+
}
|
|
15869
|
+
}
|
|
15870
|
+
IgxFocusTrapDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxFocusTrapDirective, deps: [{ token: i0.ElementRef }, { token: PlatformUtil }], target: i0.ɵɵFactoryTarget.Directive });
|
|
15871
|
+
IgxFocusTrapDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxFocusTrapDirective, selector: "[igxFocusTrap]", inputs: { focusTrap: ["igxFocusTrap", "focusTrap"] }, ngImport: i0 });
|
|
15872
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxFocusTrapDirective, decorators: [{
|
|
15873
|
+
type: Directive,
|
|
15874
|
+
args: [{
|
|
15875
|
+
selector: '[igxFocusTrap]'
|
|
15876
|
+
}]
|
|
15877
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: PlatformUtil }]; }, propDecorators: { focusTrap: [{
|
|
15878
|
+
type: Input,
|
|
15879
|
+
args: ['igxFocusTrap']
|
|
15880
|
+
}] } });
|
|
15881
|
+
/**
|
|
15882
|
+
* @hidden
|
|
15883
|
+
*/
|
|
15884
|
+
class IgxFocusTrapModule {
|
|
15885
|
+
}
|
|
15886
|
+
IgxFocusTrapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxFocusTrapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
15887
|
+
IgxFocusTrapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxFocusTrapModule, declarations: [IgxFocusTrapDirective], exports: [IgxFocusTrapDirective] });
|
|
15888
|
+
IgxFocusTrapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxFocusTrapModule });
|
|
15889
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxFocusTrapModule, decorators: [{
|
|
15890
|
+
type: NgModule,
|
|
15891
|
+
args: [{
|
|
15892
|
+
declarations: [IgxFocusTrapDirective],
|
|
15893
|
+
exports: [IgxFocusTrapDirective]
|
|
15894
|
+
}]
|
|
15895
|
+
}] });
|
|
15896
|
+
|
|
15882
15897
|
class IgxLayoutDirective {
|
|
15883
15898
|
constructor() {
|
|
15884
15899
|
/**
|
|
@@ -17449,10 +17464,10 @@ class IgxRadioGroupDirective {
|
|
|
17449
17464
|
this._setRadioButtonsRequired();
|
|
17450
17465
|
}
|
|
17451
17466
|
/**
|
|
17452
|
-
* An @Input property that allows you to disable the radio group. By default it's false.
|
|
17453
|
-
*
|
|
17454
17467
|
* @deprecated in version 12.2.0
|
|
17455
17468
|
*
|
|
17469
|
+
* An input property that allows you to disable the radio group. By default it's false.
|
|
17470
|
+
*
|
|
17456
17471
|
* @example
|
|
17457
17472
|
* ```html
|
|
17458
17473
|
* <igx-radio-group disabled></igx-radio-group>
|
|
@@ -17466,10 +17481,10 @@ class IgxRadioGroupDirective {
|
|
|
17466
17481
|
this.setDisabledState(value);
|
|
17467
17482
|
}
|
|
17468
17483
|
/**
|
|
17469
|
-
* Sets/gets the position of the `label` in the child radio buttons.
|
|
17470
|
-
*
|
|
17471
17484
|
* @deprecated in version 12.2.0
|
|
17472
17485
|
*
|
|
17486
|
+
* Sets/gets the position of the `label` in the child radio buttons.
|
|
17487
|
+
*
|
|
17473
17488
|
* @remarks
|
|
17474
17489
|
* If not set, `labelPosition` will have value `"after"`.
|
|
17475
17490
|
*
|
|
@@ -17701,12 +17716,6 @@ class IgxRadioGroupDirective {
|
|
|
17701
17716
|
}
|
|
17702
17717
|
IgxRadioGroupDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxRadioGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
17703
17718
|
IgxRadioGroupDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxRadioGroupDirective, selector: "igx-radio-group, [igxRadioGroup]", inputs: { value: "value", name: "name", required: "required", disabled: "disabled", labelPosition: "labelPosition", selected: "selected", alignment: "alignment" }, outputs: { change: "change" }, host: { properties: { "class.igx-radio-group": "this.cssClass", "class.igx-radio-group--vertical": "this.vertical" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxRadioGroupDirective, multi: true }], queries: [{ propertyName: "radioButtons", predicate: IgxRadioComponent, descendants: true }], exportAs: ["igxRadioGroup"], ngImport: i0 });
|
|
17704
|
-
__decorate([
|
|
17705
|
-
DeprecateProperty('`disabled` is deprecated.')
|
|
17706
|
-
], IgxRadioGroupDirective.prototype, "disabled", null);
|
|
17707
|
-
__decorate([
|
|
17708
|
-
DeprecateProperty('`labelPosition` is deprecated.')
|
|
17709
|
-
], IgxRadioGroupDirective.prototype, "labelPosition", null);
|
|
17710
17719
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxRadioGroupDirective, decorators: [{
|
|
17711
17720
|
type: Directive,
|
|
17712
17721
|
args: [{
|
|
@@ -21762,7 +21771,7 @@ class IgxRowAddCrudState extends IgxRowCrudState {
|
|
|
21762
21771
|
* @hidden @internal
|
|
21763
21772
|
*/
|
|
21764
21773
|
createAddRowParent(row, newRowAsChild) {
|
|
21765
|
-
const rowIndex = row ? row.index :
|
|
21774
|
+
const rowIndex = row ? row.index : -1;
|
|
21766
21775
|
const rowId = row ? row.rowID : (rowIndex >= 0 ? this.grid.rowList.last.rowID : null);
|
|
21767
21776
|
const isInPinnedArea = this.grid.isRecordPinnedByViewIndex(rowIndex);
|
|
21768
21777
|
const pinIndex = this.grid.pinnedRecords.findIndex(x => x[this.primaryKey] === rowId);
|
|
@@ -32950,9 +32959,7 @@ IgxComboHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
|
|
|
32950
32959
|
IgxComboHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboHeaderDirective, selector: "[igxComboHeader]", ngImport: i0 });
|
|
32951
32960
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboHeaderDirective, decorators: [{
|
|
32952
32961
|
type: Directive,
|
|
32953
|
-
args: [{
|
|
32954
|
-
selector: '[igxComboHeader]'
|
|
32955
|
-
}]
|
|
32962
|
+
args: [{ selector: '[igxComboHeader]' }]
|
|
32956
32963
|
}] });
|
|
32957
32964
|
/**
|
|
32958
32965
|
* @hidden
|
|
@@ -32963,9 +32970,7 @@ IgxComboFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
|
|
|
32963
32970
|
IgxComboFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboFooterDirective, selector: "[igxComboFooter]", ngImport: i0 });
|
|
32964
32971
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboFooterDirective, decorators: [{
|
|
32965
32972
|
type: Directive,
|
|
32966
|
-
args: [{
|
|
32967
|
-
selector: '[igxComboFooter]'
|
|
32968
|
-
}]
|
|
32973
|
+
args: [{ selector: '[igxComboFooter]' }]
|
|
32969
32974
|
}] });
|
|
32970
32975
|
/**
|
|
32971
32976
|
* @hidden
|
|
@@ -32976,9 +32981,7 @@ IgxComboItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ve
|
|
|
32976
32981
|
IgxComboItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboItemDirective, selector: "[igxComboItem]", ngImport: i0 });
|
|
32977
32982
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboItemDirective, decorators: [{
|
|
32978
32983
|
type: Directive,
|
|
32979
|
-
args: [{
|
|
32980
|
-
selector: '[igxComboItem]'
|
|
32981
|
-
}]
|
|
32984
|
+
args: [{ selector: '[igxComboItem]' }]
|
|
32982
32985
|
}] });
|
|
32983
32986
|
/**
|
|
32984
32987
|
* @hidden
|
|
@@ -32989,9 +32992,7 @@ IgxComboEmptyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", v
|
|
|
32989
32992
|
IgxComboEmptyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboEmptyDirective, selector: "[igxComboEmpty]", ngImport: i0 });
|
|
32990
32993
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboEmptyDirective, decorators: [{
|
|
32991
32994
|
type: Directive,
|
|
32992
|
-
args: [{
|
|
32993
|
-
selector: '[igxComboEmpty]'
|
|
32994
|
-
}]
|
|
32995
|
+
args: [{ selector: '[igxComboEmpty]' }]
|
|
32995
32996
|
}] });
|
|
32996
32997
|
/**
|
|
32997
32998
|
* @hidden
|
|
@@ -33002,9 +33003,7 @@ IgxComboHeaderItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.
|
|
|
33002
33003
|
IgxComboHeaderItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboHeaderItemDirective, selector: "[igxComboHeaderItem]", ngImport: i0 });
|
|
33003
33004
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboHeaderItemDirective, decorators: [{
|
|
33004
33005
|
type: Directive,
|
|
33005
|
-
args: [{
|
|
33006
|
-
selector: '[igxComboHeaderItem]'
|
|
33007
|
-
}]
|
|
33006
|
+
args: [{ selector: '[igxComboHeaderItem]' }]
|
|
33008
33007
|
}] });
|
|
33009
33008
|
/**
|
|
33010
33009
|
* @hidden
|
|
@@ -33015,9 +33014,7 @@ IgxComboAddItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
|
|
|
33015
33014
|
IgxComboAddItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboAddItemDirective, selector: "[igxComboAddItem]", ngImport: i0 });
|
|
33016
33015
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboAddItemDirective, decorators: [{
|
|
33017
33016
|
type: Directive,
|
|
33018
|
-
args: [{
|
|
33019
|
-
selector: '[igxComboAddItem]'
|
|
33020
|
-
}]
|
|
33017
|
+
args: [{ selector: '[igxComboAddItem]' }]
|
|
33021
33018
|
}] });
|
|
33022
33019
|
/**
|
|
33023
33020
|
* @hidden
|
|
@@ -33028,9 +33025,7 @@ IgxComboToggleIconDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.
|
|
|
33028
33025
|
IgxComboToggleIconDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboToggleIconDirective, selector: "[igxComboToggleIcon]", ngImport: i0 });
|
|
33029
33026
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboToggleIconDirective, decorators: [{
|
|
33030
33027
|
type: Directive,
|
|
33031
|
-
args: [{
|
|
33032
|
-
selector: '[igxComboToggleIcon]'
|
|
33033
|
-
}]
|
|
33028
|
+
args: [{ selector: '[igxComboToggleIcon]' }]
|
|
33034
33029
|
}] });
|
|
33035
33030
|
/**
|
|
33036
33031
|
* @hidden
|
|
@@ -33041,9 +33036,7 @@ IgxComboClearIconDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0
|
|
|
33041
33036
|
IgxComboClearIconDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboClearIconDirective, selector: "[igxComboClearIcon]", ngImport: i0 });
|
|
33042
33037
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboClearIconDirective, decorators: [{
|
|
33043
33038
|
type: Directive,
|
|
33044
|
-
args: [{
|
|
33045
|
-
selector: '[igxComboClearIcon]'
|
|
33046
|
-
}]
|
|
33039
|
+
args: [{ selector: '[igxComboClearIcon]' }]
|
|
33047
33040
|
}] });
|
|
33048
33041
|
|
|
33049
33042
|
/**
|
|
@@ -33083,10 +33076,10 @@ class IgxComboAPIService {
|
|
|
33083
33076
|
return;
|
|
33084
33077
|
}
|
|
33085
33078
|
if (!selected) {
|
|
33086
|
-
this.combo.
|
|
33079
|
+
this.combo.select([itemID], false, event);
|
|
33087
33080
|
}
|
|
33088
33081
|
else {
|
|
33089
|
-
this.combo.
|
|
33082
|
+
this.combo.deselect([itemID], event);
|
|
33090
33083
|
}
|
|
33091
33084
|
}
|
|
33092
33085
|
is_item_selected(itemID) {
|
|
@@ -33182,10 +33175,10 @@ class IgxComboItemComponent extends IgxDropDownItemComponent {
|
|
|
33182
33175
|
}
|
|
33183
33176
|
}
|
|
33184
33177
|
IgxComboItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboItemComponent, deps: [{ token: IgxComboAPIService }, { token: IGX_DROPDOWN_BASE }, { token: i0.ElementRef }, { token: IgxSelectionAPIService }], target: i0.ɵɵFactoryTarget.Component });
|
|
33185
|
-
IgxComboItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboItemComponent, selector: "igx-combo-item", inputs: { itemHeight: "itemHeight" }, host: { properties: { "style.height.px": "this.itemHeight" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isHeader\">\n <igx-checkbox [checked]=\"selected\" [disableRipple]=\"true\" [disableTransitions]=\"disableTransitions\" [tabindex]=\"-1\" (click)=\"disableCheck($event)\" class=\"igx-combo__checkbox\"></igx-checkbox>\n</ng-container>\n<span class=\"igx-drop-down__inner\"><ng-content></ng-content></span>\n", components: [{ type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "readonly", "disableTransitions"], outputs: ["change"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
33178
|
+
IgxComboItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboItemComponent, selector: "igx-combo-item", inputs: { itemHeight: "itemHeight", singleMode: "singleMode" }, host: { properties: { "style.height.px": "this.itemHeight" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isHeader && !singleMode\">\n <igx-checkbox [checked]=\"selected\" [disableRipple]=\"true\" [disableTransitions]=\"disableTransitions\" [tabindex]=\"-1\" (click)=\"disableCheck($event)\" class=\"igx-combo__checkbox\"></igx-checkbox>\n</ng-container>\n<span class=\"igx-drop-down__inner\"><ng-content></ng-content></span>\n", components: [{ type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "readonly", "disableTransitions"], outputs: ["change"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
33186
33179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboItemComponent, decorators: [{
|
|
33187
33180
|
type: Component,
|
|
33188
|
-
args: [{ selector: 'igx-combo-item', template: "<ng-container *ngIf=\"!isHeader\">\n <igx-checkbox [checked]=\"selected\" [disableRipple]=\"true\" [disableTransitions]=\"disableTransitions\" [tabindex]=\"-1\" (click)=\"disableCheck($event)\" class=\"igx-combo__checkbox\"></igx-checkbox>\n</ng-container>\n<span class=\"igx-drop-down__inner\"><ng-content></ng-content></span>\n" }]
|
|
33181
|
+
args: [{ selector: 'igx-combo-item', template: "<ng-container *ngIf=\"!isHeader && !singleMode\">\n <igx-checkbox [checked]=\"selected\" [disableRipple]=\"true\" [disableTransitions]=\"disableTransitions\" [tabindex]=\"-1\" (click)=\"disableCheck($event)\" class=\"igx-combo__checkbox\"></igx-checkbox>\n</ng-container>\n<span class=\"igx-drop-down__inner\"><ng-content></ng-content></span>\n" }]
|
|
33189
33182
|
}], ctorParameters: function () {
|
|
33190
33183
|
return [{ type: IgxComboAPIService }, { type: undefined, decorators: [{
|
|
33191
33184
|
type: Inject,
|
|
@@ -33199,320 +33192,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
33199
33192
|
}, {
|
|
33200
33193
|
type: HostBinding,
|
|
33201
33194
|
args: ['style.height.px']
|
|
33195
|
+
}], singleMode: [{
|
|
33196
|
+
type: Input
|
|
33202
33197
|
}] } });
|
|
33203
33198
|
|
|
33204
33199
|
const IGX_COMBO_COMPONENT = new InjectionToken('IgxComboComponentToken');
|
|
33205
|
-
|
|
33206
|
-
/**
|
|
33207
|
-
* @hidden
|
|
33208
|
-
*/
|
|
33209
|
-
class IgxComboAddItemComponent extends IgxComboItemComponent {
|
|
33210
|
-
get selected() {
|
|
33211
|
-
return false;
|
|
33212
|
-
}
|
|
33213
|
-
set selected(value) {
|
|
33214
|
-
}
|
|
33215
|
-
/**
|
|
33216
|
-
* @inheritdoc
|
|
33217
|
-
*/
|
|
33218
|
-
clicked(event) {
|
|
33219
|
-
this.comboAPI.disableTransitions = false;
|
|
33220
|
-
this.comboAPI.add_custom_item();
|
|
33221
|
-
}
|
|
33222
|
-
}
|
|
33223
|
-
IgxComboAddItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboAddItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
33224
|
-
IgxComboAddItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboAddItemComponent, selector: "igx-combo-add-item", providers: [{ provide: IgxComboItemComponent, useExisting: IgxComboAddItemComponent }], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
|
|
33225
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboAddItemComponent, decorators: [{
|
|
33226
|
-
type: Component,
|
|
33227
|
-
args: [{
|
|
33228
|
-
selector: 'igx-combo-add-item',
|
|
33229
|
-
template: '<ng-content></ng-content>',
|
|
33230
|
-
providers: [{ provide: IgxComboItemComponent, useExisting: IgxComboAddItemComponent }]
|
|
33231
|
-
}]
|
|
33232
|
-
}] });
|
|
33233
|
-
|
|
33234
|
-
/** @hidden */
|
|
33235
|
-
class IgxComboDropDownComponent extends IgxDropDownComponent {
|
|
33236
|
-
constructor(elementRef, cdr, selection, combo, comboAPI, _displayDensityOptions) {
|
|
33237
|
-
super(elementRef, cdr, selection, _displayDensityOptions);
|
|
33238
|
-
this.elementRef = elementRef;
|
|
33239
|
-
this.cdr = cdr;
|
|
33240
|
-
this.selection = selection;
|
|
33241
|
-
this.combo = combo;
|
|
33242
|
-
this.comboAPI = comboAPI;
|
|
33243
|
-
this._displayDensityOptions = _displayDensityOptions;
|
|
33244
|
-
/**
|
|
33245
|
-
* @hidden
|
|
33246
|
-
* @internal
|
|
33247
|
-
*/
|
|
33248
|
-
this.children = null;
|
|
33249
|
-
this.scrollHandler = () => {
|
|
33250
|
-
this.comboAPI.disableTransitions = true;
|
|
33251
|
-
};
|
|
33252
|
-
}
|
|
33253
|
-
/** @hidden @internal */
|
|
33254
|
-
get scrollContainer() {
|
|
33255
|
-
return this.virtDir.dc.location.nativeElement;
|
|
33256
|
-
}
|
|
33257
|
-
get isScrolledToLast() {
|
|
33258
|
-
const scrollTop = this.virtDir.scrollPosition;
|
|
33259
|
-
const scrollHeight = this.virtDir.getScroll().scrollHeight;
|
|
33260
|
-
return Math.floor(scrollTop + this.virtDir.igxForContainerSize) === scrollHeight;
|
|
33261
|
-
}
|
|
33262
|
-
get lastVisibleIndex() {
|
|
33263
|
-
return this.combo.totalItemCount ?
|
|
33264
|
-
Math.floor(this.combo.itemsMaxHeight / this.combo.itemHeight) :
|
|
33265
|
-
this.items.length - 1;
|
|
33266
|
-
}
|
|
33267
|
-
get sortedChildren() {
|
|
33268
|
-
if (this.children !== undefined) {
|
|
33269
|
-
return this.children.toArray()
|
|
33270
|
-
.sort((a, b) => a.index - b.index);
|
|
33271
|
-
}
|
|
33272
|
-
return null;
|
|
33273
|
-
}
|
|
33274
|
-
/**
|
|
33275
|
-
* Get all non-header items
|
|
33276
|
-
*
|
|
33277
|
-
* ```typescript
|
|
33278
|
-
* let myDropDownItems = this.dropdown.items;
|
|
33279
|
-
* ```
|
|
33280
|
-
*/
|
|
33281
|
-
get items() {
|
|
33282
|
-
const items = [];
|
|
33283
|
-
if (this.children !== undefined) {
|
|
33284
|
-
const sortedChildren = this.sortedChildren;
|
|
33285
|
-
for (const child of sortedChildren) {
|
|
33286
|
-
if (!child.isHeader) {
|
|
33287
|
-
items.push(child);
|
|
33288
|
-
}
|
|
33289
|
-
}
|
|
33290
|
-
}
|
|
33291
|
-
return items;
|
|
33292
|
-
}
|
|
33293
|
-
/**
|
|
33294
|
-
* @hidden @internal
|
|
33295
|
-
*/
|
|
33296
|
-
onFocus() {
|
|
33297
|
-
this.focusedItem = this._focusedItem || this.items[0];
|
|
33298
|
-
}
|
|
33299
|
-
/**
|
|
33300
|
-
* @hidden @internal
|
|
33301
|
-
*/
|
|
33302
|
-
onBlur(_evt) {
|
|
33303
|
-
this.focusedItem = null;
|
|
33304
|
-
}
|
|
33305
|
-
/**
|
|
33306
|
-
* @hidden @internal
|
|
33307
|
-
*/
|
|
33308
|
-
onToggleOpened() {
|
|
33309
|
-
this.opened.emit();
|
|
33310
|
-
}
|
|
33311
|
-
/**
|
|
33312
|
-
* @hidden
|
|
33313
|
-
*/
|
|
33314
|
-
navigateFirst() {
|
|
33315
|
-
this.navigateItem(this.virtDir.igxForOf.findIndex(e => !e.isHeader));
|
|
33316
|
-
}
|
|
33317
|
-
/**
|
|
33318
|
-
* @hidden
|
|
33319
|
-
*/
|
|
33320
|
-
navigatePrev() {
|
|
33321
|
-
if (this._focusedItem && this._focusedItem.index === 0 && this.virtDir.state.startIndex === 0) {
|
|
33322
|
-
this.combo.focusSearchInput(false);
|
|
33323
|
-
}
|
|
33324
|
-
else {
|
|
33325
|
-
super.navigatePrev();
|
|
33326
|
-
}
|
|
33327
|
-
}
|
|
33328
|
-
/**
|
|
33329
|
-
* @hidden
|
|
33330
|
-
*/
|
|
33331
|
-
navigateNext() {
|
|
33332
|
-
const lastIndex = this.combo.totalItemCount ? this.combo.totalItemCount - 1 : this.virtDir.igxForOf.length - 1;
|
|
33333
|
-
if (this._focusedItem && this._focusedItem.index === lastIndex) {
|
|
33334
|
-
this.focusAddItemButton();
|
|
33335
|
-
}
|
|
33336
|
-
else {
|
|
33337
|
-
super.navigateNext();
|
|
33338
|
-
}
|
|
33339
|
-
}
|
|
33340
|
-
/**
|
|
33341
|
-
* @hidden @internal
|
|
33342
|
-
*/
|
|
33343
|
-
selectItem(item) {
|
|
33344
|
-
if (item === null || item === undefined) {
|
|
33345
|
-
return;
|
|
33346
|
-
}
|
|
33347
|
-
this.comboAPI.set_selected_item(item.itemID);
|
|
33348
|
-
this._focusedItem = item;
|
|
33349
|
-
}
|
|
33350
|
-
/**
|
|
33351
|
-
* @hidden @internal
|
|
33352
|
-
*/
|
|
33353
|
-
updateScrollPosition() {
|
|
33354
|
-
this.virtDir.getScroll().scrollTop = this._scrollPosition;
|
|
33355
|
-
}
|
|
33356
|
-
/**
|
|
33357
|
-
* @hidden @internal
|
|
33358
|
-
*/
|
|
33359
|
-
onItemActionKey(key) {
|
|
33360
|
-
switch (key) {
|
|
33361
|
-
case DropDownActionKey.ENTER:
|
|
33362
|
-
this.handleEnter();
|
|
33363
|
-
break;
|
|
33364
|
-
case DropDownActionKey.SPACE:
|
|
33365
|
-
this.handleSpace();
|
|
33366
|
-
break;
|
|
33367
|
-
case DropDownActionKey.ESCAPE:
|
|
33368
|
-
this.close();
|
|
33369
|
-
}
|
|
33370
|
-
}
|
|
33371
|
-
ngAfterViewInit() {
|
|
33372
|
-
this.virtDir.getScroll().addEventListener('scroll', this.scrollHandler);
|
|
33373
|
-
}
|
|
33374
|
-
/**
|
|
33375
|
-
* @hidden @internal
|
|
33376
|
-
*/
|
|
33377
|
-
ngOnDestroy() {
|
|
33378
|
-
this.virtDir.getScroll().removeEventListener('scroll', this.scrollHandler);
|
|
33379
|
-
this.destroy$.next(true);
|
|
33380
|
-
this.destroy$.complete();
|
|
33381
|
-
}
|
|
33382
|
-
scrollToHiddenItem(_newItem) { }
|
|
33383
|
-
handleEnter() {
|
|
33384
|
-
if (this.isAddItemFocused()) {
|
|
33385
|
-
this.combo.addItemToCollection();
|
|
33386
|
-
}
|
|
33387
|
-
else {
|
|
33388
|
-
this.close();
|
|
33389
|
-
}
|
|
33390
|
-
}
|
|
33391
|
-
handleSpace() {
|
|
33392
|
-
if (this.isAddItemFocused()) {
|
|
33393
|
-
return;
|
|
33394
|
-
}
|
|
33395
|
-
else {
|
|
33396
|
-
this.selectItem(this.focusedItem);
|
|
33397
|
-
}
|
|
33398
|
-
}
|
|
33399
|
-
isAddItemFocused() {
|
|
33400
|
-
return this.focusedItem instanceof IgxComboAddItemComponent;
|
|
33401
|
-
}
|
|
33402
|
-
focusAddItemButton() {
|
|
33403
|
-
if (this.combo.isAddButtonVisible()) {
|
|
33404
|
-
this.focusedItem = this.items[this.items.length - 1];
|
|
33405
|
-
}
|
|
33406
|
-
}
|
|
33407
|
-
}
|
|
33408
|
-
IgxComboDropDownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboDropDownComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: IgxSelectionAPIService }, { token: IGX_COMBO_COMPONENT }, { token: IgxComboAPIService }, { token: DisplayDensityToken, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
33409
|
-
IgxComboDropDownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboDropDownComponent, selector: "igx-combo-drop-down", providers: [{ provide: IGX_DROPDOWN_BASE, useExisting: IgxComboDropDownComponent }], queries: [{ propertyName: "children", predicate: IgxComboItemComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"igx-drop-down__list\" [style.width]=\"width\"\nigxToggle\n(appended)=\"onToggleContentAppended($event)\"\n(opening)=\"onToggleOpening($event)\" (opened)=\"onToggleOpened()\"\n(closing)=\"onToggleClosing($event)\" (closed)=\"onToggleClosed()\">\n <div class=\"igx-drop-down__list-scroll\" #scrollContainer [attr.id]=\"this.listId\" role=\"listbox\" [attr.aria-label]=\"this.listId\"\n [style.height]=\"height\"\n [style.maxHeight]=\"maxHeight\">\n <ng-container *ngIf=\"!collapsed\">\n <ng-content></ng-content>\n </ng-container>\n </div>\n</div>\n", directives: [{ type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
33410
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboDropDownComponent, decorators: [{
|
|
33411
|
-
type: Component,
|
|
33412
|
-
args: [{ selector: 'igx-combo-drop-down', providers: [{ provide: IGX_DROPDOWN_BASE, useExisting: IgxComboDropDownComponent }], template: "<div class=\"igx-drop-down__list\" [style.width]=\"width\"\nigxToggle\n(appended)=\"onToggleContentAppended($event)\"\n(opening)=\"onToggleOpening($event)\" (opened)=\"onToggleOpened()\"\n(closing)=\"onToggleClosing($event)\" (closed)=\"onToggleClosed()\">\n <div class=\"igx-drop-down__list-scroll\" #scrollContainer [attr.id]=\"this.listId\" role=\"listbox\" [attr.aria-label]=\"this.listId\"\n [style.height]=\"height\"\n [style.maxHeight]=\"maxHeight\">\n <ng-container *ngIf=\"!collapsed\">\n <ng-content></ng-content>\n </ng-container>\n </div>\n</div>\n" }]
|
|
33413
|
-
}], ctorParameters: function () {
|
|
33414
|
-
return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: IgxSelectionAPIService }, { type: undefined, decorators: [{
|
|
33415
|
-
type: Inject,
|
|
33416
|
-
args: [IGX_COMBO_COMPONENT]
|
|
33417
|
-
}] }, { type: IgxComboAPIService }, { type: undefined, decorators: [{
|
|
33418
|
-
type: Optional
|
|
33419
|
-
}, {
|
|
33420
|
-
type: Inject,
|
|
33421
|
-
args: [DisplayDensityToken]
|
|
33422
|
-
}] }];
|
|
33423
|
-
}, propDecorators: { children: [{
|
|
33424
|
-
type: ContentChildren,
|
|
33425
|
-
args: [IgxComboItemComponent, { descendants: true }]
|
|
33426
|
-
}] } });
|
|
33427
|
-
|
|
33428
|
-
/**
|
|
33429
|
-
* @hidden
|
|
33430
|
-
*/
|
|
33431
|
-
class IgxComboFilteringPipe {
|
|
33432
|
-
transform(collection, searchValue, displayKey, shouldFilter, filteringOptions) {
|
|
33433
|
-
if (!collection) {
|
|
33434
|
-
return [];
|
|
33435
|
-
}
|
|
33436
|
-
if (!searchValue || !shouldFilter) {
|
|
33437
|
-
return collection;
|
|
33438
|
-
}
|
|
33439
|
-
else {
|
|
33440
|
-
const searchTerm = filteringOptions.caseSensitive ? searchValue.trim() : searchValue.toLowerCase().trim();
|
|
33441
|
-
if (displayKey != null) {
|
|
33442
|
-
return collection.filter(e => filteringOptions.caseSensitive ? e[displayKey].includes(searchTerm) :
|
|
33443
|
-
e[displayKey].toString().toLowerCase().includes(searchTerm));
|
|
33444
|
-
}
|
|
33445
|
-
else {
|
|
33446
|
-
return collection.filter(e => filteringOptions.caseSensitive ? e.includes(searchTerm) :
|
|
33447
|
-
e.toLowerCase().includes(searchTerm));
|
|
33448
|
-
}
|
|
33449
|
-
}
|
|
33450
|
-
}
|
|
33451
|
-
}
|
|
33452
|
-
IgxComboFilteringPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboFilteringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
33453
|
-
IgxComboFilteringPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboFilteringPipe, name: "comboFiltering" });
|
|
33454
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboFilteringPipe, decorators: [{
|
|
33455
|
-
type: Pipe,
|
|
33456
|
-
args: [{
|
|
33457
|
-
name: 'comboFiltering'
|
|
33458
|
-
}]
|
|
33459
|
-
}] });
|
|
33460
|
-
/**
|
|
33461
|
-
* @hidden
|
|
33462
|
-
*/
|
|
33463
|
-
class IgxComboGroupingPipe {
|
|
33464
|
-
constructor(combo) {
|
|
33465
|
-
this.combo = combo;
|
|
33466
|
-
}
|
|
33467
|
-
transform(collection, groupKey, valueKey, sortingDirection) {
|
|
33468
|
-
this.combo.filteredData = collection;
|
|
33469
|
-
if ((!groupKey && groupKey !== 0) || !collection.length) {
|
|
33470
|
-
return collection;
|
|
33471
|
-
}
|
|
33472
|
-
const sorted = DataUtil.sort(cloneArray(collection), [{
|
|
33473
|
-
fieldName: groupKey,
|
|
33474
|
-
dir: sortingDirection,
|
|
33475
|
-
ignoreCase: true,
|
|
33476
|
-
strategy: DefaultSortingStrategy.instance()
|
|
33477
|
-
}]);
|
|
33478
|
-
const data = cloneArray(sorted);
|
|
33479
|
-
let inserts = 0;
|
|
33480
|
-
let currentHeader = null;
|
|
33481
|
-
for (let i = 0; i < sorted.length; i++) {
|
|
33482
|
-
let insertFlag = 0;
|
|
33483
|
-
if (currentHeader !== sorted[i][groupKey]) {
|
|
33484
|
-
currentHeader = sorted[i][groupKey];
|
|
33485
|
-
insertFlag = 1;
|
|
33486
|
-
}
|
|
33487
|
-
if (insertFlag) {
|
|
33488
|
-
data.splice(i + inserts, 0, {
|
|
33489
|
-
[valueKey]: currentHeader,
|
|
33490
|
-
[groupKey]: currentHeader,
|
|
33491
|
-
isHeader: true
|
|
33492
|
-
});
|
|
33493
|
-
inserts++;
|
|
33494
|
-
}
|
|
33495
|
-
}
|
|
33496
|
-
return data;
|
|
33497
|
-
}
|
|
33498
|
-
}
|
|
33499
|
-
IgxComboGroupingPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboGroupingPipe, deps: [{ token: IGX_COMBO_COMPONENT }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
33500
|
-
IgxComboGroupingPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboGroupingPipe, name: "comboGrouping" });
|
|
33501
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboGroupingPipe, decorators: [{
|
|
33502
|
-
type: Pipe,
|
|
33503
|
-
args: [{
|
|
33504
|
-
name: 'comboGrouping'
|
|
33505
|
-
}]
|
|
33506
|
-
}], ctorParameters: function () {
|
|
33507
|
-
return [{ type: undefined, decorators: [{
|
|
33508
|
-
type: Inject,
|
|
33509
|
-
args: [IGX_COMBO_COMPONENT]
|
|
33510
|
-
}] }];
|
|
33511
|
-
} });
|
|
33512
|
-
|
|
33200
|
+
let NEXT_ID$d = 0;
|
|
33513
33201
|
/**
|
|
33514
33202
|
* @hidden
|
|
33203
|
+
* The default number of items that should be in the combo's
|
|
33204
|
+
* drop-down list if no `[itemsMaxHeight]` is specified
|
|
33515
33205
|
*/
|
|
33206
|
+
const itemsInContainer = 10; // TODO: make private readonly
|
|
33207
|
+
/** @hidden @internal */
|
|
33208
|
+
const ItemHeights = {
|
|
33209
|
+
comfortable: 40,
|
|
33210
|
+
cosy: 32,
|
|
33211
|
+
compact: 28,
|
|
33212
|
+
};
|
|
33213
|
+
/** @hidden @internal */
|
|
33516
33214
|
var DataTypes;
|
|
33517
33215
|
(function (DataTypes) {
|
|
33518
33216
|
DataTypes["EMPTY"] = "empty";
|
|
@@ -33520,20 +33218,6 @@ var DataTypes;
|
|
|
33520
33218
|
DataTypes["COMPLEX"] = "complex";
|
|
33521
33219
|
DataTypes["PRIMARYKEY"] = "valueKey";
|
|
33522
33220
|
})(DataTypes || (DataTypes = {}));
|
|
33523
|
-
/**
|
|
33524
|
-
* @hidden
|
|
33525
|
-
*/
|
|
33526
|
-
const ItemHeights = {
|
|
33527
|
-
comfortable: 40,
|
|
33528
|
-
cosy: 32,
|
|
33529
|
-
compact: 28,
|
|
33530
|
-
};
|
|
33531
|
-
/**
|
|
33532
|
-
* @hidden
|
|
33533
|
-
* The default number of items that should be in the combo's
|
|
33534
|
-
* drop-down list if no `[itemsMaxHeight]` is specified
|
|
33535
|
-
*/
|
|
33536
|
-
const itemsInContainer = 10;
|
|
33537
33221
|
var IgxComboState;
|
|
33538
33222
|
(function (IgxComboState) {
|
|
33539
33223
|
/**
|
|
@@ -33549,46 +33233,12 @@ var IgxComboState;
|
|
|
33549
33233
|
*/
|
|
33550
33234
|
IgxComboState[IgxComboState["INVALID"] = 2] = "INVALID";
|
|
33551
33235
|
})(IgxComboState || (IgxComboState = {}));
|
|
33552
|
-
|
|
33553
|
-
|
|
33554
|
-
*
|
|
33555
|
-
* @hidden
|
|
33556
|
-
*/
|
|
33557
|
-
const diffInSets = (set1, set2) => {
|
|
33558
|
-
const results = [];
|
|
33559
|
-
set1.forEach(entry => {
|
|
33560
|
-
if (!set2.has(entry)) {
|
|
33561
|
-
results.push(entry);
|
|
33562
|
-
}
|
|
33563
|
-
});
|
|
33564
|
-
return results;
|
|
33565
|
-
};
|
|
33566
|
-
let NEXT_ID$d = 0;
|
|
33567
|
-
/**
|
|
33568
|
-
* Represents a drop-down list that provides editable functionalities, allowing users to choose an option from a predefined list.
|
|
33569
|
-
*
|
|
33570
|
-
* @igxModule IgxComboModule
|
|
33571
|
-
* @igxTheme igx-combo-theme
|
|
33572
|
-
* @igxKeywords combobox, combo selection
|
|
33573
|
-
* @igxGroup Grids & Lists
|
|
33574
|
-
*
|
|
33575
|
-
* @remarks
|
|
33576
|
-
* It provides the ability to filter items as well as perform single or multiple seleciton with the provided data.
|
|
33577
|
-
* Additionally, it exposes keyboard navigation and custom styling capabilities.
|
|
33578
|
-
* @example
|
|
33579
|
-
* ```html
|
|
33580
|
-
* <igx-combo [itemsMaxHeight]="250" [data]="locationData"
|
|
33581
|
-
* [displayKey]="'field'" [valueKey]="'field'"
|
|
33582
|
-
* placeholder="Location(s)" searchPlaceholder="Search...">
|
|
33583
|
-
* </igx-combo>
|
|
33584
|
-
* ```
|
|
33585
|
-
*/
|
|
33586
|
-
class IgxComboComponent extends DisplayDensityBase {
|
|
33587
|
-
constructor(elementRef, cdr, selection, comboAPI, _iconService, _displayDensityOptions, _inputGroupType, _injector) {
|
|
33236
|
+
class IgxComboBaseDirective extends DisplayDensityBase {
|
|
33237
|
+
constructor(elementRef, cdr, selectionService, comboAPI, _iconService, _displayDensityOptions, _inputGroupType, _injector) {
|
|
33588
33238
|
super(_displayDensityOptions);
|
|
33589
33239
|
this.elementRef = elementRef;
|
|
33590
33240
|
this.cdr = cdr;
|
|
33591
|
-
this.
|
|
33241
|
+
this.selectionService = selectionService;
|
|
33592
33242
|
this.comboAPI = comboAPI;
|
|
33593
33243
|
this._iconService = _iconService;
|
|
33594
33244
|
this._displayDensityOptions = _displayDensityOptions;
|
|
@@ -33612,9 +33262,123 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
33612
33262
|
*/
|
|
33613
33263
|
this.overlaySettings = null;
|
|
33614
33264
|
/**
|
|
33615
|
-
*
|
|
33265
|
+
* Gets/gets combo id.
|
|
33266
|
+
*
|
|
33267
|
+
* ```typescript
|
|
33268
|
+
* // get
|
|
33269
|
+
* let id = this.combo.id;
|
|
33270
|
+
* ```
|
|
33271
|
+
*
|
|
33272
|
+
* ```html
|
|
33273
|
+
* <!--set-->
|
|
33274
|
+
* <igx-combo [id]='combo1'></igx-combo>
|
|
33275
|
+
* ```
|
|
33616
33276
|
*/
|
|
33617
|
-
this.
|
|
33277
|
+
this.id = `igx-combo-${NEXT_ID$d++}`;
|
|
33278
|
+
/**
|
|
33279
|
+
* Controls whether custom values can be added to the collection
|
|
33280
|
+
*
|
|
33281
|
+
* ```typescript
|
|
33282
|
+
* // get
|
|
33283
|
+
* let comboAllowsCustomValues = this.combo.allowCustomValues;
|
|
33284
|
+
* ```
|
|
33285
|
+
*
|
|
33286
|
+
* ```html
|
|
33287
|
+
* <!--set-->
|
|
33288
|
+
* <igx-combo [allowCustomValues]='true'></igx-combo>
|
|
33289
|
+
* ```
|
|
33290
|
+
*/
|
|
33291
|
+
this.allowCustomValues = false;
|
|
33292
|
+
/**
|
|
33293
|
+
* Determines which column in the data source is used to determine the value.
|
|
33294
|
+
*
|
|
33295
|
+
* ```typescript
|
|
33296
|
+
* // get
|
|
33297
|
+
* let myComboValueKey = this.combo.valueKey;
|
|
33298
|
+
* ```
|
|
33299
|
+
*
|
|
33300
|
+
* ```html
|
|
33301
|
+
* <!--set-->
|
|
33302
|
+
* <igx-combo [valueKey]='myKey'></igx-combo>
|
|
33303
|
+
* ```
|
|
33304
|
+
*/
|
|
33305
|
+
this.valueKey = null;
|
|
33306
|
+
/** @hidden @internal */
|
|
33307
|
+
this.cssClass = 'igx-combo'; // Independent of display density for the time being
|
|
33308
|
+
/** @hidden @internal */
|
|
33309
|
+
this.role = 'combobox';
|
|
33310
|
+
/**
|
|
33311
|
+
* An @Input property that enabled/disables combo. The default is `false`.
|
|
33312
|
+
* ```html
|
|
33313
|
+
* <igx-combo [disabled]="'true'">
|
|
33314
|
+
* ```
|
|
33315
|
+
*/
|
|
33316
|
+
this.disabled = false;
|
|
33317
|
+
/**
|
|
33318
|
+
* Emitted when item selection is changing, before the selection completes
|
|
33319
|
+
*
|
|
33320
|
+
* ```html
|
|
33321
|
+
* <igx-combo (selectionChanging)='handleSelection()'></igx-combo>
|
|
33322
|
+
* ```
|
|
33323
|
+
*/
|
|
33324
|
+
// TODO: any for old/new selection?
|
|
33325
|
+
this.selectionChanging = new EventEmitter();
|
|
33326
|
+
/**
|
|
33327
|
+
* Emitted before the dropdown is opened
|
|
33328
|
+
*
|
|
33329
|
+
* ```html
|
|
33330
|
+
* <igx-combo opening='handleOpening($event)'></igx-combo>
|
|
33331
|
+
* ```
|
|
33332
|
+
*/
|
|
33333
|
+
this.opening = new EventEmitter();
|
|
33334
|
+
/**
|
|
33335
|
+
* Emitted after the dropdown is opened
|
|
33336
|
+
*
|
|
33337
|
+
* ```html
|
|
33338
|
+
* <igx-combo (opened)='handleOpened($event)'></igx-combo>
|
|
33339
|
+
* ```
|
|
33340
|
+
*/
|
|
33341
|
+
this.opened = new EventEmitter();
|
|
33342
|
+
/**
|
|
33343
|
+
* Emitted before the dropdown is closed
|
|
33344
|
+
*
|
|
33345
|
+
* ```html
|
|
33346
|
+
* <igx-combo (closing)='handleClosing($event)'></igx-combo>
|
|
33347
|
+
* ```
|
|
33348
|
+
*/
|
|
33349
|
+
this.closing = new EventEmitter();
|
|
33350
|
+
/**
|
|
33351
|
+
* Emitted after the dropdown is closed
|
|
33352
|
+
*
|
|
33353
|
+
* ```html
|
|
33354
|
+
* <igx-combo (closed)='handleClosed($event)'></igx-combo>
|
|
33355
|
+
* ```
|
|
33356
|
+
*/
|
|
33357
|
+
this.closed = new EventEmitter();
|
|
33358
|
+
/**
|
|
33359
|
+
* Emitted when an item is being added to the data collection
|
|
33360
|
+
*
|
|
33361
|
+
* ```html
|
|
33362
|
+
* <igx-combo (addition)='handleAdditionEvent($event)'></igx-combo>
|
|
33363
|
+
* ```
|
|
33364
|
+
*/
|
|
33365
|
+
this.addition = new EventEmitter();
|
|
33366
|
+
/**
|
|
33367
|
+
* Emitted when the value of the search input changes (e.g. typing, pasting, clear, etc.)
|
|
33368
|
+
*
|
|
33369
|
+
* ```html
|
|
33370
|
+
* <igx-combo (searchInputUpdate)='handleSearchInputEvent($event)'></igx-combo>
|
|
33371
|
+
* ```
|
|
33372
|
+
*/
|
|
33373
|
+
this.searchInputUpdate = new EventEmitter();
|
|
33374
|
+
/**
|
|
33375
|
+
* Emitted when new chunk of data is loaded from the virtualization
|
|
33376
|
+
*
|
|
33377
|
+
* ```html
|
|
33378
|
+
* <igx-combo (dataPreLoad)='handleDataPreloadEvent($event)'></igx-combo>
|
|
33379
|
+
* ```
|
|
33380
|
+
*/
|
|
33381
|
+
this.dataPreLoad = new EventEmitter();
|
|
33618
33382
|
/**
|
|
33619
33383
|
* The custom template, if any, that should be used when rendering ITEMS in the combo list
|
|
33620
33384
|
*
|
|
@@ -33778,207 +33542,34 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
33778
33542
|
* ```
|
|
33779
33543
|
*/
|
|
33780
33544
|
this.clearIconTemplate = null;
|
|
33781
|
-
/**
|
|
33782
|
-
|
|
33783
|
-
*
|
|
33784
|
-
* ```html
|
|
33785
|
-
* <igx-combo (selectionChanging)='handleSelection()'></igx-combo>
|
|
33786
|
-
* ```
|
|
33787
|
-
*/
|
|
33788
|
-
this.selectionChanging = new EventEmitter();
|
|
33789
|
-
/**
|
|
33790
|
-
* Emitted before the dropdown is opened
|
|
33791
|
-
*
|
|
33792
|
-
* ```html
|
|
33793
|
-
* <igx-combo opening='handleOpening($event)'></igx-combo>
|
|
33794
|
-
* ```
|
|
33795
|
-
*/
|
|
33796
|
-
this.opening = new EventEmitter();
|
|
33797
|
-
/**
|
|
33798
|
-
* Emitted after the dropdown is opened
|
|
33799
|
-
*
|
|
33800
|
-
* ```html
|
|
33801
|
-
* <igx-combo (opened)='handleOpened($event)'></igx-combo>
|
|
33802
|
-
* ```
|
|
33803
|
-
*/
|
|
33804
|
-
this.opened = new EventEmitter();
|
|
33805
|
-
/**
|
|
33806
|
-
* Emitted before the dropdown is closed
|
|
33807
|
-
*
|
|
33808
|
-
* ```html
|
|
33809
|
-
* <igx-combo (closing)='handleClosing($event)'></igx-combo>
|
|
33810
|
-
* ```
|
|
33811
|
-
*/
|
|
33812
|
-
this.closing = new EventEmitter();
|
|
33813
|
-
/**
|
|
33814
|
-
* Emitted after the dropdown is closed
|
|
33815
|
-
*
|
|
33816
|
-
* ```html
|
|
33817
|
-
* <igx-combo (closed)='handleClosed($event)'></igx-combo>
|
|
33818
|
-
* ```
|
|
33819
|
-
*/
|
|
33820
|
-
this.closed = new EventEmitter();
|
|
33821
|
-
/**
|
|
33822
|
-
* Emitted when an item is being added to the data collection
|
|
33823
|
-
*
|
|
33824
|
-
* ```html
|
|
33825
|
-
* <igx-combo (addition)='handleAdditionEvent($event)'></igx-combo>
|
|
33826
|
-
* ```
|
|
33827
|
-
*/
|
|
33828
|
-
this.addition = new EventEmitter();
|
|
33829
|
-
/**
|
|
33830
|
-
* Emitted when the value of the search input changes (e.g. typing, pasting, clear, etc.)
|
|
33831
|
-
*
|
|
33832
|
-
* ```html
|
|
33833
|
-
* <igx-combo (searchInputUpdate)='handleSearchInputEvent($event)'></igx-combo>
|
|
33834
|
-
* ```
|
|
33835
|
-
*/
|
|
33836
|
-
this.searchInputUpdate = new EventEmitter();
|
|
33837
|
-
/**
|
|
33838
|
-
* Emitted when new chunk of data is loaded from the virtualization
|
|
33839
|
-
*
|
|
33840
|
-
* ```html
|
|
33841
|
-
* <igx-combo (dataPreLoad)='handleDataPreloadEvent($event)'></igx-combo>
|
|
33842
|
-
* ```
|
|
33843
|
-
*/
|
|
33844
|
-
this.dataPreLoad = new EventEmitter();
|
|
33845
|
-
/**
|
|
33846
|
-
* Gets/gets combo id.
|
|
33847
|
-
*
|
|
33848
|
-
* ```typescript
|
|
33849
|
-
* // get
|
|
33850
|
-
* let id = this.combo.id;
|
|
33851
|
-
* ```
|
|
33852
|
-
*
|
|
33853
|
-
* ```html
|
|
33854
|
-
* <!--set-->
|
|
33855
|
-
* <igx-combo [id]='combo1'></igx-combo>
|
|
33856
|
-
* ```
|
|
33857
|
-
*/
|
|
33858
|
-
this.id = `igx-combo-${NEXT_ID$d++}`;
|
|
33859
|
-
/**
|
|
33860
|
-
* @hidden @internal
|
|
33861
|
-
*/
|
|
33862
|
-
this.cssClass = 'igx-combo'; // Independent of display density, at the time being
|
|
33863
|
-
/**
|
|
33864
|
-
* @hidden @internal
|
|
33865
|
-
*/
|
|
33866
|
-
this.role = 'combobox';
|
|
33867
|
-
/**
|
|
33868
|
-
* Controls whether custom values can be added to the collection
|
|
33869
|
-
*
|
|
33870
|
-
* ```typescript
|
|
33871
|
-
* // get
|
|
33872
|
-
* let comboAllowsCustomValues = this.combo.allowCustomValues;
|
|
33873
|
-
* ```
|
|
33874
|
-
*
|
|
33875
|
-
* ```html
|
|
33876
|
-
* <!--set-->
|
|
33877
|
-
* <igx-combo [allowCustomValues]='true'></igx-combo>
|
|
33878
|
-
* ```
|
|
33879
|
-
*/
|
|
33880
|
-
this.allowCustomValues = false;
|
|
33881
|
-
/**
|
|
33882
|
-
* Defines the placeholder value for the combo dropdown search field
|
|
33883
|
-
*
|
|
33884
|
-
* ```typescript
|
|
33885
|
-
* // get
|
|
33886
|
-
* let myComboSearchPlaceholder = this.combo.searchPlaceholder;
|
|
33887
|
-
* ```
|
|
33888
|
-
*
|
|
33889
|
-
* ```html
|
|
33890
|
-
* <!--set-->
|
|
33891
|
-
* <igx-combo [searchPlaceholder]='newPlaceHolder'></igx-combo>
|
|
33892
|
-
* ```
|
|
33893
|
-
*/
|
|
33894
|
-
this.searchPlaceholder = 'Enter a Search Term';
|
|
33895
|
-
/**
|
|
33896
|
-
* Defines whether the caseSensitive icon should be shown in the search input
|
|
33897
|
-
*
|
|
33898
|
-
* ```typescript
|
|
33899
|
-
* // get
|
|
33900
|
-
* let myComboShowSearchCaseIcon = this.combo.showSearchCaseIcon;
|
|
33901
|
-
* ```
|
|
33902
|
-
*
|
|
33903
|
-
* ```html
|
|
33904
|
-
* <!--set-->
|
|
33905
|
-
* <igx-combo [showSearchCaseIcon]='true'></igx-combo>
|
|
33906
|
-
* ```
|
|
33907
|
-
*/
|
|
33908
|
-
this.showSearchCaseIcon = false;
|
|
33909
|
-
/**
|
|
33910
|
-
* Combo value data source property.
|
|
33911
|
-
*
|
|
33912
|
-
* ```typescript
|
|
33913
|
-
* // get
|
|
33914
|
-
* let myComboValueKey = this.combo.valueKey;
|
|
33915
|
-
* ```
|
|
33916
|
-
*
|
|
33917
|
-
* ```html
|
|
33918
|
-
* <!--set-->
|
|
33919
|
-
* <igx-combo [valueKey]='myKey'></igx-combo>
|
|
33920
|
-
* ```
|
|
33921
|
-
*/
|
|
33922
|
-
this.valueKey = null;
|
|
33923
|
-
/**
|
|
33924
|
-
* An @Input property that enabled/disables filtering in the list. The default is `true`.
|
|
33925
|
-
* ```html
|
|
33926
|
-
* <igx-combo [filterable]="false">
|
|
33927
|
-
* ```
|
|
33928
|
-
*/
|
|
33929
|
-
this.filterable = true;
|
|
33930
|
-
/**
|
|
33931
|
-
* An @Input property that enabled/disables combo. The default is `false`.
|
|
33932
|
-
* ```html
|
|
33933
|
-
* <igx-combo [disabled]="'true'">
|
|
33934
|
-
* ```
|
|
33935
|
-
*/
|
|
33936
|
-
this.disabled = false;
|
|
33937
|
-
/**
|
|
33938
|
-
* An @Input property that controls whether the combo's search box
|
|
33939
|
-
* should be focused after the `opened` event is called
|
|
33940
|
-
* When `false`, the combo's list item container will be focused instead
|
|
33941
|
-
*/
|
|
33942
|
-
this.autoFocusSearch = true;
|
|
33545
|
+
/** @hidden @internal */
|
|
33546
|
+
this.searchInput = null;
|
|
33943
33547
|
this.dropdownContainer = null;
|
|
33944
|
-
/**
|
|
33945
|
-
* @hidden @internal
|
|
33946
|
-
*/
|
|
33548
|
+
/** @hidden @internal */
|
|
33947
33549
|
this.customValueFlag = true;
|
|
33948
|
-
/**
|
|
33949
|
-
|
|
33950
|
-
|
|
33550
|
+
/** @hidden @internal */
|
|
33551
|
+
this.filterValue = '';
|
|
33552
|
+
/** @hidden @internal */
|
|
33951
33553
|
this.defaultFallbackGroup = 'Other';
|
|
33952
|
-
/**
|
|
33953
|
-
* @hidden @internal
|
|
33954
|
-
*/
|
|
33554
|
+
/** @hidden @internal */
|
|
33955
33555
|
this.filteringOptions = {
|
|
33956
33556
|
caseSensitive: false
|
|
33957
33557
|
};
|
|
33958
|
-
|
|
33959
|
-
|
|
33960
|
-
*/
|
|
33961
|
-
this.filteringLogic = FilteringLogic.Or;
|
|
33962
|
-
/** @hidden @internal */
|
|
33963
|
-
this.filterValue = '';
|
|
33964
|
-
this.stringFilters = IgxStringFilteringOperand;
|
|
33965
|
-
this.booleanFilters = IgxBooleanFilteringOperand;
|
|
33558
|
+
this._data = [];
|
|
33559
|
+
this._value = '';
|
|
33966
33560
|
this._groupKey = '';
|
|
33967
|
-
this.
|
|
33968
|
-
this.
|
|
33969
|
-
this.
|
|
33970
|
-
this._type = null;
|
|
33561
|
+
this._filteredData = [];
|
|
33562
|
+
this._remoteSelection = {};
|
|
33563
|
+
this._valid = IgxComboState.INITIAL;
|
|
33971
33564
|
this.ngControl = null;
|
|
33972
33565
|
this.destroy$ = new Subject();
|
|
33973
|
-
this.
|
|
33974
|
-
this.
|
|
33566
|
+
this._onTouchedCallback = noop;
|
|
33567
|
+
this._onChangeCallback = noop;
|
|
33568
|
+
this._type = null;
|
|
33569
|
+
this._dataType = '';
|
|
33570
|
+
this._searchValue = '';
|
|
33975
33571
|
this._itemHeight = null;
|
|
33976
33572
|
this._itemsMaxHeight = null;
|
|
33977
|
-
this._remoteSelection = {};
|
|
33978
|
-
this._onChangeCallback = noop;
|
|
33979
|
-
this._onTouchedCallback = noop;
|
|
33980
|
-
this._value = '';
|
|
33981
|
-
this._valid = IgxComboState.INITIAL;
|
|
33982
33573
|
this._groupSortingDirection = SortingDirection.Asc;
|
|
33983
33574
|
this.onStatusChanged = () => {
|
|
33984
33575
|
if ((this.ngControl.control.touched || this.ngControl.control.dirty) &&
|
|
@@ -33996,31 +33587,10 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
33996
33587
|
}
|
|
33997
33588
|
this.manageRequiredAsterisk();
|
|
33998
33589
|
};
|
|
33999
|
-
this.
|
|
34000
|
-
|
|
34001
|
-
|
|
34002
|
-
|
|
34003
|
-
*/
|
|
34004
|
-
get displaySearchInput() {
|
|
34005
|
-
return this.filterable || this.allowCustomValues;
|
|
34006
|
-
}
|
|
34007
|
-
/**
|
|
34008
|
-
* @hidden @internal
|
|
34009
|
-
*/
|
|
34010
|
-
get ariaExpanded() {
|
|
34011
|
-
return !this.dropdown.collapsed;
|
|
34012
|
-
}
|
|
34013
|
-
/**
|
|
34014
|
-
* @hidden @internal
|
|
34015
|
-
*/
|
|
34016
|
-
get hasPopUp() {
|
|
34017
|
-
return 'listbox';
|
|
34018
|
-
}
|
|
34019
|
-
/**
|
|
34020
|
-
* @hidden @internal
|
|
34021
|
-
*/
|
|
34022
|
-
get ariaOwns() {
|
|
34023
|
-
return this.dropdown.id;
|
|
33590
|
+
this.findMatch = (element) => {
|
|
33591
|
+
const value = this.displayKey ? element[this.displayKey] : element;
|
|
33592
|
+
return value.toString().toLowerCase() === this.searchValue.trim().toLowerCase();
|
|
33593
|
+
};
|
|
34024
33594
|
}
|
|
34025
33595
|
/**
|
|
34026
33596
|
* Configures the drop down list height
|
|
@@ -34066,12 +33636,6 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34066
33636
|
set itemHeight(val) {
|
|
34067
33637
|
this._itemHeight = val;
|
|
34068
33638
|
}
|
|
34069
|
-
/**
|
|
34070
|
-
* @hidden @internal
|
|
34071
|
-
*/
|
|
34072
|
-
get inputEmpty() {
|
|
34073
|
-
return !this.value && !this.placeholder;
|
|
34074
|
-
}
|
|
34075
33639
|
/**
|
|
34076
33640
|
* Combo data source.
|
|
34077
33641
|
*
|
|
@@ -34090,7 +33654,7 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34090
33654
|
this._displayKey = val;
|
|
34091
33655
|
}
|
|
34092
33656
|
/**
|
|
34093
|
-
*
|
|
33657
|
+
* Determines which column in the data source is used to determine the display value.
|
|
34094
33658
|
*
|
|
34095
33659
|
* ```typescript
|
|
34096
33660
|
* // get
|
|
@@ -34148,6 +33712,18 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34148
33712
|
set groupSortingDirection(val) {
|
|
34149
33713
|
this._groupSortingDirection = val;
|
|
34150
33714
|
}
|
|
33715
|
+
/** @hidden @internal */
|
|
33716
|
+
get ariaExpanded() {
|
|
33717
|
+
return !this.dropdown.collapsed;
|
|
33718
|
+
}
|
|
33719
|
+
/** @hidden @internal */
|
|
33720
|
+
get hasPopUp() {
|
|
33721
|
+
return 'listbox';
|
|
33722
|
+
}
|
|
33723
|
+
/** @hidden @internal */
|
|
33724
|
+
get ariaOwns() {
|
|
33725
|
+
return this.dropdown.id;
|
|
33726
|
+
}
|
|
34151
33727
|
/**
|
|
34152
33728
|
* An @Input property that sets how the combo will be styled.
|
|
34153
33729
|
* The allowed values are `line`, `box`, `border` and `search`. The default is `box`.
|
|
@@ -34161,6 +33737,27 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34161
33737
|
set type(val) {
|
|
34162
33738
|
this._type = val;
|
|
34163
33739
|
}
|
|
33740
|
+
/** @hidden @internal */
|
|
33741
|
+
get searchValue() {
|
|
33742
|
+
return this._searchValue;
|
|
33743
|
+
}
|
|
33744
|
+
set searchValue(val) {
|
|
33745
|
+
this.filterValue = val;
|
|
33746
|
+
this._searchValue = val;
|
|
33747
|
+
}
|
|
33748
|
+
/** @hidden @internal */
|
|
33749
|
+
get isRemote() {
|
|
33750
|
+
return this.totalItemCount > 0 &&
|
|
33751
|
+
this.valueKey &&
|
|
33752
|
+
this.dataType === DataTypes.COMPLEX;
|
|
33753
|
+
}
|
|
33754
|
+
/** @hidden @internal */
|
|
33755
|
+
get dataType() {
|
|
33756
|
+
if (this.displayKey) {
|
|
33757
|
+
return DataTypes.COMPLEX;
|
|
33758
|
+
}
|
|
33759
|
+
return DataTypes.PRIMITIVE;
|
|
33760
|
+
}
|
|
34164
33761
|
/**
|
|
34165
33762
|
* Gets if control is valid, when used in a form
|
|
34166
33763
|
*
|
|
@@ -34185,32 +33782,15 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34185
33782
|
this.comboInput.valid = IgxInputState[IgxComboState[valid]];
|
|
34186
33783
|
}
|
|
34187
33784
|
/**
|
|
34188
|
-
*
|
|
34189
|
-
|
|
34190
|
-
|
|
34191
|
-
|
|
34192
|
-
|
|
34193
|
-
|
|
34194
|
-
this.filterValue = val;
|
|
34195
|
-
this._searchValue = val;
|
|
34196
|
-
}
|
|
34197
|
-
/**
|
|
34198
|
-
* @hidden @internal
|
|
34199
|
-
*/
|
|
34200
|
-
onArrowDown(event) {
|
|
34201
|
-
event.preventDefault();
|
|
34202
|
-
event.stopPropagation();
|
|
34203
|
-
this.open();
|
|
34204
|
-
}
|
|
34205
|
-
/**
|
|
34206
|
-
* @hidden @internal
|
|
33785
|
+
* The text displayed in the combo input
|
|
33786
|
+
*
|
|
33787
|
+
* ```typescript
|
|
33788
|
+
* // get
|
|
33789
|
+
* let comboValue = this.combo.value;
|
|
33790
|
+
* ```
|
|
34207
33791
|
*/
|
|
34208
|
-
|
|
34209
|
-
|
|
34210
|
-
event.preventDefault();
|
|
34211
|
-
if (!this.disabled) {
|
|
34212
|
-
this.toggle();
|
|
34213
|
-
}
|
|
33792
|
+
get value() {
|
|
33793
|
+
return this._value;
|
|
34214
33794
|
}
|
|
34215
33795
|
/**
|
|
34216
33796
|
* Defines the current state of the virtualized data. It contains `startIndex` and `chunkSize`
|
|
@@ -34234,6 +33814,16 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34234
33814
|
set virtualizationState(state) {
|
|
34235
33815
|
this.virtDir.state = state;
|
|
34236
33816
|
}
|
|
33817
|
+
/**
|
|
33818
|
+
* Gets drop down state.
|
|
33819
|
+
*
|
|
33820
|
+
* ```typescript
|
|
33821
|
+
* let state = this.combo.collapsed;
|
|
33822
|
+
* ```
|
|
33823
|
+
*/
|
|
33824
|
+
get collapsed() {
|
|
33825
|
+
return this.dropdown.collapsed;
|
|
33826
|
+
}
|
|
34237
33827
|
/**
|
|
34238
33828
|
* Gets total count of the virtual data items, when using remote service.
|
|
34239
33829
|
*
|
|
@@ -34256,34 +33846,873 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34256
33846
|
set totalItemCount(count) {
|
|
34257
33847
|
this.virtDir.totalItemCount = count;
|
|
34258
33848
|
}
|
|
33849
|
+
/** @hidden @internal */
|
|
33850
|
+
get template() {
|
|
33851
|
+
this._dataType = this.dataType;
|
|
33852
|
+
if (this.itemTemplate) {
|
|
33853
|
+
return this.itemTemplate;
|
|
33854
|
+
}
|
|
33855
|
+
if (this._dataType === DataTypes.COMPLEX) {
|
|
33856
|
+
return this.complexTemplate;
|
|
33857
|
+
}
|
|
33858
|
+
return this.primitiveTemplate;
|
|
33859
|
+
}
|
|
33860
|
+
/** @hidden @internal */
|
|
33861
|
+
onArrowDown(event) {
|
|
33862
|
+
event.preventDefault();
|
|
33863
|
+
event.stopPropagation();
|
|
33864
|
+
this.open();
|
|
33865
|
+
}
|
|
33866
|
+
/** @hidden @internal */
|
|
33867
|
+
ngOnInit() {
|
|
33868
|
+
this.ngControl = this._injector.get(NgControl, null);
|
|
33869
|
+
const targetElement = this.elementRef.nativeElement;
|
|
33870
|
+
this._overlaySettings = {
|
|
33871
|
+
target: targetElement,
|
|
33872
|
+
scrollStrategy: new AbsoluteScrollStrategy(),
|
|
33873
|
+
positionStrategy: new AutoPositionStrategy(),
|
|
33874
|
+
modal: false,
|
|
33875
|
+
closeOnOutsideClick: true,
|
|
33876
|
+
excludeFromOutsideClick: [targetElement]
|
|
33877
|
+
};
|
|
33878
|
+
this.selectionService.set(this.id, new Set());
|
|
33879
|
+
this._iconService.addSvgIconFromText(caseSensitive.name, caseSensitive.value, 'imx-icons');
|
|
33880
|
+
}
|
|
33881
|
+
/** @hidden @internal */
|
|
33882
|
+
ngAfterViewInit() {
|
|
33883
|
+
this.filteredData = [...this.data];
|
|
33884
|
+
if (this.ngControl) {
|
|
33885
|
+
this.ngControl.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(this.onStatusChanged);
|
|
33886
|
+
this.manageRequiredAsterisk();
|
|
33887
|
+
this.cdr.detectChanges();
|
|
33888
|
+
}
|
|
33889
|
+
this.virtDir.chunkPreload.pipe(takeUntil(this.destroy$)).subscribe((e) => {
|
|
33890
|
+
const eventArgs = Object.assign({}, e, { owner: this });
|
|
33891
|
+
this.dataPreLoad.emit(eventArgs);
|
|
33892
|
+
});
|
|
33893
|
+
}
|
|
33894
|
+
/** @hidden @internal */
|
|
33895
|
+
ngOnDestroy() {
|
|
33896
|
+
this.destroy$.next();
|
|
33897
|
+
this.destroy$.complete();
|
|
33898
|
+
this.comboAPI.clear();
|
|
33899
|
+
this.selectionService.clear(this.id);
|
|
33900
|
+
}
|
|
34259
33901
|
/**
|
|
34260
|
-
*
|
|
33902
|
+
* A method that opens/closes the combo.
|
|
34261
33903
|
*
|
|
34262
|
-
* ```
|
|
34263
|
-
*
|
|
34264
|
-
*
|
|
33904
|
+
* ```html
|
|
33905
|
+
* <button (click)="combo.toggle()">Toggle Combo</button>
|
|
33906
|
+
* <igx-combo #combo></igx-combo>
|
|
34265
33907
|
* ```
|
|
34266
33908
|
*/
|
|
34267
|
-
|
|
34268
|
-
|
|
33909
|
+
toggle() {
|
|
33910
|
+
const overlaySettings = Object.assign({}, this._overlaySettings, this.overlaySettings);
|
|
33911
|
+
this.dropdown.toggle(overlaySettings);
|
|
34269
33912
|
}
|
|
34270
33913
|
/**
|
|
34271
|
-
*
|
|
33914
|
+
* A method that opens the combo.
|
|
33915
|
+
*
|
|
33916
|
+
* ```html
|
|
33917
|
+
* <button (click)="combo.open()">Open Combo</button>
|
|
33918
|
+
* <igx-combo #combo></igx-combo>
|
|
33919
|
+
* ```
|
|
34272
33920
|
*/
|
|
34273
|
-
|
|
34274
|
-
|
|
33921
|
+
open() {
|
|
33922
|
+
const overlaySettings = Object.assign({}, this._overlaySettings, this.overlaySettings);
|
|
33923
|
+
this.dropdown.open(overlaySettings);
|
|
34275
33924
|
}
|
|
34276
33925
|
/**
|
|
34277
|
-
*
|
|
33926
|
+
* A method that closes the combo.
|
|
33927
|
+
*
|
|
33928
|
+
* ```html
|
|
33929
|
+
* <button (click)="combo.close()">Close Combo</button>
|
|
33930
|
+
* <igx-combo #combo></igx-combo>
|
|
33931
|
+
* ```
|
|
34278
33932
|
*/
|
|
34279
|
-
|
|
34280
|
-
this.
|
|
33933
|
+
close() {
|
|
33934
|
+
this.dropdown.close();
|
|
33935
|
+
}
|
|
33936
|
+
/**
|
|
33937
|
+
* Triggers change detection on the combo view
|
|
33938
|
+
*/
|
|
33939
|
+
triggerCheck() {
|
|
33940
|
+
this.cdr.detectChanges();
|
|
33941
|
+
}
|
|
33942
|
+
/**
|
|
33943
|
+
* Get current selection state
|
|
33944
|
+
*
|
|
33945
|
+
* @returns Array of selected items
|
|
33946
|
+
* ```typescript
|
|
33947
|
+
* let selectedItems = this.combo.selectedItems();
|
|
33948
|
+
* ```
|
|
33949
|
+
*/
|
|
33950
|
+
get selection() {
|
|
33951
|
+
const items = Array.from(this.selectionService.get(this.id));
|
|
33952
|
+
return items;
|
|
33953
|
+
}
|
|
33954
|
+
/**
|
|
33955
|
+
* Returns if the specified itemID is selected
|
|
33956
|
+
*
|
|
33957
|
+
* @hidden
|
|
33958
|
+
* @internal
|
|
33959
|
+
*/
|
|
33960
|
+
isItemSelected(item) {
|
|
33961
|
+
return this.selectionService.is_item_selected(this.id, item);
|
|
33962
|
+
}
|
|
33963
|
+
/** @hidden @internal */
|
|
33964
|
+
addItemToCollection() {
|
|
33965
|
+
var _a;
|
|
33966
|
+
if (!this.searchValue) {
|
|
33967
|
+
return;
|
|
33968
|
+
}
|
|
33969
|
+
const newValue = this.searchValue.trim();
|
|
33970
|
+
const addedItem = this.displayKey ? {
|
|
33971
|
+
[this.valueKey]: newValue,
|
|
33972
|
+
[this.displayKey]: newValue
|
|
33973
|
+
} : newValue;
|
|
33974
|
+
if (this.groupKey) {
|
|
33975
|
+
Object.assign(addedItem, { [this.groupKey]: this.defaultFallbackGroup });
|
|
33976
|
+
}
|
|
33977
|
+
// expose shallow copy instead of this.data in event args so this.data can't be mutated
|
|
33978
|
+
const oldCollection = [...this.data];
|
|
33979
|
+
const newCollection = [...this.data, addedItem];
|
|
33980
|
+
const args = {
|
|
33981
|
+
oldCollection, addedItem, newCollection, owner: this, cancel: false
|
|
33982
|
+
};
|
|
33983
|
+
this.addition.emit(args);
|
|
33984
|
+
if (args.cancel) {
|
|
33985
|
+
return;
|
|
33986
|
+
}
|
|
33987
|
+
this.data.push(args.addedItem);
|
|
33988
|
+
// trigger re-render
|
|
33989
|
+
this.data = cloneArray(this.data);
|
|
33990
|
+
this.select(this.valueKey !== null && this.valueKey !== undefined ?
|
|
33991
|
+
[args.addedItem[this.valueKey]] : [args.addedItem], false);
|
|
33992
|
+
this.customValueFlag = false;
|
|
33993
|
+
(_a = this.searchInput) === null || _a === void 0 ? void 0 : _a.nativeElement.focus();
|
|
33994
|
+
this.dropdown.focusedItem = null;
|
|
33995
|
+
this.virtDir.scrollTo(0);
|
|
33996
|
+
}
|
|
33997
|
+
/** @hidden @internal */
|
|
33998
|
+
isAddButtonVisible() {
|
|
33999
|
+
// This should always return a boolean value. If this.searchValue was '', it returns '' instead of false;
|
|
34000
|
+
return this.searchValue !== '' && this.customValueFlag;
|
|
34001
|
+
}
|
|
34002
|
+
/** @hidden @internal */
|
|
34003
|
+
handleInputChange(event) {
|
|
34004
|
+
if (event !== undefined) {
|
|
34005
|
+
const args = {
|
|
34006
|
+
searchText: typeof event === 'string' ? event : event.target.value,
|
|
34007
|
+
owner: this,
|
|
34008
|
+
cancel: false
|
|
34009
|
+
};
|
|
34010
|
+
this.searchInputUpdate.emit(args);
|
|
34011
|
+
if (args.cancel) {
|
|
34012
|
+
this.filterValue = null;
|
|
34013
|
+
}
|
|
34014
|
+
}
|
|
34015
|
+
this.checkMatch();
|
|
34016
|
+
}
|
|
34017
|
+
/**
|
|
34018
|
+
* Event handlers
|
|
34019
|
+
*
|
|
34020
|
+
* @hidden
|
|
34021
|
+
* @internal
|
|
34022
|
+
*/
|
|
34023
|
+
handleOpening(e) {
|
|
34024
|
+
const args = { owner: this, event: e.event, cancel: e.cancel };
|
|
34025
|
+
this.opening.emit(args);
|
|
34026
|
+
e.cancel = args.cancel;
|
|
34027
|
+
}
|
|
34028
|
+
/** @hidden @internal */
|
|
34029
|
+
handleClosing(e) {
|
|
34030
|
+
var _a;
|
|
34031
|
+
const args = { owner: this, event: e.event, cancel: e.cancel };
|
|
34032
|
+
this.closing.emit(args);
|
|
34033
|
+
e.cancel = args.cancel;
|
|
34034
|
+
if (e.cancel) {
|
|
34035
|
+
return;
|
|
34036
|
+
}
|
|
34037
|
+
this.searchValue = '';
|
|
34038
|
+
if (!e.event) {
|
|
34039
|
+
(_a = this.comboInput) === null || _a === void 0 ? void 0 : _a.nativeElement.focus();
|
|
34040
|
+
}
|
|
34041
|
+
}
|
|
34042
|
+
/** @hidden @internal */
|
|
34043
|
+
handleClosed() {
|
|
34044
|
+
this.closed.emit({ owner: this });
|
|
34045
|
+
}
|
|
34046
|
+
/** @hidden @internal */
|
|
34047
|
+
handleKeyDown(event) {
|
|
34048
|
+
if (event.key === 'ArrowUp' || event.key === 'Up') {
|
|
34049
|
+
event.preventDefault();
|
|
34050
|
+
event.stopPropagation();
|
|
34051
|
+
this.close();
|
|
34052
|
+
}
|
|
34053
|
+
}
|
|
34054
|
+
/** @hidden @internal */
|
|
34055
|
+
registerOnChange(fn) {
|
|
34056
|
+
this._onChangeCallback = fn;
|
|
34057
|
+
}
|
|
34058
|
+
/** @hidden @internal */
|
|
34059
|
+
registerOnTouched(fn) {
|
|
34060
|
+
this._onTouchedCallback = fn;
|
|
34061
|
+
}
|
|
34062
|
+
/** @hidden @internal */
|
|
34063
|
+
setDisabledState(isDisabled) {
|
|
34064
|
+
this.disabled = isDisabled;
|
|
34065
|
+
}
|
|
34066
|
+
/** @hidden @internal */
|
|
34067
|
+
onClick(event) {
|
|
34068
|
+
event.stopPropagation();
|
|
34069
|
+
event.preventDefault();
|
|
34070
|
+
if (!this.disabled) {
|
|
34071
|
+
this.toggle();
|
|
34072
|
+
}
|
|
34073
|
+
}
|
|
34074
|
+
/** @hidden @internal */
|
|
34075
|
+
onBlur() {
|
|
34076
|
+
if (this.collapsed) {
|
|
34077
|
+
this._onTouchedCallback();
|
|
34078
|
+
if (this.ngControl && this.ngControl.invalid) {
|
|
34079
|
+
this.valid = IgxComboState.INVALID;
|
|
34080
|
+
}
|
|
34081
|
+
else {
|
|
34082
|
+
this.valid = IgxComboState.INITIAL;
|
|
34083
|
+
}
|
|
34084
|
+
}
|
|
34085
|
+
}
|
|
34086
|
+
/** if there is a valueKey - map the keys to data items, else - just return the keys */
|
|
34087
|
+
convertKeysToItems(keys) {
|
|
34088
|
+
if (this.comboAPI.valueKey === null) {
|
|
34089
|
+
return keys;
|
|
34090
|
+
}
|
|
34091
|
+
// map keys vs. filter data to retain the order of the selected items
|
|
34092
|
+
return keys.map(key => this.data.find(entry => entry[this.valueKey] === key)).filter(e => e !== undefined);
|
|
34093
|
+
}
|
|
34094
|
+
checkMatch() {
|
|
34095
|
+
const itemMatch = this.filteredData.some(this.findMatch);
|
|
34096
|
+
this.customValueFlag = this.allowCustomValues && !itemMatch;
|
|
34097
|
+
}
|
|
34098
|
+
manageRequiredAsterisk() {
|
|
34099
|
+
if (this.ngControl && this.ngControl.control.validator) {
|
|
34100
|
+
// Run the validation with empty object to check if required is enabled.
|
|
34101
|
+
const error = this.ngControl.control.validator({});
|
|
34102
|
+
this.inputGroup.isRequired = error && error.required;
|
|
34103
|
+
}
|
|
34104
|
+
}
|
|
34105
|
+
/** Contains key-value pairs of the selected valueKeys and their resp. displayKeys */
|
|
34106
|
+
registerRemoteEntries(ids, add = true) {
|
|
34107
|
+
if (add) {
|
|
34108
|
+
const selection = this.getValueDisplayPairs(ids);
|
|
34109
|
+
for (const entry of selection) {
|
|
34110
|
+
this._remoteSelection[entry[this.valueKey]] = entry[this.displayKey];
|
|
34111
|
+
}
|
|
34112
|
+
}
|
|
34113
|
+
else {
|
|
34114
|
+
for (const entry of ids) {
|
|
34115
|
+
delete this._remoteSelection[entry];
|
|
34116
|
+
}
|
|
34117
|
+
}
|
|
34118
|
+
}
|
|
34119
|
+
/**
|
|
34120
|
+
* For `id: any[]` returns a mapped `{ [combo.valueKey]: any, [combo.displayKey]: any }[]`
|
|
34121
|
+
*/
|
|
34122
|
+
getValueDisplayPairs(ids) {
|
|
34123
|
+
return this.data.filter(entry => ids.indexOf(entry[this.valueKey]) > -1).map(e => ({
|
|
34124
|
+
[this.valueKey]: e[this.valueKey],
|
|
34125
|
+
[this.displayKey]: e[this.displayKey]
|
|
34126
|
+
}));
|
|
34127
|
+
}
|
|
34128
|
+
getRemoteSelection(newSelection, oldSelection) {
|
|
34129
|
+
if (!newSelection.length) {
|
|
34130
|
+
// If new selection is empty, clear all items
|
|
34131
|
+
this.registerRemoteEntries(oldSelection, false);
|
|
34132
|
+
return '';
|
|
34133
|
+
}
|
|
34134
|
+
const removedItems = oldSelection.filter(e => newSelection.indexOf(e) < 0);
|
|
34135
|
+
const addedItems = newSelection.filter(e => oldSelection.indexOf(e) < 0);
|
|
34136
|
+
this.registerRemoteEntries(addedItems);
|
|
34137
|
+
this.registerRemoteEntries(removedItems, false);
|
|
34138
|
+
return Object.keys(this._remoteSelection).map(e => this._remoteSelection[e]).join(', ');
|
|
34139
|
+
}
|
|
34140
|
+
}
|
|
34141
|
+
IgxComboBaseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboBaseDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: IgxSelectionAPIService }, { token: IgxComboAPIService }, { token: IgxIconService }, { token: DisplayDensityToken, optional: true }, { token: IGX_INPUT_GROUP_TYPE, optional: true }, { token: i0.Injector, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
34142
|
+
IgxComboBaseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboBaseDirective, inputs: { overlaySettings: "overlaySettings", id: "id", width: "width", allowCustomValues: "allowCustomValues", itemsMaxHeight: "itemsMaxHeight", itemHeight: "itemHeight", itemsWidth: "itemsWidth", placeholder: "placeholder", data: "data", valueKey: "valueKey", displayKey: "displayKey", groupKey: "groupKey", groupSortingDirection: "groupSortingDirection", ariaLabelledBy: "ariaLabelledBy", disabled: "disabled", type: "type" }, outputs: { selectionChanging: "selectionChanging", opening: "opening", opened: "opened", closing: "closing", closed: "closed", addition: "addition", searchInputUpdate: "searchInputUpdate", dataPreLoad: "dataPreLoad" }, host: { listeners: { "keydown.ArrowDown": "onArrowDown($event)", "keydown.Alt.ArrowDown": "onArrowDown($event)" }, properties: { "attr.id": "this.id", "style.width": "this.width", "attr.aria-labelledby": "this.ariaLabelledBy", "class.igx-combo": "this.cssClass", "attr.role": "this.role", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-haspopup": "this.hasPopUp", "attr.aria-owns": "this.ariaOwns" } }, queries: [{ propertyName: "itemTemplate", first: true, predicate: IgxComboItemDirective, descendants: true, read: TemplateRef }, { propertyName: "headerTemplate", first: true, predicate: IgxComboHeaderDirective, descendants: true, read: TemplateRef }, { propertyName: "footerTemplate", first: true, predicate: IgxComboFooterDirective, descendants: true, read: TemplateRef }, { propertyName: "headerItemTemplate", first: true, predicate: IgxComboHeaderItemDirective, descendants: true, read: TemplateRef }, { propertyName: "addItemTemplate", first: true, predicate: IgxComboAddItemDirective, descendants: true, read: TemplateRef }, { propertyName: "emptyTemplate", first: true, predicate: IgxComboEmptyDirective, descendants: true, read: TemplateRef }, { propertyName: "toggleIconTemplate", first: true, predicate: IgxComboToggleIconDirective, descendants: true, read: TemplateRef }, { propertyName: "clearIconTemplate", first: true, predicate: IgxComboClearIconDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "inputGroup", first: true, predicate: ["inputGroup"], descendants: true, read: IgxInputGroupComponent, static: true }, { propertyName: "comboInput", first: true, predicate: ["comboInput"], descendants: true, read: IgxInputDirective, static: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "virtualScrollContainer", first: true, predicate: IgxForOfDirective, descendants: true, static: true }, { propertyName: "virtDir", first: true, predicate: IgxForOfDirective, descendants: true, read: IgxForOfDirective, static: true }, { propertyName: "dropdownContainer", first: true, predicate: ["dropdownItemContainer"], descendants: true, static: true }, { propertyName: "primitiveTemplate", first: true, predicate: ["primitive"], descendants: true, read: TemplateRef, static: true }, { propertyName: "complexTemplate", first: true, predicate: ["complex"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0 });
|
|
34143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboBaseDirective, decorators: [{
|
|
34144
|
+
type: Directive
|
|
34145
|
+
}], ctorParameters: function () {
|
|
34146
|
+
return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: IgxSelectionAPIService }, { type: IgxComboAPIService }, { type: IgxIconService }, { type: undefined, decorators: [{
|
|
34147
|
+
type: Optional
|
|
34148
|
+
}, {
|
|
34149
|
+
type: Inject,
|
|
34150
|
+
args: [DisplayDensityToken]
|
|
34151
|
+
}] }, { type: undefined, decorators: [{
|
|
34152
|
+
type: Optional
|
|
34153
|
+
}, {
|
|
34154
|
+
type: Inject,
|
|
34155
|
+
args: [IGX_INPUT_GROUP_TYPE]
|
|
34156
|
+
}] }, { type: i0.Injector, decorators: [{
|
|
34157
|
+
type: Optional
|
|
34158
|
+
}] }];
|
|
34159
|
+
}, propDecorators: { overlaySettings: [{
|
|
34160
|
+
type: Input
|
|
34161
|
+
}], id: [{
|
|
34162
|
+
type: HostBinding,
|
|
34163
|
+
args: ['attr.id']
|
|
34164
|
+
}, {
|
|
34165
|
+
type: Input
|
|
34166
|
+
}], width: [{
|
|
34167
|
+
type: HostBinding,
|
|
34168
|
+
args: ['style.width']
|
|
34169
|
+
}, {
|
|
34170
|
+
type: Input
|
|
34171
|
+
}], allowCustomValues: [{
|
|
34172
|
+
type: Input
|
|
34173
|
+
}], itemsMaxHeight: [{
|
|
34174
|
+
type: Input
|
|
34175
|
+
}], itemHeight: [{
|
|
34176
|
+
type: Input
|
|
34177
|
+
}], itemsWidth: [{
|
|
34178
|
+
type: Input
|
|
34179
|
+
}], placeholder: [{
|
|
34180
|
+
type: Input
|
|
34181
|
+
}], data: [{
|
|
34182
|
+
type: Input
|
|
34183
|
+
}], valueKey: [{
|
|
34184
|
+
type: Input
|
|
34185
|
+
}], displayKey: [{
|
|
34186
|
+
type: Input
|
|
34187
|
+
}], groupKey: [{
|
|
34188
|
+
type: Input
|
|
34189
|
+
}], groupSortingDirection: [{
|
|
34190
|
+
type: Input
|
|
34191
|
+
}], ariaLabelledBy: [{
|
|
34192
|
+
type: Input
|
|
34193
|
+
}, {
|
|
34194
|
+
type: HostBinding,
|
|
34195
|
+
args: ['attr.aria-labelledby']
|
|
34196
|
+
}], cssClass: [{
|
|
34197
|
+
type: HostBinding,
|
|
34198
|
+
args: ['class.igx-combo']
|
|
34199
|
+
}], role: [{
|
|
34200
|
+
type: HostBinding,
|
|
34201
|
+
args: [`attr.role`]
|
|
34202
|
+
}], ariaExpanded: [{
|
|
34203
|
+
type: HostBinding,
|
|
34204
|
+
args: ['attr.aria-expanded']
|
|
34205
|
+
}], hasPopUp: [{
|
|
34206
|
+
type: HostBinding,
|
|
34207
|
+
args: ['attr.aria-haspopup']
|
|
34208
|
+
}], ariaOwns: [{
|
|
34209
|
+
type: HostBinding,
|
|
34210
|
+
args: ['attr.aria-owns']
|
|
34211
|
+
}], disabled: [{
|
|
34212
|
+
type: Input
|
|
34213
|
+
}], type: [{
|
|
34214
|
+
type: Input
|
|
34215
|
+
}], selectionChanging: [{
|
|
34216
|
+
type: Output
|
|
34217
|
+
}], opening: [{
|
|
34218
|
+
type: Output
|
|
34219
|
+
}], opened: [{
|
|
34220
|
+
type: Output
|
|
34221
|
+
}], closing: [{
|
|
34222
|
+
type: Output
|
|
34223
|
+
}], closed: [{
|
|
34224
|
+
type: Output
|
|
34225
|
+
}], addition: [{
|
|
34226
|
+
type: Output
|
|
34227
|
+
}], searchInputUpdate: [{
|
|
34228
|
+
type: Output
|
|
34229
|
+
}], dataPreLoad: [{
|
|
34230
|
+
type: Output
|
|
34231
|
+
}], itemTemplate: [{
|
|
34232
|
+
type: ContentChild,
|
|
34233
|
+
args: [IgxComboItemDirective, { read: TemplateRef }]
|
|
34234
|
+
}], headerTemplate: [{
|
|
34235
|
+
type: ContentChild,
|
|
34236
|
+
args: [IgxComboHeaderDirective, { read: TemplateRef }]
|
|
34237
|
+
}], footerTemplate: [{
|
|
34238
|
+
type: ContentChild,
|
|
34239
|
+
args: [IgxComboFooterDirective, { read: TemplateRef }]
|
|
34240
|
+
}], headerItemTemplate: [{
|
|
34241
|
+
type: ContentChild,
|
|
34242
|
+
args: [IgxComboHeaderItemDirective, { read: TemplateRef }]
|
|
34243
|
+
}], addItemTemplate: [{
|
|
34244
|
+
type: ContentChild,
|
|
34245
|
+
args: [IgxComboAddItemDirective, { read: TemplateRef }]
|
|
34246
|
+
}], emptyTemplate: [{
|
|
34247
|
+
type: ContentChild,
|
|
34248
|
+
args: [IgxComboEmptyDirective, { read: TemplateRef }]
|
|
34249
|
+
}], toggleIconTemplate: [{
|
|
34250
|
+
type: ContentChild,
|
|
34251
|
+
args: [IgxComboToggleIconDirective, { read: TemplateRef }]
|
|
34252
|
+
}], clearIconTemplate: [{
|
|
34253
|
+
type: ContentChild,
|
|
34254
|
+
args: [IgxComboClearIconDirective, { read: TemplateRef }]
|
|
34255
|
+
}], inputGroup: [{
|
|
34256
|
+
type: ViewChild,
|
|
34257
|
+
args: ['inputGroup', { read: IgxInputGroupComponent, static: true }]
|
|
34258
|
+
}], comboInput: [{
|
|
34259
|
+
type: ViewChild,
|
|
34260
|
+
args: ['comboInput', { read: IgxInputDirective, static: true }]
|
|
34261
|
+
}], searchInput: [{
|
|
34262
|
+
type: ViewChild,
|
|
34263
|
+
args: ['searchInput']
|
|
34264
|
+
}], virtualScrollContainer: [{
|
|
34265
|
+
type: ViewChild,
|
|
34266
|
+
args: [IgxForOfDirective, { static: true }]
|
|
34267
|
+
}], virtDir: [{
|
|
34268
|
+
type: ViewChild,
|
|
34269
|
+
args: [IgxForOfDirective, { read: IgxForOfDirective, static: true }]
|
|
34270
|
+
}], dropdownContainer: [{
|
|
34271
|
+
type: ViewChild,
|
|
34272
|
+
args: ['dropdownItemContainer', { static: true }]
|
|
34273
|
+
}], primitiveTemplate: [{
|
|
34274
|
+
type: ViewChild,
|
|
34275
|
+
args: ['primitive', { read: TemplateRef, static: true }]
|
|
34276
|
+
}], complexTemplate: [{
|
|
34277
|
+
type: ViewChild,
|
|
34278
|
+
args: ['complex', { read: TemplateRef, static: true }]
|
|
34279
|
+
}], onArrowDown: [{
|
|
34280
|
+
type: HostListener,
|
|
34281
|
+
args: ['keydown.ArrowDown', ['$event']]
|
|
34282
|
+
}, {
|
|
34283
|
+
type: HostListener,
|
|
34284
|
+
args: ['keydown.Alt.ArrowDown', ['$event']]
|
|
34285
|
+
}] } });
|
|
34286
|
+
|
|
34287
|
+
/**
|
|
34288
|
+
* @hidden
|
|
34289
|
+
*/
|
|
34290
|
+
class IgxComboAddItemComponent extends IgxComboItemComponent {
|
|
34291
|
+
get selected() {
|
|
34292
|
+
return false;
|
|
34293
|
+
}
|
|
34294
|
+
set selected(value) {
|
|
34295
|
+
}
|
|
34296
|
+
/**
|
|
34297
|
+
* @inheritdoc
|
|
34298
|
+
*/
|
|
34299
|
+
clicked(event) {
|
|
34300
|
+
this.comboAPI.disableTransitions = false;
|
|
34301
|
+
this.comboAPI.add_custom_item();
|
|
34302
|
+
}
|
|
34303
|
+
}
|
|
34304
|
+
IgxComboAddItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboAddItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
34305
|
+
IgxComboAddItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboAddItemComponent, selector: "igx-combo-add-item", providers: [{ provide: IgxComboItemComponent, useExisting: IgxComboAddItemComponent }], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
|
|
34306
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboAddItemComponent, decorators: [{
|
|
34307
|
+
type: Component,
|
|
34308
|
+
args: [{
|
|
34309
|
+
selector: 'igx-combo-add-item',
|
|
34310
|
+
template: '<ng-content></ng-content>',
|
|
34311
|
+
providers: [{ provide: IgxComboItemComponent, useExisting: IgxComboAddItemComponent }]
|
|
34312
|
+
}]
|
|
34313
|
+
}] });
|
|
34314
|
+
|
|
34315
|
+
/** @hidden */
|
|
34316
|
+
class IgxComboDropDownComponent extends IgxDropDownComponent {
|
|
34317
|
+
constructor(elementRef, cdr, selection, combo, comboAPI, _displayDensityOptions) {
|
|
34318
|
+
super(elementRef, cdr, selection, _displayDensityOptions);
|
|
34319
|
+
this.elementRef = elementRef;
|
|
34320
|
+
this.cdr = cdr;
|
|
34321
|
+
this.selection = selection;
|
|
34322
|
+
this.combo = combo;
|
|
34323
|
+
this.comboAPI = comboAPI;
|
|
34324
|
+
this._displayDensityOptions = _displayDensityOptions;
|
|
34325
|
+
/** @hidden @internal */
|
|
34326
|
+
this.singleMode = false;
|
|
34327
|
+
/**
|
|
34328
|
+
* @hidden
|
|
34329
|
+
* @internal
|
|
34330
|
+
*/
|
|
34331
|
+
this.children = null;
|
|
34332
|
+
this.scrollHandler = () => {
|
|
34333
|
+
this.comboAPI.disableTransitions = true;
|
|
34334
|
+
};
|
|
34335
|
+
}
|
|
34336
|
+
/** @hidden @internal */
|
|
34337
|
+
get scrollContainer() {
|
|
34338
|
+
return this.virtDir.dc.location.nativeElement;
|
|
34339
|
+
}
|
|
34340
|
+
get isScrolledToLast() {
|
|
34341
|
+
const scrollTop = this.virtDir.scrollPosition;
|
|
34342
|
+
const scrollHeight = this.virtDir.getScroll().scrollHeight;
|
|
34343
|
+
return Math.floor(scrollTop + this.virtDir.igxForContainerSize) === scrollHeight;
|
|
34344
|
+
}
|
|
34345
|
+
get lastVisibleIndex() {
|
|
34346
|
+
return this.combo.totalItemCount ?
|
|
34347
|
+
Math.floor(this.combo.itemsMaxHeight / this.combo.itemHeight) :
|
|
34348
|
+
this.items.length - 1;
|
|
34349
|
+
}
|
|
34350
|
+
get sortedChildren() {
|
|
34351
|
+
if (this.children !== undefined) {
|
|
34352
|
+
return this.children.toArray()
|
|
34353
|
+
.sort((a, b) => a.index - b.index);
|
|
34354
|
+
}
|
|
34355
|
+
return null;
|
|
34356
|
+
}
|
|
34357
|
+
/**
|
|
34358
|
+
* Get all non-header items
|
|
34359
|
+
*
|
|
34360
|
+
* ```typescript
|
|
34361
|
+
* let myDropDownItems = this.dropdown.items;
|
|
34362
|
+
* ```
|
|
34363
|
+
*/
|
|
34364
|
+
get items() {
|
|
34365
|
+
const items = [];
|
|
34366
|
+
if (this.children !== undefined) {
|
|
34367
|
+
const sortedChildren = this.sortedChildren;
|
|
34368
|
+
for (const child of sortedChildren) {
|
|
34369
|
+
if (!child.isHeader) {
|
|
34370
|
+
items.push(child);
|
|
34371
|
+
}
|
|
34372
|
+
}
|
|
34373
|
+
}
|
|
34374
|
+
return items;
|
|
34375
|
+
}
|
|
34376
|
+
/**
|
|
34377
|
+
* @hidden @internal
|
|
34378
|
+
*/
|
|
34379
|
+
onFocus() {
|
|
34380
|
+
this.focusedItem = this._focusedItem || this.items[0];
|
|
34381
|
+
}
|
|
34382
|
+
/**
|
|
34383
|
+
* @hidden @internal
|
|
34384
|
+
*/
|
|
34385
|
+
onBlur(_evt) {
|
|
34386
|
+
this.focusedItem = null;
|
|
34387
|
+
}
|
|
34388
|
+
/**
|
|
34389
|
+
* @hidden @internal
|
|
34390
|
+
*/
|
|
34391
|
+
onToggleOpened() {
|
|
34392
|
+
this.opened.emit();
|
|
34393
|
+
}
|
|
34394
|
+
/**
|
|
34395
|
+
* @hidden
|
|
34396
|
+
*/
|
|
34397
|
+
navigateFirst() {
|
|
34398
|
+
this.navigateItem(this.virtDir.igxForOf.findIndex(e => !e.isHeader));
|
|
34399
|
+
}
|
|
34400
|
+
/**
|
|
34401
|
+
* @hidden
|
|
34402
|
+
*/
|
|
34403
|
+
navigatePrev() {
|
|
34404
|
+
if (this._focusedItem && this._focusedItem.index === 0 && this.virtDir.state.startIndex === 0) {
|
|
34405
|
+
this.combo.focusSearchInput(false);
|
|
34406
|
+
}
|
|
34407
|
+
else {
|
|
34408
|
+
super.navigatePrev();
|
|
34409
|
+
}
|
|
34410
|
+
}
|
|
34411
|
+
/**
|
|
34412
|
+
* @hidden
|
|
34413
|
+
*/
|
|
34414
|
+
navigateNext() {
|
|
34415
|
+
const lastIndex = this.combo.totalItemCount ? this.combo.totalItemCount - 1 : this.virtDir.igxForOf.length - 1;
|
|
34416
|
+
if (this._focusedItem && this._focusedItem.index === lastIndex) {
|
|
34417
|
+
this.focusAddItemButton();
|
|
34418
|
+
}
|
|
34419
|
+
else {
|
|
34420
|
+
super.navigateNext();
|
|
34421
|
+
}
|
|
34422
|
+
}
|
|
34423
|
+
/**
|
|
34424
|
+
* @hidden @internal
|
|
34425
|
+
*/
|
|
34426
|
+
selectItem(item) {
|
|
34427
|
+
if (item === null || item === undefined) {
|
|
34428
|
+
return;
|
|
34429
|
+
}
|
|
34430
|
+
this.comboAPI.set_selected_item(item.itemID);
|
|
34431
|
+
this._focusedItem = item;
|
|
34432
|
+
}
|
|
34433
|
+
/**
|
|
34434
|
+
* @hidden @internal
|
|
34435
|
+
*/
|
|
34436
|
+
updateScrollPosition() {
|
|
34437
|
+
this.virtDir.getScroll().scrollTop = this._scrollPosition;
|
|
34438
|
+
}
|
|
34439
|
+
/**
|
|
34440
|
+
* @hidden @internal
|
|
34441
|
+
*/
|
|
34442
|
+
onItemActionKey(key) {
|
|
34443
|
+
switch (key) {
|
|
34444
|
+
case DropDownActionKey.ENTER:
|
|
34445
|
+
this.handleEnter();
|
|
34446
|
+
break;
|
|
34447
|
+
case DropDownActionKey.SPACE:
|
|
34448
|
+
this.handleSpace();
|
|
34449
|
+
break;
|
|
34450
|
+
case DropDownActionKey.ESCAPE:
|
|
34451
|
+
this.close();
|
|
34452
|
+
}
|
|
34453
|
+
}
|
|
34454
|
+
ngAfterViewInit() {
|
|
34455
|
+
this.virtDir.getScroll().addEventListener('scroll', this.scrollHandler);
|
|
34456
|
+
}
|
|
34457
|
+
/**
|
|
34458
|
+
* @hidden @internal
|
|
34459
|
+
*/
|
|
34460
|
+
ngOnDestroy() {
|
|
34461
|
+
this.virtDir.getScroll().removeEventListener('scroll', this.scrollHandler);
|
|
34462
|
+
this.destroy$.next(true);
|
|
34463
|
+
this.destroy$.complete();
|
|
34464
|
+
}
|
|
34465
|
+
scrollToHiddenItem(_newItem) { }
|
|
34466
|
+
handleEnter() {
|
|
34467
|
+
if (this.isAddItemFocused()) {
|
|
34468
|
+
this.combo.addItemToCollection();
|
|
34469
|
+
return;
|
|
34470
|
+
}
|
|
34471
|
+
if (this.singleMode && this.focusedItem) {
|
|
34472
|
+
this.combo.select(this.focusedItem.itemID);
|
|
34473
|
+
}
|
|
34474
|
+
this.close();
|
|
34475
|
+
}
|
|
34476
|
+
handleSpace() {
|
|
34477
|
+
if (this.isAddItemFocused()) {
|
|
34478
|
+
return;
|
|
34479
|
+
}
|
|
34480
|
+
else {
|
|
34481
|
+
this.selectItem(this.focusedItem);
|
|
34482
|
+
}
|
|
34483
|
+
}
|
|
34484
|
+
isAddItemFocused() {
|
|
34485
|
+
return this.focusedItem instanceof IgxComboAddItemComponent;
|
|
34486
|
+
}
|
|
34487
|
+
focusAddItemButton() {
|
|
34488
|
+
if (this.combo.isAddButtonVisible()) {
|
|
34489
|
+
this.focusedItem = this.items[this.items.length - 1];
|
|
34490
|
+
}
|
|
34491
|
+
}
|
|
34492
|
+
}
|
|
34493
|
+
IgxComboDropDownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboDropDownComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: IgxSelectionAPIService }, { token: IGX_COMBO_COMPONENT }, { token: IgxComboAPIService }, { token: DisplayDensityToken, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
34494
|
+
IgxComboDropDownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboDropDownComponent, selector: "igx-combo-drop-down", inputs: { singleMode: "singleMode" }, providers: [{ provide: IGX_DROPDOWN_BASE, useExisting: IgxComboDropDownComponent }], queries: [{ propertyName: "children", predicate: IgxComboItemComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"igx-drop-down__list\" [style.width]=\"width\"\nigxToggle\n(appended)=\"onToggleContentAppended($event)\"\n(opening)=\"onToggleOpening($event)\" (opened)=\"onToggleOpened()\"\n(closing)=\"onToggleClosing($event)\" (closed)=\"onToggleClosed()\">\n <div class=\"igx-drop-down__list-scroll\" #scrollContainer [attr.id]=\"this.listId\" role=\"listbox\" [attr.aria-label]=\"this.listId\"\n [style.height]=\"height\"\n [style.maxHeight]=\"maxHeight\">\n <ng-container *ngIf=\"!collapsed\">\n <ng-content></ng-content>\n </ng-container>\n </div>\n</div>\n", directives: [{ type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
34495
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboDropDownComponent, decorators: [{
|
|
34496
|
+
type: Component,
|
|
34497
|
+
args: [{ selector: 'igx-combo-drop-down', providers: [{ provide: IGX_DROPDOWN_BASE, useExisting: IgxComboDropDownComponent }], template: "<div class=\"igx-drop-down__list\" [style.width]=\"width\"\nigxToggle\n(appended)=\"onToggleContentAppended($event)\"\n(opening)=\"onToggleOpening($event)\" (opened)=\"onToggleOpened()\"\n(closing)=\"onToggleClosing($event)\" (closed)=\"onToggleClosed()\">\n <div class=\"igx-drop-down__list-scroll\" #scrollContainer [attr.id]=\"this.listId\" role=\"listbox\" [attr.aria-label]=\"this.listId\"\n [style.height]=\"height\"\n [style.maxHeight]=\"maxHeight\">\n <ng-container *ngIf=\"!collapsed\">\n <ng-content></ng-content>\n </ng-container>\n </div>\n</div>\n" }]
|
|
34498
|
+
}], ctorParameters: function () {
|
|
34499
|
+
return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: IgxSelectionAPIService }, { type: undefined, decorators: [{
|
|
34500
|
+
type: Inject,
|
|
34501
|
+
args: [IGX_COMBO_COMPONENT]
|
|
34502
|
+
}] }, { type: IgxComboAPIService }, { type: undefined, decorators: [{
|
|
34503
|
+
type: Optional
|
|
34504
|
+
}, {
|
|
34505
|
+
type: Inject,
|
|
34506
|
+
args: [DisplayDensityToken]
|
|
34507
|
+
}] }];
|
|
34508
|
+
}, propDecorators: { singleMode: [{
|
|
34509
|
+
type: Input
|
|
34510
|
+
}], children: [{
|
|
34511
|
+
type: ContentChildren,
|
|
34512
|
+
args: [IgxComboItemComponent, { descendants: true }]
|
|
34513
|
+
}] } });
|
|
34514
|
+
|
|
34515
|
+
/**
|
|
34516
|
+
* @hidden
|
|
34517
|
+
*/
|
|
34518
|
+
class IgxComboFilteringPipe {
|
|
34519
|
+
transform(collection, searchValue, displayKey, filteringOptions, shouldFilter = false) {
|
|
34520
|
+
if (!collection) {
|
|
34521
|
+
return [];
|
|
34522
|
+
}
|
|
34523
|
+
if (!searchValue || !shouldFilter) {
|
|
34524
|
+
return collection;
|
|
34525
|
+
}
|
|
34526
|
+
else {
|
|
34527
|
+
const searchTerm = filteringOptions.caseSensitive ? searchValue.trim() : searchValue.toLowerCase().trim();
|
|
34528
|
+
if (displayKey != null) {
|
|
34529
|
+
return collection.filter(e => filteringOptions.caseSensitive ? e[displayKey].includes(searchTerm) :
|
|
34530
|
+
e[displayKey].toString().toLowerCase().includes(searchTerm));
|
|
34531
|
+
}
|
|
34532
|
+
else {
|
|
34533
|
+
return collection.filter(e => filteringOptions.caseSensitive ? e.includes(searchTerm) :
|
|
34534
|
+
e.toString().toLowerCase().includes(searchTerm));
|
|
34535
|
+
}
|
|
34536
|
+
}
|
|
34537
|
+
}
|
|
34538
|
+
}
|
|
34539
|
+
IgxComboFilteringPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboFilteringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
34540
|
+
IgxComboFilteringPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboFilteringPipe, name: "comboFiltering" });
|
|
34541
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboFilteringPipe, decorators: [{
|
|
34542
|
+
type: Pipe,
|
|
34543
|
+
args: [{
|
|
34544
|
+
name: 'comboFiltering'
|
|
34545
|
+
}]
|
|
34546
|
+
}] });
|
|
34547
|
+
/**
|
|
34548
|
+
* @hidden
|
|
34549
|
+
*/
|
|
34550
|
+
class IgxComboGroupingPipe {
|
|
34551
|
+
constructor(combo) {
|
|
34552
|
+
this.combo = combo;
|
|
34553
|
+
}
|
|
34554
|
+
transform(collection, groupKey, valueKey, sortingDirection) {
|
|
34555
|
+
this.combo.filteredData = collection;
|
|
34556
|
+
if ((!groupKey && groupKey !== 0) || !collection.length) {
|
|
34557
|
+
return collection;
|
|
34558
|
+
}
|
|
34559
|
+
const sorted = DataUtil.sort(cloneArray(collection), [{
|
|
34560
|
+
fieldName: groupKey,
|
|
34561
|
+
dir: sortingDirection,
|
|
34562
|
+
ignoreCase: true,
|
|
34563
|
+
strategy: DefaultSortingStrategy.instance()
|
|
34564
|
+
}]);
|
|
34565
|
+
const data = cloneArray(sorted);
|
|
34566
|
+
let inserts = 0;
|
|
34567
|
+
let currentHeader = null;
|
|
34568
|
+
for (let i = 0; i < sorted.length; i++) {
|
|
34569
|
+
let insertFlag = 0;
|
|
34570
|
+
if (currentHeader !== sorted[i][groupKey]) {
|
|
34571
|
+
currentHeader = sorted[i][groupKey];
|
|
34572
|
+
insertFlag = 1;
|
|
34573
|
+
}
|
|
34574
|
+
if (insertFlag) {
|
|
34575
|
+
data.splice(i + inserts, 0, {
|
|
34576
|
+
[valueKey]: currentHeader,
|
|
34577
|
+
[groupKey]: currentHeader,
|
|
34578
|
+
isHeader: true
|
|
34579
|
+
});
|
|
34580
|
+
inserts++;
|
|
34581
|
+
}
|
|
34582
|
+
}
|
|
34583
|
+
return data;
|
|
34584
|
+
}
|
|
34585
|
+
}
|
|
34586
|
+
IgxComboGroupingPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboGroupingPipe, deps: [{ token: IGX_COMBO_COMPONENT }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
34587
|
+
IgxComboGroupingPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboGroupingPipe, name: "comboGrouping" });
|
|
34588
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboGroupingPipe, decorators: [{
|
|
34589
|
+
type: Pipe,
|
|
34590
|
+
args: [{ name: 'comboGrouping' }]
|
|
34591
|
+
}], ctorParameters: function () {
|
|
34592
|
+
return [{ type: undefined, decorators: [{
|
|
34593
|
+
type: Inject,
|
|
34594
|
+
args: [IGX_COMBO_COMPONENT]
|
|
34595
|
+
}] }];
|
|
34596
|
+
} });
|
|
34597
|
+
|
|
34598
|
+
/**
|
|
34599
|
+
* When called with sets A & B, returns A - B (as array);
|
|
34600
|
+
*
|
|
34601
|
+
* @hidden
|
|
34602
|
+
*/
|
|
34603
|
+
const diffInSets = (set1, set2) => {
|
|
34604
|
+
const results = [];
|
|
34605
|
+
set1.forEach(entry => {
|
|
34606
|
+
if (!set2.has(entry)) {
|
|
34607
|
+
results.push(entry);
|
|
34608
|
+
}
|
|
34609
|
+
});
|
|
34610
|
+
return results;
|
|
34611
|
+
};
|
|
34612
|
+
/**
|
|
34613
|
+
* Represents a drop-down list that provides editable functionalities, allowing users to choose an option from a predefined list.
|
|
34614
|
+
*
|
|
34615
|
+
* @igxModule IgxComboModule
|
|
34616
|
+
* @igxTheme igx-combo-theme
|
|
34617
|
+
* @igxKeywords combobox, combo selection
|
|
34618
|
+
* @igxGroup Grids & Lists
|
|
34619
|
+
*
|
|
34620
|
+
* @remarks
|
|
34621
|
+
* It provides the ability to filter items as well as perform selection with the provided data.
|
|
34622
|
+
* Additionally, it exposes keyboard navigation and custom styling capabilities.
|
|
34623
|
+
* @example
|
|
34624
|
+
* ```html
|
|
34625
|
+
* <igx-combo [itemsMaxHeight]="250" [data]="locationData"
|
|
34626
|
+
* [displayKey]="'field'" [valueKey]="'field'"
|
|
34627
|
+
* placeholder="Location(s)" searchPlaceholder="Search...">
|
|
34628
|
+
* </igx-combo>
|
|
34629
|
+
* ```
|
|
34630
|
+
*/
|
|
34631
|
+
class IgxComboComponent extends IgxComboBaseDirective {
|
|
34632
|
+
constructor(elementRef, cdr, selectionService, comboAPI, _iconService, _displayDensityOptions, _inputGroupType, _injector) {
|
|
34633
|
+
super(elementRef, cdr, selectionService, comboAPI, _iconService, _displayDensityOptions, _inputGroupType, _injector);
|
|
34634
|
+
this.elementRef = elementRef;
|
|
34635
|
+
this.cdr = cdr;
|
|
34636
|
+
this.selectionService = selectionService;
|
|
34637
|
+
this.comboAPI = comboAPI;
|
|
34638
|
+
this._iconService = _iconService;
|
|
34639
|
+
this._displayDensityOptions = _displayDensityOptions;
|
|
34640
|
+
this._inputGroupType = _inputGroupType;
|
|
34641
|
+
this._injector = _injector;
|
|
34642
|
+
/**
|
|
34643
|
+
* Defines whether the caseSensitive icon should be shown in the search input
|
|
34644
|
+
*
|
|
34645
|
+
* ```typescript
|
|
34646
|
+
* // get
|
|
34647
|
+
* let myComboShowSearchCaseIcon = this.combo.showSearchCaseIcon;
|
|
34648
|
+
* ```
|
|
34649
|
+
*
|
|
34650
|
+
* ```html
|
|
34651
|
+
* <!--set-->
|
|
34652
|
+
* <igx-combo [showSearchCaseIcon]='true'></igx-combo>
|
|
34653
|
+
* ```
|
|
34654
|
+
*/
|
|
34655
|
+
this.showSearchCaseIcon = false;
|
|
34656
|
+
/**
|
|
34657
|
+
* An @Input property that controls whether the combo's search box
|
|
34658
|
+
* should be focused after the `opened` event is called
|
|
34659
|
+
* When `false`, the combo's list item container will be focused instead
|
|
34660
|
+
*/
|
|
34661
|
+
this.autoFocusSearch = true;
|
|
34662
|
+
/**
|
|
34663
|
+
* An @Input property that enabled/disables filtering in the list. The default is `true`.
|
|
34664
|
+
* ```html
|
|
34665
|
+
* <igx-combo [filterable]="false">
|
|
34666
|
+
* ```
|
|
34667
|
+
*/
|
|
34668
|
+
this.filterable = true;
|
|
34669
|
+
/**
|
|
34670
|
+
* Defines the placeholder value for the combo dropdown search field
|
|
34671
|
+
*
|
|
34672
|
+
* ```typescript
|
|
34673
|
+
* // get
|
|
34674
|
+
* let myComboSearchPlaceholder = this.combo.searchPlaceholder;
|
|
34675
|
+
* ```
|
|
34676
|
+
*
|
|
34677
|
+
* ```html
|
|
34678
|
+
* <!--set-->
|
|
34679
|
+
* <igx-combo [searchPlaceholder]='newPlaceHolder'></igx-combo>
|
|
34680
|
+
* ```
|
|
34681
|
+
*/
|
|
34682
|
+
this.searchPlaceholder = 'Enter a Search Term';
|
|
34683
|
+
/**
|
|
34684
|
+
* @hidden @internal
|
|
34685
|
+
*/
|
|
34686
|
+
this.filteringLogic = FilteringLogic.Or;
|
|
34687
|
+
this.stringFilters = IgxStringFilteringOperand;
|
|
34688
|
+
this.booleanFilters = IgxBooleanFilteringOperand;
|
|
34689
|
+
this._prevInputValue = '';
|
|
34690
|
+
this.comboAPI.register(this);
|
|
34691
|
+
}
|
|
34692
|
+
/**
|
|
34693
|
+
* @hidden @internal
|
|
34694
|
+
*/
|
|
34695
|
+
get inputEmpty() {
|
|
34696
|
+
return !this.value && !this.placeholder;
|
|
34697
|
+
}
|
|
34698
|
+
/** @hidden @internal */
|
|
34699
|
+
get filteredData() {
|
|
34700
|
+
return this.filterable ? this._filteredData : this.data;
|
|
34701
|
+
}
|
|
34702
|
+
/** @hidden @internal */
|
|
34703
|
+
set filteredData(val) {
|
|
34704
|
+
this._filteredData = this.groupKey ? (val || []).filter((e) => e.isHeader !== true) : val;
|
|
34281
34705
|
this.checkMatch();
|
|
34282
34706
|
}
|
|
34707
|
+
/** @hidden @internal */
|
|
34708
|
+
get displaySearchInput() {
|
|
34709
|
+
return this.filterable || this.allowCustomValues;
|
|
34710
|
+
}
|
|
34283
34711
|
/**
|
|
34284
34712
|
* @hidden @internal
|
|
34285
34713
|
*/
|
|
34286
34714
|
handleKeyUp(event) {
|
|
34715
|
+
// TODO: use PlatformUtil for keyboard navigation
|
|
34287
34716
|
if (event.key === 'ArrowDown' || event.key === 'Down') {
|
|
34288
34717
|
this.dropdown.focusedItem = this.dropdown.items[0];
|
|
34289
34718
|
this.dropdownContainer.nativeElement.focus();
|
|
@@ -34292,72 +34721,6 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34292
34721
|
this.toggle();
|
|
34293
34722
|
}
|
|
34294
34723
|
}
|
|
34295
|
-
/**
|
|
34296
|
-
* @hidden @internal
|
|
34297
|
-
*/
|
|
34298
|
-
handleKeyDown(event) {
|
|
34299
|
-
if (event.key === 'ArrowUp' || event.key === 'Up') {
|
|
34300
|
-
event.preventDefault();
|
|
34301
|
-
event.stopPropagation();
|
|
34302
|
-
this.close();
|
|
34303
|
-
}
|
|
34304
|
-
}
|
|
34305
|
-
/**
|
|
34306
|
-
* @hidden @internal
|
|
34307
|
-
*/
|
|
34308
|
-
handleInputChange(event) {
|
|
34309
|
-
if (event !== undefined) {
|
|
34310
|
-
const args = {
|
|
34311
|
-
searchText: event,
|
|
34312
|
-
owner: this,
|
|
34313
|
-
cancel: false
|
|
34314
|
-
};
|
|
34315
|
-
this.searchInputUpdate.emit(args);
|
|
34316
|
-
if (args.cancel) {
|
|
34317
|
-
this.filterValue = null;
|
|
34318
|
-
}
|
|
34319
|
-
}
|
|
34320
|
-
this.checkMatch();
|
|
34321
|
-
}
|
|
34322
|
-
/**
|
|
34323
|
-
* @hidden @internal
|
|
34324
|
-
*/
|
|
34325
|
-
get dataType() {
|
|
34326
|
-
if (this.displayKey) {
|
|
34327
|
-
return DataTypes.COMPLEX;
|
|
34328
|
-
}
|
|
34329
|
-
return DataTypes.PRIMITIVE;
|
|
34330
|
-
}
|
|
34331
|
-
/**
|
|
34332
|
-
* @hidden @internal
|
|
34333
|
-
*/
|
|
34334
|
-
get isRemote() {
|
|
34335
|
-
return this.totalItemCount > 0 &&
|
|
34336
|
-
this.valueKey &&
|
|
34337
|
-
this.dataType === DataTypes.COMPLEX;
|
|
34338
|
-
}
|
|
34339
|
-
/**
|
|
34340
|
-
* Returns if the specified itemID is selected
|
|
34341
|
-
*
|
|
34342
|
-
* @hidden
|
|
34343
|
-
* @internal
|
|
34344
|
-
*/
|
|
34345
|
-
isItemSelected(item) {
|
|
34346
|
-
return this.selection.is_item_selected(this.id, item);
|
|
34347
|
-
}
|
|
34348
|
-
/**
|
|
34349
|
-
* Triggers change detection on the combo view
|
|
34350
|
-
*/
|
|
34351
|
-
triggerCheck() {
|
|
34352
|
-
this.cdr.detectChanges();
|
|
34353
|
-
}
|
|
34354
|
-
/**
|
|
34355
|
-
* @hidden @internal
|
|
34356
|
-
*/
|
|
34357
|
-
isAddButtonVisible() {
|
|
34358
|
-
// This should always return a boolean value. If this.searchValue was '', it returns '' instead of false;
|
|
34359
|
-
return this.searchValue !== '' && this.customValueFlag;
|
|
34360
|
-
}
|
|
34361
34724
|
/**
|
|
34362
34725
|
* @hidden @internal
|
|
34363
34726
|
*/
|
|
@@ -34369,140 +34732,15 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34369
34732
|
this.deselectAllItems();
|
|
34370
34733
|
}
|
|
34371
34734
|
}
|
|
34372
|
-
/**
|
|
34373
|
-
* @hidden @internal
|
|
34374
|
-
*/
|
|
34375
|
-
addItemToCollection() {
|
|
34376
|
-
if (!this.searchValue) {
|
|
34377
|
-
return;
|
|
34378
|
-
}
|
|
34379
|
-
const newValue = this.searchValue.trim();
|
|
34380
|
-
const addedItem = this.displayKey ? {
|
|
34381
|
-
[this.valueKey]: newValue,
|
|
34382
|
-
[this.displayKey]: newValue
|
|
34383
|
-
} : newValue;
|
|
34384
|
-
if (this.groupKey) {
|
|
34385
|
-
Object.assign(addedItem, { [this.groupKey]: this.defaultFallbackGroup });
|
|
34386
|
-
}
|
|
34387
|
-
// expose shallow copy instead of this.data in event args so this.data can't be mutated
|
|
34388
|
-
const oldCollection = [...this.data];
|
|
34389
|
-
const newCollection = [...this.data, addedItem];
|
|
34390
|
-
const args = {
|
|
34391
|
-
oldCollection, addedItem, newCollection, owner: this, cancel: false
|
|
34392
|
-
};
|
|
34393
|
-
this.addition.emit(args);
|
|
34394
|
-
if (args.cancel) {
|
|
34395
|
-
return;
|
|
34396
|
-
}
|
|
34397
|
-
this.data.push(args.addedItem);
|
|
34398
|
-
// trigger re-render
|
|
34399
|
-
this.data = cloneArray(this.data);
|
|
34400
|
-
this.selectItems(this.valueKey !== null && this.valueKey !== undefined ?
|
|
34401
|
-
[args.addedItem[this.valueKey]] : [args.addedItem], false);
|
|
34402
|
-
this.customValueFlag = false;
|
|
34403
|
-
this.searchInput.nativeElement.focus();
|
|
34404
|
-
this.dropdown.focusedItem = null;
|
|
34405
|
-
this.virtDir.scrollTo(0);
|
|
34406
|
-
}
|
|
34407
|
-
/**
|
|
34408
|
-
* @hidden @internal
|
|
34409
|
-
*/
|
|
34410
|
-
focusSearchInput(opening) {
|
|
34411
|
-
if (this.displaySearchInput && this.searchInput) {
|
|
34412
|
-
this.searchInput.nativeElement.focus();
|
|
34413
|
-
}
|
|
34414
|
-
else {
|
|
34415
|
-
if (opening) {
|
|
34416
|
-
this.dropdownContainer.nativeElement.focus();
|
|
34417
|
-
}
|
|
34418
|
-
else {
|
|
34419
|
-
this.comboInput.nativeElement.focus();
|
|
34420
|
-
this.toggle();
|
|
34421
|
-
}
|
|
34422
|
-
}
|
|
34423
|
-
}
|
|
34424
|
-
/**
|
|
34425
|
-
* @hidden @internal
|
|
34426
|
-
*/
|
|
34427
|
-
onBlur() {
|
|
34428
|
-
if (this.collapsed) {
|
|
34429
|
-
this._onTouchedCallback();
|
|
34430
|
-
if (this.ngControl && this.ngControl.invalid) {
|
|
34431
|
-
this.valid = IgxComboState.INVALID;
|
|
34432
|
-
}
|
|
34433
|
-
else {
|
|
34434
|
-
this.valid = IgxComboState.INITIAL;
|
|
34435
|
-
}
|
|
34436
|
-
}
|
|
34437
|
-
}
|
|
34438
|
-
/**
|
|
34439
|
-
* @hidden @internal
|
|
34440
|
-
*/
|
|
34441
|
-
ngOnInit() {
|
|
34442
|
-
this.ngControl = this._injector.get(NgControl, null);
|
|
34443
|
-
const targetElement = this.elementRef.nativeElement;
|
|
34444
|
-
this._overlaySettings = {
|
|
34445
|
-
target: targetElement,
|
|
34446
|
-
scrollStrategy: new AbsoluteScrollStrategy(),
|
|
34447
|
-
positionStrategy: new AutoPositionStrategy(),
|
|
34448
|
-
modal: false,
|
|
34449
|
-
closeOnOutsideClick: true,
|
|
34450
|
-
excludeFromOutsideClick: [targetElement]
|
|
34451
|
-
};
|
|
34452
|
-
this.selection.set(this.id, new Set());
|
|
34453
|
-
this._iconService.addSvgIconFromText(caseSensitive.name, caseSensitive.value, 'imx-icons');
|
|
34454
|
-
}
|
|
34455
|
-
/**
|
|
34456
|
-
* @hidden @internal
|
|
34457
|
-
*/
|
|
34458
|
-
ngAfterViewInit() {
|
|
34459
|
-
this.filteredData = [...this.data];
|
|
34460
|
-
if (this.ngControl) {
|
|
34461
|
-
this.ngControl.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(this.onStatusChanged);
|
|
34462
|
-
this.manageRequiredAsterisk();
|
|
34463
|
-
this.cdr.detectChanges();
|
|
34464
|
-
}
|
|
34465
|
-
this.virtDir.chunkPreload.pipe(takeUntil(this.destroy$)).subscribe((e) => {
|
|
34466
|
-
const eventArgs = Object.assign({}, e, { owner: this });
|
|
34467
|
-
this.dataPreLoad.emit(eventArgs);
|
|
34468
|
-
});
|
|
34469
|
-
}
|
|
34470
|
-
/**
|
|
34471
|
-
* @hidden @internal
|
|
34472
|
-
*/
|
|
34473
|
-
ngOnDestroy() {
|
|
34474
|
-
this.destroy$.next();
|
|
34475
|
-
this.destroy$.complete();
|
|
34476
|
-
this.comboAPI.clear();
|
|
34477
|
-
this.selection.clear(this.id);
|
|
34478
|
-
}
|
|
34479
34735
|
/**
|
|
34480
34736
|
* @hidden @internal
|
|
34481
34737
|
*/
|
|
34482
34738
|
writeValue(value) {
|
|
34483
34739
|
const selection = Array.isArray(value) ? value : [];
|
|
34484
|
-
const oldSelection = this.
|
|
34485
|
-
this.
|
|
34740
|
+
const oldSelection = this.selection;
|
|
34741
|
+
this.selectionService.select_items(this.id, selection, true);
|
|
34486
34742
|
this.cdr.markForCheck();
|
|
34487
|
-
this._value = this.createDisplayText(this.
|
|
34488
|
-
}
|
|
34489
|
-
/**
|
|
34490
|
-
* @hidden @internal
|
|
34491
|
-
*/
|
|
34492
|
-
registerOnChange(fn) {
|
|
34493
|
-
this._onChangeCallback = fn;
|
|
34494
|
-
}
|
|
34495
|
-
/**
|
|
34496
|
-
* @hidden @internal
|
|
34497
|
-
*/
|
|
34498
|
-
registerOnTouched(fn) {
|
|
34499
|
-
this._onTouchedCallback = fn;
|
|
34500
|
-
}
|
|
34501
|
-
/**
|
|
34502
|
-
* @hidden @internal
|
|
34503
|
-
*/
|
|
34504
|
-
setDisabledState(isDisabled) {
|
|
34505
|
-
this.disabled = isDisabled;
|
|
34743
|
+
this._value = this.createDisplayText(this.selection, oldSelection);
|
|
34506
34744
|
}
|
|
34507
34745
|
/**
|
|
34508
34746
|
* @hidden
|
|
@@ -34510,19 +34748,6 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34510
34748
|
getEditElement() {
|
|
34511
34749
|
return this.comboInput.nativeElement;
|
|
34512
34750
|
}
|
|
34513
|
-
/**
|
|
34514
|
-
* @hidden @internal
|
|
34515
|
-
*/
|
|
34516
|
-
get template() {
|
|
34517
|
-
this._dataType = this.dataType;
|
|
34518
|
-
if (this.itemTemplate) {
|
|
34519
|
-
return this.itemTemplate;
|
|
34520
|
-
}
|
|
34521
|
-
if (this._dataType === DataTypes.COMPLEX) {
|
|
34522
|
-
return this.complexTemplate;
|
|
34523
|
-
}
|
|
34524
|
-
return this.primitiveTemplate;
|
|
34525
|
-
}
|
|
34526
34751
|
/**
|
|
34527
34752
|
* @hidden @internal
|
|
34528
34753
|
*/
|
|
@@ -34547,75 +34772,18 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34547
34772
|
}
|
|
34548
34773
|
event.stopPropagation();
|
|
34549
34774
|
}
|
|
34550
|
-
/**
|
|
34551
|
-
* A method that opens/closes the combo.
|
|
34552
|
-
*
|
|
34553
|
-
* ```html
|
|
34554
|
-
* <button (click)="combo.toggle()">Toggle Combo</button>
|
|
34555
|
-
* <igx-combo #combo></igx-combo>
|
|
34556
|
-
* ```
|
|
34557
|
-
*/
|
|
34558
|
-
toggle() {
|
|
34559
|
-
const overlaySettings = Object.assign({}, this._overlaySettings, this.overlaySettings);
|
|
34560
|
-
this.dropdown.toggle(overlaySettings);
|
|
34561
|
-
}
|
|
34562
|
-
/**
|
|
34563
|
-
* A method that opens the combo.
|
|
34564
|
-
*
|
|
34565
|
-
* ```html
|
|
34566
|
-
* <button (click)="combo.open()">Open Combo</button>
|
|
34567
|
-
* <igx-combo #combo></igx-combo>
|
|
34568
|
-
* ```
|
|
34569
|
-
*/
|
|
34570
|
-
open() {
|
|
34571
|
-
const overlaySettings = Object.assign({}, this._overlaySettings, this.overlaySettings);
|
|
34572
|
-
this.dropdown.open(overlaySettings);
|
|
34573
|
-
}
|
|
34574
|
-
/**
|
|
34575
|
-
* A method that closes the combo.
|
|
34576
|
-
*
|
|
34577
|
-
* ```html
|
|
34578
|
-
* <button (click)="combo.close()">Close Combo</button>
|
|
34579
|
-
* <igx-combo #combo></igx-combo>
|
|
34580
|
-
* ```
|
|
34581
|
-
*/
|
|
34582
|
-
close() {
|
|
34583
|
-
this.dropdown.close();
|
|
34584
|
-
}
|
|
34585
|
-
/**
|
|
34586
|
-
* Gets drop down state.
|
|
34587
|
-
*
|
|
34588
|
-
* ```typescript
|
|
34589
|
-
* let state = this.combo.collapsed;
|
|
34590
|
-
* ```
|
|
34591
|
-
*/
|
|
34592
|
-
get collapsed() {
|
|
34593
|
-
return this.dropdown.collapsed;
|
|
34594
|
-
}
|
|
34595
|
-
/**
|
|
34596
|
-
* Get current selection state
|
|
34597
|
-
*
|
|
34598
|
-
* @returns Array of selected items
|
|
34599
|
-
* ```typescript
|
|
34600
|
-
* let selectedItems = this.combo.selectedItems();
|
|
34601
|
-
* ```
|
|
34602
|
-
*/
|
|
34603
|
-
selectedItems() {
|
|
34604
|
-
const items = Array.from(this.selection.get(this.id));
|
|
34605
|
-
return items;
|
|
34606
|
-
}
|
|
34607
34775
|
/**
|
|
34608
34776
|
* Select defined items
|
|
34609
34777
|
*
|
|
34610
34778
|
* @param newItems new items to be selected
|
|
34611
34779
|
* @param clearCurrentSelection if true clear previous selected items
|
|
34612
34780
|
* ```typescript
|
|
34613
|
-
* this.combo.
|
|
34781
|
+
* this.combo.select(["New York", "New Jersey"]);
|
|
34614
34782
|
* ```
|
|
34615
34783
|
*/
|
|
34616
|
-
|
|
34784
|
+
select(newItems, clearCurrentSelection, event) {
|
|
34617
34785
|
if (newItems) {
|
|
34618
|
-
const newSelection = this.
|
|
34786
|
+
const newSelection = this.selectionService.add_items(this.id, newItems, clearCurrentSelection);
|
|
34619
34787
|
this.setSelection(newSelection, event);
|
|
34620
34788
|
}
|
|
34621
34789
|
}
|
|
@@ -34624,12 +34792,12 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34624
34792
|
*
|
|
34625
34793
|
* @param items items to deselected
|
|
34626
34794
|
* ```typescript
|
|
34627
|
-
* this.combo.
|
|
34795
|
+
* this.combo.deselect(["New York", "New Jersey"]);
|
|
34628
34796
|
* ```
|
|
34629
34797
|
*/
|
|
34630
|
-
|
|
34798
|
+
deselect(items, event) {
|
|
34631
34799
|
if (items) {
|
|
34632
|
-
const newSelection = this.
|
|
34800
|
+
const newSelection = this.selectionService.delete_items(this.id, items);
|
|
34633
34801
|
this.setSelection(newSelection, event);
|
|
34634
34802
|
}
|
|
34635
34803
|
}
|
|
@@ -34642,8 +34810,8 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34642
34810
|
* ```
|
|
34643
34811
|
*/
|
|
34644
34812
|
selectAllItems(ignoreFilter, event) {
|
|
34645
|
-
const allVisible = this.
|
|
34646
|
-
const newSelection = this.
|
|
34813
|
+
const allVisible = this.selectionService.get_all_ids(ignoreFilter ? this.data : this.filteredData, this.valueKey);
|
|
34814
|
+
const newSelection = this.selectionService.add_items(this.id, allVisible);
|
|
34647
34815
|
this.setSelection(newSelection, event);
|
|
34648
34816
|
}
|
|
34649
34817
|
/**
|
|
@@ -34655,9 +34823,9 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34655
34823
|
* ```
|
|
34656
34824
|
*/
|
|
34657
34825
|
deselectAllItems(ignoreFilter, event) {
|
|
34658
|
-
let newSelection = this.
|
|
34826
|
+
let newSelection = this.selectionService.get_empty();
|
|
34659
34827
|
if (this.filteredData.length !== this.data.length && !ignoreFilter) {
|
|
34660
|
-
newSelection = this.
|
|
34828
|
+
newSelection = this.selectionService.delete_items(this.id, this.selectionService.get_all_ids(this.filteredData, this.valueKey));
|
|
34661
34829
|
}
|
|
34662
34830
|
this.setSelection(newSelection, event);
|
|
34663
34831
|
}
|
|
@@ -34685,26 +34853,19 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34685
34853
|
return;
|
|
34686
34854
|
}
|
|
34687
34855
|
if (select) {
|
|
34688
|
-
this.
|
|
34856
|
+
this.select([itemID], false, event);
|
|
34689
34857
|
}
|
|
34690
34858
|
else {
|
|
34691
|
-
this.
|
|
34859
|
+
this.deselect([itemID], event);
|
|
34692
34860
|
}
|
|
34693
34861
|
}
|
|
34694
|
-
/**
|
|
34695
|
-
* Event handlers
|
|
34696
|
-
*
|
|
34697
|
-
* @hidden
|
|
34698
|
-
* @internal
|
|
34699
|
-
*/
|
|
34700
|
-
handleOpening(e) {
|
|
34701
|
-
const args = { owner: this, event: e.event, cancel: e.cancel };
|
|
34702
|
-
this.opening.emit(args);
|
|
34703
|
-
e.cancel = args.cancel;
|
|
34704
|
-
}
|
|
34705
34862
|
/**
|
|
34706
34863
|
* @hidden @internal
|
|
34707
34864
|
*/
|
|
34865
|
+
toggleCaseSensitive() {
|
|
34866
|
+
this.filteringOptions = { caseSensitive: !this.filteringOptions.caseSensitive };
|
|
34867
|
+
}
|
|
34868
|
+
/** @hidden @internal */
|
|
34708
34869
|
handleOpened() {
|
|
34709
34870
|
this.triggerCheck();
|
|
34710
34871
|
// Disabling focus of the search input should happen only when drop down opens.
|
|
@@ -34718,36 +34879,26 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34718
34879
|
}
|
|
34719
34880
|
this.opened.emit({ owner: this });
|
|
34720
34881
|
}
|
|
34721
|
-
/**
|
|
34722
|
-
|
|
34723
|
-
|
|
34724
|
-
|
|
34725
|
-
|
|
34726
|
-
|
|
34727
|
-
|
|
34728
|
-
|
|
34729
|
-
|
|
34882
|
+
/** @hidden @internal */
|
|
34883
|
+
focusSearchInput(opening) {
|
|
34884
|
+
if (this.displaySearchInput && this.searchInput) {
|
|
34885
|
+
this.searchInput.nativeElement.focus();
|
|
34886
|
+
}
|
|
34887
|
+
else {
|
|
34888
|
+
if (opening) {
|
|
34889
|
+
this.dropdownContainer.nativeElement.focus();
|
|
34890
|
+
}
|
|
34891
|
+
else {
|
|
34892
|
+
this.comboInput.nativeElement.focus();
|
|
34893
|
+
this.toggle();
|
|
34894
|
+
}
|
|
34730
34895
|
}
|
|
34731
|
-
this.searchValue = '';
|
|
34732
|
-
this.comboInput.nativeElement.focus();
|
|
34733
|
-
}
|
|
34734
|
-
/**
|
|
34735
|
-
* @hidden @internal
|
|
34736
|
-
*/
|
|
34737
|
-
handleClosed() {
|
|
34738
|
-
this.closed.emit({ owner: this });
|
|
34739
|
-
}
|
|
34740
|
-
/**
|
|
34741
|
-
* @hidden @internal
|
|
34742
|
-
*/
|
|
34743
|
-
toggleCaseSensitive() {
|
|
34744
|
-
this.filteringOptions = { caseSensitive: !this.filteringOptions.caseSensitive };
|
|
34745
34896
|
}
|
|
34746
34897
|
setSelection(newSelection, event) {
|
|
34747
|
-
const removed = diffInSets(this.
|
|
34748
|
-
const added = diffInSets(newSelection, this.
|
|
34898
|
+
const removed = diffInSets(this.selectionService.get(this.id), newSelection);
|
|
34899
|
+
const added = diffInSets(newSelection, this.selectionService.get(this.id));
|
|
34749
34900
|
const newSelectionAsArray = Array.from(newSelection);
|
|
34750
|
-
const oldSelectionAsArray = Array.from(this.
|
|
34901
|
+
const oldSelectionAsArray = Array.from(this.selectionService.get(this.id) || []);
|
|
34751
34902
|
const displayText = this.createDisplayText(newSelectionAsArray, oldSelectionAsArray);
|
|
34752
34903
|
const args = {
|
|
34753
34904
|
newSelection: newSelectionAsArray,
|
|
@@ -34761,7 +34912,7 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34761
34912
|
};
|
|
34762
34913
|
this.selectionChanging.emit(args);
|
|
34763
34914
|
if (!args.cancel) {
|
|
34764
|
-
this.
|
|
34915
|
+
this.selectionService.select_items(this.id, args.newSelection, true);
|
|
34765
34916
|
if (displayText !== args.displayText) {
|
|
34766
34917
|
this._value = args.displayText;
|
|
34767
34918
|
}
|
|
@@ -34771,44 +34922,10 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34771
34922
|
this._onChangeCallback(args.newSelection);
|
|
34772
34923
|
}
|
|
34773
34924
|
}
|
|
34774
|
-
|
|
34775
|
-
|
|
34776
|
-
|
|
34777
|
-
|
|
34778
|
-
this.inputGroup.isRequired = error && error.required;
|
|
34779
|
-
}
|
|
34780
|
-
}
|
|
34781
|
-
/** Contains key-value pairs of the selected valueKeys and their resp. displayKeys */
|
|
34782
|
-
registerRemoteEntries(ids, add = true) {
|
|
34783
|
-
if (add) {
|
|
34784
|
-
const selection = this.getValueDisplayPairs(ids);
|
|
34785
|
-
for (const entry of selection) {
|
|
34786
|
-
this._remoteSelection[entry[this.valueKey]] = entry[this.displayKey];
|
|
34787
|
-
}
|
|
34788
|
-
}
|
|
34789
|
-
else {
|
|
34790
|
-
for (const entry of ids) {
|
|
34791
|
-
delete this._remoteSelection[entry];
|
|
34792
|
-
}
|
|
34793
|
-
}
|
|
34794
|
-
}
|
|
34795
|
-
/**
|
|
34796
|
-
* For `id: any[]` returns a mapped `{ [combo.valueKey]: any, [combo.displayKey]: any }[]`
|
|
34797
|
-
*/
|
|
34798
|
-
getValueDisplayPairs(ids) {
|
|
34799
|
-
return this.data.filter(entry => ids.indexOf(entry[this.valueKey]) > -1).map(e => ({
|
|
34800
|
-
[this.valueKey]: e[this.valueKey],
|
|
34801
|
-
[this.displayKey]: e[this.displayKey]
|
|
34802
|
-
}));
|
|
34803
|
-
}
|
|
34804
|
-
checkMatch() {
|
|
34805
|
-
const displayKey = this.displayKey;
|
|
34806
|
-
const matchFn = (e) => {
|
|
34807
|
-
const value = displayKey ? e[displayKey] : e;
|
|
34808
|
-
return value.toString().toLowerCase() === this.searchValue.trim().toLowerCase();
|
|
34809
|
-
};
|
|
34810
|
-
const itemMatch = this.filteredData.some(matchFn);
|
|
34811
|
-
this.customValueFlag = this.allowCustomValues && !itemMatch;
|
|
34925
|
+
createDisplayText(newSelection, oldSelection) {
|
|
34926
|
+
return this.isRemote
|
|
34927
|
+
? this.getRemoteSelection(newSelection, oldSelection)
|
|
34928
|
+
: this.concatDisplayText(newSelection);
|
|
34812
34929
|
}
|
|
34813
34930
|
/** Returns a string that should be populated in the combo's text box */
|
|
34814
34931
|
concatDisplayText(selection) {
|
|
@@ -34817,53 +34934,20 @@ class IgxComboComponent extends DisplayDensityBase {
|
|
|
34817
34934
|
selection.join(', ');
|
|
34818
34935
|
return value;
|
|
34819
34936
|
}
|
|
34820
|
-
/**
|
|
34821
|
-
* Constructs the combo display value
|
|
34822
|
-
* If remote, caches the key displayText
|
|
34823
|
-
* If not, just combine the object.displayKeys
|
|
34824
|
-
*/
|
|
34825
|
-
createDisplayText(newSelection, oldSelection) {
|
|
34826
|
-
let value = '';
|
|
34827
|
-
if (this.isRemote) {
|
|
34828
|
-
if (newSelection.length) {
|
|
34829
|
-
const removedItems = oldSelection.filter(e => newSelection.indexOf(e) < 0);
|
|
34830
|
-
const addedItems = newSelection.filter(e => oldSelection.indexOf(e) < 0);
|
|
34831
|
-
this.registerRemoteEntries(addedItems);
|
|
34832
|
-
this.registerRemoteEntries(removedItems, false);
|
|
34833
|
-
value = Object.keys(this._remoteSelection).map(e => this._remoteSelection[e]).join(', ');
|
|
34834
|
-
}
|
|
34835
|
-
else {
|
|
34836
|
-
// If new selection is empty, clear all items
|
|
34837
|
-
this.registerRemoteEntries(oldSelection, false);
|
|
34838
|
-
}
|
|
34839
|
-
}
|
|
34840
|
-
else {
|
|
34841
|
-
value = this.concatDisplayText(newSelection);
|
|
34842
|
-
}
|
|
34843
|
-
return value;
|
|
34844
|
-
}
|
|
34845
|
-
/** if there is a valueKey - map the keys to data items, else - just return the keys */
|
|
34846
|
-
convertKeysToItems(keys) {
|
|
34847
|
-
if (this.comboAPI.valueKey === null) {
|
|
34848
|
-
return keys;
|
|
34849
|
-
}
|
|
34850
|
-
// map keys vs. filter data to retain the order of the selected items
|
|
34851
|
-
return keys.map(key => this.data.find(entry => entry[this.valueKey] === key)).filter(e => e !== undefined);
|
|
34852
|
-
}
|
|
34853
34937
|
}
|
|
34854
34938
|
IgxComboComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: IgxSelectionAPIService }, { token: IgxComboAPIService }, { token: IgxIconService }, { token: DisplayDensityToken, optional: true }, { token: IGX_INPUT_GROUP_TYPE, optional: true }, { token: i0.Injector, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
34855
|
-
IgxComboComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboComponent, selector: "igx-combo", inputs: {
|
|
34939
|
+
IgxComboComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxComboComponent, selector: "igx-combo", inputs: { showSearchCaseIcon: "showSearchCaseIcon", autoFocusSearch: "autoFocusSearch", filterable: "filterable", searchPlaceholder: "searchPlaceholder" }, providers: [
|
|
34856
34940
|
IgxComboAPIService,
|
|
34857
34941
|
{ provide: IGX_COMBO_COMPONENT, useExisting: IgxComboComponent },
|
|
34858
34942
|
{ provide: NG_VALUE_ACCESSOR, useExisting: IgxComboComponent, multi: true }
|
|
34859
|
-
], queries: [{ propertyName: "itemTemplate", first: true, predicate: IgxComboItemDirective, descendants: true, read: TemplateRef }, { propertyName: "headerTemplate", first: true, predicate: IgxComboHeaderDirective, descendants: true, read: TemplateRef }, { propertyName: "footerTemplate", first: true, predicate: IgxComboFooterDirective, descendants: true, read: TemplateRef }, { propertyName: "headerItemTemplate", first: true, predicate: IgxComboHeaderItemDirective, descendants: true, read: TemplateRef }, { propertyName: "addItemTemplate", first: true, predicate: IgxComboAddItemDirective, descendants: true, read: TemplateRef }, { propertyName: "emptyTemplate", first: true, predicate: IgxComboEmptyDirective, descendants: true, read: TemplateRef }, { propertyName: "toggleIconTemplate", first: true, predicate: IgxComboToggleIconDirective, descendants: true, read: TemplateRef }, { propertyName: "clearIconTemplate", first: true, predicate: IgxComboClearIconDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "inputGroup", first: true, predicate: ["inputGroup"], descendants: true, read: IgxInputGroupComponent, static: true }, { propertyName: "comboInput", first: true, predicate: ["comboInput"], descendants: true, read: IgxInputDirective, static: true }, { propertyName: "dropdown", first: true, predicate: IgxComboDropDownComponent, descendants: true, read: IgxComboDropDownComponent, static: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "virtualScrollContainer", first: true, predicate: IgxForOfDirective, descendants: true, static: true }, { propertyName: "dropdownContainer", first: true, predicate: ["dropdownItemContainer"], descendants: true, static: true }, { propertyName: "primitiveTemplate", first: true, predicate: ["primitive"], descendants: true, read: TemplateRef, static: true }, { propertyName: "complexTemplate", first: true, predicate: ["complex"], descendants: true, read: TemplateRef, static: true }, { propertyName: "virtDir", first: true, predicate: IgxForOfDirective, descendants: true, read: IgxForOfDirective, static: true }], usesInheritance: true, ngImport: i0, template: "<igx-input-group #inputGroup [displayDensity]=\"displayDensity\" [type]=\"type\" (click)=\"onInputClick($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:filterable:filteringOptions\n | comboGrouping:groupKey:valueKey:groupSortingDirection;\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 <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>The list is empty</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", components: [{ type: i0.forwardRef(function () { return IgxInputGroupComponent; }), selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { type: i0.forwardRef(function () { return IgxIconComponent; }), selector: "igx-icon", inputs: ["family", "active", "name"] }, { type: i0.forwardRef(function () { return IgxComboDropDownComponent; }), selector: "igx-combo-drop-down" }, { type: i0.forwardRef(function () { return IgxComboItemComponent; }), selector: "igx-combo-item", inputs: ["itemHeight"] }, { type: i0.forwardRef(function () { return IgxComboAddItemComponent; }), selector: "igx-combo-add-item" }], directives: [{ type: i0.forwardRef(function () { return IgxInputDirective; }), selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { type: i0.forwardRef(function () { return i4.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return IgxSuffixDirective; }), selector: "igx-suffix,[igxSuffix]" }, { type: i0.forwardRef(function () { return i4.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i0.forwardRef(function () { return i12.DefaultValueAccessor; }), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i0.forwardRef(function () { return i12.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { type: i0.forwardRef(function () { return i12.NgModel; }), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i0.forwardRef(function () { return IgxDropDownItemNavigationDirective; }), selector: "[igxDropDownItemNavigation]", inputs: ["igxDropDownItemNavigation"] }, { type: i0.forwardRef(function () { return IgxForOfDirective; }), selector: "[igxFor][igxForOf]", inputs: ["igxForOf", "igxForSizePropName", "igxForScrollOrientation", "igxForScrollContainer", "igxForContainerSize", "igxForItemSize", "igxForTotalItemCount", "igxForTrackBy"], outputs: ["chunkLoad", "scrollbarVisibilityChanged", "contentSizeChange", "dataChanged", "beforeViewDestroyed", "chunkPreload"] }, { type: i0.forwardRef(function () { return IgxButtonDirective; }), selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: i0.forwardRef(function () { return IgxRippleDirective; }), selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }], pipes: { "comboGrouping": i0.forwardRef(function () { return IgxComboGroupingPipe; }), "comboFiltering": i0.forwardRef(function () { return IgxComboFilteringPipe; }) } });
|
|
34943
|
+
], viewQueries: [{ propertyName: "dropdown", first: true, predicate: IgxComboDropDownComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, 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:groupSortingDirection;\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 <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>The list is empty</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", components: [{ type: i0.forwardRef(function () { return IgxInputGroupComponent; }), selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { type: i0.forwardRef(function () { return IgxIconComponent; }), selector: "igx-icon", inputs: ["family", "active", "name"] }, { type: i0.forwardRef(function () { return IgxComboDropDownComponent; }), selector: "igx-combo-drop-down", inputs: ["singleMode"] }, { type: i0.forwardRef(function () { return IgxComboItemComponent; }), selector: "igx-combo-item", inputs: ["itemHeight", "singleMode"] }, { type: i0.forwardRef(function () { return IgxComboAddItemComponent; }), selector: "igx-combo-add-item" }], directives: [{ type: i0.forwardRef(function () { return IgxInputDirective; }), selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { type: i0.forwardRef(function () { return i4.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return IgxSuffixDirective; }), selector: "igx-suffix,[igxSuffix]" }, { type: i0.forwardRef(function () { return i4.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i0.forwardRef(function () { return i12.DefaultValueAccessor; }), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i0.forwardRef(function () { return i12.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { type: i0.forwardRef(function () { return i12.NgModel; }), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i0.forwardRef(function () { return IgxDropDownItemNavigationDirective; }), selector: "[igxDropDownItemNavigation]", inputs: ["igxDropDownItemNavigation"] }, { type: i0.forwardRef(function () { return IgxForOfDirective; }), selector: "[igxFor][igxForOf]", inputs: ["igxForOf", "igxForSizePropName", "igxForScrollOrientation", "igxForScrollContainer", "igxForContainerSize", "igxForItemSize", "igxForTotalItemCount", "igxForTrackBy"], outputs: ["chunkLoad", "scrollbarVisibilityChanged", "contentSizeChange", "dataChanged", "beforeViewDestroyed", "chunkPreload"] }, { type: i0.forwardRef(function () { return IgxButtonDirective; }), selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: i0.forwardRef(function () { return IgxRippleDirective; }), selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }], pipes: { "comboGrouping": i0.forwardRef(function () { return IgxComboGroupingPipe; }), "comboFiltering": i0.forwardRef(function () { return IgxComboFilteringPipe; }) } });
|
|
34860
34944
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxComboComponent, decorators: [{
|
|
34861
34945
|
type: Component,
|
|
34862
34946
|
args: [{ selector: 'igx-combo', providers: [
|
|
34863
34947
|
IgxComboAPIService,
|
|
34864
34948
|
{ provide: IGX_COMBO_COMPONENT, useExisting: IgxComboComponent },
|
|
34865
34949
|
{ provide: NG_VALUE_ACCESSOR, useExisting: IgxComboComponent, multi: true }
|
|
34866
|
-
], template: "<igx-input-group #inputGroup [displayDensity]=\"displayDensity\" [type]=\"type\" (click)=\"
|
|
34950
|
+
], 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:groupSortingDirection;\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 <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>The list is empty</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" }]
|
|
34867
34951
|
}], ctorParameters: function () {
|
|
34868
34952
|
return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: IgxSelectionAPIService }, { type: IgxComboAPIService }, { type: IgxIconService }, { type: undefined, decorators: [{
|
|
34869
34953
|
type: Optional
|
|
@@ -34878,143 +34962,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
34878
34962
|
}] }, { type: i0.Injector, decorators: [{
|
|
34879
34963
|
type: Optional
|
|
34880
34964
|
}] }];
|
|
34881
|
-
}, propDecorators: {
|
|
34882
|
-
type: Input
|
|
34883
|
-
}], inputGroup: [{
|
|
34884
|
-
type: ViewChild,
|
|
34885
|
-
args: ['inputGroup', { read: IgxInputGroupComponent, static: true }]
|
|
34886
|
-
}], comboInput: [{
|
|
34887
|
-
type: ViewChild,
|
|
34888
|
-
args: ['comboInput', { read: IgxInputDirective, static: true }]
|
|
34889
|
-
}], dropdown: [{
|
|
34890
|
-
type: ViewChild,
|
|
34891
|
-
args: [IgxComboDropDownComponent, { read: IgxComboDropDownComponent, static: true }]
|
|
34892
|
-
}], searchInput: [{
|
|
34893
|
-
type: ViewChild,
|
|
34894
|
-
args: ['searchInput']
|
|
34895
|
-
}], itemTemplate: [{
|
|
34896
|
-
type: ContentChild,
|
|
34897
|
-
args: [IgxComboItemDirective, { read: TemplateRef }]
|
|
34898
|
-
}], headerTemplate: [{
|
|
34899
|
-
type: ContentChild,
|
|
34900
|
-
args: [IgxComboHeaderDirective, { read: TemplateRef }]
|
|
34901
|
-
}], footerTemplate: [{
|
|
34902
|
-
type: ContentChild,
|
|
34903
|
-
args: [IgxComboFooterDirective, { read: TemplateRef }]
|
|
34904
|
-
}], headerItemTemplate: [{
|
|
34905
|
-
type: ContentChild,
|
|
34906
|
-
args: [IgxComboHeaderItemDirective, { read: TemplateRef }]
|
|
34907
|
-
}], addItemTemplate: [{
|
|
34908
|
-
type: ContentChild,
|
|
34909
|
-
args: [IgxComboAddItemDirective, { read: TemplateRef }]
|
|
34910
|
-
}], emptyTemplate: [{
|
|
34911
|
-
type: ContentChild,
|
|
34912
|
-
args: [IgxComboEmptyDirective, { read: TemplateRef }]
|
|
34913
|
-
}], toggleIconTemplate: [{
|
|
34914
|
-
type: ContentChild,
|
|
34915
|
-
args: [IgxComboToggleIconDirective, { read: TemplateRef }]
|
|
34916
|
-
}], clearIconTemplate: [{
|
|
34917
|
-
type: ContentChild,
|
|
34918
|
-
args: [IgxComboClearIconDirective, { read: TemplateRef }]
|
|
34919
|
-
}], virtualScrollContainer: [{
|
|
34920
|
-
type: ViewChild,
|
|
34921
|
-
args: [IgxForOfDirective, { static: true }]
|
|
34922
|
-
}], selectionChanging: [{
|
|
34923
|
-
type: Output
|
|
34924
|
-
}], opening: [{
|
|
34925
|
-
type: Output
|
|
34926
|
-
}], opened: [{
|
|
34927
|
-
type: Output
|
|
34928
|
-
}], closing: [{
|
|
34929
|
-
type: Output
|
|
34930
|
-
}], closed: [{
|
|
34931
|
-
type: Output
|
|
34932
|
-
}], addition: [{
|
|
34933
|
-
type: Output
|
|
34934
|
-
}], searchInputUpdate: [{
|
|
34935
|
-
type: Output
|
|
34936
|
-
}], dataPreLoad: [{
|
|
34937
|
-
type: Output
|
|
34938
|
-
}], id: [{
|
|
34939
|
-
type: HostBinding,
|
|
34940
|
-
args: ['attr.id']
|
|
34941
|
-
}, {
|
|
34942
|
-
type: Input
|
|
34943
|
-
}], width: [{
|
|
34944
|
-
type: HostBinding,
|
|
34945
|
-
args: ['style.width']
|
|
34946
|
-
}, {
|
|
34947
|
-
type: Input
|
|
34948
|
-
}], cssClass: [{
|
|
34949
|
-
type: HostBinding,
|
|
34950
|
-
args: ['class.igx-combo']
|
|
34951
|
-
}], role: [{
|
|
34952
|
-
type: HostBinding,
|
|
34953
|
-
args: [`attr.role`]
|
|
34954
|
-
}], ariaExpanded: [{
|
|
34955
|
-
type: HostBinding,
|
|
34956
|
-
args: ['attr.aria-expanded']
|
|
34957
|
-
}], hasPopUp: [{
|
|
34958
|
-
type: HostBinding,
|
|
34959
|
-
args: ['attr.aria-haspopup']
|
|
34960
|
-
}], ariaOwns: [{
|
|
34961
|
-
type: HostBinding,
|
|
34962
|
-
args: ['attr.aria-owns']
|
|
34963
|
-
}], allowCustomValues: [{
|
|
34964
|
-
type: Input
|
|
34965
|
-
}], itemsMaxHeight: [{
|
|
34966
|
-
type: Input
|
|
34967
|
-
}], itemsWidth: [{
|
|
34968
|
-
type: Input
|
|
34969
|
-
}], itemHeight: [{
|
|
34970
|
-
type: Input
|
|
34971
|
-
}], placeholder: [{
|
|
34965
|
+
}, propDecorators: { showSearchCaseIcon: [{
|
|
34972
34966
|
type: Input
|
|
34973
|
-
}],
|
|
34974
|
-
type: Input
|
|
34975
|
-
}], showSearchCaseIcon: [{
|
|
34976
|
-
type: Input
|
|
34977
|
-
}], data: [{
|
|
34978
|
-
type: Input
|
|
34979
|
-
}], valueKey: [{
|
|
34980
|
-
type: Input
|
|
34981
|
-
}], displayKey: [{
|
|
34982
|
-
type: Input
|
|
34983
|
-
}], groupKey: [{
|
|
34967
|
+
}], autoFocusSearch: [{
|
|
34984
34968
|
type: Input
|
|
34985
34969
|
}], filterable: [{
|
|
34986
34970
|
type: Input
|
|
34987
|
-
}],
|
|
34988
|
-
type: Input
|
|
34989
|
-
}], ariaLabelledBy: [{
|
|
34990
|
-
type: Input
|
|
34991
|
-
}, {
|
|
34992
|
-
type: HostBinding,
|
|
34993
|
-
args: ['attr.aria-labelledby']
|
|
34994
|
-
}], disabled: [{
|
|
34995
|
-
type: Input
|
|
34996
|
-
}], type: [{
|
|
34997
|
-
type: Input
|
|
34998
|
-
}], autoFocusSearch: [{
|
|
34971
|
+
}], searchPlaceholder: [{
|
|
34999
34972
|
type: Input
|
|
35000
|
-
}],
|
|
35001
|
-
type: ViewChild,
|
|
35002
|
-
args: ['dropdownItemContainer', { static: true }]
|
|
35003
|
-
}], primitiveTemplate: [{
|
|
35004
|
-
type: ViewChild,
|
|
35005
|
-
args: ['primitive', { read: TemplateRef, static: true }]
|
|
35006
|
-
}], complexTemplate: [{
|
|
35007
|
-
type: ViewChild,
|
|
35008
|
-
args: ['complex', { read: TemplateRef, static: true }]
|
|
35009
|
-
}], virtDir: [{
|
|
34973
|
+
}], dropdown: [{
|
|
35010
34974
|
type: ViewChild,
|
|
35011
|
-
args: [
|
|
35012
|
-
}], onArrowDown: [{
|
|
35013
|
-
type: HostListener,
|
|
35014
|
-
args: ['keydown.ArrowDown', ['$event']]
|
|
35015
|
-
}, {
|
|
35016
|
-
type: HostListener,
|
|
35017
|
-
args: ['keydown.Alt.ArrowDown', ['$event']]
|
|
34975
|
+
args: [IgxComboDropDownComponent, { static: true }]
|
|
35018
34976
|
}] } });
|
|
35019
34977
|
/**
|
|
35020
34978
|
* @hidden
|
|
@@ -35043,11 +35001,16 @@ IgxComboModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
35043
35001
|
IgxInputGroupModule,
|
|
35044
35002
|
IgxRippleModule,
|
|
35045
35003
|
IgxToggleModule,
|
|
35046
|
-
ReactiveFormsModule], exports: [
|
|
35047
|
-
|
|
35004
|
+
ReactiveFormsModule], exports: [IgxComboAddItemComponent,
|
|
35005
|
+
IgxComboAddItemDirective,
|
|
35006
|
+
IgxComboClearIconDirective, IgxComboComponent, IgxComboDropDownComponent,
|
|
35007
|
+
IgxComboEmptyDirective,
|
|
35008
|
+
IgxComboFilteringPipe,
|
|
35048
35009
|
IgxComboFooterDirective,
|
|
35010
|
+
IgxComboGroupingPipe,
|
|
35049
35011
|
IgxComboHeaderDirective,
|
|
35050
35012
|
IgxComboHeaderItemDirective,
|
|
35013
|
+
IgxComboItemComponent,
|
|
35051
35014
|
IgxComboItemDirective,
|
|
35052
35015
|
IgxComboToggleIconDirective,
|
|
35053
35016
|
IgxInputGroupModule] });
|
|
@@ -35084,13 +35047,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
35084
35047
|
IgxComboToggleIconDirective
|
|
35085
35048
|
],
|
|
35086
35049
|
exports: [
|
|
35050
|
+
IgxComboAddItemComponent,
|
|
35087
35051
|
IgxComboAddItemDirective,
|
|
35088
35052
|
IgxComboClearIconDirective,
|
|
35089
35053
|
IgxComboComponent,
|
|
35054
|
+
IgxComboDropDownComponent,
|
|
35090
35055
|
IgxComboEmptyDirective,
|
|
35056
|
+
IgxComboFilteringPipe,
|
|
35091
35057
|
IgxComboFooterDirective,
|
|
35058
|
+
IgxComboGroupingPipe,
|
|
35092
35059
|
IgxComboHeaderDirective,
|
|
35093
35060
|
IgxComboHeaderItemDirective,
|
|
35061
|
+
IgxComboItemComponent,
|
|
35094
35062
|
IgxComboItemDirective,
|
|
35095
35063
|
IgxComboToggleIconDirective,
|
|
35096
35064
|
IgxInputGroupModule
|
|
@@ -35111,6 +35079,346 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
35111
35079
|
}]
|
|
35112
35080
|
}] });
|
|
35113
35081
|
|
|
35082
|
+
/**
|
|
35083
|
+
* Represents a drop-down list that provides filtering functionality, allowing users to choose a single option from a predefined list.
|
|
35084
|
+
*
|
|
35085
|
+
* @igxModule IgxSimpleComboModule
|
|
35086
|
+
* @igxTheme igx-combo-theme
|
|
35087
|
+
* @igxKeywords combobox, single combo selection
|
|
35088
|
+
* @igxGroup Grids & Lists
|
|
35089
|
+
*
|
|
35090
|
+
* @remarks
|
|
35091
|
+
* It provides the ability to filter items as well as perform single selection on the provided data.
|
|
35092
|
+
* Additionally, it exposes keyboard navigation and custom styling capabilities.
|
|
35093
|
+
* @example
|
|
35094
|
+
* ```html
|
|
35095
|
+
* <igx-simple-combo [itemsMaxHeight]="250" [data]="locationData"
|
|
35096
|
+
* [displayKey]="'field'" [valueKey]="'field'"
|
|
35097
|
+
* placeholder="Location" searchPlaceholder="Search...">
|
|
35098
|
+
* </igx-simple-combo>
|
|
35099
|
+
* ```
|
|
35100
|
+
*/
|
|
35101
|
+
class IgxSimpleComboComponent extends IgxComboBaseDirective {
|
|
35102
|
+
constructor(elementRef, cdr, selectionService, comboAPI, _iconService, platformUtil, _displayDensityOptions, _inputGroupType, _injector) {
|
|
35103
|
+
super(elementRef, cdr, selectionService, comboAPI, _iconService, _displayDensityOptions, _inputGroupType, _injector);
|
|
35104
|
+
this.elementRef = elementRef;
|
|
35105
|
+
this.cdr = cdr;
|
|
35106
|
+
this.selectionService = selectionService;
|
|
35107
|
+
this.comboAPI = comboAPI;
|
|
35108
|
+
this._iconService = _iconService;
|
|
35109
|
+
this.platformUtil = platformUtil;
|
|
35110
|
+
this._displayDensityOptions = _displayDensityOptions;
|
|
35111
|
+
this._inputGroupType = _inputGroupType;
|
|
35112
|
+
this._injector = _injector;
|
|
35113
|
+
/**
|
|
35114
|
+
* Emitted when item selection is changing, before the selection completes
|
|
35115
|
+
*
|
|
35116
|
+
* ```html
|
|
35117
|
+
* <igx-simple-combo (selectionChanging)='handleSelection()'></igx-simple-combo>
|
|
35118
|
+
* ```
|
|
35119
|
+
*/
|
|
35120
|
+
this.selectionChanging = new EventEmitter();
|
|
35121
|
+
/** @hidden @internal */
|
|
35122
|
+
this.composing = false;
|
|
35123
|
+
this._updateInput = true;
|
|
35124
|
+
this.findMatch = (element) => {
|
|
35125
|
+
const value = this.displayKey ? element[this.displayKey] : element;
|
|
35126
|
+
return value.toString().toLowerCase().includes(this.searchValue.trim().toLowerCase());
|
|
35127
|
+
};
|
|
35128
|
+
this.comboAPI.register(this);
|
|
35129
|
+
}
|
|
35130
|
+
/** @hidden @internal */
|
|
35131
|
+
get filteredData() {
|
|
35132
|
+
return this._filteredData;
|
|
35133
|
+
}
|
|
35134
|
+
/** @hidden @internal */
|
|
35135
|
+
set filteredData(val) {
|
|
35136
|
+
this._filteredData = this.groupKey ? (val || []).filter((e) => e.isHeader !== true) : val;
|
|
35137
|
+
this.checkMatch();
|
|
35138
|
+
}
|
|
35139
|
+
/**
|
|
35140
|
+
* Select a defined item
|
|
35141
|
+
*
|
|
35142
|
+
* @param item the item to be selected
|
|
35143
|
+
* ```typescript
|
|
35144
|
+
* this.combo.select("New York");
|
|
35145
|
+
* ```
|
|
35146
|
+
*/
|
|
35147
|
+
select(item) {
|
|
35148
|
+
if (item !== null && item !== undefined) {
|
|
35149
|
+
const newSelection = this.selectionService.add_items(this.id, item instanceof Array ? item : [item], true);
|
|
35150
|
+
this.setSelection(newSelection);
|
|
35151
|
+
}
|
|
35152
|
+
}
|
|
35153
|
+
/**
|
|
35154
|
+
* Deselect the currently selected item
|
|
35155
|
+
*
|
|
35156
|
+
* @param item the items to be deselected
|
|
35157
|
+
* ```typescript
|
|
35158
|
+
* this.combo.deselect("New York");
|
|
35159
|
+
* ```
|
|
35160
|
+
*/
|
|
35161
|
+
deselect() {
|
|
35162
|
+
this.clearSelection();
|
|
35163
|
+
}
|
|
35164
|
+
/** @hidden @internal */
|
|
35165
|
+
writeValue(value) {
|
|
35166
|
+
const oldSelection = this.selection;
|
|
35167
|
+
this.selectionService.select_items(this.id, value ? [value] : [], true);
|
|
35168
|
+
this.cdr.markForCheck();
|
|
35169
|
+
this._value = this.createDisplayText(this.selection, oldSelection);
|
|
35170
|
+
}
|
|
35171
|
+
/** @hidden @internal */
|
|
35172
|
+
ngAfterViewInit() {
|
|
35173
|
+
this.virtDir.contentSizeChange.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
35174
|
+
if (this.selection.length > 0) {
|
|
35175
|
+
const index = this.virtDir.igxForOf.findIndex(e => {
|
|
35176
|
+
let current = e[this.valueKey];
|
|
35177
|
+
if (this.valueKey === null || this.valueKey === undefined) {
|
|
35178
|
+
current = e;
|
|
35179
|
+
}
|
|
35180
|
+
return current === this.selection[0];
|
|
35181
|
+
});
|
|
35182
|
+
this.dropdown.navigateItem(index);
|
|
35183
|
+
}
|
|
35184
|
+
});
|
|
35185
|
+
this.dropdown.opened.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
35186
|
+
if (this.composing) {
|
|
35187
|
+
this.comboInput.focus();
|
|
35188
|
+
}
|
|
35189
|
+
if (this.comboInput.value.length === 0) {
|
|
35190
|
+
this.dropdown.navigateFirst();
|
|
35191
|
+
this.dropdownContainer.nativeElement.focus();
|
|
35192
|
+
}
|
|
35193
|
+
});
|
|
35194
|
+
super.ngAfterViewInit();
|
|
35195
|
+
}
|
|
35196
|
+
/** @hidden @internal */
|
|
35197
|
+
handleInputChange(event) {
|
|
35198
|
+
this.searchValue = event.target.value;
|
|
35199
|
+
this._onChangeCallback(this.searchValue);
|
|
35200
|
+
if (this.collapsed) {
|
|
35201
|
+
this.open();
|
|
35202
|
+
this.dropdown.navigateFirst();
|
|
35203
|
+
}
|
|
35204
|
+
if (!this.comboInput.value.trim()) {
|
|
35205
|
+
// handle clearing of input by space
|
|
35206
|
+
this.clearSelection();
|
|
35207
|
+
this._onChangeCallback(null);
|
|
35208
|
+
}
|
|
35209
|
+
super.handleInputChange(event);
|
|
35210
|
+
this.composing = true;
|
|
35211
|
+
}
|
|
35212
|
+
/** @hidden @internal */
|
|
35213
|
+
handleKeyDown(event) {
|
|
35214
|
+
if (event.key === this.platformUtil.KEYMAP.ENTER) {
|
|
35215
|
+
const filtered = this.filteredData.find(this.findMatch);
|
|
35216
|
+
if (filtered === null || filtered === undefined) {
|
|
35217
|
+
return;
|
|
35218
|
+
}
|
|
35219
|
+
this.select(this.dropdown.items[0].itemID);
|
|
35220
|
+
event.preventDefault();
|
|
35221
|
+
event.stopPropagation();
|
|
35222
|
+
this.close();
|
|
35223
|
+
// manually trigger text selection as it will not be triggered during editing
|
|
35224
|
+
this.textSelection.trigger();
|
|
35225
|
+
return;
|
|
35226
|
+
}
|
|
35227
|
+
if (event.key === this.platformUtil.KEYMAP.BACKSPACE
|
|
35228
|
+
|| event.key === this.platformUtil.KEYMAP.DELETE) {
|
|
35229
|
+
this._updateInput = false;
|
|
35230
|
+
this.clearSelection();
|
|
35231
|
+
}
|
|
35232
|
+
super.handleKeyDown(event);
|
|
35233
|
+
}
|
|
35234
|
+
/** @hidden @internal */
|
|
35235
|
+
handleKeyUp(event) {
|
|
35236
|
+
if (event.key === this.platformUtil.KEYMAP.ARROW_DOWN) {
|
|
35237
|
+
const firstItem = this.selectionService.first_item(this.id);
|
|
35238
|
+
this.dropdown.focusedItem = firstItem && this.filteredData.length > 0
|
|
35239
|
+
? this.dropdown.items.find(i => i.itemID === firstItem)
|
|
35240
|
+
: this.dropdown.items[0];
|
|
35241
|
+
this.dropdownContainer.nativeElement.focus();
|
|
35242
|
+
}
|
|
35243
|
+
}
|
|
35244
|
+
/** @hidden @internal */
|
|
35245
|
+
handleItemKeyDown(event) {
|
|
35246
|
+
if (event.key === this.platformUtil.KEYMAP.ARROW_UP && event.altKey) {
|
|
35247
|
+
this.close();
|
|
35248
|
+
}
|
|
35249
|
+
}
|
|
35250
|
+
/** @hidden @internal */
|
|
35251
|
+
getEditElement() {
|
|
35252
|
+
return this.comboInput.nativeElement;
|
|
35253
|
+
}
|
|
35254
|
+
/** @hidden @internal */
|
|
35255
|
+
handleClear(event) {
|
|
35256
|
+
if (this.disabled) {
|
|
35257
|
+
return;
|
|
35258
|
+
}
|
|
35259
|
+
this.clearSelection(true);
|
|
35260
|
+
if (this.collapsed) {
|
|
35261
|
+
this.open();
|
|
35262
|
+
this.dropdown.navigateFirst();
|
|
35263
|
+
}
|
|
35264
|
+
else {
|
|
35265
|
+
this.focusSearchInput(true);
|
|
35266
|
+
}
|
|
35267
|
+
event.stopPropagation();
|
|
35268
|
+
this.comboInput.value = this.filterValue = this.searchValue = '';
|
|
35269
|
+
this.dropdown.focusedItem = null;
|
|
35270
|
+
this.composing = false;
|
|
35271
|
+
this.comboInput.focus();
|
|
35272
|
+
}
|
|
35273
|
+
/** @hidden @internal */
|
|
35274
|
+
handleOpened() {
|
|
35275
|
+
this.triggerCheck();
|
|
35276
|
+
this.dropdownContainer.nativeElement.focus();
|
|
35277
|
+
this.opened.emit({ owner: this });
|
|
35278
|
+
}
|
|
35279
|
+
/** @hidden @internal */
|
|
35280
|
+
handleClosing(e) {
|
|
35281
|
+
const args = { owner: this, event: e.event, cancel: e.cancel };
|
|
35282
|
+
this.closing.emit(args);
|
|
35283
|
+
e.cancel = args.cancel;
|
|
35284
|
+
if (e.cancel) {
|
|
35285
|
+
return;
|
|
35286
|
+
}
|
|
35287
|
+
this.composing = false;
|
|
35288
|
+
// explicitly update selection and trigger text selection so that we don't have to force CD
|
|
35289
|
+
this.textSelection.selected = true;
|
|
35290
|
+
this.textSelection.trigger();
|
|
35291
|
+
const selection = this.selectionService.first_item(this.id);
|
|
35292
|
+
this._value = selection !== undefined && selection !== null ? selection : '';
|
|
35293
|
+
this.comboInput.focus();
|
|
35294
|
+
this._onChangeCallback(selection);
|
|
35295
|
+
}
|
|
35296
|
+
/** @hidden @internal */
|
|
35297
|
+
focusSearchInput(opening) {
|
|
35298
|
+
if (opening) {
|
|
35299
|
+
this.dropdownContainer.nativeElement.focus();
|
|
35300
|
+
}
|
|
35301
|
+
else {
|
|
35302
|
+
this.comboInput.nativeElement.focus();
|
|
35303
|
+
this.toggle();
|
|
35304
|
+
}
|
|
35305
|
+
}
|
|
35306
|
+
/** @hidden @internal */
|
|
35307
|
+
onClick(event) {
|
|
35308
|
+
super.onClick(event);
|
|
35309
|
+
if (this.comboInput.value.length === 0) {
|
|
35310
|
+
this.virtDir.scrollTo(0);
|
|
35311
|
+
}
|
|
35312
|
+
}
|
|
35313
|
+
setSelection(newSelection) {
|
|
35314
|
+
const newSelectionAsArray = newSelection ? Array.from(newSelection) : [];
|
|
35315
|
+
const oldSelectionAsArray = Array.from(this.selectionService.get(this.id) || []);
|
|
35316
|
+
const displayText = this.createDisplayText(newSelectionAsArray, oldSelectionAsArray);
|
|
35317
|
+
const args = {
|
|
35318
|
+
newSelection: newSelectionAsArray[0],
|
|
35319
|
+
oldSelection: oldSelectionAsArray[0],
|
|
35320
|
+
displayText,
|
|
35321
|
+
owner: this,
|
|
35322
|
+
cancel: false
|
|
35323
|
+
};
|
|
35324
|
+
this.selectionChanging.emit(args);
|
|
35325
|
+
if (!args.cancel) {
|
|
35326
|
+
const argsSelection = args.newSelection !== undefined
|
|
35327
|
+
&& args.newSelection !== null
|
|
35328
|
+
? [args.newSelection]
|
|
35329
|
+
: [];
|
|
35330
|
+
this.selectionService.select_items(this.id, argsSelection, true);
|
|
35331
|
+
if (this._updateInput) {
|
|
35332
|
+
this.comboInput.value = this._value = displayText !== args.displayText
|
|
35333
|
+
? args.displayText
|
|
35334
|
+
: this.createDisplayText([args.newSelection], [args.oldSelection]);
|
|
35335
|
+
}
|
|
35336
|
+
this._onChangeCallback(args.newSelection);
|
|
35337
|
+
this._updateInput = true;
|
|
35338
|
+
}
|
|
35339
|
+
}
|
|
35340
|
+
createDisplayText(newSelection, oldSelection) {
|
|
35341
|
+
if (this.isRemote) {
|
|
35342
|
+
return this.getRemoteSelection(newSelection, oldSelection);
|
|
35343
|
+
}
|
|
35344
|
+
return this.displayKey !== null && this.displayKey !== undefined
|
|
35345
|
+
? this.convertKeysToItems(newSelection).map(e => e[this.displayKey])[0]
|
|
35346
|
+
: newSelection[0];
|
|
35347
|
+
}
|
|
35348
|
+
clearSelection(ignoreFilter) {
|
|
35349
|
+
let newSelection = this.selectionService.get_empty();
|
|
35350
|
+
if (this.filteredData.length !== this.data.length && !ignoreFilter) {
|
|
35351
|
+
newSelection = this.selectionService.delete_items(this.id, this.selectionService.get_all_ids(this.filteredData, this.valueKey));
|
|
35352
|
+
}
|
|
35353
|
+
this.setSelection(newSelection);
|
|
35354
|
+
}
|
|
35355
|
+
}
|
|
35356
|
+
IgxSimpleComboComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxSimpleComboComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: IgxSelectionAPIService }, { token: IgxComboAPIService }, { token: IgxIconService }, { token: PlatformUtil }, { token: DisplayDensityToken, optional: true }, { token: IGX_INPUT_GROUP_TYPE, optional: true }, { token: i0.Injector, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
35357
|
+
IgxSimpleComboComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxSimpleComboComponent, selector: "igx-simple-combo", outputs: { selectionChanging: "selectionChanging" }, providers: [
|
|
35358
|
+
IgxComboAPIService,
|
|
35359
|
+
{ provide: IGX_COMBO_COMPONENT, useExisting: IgxSimpleComboComponent },
|
|
35360
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: IgxSimpleComboComponent, multi: true }
|
|
35361
|
+
], viewQueries: [{ propertyName: "dropdown", first: true, predicate: IgxComboDropDownComponent, descendants: true, static: true }, { propertyName: "textSelection", first: true, predicate: IgxTextSelectionDirective, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<igx-input-group #inputGroup [displayDensity]=\"displayDensity\" [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\" (input)=\"handleInputChange($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (blur)=\"onBlur()\" [attr.placeholder]=\"placeholder\"\n aria-autocomplete=\"both\" [attr.aria-owns]=\"dropdown.id\" [attr.aria-labelledby]=\"ariaLabelledBy\"\n [disabled]=\"disabled\" [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 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\" (keydown)=\"handleItemKeyDown($event)\">\n <igx-combo-item role=\"option\" [singleMode]=\"true\" [itemHeight]='itemHeight' (click)=\"close()\" *igxFor=\"let item of data\n | comboFiltering:filterValue:displayKey:filteringOptions:true\n | comboGrouping:groupKey:valueKey:groupSortingDirection;\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 <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 [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>The list is empty</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", components: [{ type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { type: IgxComboDropDownComponent, selector: "igx-combo-drop-down", inputs: ["singleMode"] }, { type: IgxComboItemComponent, selector: "igx-combo-item", inputs: ["itemHeight", "singleMode"] }, { type: IgxComboAddItemComponent, selector: "igx-combo-add-item" }], directives: [{ type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { type: IgxTextSelectionDirective, selector: "[igxTextSelection]", inputs: ["igxTextSelection"], exportAs: ["igxTextSelection"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: IgxSuffixDirective, selector: "igx-suffix,[igxSuffix]" }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: IgxDropDownItemNavigationDirective, selector: "[igxDropDownItemNavigation]", inputs: ["igxDropDownItemNavigation"] }, { type: IgxForOfDirective, selector: "[igxFor][igxForOf]", inputs: ["igxForOf", "igxForSizePropName", "igxForScrollOrientation", "igxForScrollContainer", "igxForContainerSize", "igxForItemSize", "igxForTotalItemCount", "igxForTrackBy"], outputs: ["chunkLoad", "scrollbarVisibilityChanged", "contentSizeChange", "dataChanged", "beforeViewDestroyed", "chunkPreload"] }, { type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }], pipes: { "comboGrouping": IgxComboGroupingPipe, "comboFiltering": IgxComboFilteringPipe } });
|
|
35362
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxSimpleComboComponent, decorators: [{
|
|
35363
|
+
type: Component,
|
|
35364
|
+
args: [{ selector: 'igx-simple-combo', providers: [
|
|
35365
|
+
IgxComboAPIService,
|
|
35366
|
+
{ provide: IGX_COMBO_COMPONENT, useExisting: IgxSimpleComboComponent },
|
|
35367
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: IgxSimpleComboComponent, multi: true }
|
|
35368
|
+
], template: "<igx-input-group #inputGroup [displayDensity]=\"displayDensity\" [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\" (input)=\"handleInputChange($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (blur)=\"onBlur()\" [attr.placeholder]=\"placeholder\"\n aria-autocomplete=\"both\" [attr.aria-owns]=\"dropdown.id\" [attr.aria-labelledby]=\"ariaLabelledBy\"\n [disabled]=\"disabled\" [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 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\" (keydown)=\"handleItemKeyDown($event)\">\n <igx-combo-item role=\"option\" [singleMode]=\"true\" [itemHeight]='itemHeight' (click)=\"close()\" *igxFor=\"let item of data\n | comboFiltering:filterValue:displayKey:filteringOptions:true\n | comboGrouping:groupKey:valueKey:groupSortingDirection;\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 <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 [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>The list is empty</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" }]
|
|
35369
|
+
}], ctorParameters: function () {
|
|
35370
|
+
return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: IgxSelectionAPIService }, { type: IgxComboAPIService }, { type: IgxIconService }, { type: PlatformUtil }, { type: undefined, decorators: [{
|
|
35371
|
+
type: Optional
|
|
35372
|
+
}, {
|
|
35373
|
+
type: Inject,
|
|
35374
|
+
args: [DisplayDensityToken]
|
|
35375
|
+
}] }, { type: undefined, decorators: [{
|
|
35376
|
+
type: Optional
|
|
35377
|
+
}, {
|
|
35378
|
+
type: Inject,
|
|
35379
|
+
args: [IGX_INPUT_GROUP_TYPE]
|
|
35380
|
+
}] }, { type: i0.Injector, decorators: [{
|
|
35381
|
+
type: Optional
|
|
35382
|
+
}] }];
|
|
35383
|
+
}, propDecorators: { dropdown: [{
|
|
35384
|
+
type: ViewChild,
|
|
35385
|
+
args: [IgxComboDropDownComponent, { static: true }]
|
|
35386
|
+
}], selectionChanging: [{
|
|
35387
|
+
type: Output
|
|
35388
|
+
}], textSelection: [{
|
|
35389
|
+
type: ViewChild,
|
|
35390
|
+
args: [IgxTextSelectionDirective, { static: true }]
|
|
35391
|
+
}] } });
|
|
35392
|
+
class IgxSimpleComboModule {
|
|
35393
|
+
}
|
|
35394
|
+
IgxSimpleComboModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxSimpleComboModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
35395
|
+
IgxSimpleComboModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxSimpleComboModule, declarations: [IgxSimpleComboComponent], imports: [IgxComboModule, IgxRippleModule, CommonModule,
|
|
35396
|
+
IgxInputGroupModule, FormsModule, ReactiveFormsModule,
|
|
35397
|
+
IgxForOfModule, IgxToggleModule, IgxCheckboxModule,
|
|
35398
|
+
IgxDropDownModule, IgxButtonModule, IgxIconModule,
|
|
35399
|
+
IgxTextSelectionModule], exports: [IgxSimpleComboComponent, IgxComboModule] });
|
|
35400
|
+
IgxSimpleComboModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxSimpleComboModule, imports: [[
|
|
35401
|
+
IgxComboModule, IgxRippleModule, CommonModule,
|
|
35402
|
+
IgxInputGroupModule, FormsModule, ReactiveFormsModule,
|
|
35403
|
+
IgxForOfModule, IgxToggleModule, IgxCheckboxModule,
|
|
35404
|
+
IgxDropDownModule, IgxButtonModule, IgxIconModule,
|
|
35405
|
+
IgxTextSelectionModule
|
|
35406
|
+
], IgxComboModule] });
|
|
35407
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxSimpleComboModule, decorators: [{
|
|
35408
|
+
type: NgModule,
|
|
35409
|
+
args: [{
|
|
35410
|
+
declarations: [IgxSimpleComboComponent],
|
|
35411
|
+
imports: [
|
|
35412
|
+
IgxComboModule, IgxRippleModule, CommonModule,
|
|
35413
|
+
IgxInputGroupModule, FormsModule, ReactiveFormsModule,
|
|
35414
|
+
IgxForOfModule, IgxToggleModule, IgxCheckboxModule,
|
|
35415
|
+
IgxDropDownModule, IgxButtonModule, IgxIconModule,
|
|
35416
|
+
IgxTextSelectionModule
|
|
35417
|
+
],
|
|
35418
|
+
exports: [IgxSimpleComboComponent, IgxComboModule]
|
|
35419
|
+
}]
|
|
35420
|
+
}] });
|
|
35421
|
+
|
|
35114
35422
|
/** Header orientation in `dialog` mode. */
|
|
35115
35423
|
const PickerHeaderOrientation = mkenum({
|
|
35116
35424
|
Horizontal: 'horizontal',
|
|
@@ -36404,6 +36712,14 @@ class IgxDialogComponent {
|
|
|
36404
36712
|
* ```
|
|
36405
36713
|
*/
|
|
36406
36714
|
this.id = `igx-dialog-${DIALOG_ID++}`;
|
|
36715
|
+
/**
|
|
36716
|
+
* An @Input property to set whether the Tab key focus is trapped within the dialog when opened.
|
|
36717
|
+
* Defaults to `true`.
|
|
36718
|
+
* ```html
|
|
36719
|
+
* <igx-dialog focusTrap="false""></igx-dialog>
|
|
36720
|
+
* ```
|
|
36721
|
+
*/
|
|
36722
|
+
this.focusTrap = true;
|
|
36407
36723
|
/**
|
|
36408
36724
|
* An @Input property controlling the `title` of the dialog.
|
|
36409
36725
|
* ```html
|
|
@@ -36851,10 +37167,10 @@ class IgxDialogComponent {
|
|
|
36851
37167
|
IgxDialogComponent.NEXT_ID = 1;
|
|
36852
37168
|
IgxDialogComponent.DIALOG_CLASS = 'igx-dialog';
|
|
36853
37169
|
IgxDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxDialogComponent, deps: [{ token: i0.ElementRef }, { token: IgxNavigationService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
36854
|
-
IgxDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxDialogComponent, selector: "igx-dialog", inputs: { id: "id", isModal: "isModal", closeOnEscape: "closeOnEscape", title: "title", message: "message", leftButtonLabel: "leftButtonLabel", leftButtonType: "leftButtonType", leftButtonColor: "leftButtonColor", leftButtonBackgroundColor: "leftButtonBackgroundColor", leftButtonRipple: "leftButtonRipple", rightButtonLabel: "rightButtonLabel", rightButtonType: "rightButtonType", rightButtonColor: "rightButtonColor", rightButtonBackgroundColor: "rightButtonBackgroundColor", rightButtonRipple: "rightButtonRipple", closeOnOutsideSelect: "closeOnOutsideSelect", positionSettings: "positionSettings", isOpen: "isOpen", role: "role", titleId: "titleId" }, outputs: { opening: "opening", opened: "opened", closing: "closing", closed: "closed", leftButtonSelect: "leftButtonSelect", rightButtonSelect: "rightButtonSelect", isOpenChange: "isOpenChange" }, host: { properties: { "attr.id": "this.id", "attr.tabindex": "this.tabindex", "class.igx-dialog--hidden": "this.isCollapsed" } }, viewQueries: [{ propertyName: "toggleRef", first: true, predicate: IgxToggleDirective, descendants: true, static: true }], ngImport: i0, template: "<div tabindex=\"0\" #dialog class=\"igx-dialog\" igxToggle (click)=\"onDialogSelected($event)\">\n <div #dialogWindow class=\"igx-dialog__window\" [attr.role]=\"role\" [attr.aria-labelledby]=\"titleId\">\n\n <div *ngIf=\"title\" [attr.id]=\"titleId\" class=\"igx-dialog__window-title\">\n {{ title }}\n </div>\n <ng-content *ngIf=\"!title\" select=\"igx-dialog-title,[igxDialogTitle]\"></ng-content>\n\n <div class=\"igx-dialog__window-content\">\n <span *ngIf=\"message\" class=\"igx-dialog__window-message\">{{ message }}</span>\n <ng-content *ngIf=\"!message\"></ng-content>\n </div>\n\n <div *ngIf=\"leftButtonLabel || rightButtonLabel\" class=\"igx-dialog__window-actions\">\n <button *ngIf=\"leftButtonLabel\" type=\"button\" [igxFocus]=\"isOpen\" [igxButton]=\"leftButtonType\" igxButtonColor=\"{{ leftButtonColor }}\" igxButtonBackground=\"{{ leftButtonBackgroundColor }}\"\n igxRipple=\"{{ leftButtonRipple }}\" (click)=\"onInternalLeftButtonSelect($event)\">\n {{ leftButtonLabel }}\n </button>\n <button *ngIf=\"rightButtonLabel\" type=\"button\" [igxFocus]=\"isOpen\" [igxButton]=\"rightButtonType\" igxButtonColor=\"{{ rightButtonColor }}\" igxButtonBackground=\"{{ rightButtonBackgroundColor }}\"\n igxRipple=\"{{ rightButtonRipple }}\" (click)=\"onInternalRightButtonSelect($event)\">\n {{ rightButtonLabel }}\n </button>\n </div>\n <ng-content *ngIf=\"!leftButtonLabel && !rightButtonLabel\" select=\"igx-dialog-actions,[igxDialogActions]\"></ng-content>\n\n </div>\n</div>\n", directives: [{ type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: IgxFocusDirective, selector: "[igxFocus]", inputs: ["igxFocus"], exportAs: ["igxFocus"] }, { type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }] });
|
|
37170
|
+
IgxDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxDialogComponent, selector: "igx-dialog", inputs: { id: "id", isModal: "isModal", closeOnEscape: "closeOnEscape", focusTrap: "focusTrap", title: "title", message: "message", leftButtonLabel: "leftButtonLabel", leftButtonType: "leftButtonType", leftButtonColor: "leftButtonColor", leftButtonBackgroundColor: "leftButtonBackgroundColor", leftButtonRipple: "leftButtonRipple", rightButtonLabel: "rightButtonLabel", rightButtonType: "rightButtonType", rightButtonColor: "rightButtonColor", rightButtonBackgroundColor: "rightButtonBackgroundColor", rightButtonRipple: "rightButtonRipple", closeOnOutsideSelect: "closeOnOutsideSelect", positionSettings: "positionSettings", isOpen: "isOpen", role: "role", titleId: "titleId" }, outputs: { opening: "opening", opened: "opened", closing: "closing", closed: "closed", leftButtonSelect: "leftButtonSelect", rightButtonSelect: "rightButtonSelect", isOpenChange: "isOpenChange" }, host: { properties: { "attr.id": "this.id", "attr.tabindex": "this.tabindex", "class.igx-dialog--hidden": "this.isCollapsed" } }, viewQueries: [{ propertyName: "toggleRef", first: true, predicate: IgxToggleDirective, descendants: true, static: true }], ngImport: i0, template: "<div tabindex=\"0\" #dialog class=\"igx-dialog\" igxToggle [igxFocusTrap]=\"focusTrap\" (click)=\"onDialogSelected($event)\">\n <div #dialogWindow class=\"igx-dialog__window\" [attr.role]=\"role\" [attr.aria-labelledby]=\"titleId\">\n\n <div *ngIf=\"title\" [attr.id]=\"titleId\" class=\"igx-dialog__window-title\">\n {{ title }}\n </div>\n <ng-content *ngIf=\"!title\" select=\"igx-dialog-title,[igxDialogTitle]\"></ng-content>\n\n <div class=\"igx-dialog__window-content\">\n <span *ngIf=\"message\" class=\"igx-dialog__window-message\">{{ message }}</span>\n <ng-content *ngIf=\"!message\"></ng-content>\n </div>\n\n <div *ngIf=\"leftButtonLabel || rightButtonLabel\" class=\"igx-dialog__window-actions\">\n <button *ngIf=\"leftButtonLabel\" type=\"button\" [igxFocus]=\"isOpen\" [igxButton]=\"leftButtonType\" igxButtonColor=\"{{ leftButtonColor }}\" igxButtonBackground=\"{{ leftButtonBackgroundColor }}\"\n igxRipple=\"{{ leftButtonRipple }}\" (click)=\"onInternalLeftButtonSelect($event)\">\n {{ leftButtonLabel }}\n </button>\n <button *ngIf=\"rightButtonLabel\" type=\"button\" [igxFocus]=\"isOpen\" [igxButton]=\"rightButtonType\" igxButtonColor=\"{{ rightButtonColor }}\" igxButtonBackground=\"{{ rightButtonBackgroundColor }}\"\n igxRipple=\"{{ rightButtonRipple }}\" (click)=\"onInternalRightButtonSelect($event)\">\n {{ rightButtonLabel }}\n </button>\n </div>\n <ng-content *ngIf=\"!leftButtonLabel && !rightButtonLabel\" select=\"igx-dialog-actions,[igxDialogActions]\"></ng-content>\n\n </div>\n</div>\n", directives: [{ type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { type: IgxFocusTrapDirective, selector: "[igxFocusTrap]", inputs: ["igxFocusTrap"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: IgxFocusDirective, selector: "[igxFocus]", inputs: ["igxFocus"], exportAs: ["igxFocus"] }, { type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }] });
|
|
36855
37171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxDialogComponent, decorators: [{
|
|
36856
37172
|
type: Component,
|
|
36857
|
-
args: [{ selector: 'igx-dialog', template: "<div tabindex=\"0\" #dialog class=\"igx-dialog\" igxToggle (click)=\"onDialogSelected($event)\">\n <div #dialogWindow class=\"igx-dialog__window\" [attr.role]=\"role\" [attr.aria-labelledby]=\"titleId\">\n\n <div *ngIf=\"title\" [attr.id]=\"titleId\" class=\"igx-dialog__window-title\">\n {{ title }}\n </div>\n <ng-content *ngIf=\"!title\" select=\"igx-dialog-title,[igxDialogTitle]\"></ng-content>\n\n <div class=\"igx-dialog__window-content\">\n <span *ngIf=\"message\" class=\"igx-dialog__window-message\">{{ message }}</span>\n <ng-content *ngIf=\"!message\"></ng-content>\n </div>\n\n <div *ngIf=\"leftButtonLabel || rightButtonLabel\" class=\"igx-dialog__window-actions\">\n <button *ngIf=\"leftButtonLabel\" type=\"button\" [igxFocus]=\"isOpen\" [igxButton]=\"leftButtonType\" igxButtonColor=\"{{ leftButtonColor }}\" igxButtonBackground=\"{{ leftButtonBackgroundColor }}\"\n igxRipple=\"{{ leftButtonRipple }}\" (click)=\"onInternalLeftButtonSelect($event)\">\n {{ leftButtonLabel }}\n </button>\n <button *ngIf=\"rightButtonLabel\" type=\"button\" [igxFocus]=\"isOpen\" [igxButton]=\"rightButtonType\" igxButtonColor=\"{{ rightButtonColor }}\" igxButtonBackground=\"{{ rightButtonBackgroundColor }}\"\n igxRipple=\"{{ rightButtonRipple }}\" (click)=\"onInternalRightButtonSelect($event)\">\n {{ rightButtonLabel }}\n </button>\n </div>\n <ng-content *ngIf=\"!leftButtonLabel && !rightButtonLabel\" select=\"igx-dialog-actions,[igxDialogActions]\"></ng-content>\n\n </div>\n</div>\n" }]
|
|
37173
|
+
args: [{ selector: 'igx-dialog', template: "<div tabindex=\"0\" #dialog class=\"igx-dialog\" igxToggle [igxFocusTrap]=\"focusTrap\" (click)=\"onDialogSelected($event)\">\n <div #dialogWindow class=\"igx-dialog__window\" [attr.role]=\"role\" [attr.aria-labelledby]=\"titleId\">\n\n <div *ngIf=\"title\" [attr.id]=\"titleId\" class=\"igx-dialog__window-title\">\n {{ title }}\n </div>\n <ng-content *ngIf=\"!title\" select=\"igx-dialog-title,[igxDialogTitle]\"></ng-content>\n\n <div class=\"igx-dialog__window-content\">\n <span *ngIf=\"message\" class=\"igx-dialog__window-message\">{{ message }}</span>\n <ng-content *ngIf=\"!message\"></ng-content>\n </div>\n\n <div *ngIf=\"leftButtonLabel || rightButtonLabel\" class=\"igx-dialog__window-actions\">\n <button *ngIf=\"leftButtonLabel\" type=\"button\" [igxFocus]=\"isOpen\" [igxButton]=\"leftButtonType\" igxButtonColor=\"{{ leftButtonColor }}\" igxButtonBackground=\"{{ leftButtonBackgroundColor }}\"\n igxRipple=\"{{ leftButtonRipple }}\" (click)=\"onInternalLeftButtonSelect($event)\">\n {{ leftButtonLabel }}\n </button>\n <button *ngIf=\"rightButtonLabel\" type=\"button\" [igxFocus]=\"isOpen\" [igxButton]=\"rightButtonType\" igxButtonColor=\"{{ rightButtonColor }}\" igxButtonBackground=\"{{ rightButtonBackgroundColor }}\"\n igxRipple=\"{{ rightButtonRipple }}\" (click)=\"onInternalRightButtonSelect($event)\">\n {{ rightButtonLabel }}\n </button>\n </div>\n <ng-content *ngIf=\"!leftButtonLabel && !rightButtonLabel\" select=\"igx-dialog-actions,[igxDialogActions]\"></ng-content>\n\n </div>\n</div>\n" }]
|
|
36858
37174
|
}], ctorParameters: function () {
|
|
36859
37175
|
return [{ type: i0.ElementRef }, { type: IgxNavigationService, decorators: [{
|
|
36860
37176
|
type: Optional
|
|
@@ -36871,6 +37187,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
36871
37187
|
type: Input
|
|
36872
37188
|
}], closeOnEscape: [{
|
|
36873
37189
|
type: Input
|
|
37190
|
+
}], focusTrap: [{
|
|
37191
|
+
type: Input
|
|
36874
37192
|
}], title: [{
|
|
36875
37193
|
type: Input
|
|
36876
37194
|
}], message: [{
|
|
@@ -36932,14 +37250,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
36932
37250
|
class IgxDialogModule {
|
|
36933
37251
|
}
|
|
36934
37252
|
IgxDialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
36935
|
-
IgxDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxDialogModule, declarations: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective], imports: [CommonModule, IgxToggleModule, IgxButtonModule, IgxRippleModule, IgxFocusModule], exports: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective] });
|
|
36936
|
-
IgxDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxDialogModule, imports: [[CommonModule, IgxToggleModule, IgxButtonModule, IgxRippleModule, IgxFocusModule]] });
|
|
37253
|
+
IgxDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxDialogModule, declarations: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective], imports: [CommonModule, IgxToggleModule, IgxButtonModule, IgxRippleModule, IgxFocusModule, IgxFocusTrapModule], exports: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective] });
|
|
37254
|
+
IgxDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxDialogModule, imports: [[CommonModule, IgxToggleModule, IgxButtonModule, IgxRippleModule, IgxFocusModule, IgxFocusTrapModule]] });
|
|
36937
37255
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxDialogModule, decorators: [{
|
|
36938
37256
|
type: NgModule,
|
|
36939
37257
|
args: [{
|
|
36940
37258
|
declarations: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective],
|
|
36941
37259
|
exports: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective],
|
|
36942
|
-
imports: [CommonModule, IgxToggleModule, IgxButtonModule, IgxRippleModule, IgxFocusModule]
|
|
37260
|
+
imports: [CommonModule, IgxToggleModule, IgxButtonModule, IgxRippleModule, IgxFocusModule, IgxFocusTrapModule]
|
|
36943
37261
|
}]
|
|
36944
37262
|
}] });
|
|
36945
37263
|
|
|
@@ -45283,7 +45601,7 @@ class IgxColumnComponent {
|
|
|
45283
45601
|
* @memberof IgxColumnComponent
|
|
45284
45602
|
*/
|
|
45285
45603
|
get index() {
|
|
45286
|
-
return this.grid.
|
|
45604
|
+
return this.grid.columnsCollection.indexOf(this);
|
|
45287
45605
|
}
|
|
45288
45606
|
/**
|
|
45289
45607
|
* Gets whether the column is `pinned`.
|
|
@@ -45570,7 +45888,7 @@ class IgxColumnComponent {
|
|
|
45570
45888
|
/**
|
|
45571
45889
|
* Gets the cells of the column.
|
|
45572
45890
|
* ```typescript
|
|
45573
|
-
* let columnCells = this.column.
|
|
45891
|
+
* let columnCells = this.column.cells;
|
|
45574
45892
|
* ```
|
|
45575
45893
|
*
|
|
45576
45894
|
*/
|
|
@@ -46116,7 +46434,7 @@ class IgxColumnComponent {
|
|
|
46116
46434
|
grid.resetCaches();
|
|
46117
46435
|
grid.notifyChanges();
|
|
46118
46436
|
if (this.columnLayoutChild) {
|
|
46119
|
-
this.grid.
|
|
46437
|
+
this.grid.columnList.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
|
|
46120
46438
|
}
|
|
46121
46439
|
this.grid.filteringService.refreshExpressions();
|
|
46122
46440
|
const eventArgs = { column: this, insertAtIndex: index, isPinned: true };
|
|
@@ -46183,7 +46501,7 @@ class IgxColumnComponent {
|
|
|
46183
46501
|
grid.resetCaches();
|
|
46184
46502
|
grid.notifyChanges();
|
|
46185
46503
|
if (this.columnLayoutChild) {
|
|
46186
|
-
this.grid.
|
|
46504
|
+
this.grid.columnList.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
|
|
46187
46505
|
}
|
|
46188
46506
|
this.grid.filteringService.refreshExpressions();
|
|
46189
46507
|
this.grid.columnPinned.emit({ column: this, insertAtIndex: index, isPinned: false });
|
|
@@ -47682,7 +48000,7 @@ class IgxColumnActionsComponent {
|
|
|
47682
48000
|
ngDoCheck() {
|
|
47683
48001
|
var _a;
|
|
47684
48002
|
if (this._differ) {
|
|
47685
|
-
const changes = this._differ.diff((_a = this.grid) === null || _a === void 0 ? void 0 : _a.
|
|
48003
|
+
const changes = this._differ.diff((_a = this.grid) === null || _a === void 0 ? void 0 : _a.columnList);
|
|
47686
48004
|
if (changes) {
|
|
47687
48005
|
this.pipeTrigger++;
|
|
47688
48006
|
}
|
|
@@ -47719,10 +48037,10 @@ class IgxColumnActionsComponent {
|
|
|
47719
48037
|
}
|
|
47720
48038
|
}
|
|
47721
48039
|
IgxColumnActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxColumnActionsComponent, deps: [{ token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component });
|
|
47722
|
-
IgxColumnActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxColumnActionsComponent, selector: "igx-column-actions", inputs: { grid: "grid", indentation: "indentation", columnsAreaMaxHeight: "columnsAreaMaxHeight", hideFilter: "hideFilter", title: "title", filterColumnsPrompt: "filterColumnsPrompt", filterCriteria: "filterCriteria", columnDisplayOrder: "columnDisplayOrder", uncheckAllText: "uncheckAllText", checkAllText: "checkAllText", id: "id" }, outputs: { columnToggled: "columnToggled" }, host: { properties: { "attr.class": "this.cssClass", "attr.id": "this.id" } }, viewQueries: [{ propertyName: "columnItems", predicate: IgxCheckboxComponent, descendants: true }], ngImport: i0, template: "<div class=\"igx-column-actions__header\">\n <h4 [attr.id]='titleID' class=\"igx-column-actions__header-title\" *ngIf=\"title\">{{ title }}</h4>\n\n <igx-input-group class=\"igx-column-actions__header-input\" *ngIf=\"!hideFilter\">\n <input igxInput\n type=\"text\"\n [attr.aria-describedby]='titleID'\n [(ngModel)]=\"filterCriteria\"\n [placeholder]=\"filterColumnsPrompt\"\n autocomplete=\"off\" />\n </igx-input-group>\n</div>\n\n<div class=\"igx-column-actions__columns\" tabindex=\"0\"\n [style.max-height]=\"columnsAreaMaxHeight\">\n <igx-checkbox\n *ngFor=\"let column of grid?.
|
|
48040
|
+
IgxColumnActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxColumnActionsComponent, selector: "igx-column-actions", inputs: { grid: "grid", indentation: "indentation", columnsAreaMaxHeight: "columnsAreaMaxHeight", hideFilter: "hideFilter", title: "title", filterColumnsPrompt: "filterColumnsPrompt", filterCriteria: "filterCriteria", columnDisplayOrder: "columnDisplayOrder", uncheckAllText: "uncheckAllText", checkAllText: "checkAllText", id: "id" }, outputs: { columnToggled: "columnToggled" }, host: { properties: { "attr.class": "this.cssClass", "attr.id": "this.id" } }, viewQueries: [{ propertyName: "columnItems", predicate: IgxCheckboxComponent, descendants: true }], ngImport: i0, template: "<div class=\"igx-column-actions__header\">\n <h4 [attr.id]='titleID' class=\"igx-column-actions__header-title\" *ngIf=\"title\">{{ title }}</h4>\n\n <igx-input-group class=\"igx-column-actions__header-input\" *ngIf=\"!hideFilter\">\n <input igxInput\n type=\"text\"\n [attr.aria-describedby]='titleID'\n [(ngModel)]=\"filterCriteria\"\n [placeholder]=\"filterColumnsPrompt\"\n autocomplete=\"off\" />\n </igx-input-group>\n</div>\n\n<div class=\"igx-column-actions__columns\" tabindex=\"0\"\n [style.max-height]=\"columnsAreaMaxHeight\">\n <igx-checkbox\n *ngFor=\"let column of $any(grid)?.columnsCollection\n | columnActionEnabled:actionsDirective.actionEnabledColumnsFilter:pipeTrigger\n | filterActionColumns:filterCriteria:pipeTrigger\n | sortActionColumns:columnDisplayOrder:pipeTrigger;\"\n class=\"igx-column-actions__columns-item\"\n [readonly]=\"true\"\n (click)=\"toggleColumn(column)\"\n [checked]=\"actionsDirective.columnChecked(column)\"\n [style.margin-left.px]=\"column.level * indentation\">\n {{ column.header || column.field }}\n </igx-checkbox>\n</div>\n\n<div class=\"igx-column-actions__buttons\">\n <button igxButton igxRipple (click)=\"uncheckAllColumns()\" [disabled]=\"uncheckAllDisabled\">{{ uncheckAllText }}</button>\n <button igxButton igxRipple (click)=\"checkAllColumns()\" [disabled]=\"checkAllDisabled\">{{ checkAllText }}</button>\n</div>\n", components: [{ type: i0.forwardRef(function () { return IgxInputGroupComponent; }), selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { type: i0.forwardRef(function () { return IgxCheckboxComponent; }), selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "readonly", "disableTransitions"], outputs: ["change"] }], directives: [{ type: i0.forwardRef(function () { return i4.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return i12.DefaultValueAccessor; }), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i0.forwardRef(function () { return IgxInputDirective; }), selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { type: i0.forwardRef(function () { return i12.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { type: i0.forwardRef(function () { return i12.NgModel; }), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i0.forwardRef(function () { return i4.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i0.forwardRef(function () { return IgxButtonDirective; }), selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: i0.forwardRef(function () { return IgxRippleDirective; }), selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }], pipes: { "sortActionColumns": i0.forwardRef(function () { return IgxSortActionColumnsPipe; }), "filterActionColumns": i0.forwardRef(function () { return IgxFilterActionColumnsPipe; }), "columnActionEnabled": i0.forwardRef(function () { return IgxColumnActionEnabledPipe; }) } });
|
|
47723
48041
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxColumnActionsComponent, decorators: [{
|
|
47724
48042
|
type: Component,
|
|
47725
|
-
args: [{ selector: 'igx-column-actions', template: "<div class=\"igx-column-actions__header\">\n <h4 [attr.id]='titleID' class=\"igx-column-actions__header-title\" *ngIf=\"title\">{{ title }}</h4>\n\n <igx-input-group class=\"igx-column-actions__header-input\" *ngIf=\"!hideFilter\">\n <input igxInput\n type=\"text\"\n [attr.aria-describedby]='titleID'\n [(ngModel)]=\"filterCriteria\"\n [placeholder]=\"filterColumnsPrompt\"\n autocomplete=\"off\" />\n </igx-input-group>\n</div>\n\n<div class=\"igx-column-actions__columns\" tabindex=\"0\"\n [style.max-height]=\"columnsAreaMaxHeight\">\n <igx-checkbox\n *ngFor=\"let column of grid?.
|
|
48043
|
+
args: [{ selector: 'igx-column-actions', template: "<div class=\"igx-column-actions__header\">\n <h4 [attr.id]='titleID' class=\"igx-column-actions__header-title\" *ngIf=\"title\">{{ title }}</h4>\n\n <igx-input-group class=\"igx-column-actions__header-input\" *ngIf=\"!hideFilter\">\n <input igxInput\n type=\"text\"\n [attr.aria-describedby]='titleID'\n [(ngModel)]=\"filterCriteria\"\n [placeholder]=\"filterColumnsPrompt\"\n autocomplete=\"off\" />\n </igx-input-group>\n</div>\n\n<div class=\"igx-column-actions__columns\" tabindex=\"0\"\n [style.max-height]=\"columnsAreaMaxHeight\">\n <igx-checkbox\n *ngFor=\"let column of $any(grid)?.columnsCollection\n | columnActionEnabled:actionsDirective.actionEnabledColumnsFilter:pipeTrigger\n | filterActionColumns:filterCriteria:pipeTrigger\n | sortActionColumns:columnDisplayOrder:pipeTrigger;\"\n class=\"igx-column-actions__columns-item\"\n [readonly]=\"true\"\n (click)=\"toggleColumn(column)\"\n [checked]=\"actionsDirective.columnChecked(column)\"\n [style.margin-left.px]=\"column.level * indentation\">\n {{ column.header || column.field }}\n </igx-checkbox>\n</div>\n\n<div class=\"igx-column-actions__buttons\">\n <button igxButton igxRipple (click)=\"uncheckAllColumns()\" [disabled]=\"uncheckAllDisabled\">{{ uncheckAllText }}</button>\n <button igxButton igxRipple (click)=\"checkAllColumns()\" [disabled]=\"checkAllDisabled\">{{ checkAllText }}</button>\n</div>\n" }]
|
|
47726
48044
|
}], ctorParameters: function () { return [{ type: i0.IterableDiffers }]; }, propDecorators: { grid: [{
|
|
47727
48045
|
type: Input
|
|
47728
48046
|
}], indentation: [{
|
|
@@ -48555,7 +48873,7 @@ class BaseRow {
|
|
|
48555
48873
|
return (_b = this._data) !== null && _b !== void 0 ? _b : this.grid.dataView[this.index];
|
|
48556
48874
|
}
|
|
48557
48875
|
/**
|
|
48558
|
-
* @deprecated Use 'data' instead
|
|
48876
|
+
* @deprecated Use 'data' instead
|
|
48559
48877
|
*
|
|
48560
48878
|
* The data record that populates the row
|
|
48561
48879
|
*/
|
|
@@ -48563,8 +48881,7 @@ class BaseRow {
|
|
|
48563
48881
|
return this.data;
|
|
48564
48882
|
}
|
|
48565
48883
|
/**
|
|
48566
|
-
* @deprecated Use 'key' instead
|
|
48567
|
-
*
|
|
48884
|
+
* @deprecated Use 'key' instead
|
|
48568
48885
|
*/
|
|
48569
48886
|
get rowID() {
|
|
48570
48887
|
return this.key;
|
|
@@ -48733,12 +49050,6 @@ class BaseRow {
|
|
|
48733
49050
|
this.grid.deleteRowById(this.key);
|
|
48734
49051
|
}
|
|
48735
49052
|
}
|
|
48736
|
-
__decorate([
|
|
48737
|
-
DeprecateProperty(`'rowData' property is deprecated. Use 'data' instead.`)
|
|
48738
|
-
], BaseRow.prototype, "rowData", null);
|
|
48739
|
-
__decorate([
|
|
48740
|
-
DeprecateProperty(`'rowID' property is deprecated. Use 'key' instead.`)
|
|
48741
|
-
], BaseRow.prototype, "rowID", null);
|
|
48742
49053
|
class IgxGridRow extends BaseRow {
|
|
48743
49054
|
/**
|
|
48744
49055
|
* @hidden
|
|
@@ -50275,7 +50586,7 @@ class IgxGroupByAreaDirective {
|
|
|
50275
50586
|
const drag = event.detail.owner;
|
|
50276
50587
|
if (drag instanceof IgxColumnMovingDragDirective) {
|
|
50277
50588
|
const column = drag.column;
|
|
50278
|
-
if (this.grid.
|
|
50589
|
+
if (!this.grid.columnList.find(c => c === column)) {
|
|
50279
50590
|
return;
|
|
50280
50591
|
}
|
|
50281
50592
|
const isGrouped = this.expressions.findIndex((item) => item.fieldName === column.field) !== -1;
|
|
@@ -50737,7 +51048,7 @@ class IgxAdvancedFilteringDialogComponent {
|
|
|
50737
51048
|
* @hidden @internal
|
|
50738
51049
|
*/
|
|
50739
51050
|
get filterableColumns() {
|
|
50740
|
-
return this.grid.
|
|
51051
|
+
return this.grid.columnList.filter((col) => !col.columnGroup && col.filterable);
|
|
50741
51052
|
}
|
|
50742
51053
|
/**
|
|
50743
51054
|
* @hidden @internal
|
|
@@ -52441,10 +52752,10 @@ class IgxFilteringService {
|
|
|
52441
52752
|
const filterIconTarget = element.querySelector(`.${filterIcon}`);
|
|
52442
52753
|
const { id, ref } = this.grid.createFilterDropdown(column, Object.assign(Object.assign({}, this._filterMenuOverlaySettings), { target: filterIconTarget }));
|
|
52443
52754
|
this._overlayService.opening
|
|
52444
|
-
.pipe(
|
|
52755
|
+
.pipe(first$1(overlay => overlay.id === id), takeUntil(this.destroy$))
|
|
52445
52756
|
.subscribe(() => this.lastActiveNode = this.grid.navigation.activeNode);
|
|
52446
52757
|
this._overlayService.closed
|
|
52447
|
-
.pipe(
|
|
52758
|
+
.pipe(first$1(overlay => overlay.id === id), takeUntil(this.destroy$))
|
|
52448
52759
|
.subscribe(() => {
|
|
52449
52760
|
this._overlayService.detach(id);
|
|
52450
52761
|
ref === null || ref === void 0 ? void 0 : ref.destroy();
|
|
@@ -52561,7 +52872,7 @@ class IgxFilteringService {
|
|
|
52561
52872
|
grid.paginator.page = 0;
|
|
52562
52873
|
}
|
|
52563
52874
|
filteringTree.filteringOperands = [];
|
|
52564
|
-
for (const column of grid.
|
|
52875
|
+
for (const column of grid.columnList) {
|
|
52565
52876
|
this.prepare_filtering_expression(filteringTree, column.field, term, condition, ignoreCase || column.filteringIgnoreCase);
|
|
52566
52877
|
}
|
|
52567
52878
|
grid.filteringExpressionsTree = filteringTree;
|
|
@@ -52595,7 +52906,7 @@ class IgxFilteringService {
|
|
|
52595
52906
|
expressions.length = 0;
|
|
52596
52907
|
}
|
|
52597
52908
|
else {
|
|
52598
|
-
this.grid.
|
|
52909
|
+
this.grid.columnList.forEach(c => {
|
|
52599
52910
|
const expressions = this.getExpressions(c.field);
|
|
52600
52911
|
expressions.length = 0;
|
|
52601
52912
|
});
|
|
@@ -52625,7 +52936,7 @@ class IgxFilteringService {
|
|
|
52625
52936
|
const grid = this.grid;
|
|
52626
52937
|
const filteringTree = grid.filteringExpressionsTree;
|
|
52627
52938
|
const newFilteringTree = new FilteringExpressionsTree(filteringTree.operator, filteringTree.fieldName);
|
|
52628
|
-
for (const column of grid.
|
|
52939
|
+
for (const column of grid.columnList) {
|
|
52629
52940
|
this.prepare_filtering_expression(newFilteringTree, column.field, value, condition, ignoreCase || column.filteringIgnoreCase);
|
|
52630
52941
|
}
|
|
52631
52942
|
const eventArgs = { owner: grid, filteringExpressions: newFilteringTree, cancel: false };
|
|
@@ -52655,7 +52966,7 @@ class IgxFilteringService {
|
|
|
52655
52966
|
*/
|
|
52656
52967
|
getExpressions(columnId) {
|
|
52657
52968
|
if (!this.columnToExpressionsMap.has(columnId)) {
|
|
52658
|
-
const column = this.grid.
|
|
52969
|
+
const column = this.grid.columnList.find((col) => col.field === columnId);
|
|
52659
52970
|
const expressionUIs = new Array();
|
|
52660
52971
|
if (column) {
|
|
52661
52972
|
this.generateExpressionsList(column.filteringExpressionsTree, this.grid.filteringExpressionsTree.operator, expressionUIs);
|
|
@@ -52672,7 +52983,7 @@ class IgxFilteringService {
|
|
|
52672
52983
|
if (!this.isFiltering) {
|
|
52673
52984
|
this.columnsWithComplexFilter.clear();
|
|
52674
52985
|
this.columnToExpressionsMap.forEach((value, key) => {
|
|
52675
|
-
const column = this.grid.
|
|
52986
|
+
const column = this.grid.columnList.find((col) => col.field === key);
|
|
52676
52987
|
if (column) {
|
|
52677
52988
|
value.length = 0;
|
|
52678
52989
|
this.generateExpressionsList(column.filteringExpressionsTree, this.grid.filteringExpressionsTree.operator, value);
|
|
@@ -52745,7 +53056,7 @@ class IgxFilteringService {
|
|
|
52745
53056
|
if (this.columnsWithComplexFilter.has(columnId)) {
|
|
52746
53057
|
return true;
|
|
52747
53058
|
}
|
|
52748
|
-
const column = this.grid.
|
|
53059
|
+
const column = this.grid.columnList.find((col) => col.field === columnId);
|
|
52749
53060
|
const isComplex = column && this.isFilteringTreeComplex(column.filteringExpressionsTree);
|
|
52750
53061
|
if (isComplex) {
|
|
52751
53062
|
this.columnsWithComplexFilter.add(columnId);
|
|
@@ -54750,10 +55061,10 @@ class IgxGridHeaderRowComponent {
|
|
|
54750
55061
|
}
|
|
54751
55062
|
}
|
|
54752
55063
|
IgxGridHeaderRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridHeaderRowComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
54753
|
-
IgxGridHeaderRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxGridHeaderRowComponent, selector: "igx-grid-header-row", inputs: { grid: "grid", pinnedColumnCollection: "pinnedColumnCollection", unpinnedColumnCollection: "unpinnedColumnCollection", activeDescendant: "activeDescendant", hasMRL: "hasMRL", width: "width", density: "density" }, host: { properties: { "class.igx-grid-thead--cosy": "this.cosyStyle", "class.igx-grid-thead--compact": "this.compactStyle" } }, viewQueries: [{ propertyName: "headerContainer", first: true, predicate: ["headerVirtualContainer"], descendants: true, read: IgxGridForOfDirective, static: true }, { propertyName: "headerDragContainer", first: true, predicate: ["headerDragContainer"], descendants: true }, { propertyName: "headerSelectorContainer", first: true, predicate: ["headerSelectorContainer"], descendants: true }, { propertyName: "headerGroupContainer", first: true, predicate: ["headerGroupContainer"], descendants: true }, { propertyName: "headSelectorBaseTemplate", first: true, predicate: ["headSelectorBaseTemplate"], descendants: true }, { propertyName: "filterRow", first: true, predicate: IgxGridFilteringRowComponent, descendants: true }, { propertyName: "headerHierarchyExpander", first: true, predicate: ["headerHierarchyExpander"], descendants: true }, { propertyName: "_groups", predicate: IgxGridHeaderGroupComponent, descendants: true }], ngImport: i0, template: "<div role=\"rowgroup\" class=\"igx-grid-thead__wrapper\" [style.width.px]=\"width\"\n [attr.aria-activedescendant]=\"activeDescendant\" [class.igx-grid__tr--mrl]=\"hasMRL\">\n\n <!-- Column headers area -->\n <div class=\"igx-grid__tr\" role=\"row\" [style.width.px]=\"width\">\n\n <!-- Left column moving area -->\n <ng-container *ngIf=\"grid.hasMovableColumns && grid.columnInDrag && pinnedColumnCollection.length <= 0\">\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-left\" droppable=\"true\" [style.left.px]=\"grid.pinnedWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n </ng-container>\n <ng-container *ngIf=\"grid.hasMovableColumns && grid.columnInDrag && pinnedColumnCollection.length > 0\">\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-pinned\" droppable=\"true\" [style.left.px]=\"grid.pinnedWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n </ng-container>\n\n <!-- Row dragging area -->\n <ng-container *ngIf=\"grid.rowDraggable\">\n <div #headerDragContainer class=\"igx-grid__drag-indicator igx-grid__tr-action\" (pointerdown)=\"$event.preventDefault()\" [class.igx-grid__drag-indicator--header]=\"!grid.isRowSelectable\">\n <div style=\"visibility: hidden;\">\n <ng-container *ngTemplateOutlet=\"grid.dragIndicatorIconTemplate || grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </div>\n </ng-container>\n\n <!-- Row selectors area -->\n <ng-container *ngIf=\"grid.showRowSelectors\">\n <div #headerSelectorContainer class=\"igx-grid__cbx-selection igx-grid__tr-action\"\n [class.igx-grid__cbx-selection--push]=\"grid.filteringService.isFilterRowVisible\"\n (click)=\"headerRowSelection($event)\"\n (pointerdown)=\"$event.preventDefault()\">\n <ng-container #headSelector\n *ngTemplateOutlet=\"grid.headSelectorTemplate || headSelectorBaseTemplate; context: rowSelectorsContext\">\n </ng-container>\n </div>\n </ng-container>\n\n <!-- Hierarchical grids expand all area -->\n <ng-container *ngIf=\"isHierarchicalGrid\">\n <div #headerHierarchyExpander\n (click)=\"grid.toggleAll()\"\n (pointerdown)=\"$event.preventDefault()\"\n [hidden]=\"!grid.hasExpandableChildren || !grid.hasVisibleColumns\"\n [ngClass]=\"{\n 'igx-grid__hierarchical-expander igx-grid__hierarchical-expander--header igx-grid__tr-action': grid.hasExpandableChildren,\n 'igx-grid__hierarchical-expander--push': grid.filteringService.isFilterRowVisible,\n 'igx-grid__hierarchical-expander--no-border': grid.isRowSelectable || grid.rowDraggable\n }\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate; context: { $implicit: grid }\"></ng-container>\n </div>\n </ng-container>\n\n\n <!-- Grouping icon toggle area -->\n <ng-container *ngIf=\"grid?.groupingExpressions?.length\">\n <div #headerGroupContainer class=\"{{ indentationCSSClasses }}\"\n (click)=\"grid.toggleAllGroupRows()\"\n (pointerdown)=\"$event.preventDefault()\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate\"></ng-container>\n </div>\n </ng-container>\n\n <!-- Pinned columns collection from the start -->\n <ng-container *ngIf=\"pinnedColumnCollection.length && grid.isPinningToStart\">\n <ng-container *ngFor=\"let column of pinnedColumnCollection | igxTopLevel\">\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles | igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\"\n [style.min-width]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\">\n </igx-grid-header-group>\n </ng-container>\n </ng-container>\n\n <!-- Unpinned columns collection -->\n <ng-template igxGridFor #headerVirtualContainer let-column\n [igxGridForOf]=\"unpinnedColumnCollection | igxTopLevel\"\n [igxForScrollContainer]=\"grid.parentVirtDir\"\n [igxForContainerSize]=\"grid.unpinnedWidth\"\n [igxForTrackBy]=\"grid.trackColumnChanges\"\n [igxForSizePropName]=\"'calcPixelWidth'\"\n [igxForScrollOrientation]=\"'horizontal'\"\n >\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\"\n [style.min-width]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\">\n </igx-grid-header-group>\n </ng-template>\n\n <!-- Pinned columns collection at the end -->\n <ng-container *ngIf=\"pinnedColumnCollection.length && !grid.isPinningToStart\">\n <ng-container *ngFor=\"let column of pinnedColumnCollection | igxTopLevel\">\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\"\n [style.min-width]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.left]=\"column.rightPinnedOffset\">\n </igx-grid-header-group>\n </ng-container>\n </ng-container>\n </div>\n\n <!-- Filter row area -->\n <ng-container *ngIf=\"grid.filteringService.isFilterRowVisible\">\n <igx-grid-filtering-row #filteringRow\n [column]=\"grid.filteringService.filteredColumn\"\n [style.width.px]=\"width\">\n </igx-grid-filtering-row>\n </ng-container>\n\n <!-- Right column moving area -->\n <ng-container *ngIf=\"grid.hasMovableColumns && grid.columnInDrag\">\n <span id=\"right\" class=\"igx-grid__scroll-on-drag-right\" droppable=\"true\" [igxColumnMovingDrop]=\"headerContainer\"></span>\n </ng-container>\n</div>\n\n<!-- Header thumb area -->\n<div class=\"igx-grid-thead__thumb\" [hidden]=\"!grid.hasVerticalScroll()\" [style.width.px]=\"grid.scrollSize\"></div>\n\n<!-- Default row selection header checkbox template -->\n<ng-template #headSelectorBaseTemplate igxHeadSelector let-context>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [readonly]=\"true\"\n [checked]=\"context.selectedCount > 0 && context.totalCount === context.selectedCount\"\n [disableRipple]=\"true\"\n [ngStyle]=\"{'visibility': grid.isMultiRowSelectionEnabled? 'visible' : 'hidden' }\"\n [indeterminate]=\"context.selectedCount > 0 && context.selectedCount !== context.totalCount\"\n [aria-label]=\"grid.headSelectorBaseAriaLabel\"\n #headerCheckbox>\n </igx-checkbox>\n </div>\n</ng-template>\n", components: [{ type: IgxGridHeaderGroupComponent, selector: "igx-grid-header-group", inputs: ["column"] }, { type: IgxGridFilteringRowComponent, selector: "igx-grid-filtering-row", inputs: ["column", "value"] }, { type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "readonly", "disableTransitions"], outputs: ["change"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: IgxColumnMovingDropDirective, selector: "[igxColumnMovingDrop]", inputs: ["igxColumnMovingDrop"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf"], outputs: ["dataChanging"] }], pipes: { "igxTopLevel": IgxGridTopLevelColumns, "igxHeaderGroupStyle": IgxHeaderGroupStylePipe, "igxHeaderGroupWidth": IgxHeaderGroupWidthPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
55064
|
+
IgxGridHeaderRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxGridHeaderRowComponent, selector: "igx-grid-header-row", inputs: { grid: "grid", pinnedColumnCollection: "pinnedColumnCollection", unpinnedColumnCollection: "unpinnedColumnCollection", activeDescendant: "activeDescendant", hasMRL: "hasMRL", width: "width", density: "density" }, host: { properties: { "class.igx-grid-thead--cosy": "this.cosyStyle", "class.igx-grid-thead--compact": "this.compactStyle" } }, viewQueries: [{ propertyName: "headerContainer", first: true, predicate: ["headerVirtualContainer"], descendants: true, read: IgxGridForOfDirective, static: true }, { propertyName: "headerDragContainer", first: true, predicate: ["headerDragContainer"], descendants: true }, { propertyName: "headerSelectorContainer", first: true, predicate: ["headerSelectorContainer"], descendants: true }, { propertyName: "headerGroupContainer", first: true, predicate: ["headerGroupContainer"], descendants: true }, { propertyName: "headSelectorBaseTemplate", first: true, predicate: ["headSelectorBaseTemplate"], descendants: true }, { propertyName: "filterRow", first: true, predicate: IgxGridFilteringRowComponent, descendants: true }, { propertyName: "headerHierarchyExpander", first: true, predicate: ["headerHierarchyExpander"], descendants: true }, { propertyName: "_groups", predicate: IgxGridHeaderGroupComponent, descendants: true }], ngImport: i0, template: "<div role=\"rowgroup\" class=\"igx-grid-thead__wrapper\" [style.width.px]=\"width\"\n [class.igx-grid__tr--mrl]=\"hasMRL\">\n\n <!-- Column headers area -->\n <div class=\"igx-grid__tr\" role=\"row\" [style.width.px]=\"width\">\n\n <!-- Left column moving area -->\n <ng-container *ngIf=\"grid.hasMovableColumns && grid.columnInDrag && pinnedColumnCollection.length <= 0\">\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-left\" droppable=\"true\" [style.left.px]=\"grid.pinnedWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n </ng-container>\n <ng-container *ngIf=\"grid.hasMovableColumns && grid.columnInDrag && pinnedColumnCollection.length > 0\">\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-pinned\" droppable=\"true\" [style.left.px]=\"grid.pinnedWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n </ng-container>\n\n <!-- Row dragging area -->\n <ng-container *ngIf=\"grid.rowDraggable\">\n <div #headerDragContainer class=\"igx-grid__drag-indicator igx-grid__tr-action\" (pointerdown)=\"$event.preventDefault()\" [class.igx-grid__drag-indicator--header]=\"!grid.isRowSelectable\">\n <div style=\"visibility: hidden;\">\n <ng-container *ngTemplateOutlet=\"grid.dragIndicatorIconTemplate || grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </div>\n </ng-container>\n\n <!-- Row selectors area -->\n <ng-container *ngIf=\"grid.showRowSelectors\">\n <div #headerSelectorContainer class=\"igx-grid__cbx-selection igx-grid__tr-action\"\n [class.igx-grid__cbx-selection--push]=\"grid.filteringService.isFilterRowVisible\"\n (click)=\"headerRowSelection($event)\"\n (pointerdown)=\"$event.preventDefault()\">\n <ng-container #headSelector\n *ngTemplateOutlet=\"grid.headSelectorTemplate || headSelectorBaseTemplate; context: rowSelectorsContext\">\n </ng-container>\n </div>\n </ng-container>\n\n <!-- Hierarchical grids expand all area -->\n <ng-container *ngIf=\"isHierarchicalGrid\">\n <div #headerHierarchyExpander\n (click)=\"grid.toggleAll()\"\n (pointerdown)=\"$event.preventDefault()\"\n [hidden]=\"!grid.hasExpandableChildren || !grid.hasVisibleColumns\"\n [ngClass]=\"{\n 'igx-grid__hierarchical-expander igx-grid__hierarchical-expander--header igx-grid__tr-action': grid.hasExpandableChildren,\n 'igx-grid__hierarchical-expander--push': grid.filteringService.isFilterRowVisible,\n 'igx-grid__hierarchical-expander--no-border': grid.isRowSelectable || grid.rowDraggable\n }\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate; context: { $implicit: grid }\"></ng-container>\n </div>\n </ng-container>\n\n\n <!-- Grouping icon toggle area -->\n <ng-container *ngIf=\"grid?.groupingExpressions?.length\">\n <div #headerGroupContainer class=\"{{ indentationCSSClasses }}\"\n (click)=\"grid.toggleAllGroupRows()\"\n (pointerdown)=\"$event.preventDefault()\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate\"></ng-container>\n </div>\n </ng-container>\n\n <!-- Pinned columns collection from the start -->\n <ng-container *ngIf=\"pinnedColumnCollection.length && grid.isPinningToStart\">\n <ng-container *ngFor=\"let column of pinnedColumnCollection | igxTopLevel\">\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles | igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\"\n [style.min-width]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\">\n </igx-grid-header-group>\n </ng-container>\n </ng-container>\n\n <!-- Unpinned columns collection -->\n <ng-template igxGridFor #headerVirtualContainer let-column\n [igxGridForOf]=\"unpinnedColumnCollection | igxTopLevel\"\n [igxForScrollContainer]=\"grid.parentVirtDir\"\n [igxForContainerSize]=\"grid.unpinnedWidth\"\n [igxForTrackBy]=\"grid.trackColumnChanges\"\n [igxForSizePropName]=\"'calcPixelWidth'\"\n [igxForScrollOrientation]=\"'horizontal'\"\n >\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\"\n [style.min-width]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\">\n </igx-grid-header-group>\n </ng-template>\n\n <!-- Pinned columns collection at the end -->\n <ng-container *ngIf=\"pinnedColumnCollection.length && !grid.isPinningToStart\">\n <ng-container *ngFor=\"let column of pinnedColumnCollection | igxTopLevel\">\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\"\n [style.min-width]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.left]=\"column.rightPinnedOffset\">\n </igx-grid-header-group>\n </ng-container>\n </ng-container>\n </div>\n\n <!-- Filter row area -->\n <ng-container *ngIf=\"grid.filteringService.isFilterRowVisible\">\n <igx-grid-filtering-row #filteringRow\n [column]=\"grid.filteringService.filteredColumn\"\n [style.width.px]=\"width\">\n </igx-grid-filtering-row>\n </ng-container>\n\n <!-- Right column moving area -->\n <ng-container *ngIf=\"grid.hasMovableColumns && grid.columnInDrag\">\n <span id=\"right\" class=\"igx-grid__scroll-on-drag-right\" droppable=\"true\" [igxColumnMovingDrop]=\"headerContainer\"></span>\n </ng-container>\n</div>\n\n<!-- Header thumb area -->\n<div class=\"igx-grid-thead__thumb\" [hidden]=\"!grid.hasVerticalScroll()\" [style.width.px]=\"grid.scrollSize\"></div>\n\n<!-- Default row selection header checkbox template -->\n<ng-template #headSelectorBaseTemplate igxHeadSelector let-context>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [readonly]=\"true\"\n [checked]=\"context.selectedCount > 0 && context.totalCount === context.selectedCount\"\n [disableRipple]=\"true\"\n [ngStyle]=\"{'visibility': grid.isMultiRowSelectionEnabled? 'visible' : 'hidden' }\"\n [indeterminate]=\"context.selectedCount > 0 && context.selectedCount !== context.totalCount\"\n [aria-label]=\"grid.headSelectorBaseAriaLabel\"\n #headerCheckbox>\n </igx-checkbox>\n </div>\n</ng-template>\n", components: [{ type: IgxGridHeaderGroupComponent, selector: "igx-grid-header-group", inputs: ["column"] }, { type: IgxGridFilteringRowComponent, selector: "igx-grid-filtering-row", inputs: ["column", "value"] }, { type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "readonly", "disableTransitions"], outputs: ["change"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: IgxColumnMovingDropDirective, selector: "[igxColumnMovingDrop]", inputs: ["igxColumnMovingDrop"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf"], outputs: ["dataChanging"] }], pipes: { "igxTopLevel": IgxGridTopLevelColumns, "igxHeaderGroupStyle": IgxHeaderGroupStylePipe, "igxHeaderGroupWidth": IgxHeaderGroupWidthPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
54754
55065
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridHeaderRowComponent, decorators: [{
|
|
54755
55066
|
type: Component,
|
|
54756
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-header-row', template: "<div role=\"rowgroup\" class=\"igx-grid-thead__wrapper\" [style.width.px]=\"width\"\n [
|
|
55067
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-header-row', template: "<div role=\"rowgroup\" class=\"igx-grid-thead__wrapper\" [style.width.px]=\"width\"\n [class.igx-grid__tr--mrl]=\"hasMRL\">\n\n <!-- Column headers area -->\n <div class=\"igx-grid__tr\" role=\"row\" [style.width.px]=\"width\">\n\n <!-- Left column moving area -->\n <ng-container *ngIf=\"grid.hasMovableColumns && grid.columnInDrag && pinnedColumnCollection.length <= 0\">\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-left\" droppable=\"true\" [style.left.px]=\"grid.pinnedWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n </ng-container>\n <ng-container *ngIf=\"grid.hasMovableColumns && grid.columnInDrag && pinnedColumnCollection.length > 0\">\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-pinned\" droppable=\"true\" [style.left.px]=\"grid.pinnedWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n </ng-container>\n\n <!-- Row dragging area -->\n <ng-container *ngIf=\"grid.rowDraggable\">\n <div #headerDragContainer class=\"igx-grid__drag-indicator igx-grid__tr-action\" (pointerdown)=\"$event.preventDefault()\" [class.igx-grid__drag-indicator--header]=\"!grid.isRowSelectable\">\n <div style=\"visibility: hidden;\">\n <ng-container *ngTemplateOutlet=\"grid.dragIndicatorIconTemplate || grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </div>\n </ng-container>\n\n <!-- Row selectors area -->\n <ng-container *ngIf=\"grid.showRowSelectors\">\n <div #headerSelectorContainer class=\"igx-grid__cbx-selection igx-grid__tr-action\"\n [class.igx-grid__cbx-selection--push]=\"grid.filteringService.isFilterRowVisible\"\n (click)=\"headerRowSelection($event)\"\n (pointerdown)=\"$event.preventDefault()\">\n <ng-container #headSelector\n *ngTemplateOutlet=\"grid.headSelectorTemplate || headSelectorBaseTemplate; context: rowSelectorsContext\">\n </ng-container>\n </div>\n </ng-container>\n\n <!-- Hierarchical grids expand all area -->\n <ng-container *ngIf=\"isHierarchicalGrid\">\n <div #headerHierarchyExpander\n (click)=\"grid.toggleAll()\"\n (pointerdown)=\"$event.preventDefault()\"\n [hidden]=\"!grid.hasExpandableChildren || !grid.hasVisibleColumns\"\n [ngClass]=\"{\n 'igx-grid__hierarchical-expander igx-grid__hierarchical-expander--header igx-grid__tr-action': grid.hasExpandableChildren,\n 'igx-grid__hierarchical-expander--push': grid.filteringService.isFilterRowVisible,\n 'igx-grid__hierarchical-expander--no-border': grid.isRowSelectable || grid.rowDraggable\n }\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate; context: { $implicit: grid }\"></ng-container>\n </div>\n </ng-container>\n\n\n <!-- Grouping icon toggle area -->\n <ng-container *ngIf=\"grid?.groupingExpressions?.length\">\n <div #headerGroupContainer class=\"{{ indentationCSSClasses }}\"\n (click)=\"grid.toggleAllGroupRows()\"\n (pointerdown)=\"$event.preventDefault()\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate\"></ng-container>\n </div>\n </ng-container>\n\n <!-- Pinned columns collection from the start -->\n <ng-container *ngIf=\"pinnedColumnCollection.length && grid.isPinningToStart\">\n <ng-container *ngFor=\"let column of pinnedColumnCollection | igxTopLevel\">\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles | igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\"\n [style.min-width]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\">\n </igx-grid-header-group>\n </ng-container>\n </ng-container>\n\n <!-- Unpinned columns collection -->\n <ng-template igxGridFor #headerVirtualContainer let-column\n [igxGridForOf]=\"unpinnedColumnCollection | igxTopLevel\"\n [igxForScrollContainer]=\"grid.parentVirtDir\"\n [igxForContainerSize]=\"grid.unpinnedWidth\"\n [igxForTrackBy]=\"grid.trackColumnChanges\"\n [igxForSizePropName]=\"'calcPixelWidth'\"\n [igxForScrollOrientation]=\"'horizontal'\"\n >\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\"\n [style.min-width]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\">\n </igx-grid-header-group>\n </ng-template>\n\n <!-- Pinned columns collection at the end -->\n <ng-container *ngIf=\"pinnedColumnCollection.length && !grid.isPinningToStart\">\n <ng-container *ngFor=\"let column of pinnedColumnCollection | igxTopLevel\">\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\"\n [style.min-width]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.left]=\"column.rightPinnedOffset\">\n </igx-grid-header-group>\n </ng-container>\n </ng-container>\n </div>\n\n <!-- Filter row area -->\n <ng-container *ngIf=\"grid.filteringService.isFilterRowVisible\">\n <igx-grid-filtering-row #filteringRow\n [column]=\"grid.filteringService.filteredColumn\"\n [style.width.px]=\"width\">\n </igx-grid-filtering-row>\n </ng-container>\n\n <!-- Right column moving area -->\n <ng-container *ngIf=\"grid.hasMovableColumns && grid.columnInDrag\">\n <span id=\"right\" class=\"igx-grid__scroll-on-drag-right\" droppable=\"true\" [igxColumnMovingDrop]=\"headerContainer\"></span>\n </ng-container>\n</div>\n\n<!-- Header thumb area -->\n<div class=\"igx-grid-thead__thumb\" [hidden]=\"!grid.hasVerticalScroll()\" [style.width.px]=\"grid.scrollSize\"></div>\n\n<!-- Default row selection header checkbox template -->\n<ng-template #headSelectorBaseTemplate igxHeadSelector let-context>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [readonly]=\"true\"\n [checked]=\"context.selectedCount > 0 && context.totalCount === context.selectedCount\"\n [disableRipple]=\"true\"\n [ngStyle]=\"{'visibility': grid.isMultiRowSelectionEnabled? 'visible' : 'hidden' }\"\n [indeterminate]=\"context.selectedCount > 0 && context.selectedCount !== context.totalCount\"\n [aria-label]=\"grid.headSelectorBaseAriaLabel\"\n #headerCheckbox>\n </igx-checkbox>\n </div>\n</ng-template>\n" }]
|
|
54757
55068
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { grid: [{
|
|
54758
55069
|
type: Input
|
|
54759
55070
|
}], pinnedColumnCollection: [{
|
|
@@ -55900,9 +56211,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
55900
56211
|
*/
|
|
55901
56212
|
this.gridScroll = new EventEmitter();
|
|
55902
56213
|
/**
|
|
56214
|
+
* @deprecated in version 12.1.0. Use the corresponding output exposed by the `igx-paginator` component instead
|
|
56215
|
+
*
|
|
55903
56216
|
* Emitted after the current page is changed.
|
|
55904
56217
|
*
|
|
55905
56218
|
* @deprecated in version 12.1.0
|
|
56219
|
+
* Use the corresponding output exposed by the `igx-paginator` component instead.
|
|
56220
|
+
*
|
|
55906
56221
|
* @example
|
|
55907
56222
|
* ```html
|
|
55908
56223
|
* <igx-grid (pageChange)="onPageChange($event)"></igx-grid>
|
|
@@ -55915,9 +56230,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
55915
56230
|
*/
|
|
55916
56231
|
this.pageChange = new EventEmitter();
|
|
55917
56232
|
/**
|
|
56233
|
+
* @deprecated in version 12.1.0. Use the corresponding output exposed by the `igx-paginator` component instead
|
|
56234
|
+
*
|
|
55918
56235
|
* Emitted when `perPage` property value of the grid is changed.
|
|
55919
56236
|
*
|
|
55920
56237
|
* @deprecated in version 12.1.0
|
|
56238
|
+
* Use the corresponding output exposed by the `igx-paginator` component instead.
|
|
56239
|
+
*
|
|
55921
56240
|
* @example
|
|
55922
56241
|
* ```html
|
|
55923
56242
|
* <igx-grid #grid (perPageChange)="onPerPageChange($event)" [autoGenerate]="true"></igx-grid>
|
|
@@ -55935,8 +56254,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
55935
56254
|
*/
|
|
55936
56255
|
this.class = '';
|
|
55937
56256
|
/**
|
|
56257
|
+
* @deprecated in version 12.2.0. We suggest using `rowClasses` property instead
|
|
56258
|
+
*
|
|
55938
56259
|
* Gets/Sets the styling classes applied to all even `IgxGridRowComponent`s in the grid.
|
|
55939
56260
|
*
|
|
56261
|
+
* @deprecated
|
|
56262
|
+
* `evenRowCSS` is deprecated. We suggest using `rowClasses` property instead.
|
|
56263
|
+
*
|
|
55940
56264
|
* @example
|
|
55941
56265
|
* ```html
|
|
55942
56266
|
* <igx-grid #grid [data]="Data" [evenRowCSS]="'igx-grid--my-even-class'" [autoGenerate]="true"></igx-grid>
|
|
@@ -55944,8 +56268,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
55944
56268
|
*/
|
|
55945
56269
|
this.evenRowCSS = 'igx-grid__tr--even';
|
|
55946
56270
|
/**
|
|
56271
|
+
* @deprecated in version 12.2.0. We suggest using `rowClasses` property instead
|
|
56272
|
+
*
|
|
55947
56273
|
* Gets/Sets the styling classes applied to all odd `IgxGridRowComponent`s in the grid.
|
|
55948
56274
|
*
|
|
56275
|
+
* @deprecated
|
|
56276
|
+
* `oddRowCSS` is deprecated. We suggest using `rowClasses` property instead.
|
|
56277
|
+
*
|
|
55949
56278
|
* @example
|
|
55950
56279
|
* ```html
|
|
55951
56280
|
* <igx-grid #grid [data]="Data" [evenRowCSS]="'igx-grid--my-odd-class'" [autoGenerate]="true"></igx-grid>
|
|
@@ -56198,9 +56527,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
56198
56527
|
*/
|
|
56199
56528
|
this.filteringDone = new EventEmitter();
|
|
56200
56529
|
/**
|
|
56530
|
+
* @deprecated in version 12.1.0. Use the corresponding output exposed by the `igx-paginator` component instead
|
|
56531
|
+
*
|
|
56201
56532
|
* Emitted after paging is performed.
|
|
56202
56533
|
*
|
|
56203
56534
|
* @deprecated in version 12.1.x
|
|
56535
|
+
* `pagingDone` is deprecated. Use the corresponding output exposed by the `igx-paginator` component instead.
|
|
56536
|
+
*
|
|
56204
56537
|
* @remarks
|
|
56205
56538
|
* Returns an object consisting of the previous and next pages.
|
|
56206
56539
|
* @example
|
|
@@ -56525,7 +56858,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
56525
56858
|
* @hidden @internal
|
|
56526
56859
|
*/
|
|
56527
56860
|
this.columnWidthSetByUser = false;
|
|
56528
|
-
this.rendered$ = this.rendered.asObservable().pipe(shareReplay(1));
|
|
56861
|
+
this.rendered$ = this.rendered.asObservable().pipe(shareReplay({ bufferSize: 1, refCount: true }));
|
|
56529
56862
|
/** @hidden @internal */
|
|
56530
56863
|
this.resizeNotify = new Subject();
|
|
56531
56864
|
/** @hidden @internal */
|
|
@@ -56852,9 +57185,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
56852
57185
|
this.notifyChanges(true);
|
|
56853
57186
|
}
|
|
56854
57187
|
/**
|
|
57188
|
+
* @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
|
|
57189
|
+
*
|
|
56855
57190
|
* Gets/Sets whether the paging feature is enabled.
|
|
56856
57191
|
*
|
|
56857
57192
|
* @deprecated in version 12.1.x
|
|
57193
|
+
* `paging` is deprecated
|
|
57194
|
+
*
|
|
56858
57195
|
* @remarks
|
|
56859
57196
|
* The default state is disabled (false).
|
|
56860
57197
|
* @example
|
|
@@ -56872,9 +57209,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
56872
57209
|
this.pipeTrigger++;
|
|
56873
57210
|
}
|
|
56874
57211
|
/**
|
|
57212
|
+
* @deprecated in version 12.1.0. Use `page` property form `paginator` component instead
|
|
57213
|
+
*
|
|
56875
57214
|
* Gets/Sets the current page index.
|
|
56876
57215
|
*
|
|
56877
57216
|
* @deprecated in version 12.1.x
|
|
57217
|
+
* `page` is deprecated. Use the `page` property from the `igx-paginator` component instead.
|
|
57218
|
+
*
|
|
56878
57219
|
* @example
|
|
56879
57220
|
* ```html
|
|
56880
57221
|
* <igx-grid #grid [data]="Data" [autoGenerate]="true">
|
|
@@ -56894,9 +57235,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
56894
57235
|
}
|
|
56895
57236
|
}
|
|
56896
57237
|
/**
|
|
57238
|
+
* @deprecated in version 12.1.0. Use `perPage` property from `paginator` component instead
|
|
57239
|
+
*
|
|
56897
57240
|
* Gets/Sets the number of visible items per page.
|
|
56898
57241
|
*
|
|
56899
57242
|
* @deprecated in version 12.1.x
|
|
57243
|
+
* `perPage` is deprecated. Use the `perPage` property from the `igx-paginator` component instead.
|
|
57244
|
+
*
|
|
56900
57245
|
* @remarks
|
|
56901
57246
|
* The default is 15.
|
|
56902
57247
|
* @example
|
|
@@ -57949,7 +58294,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
57949
58294
|
this.summaryService.clearSummaryCache(args);
|
|
57950
58295
|
});
|
|
57951
58296
|
this.subscribeToTransactions();
|
|
57952
|
-
this.resizeNotify.pipe(
|
|
58297
|
+
this.resizeNotify.pipe(filter(() => !this._init), throttleTime(0, animationFrameScheduler, { leading: true, trailing: true }), destructor)
|
|
57953
58298
|
.subscribe(() => {
|
|
57954
58299
|
this.zone.run(() => {
|
|
57955
58300
|
this.notifyChanges(true);
|
|
@@ -57985,7 +58330,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
57985
58330
|
this.overlayIDs.push(event.id);
|
|
57986
58331
|
}
|
|
57987
58332
|
});
|
|
57988
|
-
this.overlayService.closed.pipe(
|
|
58333
|
+
this.overlayService.closed.pipe(filter(() => !this._init), destructor).subscribe((event) => {
|
|
57989
58334
|
if (this._advancedFilteringOverlayId === event.id) {
|
|
57990
58335
|
this.overlayService.detach(this._advancedFilteringOverlayId);
|
|
57991
58336
|
this._advancedFilteringOverlayId = null;
|
|
@@ -57996,7 +58341,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
57996
58341
|
this.overlayIDs.splice(ind, 1);
|
|
57997
58342
|
}
|
|
57998
58343
|
});
|
|
57999
|
-
this.verticalScrollContainer.dataChanging.pipe(
|
|
58344
|
+
this.verticalScrollContainer.dataChanging.pipe(filter(() => !this._init), destructor).subscribe(($event) => {
|
|
58000
58345
|
const shouldRecalcSize = this.isPercentHeight &&
|
|
58001
58346
|
(!this.calcHeight || this.calcHeight === this.getDataBasedBodyHeight() ||
|
|
58002
58347
|
this.calcHeight === this.renderedRowHeight * this._defaultTargetRecordNumber);
|
|
@@ -58006,12 +58351,12 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58006
58351
|
}
|
|
58007
58352
|
this.evaluateLoadingState();
|
|
58008
58353
|
});
|
|
58009
|
-
this.verticalScrollContainer.scrollbarVisibilityChanged.pipe(
|
|
58354
|
+
this.verticalScrollContainer.scrollbarVisibilityChanged.pipe(filter(() => !this._init), destructor).subscribe(() => {
|
|
58010
58355
|
// called to recalc all widths that may have changes as a result of
|
|
58011
58356
|
// the vert. scrollbar showing/hiding
|
|
58012
58357
|
this.notifyChanges(true);
|
|
58013
58358
|
});
|
|
58014
|
-
this.verticalScrollContainer.contentSizeChange.pipe(
|
|
58359
|
+
this.verticalScrollContainer.contentSizeChange.pipe(filter(() => !this._init), destructor).subscribe(() => {
|
|
58015
58360
|
this.calculateGridSizes(false);
|
|
58016
58361
|
});
|
|
58017
58362
|
this.onDensityChanged.pipe(destructor).subscribe(() => {
|
|
@@ -58117,7 +58462,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58117
58462
|
*/
|
|
58118
58463
|
ngAfterContentInit() {
|
|
58119
58464
|
this.setupColumns();
|
|
58120
|
-
this.toolbar.changes.pipe(
|
|
58465
|
+
this.toolbar.changes.pipe(filter(() => !this._init), takeUntil(this.destroy$)).subscribe(() => this.notifyChanges(true));
|
|
58121
58466
|
this.setUpPaginator();
|
|
58122
58467
|
this.paginationComponents.changes.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
58123
58468
|
this.setUpPaginator();
|
|
@@ -58577,24 +58922,24 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58577
58922
|
get summariesMargin() {
|
|
58578
58923
|
return this.featureColumnsWidth();
|
|
58579
58924
|
}
|
|
58580
|
-
/**
|
|
58581
|
-
* @hidden
|
|
58582
|
-
* @internal
|
|
58583
|
-
*/
|
|
58584
|
-
get columns() {
|
|
58585
|
-
return this._columns;
|
|
58586
|
-
}
|
|
58587
58925
|
/**
|
|
58588
58926
|
* Gets an array of `IgxColumnComponent`s.
|
|
58589
58927
|
*
|
|
58590
58928
|
* @example
|
|
58591
58929
|
* ```typescript
|
|
58592
|
-
* const colums = this.grid.
|
|
58930
|
+
* const colums = this.grid.columns.
|
|
58593
58931
|
* ```
|
|
58594
58932
|
*/
|
|
58595
|
-
get
|
|
58933
|
+
get columns() {
|
|
58596
58934
|
return this._rendered ? this._columns : [];
|
|
58597
58935
|
}
|
|
58936
|
+
/**
|
|
58937
|
+
* @hidden
|
|
58938
|
+
* @internal
|
|
58939
|
+
*/
|
|
58940
|
+
get columnsCollection() {
|
|
58941
|
+
return this._columns;
|
|
58942
|
+
}
|
|
58598
58943
|
/**
|
|
58599
58944
|
* Gets an array of the pinned `IgxColumnComponent`s.
|
|
58600
58945
|
*
|
|
@@ -58676,9 +59021,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58676
59021
|
return this._visibleColumns;
|
|
58677
59022
|
}
|
|
58678
59023
|
/**
|
|
59024
|
+
* @deprecated in version 12.1.0. Use the corresponding property exposed by the `igx-paginator`
|
|
59025
|
+
*
|
|
58679
59026
|
* Gets the total number of pages.
|
|
58680
59027
|
*
|
|
58681
59028
|
* @deprecated in version 12.1.0
|
|
59029
|
+
* `totalPages` is deprecated. Use the corresponding property exposed by the `igx-paginator`.
|
|
59030
|
+
*
|
|
58682
59031
|
* @example
|
|
58683
59032
|
* ```typescript
|
|
58684
59033
|
* const totalPages = this.grid.totalPages;
|
|
@@ -58689,9 +59038,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58689
59038
|
return (_a = this.paginator) === null || _a === void 0 ? void 0 : _a.totalPages;
|
|
58690
59039
|
}
|
|
58691
59040
|
/**
|
|
59041
|
+
* @deprecated in version 12.1.0. Use the corresponding property exposed by the `igx-paginator`
|
|
59042
|
+
*
|
|
58692
59043
|
* Gets if the current page is the first page.
|
|
58693
59044
|
*
|
|
58694
59045
|
* @deprecated in version 12.1.0
|
|
59046
|
+
* `isFirstPage` is deprecated. Use the corresponding property exposed by the `igx-paginator`.'
|
|
59047
|
+
*
|
|
58695
59048
|
* @example
|
|
58696
59049
|
* ```typescript
|
|
58697
59050
|
* const firstPage = this.grid.isFirstPage;
|
|
@@ -58701,9 +59054,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58701
59054
|
return this.paginator.isLastPage;
|
|
58702
59055
|
}
|
|
58703
59056
|
/**
|
|
59057
|
+
* @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
|
|
59058
|
+
*
|
|
58704
59059
|
* Goes to the next page, if the grid is not already at the last page.
|
|
58705
59060
|
*
|
|
58706
59061
|
* @deprecated in version 12.1.0
|
|
59062
|
+
* 'Use the corresponding method exposed by the `igx-paginator`.'
|
|
59063
|
+
*
|
|
58707
59064
|
* @example
|
|
58708
59065
|
* ```typescript
|
|
58709
59066
|
* this.grid1.nextPage();
|
|
@@ -58715,12 +59072,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58715
59072
|
(_a = this.paginator) === null || _a === void 0 ? void 0 : _a.nextPage();
|
|
58716
59073
|
}
|
|
58717
59074
|
/**
|
|
59075
|
+
* @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
|
|
59076
|
+
*
|
|
58718
59077
|
* Goes to the previous page, if the grid is not already at the first page.
|
|
58719
59078
|
*
|
|
58720
59079
|
* @deprecated in version 12.1.0
|
|
59080
|
+
* 'Use the corresponding method exposed by the `igx-paginator`.'
|
|
58721
59081
|
* @example
|
|
58722
|
-
* ```typescript
|
|
58723
|
-
* this.grid1.previousPage();
|
|
58724
59082
|
* ```
|
|
58725
59083
|
*/
|
|
58726
59084
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
@@ -58753,9 +59111,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58753
59111
|
}
|
|
58754
59112
|
}
|
|
58755
59113
|
/**
|
|
59114
|
+
* @deprecated in version 12.1.0. Use the corresponding property exposed by the `igx-paginator`
|
|
59115
|
+
*
|
|
58756
59116
|
* Returns if the current page is the last page.
|
|
58757
59117
|
*
|
|
58758
59118
|
* @deprecated in version 12.1.0
|
|
59119
|
+
* `isLastPage` is deprecated. Use the corresponding property exposed by the `igx-paginator`.'
|
|
59120
|
+
*
|
|
58759
59121
|
* @example
|
|
58760
59122
|
* ```typescript
|
|
58761
59123
|
* const lastPage = this.grid.isLastPage;
|
|
@@ -58798,14 +59160,14 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58798
59160
|
* @internal
|
|
58799
59161
|
*/
|
|
58800
59162
|
get showAddButton() {
|
|
58801
|
-
return this.rowEditable && this.dataView.length === 0 && this.
|
|
59163
|
+
return this.rowEditable && this.dataView.length === 0 && this.columnList.length > 0;
|
|
58802
59164
|
}
|
|
58803
59165
|
/**
|
|
58804
59166
|
* @hidden
|
|
58805
59167
|
* @internal
|
|
58806
59168
|
*/
|
|
58807
59169
|
get showDragIcons() {
|
|
58808
|
-
return this.rowDraggable && this.
|
|
59170
|
+
return this.rowDraggable && this.columnList.length > this.hiddenColumnsCount;
|
|
58809
59171
|
}
|
|
58810
59172
|
/**
|
|
58811
59173
|
* Places a column before or after the specified target column.
|
|
@@ -58852,8 +59214,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
58852
59214
|
this._columnsReordered(column);
|
|
58853
59215
|
}
|
|
58854
59216
|
/**
|
|
59217
|
+
* @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
|
|
59218
|
+
*
|
|
58855
59219
|
* Goes to the desired page index.
|
|
58856
59220
|
*
|
|
59221
|
+
* @deprecated in version 12.1.x
|
|
59222
|
+
* 'Use the corresponding method exposed by the `igx-paginator`.'
|
|
59223
|
+
*
|
|
58857
59224
|
* @example
|
|
58858
59225
|
* ```typescript
|
|
58859
59226
|
* this.grid1.paginate(1);
|
|
@@ -60034,7 +60401,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
60034
60401
|
if (!this.clipboardOptions.copyHeaders) {
|
|
60035
60402
|
result = result.substring(result.indexOf('\n') + 1);
|
|
60036
60403
|
}
|
|
60037
|
-
if (Object.values(data[0]).length === 1) {
|
|
60404
|
+
if (data && data.length > 0 && Object.values(data[0]).length === 1) {
|
|
60038
60405
|
result = result.slice(0, -2);
|
|
60039
60406
|
}
|
|
60040
60407
|
event.preventDefault();
|
|
@@ -61264,7 +61631,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
61264
61631
|
// Make sure we don't exceed unpinned area min width and get pinned and unpinned col collections.
|
|
61265
61632
|
// We take into account top level columns (top level groups and non groups).
|
|
61266
61633
|
// If top level is unpinned the pinning handles all children to be unpinned as well.
|
|
61267
|
-
for (const column of this.
|
|
61634
|
+
for (const column of this.columnList) {
|
|
61268
61635
|
if (column.pinned && !column.parent) {
|
|
61269
61636
|
pinnedColumns.push(column);
|
|
61270
61637
|
}
|
|
@@ -61357,7 +61724,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
61357
61724
|
_columnsReordered(column) {
|
|
61358
61725
|
this.notifyChanges();
|
|
61359
61726
|
if (this.hasColumnLayouts) {
|
|
61360
|
-
this.
|
|
61727
|
+
this.columnList.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
|
|
61361
61728
|
}
|
|
61362
61729
|
// after reordering is done reset cached column collections.
|
|
61363
61730
|
this.resetColumnCollections();
|
|
@@ -61653,24 +62020,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
|
|
|
61653
62020
|
}
|
|
61654
62021
|
IgxGridBaseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridBaseDirective, deps: [{ token: IgxGridSelectionService }, { token: IgxColumnResizingService }, { token: IGX_GRID_SERVICE_BASE }, { token: IgxFlatTransactionFactory }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }, { token: i0.IterableDiffers }, { token: i0.ViewContainerRef }, { token: IgxGridNavigationService }, { token: IgxFilteringService }, { token: IgxOverlayService }, { token: IgxGridSummaryService }, { token: DisplayDensityToken, optional: true }, { token: LOCALE_ID }, { token: PlatformUtil }, { token: IgxGridTransaction, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
61655
62022
|
IgxGridBaseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxGridBaseDirective, inputs: { snackbarDisplayTime: "snackbarDisplayTime", autoGenerate: "autoGenerate", emptyGridTemplate: "emptyGridTemplate", addRowEmptyTemplate: "addRowEmptyTemplate", loadingGridTemplate: "loadingGridTemplate", clipboardOptions: "clipboardOptions", class: "class", evenRowCSS: "evenRowCSS", oddRowCSS: "oddRowCSS", rowClasses: "rowClasses", rowStyles: "rowStyles", primaryKey: "primaryKey", uniqueColumnValuesStrategy: "uniqueColumnValuesStrategy", resourceStrings: "resourceStrings", filteringLogic: "filteringLogic", filteringExpressionsTree: "filteringExpressionsTree", advancedFilteringExpressionsTree: "advancedFilteringExpressionsTree", locale: "locale", pagingMode: "pagingMode", paging: "paging", page: "page", perPage: "perPage", hideRowSelectors: "hideRowSelectors", rowDraggable: "rowDraggable", rowEditable: "rowEditable", height: "height", width: "width", rowHeight: "rowHeight", columnWidth: "columnWidth", emptyGridMessage: "emptyGridMessage", isLoading: "isLoading", emptyFilteredGridMessage: "emptyFilteredGridMessage", pinning: "pinning", allowFiltering: "allowFiltering", allowAdvancedFiltering: "allowAdvancedFiltering", filterMode: "filterMode", summaryPosition: "summaryPosition", summaryCalculationMode: "summaryCalculationMode", showSummaryOnCollapse: "showSummaryOnCollapse", filterStrategy: "filterStrategy", sortStrategy: "sortStrategy", selectedRows: "selectedRows", sortingExpressions: "sortingExpressions", batchEditing: "batchEditing", cellSelection: "cellSelection", rowSelection: "rowSelection", columnSelection: "columnSelection", expansionStates: "expansionStates", outlet: "outlet", totalRecords: "totalRecords", selectRowOnClick: "selectRowOnClick" }, outputs: { filteringExpressionsTreeChange: "filteringExpressionsTreeChange", advancedFilteringExpressionsTreeChange: "advancedFilteringExpressionsTreeChange", gridScroll: "gridScroll", pageChange: "pageChange", perPageChange: "perPageChange", cellClick: "cellClick", selected: "selected", rowSelected: "rowSelected", columnSelected: "columnSelected", columnPin: "columnPin", columnPinned: "columnPinned", cellEditEnter: "cellEditEnter", cellEditExit: "cellEditExit", cellEdit: "cellEdit", cellEditDone: "cellEditDone", rowEditEnter: "rowEditEnter", rowEdit: "rowEdit", rowEditDone: "rowEditDone", rowEditExit: "rowEditExit", columnInit: "columnInit", sorting: "sorting", sortingDone: "sortingDone", filtering: "filtering", filteringDone: "filteringDone", pagingDone: "pagingDone", rowAdded: "rowAdded", rowDeleted: "rowDeleted", rowDelete: "rowDelete", rowAdd: "rowAdd", columnResized: "columnResized", contextMenu: "contextMenu", doubleClick: "doubleClick", columnVisibilityChanging: "columnVisibilityChanging", columnVisibilityChanged: "columnVisibilityChanged", columnMovingStart: "columnMovingStart", columnMoving: "columnMoving", columnMovingEnd: "columnMovingEnd", gridKeydown: "gridKeydown", rowDragStart: "rowDragStart", rowDragEnd: "rowDragEnd", gridCopy: "gridCopy", expansionStatesChange: "expansionStatesChange", rowToggle: "rowToggle", rowPinning: "rowPinning", rowPinned: "rowPinned", activeNodeChange: "activeNodeChange", sortingExpressionsChange: "sortingExpressionsChange", toolbarExporting: "toolbarExporting", rangeSelected: "rangeSelected", rendered: "rendered", localeChange: "localeChange" }, host: { listeners: { "mouseleave": "hideActionStrip()" }, properties: { "attr.tabindex": "this.tabindex", "attr.role": "this.hostRole", "style.height": "this.height", "style.width": "this.hostWidth", "attr.class": "this.hostClass" } }, queries: [{ propertyName: "actionStrip", first: true, predicate: IgxActionStripComponent, descendants: true }, { propertyName: "excelStyleLoadingValuesTemplateDirective", first: true, predicate: IgxExcelStyleLoadingValuesTemplateDirective, descendants: true, read: IgxExcelStyleLoadingValuesTemplateDirective, static: true }, { propertyName: "rowAddText", first: true, predicate: IgxRowAddTextDirective, descendants: true, read: TemplateRef }, { propertyName: "rowExpandedIndicatorTemplate", first: true, predicate: IgxRowExpandedIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "rowCollapsedIndicatorTemplate", first: true, predicate: IgxRowCollapsedIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "headerExpandIndicatorTemplate", first: true, predicate: IgxHeaderExpandIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "headerCollapseIndicatorTemplate", first: true, predicate: IgxHeaderCollapseIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "excelStyleHeaderIconTemplate", first: true, predicate: IgxExcelStyleHeaderIconDirective, descendants: true, read: TemplateRef }, { propertyName: "excelStyleFilteringComponents", predicate: IgxGridExcelStyleFilteringComponent, read: IgxGridExcelStyleFilteringComponent }, { propertyName: "columnList", predicate: IgxColumnComponent, descendants: true, read: IgxColumnComponent }, { propertyName: "headSelectorsTemplates", predicate: IgxHeadSelectorDirective, read: IgxHeadSelectorDirective }, { propertyName: "rowSelectorsTemplates", predicate: IgxRowSelectorDirective, read: IgxRowSelectorDirective }, { propertyName: "dragGhostCustomTemplates", predicate: IgxRowDragGhostDirective, read: TemplateRef }, { propertyName: "rowEditCustomDirectives", predicate: IgxRowEditTemplateDirective, read: TemplateRef }, { propertyName: "rowEditTextDirectives", predicate: IgxRowEditTextDirective, read: TemplateRef }, { propertyName: "rowEditActionsDirectives", predicate: IgxRowEditActionsDirective, read: TemplateRef }, { propertyName: "dragIndicatorIconTemplates", predicate: IgxDragIndicatorIconDirective, read: TemplateRef }, { propertyName: "rowEditTabsCUSTOM", predicate: IgxRowEditTabStopDirective, descendants: true }, { propertyName: "toolbar", predicate: IgxGridToolbarComponent }, { propertyName: "paginationComponents", predicate: IgxPaginatorComponent }], viewQueries: [{ propertyName: "addRowSnackbar", first: true, predicate: IgxSnackbarComponent, descendants: true }, { propertyName: "resizeLine", first: true, predicate: IgxGridColumnResizerComponent, descendants: true }, { propertyName: "loadingOverlay", first: true, predicate: ["loadingOverlay"], descendants: true, read: IgxToggleDirective, static: true }, { propertyName: "loadingOutlet", first: true, predicate: ["igxLoadingOverlayOutlet"], descendants: true, read: IgxOverlayOutletDirective, static: true }, { propertyName: "emptyFilteredGridTemplate", first: true, predicate: ["emptyFilteredGrid"], descendants: true, read: TemplateRef, static: true }, { propertyName: "emptyGridDefaultTemplate", first: true, predicate: ["defaultEmptyGrid"], descendants: true, read: TemplateRef, static: true }, { propertyName: "loadingGridDefaultTemplate", first: true, predicate: ["defaultLoadingGrid"], descendants: true, read: TemplateRef, static: true }, { propertyName: "parentVirtDir", first: true, predicate: ["scrollContainer"], descendants: true, read: IgxGridForOfDirective, static: true }, { propertyName: "verticalScrollContainer", first: true, predicate: ["verticalScrollContainer"], descendants: true, read: IgxGridForOfDirective, static: true }, { propertyName: "verticalScroll", first: true, predicate: ["verticalScrollHolder"], descendants: true, read: IgxGridForOfDirective, static: true }, { propertyName: "scr", first: true, predicate: ["scr"], descendants: true, read: ElementRef, static: true }, { propertyName: "headerSelectorBaseTemplate", first: true, predicate: ["headSelectorBaseTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "footer", first: true, predicate: ["footer"], descendants: true, read: ElementRef }, { propertyName: "theadRow", first: true, predicate: IgxGridHeaderRowComponent, descendants: true, static: true }, { propertyName: "groupArea", first: true, predicate: IgxGridGroupByAreaComponent, descendants: true }, { propertyName: "tbody", first: true, predicate: ["tbody"], descendants: true, static: true }, { propertyName: "pinContainer", first: true, predicate: ["pinContainer"], descendants: true, read: ElementRef }, { propertyName: "tfoot", first: true, predicate: ["tfoot"], descendants: true, static: true }, { propertyName: "rowEditingOutletDirective", first: true, predicate: ["igxRowEditingOverlayOutlet"], descendants: true, read: IgxOverlayOutletDirective, static: true }, { propertyName: "dragIndicatorIconBase", first: true, predicate: ["dragIndicatorIconBase"], descendants: true, read: TemplateRef, static: true }, { propertyName: "rowEditingOverlay", first: true, predicate: ["rowEditingOverlay"], descendants: true, read: IgxToggleDirective }, { propertyName: "_outletDirective", first: true, predicate: ["igxFilteringOverlayOutlet"], descendants: true, read: IgxOverlayOutletDirective, static: true }, { propertyName: "defaultExpandedTemplate", first: true, predicate: ["defaultExpandedTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultCollapsedTemplate", first: true, predicate: ["defaultCollapsedTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultESFHeaderIconTemplate", first: true, predicate: ["defaultESFHeaderIcon"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultRowEditTemplate", first: true, predicate: ["defaultRowEditTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "tmpOutlets", predicate: IgxTemplateOutletDirective, descendants: true, read: IgxTemplateOutletDirective }, { propertyName: "rowEditTabsDEFAULT", predicate: IgxRowEditTabStopDirective, descendants: true }, { propertyName: "_summaryRowList", predicate: ["summaryRow"], descendants: true, read: IgxSummaryRowComponent }, { propertyName: "_rowList", predicate: ["row"], descendants: true }, { propertyName: "_pinnedRowList", predicate: ["pinnedRow"], descendants: true }, { propertyName: "_dataRowList", predicate: IgxRowDirective, descendants: true, read: IgxRowDirective }], usesInheritance: true, ngImport: i0 });
|
|
61656
|
-
__decorate([
|
|
61657
|
-
DeprecateProperty('`pageChange` is deprecated. Use the corresponding output exposed by the `igx-paginator` component instead.')
|
|
61658
|
-
], IgxGridBaseDirective.prototype, "pageChange", void 0);
|
|
61659
|
-
__decorate([
|
|
61660
|
-
DeprecateProperty('`perPageChange` is deprecated. Use the corresponding output exposed by the `igx-paginator` component instead.')
|
|
61661
|
-
], IgxGridBaseDirective.prototype, "perPageChange", void 0);
|
|
61662
|
-
__decorate([
|
|
61663
|
-
DeprecateProperty('`evenRowCSS` is deprecated. We suggest using `rowClasses` property instead.')
|
|
61664
|
-
], IgxGridBaseDirective.prototype, "evenRowCSS", void 0);
|
|
61665
|
-
__decorate([
|
|
61666
|
-
DeprecateProperty('`oddRowCSS` is deprecated. We suggest using `rowClasses` property instead.')
|
|
61667
|
-
], IgxGridBaseDirective.prototype, "oddRowCSS", void 0);
|
|
61668
62023
|
__decorate([
|
|
61669
62024
|
WatchChanges()
|
|
61670
62025
|
], IgxGridBaseDirective.prototype, "primaryKey", void 0);
|
|
61671
|
-
__decorate([
|
|
61672
|
-
DeprecateProperty('`pagingDone` is deprecated. Use the corresponding output exposed by the `igx-paginator` component instead.')
|
|
61673
|
-
], IgxGridBaseDirective.prototype, "pagingDone", void 0);
|
|
61674
62026
|
__decorate([
|
|
61675
62027
|
WatchChanges()
|
|
61676
62028
|
], IgxGridBaseDirective.prototype, "filteringLogic", null);
|
|
@@ -61680,15 +62032,6 @@ __decorate([
|
|
|
61680
62032
|
__decorate([
|
|
61681
62033
|
WatchChanges()
|
|
61682
62034
|
], IgxGridBaseDirective.prototype, "advancedFilteringExpressionsTree", null);
|
|
61683
|
-
__decorate([
|
|
61684
|
-
DeprecateProperty('`paging` is deprecated')
|
|
61685
|
-
], IgxGridBaseDirective.prototype, "paging", null);
|
|
61686
|
-
__decorate([
|
|
61687
|
-
DeprecateProperty('`page` is deprecated. Use `page` property form `paginator` component instead.')
|
|
61688
|
-
], IgxGridBaseDirective.prototype, "page", null);
|
|
61689
|
-
__decorate([
|
|
61690
|
-
DeprecateProperty('`perPage` is deprecated. Use `perPage` property from `paginator` component instead.')
|
|
61691
|
-
], IgxGridBaseDirective.prototype, "perPage", null);
|
|
61692
62035
|
__decorate([
|
|
61693
62036
|
WatchChanges()
|
|
61694
62037
|
], IgxGridBaseDirective.prototype, "hideRowSelectors", null);
|
|
@@ -61722,24 +62065,6 @@ __decorate([
|
|
|
61722
62065
|
__decorate([
|
|
61723
62066
|
WatchChanges()
|
|
61724
62067
|
], IgxGridBaseDirective.prototype, "columnSelection", null);
|
|
61725
|
-
__decorate([
|
|
61726
|
-
DeprecateProperty('`totalPages` is deprecated. Use the corresponding property exposed by the `igx-paginator`.')
|
|
61727
|
-
], IgxGridBaseDirective.prototype, "totalPages", null);
|
|
61728
|
-
__decorate([
|
|
61729
|
-
DeprecateProperty('`isFirstPage` is deprecated. Use the corresponding property exposed by the `igx-paginator`.')
|
|
61730
|
-
], IgxGridBaseDirective.prototype, "isFirstPage", null);
|
|
61731
|
-
__decorate([
|
|
61732
|
-
DeprecateMethod('Use the corresponding method exposed by the `igx-paginator`.')
|
|
61733
|
-
], IgxGridBaseDirective.prototype, "nextPage", null);
|
|
61734
|
-
__decorate([
|
|
61735
|
-
DeprecateMethod('Use the corresponding method exposed by the `igx-paginator`.')
|
|
61736
|
-
], IgxGridBaseDirective.prototype, "previousPage", null);
|
|
61737
|
-
__decorate([
|
|
61738
|
-
DeprecateProperty('`isLastPage` is deprecated. Use the corresponding property exposed by the `igx-paginator`.')
|
|
61739
|
-
], IgxGridBaseDirective.prototype, "isLastPage", null);
|
|
61740
|
-
__decorate([
|
|
61741
|
-
DeprecateMethod('Use the corresponding method exposed by the `igx-paginator`.')
|
|
61742
|
-
], IgxGridBaseDirective.prototype, "paginate", null);
|
|
61743
62068
|
__decorate([
|
|
61744
62069
|
WatchChanges()
|
|
61745
62070
|
], IgxGridBaseDirective.prototype, "selectRowOnClick", null);
|
|
@@ -62143,9 +62468,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
62143
62468
|
type: Input
|
|
62144
62469
|
}], outlet: [{
|
|
62145
62470
|
type: Input
|
|
62146
|
-
}],
|
|
62471
|
+
}], totalRecords: [{
|
|
62147
62472
|
type: Input
|
|
62148
|
-
}],
|
|
62473
|
+
}], selectRowOnClick: [{
|
|
62149
62474
|
type: Input
|
|
62150
62475
|
}] } });
|
|
62151
62476
|
|
|
@@ -64637,7 +64962,8 @@ class IgxGridComponent extends IgxGridBaseDirective {
|
|
|
64637
64962
|
return this._dropAreaMessage || this.resourceStrings.igx_grid_groupByArea_message;
|
|
64638
64963
|
}
|
|
64639
64964
|
/**
|
|
64640
|
-
* @deprecated
|
|
64965
|
+
* @deprecated in version 12.1.0. Use `getCellByColumn` or `getCellByKey` instead
|
|
64966
|
+
*
|
|
64641
64967
|
* Returns a `CellType` object that matches the conditions.
|
|
64642
64968
|
*
|
|
64643
64969
|
* @example
|
|
@@ -65366,9 +65692,6 @@ IgxGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
65366
65692
|
IgxForOfSyncService,
|
|
65367
65693
|
IgxForOfScrollSyncService
|
|
65368
65694
|
], queries: [{ propertyName: "detailTemplate", first: true, predicate: IgxGridDetailTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "groupTemplate", first: true, predicate: IgxGroupByRowTemplateDirective, descendants: true, read: IgxGroupByRowTemplateDirective }, { propertyName: "gridDetailsTemplate", first: true, predicate: IgxGridDetailTemplateDirective, descendants: true, read: IgxGridDetailTemplateDirective }, { propertyName: "groupByRowSelectorsTemplates", predicate: IgxGroupByRowSelectorDirective, read: IgxGroupByRowSelectorDirective }], viewQueries: [{ propertyName: "groupArea", first: true, predicate: IgxGridGroupByAreaComponent, descendants: true }, { propertyName: "recordTemplate", first: true, predicate: ["record_template"], descendants: true, read: TemplateRef, static: true }, { propertyName: "detailTemplateContainer", first: true, predicate: ["detail_template_container"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultGroupTemplate", first: true, predicate: ["group_template"], descendants: true, read: TemplateRef, static: true }, { propertyName: "summaryTemplate", first: true, predicate: ["summary_template"], descendants: true, read: TemplateRef, static: true }, { propertyName: "_groupsRowList", predicate: IgxGridGroupByRowComponent, descendants: true, read: IgxGridGroupByRowComponent }], usesInheritance: true, ngImport: i0, template: "<!-- Toolbar area -->\n<ng-content select=\"igx-grid-toolbar\"></ng-content>\n\n<!-- Group-by area -->\n<ng-container *ngIf=\"showGroupArea && (groupingExpressions.length > 0 || hasGroupableColumns)\">\n <igx-grid-group-by-area #groupArea [style.flex-basis.px]='outerWidth'\n [grid]=\"this\"\n [expressions]=\"groupingExpressions\"\n [sortingExpressions]=\"sortingExpressions\"\n [density]=\"displayDensity\"\n [dropAreaTemplate]=\"dropAreaTemplate\"\n [dropAreaMessage]=\"dropAreaMessage\"\n >\n </igx-grid-group-by-area>\n</ng-container>\n\n<!-- Grid table head row area -->\n<igx-grid-header-row class=\"igx-grid-thead\" tabindex=\"0\"\n [grid]=\"this\"\n [hasMRL]=\"hasColumnLayouts\"\n [density]=\"displayDensity\"\n [activeDescendant]=\"activeDescendant\"\n [width]=\"calcWidth\"\n [pinnedColumnCollection]=\"pinnedColumns\"\n [unpinnedColumnCollection]=\"unpinnedColumns\"\n (keydown.meta.c)=\"copyHandler($event)\"\n (keydown.control.c)=\"copyHandler($event)\"\n (copy)=\"copyHandler($event)\"\n (keydown)=\"navigation.headerNavigation($event)\"\n (scroll)=\"preventHeaderScroll($event)\"\n (focus)=\"navigation.focusFirstCell()\"\n>\n</igx-grid-header-row>\n\n<div igxGridBody (keydown.control.c)=\"copyHandler($event)\" (copy)=\"copyHandler($event)\" class=\"igx-grid__tbody\" role=\"rowgroup\">\n <div class=\"igx-grid__tbody-content\" tabindex=\"0\" [attr.role]=\"dataView.length ? null : 'row'\" (keydown)=\"navigation.handleNavigation($event)\" (focus)=\"navigation.focusTbody($event)\"\n (dragStop)=\"selectionService.dragMode = $event\" (scroll)='preventContainerScroll($event)'\n (dragScroll)=\"dragScroll($event)\" [igxGridDragSelect]=\"selectionService.dragMode\"\n [style.height.px]='totalHeight' [style.width.px]='calcWidth || null' #tbody [attr.aria-activedescendant]=\"activeDescendant\">\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length <= 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-left\"></span>\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length > 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-pinned\" [style.left.px]=\"pinnedWidth\"></span>\n <ng-container *ngTemplateOutlet=\"hasPinnedRecords && isRowPinningToTop ? pinnedRecordsTemplate : null\">\n </ng-container>\n <ng-template #pinnedRecordsTemplate>\n <ng-container *ngIf='data\n | gridTransaction:id:pipeTrigger\n | visibleColumns:hasVisibleColumns\n | gridAddRow:true:pipeTrigger\n | gridRowPinning:id:true:pipeTrigger\n | gridFiltering:filteringExpressionsTree:filterStrategy:advancedFilteringExpressionsTree:id:pipeTrigger:filteringPipeTrigger:true\n | gridSort:sortingExpressions:sortStrategy:id:pipeTrigger:true as pinnedData'>\n <div #pinContainer *ngIf='pinnedData.length > 0'\n [ngClass]=\"{\n 'igx-grid__tr--pinned-bottom': !isRowPinningToTop,\n 'igx-grid__tr--pinned-top': isRowPinningToTop\n }\"\n class='igx-grid__tr--pinned' [style.width.px]='calcWidth'>\n <ng-container *ngFor=\"let rowData of pinnedData; let rowIndex = index\">\n <ng-container *ngTemplateOutlet=\"pinned_record_template; context: getContext(rowData, rowIndex, true)\">\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-template>\n <ng-template igxGridFor let-rowData [igxGridForOf]=\"data\n | gridTransaction:id:pipeTrigger\n | visibleColumns:hasVisibleColumns\n | gridFiltering:filteringExpressionsTree:filterStrategy:advancedFilteringExpressionsTree:id:pipeTrigger:filteringPipeTrigger\n | gridSort:sortingExpressions:sortStrategy:id:pipeTrigger\n | gridGroupBy:groupingExpressions:groupingExpansionState:groupStrategy:groupsExpanded:id:groupsRecords:pipeTrigger\n | gridPaging:paginator?.page:paginator?.perPage:id:pipeTrigger\n | gridSummary:hasSummarizedColumns:summaryCalculationMode:summaryPosition:id:showSummaryOnCollapse:pipeTrigger:summaryPipeTrigger\n | gridDetails:hasDetails:expansionStates:pipeTrigger\n | gridAddRow:false:pipeTrigger\n | gridRowPinning:id:false:pipeTrigger\"\n let-rowIndex=\"index\" [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]='verticalScroll'\n [igxForContainerSize]='calcHeight'\n [igxForItemSize]=\"hasColumnLayouts ? rowHeight * multiRowLayoutRowSize + 1 : renderedRowHeight\"\n [igxForTrackBy]='trackChanges'\n #verticalScrollContainer (chunkPreload)=\"dataLoading($event)\">\n <ng-template\n [igxTemplateOutlet]='getRowTemplate(rowData)'\n [igxTemplateOutletContext]='getContext(rowData, rowIndex)'\n (cachedViewLoaded)='cachedViewLoaded($event)'\n (viewCreated)='viewCreatedHandler($event)'\n (viewMoved)='viewMovedHandler($event)'>\n </ng-template>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"hasPinnedRecords && !isRowPinningToTop ? pinnedRecordsTemplate : null\">\n </ng-container>\n <ng-template #record_template let-rowIndex=\"index\" let-rowData let-disabledRow=\"disabled\">\n <igx-grid-row [gridID]=\"id\" [index]=\"rowIndex\" [rowData]=\"rowData\" [disabled]=\"disabledRow\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:false:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:rowData:rowIndex:pipeTrigger\" #row>\n </igx-grid-row>\n </ng-template>\n <ng-template #pinned_record_template let-rowIndex=\"index\" let-rowData>\n <igx-grid-row [gridID]=\"id\" [index]=\"rowIndex\" [rowData]=\"rowData\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:false:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:rowData:rowIndex:pipeTrigger\"#row #pinnedRow>\n </igx-grid-row>\n </ng-template>\n <ng-template #group_template let-rowIndex=\"index\" let-rowData>\n <igx-grid-groupby-row [gridID]=\"id\" [index]=\"rowIndex\" [groupRow]=\"rowData\" [hideGroupRowSelectors]=\"hideRowSelectors\" [rowDraggable]=\"rowDraggable\" #row>\n </igx-grid-groupby-row>\n </ng-template>\n <ng-template #summary_template let-rowIndex=\"index\" let-rowData>\n <igx-grid-summary-row role=\"row\" [gridID]=\"id\" [summaries]=\"rowData.summaries\" [index]=\"rowIndex\"\n class=\"igx-grid__summaries--body\" #summaryRow>\n </igx-grid-summary-row>\n </ng-template>\n <ng-template #detail_template_container let-rowIndex=\"index\" let-rowData>\n <div detail='true' style=\"overflow: auto; width: 100%;\" id=\"{{id}}_{{rowIndex}}\" (pointerdown)='detailsViewFocused(detailsContainer, rowIndex)' #detailsContainer [attr.data-rowindex]='rowIndex'\n [ngClass]=\"{\n 'igx-grid__tr-container': true,\n 'igx-grid__tr-container--active': isDetailActive(rowIndex)\n }\">\n <div class=\"igx-grid__hierarchical-indent\" style='display: flex;'>\n <ng-container *ngIf=\"this.groupingExpressions.length > 0\">\n <div class=\"igx-grid__row-indentation igx-grid__row-indentation--level-{{groupingExpressions.length}}\"></div>\n </ng-container>\n <ng-template\n [ngTemplateOutlet]='detailTemplate'\n [ngTemplateOutletContext]='getDetailsContext(rowData, rowIndex)'>\n </ng-template>\n </div>\n </div>\n </ng-template>\n\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <div class=\"igx-grid__row-editing-outlet\" igxOverlayOutlet #igxRowEditingOverlayOutlet></div>\n <igc-trial-watermark></igc-trial-watermark>\n </div>\n <div igxToggle #loadingOverlay>\n <igx-circular-bar [indeterminate]=\"true\" *ngIf='shouldOverlayLoading'>\n </igx-circular-bar>\n </div>\n <span *ngIf=\"hasMovableColumns && columnInDrag\" [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\"\n id=\"right\" class=\"igx-grid__scroll-on-drag-right\"></span>\n <div [hidden]='!hasVerticalScroll()' class=\"igx-grid__tbody-scrollbar\" [style.width.px]=\"scrollSize\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__tbody-scrollbar-start\" [style.height.px]=' isRowPinningToTop ? pinnedRowHeight : 0'></div>\n <div class=\"igx-grid__tbody-scrollbar-main\" [style.height.px]='calcHeight'>\n <ng-template igxGridFor [igxGridForOf]='[]' #verticalScrollHolder></ng-template>\n </div>\n <div class=\"igx-grid__tbody-scrollbar-end\" [style.height.px]='!isRowPinningToTop ? pinnedRowHeight : 0'></div>\n </div>\n\n <div class=\"igx-grid__addrow-snackbar\">\n <igx-snackbar #addRowSnackbar [outlet]=\"igxBodyOverlayOutlet\" [actionText]=\"resourceStrings.igx_grid_snackbar_addrow_actiontext\" [displayTime]='snackbarDisplayTime'>{{resourceStrings.igx_grid_snackbar_addrow_label}}</igx-snackbar>\n </div>\n\n <div #igxBodyOverlayOutlet=\"overlay-outlet\" igxOverlayOutlet></div>\n</div>\n\n\n<div class=\"igx-grid__tfoot\" role=\"rowgroup\" [style.height.px]='summariesHeight' #tfoot>\n <div tabindex=\"0\" (focus)=\"navigation.focusFirstCell(false)\" (keydown)=\"navigation.summaryNav($event)\" [attr.aria-activedescendant]=\"activeDescendant\">\n <igx-grid-summary-row [style.width.px]='calcWidth' [style.height.px]='summariesHeight'\n *ngIf=\"hasSummarizedColumns && rootSummariesEnabled\" [gridID]=\"id\" role=\"row\"\n [summaries]=\"id | igxGridSummaryDataPipe:summaryService.retriggerRootPipe\" [index]=\"dataView.length\"\n class=\"igx-grid__summaries\" #summaryRow>\n </igx-grid-summary-row>\n <div class=\"igx-grid__tfoot-thumb\" [hidden]='!hasVerticalScroll()' [style.height.px]='summariesHeight'\n [style.width.px]=\"scrollSize\"></div>\n </div>\n</div>\n\n<div class=\"igx-grid__scroll\" [style.height.px]=\"scrollSize\" #scr [hidden]=\"isHorizontalScrollHidden\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__scroll-start\" [style.width.px]='isPinningToStart ? pinnedWidth : headerFeaturesWidth' [style.min-width.px]='isPinningToStart ? pinnedWidth : headerFeaturesWidth'></div>\n <div class=\"igx-grid__scroll-main\" [style.width.px]='unpinnedWidth'>\n <ng-template igxGridFor [igxGridForOf]='EMPTY_DATA' #scrollContainer>\n </ng-template>\n </div>\n <div class=\"igx-grid__scroll-end\" [style.float]='\"right\"' [style.width.px]='pinnedWidth' [style.min-width.px]='pinnedWidth' [hidden]=\"pinnedWidth === 0 || isPinningToStart\"></div>\n</div>\n\n<div class=\"igx-grid__footer\" #footer>\n <ng-content select=\"igx-grid-footer\"></ng-content>\n <ng-container *ngIf=\"totalRecords || pagingMode === 1\">\n <ng-content select=\"igx-paginator\"></ng-content>\n </ng-container>\n</div>\n\n<ng-template #emptyFilteredGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyFilteredGridMessage}}</span>\n <span *ngIf='showAddButton'>\n <ng-container *ngTemplateOutlet='addRowEmptyTemplate || defaultAddRowEmptyTemplate'></ng-container>\n </span>\n </span>\n</ng-template>\n\n<ng-template #defaultEmptyGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyGridMessage}}</span>\n <span *ngIf='showAddButton'>\n <ng-container *ngTemplateOutlet='addRowEmptyTemplate || defaultAddRowEmptyTemplate'></ng-container>\n </span>\n </span>\n</ng-template>\n\n<ng-template #defaultAddRowEmptyTemplate>\n <button igxButton=\"raised\" igxRipple (click)=\"this.crudService.enterAddRowMode(null, false, $event)\">\n {{resourceStrings.igx_grid_add_row_label}}\n </button>\n</ng-template>\n\n<ng-template #defaultLoadingGrid>\n <div class=\"igx-grid__loading\">\n <igx-circular-bar [indeterminate]=\"true\">\n </igx-circular-bar>\n </div>\n</ng-template>\n\n<ng-template #defaultExpandedTemplate>\n <igx-icon role=\"button\" class=\"igx-grid__group-expand-btn\"\n [ngClass]=\"{\n 'igx-grid__group-expand-btn--push': filteringService.isFilterRowVisible\n}\">unfold_less</igx-icon>\n</ng-template>\n\n <ng-template #defaultCollapsedTemplate>\n <igx-icon role=\"button\" class=\"igx-grid__group-expand-btn\"\n [ngClass]=\"{\n 'igx-grid__group-expand-btn--push': filteringService.isFilterRowVisible\n}\">unfold_more</igx-icon>\n</ng-template>\n\n<div *ngIf=\"rowEditable\" igxToggle #rowEditingOverlay>\n <div [className]=\"bannerClass\">\n <ng-container\n *ngTemplateOutlet=\"rowEditContainer; context: { rowChangesCount: rowChangesCount, endEdit: this.endEdit.bind(this) }\">\n </ng-container>\n </div>\n</div>\n\n<ng-template #defaultRowEditText>\n You have {{ rowChangesCount }} changes in this row\n</ng-template>\n\n<ng-template #defaultRowEditActions>\n <button igxButton igxRowEditTabStop (click)=\"this.endRowEditTabStop(false, $event)\">{{ this.resourceStrings.igx_grid_row_edit_btn_cancel }}</button>\n <button igxButton igxRowEditTabStop (click)=\"this.endRowEditTabStop(true, $event)\">{{ this.resourceStrings.igx_grid_row_edit_btn_done }}</button>\n</ng-template>\n\n<ng-template #defaultRowEditTemplate>\n <div class=\"igx-banner__message\">\n <span class=\"igx-banner__text\">\n <ng-container\n *ngTemplateOutlet=\"this.crudService.row?.getClassName() === 'IgxAddRow' ? rowAddText : rowEditText ? rowEditText : defaultRowEditText;\n context: { $implicit: this.crudService.row?.getClassName() !== 'IgxAddRow' ? rowChangesCount : null }\">\n </ng-container>\n </span>\n </div>\n <div class=\"igx-banner__actions\">\n <div class=\"igx-banner__row\">\n <ng-container\n *ngTemplateOutlet=\"rowEditActions ? rowEditActions : defaultRowEditActions; context: { $implicit: this.endEdit.bind(this) }\">\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #dragIndicatorIconBase>\n <igx-icon>drag_indicator</igx-icon>\n</ng-template>\n\n<igx-grid-column-resizer *ngIf=\"colResizingService.showResizer\"></igx-grid-column-resizer>\n<div class=\"igx-grid__loading-outlet\" #igxLoadingOverlayOutlet igxOverlayOutlet></div>\n<div class=\"igx-grid__outlet\" #igxFilteringOverlayOutlet igxOverlayOutlet></div>\n", components: [{ type: IgxGridGroupByAreaComponent, selector: "igx-grid-group-by-area", inputs: ["sortingExpressions", "grid"] }, { type: IgxGridHeaderRowComponent, selector: "igx-grid-header-row", inputs: ["grid", "pinnedColumnCollection", "unpinnedColumnCollection", "activeDescendant", "hasMRL", "width", "density"] }, { type: IgxGridRowComponent, selector: "igx-grid-row" }, { type: IgxGridGroupByRowComponent, selector: "igx-grid-groupby-row", inputs: ["hideGroupRowSelectors", "rowDraggable", "index", "gridID", "groupRow", "isFocused"] }, { type: IgxSummaryRowComponent, selector: "igx-grid-summary-row", inputs: ["summaries", "gridID", "index", "firstCellIndentation"] }, { type: IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "indeterminate", "textVisibility", "text", "value"] }, { type: IgxSnackbarComponent, selector: "igx-snackbar", inputs: ["id", "actionText", "positionSettings"], outputs: ["clicked", "animationStarted", "animationDone"] }, { type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { type: IgxGridColumnResizerComponent, selector: "igx-grid-column-resizer" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: IgxGridBodyDirective, selector: "[igxGridBody]" }, { type: IgxGridDragSelectDirective, selector: "[igxGridDragSelect]", inputs: ["igxGridDragSelect"], outputs: ["dragStop", "dragScroll"] }, { type: IgxColumnMovingDropDirective, selector: "[igxColumnMovingDrop]", inputs: ["igxColumnMovingDrop"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf"], outputs: ["dataChanging"] }, { type: IgxTemplateOutletDirective, selector: "[igxTemplateOutlet]", inputs: ["igxTemplateOutletContext", "igxTemplateOutlet"], outputs: ["viewCreated", "viewMoved", "cachedViewLoaded", "beforeViewDetach"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { type: IgxRowEditTabStopDirective, selector: "[igxRowEditTabStop]" }], pipes: { "gridSort": IgxGridSortingPipe, "gridFiltering": IgxGridFilteringPipe, "gridRowPinning": IgxGridRowPinningPipe, "gridAddRow": IgxGridAddRowPipe, "visibleColumns": IgxHasVisibleColumnsPipe, "gridTransaction": IgxGridTransactionPipe, "gridDetails": IgxGridDetailsPipe, "gridSummary": IgxGridSummaryPipe, "gridPaging": IgxGridPagingPipe, "gridGroupBy": IgxGridGroupingPipe, "igxGridRowClasses": IgxGridRowClassesPipe, "igxGridRowStyles": IgxGridRowStylesPipe, "igxGridSummaryDataPipe": IgxSummaryDataPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
65369
|
-
__decorate([
|
|
65370
|
-
DeprecateMethod('`getCellByColumnVisibleIndex` is deprecated. Use `getCellByColumn` or `getCellByKey` instead')
|
|
65371
|
-
], IgxGridComponent.prototype, "getCellByColumnVisibleIndex", null);
|
|
65372
65695
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridComponent, decorators: [{
|
|
65373
65696
|
type: Component,
|
|
65374
65697
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -65446,7 +65769,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
65446
65769
|
type: Input
|
|
65447
65770
|
}], dropAreaMessage: [{
|
|
65448
65771
|
type: Input
|
|
65449
|
-
}],
|
|
65772
|
+
}], showGroupArea: [{
|
|
65450
65773
|
type: Input
|
|
65451
65774
|
}] } });
|
|
65452
65775
|
|
|
@@ -65526,7 +65849,7 @@ class IgxGridStateDirective {
|
|
|
65526
65849
|
},
|
|
65527
65850
|
columns: {
|
|
65528
65851
|
getFeatureState: (context) => {
|
|
65529
|
-
const gridColumns = context.currGrid.
|
|
65852
|
+
const gridColumns = context.currGrid.columnList.map((c) => ({
|
|
65530
65853
|
pinned: c.pinned,
|
|
65531
65854
|
sortable: c.sortable,
|
|
65532
65855
|
filterable: c.filterable,
|
|
@@ -66217,14 +66540,14 @@ class IgxColumnLayoutComponent extends IgxColumnGroupComponent {
|
|
|
66217
66540
|
set hidden(value) {
|
|
66218
66541
|
this._hidden = value;
|
|
66219
66542
|
this.children.forEach(child => child.hidden = value);
|
|
66220
|
-
if (this.grid && this.grid.
|
|
66543
|
+
if (this.grid && this.grid.columnList && this.grid.columnList.length > 0) {
|
|
66221
66544
|
// reset indexes in case columns are hidden/shown runtime
|
|
66222
66545
|
const columns = this.grid && this.grid.pinnedColumns && this.grid.unpinnedColumns ?
|
|
66223
66546
|
this.grid.pinnedColumns.concat(this.grid.unpinnedColumns) : [];
|
|
66224
66547
|
if (!this._hidden && !columns.find(c => c.field === this.field)) {
|
|
66225
66548
|
this.grid.resetColumnCollections();
|
|
66226
66549
|
}
|
|
66227
|
-
this.grid.
|
|
66550
|
+
this.grid.columnList.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
|
|
66228
66551
|
}
|
|
66229
66552
|
}
|
|
66230
66553
|
/**
|
|
@@ -68753,7 +69076,8 @@ class IgxTreeGridComponent extends IgxGridBaseDirective {
|
|
|
68753
69076
|
this.notifyChanges();
|
|
68754
69077
|
}
|
|
68755
69078
|
/**
|
|
68756
|
-
* @deprecated
|
|
69079
|
+
* @deprecated in version 12.1.0. Use `getCellByColumn` or `getCellByKey` instead
|
|
69080
|
+
*
|
|
68757
69081
|
* Returns a `CellType` object that matches the conditions.
|
|
68758
69082
|
*
|
|
68759
69083
|
* @example
|
|
@@ -69369,9 +69693,6 @@ IgxTreeGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
69369
69693
|
IgxForOfSyncService,
|
|
69370
69694
|
IgxForOfScrollSyncService
|
|
69371
69695
|
], queries: [{ propertyName: "groupArea", first: true, predicate: IgxTreeGridGroupByAreaComponent, descendants: true, read: IgxTreeGridGroupByAreaComponent }, { propertyName: "rowLoadingTemplate", first: true, predicate: IgxRowLoadingIndicatorTemplateDirective, descendants: true, read: IgxRowLoadingIndicatorTemplateDirective }], viewQueries: [{ propertyName: "dragIndicatorIconBase", first: true, predicate: ["dragIndicatorIconBase"], descendants: true, read: TemplateRef, static: true }, { propertyName: "recordTemplate", first: true, predicate: ["record_template"], descendants: true, read: TemplateRef, static: true }, { propertyName: "summaryTemplate", first: true, predicate: ["summary_template"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"igx-grid-toolbar\"></ng-content>\n<ng-content select=\"igx-tree-grid-group-by-area\"></ng-content>\n<igx-grid-header-row class=\"igx-grid-thead\" tabindex=\"0\"\n [grid]=\"this\"\n [hasMRL]=\"hasColumnLayouts\"\n [activeDescendant]=\"activeDescendant\"\n [width]=\"calcWidth\"\n [pinnedColumnCollection]=\"pinnedColumns\"\n [unpinnedColumnCollection]=\"unpinnedColumns\"\n (keydown.meta.c)=\"copyHandler($event)\"\n (keydown.control.c)=\"copyHandler($event)\"\n (copy)=\"copyHandler($event)\"\n (keydown)=\"navigation.headerNavigation($event)\"\n (focus)=\"navigation.focusFirstCell()\"\n>\n</igx-grid-header-row>\n\n<div igxGridBody (keydown.control.c)=\"copyHandler($event)\" (copy)=\"copyHandler($event)\" class=\"igx-grid__tbody\" role=\"rowgroup\">\n <div class=\"igx-grid__tbody-content\" tabindex=\"0\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\"\n (dragStop)=\"selectionService.dragMode = $event\" [attr.aria-activedescendant]=\"activeDescendant\" [attr.role]=\"dataView.length ? null : 'row'\"\n (dragScroll)=\"dragScroll($event)\" [igxGridDragSelect]=\"selectionService.dragMode\"\n [style.height.px]='totalHeight' [style.width.px]='calcWidth' #tbody (scroll)='preventContainerScroll($event)'>\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length <= 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-left\"></span>\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length > 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-pinned\" [style.left.px]=\"pinnedWidth\"></span>\n <ng-template #pinnedRecordsTemplate>\n <ng-container *ngIf='data\n | treeGridTransaction:pipeTrigger\n | visibleColumns:hasVisibleColumns\n | treeGridNormalizeRecord:pipeTrigger\n | treeGridAddRow:true:pipeTrigger\n | gridRowPinning:id:true:pipeTrigger\n | treeGridFiltering:filteringExpressionsTree:filterStrategy:advancedFilteringExpressionsTree:pipeTrigger:filteringPipeTrigger:true\n | treeGridSorting:sortingExpressions:sortStrategy:pipeTrigger:true as pinnedData'>\n <div #pinContainer *ngIf='pinnedData.length > 0'\n [ngClass]=\"{\n 'igx-grid__tr--pinned-bottom': !isRowPinningToTop,\n 'igx-grid__tr--pinned-top': isRowPinningToTop\n }\"\n class='igx-grid__tr--pinned' [style.width.px]='calcWidth'>\n <ng-container *ngFor=\"let rowData of pinnedData;let rowIndex = index;\">\n <ng-container *ngTemplateOutlet=\"pinned_record_template; context: getContext(rowData, rowIndex, true)\">\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"hasPinnedRecords && isRowPinningToTop ? pinnedRecordsTemplate : null\"></ng-container>\n <ng-template igxGridFor let-rowData [igxGridForOf]=\"data\n | treeGridTransaction:pipeTrigger\n | visibleColumns:hasVisibleColumns\n | treeGridHierarchizing:primaryKey:foreignKey:childDataKey:pipeTrigger\n | treeGridFiltering:filteringExpressionsTree:filterStrategy:advancedFilteringExpressionsTree:pipeTrigger:filteringPipeTrigger\n | treeGridSorting:sortingExpressions:sortStrategy:pipeTrigger\n | treeGridFlattening:expansionDepth:expansionStates:pipeTrigger\n | treeGridPaging:paginator?.page:paginator?.perPage:pipeTrigger\n | treeGridSummary:hasSummarizedColumns:summaryCalculationMode:summaryPosition:showSummaryOnCollapse:pipeTrigger:summaryPipeTrigger\n | treeGridAddRow:false:pipeTrigger\n | gridRowPinning:id:false:pipeTrigger\"\n let-rowIndex=\"index\" [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]='verticalScroll'\n [igxForContainerSize]='calcHeight' [igxForItemSize]=\"renderedRowHeight\" #verticalScrollContainer>\n <ng-template [igxTemplateOutlet]='isSummaryRow(rowData) ? summary_template : record_template'\n [igxTemplateOutletContext]='getContext(rowData, rowIndex, false)'\n (cachedViewLoaded)='cachedViewLoaded($event)'>\n </ng-template>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"hasPinnedRecords && !isRowPinningToTop ? pinnedRecordsTemplate : null\"></ng-container>\n <ng-template #record_template let-rowIndex=\"index\" let-disabledRow=\"disabled\" let-rowData>\n <igx-tree-grid-row [gridID]=\"id\" [index]=\"rowIndex\" [treeRow]=\"rowData\" [disabled]=\"disabledRow\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:row.treeRow.isFilteredOutParent:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:rowData:rowIndex:pipeTrigger\" #row>\n </igx-tree-grid-row>\n </ng-template>\n <ng-template #pinned_record_template let-rowIndex=\"index\" let-rowData>\n <igx-tree-grid-row [gridID]=\"id\" [index]=\"rowIndex\" [treeRow]=\"rowData\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:row.treeRow.isFilteredOutParent:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:rowData:rowIndex:pipeTrigger\"#row #pinnedRow>\n </igx-tree-grid-row>\n </ng-template>\n <ng-template #summary_template let-rowIndex=\"index\" let-rowData>\n <igx-grid-summary-row [gridID]=\"id\" [summaries]=\"rowData.summaries\"\n [firstCellIndentation]=\"rowData.cellIndentation\" [index]=\"rowIndex\"\n class=\"igx-grid__summaries--body\" role=\"row\" #summaryRow>\n </igx-grid-summary-row>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <div class=\"igx-grid__row-editing-outlet\" igxOverlayOutlet #igxRowEditingOverlayOutlet></div>\n <igc-trial-watermark></igc-trial-watermark>\n </div>\n <div igxToggle #loadingOverlay>\n <igx-circular-bar [indeterminate]=\"true\" *ngIf='shouldOverlayLoading'>\n </igx-circular-bar>\n </div>\n <span *ngIf=\"hasMovableColumns && columnInDrag\" [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\"\n id=\"right\" class=\"igx-grid__scroll-on-drag-right\"></span>\n <div [hidden]='!hasVerticalScroll()' class=\"igx-grid__tbody-scrollbar\" [style.width.px]=\"scrollSize\" (pointerdown)=\"$event.preventDefault()\"\n [style.height.px]='calcHeight'>\n <div class=\"igx-grid__tbody-scrollbar-start\" [style.height.px]=' isRowPinningToTop ? pinnedRowHeight : 0'></div>\n <div class=\"igx-grid__tbody-scrollbar-main\" [style.height.px]='calcHeight'>\n <ng-template igxGridFor [igxGridForOf]='[]' #verticalScrollHolder></ng-template>\n </div>\n <div class=\"igx-grid__tbody-scrollbar-end\" [style.height.px]='!isRowPinningToTop ? pinnedRowHeight : 0'></div>\n </div>\n <div class=\"igx-grid__addrow-snackbar\">\n <igx-snackbar #addRowSnackbar [outlet]=\"igxBodyOverlayOutlet\" [actionText]=\"resourceStrings.igx_grid_snackbar_addrow_actiontext\" [displayTime]='snackbarDisplayTime'>{{resourceStrings.igx_grid_snackbar_addrow_label}}</igx-snackbar>\n </div>\n\n <div igxOverlayOutlet #igxBodyOverlayOutlet=\"overlay-outlet\"></div>\n</div>\n\n<div class=\"igx-grid__tfoot\" role=\"rowgroup\" [style.height.px]='summariesHeight' #tfoot>\n <div tabindex=\"0\" (focus)=\"navigation.focusFirstCell(false)\"\n (keydown)=\"navigation.summaryNav($event)\" [attr.aria-activedescendant]=\"activeDescendant\">\n <igx-grid-summary-row [style.width.px]='calcWidth' [style.height.px]='summariesHeight'\n *ngIf=\"hasSummarizedColumns && rootSummariesEnabled\" [gridID]=\"id\" role=\"row\"\n [summaries]=\"id | igxGridSummaryDataPipe:summaryService.retriggerRootPipe\" [index]=\"dataView.length\"\n class=\"igx-grid__summaries\" #summaryRow>\n </igx-grid-summary-row>\n <div class=\"igx-grid__tfoot-thumb\" [hidden]='!hasVerticalScroll()' [style.height.px]='summariesHeight'\n [style.width.px]=\"scrollSize\"></div>\n </div>\n</div>\n\n<div class=\"igx-grid__scroll\" [style.height.px]=\"scrollSize\" #scr [hidden]=\"isHorizontalScrollHidden\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__scroll-start\" [style.width.px]='isPinningToStart ? pinnedWidth : headerFeaturesWidth' [style.min-width.px]='isPinningToStart ? pinnedWidth : headerFeaturesWidth'></div>\n <div class=\"igx-grid__scroll-main\" [style.width.px]='unpinnedWidth'>\n <ng-template igxGridFor [igxGridForOf]='[]' #scrollContainer>\n </ng-template>\n </div>\n <div class=\"igx-grid__scroll-end\" [style.float]='\"right\"' [style.width.px]='pinnedWidth' [style.min-width.px]='pinnedWidth' [hidden]=\"pinnedWidth === 0 || isPinningToStart\"></div>\n</div>\n\n<div class=\"igx-grid__footer\" #footer>\n <ng-content select=\"igx-grid-footer\"></ng-content>\n <ng-container *ngIf=\"totalRecords || pagingMode === 1\">\n <ng-content select=\"igx-paginator\"></ng-content>\n </ng-container>\n</div>\n\n<ng-template #emptyFilteredGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyFilteredGridMessage}}</span>\n <span *ngIf='showAddButton'>\n <ng-container *ngTemplateOutlet='addRowEmptyTemplate || defaultAddRowEmptyTemplate'></ng-container>\n </span>\n </span>\n</ng-template>\n\n<ng-template #defaultEmptyGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyGridMessage}}</span>\n <span *ngIf='showAddButton'>\n <ng-container *ngTemplateOutlet='addRowEmptyTemplate || defaultAddRowEmptyTemplate'></ng-container>\n </span>\n </span>\n</ng-template>\n\n<ng-template #defaultAddRowEmptyTemplate>\n <button igxButton=\"raised\" igxRipple (click)=\"this.crudService.enterAddRowMode(null, false, $event)\">\n {{resourceStrings.igx_grid_add_row_label}}\n </button>\n</ng-template>\n\n<ng-template #defaultLoadingGrid>\n <div class=\"igx-grid__loading\">\n <igx-circular-bar [indeterminate]=\"true\">\n </igx-circular-bar>\n </div>\n</ng-template>\n\n<div *ngIf=\"rowEditable\" igxToggle #rowEditingOverlay>\n <div [className]=\"bannerClass\">\n <ng-container\n *ngTemplateOutlet=\"rowEditContainer; context: { rowChangesCount: rowChangesCount, endEdit: this.crudService.endEdit.bind(this) }\">\n </ng-container>\n </div>\n</div>\n\n<ng-template #defaultRowEditText>\n You have {{ rowChangesCount }} changes in this row\n</ng-template>\n\n<ng-template #defaultRowEditActions>\n <button igxButton igxRowEditTabStop (click)=\"this.endRowEditTabStop(false, $event)\">{{ this.resourceStrings.igx_grid_row_edit_btn_cancel }}</button>\n <button igxButton igxRowEditTabStop (click)=\"this.endRowEditTabStop(true, $event)\">{{ this.resourceStrings.igx_grid_row_edit_btn_done }}</button>\n</ng-template>\n\n<ng-template #defaultRowEditTemplate>\n <div class=\"igx-banner__message\">\n <span class=\"igx-banner__text\">\n <ng-container\n *ngTemplateOutlet=\"this.crudService.row?.getClassName() === 'IgxAddRow' ? rowAddText : rowEditText ? rowEditText : defaultRowEditText;\n context: { $implicit: this.crudService.row?.getClassName() !== 'IgxAddRow' ? rowChangesCount : null }\">\n </ng-container>\n </span>\n </div>\n <div class=\"igx-banner__actions\">\n <div class=\"igx-banner__row\">\n <ng-container\n *ngTemplateOutlet=\"rowEditActions ? rowEditActions : defaultRowEditActions; context: { $implicit: this.endEdit.bind(this) }\">\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #dragIndicatorIconBase>\n <igx-icon>drag_indicator</igx-icon>\n</ng-template>\n\n<igx-grid-column-resizer *ngIf=\"colResizingService.showResizer\"></igx-grid-column-resizer>\n<div class=\"igx-grid__loading-outlet\" #igxLoadingOverlayOutlet igxOverlayOutlet></div>\n<div class=\"igx-grid__outlet\" #igxFilteringOverlayOutlet igxOverlayOutlet></div>\n", components: [{ type: IgxGridHeaderRowComponent, selector: "igx-grid-header-row", inputs: ["grid", "pinnedColumnCollection", "unpinnedColumnCollection", "activeDescendant", "hasMRL", "width", "density"] }, { type: IgxTreeGridRowComponent, selector: "igx-tree-grid-row", inputs: ["treeRow"] }, { type: IgxSummaryRowComponent, selector: "igx-grid-summary-row", inputs: ["summaries", "gridID", "index", "firstCellIndentation"] }, { type: IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "indeterminate", "textVisibility", "text", "value"] }, { type: IgxSnackbarComponent, selector: "igx-snackbar", inputs: ["id", "actionText", "positionSettings"], outputs: ["clicked", "animationStarted", "animationDone"] }, { type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { type: IgxGridColumnResizerComponent, selector: "igx-grid-column-resizer" }], directives: [{ type: IgxGridBodyDirective, selector: "[igxGridBody]" }, { type: IgxGridDragSelectDirective, selector: "[igxGridDragSelect]", inputs: ["igxGridDragSelect"], outputs: ["dragStop", "dragScroll"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: IgxColumnMovingDropDirective, selector: "[igxColumnMovingDrop]", inputs: ["igxColumnMovingDrop"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf"], outputs: ["dataChanging"] }, { type: IgxTemplateOutletDirective, selector: "[igxTemplateOutlet]", inputs: ["igxTemplateOutletContext", "igxTemplateOutlet"], outputs: ["viewCreated", "viewMoved", "cachedViewLoaded", "beforeViewDetach"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { type: IgxRowEditTabStopDirective, selector: "[igxRowEditTabStop]" }], pipes: { "treeGridSorting": IgxTreeGridSortingPipe, "treeGridFiltering": IgxTreeGridFilteringPipe, "gridRowPinning": IgxGridRowPinningPipe, "treeGridAddRow": IgxTreeGridAddRowPipe, "treeGridNormalizeRecord": IgxTreeGridNormalizeRecordsPipe, "visibleColumns": IgxHasVisibleColumnsPipe, "treeGridTransaction": IgxTreeGridTransactionPipe, "treeGridSummary": IgxTreeGridSummaryPipe, "treeGridPaging": IgxTreeGridPagingPipe, "treeGridFlattening": IgxTreeGridFlatteningPipe, "treeGridHierarchizing": IgxTreeGridHierarchizingPipe, "igxGridRowClasses": IgxGridRowClassesPipe, "igxGridRowStyles": IgxGridRowStylesPipe, "igxGridSummaryDataPipe": IgxSummaryDataPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
69372
|
-
__decorate([
|
|
69373
|
-
DeprecateMethod('`getCellByColumnVisibleIndex` is deprecated. Use `getCellByColumn` or `getCellByKey` instead')
|
|
69374
|
-
], IgxTreeGridComponent.prototype, "getCellByColumnVisibleIndex", null);
|
|
69375
69696
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxTreeGridComponent, decorators: [{
|
|
69376
69697
|
type: Component,
|
|
69377
69698
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-tree-grid', providers: [
|
|
@@ -69449,7 +69770,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
69449
69770
|
type: Input
|
|
69450
69771
|
}], rowLoadingIndicatorTemplate: [{
|
|
69451
69772
|
type: Input
|
|
69452
|
-
}]
|
|
69773
|
+
}] } });
|
|
69453
69774
|
|
|
69454
69775
|
const HIDDEN_FIELD_NAME = '_Igx_Hidden_Data_';
|
|
69455
69776
|
/**
|
|
@@ -71339,7 +71660,8 @@ class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseDirective {
|
|
|
71339
71660
|
return this._defaultExpandState;
|
|
71340
71661
|
}
|
|
71341
71662
|
/**
|
|
71342
|
-
* @deprecated
|
|
71663
|
+
* @deprecated in version 12.1.0. Use `getCellByColumn` or `getCellByKey` instead
|
|
71664
|
+
*
|
|
71343
71665
|
* Returns a `CellType` object that matches the conditions.
|
|
71344
71666
|
*
|
|
71345
71667
|
* @example
|
|
@@ -71958,9 +72280,6 @@ IgxHierarchicalGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
71958
72280
|
IgxForOfScrollSyncService,
|
|
71959
72281
|
IgxRowIslandAPIService
|
|
71960
72282
|
], queries: [{ propertyName: "toolbarTemplate", first: true, predicate: IgxGridToolbarDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "childLayoutList", predicate: IgxRowIslandComponent, read: IgxRowIslandComponent }, { propertyName: "allLayoutList", predicate: IgxRowIslandComponent, descendants: true, read: IgxRowIslandComponent }, { propertyName: "paginatorList", predicate: IgxPaginatorComponent, descendants: true }], viewQueries: [{ propertyName: "toolbarOutlet", first: true, predicate: ["toolbarOutlet"], descendants: true, read: ViewContainerRef }, { propertyName: "paginatorOutlet", first: true, predicate: ["paginatorOutlet"], descendants: true, read: ViewContainerRef }, { propertyName: "hierarchicalRecordTemplate", first: true, predicate: ["hierarchical_record_template"], descendants: true, read: TemplateRef, static: true }, { propertyName: "childTemplate", first: true, predicate: ["child_record_template"], descendants: true, read: TemplateRef, static: true }, { propertyName: "templateOutlets", predicate: IgxTemplateOutletDirective, descendants: true, read: IgxTemplateOutletDirective }, { propertyName: "hierarchicalRows", predicate: IgxChildGridRowComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"igx-grid-toolbar\"></ng-content>\n<ng-container #toolbarOutlet></ng-container>\n\n<igx-grid-header-row class=\"igx-grid-thead\" tabindex=\"0\"\n [grid]=\"this\"\n [hasMRL]=\"hasColumnLayouts\"\n [activeDescendant]=\"activeDescendant\"\n [width]=\"calcWidth\"\n [pinnedColumnCollection]=\"pinnedColumns\"\n [unpinnedColumnCollection]=\"unpinnedColumns\"\n (keydown.meta.c)=\"copyHandler($event)\"\n (keydown.control.c)=\"copyHandler($event)\"\n (copy)=\"copyHandler($event)\"\n (keydown)=\"navigation.headerNavigation($event)\"\n (focus)=\"navigation.focusFirstCell()\"\n>\n</igx-grid-header-row>\n\n<div igxGridBody (keydown.control.c)=\"copyHandler($event)\" (copy)=\"copyHandler($event)\" class=\"igx-grid__tbody\" role=\"rowgroup\">\n <div class=\"igx-grid__tbody-content\" tabindex=\"0\" (focus)=\"navigation.focusTbody($event)\"\n (keydown)=\"navigation.handleNavigation($event)\" (dragStop)=\"selectionService.dragMode = $event\"\n (dragScroll)=\"dragScroll($event)\" [igxGridDragSelect]=\"selectionService.dragMode\" [attr.aria-activedescendant]=\"activeDescendant\" [attr.role]=\"dataView.length ? null : 'row'\"\n [style.height.px]='totalHeight' [style.width.px]='calcWidth' #tbody (scroll)='preventContainerScroll($event)'>\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length <= 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-left\"></span>\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length > 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-pinned\" [style.left.px]=\"pinnedWidth\"></span>\n <ng-template #pinnedRecordsTemplate>\n <ng-container *ngIf=\"data\n | gridTransaction:id:pipeTrigger\n | visibleColumns:hasVisibleColumns\n | gridAddRow:true:pipeTrigger\n | gridRowPinning:id:true:pipeTrigger\n | gridFiltering:filteringExpressionsTree:filterStrategy:advancedFilteringExpressionsTree:id:pipeTrigger:filteringPipeTrigger:true\n | gridSort:sortingExpressions:sortStrategy:id:pipeTrigger:true as pinnedData\">\n <div #pinContainer *ngIf='pinnedData.length > 0' class='igx-grid__tr--pinned'\n [ngClass]=\"{ 'igx-grid__tr--pinned-bottom': !isRowPinningToTop, 'igx-grid__tr--pinned-top': isRowPinningToTop }\"\n [style.width.px]='calcWidth'>\n <ng-container *ngFor=\"let rowData of pinnedData; let rowIndex = index\">\n <ng-container *ngTemplateOutlet=\"pinned_hierarchical_record_template; context: getContext(rowData, rowIndex, true)\">\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"hasPinnedRecords && isRowPinningToTop ? pinnedRecordsTemplate : null\">\n </ng-container>\n <ng-template igxGridFor let-rowData let-rowIndex=\"index\" [igxGridForOf]=\"data\n | gridTransaction:id:pipeTrigger\n | visibleColumns:hasVisibleColumns\n | gridFiltering:filteringExpressionsTree:filterStrategy:advancedFilteringExpressionsTree:id:pipeTrigger:filteringPipeTrigger\n | gridSort:sortingExpressions:sortStrategy:id:pipeTrigger\n | gridHierarchicalPaging:paginator?.page:paginator?.perPage:id:pipeTrigger\n | gridHierarchical:expansionStates:id:primaryKey:childLayoutKeys:pipeTrigger\n | gridAddRow:false:pipeTrigger\n | gridRowPinning:id:false:pipeTrigger\"\n [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]='verticalScroll'\n [igxForContainerSize]='calcHeight' [igxForItemSize]=\"renderedRowHeight\" [igxForTrackBy]='trackChanges'\n #verticalScrollContainer (chunkPreload)=\"dataLoading($event)\">\n <ng-template\n [igxTemplateOutlet]='(isHierarchicalRecord(rowData) ? hierarchical_record_template : (isChildGridRecord(rowData) ? child_record_template : hierarchical_record_template))'\n [igxTemplateOutletContext]='getContext(rowData, rowIndex, false)' (viewCreated)='viewCreatedHandler($event)'\n (viewMoved)='viewMovedHandler($event)' (cachedViewLoaded)='cachedViewLoaded($event)'>\n </ng-template>\n <!-- <ng-container *igxTemplateOutlet=\"(isHierarchicalRecord(rowData) ? hierarchical_record_template : (isChildGridRecord(rowData) && isExpanded(rowData) ? child_record_template : hierarchical_record_template)); context: getContext(rowData)\"></ng-container> -->\n </ng-template>\n <ng-template #hierarchical_record_template let-rowIndex=\"index\" let-disabledRow=\"disabled\" let-rowData>\n <igx-hierarchical-grid-row [gridID]=\"id\" [index]=\"rowIndex\" [disabled]=\"disabledRow\" [rowData]=\"rowData\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:false:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:rowData:rowIndex:pipeTrigger\" #row>\n </igx-hierarchical-grid-row>\n </ng-template>\n\n <ng-template #pinned_hierarchical_record_template let-rowIndex=\"index\" let-rowData>\n <igx-hierarchical-grid-row [gridID]=\"id\" [index]=\"rowIndex\" [rowData]=\"rowData\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:false:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:rowData:rowIndex:pipeTrigger\" #row #pinnedRow>\n </igx-hierarchical-grid-row>\n </ng-template>\n <ng-template #child_record_template let-rowIndex=\"index\" let-rowData>\n <div style=\"overflow: auto; width: 100%;\" [attr.data-rowindex]='rowIndex' (scroll)='onContainerScroll()'\n [ngClass]=\"{\n 'igx-grid__tr-container': true,\n 'igx-grid__tr--highlighted':isRowHighlighted(rowData)\n }\">\n <igx-child-grid-row *ngFor=\"let layout of childLayoutList\" [parentGridID]=\"id\" [index]=\"rowIndex\"\n [rowData]=\"rowData\" [layout]='layout' #row>\n </igx-child-grid-row>\n </div>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"hasPinnedRecords && !isRowPinningToTop ? pinnedRecordsTemplate : null\">\n </ng-container>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <span *ngIf=\"hasMovableColumns && columnInDrag\" [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\"\n id=\"right\" class=\"igx-grid__scroll-on-drag-right\"></span>\n <div class=\"igx-grid__row-editing-outlet\" igxOverlayOutlet #igxRowEditingOverlayOutlet></div>\n <igc-trial-watermark *ngIf=\"!this.parent\"></igc-trial-watermark>\n </div>\n <div igxToggle #loadingOverlay>\n <igx-circular-bar [indeterminate]=\"true\" *ngIf='shouldOverlayLoading'>\n </igx-circular-bar>\n </div>\n <span *ngIf=\"hasMovableColumns && columnInDrag\" [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\"\n id=\"right\" class=\"igx-grid__scroll-on-drag-right\"></span>\n <div [hidden]='!hasVerticalScroll()' class=\"igx-grid__tbody-scrollbar\" [style.width.px]=\"scrollSize\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__tbody-scrollbar-start\" [style.height.px]=' isRowPinningToTop ? pinnedRowHeight : 0'></div>\n <div class=\"igx-grid__tbody-scrollbar-main\" [style.height.px]='calcHeight'>\n <ng-template igxGridFor [igxGridForOf]='[]' #verticalScrollHolder></ng-template>\n </div>\n <div class=\"igx-grid__tbody-scrollbar-end\" [style.height.px]='!isRowPinningToTop ? pinnedRowHeight : 0'></div>\n </div>\n <div class=\"igx-grid__addrow-snackbar\">\n <igx-snackbar #addRowSnackbar [outlet]=\"igxBodyOverlayOutlet\" [actionText]=\"resourceStrings.igx_grid_snackbar_addrow_actiontext\" [displayTime]='snackbarDisplayTime'>{{resourceStrings.igx_grid_snackbar_addrow_label}}</igx-snackbar>\n </div>\n\n <div igxOverlayOutlet #igxBodyOverlayOutlet=\"overlay-outlet\"></div>\n</div>\n\n<div class=\"igx-grid__tfoot\" role=\"rowgroup\" [style.height.px]='summariesHeight' #tfoot>\n <div tabindex=\"0\" (focus)=\"navigation.focusFirstCell(false)\" [attr.aria-activedescendant]=\"activeDescendant\"\n (keydown)=\"navigation.summaryNav($event)\">\n <igx-grid-summary-row [style.width.px]='calcWidth' [style.height.px]='summariesHeight'\n *ngIf=\"hasSummarizedColumns && rootSummariesEnabled\" [gridID]=\"id\" role=\"row\"\n [summaries]=\"id | igxGridSummaryDataPipe:summaryService.retriggerRootPipe\" [index]=\"dataView.length\"\n class=\"igx-grid__summaries\" #summaryRow>\n </igx-grid-summary-row>\n <div class=\"igx-grid__tfoot-thumb\" [hidden]='!hasVerticalScroll()' [style.height.px]='summariesHeight'\n [style.width.px]=\"scrollSize\"></div>\n </div>\n</div>\n\n<div class=\"igx-grid__scroll\" [style.height.px]=\"scrollSize\" #scr [hidden]=\"isHorizontalScrollHidden\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__scroll-start\" [style.width.px]='isPinningToStart ? pinnedWidth : headerFeaturesWidth' [style.min-width.px]='isPinningToStart ? pinnedWidth : headerFeaturesWidth'></div>\n <div class=\"igx-grid__scroll-main\" [style.width.px]='unpinnedWidth'>\n <ng-template igxGridFor [igxGridForOf]='[]' #scrollContainer>\n </ng-template>\n </div>\n <div class=\"igx-grid__scroll-end\" [style.float]='\"right\"' [style.width.px]='pinnedWidth' [style.min-width.px]='pinnedWidth' [hidden]=\"pinnedWidth === 0 || isPinningToStart\"></div>\n</div>\n\n<div class=\"igx-grid__footer\" #footer>\n <ng-content select=\"igx-grid-footer\"></ng-content>\n <ng-content *ngIf=\"totalRecords || pagingMode === 1\" select=\"igx-paginator\"></ng-content>\n <ng-container #paginatorOutlet></ng-container>\n</div>\n\n<ng-template #emptyFilteredGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyFilteredGridMessage}}</span>\n <span *ngIf='showAddButton'>\n <ng-container *ngTemplateOutlet='addRowEmptyTemplate || defaultAddRowEmptyTemplate'></ng-container>\n </span>\n </span>\n</ng-template>\n\n<ng-template #defaultEmptyGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyGridMessage}}</span>\n <span *ngIf='showAddButton'>\n <ng-container *ngTemplateOutlet='addRowEmptyTemplate || defaultAddRowEmptyTemplate'></ng-container>\n </span>\n </span>\n</ng-template>\n\n<ng-template #defaultAddRowEmptyTemplate>\n <button igxButton=\"raised\" igxRipple (click)=\"this.crudService.enterAddRowMode(null, false, $event)\">\n {{resourceStrings.igx_grid_add_row_label}}\n </button>\n</ng-template>\n\n<ng-template #defaultLoadingGrid>\n <div class=\"igx-grid__loading\">\n <igx-circular-bar [indeterminate]=\"true\">\n </igx-circular-bar>\n </div>\n</ng-template>\n\n<ng-template #defaultCollapsedTemplate>\n <igx-icon role=\"button\">unfold_more</igx-icon>\n</ng-template>\n\n<ng-template #defaultExpandedTemplate>\n <igx-icon role=\"button\" [active]='hasExpandedRecords() && hasExpandableChildren'>unfold_less</igx-icon>\n</ng-template>\n\n<div *ngIf=\"rowEditable\" igxToggle #rowEditingOverlay>\n <div [className]=\"bannerClass\">\n <ng-container\n *ngTemplateOutlet=\"resolveRowEditContainer; context: { rowChangesCount: rowChangesCount, endEdit: this.crudService.endEdit.bind(this) }\">\n </ng-container>\n </div>\n</div>\n<ng-template #defaultRowEditText>\n You have {{ rowChangesCount }} changes in this row\n</ng-template>\n<ng-template #defaultRowEditActions>\n <button igxButton igxRowEditTabStop (click)=\"this.endRowEditTabStop(false, $event)\">{{ this.resourceStrings.igx_grid_row_edit_btn_cancel }}</button>\n <button igxButton igxRowEditTabStop (click)=\"this.endRowEditTabStop(true, $event)\">{{ this.resourceStrings.igx_grid_row_edit_btn_done }}</button>\n</ng-template>\n<ng-template #defaultRowEditTemplate>\n <div class=\"igx-banner__message\">\n <span class=\"igx-banner__text\">\n <ng-container\n *ngTemplateOutlet=\"this.crudService.row?.getClassName() === 'IgxAddRow' ? rowAddText : resolveRowEditText || defaultRowEditText;\n context: { $implicit: this.crudService.row?.getClassName() !== 'IgxAddRow' ? rowChangesCount : null }\">\n </ng-container>\n </span>\n </div>\n <div class=\"igx-banner__actions\">\n <div class=\"igx-banner__row\">\n <ng-container\n *ngTemplateOutlet=\"resolveRowEditActions || defaultRowEditActions; context: { $implicit: this.endEdit.bind(this) }\">\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #dragIndicatorIconBase>\n <igx-icon>drag_indicator</igx-icon>\n</ng-template>\n\n<igx-grid-column-resizer *ngIf=\"colResizingService.showResizer\"></igx-grid-column-resizer>\n<div class=\"igx-grid__loading-outlet\" #igxLoadingOverlayOutlet igxOverlayOutlet></div>\n<div class=\"igx-grid__outlet\" #igxFilteringOverlayOutlet igxOverlayOutlet></div>\n", components: [{ type: IgxGridHeaderRowComponent, selector: "igx-grid-header-row", inputs: ["grid", "pinnedColumnCollection", "unpinnedColumnCollection", "activeDescendant", "hasMRL", "width", "density"] }, { type: IgxHierarchicalRowComponent, selector: "igx-hierarchical-grid-row" }, { type: IgxChildGridRowComponent, selector: "igx-child-grid-row", inputs: ["layout", "parentGridID", "rowData", "index"] }, { type: IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "indeterminate", "textVisibility", "text", "value"] }, { type: IgxSnackbarComponent, selector: "igx-snackbar", inputs: ["id", "actionText", "positionSettings"], outputs: ["clicked", "animationStarted", "animationDone"] }, { type: IgxSummaryRowComponent, selector: "igx-grid-summary-row", inputs: ["summaries", "gridID", "index", "firstCellIndentation"] }, { type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { type: IgxGridColumnResizerComponent, selector: "igx-grid-column-resizer" }], directives: [{ type: IgxGridBodyDirective, selector: "[igxGridBody]" }, { type: IgxGridDragSelectDirective, selector: "[igxGridDragSelect]", inputs: ["igxGridDragSelect"], outputs: ["dragStop", "dragScroll"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: IgxColumnMovingDropDirective, selector: "[igxColumnMovingDrop]", inputs: ["igxColumnMovingDrop"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf"], outputs: ["dataChanging"] }, { type: IgxTemplateOutletDirective, selector: "[igxTemplateOutlet]", inputs: ["igxTemplateOutletContext", "igxTemplateOutlet"], outputs: ["viewCreated", "viewMoved", "cachedViewLoaded", "beforeViewDetach"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { type: IgxRowEditTabStopDirective, selector: "[igxRowEditTabStop]" }], pipes: { "gridSort": IgxGridSortingPipe, "gridFiltering": IgxGridFilteringPipe, "gridRowPinning": IgxGridRowPinningPipe, "gridAddRow": IgxGridAddRowPipe, "visibleColumns": IgxHasVisibleColumnsPipe, "gridTransaction": IgxGridTransactionPipe, "gridHierarchical": IgxGridHierarchicalPipe, "gridHierarchicalPaging": IgxGridHierarchicalPagingPipe, "igxGridRowClasses": IgxGridRowClassesPipe, "igxGridRowStyles": IgxGridRowStylesPipe, "igxGridSummaryDataPipe": IgxSummaryDataPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
71961
|
-
__decorate([
|
|
71962
|
-
DeprecateMethod('`getCellByColumnVisibleIndex` is deprecated. Use `getCellByColumn` or `getCellByKey` instead')
|
|
71963
|
-
], IgxHierarchicalGridComponent.prototype, "getCellByColumnVisibleIndex", null);
|
|
71964
72283
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxHierarchicalGridComponent, decorators: [{
|
|
71965
72284
|
type: Component,
|
|
71966
72285
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-hierarchical-grid', providers: [
|
|
@@ -72017,7 +72336,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
72017
72336
|
type: Input
|
|
72018
72337
|
}], expandChildren: [{
|
|
72019
72338
|
type: Input
|
|
72020
|
-
}]
|
|
72339
|
+
}] } });
|
|
72021
72340
|
|
|
72022
72341
|
/**
|
|
72023
72342
|
* @hidden
|
|
@@ -76519,6 +76838,8 @@ class IgxToastComponent extends IgxNotificationsDirective {
|
|
|
76519
76838
|
};
|
|
76520
76839
|
}
|
|
76521
76840
|
/**
|
|
76841
|
+
* @deprecated in version 12.2.3. We suggest using `positionSettings` property instead
|
|
76842
|
+
*
|
|
76522
76843
|
* Sets/gets the position of the toast.
|
|
76523
76844
|
* If not set, the `position` attribute will have value `IgxToastPosition.Bottom`.
|
|
76524
76845
|
* ```html
|
|
@@ -76644,9 +76965,6 @@ class IgxToastComponent extends IgxNotificationsDirective {
|
|
|
76644
76965
|
}
|
|
76645
76966
|
IgxToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxToastComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: IgxNavigationService, optional: true }, { token: IgxOverlayService }], target: i0.ɵɵFactoryTarget.Component });
|
|
76646
76967
|
IgxToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxToastComponent, selector: "igx-toast", inputs: { id: "id", role: "role", position: "position", positionSettings: "positionSettings" }, outputs: { isVisibleChange: "isVisibleChange" }, host: { properties: { "class.igx-toast": "this.cssClass", "attr.id": "this.id", "attr.role": "this.role" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\n<span>{{ textMessage }}</span>\n\n" });
|
|
76647
|
-
__decorate([
|
|
76648
|
-
DeprecateProperty('`position` is deprecated. We suggest using `positionSettings` property instead.')
|
|
76649
|
-
], IgxToastComponent.prototype, "position", null);
|
|
76650
76968
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxToastComponent, decorators: [{
|
|
76651
76969
|
type: Component,
|
|
76652
76970
|
args: [{ selector: 'igx-toast', template: "<ng-content></ng-content>\n<span>{{ textMessage }}</span>\n\n" }]
|
|
@@ -81658,5 +81976,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
81658
81976
|
* Generated bundle index. Do not edit.
|
|
81659
81977
|
*/
|
|
81660
81978
|
|
|
81661
|
-
export { AbsolutePosition, AbsoluteScrollStrategy, AutoPositionStrategy, BaseFilteringStrategy, BaseProgressDirective, BlockScrollStrategy, ButtonGroupAlignment, Calendar, CalendarHammerConfig, CalendarSelection, CalendarView, CarouselHammerConfig, CarouselIndicatorsOrientation, CloseScrollStrategy, ColumnDisplayOrder, ColumnPinningPosition, ConnectedPositioningStrategy, ContainerPositionStrategy, CsvFileTypes, DEFAULT_OWNER, DataUtil, DatePart, DateRangePickerFormatPipe, DateRangeType, DefaultSortingStrategy, Direction, DisplayDensity, DisplayDensityBase, DisplayDensityToken, DragDirection, ElasticPositionStrategy, ExpansionPanelHeaderIconPosition, ExportRecordType, FilterMode, FilteringExpressionsTree, FilteringExpressionsTreeType, FilteringLogic, FilteringStrategy, FormattedValuesFilteringStrategy, GlobalPositionStrategy, GridBaseAPIService, GridColumnDataType, GridInstanceType, GridPagingMode, GridSelectionMode, GridSummaryCalculationMode, GridSummaryPosition, GroupedRecords, HeaderType, HorizontalAlignment, HorizontalAnimationType, IGX_CHECKBOX_REQUIRED_VALIDATOR, IGX_INPUT_GROUP_TYPE, IGX_STEPPER_COMPONENT, IGX_STEP_COMPONENT, IGX_SWITCH_REQUIRED_VALIDATOR, ITreeGridAggregation, IgxAccordionComponent, IgxAccordionModule, IgxActionStripComponent, IgxActionStripMenuItemDirective, IgxActionStripModule, IgxAdvancedFilteringDialogComponent, IgxAppendDropStrategy, IgxAutocompleteDirective, IgxAutocompleteModule, IgxAvatarComponent, IgxAvatarModule, IgxAvatarSize, IgxAvatarType, IgxBadgeComponent, IgxBadgeModule, IgxBadgeType, IgxBannerActionsDirective, IgxBannerComponent, IgxBannerModule, IgxBaseExporter, IgxBaseTransactionService, IgxBooleanFilteringOperand, IgxBottomNavComponent, IgxBottomNavContentComponent, IgxBottomNavHeaderComponent, IgxBottomNavHeaderIconDirective, IgxBottomNavHeaderLabelDirective, IgxBottomNavItemComponent, IgxBottomNavModule, IgxButtonDirective, IgxButtonGroupComponent, IgxButtonGroupModule, IgxButtonModule, IgxCSVTextDirective, IgxCalendarBaseDirective, IgxCalendarComponent, IgxCalendarHeaderTemplateDirective, IgxCalendarModule, IgxCalendarMonthDirective, IgxCalendarScrollMonthDirective, IgxCalendarSubheaderTemplateDirective, IgxCalendarView, IgxCalendarYearDirective, IgxCardActionsComponent, IgxCardActionsLayout, IgxCardComponent, IgxCardContentDirective, IgxCardFooterDirective, IgxCardHeaderComponent, IgxCardHeaderSubtitleDirective, IgxCardHeaderTitleDirective, IgxCardMediaDirective, IgxCardModule, IgxCardThumbnailDirective, IgxCardType, IgxCarouselComponent, IgxCarouselComponentBase, IgxCarouselIndicatorDirective, IgxCarouselModule, IgxCarouselNextButtonDirective, IgxCarouselPrevButtonDirective, IgxCellEditorTemplateDirective, IgxCellFooterTemplateDirective, IgxCellHeaderTemplateDirective, IgxCellTemplateDirective, IgxCheckboxComponent, IgxCheckboxModule, IgxCheckboxRequiredDirective, IgxChildGridRowComponent, IgxChipComponent, IgxChipsAreaComponent, IgxChipsModule, IgxCircularProgressBarComponent, IgxCollapsibleIndicatorTemplateDirective, IgxColumnActionEnabledPipe, IgxColumnActionsBaseDirective, IgxColumnActionsComponent, IgxColumnActionsModule, IgxColumnComponent, IgxColumnFormatterPipe, IgxColumnGroupComponent, IgxColumnHidingDirective, IgxColumnLayoutComponent, IgxColumnMovingDragDirective, IgxColumnMovingDropDirective, IgxColumnMovingModule, IgxColumnPinningDirective, IgxColumnResizerDirective, IgxComboAddItemDirective, IgxComboClearIconDirective, IgxComboComponent, IgxComboEmptyDirective, IgxComboFooterDirective, IgxComboHeaderDirective, IgxComboHeaderItemDirective, IgxComboItemDirective, IgxComboModule, IgxComboState, IgxComboToggleIconDirective, IgxCsvExporterOptions, IgxCsvExporterService, IgxDataLoadingTemplateDirective, IgxDataRecordSorting, IgxDateFilteringOperand, IgxDatePickerComponent, IgxDatePickerModule, IgxDateRangeEndComponent, IgxDateRangeInputsBaseComponent, IgxDateRangePickerComponent, IgxDateRangePickerModule, IgxDateRangeSeparatorDirective, IgxDateRangeStartComponent, IgxDateSummaryOperand, IgxDateTimeEditorDirective, IgxDateTimeEditorModule, IgxDateTimeFilteringOperand, IgxDaysViewComponent, IgxDefaultDropStrategy, IgxDialogActionsDirective, IgxDialogComponent, IgxDialogModule, IgxDialogTitleDirective, IgxDisplayDensityModule, IgxDividerDirective, IgxDividerModule, IgxDividerType, IgxDragDirective, IgxDragDropModule, IgxDragHandleDirective, IgxDragIgnoreDirective, IgxDragIndicatorIconDirective, IgxDragLocation, IgxDropDirective, IgxDropDownBaseDirective, IgxDropDownComponent, IgxDropDownGroupComponent, IgxDropDownItemBaseDirective, IgxDropDownItemComponent, IgxDropDownItemNavigationDirective, IgxDropDownModule, IgxEmptyListTemplateDirective, IgxExcelExporterOptions, IgxExcelExporterService, IgxExcelStyleClearFiltersComponent, IgxExcelStyleColumnOperationsTemplateDirective, IgxExcelStyleConditionalFilterComponent, IgxExcelStyleDateExpressionComponent, IgxExcelStyleFilterOperationsTemplateDirective, IgxExcelStyleHeaderComponent, IgxExcelStyleHeaderIconDirective, IgxExcelStyleHidingComponent, IgxExcelStyleLoadingValuesTemplateDirective, IgxExcelStyleMovingComponent, IgxExcelStylePinningComponent, IgxExcelStyleSearchComponent, IgxExcelStyleSelectingComponent, IgxExcelStyleSortingComponent, IgxExcelTextDirective, IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, IgxExpansionPanelDescriptionDirective, IgxExpansionPanelHeaderComponent, IgxExpansionPanelIconDirective, IgxExpansionPanelModule, IgxExpansionPanelTitleDirective, IgxExporterOptionsBase, IgxFilterActionColumnsPipe, IgxFilterCellTemplateDirective, IgxFilterDirective, IgxFilterModule, IgxFilterOptions, IgxFilterPipe, IgxFilteringOperand, IgxFlatTransactionFactory, IgxFlexDirective, IgxFocusDirective, IgxFocusModule, IgxForOfContext, IgxForOfDirective, IgxForOfModule, IgxGridAPIService, IgxGridActionButtonComponent, IgxGridActionsBaseDirective, IgxGridAddRowPipe, IgxGridBaseDirective, IgxGridBodyDirective, IgxGridCell, IgxGridCellStyleClassesPipe, IgxGridCellStylesPipe, IgxGridColumnModule, IgxGridColumnResizerComponent, IgxGridCommonModule, IgxGridComponent, IgxGridDataMapperPipe, IgxGridDetailTemplateDirective, IgxGridDetailsPipe, IgxGridDragSelectDirective, IgxGridEditingActionsComponent, IgxGridExcelStyleFilteringComponent, IgxGridExcelStyleFilteringModule, IgxGridExpandableCellComponent, IgxGridFilterConditionPipe, IgxGridFilteringModule, IgxGridFilteringPipe, IgxGridFooterComponent, IgxGridForOfDirective, IgxGridGroupByAreaComponent, IgxGridGroupByRowComponent, IgxGridGroupingPipe, IgxGridHeaderComponent, IgxGridHeaderGroupComponent, IgxGridHeaderRowComponent, IgxGridHeadersModule, IgxGridHierarchicalPagingPipe, IgxGridHierarchicalPipe, IgxGridModule, IgxGridNotGroupedPipe, IgxGridPaginatorOptionsPipe, IgxGridPagingPipe, IgxGridPinningActionsComponent, IgxGridPipesModule, IgxGridResizingModule, IgxGridRow, IgxGridRowClassesPipe, IgxGridRowPinningPipe, IgxGridRowStylesPipe, IgxGridSelectionModule, IgxGridSharedModules, IgxGridSortingPipe, IgxGridStateDirective, IgxGridStateModule, IgxGridSummaryModule, IgxGridSummaryPipe, IgxGridToolbarActionsDirective, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarComponent, IgxGridToolbarDirective, IgxGridToolbarExporterComponent, IgxGridToolbarHidingComponent, IgxGridToolbarModule, IgxGridToolbarPinningComponent, IgxGridToolbarTitleDirective, IgxGridTopLevelColumns, IgxGridTransactionPipe, IgxGridTransactionStatePipe, IgxGroupAreaDropDirective, IgxGroupByAreaDirective, IgxGroupByMetaPipe, IgxGroupByRow, IgxGroupByRowSelectorDirective, IgxGroupByRowTemplateDirective, IgxGroupedTreeGridSorting, IgxGrouping, IgxHasVisibleColumnsPipe, IgxHeadSelectorDirective, IgxHeaderCollapseIndicatorDirective, IgxHeaderExpandIndicatorDirective, IgxHeaderGroupStylePipe, IgxHeaderGroupWidthPipe, IgxHierarchicalGridAPIService, IgxHierarchicalGridBaseDirective, IgxHierarchicalGridComponent, IgxHierarchicalGridModule, IgxHierarchicalGridRow, IgxHierarchicalRowComponent, IgxHierarchicalTransactionFactory, IgxHierarchicalTransactionService, IgxHierarchicalTransactionServiceFactory, IgxHintDirective, IgxIconComponent, IgxIconModule, IgxIconService, IgxInputDirective, IgxInputGroupComponent, IgxInputGroupModule, IgxInputState, IgxInsertDropStrategy, IgxItemListDirective, IgxLabelDirective, IgxLayoutDirective, IgxLayoutModule, IgxLinearProgressBarComponent, IgxListActionDirective, IgxListBaseDirective, IgxListComponent, IgxListItemComponent, IgxListItemLeftPanningTemplateDirective, IgxListItemRightPanningTemplateDirective, IgxListLineDirective, IgxListLineSubTitleDirective, IgxListLineTitleDirective, IgxListModule, IgxListPanState, IgxListThumbnailDirective, IgxMaskDirective, IgxMaskModule, IgxMonthPickerBaseDirective, IgxMonthPickerComponent, IgxMonthsViewComponent, IgxNavDrawerItemDirective, IgxNavDrawerMiniTemplateDirective, IgxNavDrawerTemplateDirective, IgxNavbarActionDirective, IgxNavbarComponent, IgxNavbarModule, IgxNavbarTitleDirective, IgxNavigationCloseDirective, IgxNavigationDrawerComponent, IgxNavigationDrawerModule, IgxNavigationModule, IgxNavigationService, IgxNavigationToggleDirective, IgxNumberFilteringOperand, IgxNumberSummaryOperand, IgxOverlayOutletDirective, IgxOverlayService, IgxPageNavigationComponent, IgxPageSizeSelectorComponent, IgxPaginatorComponent, IgxPaginatorDirective, IgxPaginatorModule, IgxPaginatorTemplateDirective, IgxPickerActionsDirective, IgxPickerClearComponent, IgxPickerToggleComponent, IgxPickersCommonModule, IgxPrefixDirective, IgxPrefixModule, IgxPrependDropStrategy, IgxProcessBarTextTemplateDirective, IgxProgressBarGradientDirective, IgxProgressBarModule, IgxProgressType, IgxRadioComponent, IgxRadioGroupDirective, IgxRadioModule, IgxResizeHandleDirective, IgxRippleDirective, IgxRippleModule, IgxRowAddTextDirective, IgxRowCollapsedIndicatorDirective, IgxRowDragDirective, IgxRowDragGhostDirective, IgxRowDragModule, IgxRowEditActionsDirective, IgxRowEditTabStopDirective, IgxRowEditTemplateDirective, IgxRowEditTextDirective, IgxRowExpandedIndicatorDirective, IgxRowIslandAPIService, IgxRowIslandComponent, IgxRowLoadingIndicatorTemplateDirective, IgxRowSelectorDirective, IgxSelectComponent, IgxSelectFooterDirective, IgxSelectGroupComponent, IgxSelectHeaderDirective, IgxSelectItemComponent, IgxSelectItemNavigationDirective, IgxSelectModule, IgxSelectToggleIconDirective, IgxSlideComponent, IgxSliderComponent, IgxSliderModule, IgxSliderType, IgxSnackbarComponent, IgxSnackbarModule, IgxSortActionColumnsPipe, IgxSorting, IgxSplitBarComponent, IgxSplitterComponent, IgxSplitterModule, IgxSplitterPaneComponent, IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepComponent, IgxStepContentDirective, IgxStepIndicatorDirective, IgxStepInvalidIndicatorDirective, IgxStepSubTitleDirective, IgxStepTitleDirective, IgxStepType, IgxStepperComponent, IgxStepperModule, IgxStepperOrientation, IgxStepperTitlePosition, IgxStringFilteringOperand, IgxStringReplacePipe, IgxSuffixDirective, IgxSuffixModule, IgxSummaryCellComponent, IgxSummaryDataPipe, IgxSummaryFormatterPipe, IgxSummaryOperand, IgxSummaryRow, IgxSummaryRowComponent, IgxSwitchComponent, IgxSwitchModule, IgxSwitchRequiredDirective, IgxTabContentComponent, IgxTabContentDirective, IgxTabHeaderComponent, IgxTabHeaderDirective, IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective, IgxTabItemComponent, IgxTabItemDirective, IgxTabsAlignment, IgxTabsComponent, IgxTabsDirective, IgxTabsModule, IgxTemplateOutletDirective, IgxTemplateOutletModule, IgxTextAlign, IgxTextHighlightDirective, IgxTextHighlightModule, IgxTextSelectionDirective, IgxTextSelectionModule, IgxThumbFromTemplateDirective, IgxThumbToTemplateDirective, IgxTickLabelTemplateDirective, IgxTimeFilteringOperand, IgxTimeItemDirective, IgxTimePickerActionsDirective, IgxTimePickerComponent, IgxTimePickerModule, IgxTimePickerTemplateDirective, IgxTimeSummaryOperand, IgxToastComponent, IgxToastModule, IgxToastPosition, IgxToggleActionDirective, IgxToggleDirective, IgxToggleModule, IgxTooltipDirective, IgxTooltipModule, IgxTooltipTargetDirective, IgxTransactionService, IgxTreeComponent, IgxTreeExpandIndicatorDirective, IgxTreeGridAPIService, IgxTreeGridAddRowPipe, IgxTreeGridComponent, IgxTreeGridGroupByAreaComponent, IgxTreeGridGroupingPipe, IgxTreeGridModule, IgxTreeGridRow, IgxTreeModule, IgxTreeNodeComponent, IgxTreeNodeLinkDirective, IgxTreeSelectMarkerDirective, IgxTreeSelectionType, IgxYearsViewComponent, LabelPosition, NoOpScrollStrategy, NoopFilteringStrategy, NoopSortingStrategy, PagingError, PickerInteractionMode, Point, RadioGroupAlignment, RadioLabelPosition, RelativePosition, RelativePositionStrategy, RowEditPositionStrategy, RowPinningPosition, SPLITTER_INTERACTION_KEYS, ScrollMonth, ScrollStrategy, SliderHandle, SortingDirection, SortingIndexPipe, SplitterType, SwitchLabelPosition, TickLabelsOrientation, TicksOrientation, TransactionEventOrigin, TransactionType, TreeGridFilteringStrategy, TreeGridFormattedValuesFilteringStrategy, TreeGridMatchingRecordsOnlyFilteringStrategy, VerticalAlignment, VerticalAnimationType, WEEKDAYS, blink, changei18n, fadeIn, fadeOut, filteringStateDefaults, flipBottom, flipHorBck, flipHorFwd, flipLeft, flipRight, flipTop, flipVerBck, flipVerFwd, getCurrentResourceStrings, getTypeNameForDebugging, growVerIn, growVerOut, heartbeat, hierarchicalTransactionServiceFactory, isDateInRanges, isLeap, monthRange, pulsateBck, pulsateFwd, range, rotateInBl, rotateInBottom, rotateInBr, rotateInCenter, rotateInDiagonal1, rotateInDiagonal2, rotateInHor, rotateInLeft, rotateInRight, rotateInTl, rotateInTop, rotateInTr, rotateInVer, rotateOutBl, rotateOutBottom, rotateOutBr, rotateOutCenter, rotateOutDiagonal1, rotateOutDiagonal2, rotateOutHor, rotateOutLeft, rotateOutRight, rotateOutTl, rotateOutTop, rotateOutTr, rotateOutVer, scaleInBl, scaleInBottom, scaleInBr, scaleInCenter, scaleInHorCenter, scaleInHorLeft, scaleInHorRight, scaleInLeft, scaleInRight, scaleInTl, scaleInTop, scaleInTr, scaleInVerBottom, scaleInVerCenter, scaleInVerTop, scaleOutBl, scaleOutBottom, scaleOutBr, scaleOutCenter, scaleOutHorCenter, scaleOutHorLeft, scaleOutHorRight, scaleOutLeft, scaleOutRight, scaleOutTl, scaleOutTop, scaleOutTr, scaleOutVerBottom, scaleOutVerCenter, scaleOutVerTop, shakeBl, shakeBottom, shakeBr, shakeCenter, shakeHor, shakeLeft, shakeRight, shakeTl, shakeTop, shakeTr, shakeVer, slideInBl, slideInBottom, slideInBr, slideInLeft, slideInRight, slideInTl, slideInTop, slideInTr, slideOutBl, slideOutBottom, slideOutBr, slideOutLeft, slideOutRight, slideOutTl, slideOutTop, slideOutTr, swingInBottomBck, swingInBottomFwd, swingInLeftBck, swingInLeftFwd, swingInRightBck, swingInRightFwd, swingInTopBck, swingInTopFwd, swingOutBottomBck, swingOutBottomFwd, swingOutLeftBck, swingOutLefttFwd, swingOutRightBck, swingOutRightFwd, swingOutTopBck, swingOutTopFwd, toPercent, valueInRange, weekDay, IgxGridFilteringCellComponent as θIgxGridFilteringCellComponent, IgxGridFilteringRowComponent as θIgxGridFilteringRowComponent, IgxHierarchicalGridCellComponent as θIgxHierarchicalGridCellComponent, IgxTreeGridCellComponent as θIgxTreeGridCellComponent, IgxTreeGridRowComponent as θIgxTreeGridRowComponent, IgxGridCellComponent as ϴIgxGridCellComponent, IgxGridRowComponent as ϴIgxGridRowComponent };
|
|
81979
|
+
export { AbsolutePosition, AbsoluteScrollStrategy, AutoPositionStrategy, BaseFilteringStrategy, BaseProgressDirective, BlockScrollStrategy, ButtonGroupAlignment, Calendar, CalendarHammerConfig, CalendarSelection, CalendarView, CarouselHammerConfig, CarouselIndicatorsOrientation, CloseScrollStrategy, ColumnDisplayOrder, ColumnPinningPosition, ConnectedPositioningStrategy, ContainerPositionStrategy, CsvFileTypes, DEFAULT_OWNER, DataUtil, DatePart, DateRangePickerFormatPipe, DateRangeType, DefaultSortingStrategy, Direction, DisplayDensity, DisplayDensityBase, DisplayDensityToken, DragDirection, ElasticPositionStrategy, ExpansionPanelHeaderIconPosition, ExportRecordType, FilterMode, FilteringExpressionsTree, FilteringExpressionsTreeType, FilteringLogic, FilteringStrategy, FormattedValuesFilteringStrategy, GlobalPositionStrategy, GridBaseAPIService, GridColumnDataType, GridInstanceType, GridPagingMode, GridSelectionMode, GridSummaryCalculationMode, GridSummaryPosition, GroupedRecords, HeaderType, HorizontalAlignment, HorizontalAnimationType, IGX_CHECKBOX_REQUIRED_VALIDATOR, IGX_INPUT_GROUP_TYPE, IGX_STEPPER_COMPONENT, IGX_STEP_COMPONENT, IGX_SWITCH_REQUIRED_VALIDATOR, ITreeGridAggregation, IgxAccordionComponent, IgxAccordionModule, IgxActionStripComponent, IgxActionStripMenuItemDirective, IgxActionStripModule, IgxAdvancedFilteringDialogComponent, IgxAppendDropStrategy, IgxAutocompleteDirective, IgxAutocompleteModule, IgxAvatarComponent, IgxAvatarModule, IgxAvatarSize, IgxAvatarType, IgxBadgeComponent, IgxBadgeModule, IgxBadgeType, IgxBannerActionsDirective, IgxBannerComponent, IgxBannerModule, IgxBaseExporter, IgxBaseTransactionService, IgxBooleanFilteringOperand, IgxBottomNavComponent, IgxBottomNavContentComponent, IgxBottomNavHeaderComponent, IgxBottomNavHeaderIconDirective, IgxBottomNavHeaderLabelDirective, IgxBottomNavItemComponent, IgxBottomNavModule, IgxButtonDirective, IgxButtonGroupComponent, IgxButtonGroupModule, IgxButtonModule, IgxCSVTextDirective, IgxCalendarBaseDirective, IgxCalendarComponent, IgxCalendarHeaderTemplateDirective, IgxCalendarModule, IgxCalendarMonthDirective, IgxCalendarScrollMonthDirective, IgxCalendarSubheaderTemplateDirective, IgxCalendarView, IgxCalendarYearDirective, IgxCardActionsComponent, IgxCardActionsLayout, IgxCardComponent, IgxCardContentDirective, IgxCardFooterDirective, IgxCardHeaderComponent, IgxCardHeaderSubtitleDirective, IgxCardHeaderTitleDirective, IgxCardMediaDirective, IgxCardModule, IgxCardThumbnailDirective, IgxCardType, IgxCarouselComponent, IgxCarouselComponentBase, IgxCarouselIndicatorDirective, IgxCarouselModule, IgxCarouselNextButtonDirective, IgxCarouselPrevButtonDirective, IgxCellEditorTemplateDirective, IgxCellFooterTemplateDirective, IgxCellHeaderTemplateDirective, IgxCellTemplateDirective, IgxCheckboxComponent, IgxCheckboxModule, IgxCheckboxRequiredDirective, IgxChildGridRowComponent, IgxChipComponent, IgxChipsAreaComponent, IgxChipsModule, IgxCircularProgressBarComponent, IgxCollapsibleIndicatorTemplateDirective, IgxColumnActionEnabledPipe, IgxColumnActionsBaseDirective, IgxColumnActionsComponent, IgxColumnActionsModule, IgxColumnComponent, IgxColumnFormatterPipe, IgxColumnGroupComponent, IgxColumnHidingDirective, IgxColumnLayoutComponent, IgxColumnMovingDragDirective, IgxColumnMovingDropDirective, IgxColumnMovingModule, IgxColumnPinningDirective, IgxColumnResizerDirective, IgxComboAddItemComponent, IgxComboAddItemDirective, IgxComboClearIconDirective, IgxComboComponent, IgxComboDropDownComponent, IgxComboEmptyDirective, IgxComboFilteringPipe, IgxComboFooterDirective, IgxComboGroupingPipe, IgxComboHeaderDirective, IgxComboHeaderItemDirective, IgxComboItemComponent, IgxComboItemDirective, IgxComboModule, IgxComboToggleIconDirective, IgxCsvExporterOptions, IgxCsvExporterService, IgxDataLoadingTemplateDirective, IgxDataRecordSorting, IgxDateFilteringOperand, IgxDatePickerComponent, IgxDatePickerModule, IgxDateRangeEndComponent, IgxDateRangeInputsBaseComponent, IgxDateRangePickerComponent, IgxDateRangePickerModule, IgxDateRangeSeparatorDirective, IgxDateRangeStartComponent, IgxDateSummaryOperand, IgxDateTimeEditorDirective, IgxDateTimeEditorModule, IgxDateTimeFilteringOperand, IgxDaysViewComponent, IgxDefaultDropStrategy, IgxDialogActionsDirective, IgxDialogComponent, IgxDialogModule, IgxDialogTitleDirective, IgxDisplayDensityModule, IgxDividerDirective, IgxDividerModule, IgxDividerType, IgxDragDirective, IgxDragDropModule, IgxDragHandleDirective, IgxDragIgnoreDirective, IgxDragIndicatorIconDirective, IgxDragLocation, IgxDropDirective, IgxDropDownBaseDirective, IgxDropDownComponent, IgxDropDownGroupComponent, IgxDropDownItemBaseDirective, IgxDropDownItemComponent, IgxDropDownItemNavigationDirective, IgxDropDownModule, IgxEmptyListTemplateDirective, IgxExcelExporterOptions, IgxExcelExporterService, IgxExcelStyleClearFiltersComponent, IgxExcelStyleColumnOperationsTemplateDirective, IgxExcelStyleConditionalFilterComponent, IgxExcelStyleDateExpressionComponent, IgxExcelStyleFilterOperationsTemplateDirective, IgxExcelStyleHeaderComponent, IgxExcelStyleHeaderIconDirective, IgxExcelStyleHidingComponent, IgxExcelStyleLoadingValuesTemplateDirective, IgxExcelStyleMovingComponent, IgxExcelStylePinningComponent, IgxExcelStyleSearchComponent, IgxExcelStyleSelectingComponent, IgxExcelStyleSortingComponent, IgxExcelTextDirective, IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, IgxExpansionPanelDescriptionDirective, IgxExpansionPanelHeaderComponent, IgxExpansionPanelIconDirective, IgxExpansionPanelModule, IgxExpansionPanelTitleDirective, IgxExporterOptionsBase, IgxFilterActionColumnsPipe, IgxFilterCellTemplateDirective, IgxFilterDirective, IgxFilterModule, IgxFilterOptions, IgxFilterPipe, IgxFilteringOperand, IgxFlatTransactionFactory, IgxFlexDirective, IgxFocusDirective, IgxFocusModule, IgxFocusTrapDirective, IgxFocusTrapModule, IgxForOfContext, IgxForOfDirective, IgxForOfModule, IgxGridAPIService, IgxGridActionButtonComponent, IgxGridActionsBaseDirective, IgxGridAddRowPipe, IgxGridBaseDirective, IgxGridBodyDirective, IgxGridCell, IgxGridCellStyleClassesPipe, IgxGridCellStylesPipe, IgxGridColumnModule, IgxGridColumnResizerComponent, IgxGridCommonModule, IgxGridComponent, IgxGridDataMapperPipe, IgxGridDetailTemplateDirective, IgxGridDetailsPipe, IgxGridDragSelectDirective, IgxGridEditingActionsComponent, IgxGridExcelStyleFilteringComponent, IgxGridExcelStyleFilteringModule, IgxGridExpandableCellComponent, IgxGridFilterConditionPipe, IgxGridFilteringModule, IgxGridFilteringPipe, IgxGridFooterComponent, IgxGridForOfDirective, IgxGridGroupByAreaComponent, IgxGridGroupByRowComponent, IgxGridGroupingPipe, IgxGridHeaderComponent, IgxGridHeaderGroupComponent, IgxGridHeaderRowComponent, IgxGridHeadersModule, IgxGridHierarchicalPagingPipe, IgxGridHierarchicalPipe, IgxGridModule, IgxGridNotGroupedPipe, IgxGridPaginatorOptionsPipe, IgxGridPagingPipe, IgxGridPinningActionsComponent, IgxGridPipesModule, IgxGridResizingModule, IgxGridRow, IgxGridRowClassesPipe, IgxGridRowPinningPipe, IgxGridRowStylesPipe, IgxGridSelectionModule, IgxGridSharedModules, IgxGridSortingPipe, IgxGridStateDirective, IgxGridStateModule, IgxGridSummaryModule, IgxGridSummaryPipe, IgxGridToolbarActionsDirective, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarComponent, IgxGridToolbarDirective, IgxGridToolbarExporterComponent, IgxGridToolbarHidingComponent, IgxGridToolbarModule, IgxGridToolbarPinningComponent, IgxGridToolbarTitleDirective, IgxGridTopLevelColumns, IgxGridTransactionPipe, IgxGridTransactionStatePipe, IgxGroupAreaDropDirective, IgxGroupByAreaDirective, IgxGroupByMetaPipe, IgxGroupByRow, IgxGroupByRowSelectorDirective, IgxGroupByRowTemplateDirective, IgxGroupedTreeGridSorting, IgxGrouping, IgxHasVisibleColumnsPipe, IgxHeadSelectorDirective, IgxHeaderCollapseIndicatorDirective, IgxHeaderExpandIndicatorDirective, IgxHeaderGroupStylePipe, IgxHeaderGroupWidthPipe, IgxHierarchicalGridAPIService, IgxHierarchicalGridBaseDirective, IgxHierarchicalGridComponent, IgxHierarchicalGridModule, IgxHierarchicalGridRow, IgxHierarchicalRowComponent, IgxHierarchicalTransactionFactory, IgxHierarchicalTransactionService, IgxHierarchicalTransactionServiceFactory, IgxHintDirective, IgxIconComponent, IgxIconModule, IgxIconService, IgxInputDirective, IgxInputGroupComponent, IgxInputGroupModule, IgxInputState, IgxInsertDropStrategy, IgxItemListDirective, IgxLabelDirective, IgxLayoutDirective, IgxLayoutModule, IgxLinearProgressBarComponent, IgxListActionDirective, IgxListBaseDirective, IgxListComponent, IgxListItemComponent, IgxListItemLeftPanningTemplateDirective, IgxListItemRightPanningTemplateDirective, IgxListLineDirective, IgxListLineSubTitleDirective, IgxListLineTitleDirective, IgxListModule, IgxListPanState, IgxListThumbnailDirective, IgxMaskDirective, IgxMaskModule, IgxMonthPickerBaseDirective, IgxMonthPickerComponent, IgxMonthsViewComponent, IgxNavDrawerItemDirective, IgxNavDrawerMiniTemplateDirective, IgxNavDrawerTemplateDirective, IgxNavbarActionDirective, IgxNavbarComponent, IgxNavbarModule, IgxNavbarTitleDirective, IgxNavigationCloseDirective, IgxNavigationDrawerComponent, IgxNavigationDrawerModule, IgxNavigationModule, IgxNavigationService, IgxNavigationToggleDirective, IgxNumberFilteringOperand, IgxNumberSummaryOperand, IgxOverlayOutletDirective, IgxOverlayService, IgxPageNavigationComponent, IgxPageSizeSelectorComponent, IgxPaginatorComponent, IgxPaginatorDirective, IgxPaginatorModule, IgxPaginatorTemplateDirective, IgxPickerActionsDirective, IgxPickerClearComponent, IgxPickerToggleComponent, IgxPickersCommonModule, IgxPrefixDirective, IgxPrefixModule, IgxPrependDropStrategy, IgxProcessBarTextTemplateDirective, IgxProgressBarGradientDirective, IgxProgressBarModule, IgxProgressType, IgxRadioComponent, IgxRadioGroupDirective, IgxRadioModule, IgxResizeHandleDirective, IgxRippleDirective, IgxRippleModule, IgxRowAddTextDirective, IgxRowCollapsedIndicatorDirective, IgxRowDragDirective, IgxRowDragGhostDirective, IgxRowDragModule, IgxRowEditActionsDirective, IgxRowEditTabStopDirective, IgxRowEditTemplateDirective, IgxRowEditTextDirective, IgxRowExpandedIndicatorDirective, IgxRowIslandAPIService, IgxRowIslandComponent, IgxRowLoadingIndicatorTemplateDirective, IgxRowSelectorDirective, IgxSelectComponent, IgxSelectFooterDirective, IgxSelectGroupComponent, IgxSelectHeaderDirective, IgxSelectItemComponent, IgxSelectItemNavigationDirective, IgxSelectModule, IgxSelectToggleIconDirective, IgxSimpleComboComponent, IgxSimpleComboModule, IgxSlideComponent, IgxSliderComponent, IgxSliderModule, IgxSliderType, IgxSnackbarComponent, IgxSnackbarModule, IgxSortActionColumnsPipe, IgxSorting, IgxSplitBarComponent, IgxSplitterComponent, IgxSplitterModule, IgxSplitterPaneComponent, IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepComponent, IgxStepContentDirective, IgxStepIndicatorDirective, IgxStepInvalidIndicatorDirective, IgxStepSubTitleDirective, IgxStepTitleDirective, IgxStepType, IgxStepperComponent, IgxStepperModule, IgxStepperOrientation, IgxStepperTitlePosition, IgxStringFilteringOperand, IgxStringReplacePipe, IgxSuffixDirective, IgxSuffixModule, IgxSummaryCellComponent, IgxSummaryDataPipe, IgxSummaryFormatterPipe, IgxSummaryOperand, IgxSummaryRow, IgxSummaryRowComponent, IgxSwitchComponent, IgxSwitchModule, IgxSwitchRequiredDirective, IgxTabContentComponent, IgxTabContentDirective, IgxTabHeaderComponent, IgxTabHeaderDirective, IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective, IgxTabItemComponent, IgxTabItemDirective, IgxTabsAlignment, IgxTabsComponent, IgxTabsDirective, IgxTabsModule, IgxTemplateOutletDirective, IgxTemplateOutletModule, IgxTextAlign, IgxTextHighlightDirective, IgxTextHighlightModule, IgxTextSelectionDirective, IgxTextSelectionModule, IgxThumbFromTemplateDirective, IgxThumbToTemplateDirective, IgxTickLabelTemplateDirective, IgxTimeFilteringOperand, IgxTimeItemDirective, IgxTimePickerActionsDirective, IgxTimePickerComponent, IgxTimePickerModule, IgxTimePickerTemplateDirective, IgxTimeSummaryOperand, IgxToastComponent, IgxToastModule, IgxToastPosition, IgxToggleActionDirective, IgxToggleDirective, IgxToggleModule, IgxTooltipDirective, IgxTooltipModule, IgxTooltipTargetDirective, IgxTransactionService, IgxTreeComponent, IgxTreeExpandIndicatorDirective, IgxTreeGridAPIService, IgxTreeGridAddRowPipe, IgxTreeGridComponent, IgxTreeGridGroupByAreaComponent, IgxTreeGridGroupingPipe, IgxTreeGridModule, IgxTreeGridRow, IgxTreeModule, IgxTreeNodeComponent, IgxTreeNodeLinkDirective, IgxTreeSelectMarkerDirective, IgxTreeSelectionType, IgxYearsViewComponent, LabelPosition, NoOpScrollStrategy, NoopFilteringStrategy, NoopSortingStrategy, PagingError, PickerInteractionMode, Point, RadioGroupAlignment, RadioLabelPosition, RelativePosition, RelativePositionStrategy, RowEditPositionStrategy, RowPinningPosition, SPLITTER_INTERACTION_KEYS, ScrollMonth, ScrollStrategy, SliderHandle, SortingDirection, SortingIndexPipe, SplitterType, SwitchLabelPosition, TickLabelsOrientation, TicksOrientation, TransactionEventOrigin, TransactionType, TreeGridFilteringStrategy, TreeGridFormattedValuesFilteringStrategy, TreeGridMatchingRecordsOnlyFilteringStrategy, VerticalAlignment, VerticalAnimationType, WEEKDAYS, blink, changei18n, fadeIn, fadeOut, filteringStateDefaults, flipBottom, flipHorBck, flipHorFwd, flipLeft, flipRight, flipTop, flipVerBck, flipVerFwd, getCurrentResourceStrings, getTypeNameForDebugging, growVerIn, growVerOut, heartbeat, hierarchicalTransactionServiceFactory, isDateInRanges, isLeap, monthRange, pulsateBck, pulsateFwd, range, rotateInBl, rotateInBottom, rotateInBr, rotateInCenter, rotateInDiagonal1, rotateInDiagonal2, rotateInHor, rotateInLeft, rotateInRight, rotateInTl, rotateInTop, rotateInTr, rotateInVer, rotateOutBl, rotateOutBottom, rotateOutBr, rotateOutCenter, rotateOutDiagonal1, rotateOutDiagonal2, rotateOutHor, rotateOutLeft, rotateOutRight, rotateOutTl, rotateOutTop, rotateOutTr, rotateOutVer, scaleInBl, scaleInBottom, scaleInBr, scaleInCenter, scaleInHorCenter, scaleInHorLeft, scaleInHorRight, scaleInLeft, scaleInRight, scaleInTl, scaleInTop, scaleInTr, scaleInVerBottom, scaleInVerCenter, scaleInVerTop, scaleOutBl, scaleOutBottom, scaleOutBr, scaleOutCenter, scaleOutHorCenter, scaleOutHorLeft, scaleOutHorRight, scaleOutLeft, scaleOutRight, scaleOutTl, scaleOutTop, scaleOutTr, scaleOutVerBottom, scaleOutVerCenter, scaleOutVerTop, shakeBl, shakeBottom, shakeBr, shakeCenter, shakeHor, shakeLeft, shakeRight, shakeTl, shakeTop, shakeTr, shakeVer, slideInBl, slideInBottom, slideInBr, slideInLeft, slideInRight, slideInTl, slideInTop, slideInTr, slideOutBl, slideOutBottom, slideOutBr, slideOutLeft, slideOutRight, slideOutTl, slideOutTop, slideOutTr, swingInBottomBck, swingInBottomFwd, swingInLeftBck, swingInLeftFwd, swingInRightBck, swingInRightFwd, swingInTopBck, swingInTopFwd, swingOutBottomBck, swingOutBottomFwd, swingOutLeftBck, swingOutLefttFwd, swingOutRightBck, swingOutRightFwd, swingOutTopBck, swingOutTopFwd, toPercent, valueInRange, weekDay, IgxGridFilteringCellComponent as θIgxGridFilteringCellComponent, IgxGridFilteringRowComponent as θIgxGridFilteringRowComponent, IgxHierarchicalGridCellComponent as θIgxHierarchicalGridCellComponent, IgxTreeGridCellComponent as θIgxTreeGridCellComponent, IgxTreeGridRowComponent as θIgxTreeGridRowComponent, IgxGridCellComponent as ϴIgxGridCellComponent, IgxGridRowComponent as ϴIgxGridRowComponent };
|
|
81662
81980
|
//# sourceMappingURL=igniteui-angular.mjs.map
|